From: Lapo Luchini on 23 Nov 2007 04:50 It happened many times to me to ask myself: why I do have port XYZ installed? surely "something needs it", but what? "pkg_info -r/-R" are of little help, because every dependency of every dependency (and other ranks of indirect dependencies too) are simply registered as direct dependencies, so that pretty much every single small gnome application depends on EVERY gnome and xorg port. OK, in a sense it *really* depends on all of them, because one of them missing would break it, but OTOH I'd like to know which ones are direct dependencies and which ones are indirect, especially because in that case my life would be easier wading through the correct Makefiles and searching for "WITHOUT_*" knobs or other ways to "cut" some dependencies I really don't want. True, there are "package tree" ports such as pkg_tree, but for the very reason that indirect dependencies are registered in exactly the same way that direct ones are, they provide an output that's not very useful at all (a very flattened tree). Is there a way to discriminate direct dependencies fro indirect ones, except from reading every single Makefile? (and knowing to full extent what USE_GNOME and similar lines really do take in as deps) Lapo _______________________________________________ freebsd-ports(a)freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"
From: Andrew Pantyukhin on 23 Nov 2007 15:26 On Fri, Nov 23, 2007 at 10:49:35AM +0100, Lapo Luchini wrote: > Is there a way to discriminate direct dependencies fro indirect > ones, except from reading every single Makefile? (and knowing > to full extent what USE_GNOME and similar lines really do take > in as deps) You can cd some/port/&&make depends, but personally, I've also always thought that the difference between direct and indirect dependencies should be embedded in the package system. _______________________________________________ freebsd-ports(a)freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"
From: Stephen Montgomery-Smith on 23 Nov 2007 15:43 On Fri, Nov 23, 2007 at 11:25:25PM +0300, Andrew Pantyukhin wrote: > On Fri, Nov 23, 2007 at 10:49:35AM +0100, Lapo Luchini wrote: > > Is there a way to discriminate direct dependencies fro indirect > > ones, except from reading every single Makefile? (and knowing > > to full extent what USE_GNOME and similar lines really do take > > in as deps) > > You can cd some/port/&&make depends, but personally, I've also > always thought that the difference between direct and indirect > dependencies should be embedded in the package system. Haven't been following this thread, so apologies if I misunderstand or repeat. If you want only the direct depends, you can do this (under sh or bash) cd the-port for a in `make -V _LIB_RUN_DEPENDS` do (cd `echo $a | sed -E 's/.*://'` && make -V PKGNAME); done _______________________________________________ freebsd-ports(a)freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"
From: Alex Dupre on 23 Nov 2007 17:14 Andrew Pantyukhin wrote: > You can cd some/port/&&make depends One way only. It would be more useful to know which installed ports directly depend on a specific port. -- Alex Dupre _______________________________________________ freebsd-ports(a)freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"
From: Andrew Pantyukhin on 26 Nov 2007 10:56 On Fri, Nov 23, 2007 at 11:00:32PM +0100, Alex Dupre wrote: > Andrew Pantyukhin wrote: > > You can cd some/port/&&make depends > > One way only. It would be more useful to know which installed ports > directly depend on a specific port. As an obvious working (but not nearly correct) example: pkg_direct_req <pkg name or regexp> #!/bin/sh indirect_reqs=`pkg_info -Rx "$1"|egrep -v '(:|^$)'` pkg_origin=`pkg_info -ox "$1"|grep -m1 /` for i in $indirect_reqs;do req_origin=`pkg_info -o "$i"|grep /` depdirs=`cd /usr/ports/$req_origin;make -V _DEPEND_DIRS` if echo $depdirs|grep -qw $pkg_origin;then echo $i is a direct req fi done _______________________________________________ freebsd-ports(a)freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"
|
Pages: 1 Prev: FreeBSD Port: pecl-APC-3.0.14 Next: FreeBSD amd64 and tightvnc port |