On Sat, May 19, 2007 at 07:47:30AM +1000, Peter Jeremy wrote: > On 2007-May-18 17:50:58 +1000, Peter Jeremy <[EMAIL PROTECTED]> wrote: > >Ideally, you also need some way to identify (and remove) old .so files > >that are no longer referenced by anything. This is not as easy > >because there's no record of what ports use what .so's (and no way to > >track apps outside the ports system). > > OK, my offering to assist with this scans a specified set of file > trees and reports any executables that reference shared libraries in > compat or that can't be found: > > #!/bin/sh > # > # Find executables using compat libraries > > find -x "$@" -type f -perm +0100 -print0 |\ > ( xargs -0 ldd 2>&1 >&3 | \ > egrep -v "not a dynamic executable|can't read program header|Exec > format error" >&2 ) 3>&1 |\ > awk '/^[^ ]/ { exe = $0; next } > NF != 4 || $3 ~ /\/compat\// || $4 !~ /^\(0x[0-9a-f]*[1-9a-f]/ { > print exe, $0}'
For portupgrade users there is the libchk port which also looks for references to libraries that are not installed. Unfortunately thesedays there are a lot of false positives on typical installations because lots of ports set a non-default library search path at runtime. Kris _______________________________________________ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"