>Is there any convenient way to list dependencies hierarchially,
>rather than the flat set that pkg_info -r provides?

Yes, there is the ports-mgmt/pkg_tree port, and if you want better or
more flexible graphics, you could write a script to swing through
parts of a ports tree, invoke make(1) to find direct dependencies, and
then output the results in, for example, .dot format, so that they can
then be drawn with graphics/graphviz.  Obviously, there are other ways
to do this as well.  I use the following script to list the origins of
all installed packages that are dependent upon a given package,
according to the given ports tree:

#!/bin/sh
PORTSDIR=${PORTSDIR:-/usr/ports}
if [ "`pkg_info -E $1`" ]
then
dir1="`pkg_info -oq $1`"
for pdir in `pkg_info -aoq`
do
pdepends="`make -C $PORTSDIR/$pdir -V FETCH_DEPENDS -V EXTRACT_DEPENDS
-V PATCH_DEPENDS -V BUILD_DEPENDS -V RUN_DEPENDS -V LIB_DEPENDS`"
( echo "$pdepends"  | grep -q -s -e "$dir1" ) && echo "$pdir"
#or, if you prefer:
#echo `make -C $PORTSDIR/$pdir -V PKGNAME`
done
else
echo "$1 is not a valid package name"
exit 1
fi
exit 0


b.
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to