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

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 15 November 2005 14:20, Craig Boston wrote:
> On Tue, Nov 15, 2005 at 01:42:13PM -0800, Michael C. Shultz wrote:
> > God this is getting ugly.  If what your saying is true, and I have no
> > doubt that it is, then manuially installing port
> >
> > databases/p5-Berkeley
> >
> > by doing this:
> >
> > make install clean WITH_BDB_VER=42 is goint to stil cause
> > security/amavisd-new to get its +CONTENTS file wrong
> > if it is installed later.  This is not good behavior your describing.
>
> Yes, that is exactly what will happen.  Unless either amavisd-new is
> installed with the same options, or make.conf is used (either globally
> or with the CURDIR trick), it will get registered wrong.  Even when
> building manually.  The same problem applies to binary packages built
> with non-standard settings.
>
> Unfortunately it seems to be an artifact of the way that the ports
> Makefile magic works, and doesn't look easy to solve.
>
I found a relatively simple solution after studying bsd.port.mk carefully:
around line 2132 here is what the effect will be:

.if !defined(PKG_ARGS)
PORTMANAGER=	/usr/local/bin/portmanager /${CATEGORIES}/${PORTNAME} \ 
		  package-depends
#####PORTMANAGER###########
#PKG_ARGS=	-v -c -${COMMENT:Q} \
#		-d ${DESCR}	\
#		-f ${TMPPLIST}	\
#		-p ${PREFIX}	\
#		-P "`cd ${.CURDIR} && ${MAKE} package-depends | ${GREP} -v -E 
${PKG_IGNORE_DEPENDS} | ${SORT} -u`" ${EXTRA_PKG_ARGS} $${_LATE_PKG_ARGS}
PKG_ARGS=	-v -c -${COMMENT:Q} \
		-d ${DESCR}	\
		-f ${TMPPLIST}	\
		-p ${PREFIX}	\
		-P "`cd ${.CURDIR} && ${PORTMANAGER} | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | 
${SORT} -u`" ${EXTRA_PKG_ARGS} $${_LATE_PKG_ARGS}

I'm hoping I can just add something like:

make install	\ 
-DPORTMANAGER=/usr/local/bin/portmanager /${CATEGORIES}/${PORTNAME} \ 
		  package-depends	\
-DPKG_ARGS=-v -c -${COMMENT:Q} \
		-d ${DESCR}	\
		-f ${TMPPLIST}	\
		-p ${PREFIX}	\
		-P "`cd ${.CURDIR} && ${PORTMANAGER} | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} |

when portmanager runs make install.

It's easy enough to have portmanager generate a correct package-depends list, 
the trick will be getting it used in the +CONTENTS file. What do you think?

-Mike





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