Why does security/amavisd-new depend on db3?

Scot Hetzel swhetzel at gmail.com
Tue Nov 15 14:06:45 PST 2005

> This would still be wrong:
> .if ${.CURDIR} == /usr/ports/databases/p5-BerkleyDB
>  .endif
No, it would be right because when the build for security/amavisd-new
calls for the build of databases/p5-BerkleyDB, the WITH_BDB_VER
variable is set in the environment for database/p5-BerkleyDB and cause
the dependancy to be set on the correct version of Berkley DB port.

> 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|
It's similar, but not equivalent because when the security/amavisd-new
then goes to record it's dependancies on the databases/p5-BerkleyDB
port.  Using portupgrade and portmanager, security/amavisd-new
+CONTENT shows db3 as dependancy, were as the /etc/make.conf entry
will show a +CONTENT dependacy on db42.

> 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:
The incorrect dependency is being reported from databases/p5-BerkleyDB
to the security/amavisd-new port.  Which then records the incorrect
dependancy in the +CONTENT file.  By using the WITH_BDB_VER as either
a global variable or using '.if ${.CURDIR} ==
/usr/ports/database/p5-BerkleyDB' in /etc/make.conf will fix the
dependancy for security/amavisd-new.

Each time make is called the /etc/make.conf file is re-evaluated. 
Since the security/amavisd-new port calls cd
/usr/ports/database/p5-BerkleyDB ; make install (from bsd.port.mk),
the /etc/make.conf file is re-evaluated, and WITH_BDB_VER is set.


No electrons were mamed while sending this message. Only slightly bruised.

More information about the freebsd-ports mailing list