Date: Mon, 03 Aug 2009 10:55:51 -0700 From: Doug Barton <dougb@FreeBSD.org> To: Garrett Cooper <yanefbsd@gmail.com> Cc: Peter Jeremy <peterjeremy@optushome.com.au>, freebsd-ports@freebsd.org Subject: Re: ports/*/jpeg "Thanks a lot guys" Message-ID: <4A7724A7.6000500@FreeBSD.org> In-Reply-To: <7d6fde3d0908030148h3b5a5934lb0ade13d8b095105@mail.gmail.com> References: <20090731121249.538ea7e7.jasonh@DataIX.net> <20090731173636.GA76357@owl.midgard.homeip.net> <4A740679.1020608@infracaninophile.co.uk> <c/bsZ0e9iU@dmeyer.dinoex.sub.org> <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>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A7724A7.6000500>