Subject: pkg/31490: pkgsrc stomps on *BSD make variable namespace
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Hauke Fath <hf@spg.tu-darmstadt.de>
List: pkgsrc-bugs
Date: 10/06/2005 09:23:00
>Number:         31490
>Category:       pkg
>Synopsis:       pkgsrc stomps on *BSD make variable namespace
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          doc-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Oct 06 09:23:00 +0000 2005
>Originator:     Hauke Fath <hf@spg.tu-darmstadt.de>
>Release:        NetBSD 2.0_STABLE
>Organization:
-- 
/~\  The ASCII Ribbon Campaign                    Hauke Fath
\ /    No HTML/RTF in email	        Institut für Nachrichtentechnik
 X     No Word docs in email	                  TU Darmstadt
/ \  Respect for open standards              Ruf +49-6151-16-3281
>Environment:
	
	
System: NetBSD heiligenberg 2.0_STABLE NetBSD 2.0_STABLE (HEILIGENBERG) #6: Tue Jul 19 16:15:57 CEST 2005 hf@heiligenberg:/var/obj/netbsd-builds/2_0/i386/sys/arch/i386/compile/HEILIGENBERG i386
Architecture: i386
Machine: i386
>Description:

	pkgsrc does not respect the *BSD make variables that the base
	OS defines in /usr/share/mk. As a result, seemingly
	conspicuous /etc/mk.conf entries can break builds in most
	unexpected ways.

>How-To-Repeat:

	Set USE_TOOLS=no in /etc/mk.conf, and watch bulk builds fail
	in weird ways.

	http://mail-index.netbsd.org/tech-pkg/2005/09/28/0006.html
	http://mail-index.netbsd.org/tech-pkg/2005/10/04/0012.html

	grep(1) around and find that pkgsrc scripts "re-use"
	well-known base	OS make	variables in unexpected ways.

>Fix:
	A clean solution would be to keep pkgsrc make variables in a
	seperate namespace.

	Plan B is to set up /etc/mk.conf like

	.ifdef BSD_PKG_MK
	# pkgsrc variables go here

	...

	.else
	# base OS variables go here

	...

	.endif

	The need for this as well as the proper setup needs to be
	documented prominently in doc/pkgsrc.txt as well as with a
	mk.conf sample file, probably both in pkgsrc _and_ in the NetBSD
	/usr/share/examples section.

>Unformatted: