Subject: pkg/36387: mk/flavor/pkg/install-dependencies, gtk2+ and PKG_BUILD_OPTIONS
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Joachim König <him@online.de>
List: pkgsrc-bugs
Date: 05/25/2007 09:05:00
>Number: 36387
>Category: pkg
>Synopsis: mk/flavor/pkg/install-dependencies, gtk2+ and PKG_BUILD_OPTIONS
>Confidential: no
>Severity: critical
>Priority: low
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri May 25 09:05:00 +0000 2007
>Originator: Joachim König
>Release: NetBSD 4.99.19 i386
>Organization:
>Environment:
System: NetBSD 4.99.19 (JOACHIM_MPACPI) #1: Mon May 14 11:49:26 CEST 2007
joachim@dell:/usr/src/sys/arch/i386/compile/JOACHIM_MPACPI
>Description:
x11/gtk2 uses "gtk2+" as package name. Using multiple options
for gtk2, e.g. using the "cups" option and the automatically
added "x11" option leads to the following error when trying to
build depending packages:
# make: don't know how to make x11. Stop
Here an excerpt from a build of www/firefox with the make
command called by install-dependecies echoed to the tty
before executing it:
----------------- cut here --------------
=> Required installed package renderproto>=0.9.1: renderproto-0.9.2 found
=> Required installed package kbproto>=1.0.2: kbproto-1.0.3 found
=> Required installed package xproto>=7.0.9: xproto-7.0.10 found
=> Required installed package libXt>=1.0.0: NOT found
=> Verifying package for ../../x11/libXt
/usr/bin/env PATH=/pkg_comp/obj/pkgsrc/www/firefox/work/.wrapper/bin:/pkg_comp/obj/pkgsrc/www/firefox/work/.buildlink/bin:/pkg_comp/obj/pkgsrc/www/firefox/work/.tools/bin:/pkg_comp/obj/pkgsrc/www/firefox/work/.gcc/bin:/usr/pkg/bin:/usr/pkg/bin:/usr/pkg/sbin:/bin:/usr/bin:/sbin/:/usr/sbin _PKGSRC_DEPS=, firefox-2.0.0.3nb1 PKGNAME_REQD=libXt>=1.0.0 /usr/pkg/bin/bmake _MAKE=/usr/pkg/bin/bmake OPSYS=NetBSD OS_VERSION=4.99.19 LOWER_OS_VERSION=4.99.19 LOWER_OPSYS=netbsd _PKGSRCDIR=/usr/pkgsrc PKGTOOLS_VERSION=20070308 PKG_BUILD_OPTIONS.gtk2+=cups\ x11 PKG_BUILD_OPTIONS.pango=x11 PKG_BUILD_OPTIONS.cairo=x11 _CC=/usr/bin/cc _PATH_ORIG=/usr/pkg/bin:/usr/pkg/sbin:/bin:/usr/bin:/sbin/:/usr/sbin _AUTOMATIC=yes package
bmake: don't know how to make x11. Stop
bmake: stopped in /usr/pkgsrc/x11/libXt
*** Error code 2
---------------- cut here --------------
obviously, the "PKG_BUILD_OPTIONS.gtk2+=cups\ x11" in the call is
responsible for the problem. Removing e.g. the "cups" option for
gtk2+ (e.g. in mk.conf) allows for continuing the build but is obviously
not a fix.
>How-To-Repeat:
set PKG_OPTIONS.gtk2+ to "cups" in mk.conf and try to build a
package that depends on gtk2+.
>Fix:
Using a "+" in a package name is obviously not a good idea, as
make variable names are derived from it. In order to use the
"+=" syntax to add a value to the list, one has to add an additional
blank that is not necessary for normal variables.
Therefore the easiest way would be to disallow "+" in packages.
The real cause seems to be makes command line parsing of
variable assignments containing a "+" in their name.