Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Nov 2005 13:01:15 -0800
From:      "Michael C. Shultz" <ringworm01@gmail.com>
To:        Scot Hetzel <swhetzel@gmail.com>
Cc:        Craig Boston <craig@yekse.gank.org>, Jiawei Ye <leafy7382@gmail.com>, freebsd-ports@freebsd.org
Subject:   Re: Why does security/amavisd-new depend on db3?
Message-ID:  <200511151301.16549.ringworm01@gmail.com>
In-Reply-To: <790a9fff0511151300k51a95084sc8f97181d88e1022@mail.gmail.com>
References:  <c21e92e20511130557g4ad76176l85beb6ceee078886@mail.gmail.com> <200511151154.32536.ringworm01@gmail.com> <790a9fff0511151300k51a95084sc8f97181d88e1022@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 15 November 2005 13:00, Scot Hetzel wrote:
> On 11/15/05, Michael C. Shultz <ringworm01@gmail.com> wrote:
> > On Tuesday 15 November 2005 11:45, Scot Hetzel wrote:
> > > On 11/15/05, Jiawei Ye <leafy7382@gmail.com> wrote:
> > > > On 11/15/05, Michael C. Shultz <ringworm01@gmail.com> wrote:
> > > > > The WITH_BDB_VER=42 only needs to be applied to
> > > > > databases/p5-BerkeleyDB,
> > > > >
> > > > > when "portmanager security/amavisd-new" is run ports will build in
> > > > > this order:
> > > > >
> > > > > ports/databases/db42                    before
> > > > > databases/p5-BerkeleyDB         before
> > > > > security/amavisd-new
> > > > >
> > > > > I'm sure there is a simple explanaition for the problem if Jiawei
> > > > > would only post something demonstrating how things are going wrong
> > > > > for him instead of merely describing what he thinks is happening.
> > > > >
> > > > > -Mike
> > > >
> > > > I am trying to, Mike. Now that xorg-clients has a RUN_DEPENDS on
> > > > xterm, which lists xorg-clients as CONFLICT adds a lot to the
> > > > frustration :(
> > >
> > > The problem is rather complex, as there are two problems:
> > >
> > > 1. When using portupgrade, or portmanager they don't check if a
> > > depending port require having a variable set that is defined in these
> > > tools configuration files before upgrading an existing port.
> >
> >        Absolutly wrong, definitely for portmanager and likely for
> >        portupgrade.  The real problem is identified further down in this
> >        thread.
>
> What I was refering to is say you have a Port A, that depends on Port
> B.  Now Port B can depend on either Port C or Port D depending on if a
> WITH_X_VER variable is set.
>
> Now when you do  portupgrade/portmanager for Port A, the WITH_X_VER
> variable is not set in the tools config file for Port A, but is set
> for Port B.  This is what causes the wrong dependancy to be listed in
> the +CONTENT file for Port A.
>
> > > The work arround for this is to add the variable to /etc/make.conf:
> > >
> > > .if ${.CURDIR} == /usr/ports/databases/p5-BerkleyDB
> > > WITH_BDB_VER?=42
> > > .endif
> >
> >        Not nessesary. here is a sample portmanager output
> >        with the following in pm-020.conf
> >
> >        databases/p5-BerkeleyDB|WITH_BDB_VER=42|
> >
> >        Notice specifically:
> >
> > make fetch WITH_BDB_VER=42
> > make WITH_BDB_VER=42
> >
> >        If make fetch/clean/install etc is run portmanager does
> >        apply WITH_BDB_VER=42, test for yourself before saying
> >        such things, please.
>
> What I was refering to was the port that depended on this port was
> listing it's dependancies wrong in the + CONTENTS file. The use of the
> /etc/make.conf entry was a way to get arround this limitation in the
> bsd.port.mk's calculation of the dependancies for the port.
>
> Scot
>
This would still be wrong:

.if ${.CURDIR} == /usr/ports/databases/p5-BerkleyDB
WITH_BDB_VER?=42
 .endi

It is equivalent to:

in pkgtools.conf:
  MAKE_ARGS = {
        'databases/p5-BerkeleyDB' => 'WITH_BDB_VER=42',

in pm-020.conf
databases/p5-BerkeleyDB|WITH_BDB_VER=42|

Maybe you mean to set it as a global
value ie. without the .if ${.CURDIR} == /usr/ports/databases/p5-BerkleyDB
wrapper?  If that were the case it would still have no effect on
security/amavisd-new where the incorrect dependency is being recorded,
see for yourself:

cd /usr/ports/security/amavisd-new
/usr/ports/security/amavisd-new>grep WITH Makefile

.if !defined(WITH_MILTER) || (!exists(/usr/lib/libmilter.a) 
&& !exists(${PREFIX}/lib/libmilter.a))
.if defined(WITH_MILTER) && !defined(AMAVIS_NOAMAVIS)
.if defined(WITH_MYSQL)
.if defined(WITH_PGSQL)
.if defined(WITH_LDAP)





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