[HEADUP] FreeBSD Gecko's TODO and plan for future

b. f. bf1783 at googlemail.com
Tue Aug 25 03:25:17 UTC 2009


>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.


More information about the freebsd-ports mailing list