Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Nov 2005 11:00:53 -0800
From:      "Michael C. Shultz" <ringworm01@gmail.com>
To:        Craig Boston <craig@yekse.gank.org>
Cc:        Jiawei Ye <leafy7382@gmail.com>, freebsd-ports@freebsd.org
Subject:   Re: Why does security/amavisd-new depend on db3?
Message-ID:  <200511151100.54216.ringworm01@gmail.com>
In-Reply-To: <20051115184843.GB36868@nowhere>
References:  <c21e92e20511130557g4ad76176l85beb6ceee078886@mail.gmail.com> <200511150944.26278.ringworm01@gmail.com> <20051115184843.GB36868@nowhere>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 15 November 2005 10:48, Craig Boston wrote:
> On Tue, Nov 15, 2005 at 09:44:25AM -0800, Michael C. Shultz wrote:
> > Anyways, the extra, unnessesary and INCORRECT entries in +CONTENTS would
> > indeed have caused portmanager problems a short while ago.  Portmanager
> > used to only use the +CONTENTS file to determine dependencies and in this
> > case that would definitely cause trouble.
>
> It bites portupgrade users too, since it builds its database mostly out
> of the +CONTENTS files.  Sometimes things get far enough out of whack
> that not even pkgdb -F can help.
>
> > Bottom line is portmanager 0.3.5 should be able to build
> > security/amavisd-new as intended and by my own tests it does.  My
> > understanding of the bsd.ports.mk language is poor, but 5027 - 5034
> > look suspicious.
> >
> > Probably no one cares but I can't think of a single good reason to
> > transvers dependent port's dependencies when adding dependencies to
> > +CONTENTS.
>
> Don't quote me on this as it's pure extrapolation, but I think the
> reason may have to do with binary packages.  As far as I can remember,
> they have always listed _ALL_ dependencies in the top level package,
> presumably to make it easier to figure out everything you need to
> install one without having to recursively extract things. (?)
>
> If that's the case, they would have to be listed in +CONTENTS for
> pkg_create -b to work.  There may be a better way to gather the
> information though, perhaps by looking at the package database to see
> what is actually installed rather than re-generating the list every
> time.
>
> Perhaps one of the portmgrs can help clarify the reasons for the
> situation?
>
> > The fact they do should no longer cause portmanager troubles but if
> > Jiawei is to be believed it looks like portupgrade might be being
> > negatively effected by these unnessesary and incorrect entries..
>
> I haven't tried it but it might could still cause problems if some of
> the ports had been manually installed.
>
> Craig

Here is a quick example of why putting recursive dependency info into a 
+CONTENTS file can cause problems if not done correctly, it just rehashes 
what you said but maybe clarifies things for others:

MasterPort
	dependent1
	dependent1a
	dependent2
	dependent2a

dependent1
if defined( WITH_DEPEPENDENT_1b )
	dependent1b
else
	dependent1a
endif


Because MasterPort does NOT seem to look at
dependent1's +CONTENTS file no matter how
dependent1 is built Masterport records
	dependent1
	dependent1a

Even if dependent1 is built with WITH_DEPEPENDENT_1b=1
switch set.

The solution if they want so much dependency info is
to make sure it is gathered from the dependent port's
+CONTENTS file, not where ever it is they are now getting it.

-Mike

















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