Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 May 2005 16:00:10 -0500
From:      "Conrad J. Sabatier" <conrads@cox.net>
To:        Ade Lovett <ade@freebsd.org>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: Disabling dependency on esound in ports builds
Message-ID:  <20050520160010.1c9c3ebe@dolphin.local.net>
In-Reply-To: <24E0B4F7-C17F-4038-A4D4-3936FE3BF4E0@freebsd.org>
References:  <20050518234933.05e2584b@dolphin.local.net> <20050519183922.GB6978@xor.obsecurity.org> <CFC68145-1928-4984-BCB5-6019CB893C89@FreeBSD.org> <20050520074620.GB95023@pcwin002.win.tue.nl> <24E0B4F7-C17F-4038-A4D4-3936FE3BF4E0@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 20 May 2005 01:00:59 -0700, Ade Lovett <ade@freebsd.org> wrote:

> 
> On May 20, 2005, at 00:46 , Stijn Hoop wrote:
> > I do know the reason why this kind of code was added: it was
> > considered incorrect behaviour that port A would NOT automatically
> > pick up support for library B if it was installed by the user.
> 
> That's more an artefact of configure scripts especially being coded  
> to simply check for the mere existence of a library in order to use  
> it, instead of the more correct approach of explicitly requesting -- 
> enable-foo (or equivalent).
> 
> Bringing in all the necessary hacks to only activate extra code if  
> the user (or port Makefile) has explicitly requested it is (at best)  
> an awkward task.  It's considerably easier to give up and go with the 
> 
> exists() constructs which, as I've mentioned, do (in most cases) at  
> least register the dependency.
> 
> > [...] and considering reproducible package building
> 
> This right here hits the nail right on the head.  exists()  
> constructs, acting as the bandaids they are around poorly written  
> configuration scripts, can, and do, cause problems for building and  
> distributing packages in anything but an absolute virgin environment.

Well, in the case of GNOME and its constituent packages, it seems that
we have a case of automatic (indirect) dependencies run amok.  For
instance, just because a particular package may depend on, say, gtk2,
does that mean it should also automatically depend on a dozen or more
other components of GNOME as well, the majority of which will not be
employed in any way by the package?  I think not!

I just now did a "pkg_info -R esound-0.2.35_2", and was astonished to
see the number of packages listing esound as a dependency, even when
it's quite apparent that esound provides absolutely no additional
functionality to many of those packages.

I know we had quite a heated discussion some time ago in one of the
lists (or perhaps in comp.unix.bsd.freebsd.misc) on the subject of the
evils of indirect dependencies, but I don't recall any fruitful outcome
from it.

I really don't know what to suggest, or where such a discussion might
lead if we were to pursue it again, but it certainly does seem that
there's ample opportunity for some major cleaning up in the area of port
dependencies.  The current approach just seems rather heavy-handed, if
you ask me.  There should be some facility for a more fine-tuned
approach, leaning more in the direction of "when in doubt, leave it
out", rather than the current "throw it in just to be sure" methodology.

-- 
Conrad J. Sabatier <conrads@cox.net> -- "In Unix veritas"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050520160010.1c9c3ebe>