ports/*/jpeg "Thanks a lot guys"
m.seaman at infracaninophile.co.uk
Sun Aug 2 14:52:17 UTC 2009
Matthew Seaman wrote:
> Peter Jeremy wrote:
>> In this specific case, p5-RT-* depends on www/rt38 depends on
>> graphics/p5-GD depends on graphics/gd depends on graphics/jpeg. When
>> jpeg is bumped, gd needs to be bumped because it LIB_DEPENDS on jpeg.
>> p5-GD then needs to be bumped because it LIB_DEPENDS on gd. rt38 does
>> not need to be bumped because it has no LIB_DEPENDS on p5-GD. p5-RT-*
>> does not need to be bumped because rt38 is not bumped.
>> This is slighly more complex than
>> cd /usr/ports && \
>> for i in */*; do [ -d "$i" ] && cd "$i" && make all-depends-list ; done | \
>> grep jpeg
>> because you need to actually follow the dependency tree, but is not
>> impractical. The only issues I can see with this approach are:
>> 1) Mapping the shared library reported by 'make lib-depends' back to the
>> port than installs it.
>> 2) You are relying on LIB_DEPENDS being correct: In my general example
>> above, if A is missing a LIB_DEPENDS on C, this may not be detected
>> in the build process because of the implicit dependency on C via B.
>> No sample script because I'm not sure of the correct approach to 1) off
>> the top of my head.
> Doing (1) using my p5-FreeBSD-Portindex code is pretty easy. It's about
> time I released an update anyhow -- I'll code up a little app that
> the LIB_DEPENDS linkages already stored in the cache and lists each port
> that has a LIB_DEPENDS, together with all the ports it depends on
I've got this working now -- I still need to do some more testing, update
documentation and stuff before I release version 2.2 of p5-FreeBSD-Portindex,
but as a taster, here's the result of generating this on my machine just now:
(Note that this includes the effect of a number of local settings in
It's similar to the ports INDEX file, when decompressed. There's one row of
the file for each port, and each row contains 3 fields separated by '|'
package-name|port/origin|space separated list of lib_depends port origins
So, to extract the list of ports depending on www/jpeg:
happy-idiot-talk:/tmp:% grep graphics/jpeg SHLIBS | cut -d '|' -f 1-2 | head -10
Again, this has a number of deficiencies. For instance, programs that
embed a perl interpreter will link against libperl.so => /usr/local/lib/perl5/5.10.0/mach/CORE/libperl.so, but none of them register
a LIB_DEPENDS on lang/perl5.10. [See for example net-mgmt/net-snmpd,
Similarly, programs that declare 'USE_MYSQL=NN' will have a LIB_DEPENDS
on libmysqlclient.so.X added to their dependency mix even if they contain
no compiled ELF binaries [See net-mgmt/cacti databases/phpmyadmin]
However, I think that the deficiencies are not too intractable to fix,
and this approach shows some promise.
Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
Kent, CT11 9PW
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 259 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20090802/e6f7638e/signature.pgp
More information about the freebsd-ports