Subject: Re: CVS commit: pkgsrc/mk
To: Nick Hudson <skrll@netbsd.org>
From: Johnny Lam <jlam@jgrind.org>
List: pkgsrc-changes
Date: 01/31/2002 09:24:47
On Thu, Jan 31, 2002 at 05:09:25PM +0000, Nick Hudson wrote:
> On Sunday 27 January 2002 7:07 pm, Johnny C. Lam wrote:
> > Module Name:	pkgsrc
> > Committed By:	jlam
> > Date:		Sun Jan 27 19:07:42 UTC 2002
> > 
> > Modified Files:
> > 	pkgsrc/mk: bsd.pkg.mk
> > 
> > Log Message:
> > MAKE_ENV is the make environment passed down to the build process.  It
> > shouldn't be set as the environment for a make process invoked at the
> > package (${.CURDIR}) level during the install phase because it can contain
> > harmful settings.
> 
> OK. This breaks netsaint-base and friends because netsaint-base has a 
> post-install target that relied on having BSD_INSTALL_* in the environment. 
> What's the best thing to do here? It would seem sensible to have these 
> available.

This fragment from netsaint-base/Makefile is broken:

post-install:
        cd ${WRKSRC} && ${MAKE} install-config

It should instead by:

post-install:
        cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} install-config

I'll commit the change for correctness, but I can't test this.

The principle here is that if one wants to make a target from some Makefile
within ${WRKSRC}, then the right way to call the target is:

	${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} target

The environment should be set explicitly, and one should _always_ call
"${MAKE_PROGRAM}", and not "${MAKE}" since the former always refers to
the name of the actual make program used, regardless of whether USE_GMAKE
is defined or not.

	Cheers,

	-- Johnny Lam <jlam@jgrind.org>