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