make-rules/ips.mk
author Danek Duvall <danek.duvall@oracle.com>
Tue, 07 Apr 2015 13:31:20 -0700
branchs11-update
changeset 4072 db0cec748ec0
parent 3996 20c0f21bbe1e
child 4376 f3801994dee3
permissions -rw-r--r--
PSARC 2015/110 OpenStack service updates for Juno PSARC 2014/302 oslo.messaging - OpenStack RPC and notifications PSARC 2014/303 concurrent.futures - high-level Python interface for asynchronous execution PSARC 2014/304 networkx - Python module for complex networks PSARC 2014/305 taskflow - Python module for task execution PSARC 2014/329 pycadf - Python interface for CADF (cloud auditing) PSARC 2014/330 posix_ipc - POSIX IPC primitives for Python PSARC 2014/331 oauthlib - Python implementation of OAuth request-signing logic PSARC 2015/058 oslo - OpenStack common libraries (context, db, i18n, middleware, serialization, utils, vmware) PSARC 2015/059 glance_store - Glance storage library PSARC 2015/060 ipaddr - an IPv4/IPv6 manipulation library in Python PSARC 2015/061 simplegeneric - single-dispatch generic Python functions PSARC 2015/062 wsme - Web Services Made Easy PSARC 2015/063 retrying - General purpose Python retrying library PSARC 2015/065 osprofiler - an OpenStack cross-project profiling library PSARC 2015/066 OpenStack client for Sahara (Hadoop as a Service) PSARC 2015/067 keystonemiddleware - Middleware for OpenStack Identity PSARC 2015/068 pyScss - Compiler for the SCSS flavor of the Sass language PSARC 2015/069 django-pyscss - pyScss support for Django PSARC 2015/073 barbicanclient - OpenStack client for Barbican (Key Management) PSARC 2015/074 pysendfile - Python interface to sendfile PSARC 2015/097 ldappool - a connection pool for python-ldap PSARC 2015/098 rfc3986 - URI reference validation module for Python PSARC 2015/102 iniparse - python .ini file parsing module 20667775 OpenStack service updates for Juno (Umbrella) 17511386 sqlalchemy-migrate should lose its bypass-gen tags once sqlalchemy is in the CBE 18293987 /usr/bin/alembic should be shipped 18293992 boto's demo scripts aren't delivered executable 18377642 py.test has a requirement on py 18615101 Horizon should prevent network, subnet, and port names with hyphens in them 18772068 instance failed to launch with NoValidHost but no reason 18887457 openstack shouldn't deliver .po files 18905324 hostname.xml should set config/ignore_dhcp_hostname = true 18961031 Duplicate names for role-create and user-create are allowed 19015363 Users should not be allowed to attempt to create volumes when quota exceed 19044301 boto's dependencies need work 19050335 user appears logged in but unauthorised after horizon reboot 19065699 cinderclient-34 lost in recent upgrade 19131218 solaris.css: 'Delete Interface' button in Router pop-up menu broken 19131507 solaris.css: 'Project Limits' section of Launch Instance pop-up menu broken 19144215 Instance manipulation buttons greyed out after all instances terminated 19249066 heat stack-preview doesn't appear to do anything 19313272 Need bottom slidebar in horizon for small browser windows 19439030 'nova migration-list' returns python error 19462265 The Python module oslo.messaging should be added to Userland 19462397 The Python module futures should be added to Userland 19476604 The Python module networkx should be added to Userland 19476953 The Python module taskflow should be added to Userland 19519227 The Python module pycadf should be added to Userland 19582394 The Python module posix_ipc should be added to Userland 19596691 instance failed to launch, cinder hit resource busy in stmfadm 19598430 The Python module oauthlib should be added to Userland 19649055 FC connection fails when the target_lun is assigned 0 19815780 nova package should have dependencies on brand-solaris and brand-solaris-kz 19883623 Image snapshots are missing 'instance_uuid' property 19887874 horizon should set up apache log rotation 19888859 six should enable its tests now. 19987962 Cinder lists additional volumes attached to instance with linuxy device names 20027791 horizon should be migrated to Apache 2.4 20046570 rabbitmq & rad-evs-controller should be added to group package 20052466 remove _ai_health_check() from driver.py now that 18857274 is integrated 20164815 The Python module django-pyscss should be added to Userland 20173049 The Python module retrying should be added to Userland 20174489 The Python module WSME should be added to Userland 20176001 The Python module keystonemiddleware should be added to Userland 20182039 The Python module pysendfile should be added to Userland 20200162 The Python module pyScss should be added to Userland 20222184 horizon doesn't send start request on shutdown instance 20312312 The Python module python-saharaclient should be added to Userland 20388250 problem in SERVICE/GLANCE 20433402 The fix for 20388250 is incomplete 20514287 wrong vnic label name used for dhcp vnic in evs 20596802 The Python module oslo.middleware should be added to Userland 20596803 The Python module barbicanclient should be added to Userland 20596804 The Python module oslo.context should be added to Userland 20596805 The Python module iniparse should be added to Userland 20596806 The Python module oslo.vmware should be added to Userland 20596807 The Python module osprofiler should be added to Userland 20596808 The Python module oslo.i18n should be added to Userland 20596809 The Python module oslo.utils should be added to Userland 20596811 The Python module ipaddr should be added to Userland 20596812 The Python module glance_store should be added to Userland 20596813 The Python module oslo.serialization should be added to Userland 20596814 The Python module oslo.db should be added to Userland 20596815 The Python module simplegeneric should be added to Userland 20602690 The Python module ldappool should be added to Userland 20602722 The Python module rfc3986 should be added to Userland 20638369 compilemessages.py requires GNU msgfmt without calling gmsgfmt 20715741 cinder 2014.2.2 20715742 glance 2014.2.2 20715743 heat 2014.2.2 20715744 horizon 2014.2.2 20715745 keystone 2014.2.2 20715746 neutron 2014.2.2 20715747 nova 2014.2.2 20715748 swift 2.2.2 20715749 alembic 0.7.4 20715750 amqp 1.4.6 20715751 boto 2.34.0 20715752 ceilometerclient 1.0.12 20715753 cinderclient 1.1.1 20715754 cliff 1.9.0 20715756 django 1.4.19 20739229 Update django to 1.4.20 20715757 django_compressor 1.4 20715758 django_openstack_auth 1.1.9 20715759 eventlet 0.15.2 20715761 glanceclient 0.15.0 20715762 greenlet 0.4.5 20715763 heatclient 0.2.12 20715764 keystoneclient 1.0.0 20715765 kombu 3.0.7 20715766 mysql 1.2.5 20715767 netaddr 0.7.13 20715769 netifaces 0.10.4 20715770 neutronclient 2.3.10 20715771 novaclient 2.20.0 20715772 oslo.config 1.6.0 20715773 py 1.4.26 20715774 pyflakes 0.8.1 20715775 pytest 2.6.4 20715776 pytz 2014.10 20715777 requests 2.6.0 20715778 simplejson 3.6.5 20715779 six 1.9.0 20715780 sqlalchemy-migrate 0.9.1 20715781 sqlalchemy 0.9.8 20715782 stevedore 1.2.0 20715783 swiftclient 2.3.1 20715784 tox 1.8.1 20715785 troveclient 1.0.8 20715786 virtualenv 12.0.7 20715787 websockify 0.6.0 20739215 problem in PYTHON-MOD/DJANGO 20739295 problem in PYTHON-MOD/DJANGO 20816861 zone-vnc-console instance goes in to maintenance 20829672 support flat network type in neutron
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     1
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     2
# CDDL HEADER START
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     3
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     4
# The contents of this file are subject to the terms of the
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     5
# Common Development and Distribution License (the "License").
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     6
# You may not use this file except in compliance with the License.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     7
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     8
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     9
# or http://www.opensolaris.org/os/licensing.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    10
# See the License for the specific language governing permissions
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    11
# and limitations under the License.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    12
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    13
# When distributing Covered Code, include this CDDL HEADER in each
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    14
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    15
# If applicable, add the following below this CDDL HEADER, with the
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    16
# fields enclosed by brackets "[]" replaced with your own identifying
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    17
# information: Portions Copyright [yyyy] [name of copyright owner]
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    18
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    19
# CDDL HEADER END
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    20
#
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
    21
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
    22
#
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
    23
# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    24
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    25
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    26
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    27
# Rules and Macros for generating an IPS package manifest and publishing an
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    28
# IPS package to a pkg depot.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    29
#
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
    30
# To use these rules, include $(WS_MAKE_RULES)/ips.mk in your Makefile
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    31
# and define an "install" target appropriate to building your component.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    32
# Ex:
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    33
#
59
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 53
diff changeset
    34
#	install:	$(BUILD_DIR)/build/$(MACH32)/.installed \
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 53
diff changeset
    35
#	 		$(BUILD_DIR)/build/$(MACH64)/.installed
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    36
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    37
# This set of rules makes the "publish" target the default target for make(1)
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    38
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    39
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    40
PKGDEPEND =	/usr/bin/pkgdepend
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    41
PKGFMT =	/usr/bin/pkgfmt
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    42
PKGMOGRIFY =	/usr/bin/pkgmogrify
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    43
PKGSEND =	/usr/bin/pkgsend
2855
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
    44
ifeq   ($(strip $(PKGLINT_COMPONENT)),)
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
    45
PKGLINT =	/usr/bin/pkglint
2855
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
    46
else
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
    47
PKGLINT =	${WS_TOOLS}/pkglint
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
    48
endif
181
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
    49
PKGMANGLE =	$(WS_TOOLS)/userland-mangler
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    50
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
    51
WS_TRANSFORMS =	$(WS_TOP)/transforms
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
    52
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    53
# Package headers should all pretty much follow the same format
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    54
METADATA_TEMPLATE =		$(WS_TOP)/transforms/manifest-metadata-template
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    55
COPYRIGHT_TEMPLATE =		$(WS_TOP)/transforms/copyright-template
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    56
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    57
# order is important
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    58
GENERATE_TRANSFORMS +=		$(WS_TOP)/transforms/generate-cleanup
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    59
683
c613b3449c36 7079363 gcc-3.p5m package manifest file shouldn't deliver .la files
Rich Burridge <rich.burridge@oracle.com>
parents: 582
diff changeset
    60
PKGMOGRIFY_TRANSFORMS +=	$(WS_TOP)/transforms/libtool-drop
c613b3449c36 7079363 gcc-3.p5m package manifest file shouldn't deliver .la files
Rich Burridge <rich.burridge@oracle.com>
parents: 582
diff changeset
    61
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    62
COMPARISON_TRANSFORMS +=	$(WS_TOP)/transforms/comparison-cleanup
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    63
COMPARISON_TRANSFORMS +=	$(PKGMOGRIFY_TRANSFORMS)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    64
2551
0391c5c3b137 16431724 Adjust how license text and Oracle internal tracking numbers are propagated
Rich Burridge <rich.burridge@oracle.com>
parents: 827
diff changeset
    65
LICENSE_TRANSFORMS =		$(WS_TOP)/transforms/license-changes
0391c5c3b137 16431724 Adjust how license text and Oracle internal tracking numbers are propagated
Rich Burridge <rich.burridge@oracle.com>
parents: 827
diff changeset
    66
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    67
# order is important
2551
0391c5c3b137 16431724 Adjust how license text and Oracle internal tracking numbers are propagated
Rich Burridge <rich.burridge@oracle.com>
parents: 827
diff changeset
    68
PUBLISH_TRANSFORMS +=	$(LICENSE_TRANSFORMS)
151
f9e42a3f7095 7030982 hgk is delivered 444, breaks 'hg view'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 145
diff changeset
    69
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/variant-cleanup
206
a4474882bf60 7010355 python needs to be packaged to separate out non-core dependencies
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 197
diff changeset
    70
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/autopyc
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    71
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/defaults
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    72
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/actuators
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    73
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/devel
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    74
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/docs
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    75
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/locale
4072
db0cec748ec0 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 3996
diff changeset
    76
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/standard-python-libraries
3778
35735ffdda43 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 3522
diff changeset
    77
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/python-rename
35735ffdda43 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 3522
diff changeset
    78
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/python-3-groups
3783
9edbfb2ff34a 19492342 Python 3.4 should be built --with-pymalloc
John Beck <John.Beck@Oracle.COM>
parents: 3778
diff changeset
    79
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/python-3-soabi
4072
db0cec748ec0 PSARC 2015/110 OpenStack service updates for Juno
Danek Duvall <danek.duvall@oracle.com>
parents: 3996
diff changeset
    80
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/python-3-no-32bit
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    81
PUBLISH_TRANSFORMS +=	$(PKGMOGRIFY_TRANSFORMS)
3476
c35c8f1a6df1 18139749 userland-incorporator should allow generation of multiple incorporations
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3378
diff changeset
    82
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/incorporate
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    83
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/publish-cleanup
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    84
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    85
PKG_MACROS +=		MACH=$(MACH)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    86
PKG_MACROS +=		MACH32=$(MACH32)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    87
PKG_MACROS +=		MACH64=$(MACH64)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    88
PKG_MACROS +=		PUBLISHER=$(PUBLISHER)
827
0944d8c0158b 7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents: 683
diff changeset
    89
PKG_MACROS +=		PUBLISHER_LOCALIZABLE=$(PUBLISHER_LOCALIZABLE)
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    90
PKG_MACROS +=		CONSOLIDATION=$(CONSOLIDATION)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    91
PKG_MACROS +=		BUILD_VERSION=$(BUILD_VERSION)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    92
PKG_MACROS +=		SOLARIS_VERSION=$(SOLARIS_VERSION)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    93
PKG_MACROS +=		OS_VERSION=$(OS_VERSION)
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
    94
PKG_MACROS +=		PKG_SOLARIS_VERSION=$(PKG_SOLARIS_VERSION)
582
f788d69e0553 7085723 use pkg.human-version
Rich Burridge <rich.burridge@oracle.com>
parents: 379
diff changeset
    95
PKG_MACROS +=		HUMAN_VERSION=$(HUMAN_VERSION)
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    96
PKG_MACROS +=		IPS_COMPONENT_VERSION=$(IPS_COMPONENT_VERSION)
93
b579c7b1bb44 7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents: 84
diff changeset
    97
PKG_MACROS +=		COMPONENT_VERSION=$(COMPONENT_VERSION)
166
db8a55996482 6979538 /usr/share/gettext/po/Rules-quot contains garbage
Marcel Telka <marcel.telka@oracle.com>
parents: 152
diff changeset
    98
PKG_MACROS +=		COMPONENT_PROJECT_URL=$(COMPONENT_PROJECT_URL)
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    99
PKG_MACROS +=		COMPONENT_ARCHIVE_URL=$(COMPONENT_ARCHIVE_URL)
379
c6a17bba1da3 7038754 vim 7.3
Danek Duvall <danek.duvall@oracle.com>
parents: 369
diff changeset
   100
PKG_MACROS +=		COMPONENT_HG_URL=$(COMPONENT_HG_URL)
c6a17bba1da3 7038754 vim 7.3
Danek Duvall <danek.duvall@oracle.com>
parents: 369
diff changeset
   101
PKG_MACROS +=		COMPONENT_HG_REV=$(COMPONENT_HG_REV)
2551
0391c5c3b137 16431724 Adjust how license text and Oracle internal tracking numbers are propagated
Rich Burridge <rich.burridge@oracle.com>
parents: 827
diff changeset
   102
PKG_MACROS +=		COMPONENT_NAME=$(COMPONENT_NAME)
0391c5c3b137 16431724 Adjust how license text and Oracle internal tracking numbers are propagated
Rich Burridge <rich.burridge@oracle.com>
parents: 827
diff changeset
   103
PKG_MACROS +=		TPNO=$(TPNO)
3522
ba9e5b4b76ad 20161788 fix TPNO for php 5.3 suhosin
Craig Mohrman <craig.mohrman@oracle.com>
parents: 3476
diff changeset
   104
ba9e5b4b76ad 20161788 fix TPNO for php 5.3 suhosin
Craig Mohrman <craig.mohrman@oracle.com>
parents: 3476
diff changeset
   105
# Add any TPNO_* Makefile macros to the pkgmogrify arguments.
ba9e5b4b76ad 20161788 fix TPNO for php 5.3 suhosin
Craig Mohrman <craig.mohrman@oracle.com>
parents: 3476
diff changeset
   106
$(foreach macro, $(filter TPNO_%, $(.VARIABLES)), \
ba9e5b4b76ad 20161788 fix TPNO for php 5.3 suhosin
Craig Mohrman <craig.mohrman@oracle.com>
parents: 3476
diff changeset
   107
    $(eval PKG_MACROS += $(macro)=$$($(macro))) \
ba9e5b4b76ad 20161788 fix TPNO for php 5.3 suhosin
Craig Mohrman <craig.mohrman@oracle.com>
parents: 3476
diff changeset
   108
)
ba9e5b4b76ad 20161788 fix TPNO for php 5.3 suhosin
Craig Mohrman <craig.mohrman@oracle.com>
parents: 3476
diff changeset
   109
2881
8cae3c148a42 PSARC 2013/337 unittest2 version 0.5.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2855
diff changeset
   110
PKG_MACROS +=		PYTHON_2.6_ONLY=\#
8cae3c148a42 PSARC 2013/337 unittest2 version 0.5.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2855
diff changeset
   111
PKG_MACROS +=		PYTHON_2.7_ONLY=\#
3778
35735ffdda43 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 3522
diff changeset
   112
PKG_MACROS +=		PYTHON_3.4_ONLY=\#
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   113
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   114
PKG_OPTIONS +=		$(PKG_MACROS:%=-D %)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   115
181
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   116
MANGLED_DIR =	$(PROTO_DIR)/mangled
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   117
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   118
PKG_PROTO_DIRS += $(MANGLED_DIR) $(PROTO_DIR) $(@D) $(COMPONENT_DIR) $(COMPONENT_SRC)
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 93
diff changeset
   119
59
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 53
diff changeset
   120
MANIFEST_BASE =		$(BUILD_DIR)/manifest-$(MACH)
12
41aeb1fd8c2d Fix MACH32/MACH64 so more than one architecture can build in the same workspace
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 7
diff changeset
   121
30
440b6ca0641d Removed $(PUBLISHER) from pkg.fmri package attributes. Renamed package
Danek Duvall <danek.duvall@oracle.com>
parents: 27
diff changeset
   122
CANONICAL_MANIFESTS =	$(wildcard *.p5m)
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   123
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   124
# Look for manifests which need to be duplicated for each version of python.
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   125
ifeq ($(findstring -PYVER,$(CANONICAL_MANIFESTS)),-PYVER)
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   126
UNVERSIONED_MANIFESTS = $(filter-out %GENFRAG.p5m,$(filter-out %-PYVER.p5m,$(CANONICAL_MANIFESTS)))
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   127
PY_MANIFESTS = $(filter %-PYVER.p5m,$(CANONICAL_MANIFESTS))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   128
PYV_MANIFESTS = $(foreach v,$(shell echo $(PYTHON_VERSIONS) | tr -d .),$(shell echo $(PY_MANIFESTS) | sed -e 's/-PYVER.p5m/-$(v).p5m/g'))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   129
PYNV_MANIFESTS = $(shell echo $(PY_MANIFESTS) | sed -e 's/-PYVER//')
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   130
else
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   131
UNVERSIONED_MANIFESTS = $(CANONICAL_MANIFESTS)
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   132
endif
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   133
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   134
# Look for manifests which need to be duplicated for each version of perl.
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   135
ifeq ($(findstring -PERLVER,$(UNVERSIONED_MANIFESTS)),-PERLVER)
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   136
NOPERL_MANIFESTS = $(filter-out %GENFRAG.p5m,$(filter-out %-PERLVER.p5m,$(UNVERSIONED_MANIFESTS)))
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   137
PERL_MANIFESTS = $(filter %-PERLVER.p5m,$(UNVERSIONED_MANIFESTS))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   138
PERLV_MANIFESTS = $(foreach v,$(shell echo $(PERL_VERSIONS) | tr -d .),$(shell echo $(PERL_MANIFESTS) | sed -e 's/-PERLVER.p5m/-$(v).p5m/g'))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   139
PERLNV_MANIFESTS = $(shell echo $(PERL_MANIFESTS) | sed -e 's/-PERLVER//')
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   140
else
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   141
NOPERL_MANIFESTS = $(UNVERSIONED_MANIFESTS)
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   142
endif
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   143
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   144
# Look for manifests which need to be duplicated for each version of ruby.
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   145
# NOPERL_MANIFESTS represents the manifests that are not Python or
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   146
# Perl manifests.  Extract the Ruby Manifests from NOPERL_MANIFESTS.
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   147
# Any remaining manifests are stored in NONRUBY_MANIFESTS
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   148
ifeq ($(findstring -RUBYVER,$(NOPERL_MANIFESTS)),-RUBYVER)
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   149
NORUBY_MANIFESTS = $(filter-out %GENFRAG.p5m,\
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   150
		   $(filter-out %-RUBYVER.p5m,$(NOPERL_MANIFESTS)))
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   151
RUBY_MANIFESTS = $(filter %-RUBYVER.p5m,$(NOPERL_MANIFESTS))
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   152
RUBYV_MANIFESTS = $(foreach v,$(shell echo $(RUBY_VERSIONS)),\
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   153
                      $(shell echo $(RUBY_MANIFESTS) |\
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   154
                      sed -e 's/-RUBYVER.p5m/-$(shell echo $(v) |\
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   155
                      cut -d. -f1,2 | tr -d .).p5m/g'))
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   156
RUBYNV_MANIFESTS = $(shell echo $(RUBY_MANIFESTS) | sed -e 's/-RUBYVER//')
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   157
else
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   158
NORUBY_MANIFESTS = $(NOPERL_MANIFESTS)
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   159
endif
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   160
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   161
VERSIONED_MANIFESTS = \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   162
	$(PYV_MANIFESTS) $(PYNV_MANIFESTS) \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   163
	$(PERLV_MANIFESTS) $(PERLNV_MANIFESTS) \
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   164
	$(RUBYV_MANIFESTS) $(RUBYNV_MANIFESTS) \
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   165
	$(NORUBY_MANIFESTS)
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   166
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   167
GENERATED =		$(MANIFEST_BASE)-generated
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   168
COMBINED =		$(MANIFEST_BASE)-combined
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   169
MANIFESTS =		$(VERSIONED_MANIFESTS:%=$(MANIFEST_BASE)-%)
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   170
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   171
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   172
DEPENDED=$(VERSIONED_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.depend)
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   173
RESOLVED=$(VERSIONED_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.depend.res)
185
773dda89f186 7036473 dependency resolution should happen in one step for all component's packages
Danek Duvall <danek.duvall@oracle.com>
parents: 181
diff changeset
   174
PUBLISHED=$(RESOLVED:%.depend.res=%.published)
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   175
255
52abf74b9323 7037058 Move fetchmail to Userland
Marcel Telka <marcel.telka@oracle.com>
parents: 206
diff changeset
   176
COPYRIGHT_FILE ?=	$(COMPONENT_NAME)-$(COMPONENT_VERSION).copyright
145
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   177
IPS_COMPONENT_VERSION ?=	$(COMPONENT_VERSION)
7
d42300cb8715 add license/copyright info for ips generation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 4
diff changeset
   178
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   179
.DEFAULT:		publish
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   180
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   181
.SECONDARY:
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   182
197
fd801ec0737c 7038707 move acpidump to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 196
diff changeset
   183
# allow publishing to be overridden, such as when
fd801ec0737c 7038707 move acpidump to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 196
diff changeset
   184
# a package is for one architecture only.
fd801ec0737c 7038707 move acpidump to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 196
diff changeset
   185
PUBLISH_STAMP ?= $(BUILD_DIR)/.published-$(MACH)
fd801ec0737c 7038707 move acpidump to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 196
diff changeset
   186
fd801ec0737c 7038707 move acpidump to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 196
diff changeset
   187
publish:		build install $(PUBLISH_STAMP)
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   188
30
440b6ca0641d Removed $(PUBLISHER) from pkg.fmri package attributes. Renamed package
Danek Duvall <danek.duvall@oracle.com>
parents: 27
diff changeset
   189
sample-manifest:	$(GENERATED).p5m
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   190
46
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   191
$(GENERATED).p5m:	install
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   192
	$(PKGSEND) generate $(PKG_HARDLINKS:%=--target %) $(PROTO_DIR) | \
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   193
	$(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 $(GENERATE_TRANSFORMS) | \
64
a4b12971cf99 7014330 has userland lost its mapfile mind?
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 59
diff changeset
   194
		sed -e '/^$$/d' -e '/^#.*$$/d' | $(PKGFMT) | \
a4b12971cf99 7014330 has userland lost its mapfile mind?
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 59
diff changeset
   195
		cat $(METADATA_TEMPLATE) - >$@
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   196
46
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   197
# copy the canonical manifest(s) to the build tree
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   198
$(MANIFEST_BASE)-%.generate:	%.p5m canonical-manifests
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   199
	cat $(METADATA_TEMPLATE) $< >$@
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   200
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   201
# The text of a transform that will emit a dependency conditional on the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   202
# presence of a particular version of a runtime, which will then draw in the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   203
# runtime-version-specific version of the package we're operating on.  $(1) is
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   204
# the name of the runtime package, and $(2) is the version suffix.
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   205
mkgeneric = \
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   206
	echo "<transform set name=pkg.fmri value=(?:pkg:/)?(.+)-\#\#\#PYV\#\#\#@(.*)" \
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   207
		"-> emit depend nodrop=true type=conditional" \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   208
		"predicate=$(1)-$(2) fmri=%<1>-$(2)@%<2>>" >> $@;
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   209
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   210
# Define and execute a macro that generates a rule to create a manifest for a
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   211
# python module specific to a particular version of the python runtime.
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   212
# Creates build/manifest-*-modulename-##.p5m file where ## is replaced with
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   213
# the version number.
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   214
define python-manifest-rule
2881
8cae3c148a42 PSARC 2013/337 unittest2 version 0.5.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2855
diff changeset
   215
$(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).mogrified: PKG_MACROS += PYTHON_$(1)_ONLY=
8cae3c148a42 PSARC 2013/337 unittest2 version 0.5.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2855
diff changeset
   216
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   217
$(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).p5m: %-PYVER.p5m
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   218
	if [ -f $$*-$(shell echo $(1) | tr -d .)GENFRAG.p5m ]; then cat $$*-$(shell echo $(1) | tr -d .)GENFRAG.p5m >> $$@; fi
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   219
	$(PKGMOGRIFY) -D PYVER=$(1) -D PYV=$(shell echo $(1) | tr -d .) $$< > $$@
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   220
endef
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   221
$(foreach ver,$(PYTHON_VERSIONS),$(eval $(call python-manifest-rule,$(ver))))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   222
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   223
# A rule to create a helper transform package for python, that will insert the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   224
# appropriate conditional dependencies into a python library's
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   225
# runtime-version-generic package to pull in the version-specific bits when the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   226
# corresponding version of python is on the system.
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   227
$(BUILD_DIR)/mkgeneric-python: $(WS_MAKE_RULES)/shared-macros.mk
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   228
	$(RM) $@
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   229
	$(foreach ver,$(shell echo $(PYTHON_VERSIONS) | tr -d .), \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   230
		$(call mkgeneric,runtime/python,$(ver)))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   231
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   232
# Build Python version-wrapping manifests from the generic version.
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   233
# Creates build/manifest-*-modulename.p5m file.
3787
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   234
# Note that the mkgeneric transform uses the literal string "###PYV###"
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   235
# as the place-holder for the Python version (for mkgeneric-python) and
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   236
# the Perl version (for mkgeneric-perl below) and the Ruby version (for
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   237
# mkgeneric-ruby further below).  The authors did not anticipate that this
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   238
# mechanism would be extended beyond Python when they wrote it; something
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   239
# more generic like LANGVER might make more sense, but for now we are
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   240
# sticking with something known to work.
2732
1a65a9df6f2e 17300973 ips.mk is a little racey
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2710
diff changeset
   241
$(MANIFEST_BASE)-%.p5m: %-PYVER.p5m $(BUILD_DIR)/mkgeneric-python
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   242
	$(PKGMOGRIFY) -D PYV=###PYV### $(BUILD_DIR)/mkgeneric-python \
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   243
		$(WS_TOP)/transforms/mkgeneric $< > $@
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   244
	if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> $@; fi
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   245
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   246
# Define and execute a macro that generates a rule to create a manifest for a
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   247
# perl module specific to a particular version of the perl runtime.
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   248
define perl-manifest-rule
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   249
$(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).p5m: %-PERLVER.p5m
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   250
	$(PKGMOGRIFY) -D PERLVER=$(1) -D PLV=$(shell echo $(1) | tr -d .) \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   251
		-D PERL_ARCH=$(call PERL_ARCH_FUNC,$(PERL.$(1))) $$< > $$@
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   252
endef
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   253
$(foreach ver,$(PERL_VERSIONS),$(eval $(call perl-manifest-rule,$(ver))))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   254
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   255
# A rule to create a helper transform package for perl, that will insert the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   256
# appropriate conditional dependencies into a perl library's
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   257
# runtime-version-generic package to pull in the version-specific bits when the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   258
# corresponding version of perl is on the system.
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   259
$(BUILD_DIR)/mkgeneric-perl: $(WS_MAKE_RULES)/shared-macros.mk
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   260
	$(RM) $@
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   261
	$(foreach ver,$(shell echo $(PERL_VERSIONS) | tr -d .), \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   262
		$(call mkgeneric,runtime/perl,$(ver)))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   263
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   264
# Build Perl version-wrapping manifests from the generic version.
3787
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   265
# See the block comment above about why "###PYV###" is used here even
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   266
# though this is for Perl rather than Python.
2732
1a65a9df6f2e 17300973 ips.mk is a little racey
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2710
diff changeset
   267
$(MANIFEST_BASE)-%.p5m: %-PERLVER.p5m $(BUILD_DIR)/mkgeneric-perl
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   268
	$(PKGFMT) $(PKGFMT_CHECK_ARGS) $(CANONICAL_MANIFESTS)
3787
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   269
	$(PKGMOGRIFY) -D PLV=###PYV### $(BUILD_DIR)/mkgeneric-perl \
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   270
		$(WS_TOP)/transforms/mkgeneric $< > $@
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   271
	if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> $@; fi
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   272
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   273
# Define and execute a macro that generates a rule to create a manifest for a
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   274
# ruby module specific to a particular version of the ruby runtime.
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   275
# Creates build/manifest-*-modulename-##.p5m file where ## is replaced with
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   276
# the version number.
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   277
define ruby-manifest-rule
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   278
$(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).mogrified: \
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   279
	PKG_MACROS += RUBY_VERSION=$(1) RUBY_LIB_VERSION=$(2) \
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   280
	    RUBYV=$(subst .,,$(1))
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   281
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   282
$(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).p5m: %-RUBYVER.p5m
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   283
	if [ -f $$*-$(shell echo $(1) | tr -d .)GENFRAG.p5m ]; then \
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   284
		cat $$*-$(shell echo $(1) | tr -d .)GENFRAG.p5m >> $$@; \
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   285
	fi
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   286
	$(PKGMOGRIFY) -D RUBY_VERSION=$(1) -D RUBY_LIB_VERSION=$(2) \
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   287
	    -D RUBYV=$(shell echo $(1) | tr -d .) $$< > $$@
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   288
endef
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   289
$(foreach ver,$(RUBY_VERSIONS),\
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   290
	$(eval $(call ruby-manifest-rule,$(shell echo $(ver) | \
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   291
	    cut -d. -f1,2),$(ver))))
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   292
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   293
# A rule to create a helper transform package for ruby, that will insert the
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   294
# appropriate conditional dependencies into a ruby library's
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   295
# runtime-version-generic package to pull in the version-specific bits when the
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   296
# corresponding version of ruby is on the system.
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   297
$(BUILD_DIR)/mkgeneric-ruby: $(WS_MAKE_RULES)/shared-macros.mk
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   298
	$(RM) $@
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   299
	$(foreach ver,$(RUBY_VERSIONS),\
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   300
		$(call mkgeneric,runtime/ruby,$(shell echo $(ver) | \
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   301
		    cut -d. -f1,2 | tr -d .)))
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   302
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   303
# Build Ruby version-wrapping manifests from the generic version.
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   304
# Creates build/manifest-*-modulename.p5m file.
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   305
#
3787
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   306
# See the block comment above about why "###PYV###" is used here even
e0eb0826110c 20026411 library/perl-5/database package dependencies got dropped
John Beck <John.Beck@Oracle.COM>
parents: 3783
diff changeset
   307
# though this is for Ruby rather than Python.
3378
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   308
$(MANIFEST_BASE)-%.p5m: %-RUBYVER.p5m $(BUILD_DIR)/mkgeneric-ruby
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   309
	$(PKGMOGRIFY) -D RUBYV=###PYV### $(BUILD_DIR)/mkgeneric-ruby \
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   310
		$(WS_TOP)/transforms/mkgeneric $< > $@
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   311
	if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> $@; fi
8c7eb3630145 PSARC/2014/275 Hiera 1.3.4
Kristina Tripp <Kristina.Tripp@oracle.com>
parents: 2994
diff changeset
   312
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   313
# mogrify non-parameterized manifests
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   314
$(MANIFEST_BASE)-%.mogrified:	%.p5m $(BUILD_DIR)
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   315
	$(PKGMOGRIFY) $(PKG_OPTIONS) $< \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   316
		$(PUBLISH_TRANSFORMS) | \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   317
		sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >$@
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   318
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   319
# mogrify parameterized manifests
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   320
$(MANIFEST_BASE)-%.mogrified:	$(MANIFEST_BASE)-%.p5m $(BUILD_DIR)
53
e398cb2c4b45 7004049 SUNWa2ps should move to userland with a2ps
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 49
diff changeset
   321
	$(PKGMOGRIFY) $(PKG_OPTIONS) $< \
46
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   322
		$(PUBLISH_TRANSFORMS) | \
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   323
		sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >$@
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   324
181
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   325
# mangle the file contents
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents: 255
diff changeset
   326
$(BUILD_DIR) $(MANGLED_DIR):
181
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   327
	$(MKDIR) $@
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   328
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   329
PKGMANGLE_OPTIONS = -D $(MANGLED_DIR) $(PKG_PROTO_DIRS:%=-d %)
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   330
$(MANIFEST_BASE)-%.mangled:	$(MANIFEST_BASE)-%.mogrified $(MANGLED_DIR)
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   331
	$(PKGMANGLE) $(PKGMANGLE_OPTIONS) -m $< >$@
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   332
76
a084497ff237 7016379 migrate elinks to userland (fix pkglint)
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 75
diff changeset
   333
# generate dependencies
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 93
diff changeset
   334
PKGDEPEND_GENERATE_OPTIONS = -m $(PKG_PROTO_DIRS:%=-d %)
181
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   335
$(MANIFEST_BASE)-%.depend:	$(MANIFEST_BASE)-%.mangled
3778
35735ffdda43 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 3522
diff changeset
   336
	$(ENV) $(COMPONENT_PUBLISH_ENV) $(PKGDEPEND) generate \
35735ffdda43 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 3522
diff changeset
   337
	    $(PKGDEPEND_GENERATE_OPTIONS) $< >$@
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   338
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   339
# pkgdepend resolve builds a map of all installed packages by default.  This
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   340
# makes dependency resolution particularly slow.  We can dramatically improve
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   341
# performance here by creating a file with a list of packages that we know
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   342
# are needed, dramatically reducing the overhead involved in creating and
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   343
# searching this map.
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   344
#
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   345
# Generate a resolve.deps file from the dependencies in the Makefile and
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   346
# fragments that it uses.
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   347
RESOLVE_DEPS=$(BUILD_DIR)/resolve.deps
2584
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   348
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   349
$(RESOLVE_DEPS):	$(MAKEFILE_PREREQ) $(BUILD_DIR)
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   350
	@for pkg in $(REQUIRED_PACKAGES:%=/%) ; do \
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   351
	    echo $${pkg} ; \
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   352
	done | sort -u >$@
2584
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   353
185
773dda89f186 7036473 dependency resolution should happen in one step for all component's packages
Danek Duvall <danek.duvall@oracle.com>
parents: 181
diff changeset
   354
# resolve the dependencies all at once
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   355
$(BUILD_DIR)/.resolved-$(MACH):	$(DEPENDED) $(RESOLVE_DEPS)
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   356
	$(PKGDEPEND) resolve $(RESOLVE_DEPS:%=-e %) -m $(DEPENDED)
145
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   357
	$(TOUCH) $@
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   358
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   359
#
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   360
# Generate a set of REQUIRED_PACKAGES based on what is needed to for pkgdepend
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   361
# to resolve properly.  Automatically append this to your Makefile for the truly
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   362
# lazy among us.  This is only a piece of the REQUIRED_PACKAGES puzzle.
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   363
# You must still include packages for tools you build and test with.
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   364
#
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   365
REQUIRED_PACKAGES::	$(RESOLVED)
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   366
	$(GMAKE) RESOLVE_DEPS= $(BUILD_DIR)/.resolved-$(MACH)
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   367
	@echo "# Auto-generated contents below.  Please manually verify and remove this comment" >>Makefile
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   368
	@$(PKGMOGRIFY) $(WS_TRANSFORMS)/$@ $(RESOLVED) | \
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   369
		$(GSED) -e '/^[\t ]*$$/d' -e '/^#/d' | sort -u >>Makefile
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   370
	@echo "*** Please edit your Makefile and verify the new content at the end ***"
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   371
145
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   372
# lint the manifests all at once
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   373
$(BUILD_DIR)/.linted-$(MACH):	$(BUILD_DIR)/.resolved-$(MACH)
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   374
	@echo "VALIDATING MANIFEST CONTENT: $(RESOLVED)"
117
8f634eb6f66b 7023683 userland pkglint checks should look in more places for content
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 99
diff changeset
   375
	$(ENV) PYTHONPATH=$(WS_TOOLS)/python PROTO_PATH="$(PKG_PROTO_DIRS)"\
2994
3705b92dce6a 17591620 ruby 1.9 should not have its *.rb text files under amd64/sparcv9 directories
April Chin <april.chin@oracle.com>
parents: 2910
diff changeset
   376
		SOLARIS_VERSION=$(SOLARIS_VERSION)\
84
b80cfd4e0a16 7000952 Userland package validation needs some love
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 76
diff changeset
   377
		$(PKGLINT) $(CANONICAL_REPO:%=-c $(WS_LINT_CACHE)) \
145
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   378
			-f $(WS_TOOLS)/pkglintrc $(RESOLVED)
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   379
	$(TOUCH) $@
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   380
2910
f8b8cbc43356 15801420 SUNBT7180909 tag the Userland consolidation binaries for ASLR
April Chin <april.chin@oracle.com>
parents: 2881
diff changeset
   381
lintme: FRC
f8b8cbc43356 15801420 SUNBT7180909 tag the Userland consolidation binaries for ASLR
April Chin <april.chin@oracle.com>
parents: 2881
diff changeset
   382
	@echo "VALIDATING MANIFEST CONTENT: $(RESOLVED)"
f8b8cbc43356 15801420 SUNBT7180909 tag the Userland consolidation binaries for ASLR
April Chin <april.chin@oracle.com>
parents: 2881
diff changeset
   383
	$(ENV) PYTHONPATH=$(WS_TOOLS)/python PROTO_PATH="$(PKG_PROTO_DIRS)"\
2994
3705b92dce6a 17591620 ruby 1.9 should not have its *.rb text files under amd64/sparcv9 directories
April Chin <april.chin@oracle.com>
parents: 2910
diff changeset
   384
		SOLARIS_VERSION=$(SOLARIS_VERSION)\
2910
f8b8cbc43356 15801420 SUNBT7180909 tag the Userland consolidation binaries for ASLR
April Chin <april.chin@oracle.com>
parents: 2881
diff changeset
   385
		$(PKGLINT) $(CANONICAL_REPO:%=-c $(WS_LINT_CACHE)) \
f8b8cbc43356 15801420 SUNBT7180909 tag the Userland consolidation binaries for ASLR
April Chin <april.chin@oracle.com>
parents: 2881
diff changeset
   386
			-f $(WS_TOOLS)/pkglintrc $(RESOLVED)
f8b8cbc43356 15801420 SUNBT7180909 tag the Userland consolidation binaries for ASLR
April Chin <april.chin@oracle.com>
parents: 2881
diff changeset
   387
f8b8cbc43356 15801420 SUNBT7180909 tag the Userland consolidation binaries for ASLR
April Chin <april.chin@oracle.com>
parents: 2881
diff changeset
   388
FRC:
f8b8cbc43356 15801420 SUNBT7180909 tag the Userland consolidation binaries for ASLR
April Chin <april.chin@oracle.com>
parents: 2881
diff changeset
   389
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   390
46
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   391
# published
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 93
diff changeset
   392
PKGSEND_PUBLISH_OPTIONS = -s $(PKG_REPO) publish --fmri-in-manifest
2710
3c5579720afc 17231570 full userland build sporadically fails during 'pkgsend publish'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2584
diff changeset
   393
PKGSEND_PUBLISH_OPTIONS += --no-catalog
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 93
diff changeset
   394
PKGSEND_PUBLISH_OPTIONS += $(PKG_PROTO_DIRS:%=-d %)
196
816e398e992c 6907515 mercurial 1.8.2
Danek Duvall <danek.duvall@oracle.com>
parents: 185
diff changeset
   395
PKGSEND_PUBLISH_OPTIONS += -T \*.py
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   396
185
773dda89f186 7036473 dependency resolution should happen in one step for all component's packages
Danek Duvall <danek.duvall@oracle.com>
parents: 181
diff changeset
   397
$(MANIFEST_BASE)-%.published:	$(MANIFEST_BASE)-%.depend.res $(BUILD_DIR)/.linted-$(MACH)
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 93
diff changeset
   398
	$(PKGSEND) $(PKGSEND_PUBLISH_OPTIONS) $<
46
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   399
	$(PKGFMT) <$< >$@
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   400
145
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   401
$(BUILD_DIR)/.published-$(MACH):	$(PUBLISHED)
2710
3c5579720afc 17231570 full userland build sporadically fails during 'pkgsend publish'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2584
diff changeset
   402
ifndef DISABLE_IPS_CATALOG_AND_INDEX_UPDATES
3c5579720afc 17231570 full userland build sporadically fails during 'pkgsend publish'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2584
diff changeset
   403
	$(PKGREPO) refresh -s $(PKG_REPO)
3c5579720afc 17231570 full userland build sporadically fails during 'pkgsend publish'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2584
diff changeset
   404
endif
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   405
	$(TOUCH) $@
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   406
32
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   407
print-package-names:	canonical-manifests
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   408
	@cat $(VERSIONED_MANIFESTS) $(WS_TOP)/transforms/print-pkgs | \
32
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   409
		$(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 | \
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   410
 		sed -e '/^$$/d' -e '/^#.*$$/d' | sort -u
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   411
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   412
print-package-paths:	canonical-manifests
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   413
	@cat $(VERSIONED_MANIFESTS) $(WS_TOP)/transforms/print-paths | \
32
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   414
		$(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 | \
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   415
 		sed -e '/^$$/d' -e '/^#.*$$/d' | sort -u
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   416
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   417
install-packages:	publish
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   418
	@if [ $(IS_GLOBAL_ZONE) = 0 -o x$(ROOT) != x ]; then \
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   419
	    cat $(VERSIONED_MANIFESTS) $(WS_TOP)/transforms/print-paths | \
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   420
		$(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 | \
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   421
 		sed -e '/^$$/d' -e '/^#.*$$/d' -e 's;/;;' | sort -u | \
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   422
		(cd $(PROTO_DIR) ; pfexec /bin/cpio -dump $(ROOT)) ; \
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   423
	else ; \
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   424
	    echo "unsafe to install package(s) automatically" ; \
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   425
        fi
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   426
145
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   427
$(RESOLVED):	install
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   428
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   429
canonical-manifests:	$(CANONICAL_MANIFESTS) $(MAKEFILE_PREREQ) $(PATCHES)
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   430
ifeq	($(strip $(CANONICAL_MANIFESTS)),)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   431
	# If there were no canonical manifests in the workspace, nothing will
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   432
	# be published and we should fail.  A sample manifest can be generated
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   433
	# with
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   434
	#   $ gmake sample-manifest
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   435
	# Once created, it will need to be reviewed, edited, and added to the
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   436
	# workspace.
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   437
	$(error Missing canonical manifest(s))
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   438
endif
32
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   439
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   440
# This converts required paths to containing package names for be able to
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   441
# properly setup the build environment for a component.
3996
20c0f21bbe1e 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 3787
diff changeset
   442
required-pkgs.mk:	$(MAKEFILE_PREREQ)
32
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   443
	@echo "generating $@ from Makefile REQUIRED_* data"
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   444
	@pkg search -H -l '<$(DEPENDS:%=% OR) /bin/true>' \
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   445
		| sed -e 's/pkg:\/\(.*\)@.*/REQUIRED_PKGS += \1/g' >$@
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   446
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   447
pre-prep:	required-pkgs.mk
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   448
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   449
32
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   450
CLEAN_PATHS +=	required-pkgs.mk