Can ports/ make detect & rebuild all ports depending on old libcrypto.so.7 ?
Julian H. Stacey
jhs at berklix.com
Wed Mar 16 14:10:35 UTC 2016
Hi Ports@
cc: "Mk/bsd.openssl.mk OpenSSL_Include_MAINTAINER=" <dinoex at FreeBSD.org>
Can ports/ make detect & rebuild all ports depending on old libcrypto.so.7 ?
With current src & ports, After I upgraded with:
mergemaster -p # compares files essential for installworld
make installworld
mergemaster -iF # Update remainder
make delete-old
reboot
xinit failed with:
Shared object "libcrypto.so.7" not found, required by "X"
ls -l /usr/local/lib/libcrypto.so*
14 Mar 11 22:36 /usr/local/lib/libcrypto.so@ -> libcrypto.so.8
2420177 Mar 11 22:36 /usr/local/lib/libcrypto.so.8
pkg which /usr/local/lib/libcrypto.so.8
/usr/local/lib/libcrypto.so.8 was installed by package openssl-1.0.2_4
pkg delete openssl-1.0.2_4
Deinstallation has been requested for the following 355 packages
The operation will free 4 GiB.
Proceed with deinstalling packages? [y/N]: n
pkg info -o openssl-1.0.2_4 # security/openssl
( I didnt go further with the package route, as I always
prefer the source route, wanting to rebuild every port that
depends on something old.)
cd /usr/ports/security/openssl; unsetenv NOCLEANDEPENDS; make clean;
make reinstall-recursive
cd /pub/FreeBSD/branches/-current/ports;
find . -type f | xargs grep libcrypto.so.
... grep libcrypto.so.7 # just 4 lines:
misc/compat10x/pkg-plist.amd64:lib/compat/libcrypto.so.7
misc/compat10x/pkg-plist.amd64:lib32/compat/libcrypto.so.7
misc/compat10x/pkg-plist.i386:lib/compat/libcrypto.so.7
security/linux-f10-openssl/pkg-plist:lib/libcrypto.so.7
I cleaned & reinstalled misc/compat10x & xdm restarted !
(Not sure why, wouldn't have expected anything central to have used compat10x)
- What was looking for libcrypto.so.7 ?
- Might other things remain broken, relying on libcrypto.so.7 ?
nm: /usr/local/bin/xinit: no symbols
csh
touch /tmp/strings
cd /usr/local
foreach i ( `find bin sbin -type f` )
echo >> /tmp/strings
echo "FILENAME $i" >> /tmp/strings
strings $i >> /tmp/strings
end
vi -c/libcrypto.so. /tmp/strings
FILENAME bin/lftp
FILENAME bin/curl
...
grep libcrypto.so. /tmp/strings | sort | wc
107 129 1907
grep libcrypto.so.7 /tmp/strings | wc
82 82 1230
grep libcrypto.so.8 /tmp/strings | wc
24 24 360
- Why are ports below referring to old specific libcrypto.so.[0-9] ?
Does ports/ infrastructure support auto remake on changed .so content ? With
cd /usr/ports
make BERKLIX_CLIENT=YES package-recursive
( BERKLIX_CLIENT selects #ifdef in my ports/*/Makefile.inc )
most don't rebuild, (it merely checks if dependencies already exist),
I'd prefer a check on datestamp of content of sym linked minor version.
Maybe that's more than FreeBSD can provide,
but I guess we should purge minor numbers listed below, shown from
cd /pub/FreeBSD/branches/-current/ports
find . -type f | xargs grep libcrypto.so.
An aside on static:
To avoid future similar problems, one might be tempted to
recompile all one's own ports) with
/etc/make.conf CFLAGS += -static
but I have old notes that too used to cause trouble, viz:
# Do not leave -static on, else some ports eg devel/libzvbi
# will build without creating shared libraries.
# uname=8.2-RELEASE src/usr.sbin/ppp fails to build with this.
# 9.0-RELEASE src/sbin/atm/atmconfig fails to build with this
Mk/bsd.openssl.mk:OPENSSL_SHLIBFILE!= ${PKG_INFO} -ql ${OPENSSL_INSTALLED} | ${GREP} "^`${PKG_QUERY} "%p" ${OPENSSL_INSTALLED}`/lib/libcrypto.so.[0-9]*$$"
devel/asmutils/Makefile:LIBRARIES= libc.so.0 libcrypto.so.0 libm.so.0
misc/compat10x/pkg-plist.amd64:lib/compat/libcrypto.so.7
misc/compat10x/pkg-plist.amd64:lib32/compat/libcrypto.so.7
misc/compat10x/pkg-plist.i386:lib/compat/libcrypto.so.7
misc/compat4x/Makefile:OPENSSL_LIBS= libcrypto.so.1 libcrypto.so.2 libssl.so.1 libssl.so.2
misc/compat4x/pkg-plist.freebsd4:%%FORBIDDEN:%%lib/compat/libcrypto.so.1
misc/compat4x/pkg-plist.freebsd4:%%FORBIDDEN:%%lib/compat/libcrypto.so.2
misc/compat4x/pkg-plist.freebsd5:%%FORBIDDEN:%%%%LIBDIR%%/compat/libcrypto.so.1
misc/compat4x/pkg-plist.freebsd5:%%FORBIDDEN:%%%%LIBDIR%%/compat/libcrypto.so.2
misc/compat5x/pkg-plist:%%AMD64%%lib32/compat/libcrypto.so.3
misc/compat5x/pkg-plist:lib/compat/libcrypto.so.3
misc/compat6x/pkg-plist.alpha:lib/compat/libcrypto.so.4
misc/compat6x/pkg-plist.amd64:lib/compat/libcrypto.so.4
misc/compat6x/pkg-plist.amd64:lib32/compat/libcrypto.so.4
misc/compat6x/pkg-plist.i386:lib/compat/libcrypto.so.4
misc/compat6x/pkg-plist.sparc64:lib/compat/libcrypto.so.4
misc/compat7x/pkg-plist.amd64:lib/compat/libcrypto.so.5
misc/compat7x/pkg-plist.amd64:lib32/compat/libcrypto.so.5
misc/compat7x/pkg-plist.i386:lib/compat/libcrypto.so.5
misc/compat9x/pkg-plist.amd64:lib/compat/libcrypto.so.6
misc/compat9x/pkg-plist.amd64:lib32/compat/libcrypto.so.6
misc/compat9x/pkg-plist.i386:lib/compat/libcrypto.so.6
multimedia/plexmediaserver-plexpass/pkg-plist:%%DATADIR%%/libcrypto.so.1.0.0
multimedia/plexmediaserver/pkg-plist:%%DATADIR%%/libcrypto.so.1.0.0
net/spideroak/pkg-plist:%%DATADIR%%/libcrypto.so.1.0.0
security/libressl-devel/pkg-plist:lib/libcrypto.so.37
security/libressl-devel/pkg-plist:lib/libcrypto.so.37.0.0
security/libressl/pkg-plist:lib/libcrypto.so.35
security/libressl/pkg-plist:lib/libcrypto.so.35.0.0
security/linux-c6-openssl-compat/pkg-plist.i686:usr/lib/.libcrypto.so.0.9.8e.hmac
security/linux-c6-openssl-compat/pkg-plist.i686:usr/lib/.libcrypto.so.6.hmac
security/linux-c6-openssl-compat/pkg-plist.i686:usr/lib/libcrypto.so.0.9.8e
security/linux-c6-openssl-compat/pkg-plist.i686:usr/lib/libcrypto.so.6
security/linux-c6-openssl-compat/pkg-plist.x86_64:usr/lib64/.libcrypto.so.0.9.8e.hmac
security/linux-c6-openssl-compat/pkg-plist.x86_64:usr/lib64/.libcrypto.so.6.hmac
security/linux-c6-openssl-compat/pkg-plist.x86_64:usr/lib64/libcrypto.so.0.9.8e
security/linux-c6-openssl-compat/pkg-plist.x86_64:usr/lib64/libcrypto.so.6
security/linux-c6-openssl/pkg-plist.i686:usr/lib/.libcrypto.so.%%PORTVERSION%%.hmac
security/linux-c6-openssl/pkg-plist.i686:usr/lib/.libcrypto.so.10.hmac
security/linux-c6-openssl/pkg-plist.i686:usr/lib/libcrypto.so.%%PORTVERSION%%
security/linux-c6-openssl/pkg-plist.i686:usr/lib/libcrypto.so.10
security/linux-c6-openssl/pkg-plist.x86_64:usr/lib64/.libcrypto.so.%%PORTVERSION%%.hmac
security/linux-c6-openssl/pkg-plist.x86_64:usr/lib64/.libcrypto.so.10.hmac
security/linux-c6-openssl/pkg-plist.x86_64:usr/lib64/libcrypto.so.%%PORTVERSION%%
security/linux-c6-openssl/pkg-plist.x86_64:usr/lib64/libcrypto.so.10
security/linux-f10-openssl/pkg-plist:lib/libcrypto.so.%%PORTVERSION%%
security/linux-f10-openssl/pkg-plist:lib/libcrypto.so.7
security/openssl-devel/pkg-plist:%%SHARED%%lib/libcrypto.so.%%SHLIBVER%%
security/openssl/pkg-plist:%%SHARED%%lib/libcrypto.so.%%SHLIBVER%%
Cheers,
Julian
--
Julian Stacey, BSD Linux Unix Sys Eng Consultant Munich http://berklix.eu/jhs/
Mail plain text, No quoted-printable, HTML, base64, MS.doc.
Prefix old lines '> ' Reply below old, like play script. Break lines by 80.
More information about the freebsd-ports
mailing list