From owner-freebsd-ports@FreeBSD.ORG Sun Aug 2 14:52:17 2009 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D86F106564A for ; Sun, 2 Aug 2009 14:52:17 +0000 (UTC) (envelope-from m.seaman@infracaninophile.co.uk) Received: from smtp.infracaninophile.co.uk (gate6.infracaninophile.co.uk [IPv6:2001:8b0:151:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id 787C18FC0C for ; Sun, 2 Aug 2009 14:52:16 +0000 (UTC) (envelope-from m.seaman@infracaninophile.co.uk) Received: from happy-idiot-talk.infracaninophile.co.uk (localhost [IPv6:::1]) (authenticated bits=0) by smtp.infracaninophile.co.uk (8.14.3/8.14.3) with ESMTP id n72Eq9tk009369; Sun, 2 Aug 2009 15:52:11 +0100 (BST) (envelope-from m.seaman@infracaninophile.co.uk) X-DKIM: Sendmail DKIM Filter v2.8.3 smtp.infracaninophile.co.uk n72Eq9tk009369 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=infracaninophile.co.uk; s=200708; t=1249224731; bh=AjByUM0UrBCS/MFl7FUfE/M77bd2rW5+J5hVjekdKaU=; h=Message-ID:Date:From:MIME-Version:To:CC:Subject:References: In-Reply-To:Content-Type:Cc:Content-Type:Date:From:In-Reply-To: Message-ID:Mime-Version:References:To; z=Message-ID:=20<4A75A813.10307@infracaninophile.co.uk>|Date:=20Sun ,=2002=20Aug=202009=2015:52:03=20+0100|From:=20Matthew=20Seaman=20 |Organization:=20Infracaninophile |User-Agent:=20Thunderbird=202.0.0.22=20(X11/20090724)|MIME-Versio n:=201.0|To:=20Peter=20Jeremy=20|CC: =20freebsd-ports@freebsd.org|Subject:=20Re:=20ports/*/jpeg=20"Than ks=20a=20lot=20guys"|References:=20<20090731173636.GA76357@owl.mid gard.homeip.net>=09<20090731121249.538ea7e7.jasonh@DataIX.net>=09< 20090731173636.GA76357@owl.midgard.homeip.net>=09<4A740679.1020608 @infracaninophile.co.uk>=09=09<4 A747C77.1040800@infracaninophile.co.uk>=09<20090801224323.GA65040@ server.vk2pj.dyndns.org>=20<4A7552C8.7020508@infracaninophile.co.u k>|In-Reply-To:=20<4A7552C8.7020508@infracaninophile.co.uk>|X-Enig mail-Version:=200.95.6|Content-Type:=20multipart/signed=3B=20mical g=3Dpgp-sha256=3B=0D=0A=20protocol=3D"application/pgp-signature"=3 B=0D=0A=20boundary=3D"------------enigC0F236BE26245D3A06819A5B"; b=Y0s10SCHAS7JpD0eBpNIA4mEw27ANiYm99kSmx2i6kSVn/gAc/EEdJh+Fsz6Vwuo3 8VcLIGJP54TfuMG8DILysM9S7nUL0G1djt1LOop7nnoDgU4IYInUtE6K/1oLGHYk2f e3Yd/jK+xUSBki/WKyrSZiI+8uGp6yTC9LIJXh6w= X-Authentication-Warning: happy-idiot-talk.infracaninophile.co.uk: Host localhost [IPv6:::1] claimed to be happy-idiot-talk.infracaninophile.co.uk Message-ID: <4A75A813.10307@infracaninophile.co.uk> Date: Sun, 02 Aug 2009 15:52:03 +0100 From: Matthew Seaman Organization: Infracaninophile User-Agent: Thunderbird 2.0.0.22 (X11/20090724) MIME-Version: 1.0 To: Peter Jeremy References: <20090731173636.GA76357@owl.midgard.homeip.net> <20090731121249.538ea7e7.jasonh@DataIX.net> <20090731173636.GA76357@owl.midgard.homeip.net> <4A740679.1020608@infracaninophile.co.uk> <4A747C77.1040800@infracaninophile.co.uk> <20090801224323.GA65040@server.vk2pj.dyndns.org> <4A7552C8.7020508@infracaninophile.co.uk> In-Reply-To: <4A7552C8.7020508@infracaninophile.co.uk> X-Enigmail-Version: 0.95.6 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enigC0F236BE26245D3A06819A5B" X-Virus-Scanned: clamav-milter 0.95.2 at happy-idiot-talk.infracaninophile.co.uk X-Virus-Status: Clean X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VERIFIED,NO_RELAYS autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on happy-idiot-talk.infracaninophile.co.uk Cc: freebsd-ports@freebsd.org Subject: Re: ports/*/jpeg "Thanks a lot guys" X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 14:52:17 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigC0F236BE26245D3A06819A5B Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Matthew Seaman wrote: > Peter Jeremy wrote:=20 >> 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 ; d= one | \ >> 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 t= he >> port than installs it. >> 2) You are relying on LIB_DEPENDS being correct: In my general exampl= e >> 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) of= f >> the top of my head. > Doing (1) using my p5-FreeBSD-Portindex code is pretty easy. It's abou= t > time I released an update anyhow -- I'll code up a little app that=20 > processes > the LIB_DEPENDS linkages already stored in the cache and lists each por= t > that has a LIB_DEPENDS, together with all the ports it depends on=20 > cumulatively. 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-Portin= dex, but as a taster, here's the result of generating this on my machine just = now: http://www.infracaninophile.co.uk/SHLIBS.bz2 (Note that this includes the effect of a number of local settings in /etc/make.conf) 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 '|'=20 characters: package-name|port/origin|space separated list of lib_depends port orig= ins So, to extract the list of ports depending on www/jpeg: happy-idiot-talk:/tmp:% grep graphics/jpeg SHLIBS | cut -d '|' -f 1-2 | h= ead -10 accerciser-1.6.1_1|/usr/ports/accessibility/accerciser at-poke-0.2.3_4|/usr/ports/accessibility/at-poke at-spi-1.26.0_1|/usr/ports/accessibility/at-spi dasher-4.10.1_1,2|/usr/ports/accessibility/dasher gnome-mag-0.15.8|/usr/ports/accessibility/gnome-mag gnopernicus-1.1.2_6|/usr/ports/accessibility/gnopernicus gok-2.26.0_1,1|/usr/ports/accessibility/gok kdeaccessibility-3.5.10_2|/usr/ports/accessibility/kdeaccessibility kdeaccessibility-4.2.4_1|/usr/ports/accessibility/kdeaccessibility4 mousetweaks-2.26.3_1|/usr/ports/accessibility/mousetweaks Again, this has a number of deficiencies. For instance, programs that embed a perl interpreter will link against libperl.so =3D> /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, www/mod_perl2] Similarly, programs that declare 'USE_MYSQL=3DNN' will have a LIB_DEPENDS= =20 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. Cheers, Matthew --=20 Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate Kent, CT11 9PW --------------enigC0F236BE26245D3A06819A5B Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEAREIAAYFAkp1qBkACgkQ8Mjk52CukIxQ7gCdE39yFLHP98nvARdabd//LQJK QUUAnRoKhp2JY8lEHfJ0yExnlYMaD7HF =YQ15 -----END PGP SIGNATURE----- --------------enigC0F236BE26245D3A06819A5B--