Subject: pkg/36174: pkgsrc/mk/install/install.mk failure
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: brad harder <bharder@methodlogic.net>
List: pkgsrc-bugs
Date: 04/19/2007 19:00:01
>Number:         36174
>Category:       pkg
>Synopsis:       pkgsrc mk/install/install.mk broken
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Apr 19 19:00:01 +0000 2007
>Originator:     brad harder <bharder@methodlogic.net>
>Release:        NetBSD 4.0_BETA2
>Organization:
http://www.methodlogic.net
>Environment:
System: NetBSD manchester 4.0_BETA2 NetBSD 4.0_BETA2 (manchester) #29: Wed Apr 18 13:19:32 PDT 2007 root@manchester:/usr/obj/sys/arch/i386/compile/manchester i386
Architecture: i386
Machine: i386
>Description:
I just (Thu Apr 19 10:34:42 PDT 2007) updated pkgsrc (-current), and running pkg_chk -un yields:
make: "/usr/pkgsrc/mk/install/install.mk" line 150: Malformed conditional (!empty(INSTALLATION_DIRS_FROM_PLIST:M[Yy][Ee][Ss]))
make: Fatal errors encountered -- cannot continue
eval:  make: stopped in /usr/pkgsrc/pkgtools/pkg_chk: not found

I reverted to the previous install.mk and actually received the same error, but that version (1.40) had previously been installed since March 09 (with no problems... weird.)

My own testing reveals that the issue is testing (with a modifier) a non-existant variable.

>How-To-Repeat:
	With latest pkgsrc, probably anything tool that needs to work w/ the pkgsrc repository on disk (_not_ db of installed packages, though).
	I updated, then triggered the error checking for packages that needed updating w/ "pkg_chk -un"
>Fix:

--- ./install.mk.orig   2007-04-19 11:45:32.000000000 -0700
+++ ./install.mk        2007-04-19 11:50:20.000000000 -0700
@@ -147,7 +147,7 @@
 _INSTALL_ALL_TARGETS+=         check-files-pre
 .endif
 _INSTALL_ALL_TARGETS+=         install-makedirs
-.if !empty(INSTALLATION_DIRS_FROM_PLIST:M[Yy][Ee][Ss])
+.if !empty(INSTALLATION_DIRS_FROM_PLIST) && !empty(INSTALLATION_DIRS_FROM_PLIST:M[Yy][Ee][Ss])
 _INSTALL_ALL_TARGETS+=         install-dirs-from-PLIST
 .endif
 .if ${_USE_DESTDIR} == "no"