Skip site navigation (1)Skip section navigation (2)
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>