It's not a matter of recompiling every port, just those that depend on the one that changed.
pkg_libchk will identify any port binary that is missing a library, which should find the ones with problems.
yes,
pkg_libchk will identify any port with a "missing" library; but it will not identify those ports which will be orphaned after
make delete-old-libs is executed. Immediately after an upgrade, the old libs are still present in
/lib,
/usr/lib, etc. so links to "old" libraries are still viable. One might first delete the old libs and later run
pkg_libchk to note which ones have been broken, but in the interim all such ports' applications will fail. [pain]
After upgrading from 9.3 to 10.1 one can examine
/usr/lib and note that the "default" version of
libarchive.so (for example) is now
libarchive.so.6 (discernible because the
.so symlink now points to the
.so.6 lib). At the same time, the older
.so.5 version is still present.
So the question (better phrased) is:
After upgrading FreeBSD, is there a tool which can be used to list installed ports which are linked against older (now out of date) versions of core libraries without first deleting those out-of-date libraries and causing the aforementioned programs to core-dump?
The avowed best-practice (post FreeBSD upgrade) appears to be to force a rebuild of all installed ports (e.g.:
portmaster -af) in order to relink against newer libraries; however, a blanket upgrade of all ports all at once is fraught with pain; so I would much rather work from a list and perform the upgrades piecemeal and test after each to be sure I haven't broken anything.
While it is obvious to assume that immediately after an OS upgrade ~none~ of the installed ports will be linked against the freshly installed libs, it would be nice to be able to check the upgrade status of ports after first a rebuild of
perl and later after a rebuild of
mariadb55-server and even later after a rebuild of
postfix. Each rebuild will pull in some number of requirements so the list of ports linked against out-of-date libs will shrink.
Is there a practicable method for generating a list of those ports which need upgrade?
Thank you again.