Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Mar 2016 15:10:14 +0100
From:      "Julian H. Stacey" <jhs@berklix.com>
To:        ports@FreeBSD.org
Cc:        "Mk/bsd.openssl.mk OpenSSL_Include_MAINTAINER=" <dinoex@FreeBSD.org>
Subject:   Can ports/ make detect & rebuild all ports depending on old libcrypto.so.7 ?
Message-ID:  <201603161410.u2GEAEXX050283@fire.js.berklix.net>

next in thread | raw e-mail | index | archive | help
Hi Ports@
cc: "Mk/bsd.openssl.mk OpenSSL_Include_MAINTAINER=" <dinoex@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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603161410.u2GEAEXX050283>