Why does security/amavisd-new depend on db3?

Michael C. Shultz ringworm01 at gmail.com
Tue Nov 15 11:10:19 PST 2005


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
















More information about the freebsd-ports mailing list