Speaking of trivial tools

Mike Meyer mwm-keyword-freebsdhackers2.e313df at mired.org
Tue Aug 29 01:01:22 UTC 2006


I realized today that this one was possible. I suspect it would be
useful to lots of people working on ports, as well as for the sysadmin
stuff I do with it. I'm just not sure where it should goes.

-------------------- checkdeps.sh
#!/bin/sh

TMPFILE=/tmp/checkdeps.$$

pkg_info -r $1 | sed -n 's/Dependency: //p' | sort -u > $TMPFILE

ldd $(pkg_info -L $1) 2>/dev/null | \
sed -e '/^\//d' -e 's/.*=> //' -e 's/(.*)//' | \
sort -u | \
xargs -n 1 pkg_info -W | \
sed 's/.* //' | \
grep -v $1 | \
sort -u | \
comm -23 - $TMPFILE

rm $TMPFILE
--------------------

Hand it a package name as an argument, and it'll print out the names
of any packages providing libraries used by binaries in the package
given as an argument that aren't listed as a dependency for that
package. I fed it my complete list of packages, and it turned up some
interesting things - like a package that had a dependency on a newer
version of itself(!).

This is just a QAD hack. It certainly got a lot of rough edges yet.

	<mike
-- 
Mike Meyer <mwm at mired.org>		http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.


More information about the freebsd-hackers mailing list