Skip to content

Instantly share code, notes, and snippets.

@jfqd
Created December 31, 2019 12:30
Show Gist options
  • Select an option

  • Save jfqd/b7e1a969dff3a4ca8c2f24019c525ffe to your computer and use it in GitHub Desktop.

Select an option

Save jfqd/b7e1a969dff3a4ca8c2f24019c525ffe to your computer and use it in GitHub Desktop.
Our mibe repo with only a few changes for lx-brand mibe-builds: https://github.com/jfqd/mibe
Our base image build: https://github.com/jfqd/mi-qutic-base
An this is how we build the base image:
build_base_image() {
cd /opt/mibe/repos
if [ ! -d /opt/mibe/repos/mi-qutic-base ]; then
/opt/tools/bin/git clone git://github.com/jfqd/mi-qutic-base.git
else
(cd mi-qutic-base; /opt/tools/bin/git pull)
fi
rm /opt/mibe/images/qutic-base-64-* || true
BASE64_IMAGE_UUID=$(imgadm list | grep minimal-64-trunk | tail -1 | awk '{ print $1 }')
TEMPLATE_ZONE_UUID=$(vmadm lookup alias='mibe-template-20191127')
../bin/build_smartos $BASE64_IMAGE_UUID $TEMPLATE_ZONE_UUID mi-qutic-base &&
imgadm install -m /opt/mibe/images/qutic-base-64-*-imgapi.dsmanifest -f /opt/mibe/images/qutic-base-64-*.zfs.gz
}
The "mibe-template-20191127" image is up to date with pkgsrc-trunk (pkgin up, pkgin ug)
And this is the error:
pkg_admin: openssl-1.1.1d: Symlink `/opt/local/man/man1/openssl-c_rehash.1.gz' exists and is in +CONTENTS but target does not exist!
ld.so.1: pkgin: fatal: libcrypto.so.1.0.0: open failed: No such file or directory
/root/customize: line 37: 94243 Killed pkgin -y up
ld.so.1: pkgin: fatal: libcrypto.so.1.0.0: open failed: No such file or directory
/root/customize: line 60: 94276 Killed pkgin update
@jfqd
Copy link
Author

jfqd commented Jan 4, 2020

zone mibe-template-20191127 was build with image version 20191127 minimal-64-trunk (82f637a0-10fd-11ea-a0b6-9b691fd17e86)

# zlogin 0edc5404-c6f4-ec9d-835a-8a6a0f24a9fe # mibe-template-20191127

$ pkgin -v
pkgin 0.14.0 for SunOS-5.11 x86_64 (using SQLite 3.30.1)

$ digest -a sha1 $(which pkgin)
5c57039e4c92788c6c22fc8eff5509e2938bdd21

# ldd -r $(which pkgin)
	libbz2.so.0 =>	 /opt/local/lib/libbz2.so.0
	libz.so.1 =>	 /opt/local/lib/libz.so.1
	libarchive.so.13 =>	 /opt/local/lib/libarchive.so.13
	libnsl.so.1 =>	 /lib/64/libnsl.so.1
	libsocket.so.1 =>	 /lib/64/libsocket.so.1
	libcrypto.so.1.1 =>	 /opt/local/lib/libcrypto.so.1.1
	libssl.so.1.1 =>	 /opt/local/lib/libssl.so.1.1
	libsqlite3.so.0 =>	 /opt/local/lib/libsqlite3.so.0
	libumem.so.1 =>	 /lib/64/libumem.so.1
	libssp.so.0 =>	 /opt/local/gcc7/x86_64-sun-solaris2.11/lib/amd64/libssp.so.0
	libc.so.1 =>	 /lib/64/libc.so.1
	libgcc_s.so.1 =>	 /opt/local/gcc7/x86_64-sun-solaris2.11/lib/amd64/libgcc_s.so.1
	liblzma.so.5 =>	 /opt/local/lib/liblzma.so.5
	libpthread.so.1 =>	 /lib/64/libpthread.so.1
	librt.so.1 =>	 /lib/64/librt.so.1
	libmp.so.2 =>	 /lib/64/libmp.so.2
	libmd.so.1 =>	 /lib/64/libmd.so.1
	libdl.so.1 =>	 /lib/64/libdl.so.1
	libm.so.2 =>	 /lib/64/libm.so.2

If I remove pkgin calls from the customize file, the image is build by mibe. The following output is from a zone created from this image with a broken pkgin binary.

# zlogin 9f5223b5-0cd7-4497-ffe2-a066be7c4574 (test-zone)

$ pkgin -v
ld.so.1: pkgin: fatal: libcrypto.so.1.0.0: open failed: No such file or directory
Killed

$ digest -a sha1 $(which pkgin)
903c2d1852844d084c783060644293e12d36cf1a

$ ldd -r $(which pkgin)
	libbz2.so.0 =>	 /opt/local/lib/libbz2.so.0
	libz.so.1 =>	 /opt/local/lib/libz.so.1
	libarchive.so.13 =>	 /opt/local/lib/libarchive.so.13
	libnsl.so.1 =>	 /lib/64/libnsl.so.1
	libsocket.so.1 =>	 /lib/64/libsocket.so.1
	libcrypto.so.1.0.0 =>	 (file not found)
	libssl.so.1.0.0 =>	 (file not found)
	libsqlite3.so.0 =>	 /opt/local/lib/libsqlite3.so.0
	libumem.so.1 =>	 /lib/64/libumem.so.1
	libssp.so.0 =>	 /opt/local/gcc7/x86_64-sun-solaris2.11/lib/amd64/libssp.so.0
	libc.so.1 =>	 /lib/64/libc.so.1
	libgcc_s.so.1 =>	 /opt/local/gcc7/x86_64-sun-solaris2.11/lib/amd64/libgcc_s.so.1
	libcrypto.so.1.0.0 =>	 (file not found)
	liblzma.so.5 =>	 /opt/local/lib/liblzma.so.5
	libpthread.so.1 =>	 /lib/64/libpthread.so.1
	librt.so.1 =>	 /lib/64/librt.so.1
	libmp.so.2 =>	 /lib/64/libmp.so.2
	libmd.so.1 =>	 /lib/64/libmd.so.1
	libm.so.2 =>	 /lib/64/libm.so.2
	libdl.so.1 =>	 /lib/64/libdl.so.1
	symbol not found: SSL_library_init		(/opt/local/bin/pkgin)
	symbol not found: SSL_load_error_strings		(/opt/local/bin/pkgin)
	symbol not found: SSLv23_client_method		(/opt/local/bin/pkgin)
	symbol not found: SSL_CTX_new		(/opt/local/bin/pkgin)
	symbol not found: SSL_CTX_ctrl		(/opt/local/bin/pkgin)
	symbol not found: SSL_new		(/opt/local/bin/pkgin)
	symbol not found: SSL_set_fd		(/opt/local/bin/pkgin)
	symbol not found: SSL_ctrl		(/opt/local/bin/pkgin)
	symbol not found: SSL_connect		(/opt/local/bin/pkgin)
	symbol not found: SSL_get_current_cipher		(/opt/local/bin/pkgin)
	symbol not found: SSL_CIPHER_get_name		(/opt/local/bin/pkgin)
	symbol not found: SSL_get_peer_certificate		(/opt/local/bin/pkgin)
	symbol not found: X509_get_subject_name		(/opt/local/bin/pkgin)
	symbol not found: X509_NAME_oneline		(/opt/local/bin/pkgin)
	symbol not found: X509_get_issuer_name		(/opt/local/bin/pkgin)
	symbol not found: ERR_print_errors_fp		(/opt/local/bin/pkgin)
	symbol not found: SSL_read		(/opt/local/bin/pkgin)
	symbol not found: SSL_get_error		(/opt/local/bin/pkgin)
	symbol not found: SSL_write		(/opt/local/bin/pkgin)
	symbol not found: EVP_CIPHER_CTX_free		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_EncryptInit_ex		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_EncryptUpdate		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_CIPHER_CTX_new		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_aes_256_ecb		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_CIPHER_CTX_init		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_aes_128_ecb		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_aes_192_ecb		(/opt/local/lib/libarchive.so.13)
	symbol not found: PKCS5_PBKDF2_HMAC_SHA1		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_DigestFinal		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_MD_CTX_cleanup		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_DigestUpdate		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_sha512		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_DigestInit		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_sha384		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_sha256		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_sha1		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_ripemd160		(/opt/local/lib/libarchive.so.13)
	symbol not found: EVP_md5		(/opt/local/lib/libarchive.so.13)
	symbol not found: HMAC_CTX_cleanup		(/opt/local/lib/libarchive.so.13)
	symbol not found: HMAC_Final		(/opt/local/lib/libarchive.so.13)
	symbol not found: HMAC_Init_ex		(/opt/local/lib/libarchive.so.13)
	symbol not found: HMAC_Update		(/opt/local/lib/libarchive.so.13)

The only solution to fix this issue is to copy the pkgin binary from the template zone to the newly created one, this the missing lib path and do an upgrade:

# cp /zones/0edc5404-c6f4-ec9d-835a-8a6a0f24a9fe/root/opt/local/bin/pkgin /zones/871fc644-5a69-4479-abe9-80cddcefb8f0/root/opt/local/bin/pkgin

# z 9f5223b5-0cd7-4497-ffe2-a066be7c4574 (test-zone)

$ ln -nfs /opt/local/lib/libcrypto.so.1.1 /opt/local/lib/libcrypto.so.1.0.0
$ ln -nfs /opt/local/lib/libssl.so.1.1 /opt/local/lib/libssl.so.1.0.0

$ pkgin -v
pkgin 0.13.0 for SunOS-5.11 x86_64 (using SQLite 3.30.1)

$ pkgin ug
calculating dependencies...done.

21 packages to refresh:
  pkg_install-20191008 zlib-1.2.11 xz-5.2.4 sqlite3-3.30.1 bootstrap-mk-files-20180901 zoneinit-1.6.9 smtools-20160926 readline-8.0 pkgsrc-gnupg-keys-20190423 pkg_install-info-4.5nb3 pkg_alternatives-1.6 ncurses-6.1nb6 nbsed-20120308 nawk-20121220nb1 libarchive-3.4.0 gcc7-libs-7.4.0nb4 cwrappers-20180325
  changepass-1.3.3 bzip2-1.0.8 bsdinstall-20160108 bmake-20150505

2 packages to upgrade:
  pkgin-0.14.0 mozilla-rootcerts-1.0.20191207

21 to refresh, 2 to upgrade, 0 to install
19M to download, 2152K to install

proceed ? [Y/n] y
--- snip ---

$ pkgin -v
pkgin 0.14.0 for SunOS-5.11 x86_64 (using SQLite 3.30.1)

The question for me is why and where was version 0.13.0 of pkgin installed in this mibe-process?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment