From owner-freebsd-ports@FreeBSD.ORG Mon Aug 3 17:56:04 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 768501065672 for ; Mon, 3 Aug 2009 17:56:04 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from mail2.fluidhosting.com (mx21.fluidhosting.com [204.14.89.4]) by mx1.freebsd.org (Postfix) with ESMTP id 1A7CE8FC17 for ; Mon, 3 Aug 2009 17:56:03 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: (qmail 21576 invoked by uid 399); 3 Aug 2009 17:56:01 -0000 Received: from localhost (HELO foreign.dougb.net) (dougb@dougbarton.us@127.0.0.1) by localhost with ESMTPAM; 3 Aug 2009 17:56:01 -0000 X-Originating-IP: 127.0.0.1 X-Sender: dougb@dougbarton.us Message-ID: <4A7724A7.6000500@FreeBSD.org> Date: Mon, 03 Aug 2009 10:55:51 -0700 From: Doug Barton Organization: http://www.FreeBSD.org/ User-Agent: Thunderbird 2.0.0.22 (X11/20090729) MIME-Version: 1.0 To: Garrett Cooper References: <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> <4A75A813.10307@infracaninophile.co.uk> <7d6fde3d0908030148h3b5a5934lb0ade13d8b095105@mail.gmail.com> In-Reply-To: <7d6fde3d0908030148h3b5a5934lb0ade13d8b095105@mail.gmail.com> X-Enigmail-Version: 0.95.7 OpenPGP: id=D5B2F0FB Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Peter Jeremy , 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: Mon, 03 Aug 2009 17:56:04 -0000 Garrett Cooper wrote: > Gentoo Linux (I know -- Gentoo + Linux -- we're FreeBSD... blah :P) > has a script called `revdep-rebuild' which goes and runs ldd on all > pieces of software that are installed in portage (ok, substitute ports > here). What I'm driving at is that we can use pkg_info and/or the > mtree generated files to determine what files are installed, find out > which packages have been broken up an update, then rebuild the port > and all dependencies (LIB_DEPENDS?). What say you to that :)? I was experimenting with various scripts using ldd in parallel to my most recent portmaster update and I think there is a problem with that solution. If libA is linked against libB which in turn is linked against libMISSING (such as libjpeg.so.9 for example) then ldd against libA will show libMISSING even though that problem can be solved by simply updating libB (i.e., without recompiling libA). This same issue applies to the idea of running ldd against things at install time and recording the list. Perhaps someone smarter than I about ldd can come up with a solution to this, but until then I think that using ldd after the fact is a stopgap measure to repair things if the ports infrastructure fails us. In theory the dependency graphing in our existing ports infrastructure should deal with this problem. In practice at the moment I personally feel that we record too many "indirect" dependencies (such as libA above) and that we would serve our users better if we stuck to direct dependencies only (libB in the example above). What should have happened in this case is that the ports that depend DIRECTLY on libjpeg should have had their revisions bumped at the same time as the update to libjpeg. Since that is what usually happens, hopefully we can stop flogging this horse soon. That said, if anyone really really wants to pursue the dependency graphing issue further, can I suggest a new thread focused on that topic? hth, Doug -- This .signature sanitized for your protection