15814060 SUNBT7196216 userland build mangles PKG_MACROS containing whitespace
authorShawn Walker-Salas <shawn.walker@oracle.com>
Tue, 09 Feb 2016 15:21:35 -0800
changeset 5427 25b736152081
parent 5426 095b7eacbee6
child 5428 3c05d530e67e
15814060 SUNBT7196216 userland build mangles PKG_MACROS containing whitespace 15810599 SUNBT7192098 human readable version in shell/ksh93 isn't 22665937 various components have unresolved or unused macros in package manifests 22666022 PYVER, PERLVER, RUBY_VERSION mechanism leaves macros unresolved in GENFRAG case
components/avahi/avahi-gui.p5m
components/avahi/avahi.p5m
components/cdrtools/Makefile
components/erlang/Makefile
components/golang/crypto-15.p5m
components/golang/crypto.p5m
components/golang/image-15.p5m
components/golang/image.p5m
components/golang/lint-15.p5m
components/golang/lint.p5m
components/golang/net-15.p5m
components/golang/net.p5m
components/golang/sys-15.p5m
components/golang/sys.p5m
components/golang/text-15.p5m
components/golang/text.p5m
components/golang/tools-15.p5m
components/golang/tools.p5m
components/golang/tour-15.p5m
components/golang/tour.p5m
components/ksh93/Makefile
components/ksh93/developer-astdev93.p5m
components/ksh93/ksh93.p5m
components/ksh93/source-demo-ksh93.p5m
components/net-snmp/Makefile
components/openscap/openscap-perl-PERLVER.p5m
components/openscap/openscap-python-PYVER.p5m
components/openstack/cinder/Makefile
components/openstack/glance/Makefile
components/openstack/heat/Makefile
components/openstack/horizon/Makefile
components/openstack/ironic/Makefile
components/openstack/keystone/Makefile
components/openstack/neutron/Makefile
components/openstack/nova/Makefile
components/openstack/swift/Makefile
components/perl512/Makefile
components/python/astroid/astroid-PYVER.p5m
components/python/logilab-common/logilab-common-PYVER.p5m
components/python/pylint/Makefile
components/python/pylint/pylint-PYVER.p5m
components/python/setuptools/setuptools-PYVER.p5m
components/ruby/puppet/Makefile
components/vim/Makefile
doc/makefile-variables.txt
make-rules/ips.mk
--- a/components/avahi/avahi-gui.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/avahi/avahi-gui.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -68,4 +68,4 @@
 link path=usr/share/man/man1/bvnc.1 target=bssh.1
 
 # license file
-license avahi.license license=$(COPYRIGHTS)
+license avahi.license license=GPLv2.1
--- a/components/avahi/avahi.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/avahi/avahi.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -247,4 +247,4 @@
 #
 
 # license file
-license avahi.license license=$(COPYRIGHTS)
+license avahi.license license=GPLv2.1
--- a/components/cdrtools/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/cdrtools/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -18,14 +18,15 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=         cdrtools
 COMPONENT_VERSION=      3.01
-IPS_COMPONENT_VERSION=  3.1 # Zero not allowed in front of number
+# Zero not allowed in front of number
+IPS_COMPONENT_VERSION=  3.1
 COMPONENT_SUBVERSION=   a22
 COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL= 	http://cdrecord.berlios.de/private/cdrecord.html 
--- a/components/erlang/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/erlang/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 # Built in SFW with gcc and builds cleanly now only with gcc
@@ -83,9 +83,6 @@
 CONFIGURE_OPTIONS.64 += LDFLAGS="$(LDFLAGS) -m64"
 CONFIGURE_OPTIONS.64 += LIBS="-m64"
 
-# Needed for 'set name=info.source-url' action in erlang-doc.p5m
-PKG_MACROS += COMPONENT_ARCHIVE_URL_2=$(COMPONENT_ARCHIVE_URL_2)
-
 # Use cp(1) instead of cloney because erlang's 'install' target uses 'tar'
 # to copy files and our tar doesn't handle long links by default.  Between
 # the use of 'tar' and 'ld', a path adjustment wasn't an option due to the
--- a/components/golang/crypto-15.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/crypto-15.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -30,7 +30,8 @@
 set name=com.oracle.info.tpno value=$(TPNO_crypto)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_crypto)
+set name=info.repository-changeset value=$(GIT_COMMIT_ID_crypto)
+set name=info.repository-url value=$(GIT_REPO_crypto)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/crypto.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/crypto.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -30,7 +30,7 @@
 set name=com.oracle.info.tpno value=$(TPNO_crypto)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_crypto)
+set name=info.repository-url value=$(GIT_REPO_crypto)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/image-15.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/image-15.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -30,7 +30,8 @@
 set name=com.oracle.info.tpno value=$(TPNO_image)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_image)
+set name=info.repository-changeset value=$(GIT_COMMIT_ID_image)
+set name=info.repository-url value=$(GIT_REPO_image)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/image.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/image.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -30,7 +30,7 @@
 set name=com.oracle.info.tpno value=$(TPNO_image)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_image)
+set name=info.repository-url value=$(GIT_REPO_image)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/lint-15.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/lint-15.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -31,7 +31,8 @@
 set name=com.oracle.info.tpno value=$(TPNO_lint)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_lint)
+set name=info.repository-changeset value=$(GIT_COMMIT_ID_lint)
+set name=info.repository-url value=$(GIT_REPO_lint)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/lint.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/lint.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -31,7 +31,7 @@
 set name=com.oracle.info.tpno value=$(TPNO_lint)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_lint)
+set name=info.repository-url value=$(GIT_REPO_lint)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/net-15.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/net-15.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -30,7 +30,8 @@
 set name=com.oracle.info.tpno value=$(TPNO_net)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_net)
+set name=info.repository-changeset value=$(GIT_COMMIT_ID_net)
+set name=info.repository-url value=$(GIT_REPO_net)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/net.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/net.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -30,7 +30,7 @@
 set name=com.oracle.info.tpno value=$(TPNO_net)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_net)
+set name=info.repository-url value=$(GIT_REPO_net)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/sys-15.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/sys-15.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -1,4 +1,4 @@
-#
+#net
 # CDDL HEADER START
 #
 # The contents of this file are subject to the terms of the
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -30,7 +30,8 @@
 set name=com.oracle.info.tpno value=$(TPNO_sys)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_sys)
+set name=info.repository-changeset value=$(GIT_COMMIT_ID_sys)
+set name=info.repository-url value=$(GIT_REPO_sys)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/sys.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/sys.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -30,7 +30,7 @@
 set name=com.oracle.info.tpno value=$(TPNO_sys)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_sys)
+set name=info.repository-url value=$(GIT_REPO_sys)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/text-15.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/text-15.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -30,7 +30,8 @@
 set name=com.oracle.info.tpno value=$(TPNO_text)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_text)
+set name=info.repository-changeset value=$(GIT_COMMIT_ID_text)
+set name=info.repository-url value=$(GIT_REPO_text)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/text.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/text.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -30,7 +30,7 @@
 set name=com.oracle.info.tpno value=$(TPNO_text)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_text)
+set name=info.repository-url value=$(GIT_REPO_text)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/tools-15.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/tools-15.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -31,7 +31,8 @@
 set name=com.oracle.info.tpno value=$(TPNO_tools)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_tools)
+set name=info.repository-changeset value=$(GIT_COMMIT_ID_tools)
+set name=info.repository-url value=$(GIT_REPO_tools)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/tools.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/tools.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -31,7 +31,7 @@
 set name=com.oracle.info.tpno value=$(TPNO_tools)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_tools)
+set name=info.repository-url value=$(GIT_REPO_tools)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/tour-15.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/tour-15.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -31,7 +31,8 @@
 set name=com.oracle.info.tpno value=$(TPNO_tour)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_tour)
+set name=info.repository-changeset value=$(GIT_COMMIT_ID_tour)
+set name=info.repository-url value=$(GIT_REPO_tour)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/golang/tour.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/golang/tour.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <include golang-supp-pkg.mog>
@@ -31,7 +31,7 @@
 set name=com.oracle.info.tpno value=$(TPNO_tour)
 set name=info.classification \
     value="org.opensolaris.category.2008:Development/Other Languages"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL_tour)
+set name=info.repository-url value=$(GIT_REPO_tour)
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=$(ARC_CASE)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
--- a/components/ksh93/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/ksh93/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -146,7 +146,7 @@
 #
 IPS_PKG_NAME= ksh93
 IPS_COMPONENT_VERSION= 93.21.1.20120801
-IPS_HUMAN_VERSION= "93u+ 2012-08-01"
+HUMAN_VERSION= 93u+ 2012-08-01
 
 # Exposes a bug in ON.
 ifeq ($(BUILD_TYPE), evaluation)
--- a/components/ksh93/developer-astdev93.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/ksh93/developer-astdev93.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 # The man pages are all at the top of a "files" directory; setting the hash to
@@ -33,7 +33,7 @@
 set name=pkg.summary value="AT&T AST development utilities"
 set name=pkg.description \
     value="AT&T AST development utilities for extracting messages for localisation"
-set name=pkg.human-version value=$(IPS_HUMAN_VERSION)
+set name=pkg.human-version value=$(DQ)$(HUMAN_VERSION)$(DQ)
 set name=com.oracle.info.description value="the AT&T AST development utilities"
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification \
--- a/components/ksh93/ksh93.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/ksh93/ksh93.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 # The man pages are all at the top of a "files" directory; setting the hash to
@@ -32,7 +32,7 @@
 set name=pkg.summary value="Ksh93 - The AT&T Korn Shell"
 set name=pkg.description \
     value="Korn Shell 93: A command and programming language that executes commands read from a terminal or a file"
-set name=pkg.human-version value=$(IPS_HUMAN_VERSION)
+set name=pkg.human-version value=$(DQ)$(HUMAN_VERSION)$(DQ)
 
 # This package name has known conflicts with other packages in the WOS
 set name=pkg.linted.pkglint.manifest004 value=true
--- a/components/ksh93/source-demo-ksh93.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/ksh93/source-demo-ksh93.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 # The man pages are all at the top of a "files" directory; setting the hash to
@@ -32,7 +32,7 @@
     value=pkg:/source/demo/ksh93@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="KornShell demos"
 set name=pkg.description value="Source code to demonstrate the KornShell"
-set name=pkg.human-version value=$(IPS_HUMAN_VERSION)
+set name=pkg.human-version value=$(DQ)$(HUMAN_VERSION)$(DQ)
 
 # This package name has known conflicts with other packages in the WOS
 set name=pkg.linted.pkglint.manifest004 value=true
--- a/components/net-snmp/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/net-snmp/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../make-rules/shared-macros.mk
@@ -87,8 +87,6 @@
 CONFIGURE_OPTIONS	+=	CPPFLAGS="$(CPPFLAGS)"
 CONFIGURE_OPTIONS	+=	CC="$(CC)"
 
-PKG_MACROS +=	BUILD_DIR=$(BUILD_DIR)
-
 COMPONENT_PRE_CONFIGURE_ACTION = \
 	($(CLONEY) $(SOURCE_DIR) $(@D); $(CLONEY) $(COMPONENT_DIR)/sun $(@D)/sun)
 
--- a/components/openscap/openscap-perl-PERLVER.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/openscap/openscap-perl-PERLVER.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,15 +18,15 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 set name=pkg.fmri \
     value=pkg:/library/perl-5/openscap-$(PLV)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary \
-    value="Perl $(PERLVER) bindings for the Open implementation of SCAP"
+    value="Perl $(MAYBE_PERLVER_SPACE)bindings for the Open implementation of SCAP"
 set name=com.oracle.info.description \
-    value="Perl $(PERLVER) bindings for the Open implementation of SCAP"
+    value="Perl $(MAYBE_PERLVER_SPACE)bindings for the Open implementation of SCAP"
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification value=org.opensolaris.category.2008:System/Security
 set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
--- a/components/openscap/openscap-python-PYVER.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/openscap/openscap-python-PYVER.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,15 +18,15 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 set name=pkg.fmri \
     value=pkg:/library/python/openscap-$(PYV)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary \
-    value="Python $(PYVER) bindings for the Open implementation of SCAP"
+    value="Python $(MAYBE_PYVER_SPACE)bindings for the Open implementation of SCAP"
 set name=com.oracle.info.description \
-    value="the Python $(PYVER) bindings for the Open implementation of SCAP"
+    value="the Python $(MAYBE_PYVER_SPACE)bindings for the Open implementation of SCAP"
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification value=org.opensolaris.category.2008:System/Security
 set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
--- a/components/openstack/cinder/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/openstack/cinder/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -41,6 +41,8 @@
 
 TPNO=			25784
 
+PKG_VARS +=		COMPONENT_BE_VERSION
+
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
@@ -51,7 +53,6 @@
 # only need to deliver one version.  The manifest is parameterized, though.
 PYTHON_VERSIONS=	2.7
 
-PKG_MACROS +=		COMPONENT_BE_VERSION=$(COMPONENT_BE_VERSION)
 PKG_MACROS +=		PYVER=$(PYTHON_VERSIONS)
 PKG_MACROS +=		PYV=$(shell echo $(PYTHON_VERSIONS) | tr -d .)
 
--- a/components/openstack/glance/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/openstack/glance/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -41,6 +41,8 @@
 
 TPNO=			25785
 
+PKG_VARS +=		COMPONENT_BE_VERSION
+
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
@@ -51,7 +53,6 @@
 # only need to deliver one version.  The manifest is parameterized, though.
 PYTHON_VERSIONS=	2.7
 
-PKG_MACROS +=		COMPONENT_BE_VERSION=$(COMPONENT_BE_VERSION)
 PKG_MACROS +=		PYVER=$(PYTHON_VERSIONS)
 PKG_MACROS +=		PYV=$(shell echo $(PYTHON_VERSIONS) | tr -d .)
 
--- a/components/openstack/heat/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/openstack/heat/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -41,6 +41,8 @@
 
 TPNO=			25786
 
+PKG_VARS +=		COMPONENT_BE_VERSION
+
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
@@ -51,7 +53,6 @@
 # only need to deliver one version.  The manifest is parameterized, though.
 PYTHON_VERSIONS=	2.7
 
-PKG_MACROS +=		COMPONENT_BE_VERSION=$(COMPONENT_BE_VERSION)
 PKG_MACROS +=		PYVER=$(PYTHON_VERSIONS)
 PKG_MACROS +=		PYV=$(shell echo $(PYTHON_VERSIONS) | tr -d .)
 
--- a/components/openstack/horizon/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/openstack/horizon/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -89,7 +89,7 @@
 COMPONENT_ARCHIVE_HASH_2 = \
 	sha256:7cad216b226399cbe8d2909ed5b9f28d724907b9c9e1e078e6e25d320a3d5dd7
 COMPONENT_ARCHIVE_URL_2 = $(call pypi_url,2)
-PKG_MACROS +=		VERSION_ANGULAR=$(VERSION_ANGULAR)
+PKG_VARS +=		VERSION_ANGULAR
 
 COMPONENT_NAME_3 =	XStatic-Bootstrap-Datepicker
 VERSION_BOOTSTRAP_DP=	1.3.1.0
@@ -98,7 +98,7 @@
 COMPONENT_ARCHIVE_HASH_3 = \
 	sha256:9edc9b77501001fcee9fbf4bf0a722c263efd928ef928b40081a8269fdd9a944
 COMPONENT_ARCHIVE_URL_3 = $(call pypi_url,3)
-PKG_MACROS +=		VERSION_BOOTSTRAP_DP=$(VERSION_BOOTSTRAP_DP)
+PKG_VARS +=		VERSION_BOOTSTRAP_DP
 
 COMPONENT_NAME_4 =	XStatic-Bootstrap-SCSS
 VERSION_BOOTSTRAP_SCSS=	3.2.0.0
@@ -107,7 +107,7 @@
 COMPONENT_ARCHIVE_HASH_4 = \
 	sha256:7e9858737e2e6aac921ec7a3fca627e522901c3061611e154ebc0b8a892c7018
 COMPONENT_ARCHIVE_URL_4 = $(call pypi_url,4)
-PKG_MACROS +=		VERSION_BOOTSTRAP_SCSS=$(VERSION_BOOTSTRAP_SCSS)
+PKG_VARS +=		VERSION_BOOTSTRAP_SCSS
 
 COMPONENT_NAME_5 =	XStatic-D3
 VERSION_D3 =		3.1.6.2
@@ -116,7 +116,7 @@
 COMPONENT_ARCHIVE_HASH_5 = \
 	sha256:46fe521f8dad99f5e20f6702180510c37b81d11f1d78119d308fcec31381f90e
 COMPONENT_ARCHIVE_URL_5 = $(call pypi_url,5)
-PKG_MACROS +=		VERSION_D3=$(VERSION_D3)
+PKG_VARS +=		VERSION_D3
 
 COMPONENT_NAME_6 =	XStatic-Font-Awesome
 VERSION_FONT_AWESOME =	4.3.0.0
@@ -125,7 +125,7 @@
 COMPONENT_ARCHIVE_HASH_6 = \
 	sha256:d2c0548990a22744ad20013e1d095de8ba1ea56b1878d8393a721205b03885c3
 COMPONENT_ARCHIVE_URL_6 = $(call pypi_url,6)
-PKG_MACROS +=		VERSION_FONT_AWESOME=$(VERSION_FONT_AWESOME)
+PKG_VARS +=		VERSION_FONT_AWESOME
 
 COMPONENT_NAME_7 =	XStatic-Hogan
 VERSION_HOGAN =		2.0.0.2
@@ -134,7 +134,7 @@
 COMPONENT_ARCHIVE_HASH_7 = \
 	sha256:5941bc7fb2a09916b8837848e6fc2a13b2dfc271811e9b522c61e1337d5fc2bd
 COMPONENT_ARCHIVE_URL_7 = $(call pypi_url,7)
-PKG_MACROS +=		VERSION_HOGAN=$(VERSION_HOGAN)
+PKG_VARS +=		VERSION_HOGAN
 
 COMPONENT_NAME_8 =	XStatic-jQuery
 VERSION_JQUERY =	1.10.2.1
@@ -143,7 +143,7 @@
 COMPONENT_ARCHIVE_HASH_8 = \
 	sha256:83416a6bb86e8534858c4d1ddca45e881c87639da6f78000c28c3a193fe91305
 COMPONENT_ARCHIVE_URL_8 = $(call pypi_url,8)
-PKG_MACROS +=		VERSION_JQUERY=$(VERSION_JQUERY)
+PKG_VARS +=		VERSION_JQUERY
 
 COMPONENT_NAME_9 =	XStatic-JQuery-Migrate
 VERSION_JQUERY_MIGRATE=	1.2.1.1
@@ -152,7 +152,7 @@
 COMPONENT_ARCHIVE_HASH_9 = \
 	sha256:e2959b3df49afdddb00d36b74cca727a91b994b9f4edb993d7264731a750900e
 COMPONENT_ARCHIVE_URL_9 = $(call pypi_url,9)
-PKG_MACROS +=		VERSION_JQUERY_MIGRATE=$(VERSION_JQUERY_MIGRATE)
+PKG_VARS +=		VERSION_JQUERY_MIGRATE
 
 COMPONENT_NAME_10 =	XStatic-jquery-ui
 VERSION_JQUERY_UI =	1.11.0.1
@@ -161,7 +161,7 @@
 COMPONENT_ARCHIVE_HASH_10 = \
 	sha256:099b1836eb0d91b8dc98f5b8a6b856a2631d43af0d47f33ef90ee72ed37bda58
 COMPONENT_ARCHIVE_URL_10 = $(call pypi_url,10)
-PKG_MACROS +=		VERSION_JQUERY_UI=$(VERSION_JQUERY_UI)
+PKG_VARS +=		VERSION_JQUERY_UI
 
 COMPONENT_NAME_11 =	XStatic-JQuery.quicksearch
 VERSION_JQUERY_QS =	2.0.3.1
@@ -170,7 +170,7 @@
 COMPONENT_ARCHIVE_HASH_11 = \
 	sha256:1271571b420417add56c274fd935e81bfc79e0d54a03559d6ba5ef369f358477
 COMPONENT_ARCHIVE_URL_11 = $(call pypi_url,11)
-PKG_MACROS +=		VERSION_JQUERY_QS=$(VERSION_JQUERY_QS)
+PKG_VARS +=		VERSION_JQUERY_QS
 
 COMPONENT_NAME_12 =	XStatic-JQuery.TableSorter
 VERSION_JQUERY_TS =	2.14.5.1
@@ -179,7 +179,7 @@
 COMPONENT_ARCHIVE_HASH_12 = \
 	sha256:3ba24aecd9a3dc71a79dd4096fa5a8a041c3a7b892c61d05e6e46de0605070f0
 COMPONENT_ARCHIVE_URL_12 = $(call pypi_url,12)
-PKG_MACROS +=		VERSION_JQUERY_TS=$(VERSION_JQUERY_TS)
+PKG_VARS +=		VERSION_JQUERY_TS
 
 COMPONENT_NAME_13 =	XStatic-JSEncrypt
 VERSION_JSENCRYPT =	2.0.0.2
@@ -188,7 +188,7 @@
 COMPONENT_ARCHIVE_HASH_13 = \
 	sha256:5852892afc6f80c7848f4110b6dad190a54aeb908271d67aaeae9d966f4a26b5
 COMPONENT_ARCHIVE_URL_13 = $(call pypi_url,13)
-PKG_MACROS +=		VERSION_JSENCRYPT=$(VERSION_JSENCRYPT)
+PKG_VARS +=		VERSION_JSENCRYPT
 
 COMPONENT_NAME_14 =	XStatic-Rickshaw
 VERSION_RICKSHAW =	1.5.0.0
@@ -197,7 +197,7 @@
 COMPONENT_ARCHIVE_HASH_14 = \
 	sha256:147574228757254442700a9eea5150f14acb1224ef0612f896b663ab58406de8
 COMPONENT_ARCHIVE_URL_14 = $(call pypi_url,14)
-PKG_MACROS +=		VERSION_RICKSHAW=$(VERSION_RICKSHAW)
+PKG_VARS +=		VERSION_RICKSHAW
 
 COMPONENT_NAME_15 =	XStatic-Spin
 VERSION_SPIN =		1.2.5.2
@@ -206,7 +206,9 @@
 COMPONENT_ARCHIVE_HASH_15 = \
 	sha256:7f46ef0e45e047019ba6eda22c432fb96f681b97bbe7f1749aa9209e07727192
 COMPONENT_ARCHIVE_URL_15 = $(call pypi_url,15)
-PKG_MACROS +=		VERSION_SPIN=$(VERSION_SPIN)
+PKG_VARS +=		VERSION_SPIN
+
+PKG_VARS +=		COMPONENT_BE_VERSION
 
 COMPONENT_NAME_16 =	XStatic-Angular-lrdragndrop
 VERSION_LR_DND =	1.0.2.2
@@ -263,7 +265,6 @@
 # only need to deliver one version.  The manifest is parameterized, though.
 PYTHON_VERSIONS=	2.7
 
-PKG_MACROS +=		COMPONENT_BE_VERSION=$(COMPONENT_BE_VERSION)
 PKG_MACROS +=		PYVER=$(PYTHON_VERSIONS)
 PKG_MACROS +=		PYV=$(shell echo $(PYTHON_VERSIONS) | tr -d .)
 
--- a/components/openstack/ironic/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/openstack/ironic/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -40,6 +40,8 @@
 
 TPNO=			25789
 
+PKG_VARS +=		COMPONENT_BE_VERSION
+
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
@@ -50,7 +52,6 @@
 # only need to deliver one version.  The manifest is parameterized, though.
 PYTHON_VERSIONS=	2.7
 
-PKG_MACROS +=		COMPONENT_BE_VERSION=$(COMPONENT_BE_VERSION)
 PKG_MACROS +=		PYVER=$(PYTHON_VERSIONS)
 PKG_MACROS +=		PYV=$(shell echo $(PYTHON_VERSIONS) | tr -d .)
 
--- a/components/openstack/keystone/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/openstack/keystone/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -41,6 +41,8 @@
 
 TPNO=			25790
 
+PKG_VARS +=		COMPONENT_BE_VERSION
+
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
@@ -51,7 +53,6 @@
 # only need to deliver one version.  The manifest is parameterized, though.
 PYTHON_VERSIONS=	2.7
 
-PKG_MACROS +=		COMPONENT_BE_VERSION=$(COMPONENT_BE_VERSION)
 PKG_MACROS +=		PYVER=$(PYTHON_VERSIONS)
 PKG_MACROS +=		PYV=$(shell echo $(PYTHON_VERSIONS) | tr -d .)
 
--- a/components/openstack/neutron/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/openstack/neutron/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -57,6 +57,8 @@
 DEVICE_DRIVERS=		neutron_vpnaas/services/vpn/device_drivers
 DEVICE_TEMPLATE=	$(DEVICE_DRIVERS)/template/solaris
 
+PKG_VARS +=		COMPONENT_BE_VERSION
+
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
@@ -67,7 +69,6 @@
 # only need to deliver one version.  The manifest is parameterized, though.
 PYTHON_VERSIONS=	2.7
 
-PKG_MACROS +=		COMPONENT_BE_VERSION=$(COMPONENT_BE_VERSION)
 PKG_MACROS +=		PYVER=$(PYTHON_VERSIONS)
 PKG_MACROS +=		PYV=$(shell echo $(PYTHON_VERSIONS) | tr -d .)
 
--- a/components/openstack/nova/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/openstack/nova/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -41,6 +41,8 @@
 
 TPNO=			25792
 
+PKG_VARS +=		COMPONENT_BE_VERSION
+
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
@@ -51,7 +53,6 @@
 # only need to deliver one version.  The manifest is parameterized, though.
 PYTHON_VERSIONS=	2.7
 
-PKG_MACROS +=		COMPONENT_BE_VERSION=$(COMPONENT_BE_VERSION)
 PKG_MACROS +=		PYVER=$(PYTHON_VERSIONS)
 PKG_MACROS +=		PYV=$(shell echo $(PYTHON_VERSIONS) | tr -d .)
 
--- a/components/openstack/swift/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/openstack/swift/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -40,6 +40,8 @@
 
 TPNO=			25793
 
+PKG_VARS +=		COMPONENT_BE_VERSION
+
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
@@ -50,7 +52,6 @@
 # only need to deliver one version.  The manifest is parameterized, though.
 PYTHON_VERSIONS=	2.7
 
-PKG_MACROS +=		COMPONENT_BE_VERSION=$(COMPONENT_BE_VERSION)
 PKG_MACROS +=		PYVER=$(PYTHON_VERSIONS)
 PKG_MACROS +=		PYV=$(shell echo $(PYTHON_VERSIONS) | tr -d .)
 
--- a/components/perl512/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/perl512/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -111,7 +111,7 @@
 # "arch" command.  So we must package that way also.
 #
 PKG_MACROS		+=	PERL_ARCH=$(shell arch)
-PKG_MACROS		+=	PERL_VERSION=$(PERL_VERSION)
+
 #
 # Put studio compilers in PATH so we can tell Configure and gmake just
 # use cc.  Trying to avoid the full path so it doesn't end up in
--- a/components/python/astroid/astroid-PYVER.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/python/astroid/astroid-PYVER.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 # None of the astroid/test/testdata *.py files have *.pyc files,
@@ -32,7 +32,8 @@
     value="astroid - Python Abstract Syntax Tree New Generation"
 set name=pkg.description \
     value="astroid provides a common base representation of python source code for projects such as pylint."
-set name=com.oracle.info.description value="the astroid Python $(PYVER) module"
+set name=com.oracle.info.description \
+    value="the astroid Python $(MAYBE_PYVER_SPACE)module"
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification \
     value=org.opensolaris.category.2008:Development/Python
--- a/components/python/logilab-common/logilab-common-PYVER.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/python/logilab-common/logilab-common-PYVER.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 set name=pkg.fmri \
@@ -27,7 +27,7 @@
 set name=pkg.description \
     value="Modules providing low level functionality shared among various python projects."
 set name=com.oracle.info.description \
-    value="the logilab-common Python $(PYVER) module"
+    value="the logilab-common Python $(MAYBE_PYVER_SPACE)module"
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification \
     value=org.opensolaris.category.2008:Development/Python
--- a/components/python/pylint/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/python/pylint/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -19,7 +19,7 @@
 # CDDL HEADER END
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../../make-rules/shared-macros.mk
@@ -40,8 +40,8 @@
 PYTHON_VERSIONS=	2.7
 
 include $(WS_MAKE_RULES)/prep.mk
+include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
-include $(WS_MAKE_RULES)/setup.py.mk
 
 # There are several pylint documentation files that setup.py isn't installing
 # but are present in the pylint package on other distributions. Copy them into
--- a/components/python/pylint/pylint-PYVER.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/python/pylint/pylint-PYVER.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 set name=pkg.fmri \
@@ -27,7 +27,7 @@
 set name=pkg.description \
     value="pylint is a Python source code analyzer which looks for programming errors and helps enforce a coding standard"
 set name=com.oracle.info.description \
-    value="the pylint Python code static checker for Python $(PYVER)"
+    value="the pylint Python code static checker for Python$(MAYBE_SPACE_PYVER)"
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification \
     value=org.opensolaris.category.2008:Development/Python
--- a/components/python/setuptools/setuptools-PYVER.p5m	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/python/setuptools/setuptools-PYVER.p5m	Tue Feb 09 15:21:35 2016 -0800
@@ -18,14 +18,15 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 set name=pkg.fmri \
     value=pkg:/library/python/setuptools-$(PYV)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary \
     value="Download, build, install, upgrade, and uninstall Python packages easily"
-set name=com.oracle.info.description value="Python $(PYVER) setup tools"
+set name=com.oracle.info.description \
+    value="Python $(MAYBE_PYVER_SPACE)setup tools"
 set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification \
     value=org.opensolaris.category.2008:Development/Python
--- a/components/ruby/puppet/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/ruby/puppet/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -55,10 +55,6 @@
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-# pass Ruby values onto the package manfiest
-PKG_MACROS +=	RUBY_VERSION=$(RUBY_VERSION)
-PKG_MACROS +=	RUBY_LIB_VERSION=$(RUBY_LIB_VERSION)
-
 # common targets
 build:		$(BUILD_64)
 	# Ruby extension for auditing
--- a/components/vim/Makefile	Tue Feb 09 14:48:07 2016 -0800
+++ b/components/vim/Makefile	Tue Feb 09 15:21:35 2016 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../make-rules/shared-macros.mk
@@ -49,8 +49,6 @@
 PATCH_LEVEL =	0
 
 PKG_MACROS +=	VIMVER=vim74
-PKG_MACROS +=	HG_REPO=$(HG_REPO)
-PKG_MACROS +=	HG_REV=$(HG_REV)
 
 ASLR_MODE =	$(ASLR_ENABLE)
 
--- a/doc/makefile-variables.txt	Tue Feb 09 14:48:07 2016 -0800
+++ b/doc/makefile-variables.txt	Tue Feb 09 15:21:35 2016 -0800
@@ -205,18 +205,62 @@
   PKG_CONFIG_PATHS += /path/to/pc/files
 
 Finally, for control of packaging-related operations and values used during
-publication, the following macros are available:
+publication, the following variables are available:
+
+* All variables named after the pattern COMPONENT_%(COMPONENT_NAME_%), such
+  as COMPONENT_ARCHIVE_URL, COMPONENT_ARCHIVE_URL_1, etc.  Refer to ips.mk
+  PKG_MACROS and PKG_VARS for a complete list.
+
+* DQ, SQ, Q: a set of convenience macros that expand to ", ', and "
+  respectively; $(Q) (or $Q) is simply the default quote with a short name
+  for convenience.  For use with values in package manifests where the
+  substituted value may contain whitespace.  For example:
+
+  set name=pkg.human-version value=$(DQ)$(HUMAN_VERSION)$(DQ)
+
+* PKG_MACROS: the list of makefile macros that should be exported as defines
+  for use in package manifests and pkgmogrify transform files.  Whitespace is
+  NOT supported; use of PKG_VARS is strongly preferred for this reason.  The
+  expected form each of entry is a key-value pair as follows:
+
+     PKG_MACROS += NAME=NO-WHITESPACE-VALUE
+
+* PKG_VARS: the list of variables that should be exported as defines for use in
+  package manifests and pkgmogrify transform files.  This list should generally
+  only be added to, not redefined, as follows:
+
+     PKG_VARS += VARIABLE_NAME
+
+  Variable values may contain whitespace, although the value must be quoted
+  appropriately in the package manifest if they do.  Variables must be assigned
+  before the inclusion of ips.mk.  Values containing whitespace should not be
+  quoted when declared in the Makefile; they should only be quoted using the
+  appropriate macros in the package manifest.  Values cannot currently contain
+  any characters that require shell escaping such as ", ', or *.
+
+* PYVER is defined when processing package manifest files whose name end in
+  -PYVER.p5m.  The package manifest will be processed for each version found in
+  PYTHON_VERSIONS.  MAYBE_PYVER_SPACE (e.g. '2.7 ') and MAYBE_SPACE_PYVER
+  (e.g. ' 2.7') are derived from PYVER if defined.  If PYVER is not defined
+  (such as when a generic unversioned Python package manifest is being
+  created), these are defined as ''.  perl and ruby follow the same pattern
+  and define PERLVER, PERL_VERSIONS, MAYBE_SPACE_PERLVER, MAYBE_PERLVER_SPACE
+  and RUBY_VERSION, RUBY_VERSIONS, MAYBE_RUBY_VERSION_SPACE,
+  MAYBE_SPACE_RUBY_VERSION respectively.
 
 * TPNO is the Third Party number (i.e., a numeric value): the License
   Technology from the Product Lifecycle Suite tool.  This should be used
   in the common case when there is just one TPNO for a component.  We
   recommend that this be near the top of any Makefile, just below the
   various COMPONENT_foo definitions.
+
 * TPNO_foo is for the rare case (~3% of components) when a component has
   more than one TPNO.  Each one should have a separate short but descriptive
   name substituted for "foo".  This likewise should be near the top of any
   Makefile, just below the various COMPONENT_foo definitions, and it must
-  also be before the inclusion of ips.mk .
+  also be before the inclusion of ips.mk.  All variables named after the
+  pattern TPNO_% are automatically available for use in package manifests
+  and pkgmogrify transform files.
 
 ---
 
--- a/make-rules/ips.mk	Tue Feb 09 14:48:07 2016 -0800
+++ b/make-rules/ips.mk	Tue Feb 09 15:21:35 2016 -0800
@@ -100,44 +100,40 @@
 PUBLISH_TRANSFORMS += $(WS_TOP)/transforms/evaluation
 endif
 
-PKG_MACROS +=		MACH=$(MACH)
-PKG_MACROS +=		MACH32=$(MACH32)
-PKG_MACROS +=		MACH64=$(MACH64)
-PKG_MACROS +=		PUBLISHER=$(PUBLISHER)
-PKG_MACROS +=		PUBLISHER_LOCALIZABLE=$(PUBLISHER_LOCALIZABLE)
-PKG_MACROS +=		CONSOLIDATION=$(CONSOLIDATION)
-PKG_MACROS +=		BUILD_VERSION=$(BUILD_VERSION)
-PKG_MACROS +=		SOLARIS_VERSION=$(SOLARIS_VERSION)
-PKG_MACROS +=		OS_VERSION=$(OS_VERSION)
-PKG_MACROS +=		PKG_SOLARIS_VERSION=$(PKG_SOLARIS_VERSION)
-PKG_MACROS +=		SOLARIS_12_ONLY=$(SOLARIS_12_ONLY)
-PKG_MACROS +=		SOLARIS_11_ONLY=$(SOLARIS_11_ONLY)
-PKG_MACROS +=		HUMAN_VERSION=$(HUMAN_VERSION)
-PKG_MACROS +=		IPS_COMPONENT_VERSION=$(IPS_COMPONENT_VERSION)
+# For items defined as variables or that may contain whitespace, add
+# them to a list to be expanded into PKG_OPTIONS later.
+PKG_VARS += ARC_CASE TPNO
+PKG_VARS += BUILD_VERSION OS_VERSION SOLARIS_VERSION PKG_SOLARIS_VERSION
+PKG_VARS += CONSOLIDATION CONSOLIDATION_CHANGESET CONSOLIDATION_REPOSITORY_URL
+PKG_VARS += COMPONENT_VERSION IPS_COMPONENT_VERSION HUMAN_VERSION
+PKG_VARS += COMPONENT_ARCHIVE_URL COMPONENT_PROJECT_URL COMPONENT_NAME
+PKG_VARS += HG_REPO HG_REV HG_URL
+PKG_VARS += MACH MACH32 MACH64
+PKG_VARS += PUBLISHER PUBLISHER_LOCALIZABLE
+PKG_VARS += SOLARIS_11_ONLY SOLARIS_12_ONLY
+
+# Include TPNO_* Makefile variables in PKG_VARS.
+$(foreach macro, $(filter TPNO_%, $(.VARIABLES)), \
+    $(eval PKG_VARS += $(macro)) \
+)
+
+# For items that need special definition, add them to PKG_MACROS.
 # IPS_COMPONENT_VERSION suitable for use in regular expressions.
 PKG_MACROS +=		IPS_COMPONENT_RE_VERSION=$(subst .,\\.,$(IPS_COMPONENT_VERSION))
-PKG_MACROS +=		COMPONENT_VERSION=$(COMPONENT_VERSION)
 # COMPONENT_VERSION suitable for use in regular expressions.
 PKG_MACROS +=		COMPONENT_RE_VERSION=$(subst .,\\.,$(COMPONENT_VERSION))
-PKG_MACROS +=		COMPONENT_PROJECT_URL=$(COMPONENT_PROJECT_URL)
-PKG_MACROS +=		COMPONENT_ARCHIVE_URL=$(COMPONENT_ARCHIVE_URL)
-PKG_MACROS +=		COMPONENT_HG_URL=$(COMPONENT_HG_URL)
-PKG_MACROS +=		COMPONENT_HG_REV=$(COMPONENT_HG_REV)
-PKG_MACROS +=		COMPONENT_NAME=$(COMPONENT_NAME)
-PKG_MACROS +=		ARC_CASE=$(ARC_CASE)
-PKG_MACROS +=		TPNO=$(TPNO)
-PKG_MACROS +=		CONSOLIDATION_CHANGESET=$(CONSOLIDATION_CHANGESET)
-PKG_MACROS +=		CONSOLIDATION_REPOSITORY_URL=$(CONSOLIDATION_REPOSITORY_URL)
-
-# Add any TPNO_* Makefile macros to the pkgmogrify arguments.
-$(foreach macro, $(filter TPNO_%, $(.VARIABLES)), \
-    $(eval PKG_MACROS += $(macro)=$$($(macro))) \
-)
 
 PKG_MACROS +=		PYTHON_2.7_ONLY=\#
 PKG_MACROS +=		PYTHON_3.4_ONLY=\#
 PKG_MACROS +=		PYTHON_3.5_ONLY=\#
 
+# Convenience macros for quoting in manifests; necessary because pkgfmt will
+# drop literal quotes in attribute values if they do not contain whitespace
+# since the action parsing in pkg will drop them during action stringification.
+PKG_MACROS +=		SQ=\'
+PKG_MACROS +=		DQ=\"
+PKG_MACROS +=		Q=\"
+
 PKG_OPTIONS +=		$(PKG_MACROS:%=-D %)
 
 MANGLED_DIR =	$(PROTO_DIR)/mangled
@@ -250,7 +246,9 @@
 $(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).p5m: %-PYVER.p5m
 	if [ -f $$*-$(shell echo $(1) | tr -d .)GENFRAG.p5m ]; then cat $$*-$(shell echo $(1) | tr -d .)GENFRAG.p5m >> $$@; fi
 	$(PKGFMT) $(PKGFMT_CHECK_ARGS) $(CANONICAL_MANIFESTS)
-	$(PKGMOGRIFY) -D PYVER=$(1) -D PYV=$(shell echo $(1) | tr -d .) $$< > $$@
+	$(PKGMOGRIFY) -D PYVER=$(1) -D MAYBE_PYVER_SPACE="$(1) " \
+		-D MAYBE_SPACE_PYVER=" $(1)" \
+		-D PYV=$(shell echo $(1) | tr -d .) $$< > $$@
 endef
 $(foreach ver,$(PYTHON_VERSIONS),$(eval $(call python-manifest-rule,$(ver))))
 
@@ -274,7 +272,8 @@
 # sticking with something known to work.
 $(MANIFEST_BASE)-%.p5m: %-PYVER.p5m $(BUILD_DIR)/mkgeneric-python
 	$(PKGFMT) $(PKGFMT_CHECK_ARGS) $(CANONICAL_MANIFESTS)
-	$(PKGMOGRIFY) -D PYV=###PYV### $(BUILD_DIR)/mkgeneric-python \
+	$(PKGMOGRIFY) -D PYV=###PYV### -D MAYBE_PYVER_SPACE= \
+		-D MAYBE_SPACE_PYVER= $(BUILD_DIR)/mkgeneric-python \
 		$(WS_TOP)/transforms/mkgeneric $< > $@
 	if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> $@; fi
 
@@ -283,7 +282,9 @@
 define perl-manifest-rule
 $(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).p5m: %-PERLVER.p5m
 	$(PKGFMT) $(PKGFMT_CHECK_ARGS) $$<
-	$(PKGMOGRIFY) -D PERLVER=$(1) -D PLV=$(shell echo $(1) | tr -d .) \
+	$(PKGMOGRIFY) -D PERLVER=$(1) -D MAYBE_PERLVER_SPACE="$(1) " \
+		-D MAYBE_SPACE_PERLVER=" $(1)" \
+		-D PLV=$(shell echo $(1) | tr -d .) \
 		-D PERL_ARCH=$(call PERL_ARCH_FUNC,$(PERL.$(1))) $$< > $$@
 endef
 $(foreach ver,$(PERL_VERSIONS),$(eval $(call perl-manifest-rule,$(ver))))
@@ -302,7 +303,8 @@
 # though this is for Perl rather than Python.
 $(MANIFEST_BASE)-%.p5m: %-PERLVER.p5m $(BUILD_DIR)/mkgeneric-perl
 	$(PKGFMT) $(PKGFMT_CHECK_ARGS) $(CANONICAL_MANIFESTS)
-	$(PKGMOGRIFY) -D PLV=###PYV### $(BUILD_DIR)/mkgeneric-perl \
+	$(PKGMOGRIFY) -D PLV=###PYV### -D MAYBE_PERLVER_SPACE= \
+		-D MAYBE_SPACE_PERLVER= $(BUILD_DIR)/mkgeneric-perl \
 		$(WS_TOP)/transforms/mkgeneric $< > $@
 	if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> $@; fi
 
@@ -321,6 +323,8 @@
 	fi
 	$(PKGFMT) $(PKGFMT_CHECK_ARGS) $(CANONICAL_MANIFESTS)
 	$(PKGMOGRIFY) -D RUBY_VERSION=$(1) -D RUBY_LIB_VERSION=$(2) \
+	    -D MAYBE_RUBY_VERSION_SPACE="$(1) " \
+	    -D MAYBE_SPACE_RUBY_VERSION=" $(1)" \
 	    -D RUBYV=$(shell echo $(1) | tr -d .) $$< > $$@
 endef
 $(foreach ver,$(RUBY_VERSIONS),\
@@ -344,7 +348,8 @@
 # though this is for Ruby rather than Python.
 $(MANIFEST_BASE)-%.p5m: %-RUBYVER.p5m $(BUILD_DIR)/mkgeneric-ruby
 	$(PKGFMT) $(PKGFMT_CHECK_ARGS) $(CANONICAL_MANIFESTS)
-	$(PKGMOGRIFY) -D RUBYV=###PYV### $(BUILD_DIR)/mkgeneric-ruby \
+	$(PKGMOGRIFY) -D RUBYV=###PYV### -D MAYBE_RUBY_VERSION_SPACE= \
+		-D MAYBE_SPACE_RUBY_VERSION= $(BUILD_DIR)/mkgeneric-ruby \
 		$(WS_TOP)/transforms/mkgeneric $< > $@
 	if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> $@; fi
 
@@ -485,21 +490,31 @@
 	$(error Missing canonical manifest(s))
 endif
 
-# Add component-specific variables and export to PKG_MACROS.
+# Add component-specific variables and export to PKG_OPTIONS.
 COMP_SUFFIXES = $(subst COMPONENT_NAME_,, \
 		$(filter COMPONENT_NAME_%, $(.VARIABLES)))
 
-# The filtering out of specific variables below is to avoid component variables
-# that have spaces in their values or that have already been processed above.
-# PKG_MACROS with spaces in their values remain unsupported for now.
+# Component variables are expanded directly to PKG_OPTIONS instead of via
+# PKG_MACROS since the values may contain whitespace.
+mkdefine = -D $(1)="$(2)"
+
+# Expand PKG_VARS into defines via PKG_OPTIONS.
+$(foreach var, $(PKG_VARS), \
+    $(eval PKG_OPTIONS += $(call mkdefine,$(var),$$($(var)))) \
+)
+
+# Expand any variables ending in component _$(suffix) via PKG_OPTIONS excluding
+# variables known to always be irrelevant and TPNO_% variables as those have
+# already been processed.
 $(foreach suffix, $(COMP_SUFFIXES), \
     $(eval COMPONENT_RE_VERSION_$(suffix) ?= $(subst .,\\.,$$(COMPONENT_VERSION_$(suffix)))) \
     $(eval IPS_COMPONENT_VERSION_$(suffix) ?= $$(COMPONENT_VERSION_$(suffix))) \
     $(eval IPS_COMPONENT_RE_VERSION_$(suffix) ?= $(subst .,\\.,$$(IPS_COMPONENT_VERSION_$(suffix)))) \
-    $(eval COMP_VARS=$(filter-out TPNO_%, $(.VARIABLES))) \
+    $(eval COMP_VARS=$(filter %_$(suffix), $(.VARIABLES))) \
     $(eval COMP_VARS=$(filter-out COMPONENT_POST_UNPACK_%, $(COMP_VARS))) \
+    $(eval COMP_VARS=$(filter-out TPNO_%, $(COMP_VARS))) \
     $(eval COMP_VARS=$(filter-out UNPACK_ARGS_%, $(COMP_VARS))) \
-    $(foreach macro, $(filter %_$(suffix), $(COMP_VARS)), \
-        $(eval PKG_MACROS += $(macro)=$$($(macro))) \
+    $(foreach macro, $(COMP_VARS), \
+        $(eval PKG_OPTIONS += $(call mkdefine,$(macro),$$($(macro)))) \
     ) \
 )