16433531 Update Nose to 1.2.1 s11-update
authorRich Burridge <rich.burridge@oracle.com>
Thu, 18 Apr 2013 08:16:56 -0700
branchs11-update
changeset 2576 f1b6ecbb2d1e
parent 2575 b6ffd60bade0
child 2578 e11df23929df
16433531 Update Nose to 1.2.1
components/python/nose/Makefile
components/python/nose/nose-26.p5m
components/python/nose/nose-27.p5m
components/python/nose/nose-GENFRAG.p5m
components/python/nose/nose-PYVER.p5m
components/python/nose/nose.p5m
make-rules/ips.mk
make-rules/shared-macros.mk
transforms/mkgeneric
--- a/components/python/nose/Makefile	Wed Apr 17 19:17:06 2013 -0700
+++ b/components/python/nose/Makefile	Thu Apr 18 08:16:56 2013 -0700
@@ -20,18 +20,18 @@
 #
 
 #
-# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		nose
-COMPONENT_VERSION=	1.1.2
+COMPONENT_VERSION=	1.2.1
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_PROJECT_URL=  http://code.google.com/p/python-nose/
+COMPONENT_PROJECT_URL=  https://github.com/nose-devs/nose
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:b1ba12c1c45323fd8695be68ce7228456b86e51234f167027ebbc4ccda852c61
+    sha256:2171e9202d118d302d5db1decb52dd862b79e2a626ca19653a6914574a6ca7d9
 COMPONENT_ARCHIVE_URL=	http://pypi.python.org/packages/source/n/nose/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	python-mod/nose
 
--- a/components/python/nose/nose-26.p5m	Wed Apr 17 19:17:06 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
-#
-
-set name=pkg.fmri value=pkg:/library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
-set name=pkg.summary value="A unittest-based testing framework for python that makes writing and running tests easier"
-set name=com.oracle.info.description value="the nose unit test framework for Python 2.6"
-set name=com.oracle.info.tpno value=6585
-set name=info.classification value=org.opensolaris.category.2008:Development/Python
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
-set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
-set name=org.opensolaris.arc-caseid value=PSARC/2011/198
-set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-
-dir path=usr
-dir path=usr/bin
-dir path=usr/lib
-dir path=usr/lib/python2.6
-dir path=usr/lib/python2.6/vendor-packages
-dir path=usr/lib/python2.6/vendor-packages/nose
-dir path=usr/lib/python2.6/vendor-packages/nose-$(COMPONENT_VERSION)-py2.6.egg-info
-dir path=usr/lib/python2.6/vendor-packages/nose/ext
-dir path=usr/lib/python2.6/vendor-packages/nose/plugins
-dir path=usr/lib/python2.6/vendor-packages/nose/sphinx
-
-file path=usr/bin/nosetests-2.6
-file path=usr/lib/python2.6/vendor-packages/nose-$(COMPONENT_VERSION)-py2.6.egg-info/dependency_links.txt
-file path=usr/lib/python2.6/vendor-packages/nose-$(COMPONENT_VERSION)-py2.6.egg-info/entry_points.txt
-file path=usr/lib/python2.6/vendor-packages/nose-$(COMPONENT_VERSION)-py2.6.egg-info/not-zip-safe
-file path=usr/lib/python2.6/vendor-packages/nose-$(COMPONENT_VERSION)-py2.6.egg-info/PKG-INFO
-file path=usr/lib/python2.6/vendor-packages/nose-$(COMPONENT_VERSION)-py2.6.egg-info/SOURCES.txt
-file path=usr/lib/python2.6/vendor-packages/nose-$(COMPONENT_VERSION)-py2.6.egg-info/top_level.txt
-file path=usr/lib/python2.6/vendor-packages/nose/__init__.py
-file path=usr/lib/python2.6/vendor-packages/nose/case.py
-file path=usr/lib/python2.6/vendor-packages/nose/commands.py
-file path=usr/lib/python2.6/vendor-packages/nose/config.py
-file path=usr/lib/python2.6/vendor-packages/nose/core.py
-file path=usr/lib/python2.6/vendor-packages/nose/exc.py
-file path=usr/lib/python2.6/vendor-packages/nose/ext/__init__.py
-file path=usr/lib/python2.6/vendor-packages/nose/ext/dtcompat.py
-file path=usr/lib/python2.6/vendor-packages/nose/failure.py
-file path=usr/lib/python2.6/vendor-packages/nose/importer.py
-file path=usr/lib/python2.6/vendor-packages/nose/inspector.py
-file path=usr/lib/python2.6/vendor-packages/nose/loader.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/__init__.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/allmodules.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/attrib.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/base.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/builtin.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/capture.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/collect.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/cover.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/debug.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/deprecated.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/doctests.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/errorclass.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/failuredetail.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/isolate.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/logcapture.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/manager.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/multiprocess.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/plugintest.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/prof.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/skip.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/testid.py
-file path=usr/lib/python2.6/vendor-packages/nose/plugins/xunit.py
-file path=usr/lib/python2.6/vendor-packages/nose/proxy.py
-file path=usr/lib/python2.6/vendor-packages/nose/pyversion.py
-file path=usr/lib/python2.6/vendor-packages/nose/result.py
-file path=usr/lib/python2.6/vendor-packages/nose/selector.py
-file path=usr/lib/python2.6/vendor-packages/nose/sphinx/__init__.py
-file path=usr/lib/python2.6/vendor-packages/nose/sphinx/pluginopts.py
-file path=usr/lib/python2.6/vendor-packages/nose/suite.py
-file path=usr/lib/python2.6/vendor-packages/nose/tools.py
-file path=usr/lib/python2.6/vendor-packages/nose/twistedtools.py
-file path=usr/lib/python2.6/vendor-packages/nose/usage.txt
-file path=usr/lib/python2.6/vendor-packages/nose/util.py
-
-link path=usr/bin/nosetests target=nosetests-2.6 \
-    mediator=python mediator-version=2.6
-
-# force a dependency on the Python 2.6 runtime
-depend fmri=__TBD pkg.debug.depend.file=python2.6 \
-	pkg.debug.depend.path=usr/bin type=require
-
-# force a dependency on the nose package
-depend fmri=library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) \
-    type=require
-
-license nose.license license=LGPLv2.1
--- a/components/python/nose/nose-27.p5m	Wed Apr 17 19:17:06 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
-#
-
-set name=pkg.fmri value=pkg:/library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
-set name=pkg.summary value="A unittest-based testing framework for python that makes writing and running tests easier"
-set name=com.oracle.info.description value="the nose unit test framework for Python 2.7"
-set name=com.oracle.info.tpno value=6585
-set name=info.classification value=org.opensolaris.category.2008:Development/Python
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
-set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
-set name=org.opensolaris.arc-caseid value=PSARC/2011/198
-set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-
-dir path=usr
-dir path=usr/bin
-dir path=usr/lib
-dir path=usr/lib/python2.7
-dir path=usr/lib/python2.7/vendor-packages
-dir path=usr/lib/python2.7/vendor-packages/nose-$(COMPONENT_VERSION)-py2.7.egg-info/
-dir path=usr/lib/python2.7/vendor-packages/nose
-dir path=usr/lib/python2.7/vendor-packages/nose/ext
-dir path=usr/lib/python2.7/vendor-packages/nose/plugins
-dir path=usr/lib/python2.7/vendor-packages/nose/sphinx
-
-# pkgdepend(1) and python 2.7 don't play well yet.
-file path=usr/bin/nosetests-2.7 pkg.depend.bypass-generate=.*
-file path=usr/lib/python2.7/vendor-packages/nose-$(COMPONENT_VERSION)-py2.7.egg-info/dependency_links.txt
-file path=usr/lib/python2.7/vendor-packages/nose-$(COMPONENT_VERSION)-py2.7.egg-info/entry_points.txt
-file path=usr/lib/python2.7/vendor-packages/nose-$(COMPONENT_VERSION)-py2.7.egg-info/not-zip-safe
-file path=usr/lib/python2.7/vendor-packages/nose-$(COMPONENT_VERSION)-py2.7.egg-info/PKG-INFO
-file path=usr/lib/python2.7/vendor-packages/nose-$(COMPONENT_VERSION)-py2.7.egg-info/SOURCES.txt
-file path=usr/lib/python2.7/vendor-packages/nose-$(COMPONENT_VERSION)-py2.7.egg-info/top_level.txt
-file path=usr/lib/python2.7/vendor-packages/nose/__init__.py
-file path=usr/lib/python2.7/vendor-packages/nose/case.py
-file path=usr/lib/python2.7/vendor-packages/nose/commands.py
-file path=usr/lib/python2.7/vendor-packages/nose/config.py
-file path=usr/lib/python2.7/vendor-packages/nose/core.py
-file path=usr/lib/python2.7/vendor-packages/nose/exc.py
-file path=usr/lib/python2.7/vendor-packages/nose/ext/__init__.py
-file path=usr/lib/python2.7/vendor-packages/nose/ext/dtcompat.py
-file path=usr/lib/python2.7/vendor-packages/nose/failure.py
-file path=usr/lib/python2.7/vendor-packages/nose/importer.py
-file path=usr/lib/python2.7/vendor-packages/nose/inspector.py
-file path=usr/lib/python2.7/vendor-packages/nose/loader.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/__init__.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/allmodules.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/attrib.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/base.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/builtin.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/capture.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/collect.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/cover.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/debug.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/deprecated.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/doctests.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/errorclass.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/failuredetail.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/isolate.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/logcapture.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/manager.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/multiprocess.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/plugintest.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/prof.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/skip.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/testid.py
-file path=usr/lib/python2.7/vendor-packages/nose/plugins/xunit.py
-file path=usr/lib/python2.7/vendor-packages/nose/proxy.py
-file path=usr/lib/python2.7/vendor-packages/nose/pyversion.py
-file path=usr/lib/python2.7/vendor-packages/nose/result.py
-file path=usr/lib/python2.7/vendor-packages/nose/selector.py
-file path=usr/lib/python2.7/vendor-packages/nose/sphinx/__init__.py
-file path=usr/lib/python2.7/vendor-packages/nose/sphinx/pluginopts.py
-file path=usr/lib/python2.7/vendor-packages/nose/suite.py
-file path=usr/lib/python2.7/vendor-packages/nose/tools.py
-file path=usr/lib/python2.7/vendor-packages/nose/twistedtools.py
-file path=usr/lib/python2.7/vendor-packages/nose/usage.txt
-file path=usr/lib/python2.7/vendor-packages/nose/util.py
-
-link path=usr/bin/nosetests target=nosetests-2.7 \
-    mediator=python mediator-version=2.7
-
-# force a dependency on the Python 2.7 runtime
-depend fmri=__TBD pkg.debug.depend.file=python2.7 \
-	pkg.debug.depend.path=usr/bin type=require
-
-# force a dependency on the nose package
-depend fmri=library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) \
-    type=require
-
-license nose.license license=LGPLv2.1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/nose/nose-GENFRAG.p5m	Thu Apr 18 08:16:56 2013 -0700
@@ -0,0 +1,26 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
+file nosetests.1 path=usr/share/man/man1/nosetests.1
+license nose.license license=LGPLv2.1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/nose/nose-PYVER.p5m	Thu Apr 18 08:16:56 2013 -0700
@@ -0,0 +1,100 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri \
+    value=pkg:/library/python-2/nose-$(PYV)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary \
+    value="A unittest-based testing framework for python that makes writing and running tests easier"
+set name=com.oracle.info.description value="the Python nose unit test framework"
+set name=com.oracle.info.tpno value=12933
+set name=info.classification \
+    value=org.opensolaris.category.2008:Development/Python
+set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.arc-caseid value=PSARC/2011/198
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+link path=usr/bin/nosetests target=nosetests-$(PYVER) mediator=python \
+    mediator-version=$(PYVER)
+file path=usr/bin/nosetests-$(PYVER)
+file path=usr/lib/python$(PYVER)/vendor-packages/nose-$(COMPONENT_VERSION)-py$(PYVER).egg-info/PKG-INFO
+file path=usr/lib/python$(PYVER)/vendor-packages/nose-$(COMPONENT_VERSION)-py$(PYVER).egg-info/SOURCES.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/nose-$(COMPONENT_VERSION)-py$(PYVER).egg-info/dependency_links.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/nose-$(COMPONENT_VERSION)-py$(PYVER).egg-info/entry_points.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/nose-$(COMPONENT_VERSION)-py$(PYVER).egg-info/not-zip-safe
+file path=usr/lib/python$(PYVER)/vendor-packages/nose-$(COMPONENT_VERSION)-py$(PYVER).egg-info/top_level.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/case.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/commands.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/config.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/core.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/exc.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/ext/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/ext/dtcompat.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/failure.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/importer.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/inspector.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/loader.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/allmodules.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/attrib.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/base.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/builtin.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/capture.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/collect.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/cover.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/debug.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/deprecated.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/doctests.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/errorclass.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/failuredetail.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/isolate.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/logcapture.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/manager.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/multiprocess.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/plugintest.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/prof.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/skip.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/testid.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/plugins/xunit.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/proxy.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/pyversion.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/result.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/selector.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/sphinx/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/sphinx/pluginopts.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/suite.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/tools/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/tools/nontrivial.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/tools/trivial.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/twistedtools.py
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/usage.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/nose/util.py
+license nose.license license=LGPLv2.1
+
+# force a dependency on the Python runtime
+depend type=require fmri=__TBD pkg.debug.depend.file=python$(PYVER) \
+    pkg.debug.depend.path=usr/bin
+
+# force a dependency on the nose package
+depend type=require \
+    fmri=library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
--- a/components/python/nose/nose.p5m	Wed Apr 17 19:17:06 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
-#
-
-<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
-
-set name=pkg.fmri value=pkg:/library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
-set name=pkg.summary value="A unittest-based testing framework for python that makes writing and running tests easier"
-set name=com.oracle.info.description value="the nose unit test framework for Python"
-set name=com.oracle.info.tpno value=6585
-set name=info.classification value="org.opensolaris.category.2008:Development/Python"
-set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
-set name=org.opensolaris.arc-caseid value=PSARC/2011/198
-set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-
-dir path=usr
-dir path=usr/share
-dir path=usr/share/man
-dir path=usr/share/man/man1
-file nosetests.1 path=usr/share/man/man1/nosetests.1
-
-depend fmri=library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) \
-    predicate=runtime/python-26 \
-    type=conditional
-depend fmri=library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) \
-    predicate=runtime/python-27 \
-    type=conditional
-
-license nose.license license=LGPLv2.1
--- a/make-rules/ips.mk	Wed Apr 17 19:17:06 2013 -0700
+++ b/make-rules/ips.mk	Thu Apr 18 08:16:56 2013 -0700
@@ -96,13 +96,39 @@
 MANIFEST_BASE =		$(BUILD_DIR)/manifest-$(MACH)
 
 CANONICAL_MANIFESTS =	$(wildcard *.p5m)
+
+# Look for manifests which need to be duplicated for each version of python.
+ifeq ($(findstring -PYVER,$(CANONICAL_MANIFESTS)),-PYVER)
+UNVERSIONED_MANIFESTS = $(filter-out %-GENFRAG.p5m,$(filter-out %-PYVER.p5m,$(CANONICAL_MANIFESTS)))
+PY_MANIFESTS = $(filter %-PYVER.p5m,$(CANONICAL_MANIFESTS))
+PYV_MANIFESTS = $(foreach v,$(shell echo $(PYTHON_VERSIONS) | tr -d .),$(shell echo $(PY_MANIFESTS) | sed -e 's/-PYVER.p5m/-$(v).p5m/g'))
+PYNV_MANIFESTS = $(shell echo $(PY_MANIFESTS) | sed -e 's/-PYVER//')
+else
+UNVERSIONED_MANIFESTS = $(CANONICAL_MANIFESTS)
+endif
+
+# Look for manifests which need to be duplicated for each version of perl.
+ifeq ($(findstring -PERLVER,$(UNVERSIONED_MANIFESTS)),-PERLVER)
+NOPERL_MANIFESTS = $(filter-out %-GENFRAG.p5m,$(filter-out %-PERLVER.p5m,$(UNVERSIONED_MANIFESTS)))
+PERL_MANIFESTS = $(filter %-PERLVER.p5m,$(UNVERSIONED_MANIFESTS))
+PERLV_MANIFESTS = $(foreach v,$(shell echo $(PERL_VERSIONS) | tr -d .),$(shell echo $(PERL_MANIFESTS) | sed -e 's/-PERLVER.p5m/-$(v).p5m/g'))
+PERLNV_MANIFESTS = $(shell echo $(PERL_MANIFESTS) | sed -e 's/-PERLVER//')
+else
+NOPERL_MANIFESTS = $(UNVERSIONED_MANIFESTS)
+endif
+
+VERSIONED_MANIFESTS = \
+	$(PYV_MANIFESTS) $(PYNV_MANIFESTS) \
+	$(PERLV_MANIFESTS) $(PERLNV_MANIFESTS) \
+	$(NOPERL_MANIFESTS)
+
 GENERATED =		$(MANIFEST_BASE)-generated
 COMBINED =		$(MANIFEST_BASE)-combined
-MANIFESTS =		$(CANONICAL_MANIFESTS:%=$(MANIFEST_BASE)-%)
+MANIFESTS =		$(VERSIONED_MANIFESTS:%=$(MANIFEST_BASE)-%)
 
 
-DEPENDED=$(CANONICAL_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.depend)
-RESOLVED=$(CANONICAL_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.depend.res)
+DEPENDED=$(VERSIONED_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.depend)
+RESOLVED=$(VERSIONED_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.depend.res)
 PUBLISHED=$(RESOLVED:%.depend.res=%.published)
 
 COPYRIGHT_FILE ?=	$(COMPONENT_NAME)-$(COMPONENT_VERSION).copyright
@@ -130,8 +156,70 @@
 $(MANIFEST_BASE)-%.generate:	%.p5m canonical-manifests
 	cat $(METADATA_TEMPLATE) $< >[email protected]
 
-# mogrify the manifest
-$(MANIFEST_BASE)-%.mogrified:	%.p5m $(BUILD_DIR) canonical-manifests
+# The text of a transform that will emit a dependency conditional on the
+# presence of a particular version of a runtime, which will then draw in the
+# runtime-version-specific version of the package we're operating on.  $(1) is
+# the name of the runtime package, and $(2) is the version suffix.
+mkgeneric = \
+	echo "<transform set name=pkg.fmri value=(?:pkg:/)?(.+)-\#\#\#@(.*)" \
+		"-> emit depend nodrop=true type=conditional" \
+		"predicate=$(1)-$(2) fmri=%<1>-$(2)@%<2>>" >> [email protected];
+
+# Define and execute a macro that generates a rule to create a manifest for a
+# python module specific to a particular version of the python runtime.
+define python-manifest-rule
+$(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).p5m: %-PYVER.p5m
+	$(PKGMOGRIFY) -D PYVER=$(1) -D PYV=$(shell echo $(1) | tr -d .) $$< > [email protected]
+endef
+$(foreach ver,$(PYTHON_VERSIONS),$(eval $(call python-manifest-rule,$(ver))))
+
+# A rule to create a helper transform package for python, that will insert the
+# appropriate conditional dependencies into a python library's
+# runtime-version-generic package to pull in the version-specific bits when the
+# corresponding version of python is on the system.
+$(WS_TOP)/transforms/mkgeneric-python: $(WS_TOP)/make-rules/shared-macros.mk
+	$(RM) [email protected]
+	$(foreach ver,$(shell echo $(PYTHON_VERSIONS) | tr -d .), \
+		$(call mkgeneric,runtime/python,$(ver)))
+
+# Build Python version-wrapping manifests from the generic version.
+$(MANIFEST_BASE)-%.p5m: %-PYVER.p5m $(WS_TOP)/transforms/mkgeneric-python
+	$(PKGMOGRIFY) -D PYV=### $(WS_TOP)/transforms/mkgeneric-python \
+		$(WS_TOP)/transforms/mkgeneric $< > [email protected]
+	if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> [email protected]; fi
+
+# Define and execute a macro that generates a rule to create a manifest for a
+# perl module specific to a particular version of the perl runtime.
+define perl-manifest-rule
+$(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).p5m: %-PERLVER.p5m
+	$(PKGMOGRIFY) -D PERLVER=$(1) -D PLV=$(shell echo $(1) | tr -d .) \
+		-D PERL_ARCH=$(call PERL_ARCH_FUNC,$(PERL.$(1))) $$< > [email protected]
+endef
+$(foreach ver,$(PERL_VERSIONS),$(eval $(call perl-manifest-rule,$(ver))))
+
+# A rule to create a helper transform package for perl, that will insert the
+# appropriate conditional dependencies into a perl library's
+# runtime-version-generic package to pull in the version-specific bits when the
+# corresponding version of perl is on the system.
+$(WS_TOP)/transforms/mkgeneric-perl: $(WS_TOP)/make-rules/shared-macros.mk
+	$(RM) [email protected]
+	$(foreach ver,$(shell echo $(PERL_VERSIONS) | tr -d .), \
+		$(call mkgeneric,runtime/perl,$(ver)))
+
+# Build Perl version-wrapping manifests from the generic version.
+$(MANIFEST_BASE)-%.p5m: %-PERLVER.p5m $(WS_TOP)/transforms/mkgeneric-perl
+	$(PKGMOGRIFY) -D PLV=### $(WS_TOP)/transforms/mkgeneric-perl \
+		$(WS_TOP)/transforms/mkgeneric $< > [email protected]
+	if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> [email protected]; fi
+
+# mogrify non-parameterized manifests
+$(MANIFEST_BASE)-%.mogrified:	%.p5m $(BUILD_DIR)
+	$(PKGMOGRIFY) $(PKG_OPTIONS) $< \
+		$(PUBLISH_TRANSFORMS) | \
+		sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >[email protected]
+
+# mogrify parameterized manifests
+$(MANIFEST_BASE)-%.mogrified:	$(MANIFEST_BASE)-%.p5m $(BUILD_DIR)
 	$(PKGMOGRIFY) $(PKG_OPTIONS) $< \
 		$(PUBLISH_TRANSFORMS) | \
 		sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >[email protected]
@@ -175,18 +263,18 @@
 	$(TOUCH) [email protected]
 
 print-package-names:	canonical-manifests
-	@cat $(CANONICAL_MANIFESTS) $(WS_TOP)/transforms/print-pkgs | \
+	@cat $(VERSIONED_MANIFESTS) $(WS_TOP)/transforms/print-pkgs | \
 		$(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 | \
  		sed -e '/^$$/d' -e '/^#.*$$/d' | sort -u
 
 print-package-paths:	canonical-manifests
-	@cat $(CANONICAL_MANIFESTS) $(WS_TOP)/transforms/print-paths | \
+	@cat $(VERSIONED_MANIFESTS) $(WS_TOP)/transforms/print-paths | \
 		$(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 | \
  		sed -e '/^$$/d' -e '/^#.*$$/d' | sort -u
 
 install-packages:	publish
 	@if [ $(IS_GLOBAL_ZONE) = 0 -o x$(ROOT) != x ]; then \
-	    cat $(CANONICAL_MANIFESTS) $(WS_TOP)/transforms/print-paths | \
+	    cat $(VERSIONED_MANIFESTS) $(WS_TOP)/transforms/print-paths | \
 		$(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 | \
  		sed -e '/^$$/d' -e '/^#.*$$/d' -e 's;/;;' | sort -u | \
 		(cd $(PROTO_DIR) ; pfexec /bin/cpio -dump $(ROOT)) ; \
--- a/make-rules/shared-macros.mk	Wed Apr 17 19:17:06 2013 -0700
+++ b/make-rules/shared-macros.mk	Thu Apr 18 08:16:56 2013 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 PATH=/usr/bin:/usr/gnu/bin
@@ -41,7 +41,9 @@
 export DOWNLOAD_SEARCH_PATH +=	$(EXTERNAL_ARCHIVE_MIRROR)
 
 # The workspace starts at the mercurial root
-export WS_TOP ?=		$(shell hg root)
+ifeq ($(origin WS_TOP), undefined)
+export WS_TOP :=		$(shell hg root)
+endif
 
 WS_LOGS =	$(WS_TOP)/$(MACH)/logs
 WS_REPO =	$(WS_TOP)/$(MACH)/repo
@@ -71,7 +73,7 @@
 
 ROOT =			/
 
-OS_VERSION =		$(shell uname -r)
+OS_VERSION :=		$(shell uname -r)
 SOLARIS_VERSION =	$(OS_VERSION:5.%=2.%)
 
 include $(WS_MAKE_RULES)/ips-buildinfo.mk
@@ -91,7 +93,7 @@
 
 COMPONENT_SRC_NAME =	$(COMPONENT_NAME)
 
-COMPONENT_DIR =	$(shell pwd)
+COMPONENT_DIR :=	$(shell pwd)
 SOURCE_DIR =	$(COMPONENT_DIR)/$(COMPONENT_SRC)
 BUILD_DIR =	$(COMPONENT_DIR)/build
 PROTO_DIR =	$(BUILD_DIR)/prototype/$(MACH)
@@ -172,7 +174,7 @@
 CONSTANT_TIME +=	TIME_CONSTANT=$(TIME_CONSTANT)
 
 # set MACH from uname -p to either sparc or i386
-MACH =		$(shell uname -p)
+MACH :=		$(shell uname -p)
 
 # set MACH32 from MACH to either sparcv7 or i86
 MACH32_1 =	$(MACH:sparc=sparcv7)
@@ -307,13 +309,13 @@
 
 PERL =          $(PERL.$(PERL_VERSION))
 
-PERL_ARCH =     $(shell $(PERL) -e 'use Config; print $$Config{archname}')
+PERL_ARCH :=     $(shell $(PERL) -e 'use Config; print $$Config{archname}')
 # Optimally we should ask perl which C compiler was used but it doesn't
 # result in a full path name.  Only "c" is being recorded
 # inside perl builds while we actually need a full path to
 # the studio compiler.
-#PERL_CC =      $(shell $(PERL) -e 'use Config; print $$Config{cc}')
-PERL_OPTIMIZE = $(shell $(PERL) -e 'use Config; print $$Config{optimize}')
+#PERL_CC :=      $(shell $(PERL) -e 'use Config; print $$Config{cc}')
+PERL_OPTIMIZE := $(shell $(PERL) -e 'use Config; print $$Config{optimize}')
 
 PKG_MACROS +=   PERL_ARCH=$(PERL_ARCH)
 PKG_MACROS +=   PERL_VERSION=$(PERL_VERSION)
@@ -369,8 +371,8 @@
 
 # Enables large file support for components that have no other means of doing
 # so.  Use CPP_LARGEFILES and not the .32/.64 variety directly
-CPP_LARGEFILES.32 =	$(shell getconf LFS_CFLAGS)
-CPP_LARGEFILES.64 =	$(shell getconf LFS64_CFLAGS)
+CPP_LARGEFILES.32 :=	$(shell getconf LFS_CFLAGS)
+CPP_LARGEFILES.64 :=	$(shell getconf LFS64_CFLAGS)
 CPP_LARGEFILES =		$(CPP_LARGEFILES.$(BITS))
 
 # Enables some #pragma redefine_extname to POSIX-compliant Standard C Library
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/transforms/mkgeneric	Thu Apr 18 08:16:56 2013 -0700
@@ -0,0 +1,47 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+#
+
+# This set of transforms helps us take a package that's parameterized on a
+# platform's versions and emit a package that conditionally depends on those
+# versioned packages, predicated on the platform version packages being
+# present.
+#
+# For instance, for a package "mako-generic", we want to create a package
+# "mako", which brings in "mako-26" if "python-26" is present, and "mako-27" if
+# "python-27" is present.
+#
+# We do this by grabbing just the set actions from "mako-generic", and emitting
+# those conditional depend actions.  We require that the parameterized package
+# name end in "-###" (typically by setting a pkgmogrify variable to "###"),
+# which we also remove here.  This works in conjunction with a set of rules in
+# make-rules/ips.mk which create and use another transform file that actually
+# emit the conditional dependencies.
+
+<transform file dir link hardlink license user group driver legacy signature -> drop>
+<transform depend -> default nodrop false>
+<transform depend nodrop=false -> drop>
+<transform set name=pkg.fmri value=(?:pkg:/)?(.+)-###@(.*) -> \
+	edit value -### "">
+<transform depend nodrop=true -> delete nodrop true>