Andrzej Szeszo
2013-08-13 28092583a72fb001981dc2b5724e87adab2d53bb
Add initial manifest auto-generation support
5 files modified
34 ■■■■ changed files
make-rules/ips.mk 22 ●●●●● patch | view | raw | blame | history
transforms/defaults 1 ●●●● patch | view | raw | blame | history
transforms/generate-cleanup 2 ●●●●● patch | view | raw | blame | history
transforms/libtool-drop 2 ●●● patch | view | raw | blame | history
transforms/manifest-metadata-template 7 ●●●●● patch | view | raw | blame | history
make-rules/ips.mk
@@ -72,6 +72,12 @@
PUBLISH_TRANSFORMS +=    $(PKGMOGRIFY_TRANSFORMS)
PUBLISH_TRANSFORMS +=    $(WS_TOP)/transforms/publish-cleanup
ifeq   ($(strip $(COMPONENT_AUTOGEN_MANIFEST)),yes)
AUTOGEN_MANIFEST_TRANSFORMS +=        $(WS_TOP)/transforms/generate-cleanup
else
AUTOGEN_MANIFEST_TRANSFORMS +=        $(WS_TOP)/transforms/drop-all
endif
PKG_MACROS +=        MACH=$(MACH)
PKG_MACROS +=        MACH32=$(MACH32)
PKG_MACROS +=        MACH64=$(MACH64)
@@ -90,6 +96,10 @@
PKG_MACROS +=        COMPONENT_HG_URL=$(COMPONENT_HG_URL)
PKG_MACROS +=        COMPONENT_HG_REV=$(COMPONENT_HG_REV)
PKG_MACROS +=        COMPONENT_NAME=$(COMPONENT_NAME)
PKG_MACROS +=        COMPONENT_FMRI=$(COMPONENT_FMRI)
PKG_MACROS +=        COMPONENT_SUMMARY=$(COMPONENT_SUMMARY)
PKG_MACROS +=        COMPONENT_LICENSE=$(COMPONENT_LICENSE)
PKG_MACROS +=        COMPONENT_LICENSE_FILE=$(COMPONENT_LICENSE_FILE)
PKG_MACROS +=        TPNO=$(TPNO)
PKG_OPTIONS +=        $(PKG_MACROS:%=-D %) -D COMPONENT_SUMMARY="$(COMPONENT_SUMMARY)"
@@ -217,14 +227,22 @@
        $(WS_TOP)/transforms/mkgeneric $< > $@
    if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> $@; fi
# auto-generate file/directory list
$(MANIFEST_BASE)-%.generated:    %.p5m $(BUILD_DIR)
    (cat $(METADATA_TEMPLATE); \
    $(PKGSEND) generate $(PKG_HARDLINKS:%=--target %) $(PROTO_DIR)) | \
    $(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 $(AUTOGEN_MANIFEST_TRANSFORMS) | \
        sed -e '/^$$/d' -e '/^#.*$$/d' | $(PKGFMT) | \
        cat $< - >$@
# mogrify non-parameterized manifests
$(MANIFEST_BASE)-%.mogrified:    %.p5m $(BUILD_DIR)
$(MANIFEST_BASE)-%.mogrified:    %.generated
    $(PKGMOGRIFY) $(PKG_OPTIONS) $< \
        $(PUBLISH_TRANSFORMS) | \
        sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >$@
# mogrify parameterized manifests
$(MANIFEST_BASE)-%.mogrified:    $(MANIFEST_BASE)-%.p5m $(BUILD_DIR)
$(MANIFEST_BASE)-%.mogrified:    $(MANIFEST_BASE)-%.generated
    $(PKGMOGRIFY) $(PKG_OPTIONS) $< \
        $(PUBLISH_TRANSFORMS) | \
        sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >$@
transforms/defaults
@@ -125,3 +125,4 @@
    default facet.version-lock.%<1> true >
<transform depend tmp.fmri=.*-> delete tmp.fmri .* >
<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
transforms/generate-cleanup
@@ -108,3 +108,5 @@
    edit path "\$!\((.*)\)" "$(\1)">
<transform dir file link hardlink -> \
    edit target "\$!\((.*)\)" "$(\1)">
<transform dir path=mangled -> drop>
transforms/libtool-drop
@@ -1,2 +1,2 @@
# stuff we drop from the proto area - not shipped
<transform file path=.+/lib/.+\.la -> drop>
<transform file link path=.+/lib/.+\.la -> drop>
transforms/manifest-metadata-template
@@ -12,12 +12,11 @@
# Copyright 2013 <contributor>. All rights reserved.
#
set name=pkg.fmri value=pkg:/$(IPS_PKG_NAME)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
set name=pkg.summary value="XXX Summary XXX"
set name=info.classification value="org.opensolaris.category.2008:XXX Classification XXX"
set name=pkg.fmri value=pkg:/$(COMPONENT_FMRI)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
set name=pkg.summary value="$(COMPONENT_SUMMARY)"
set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
license $(COPYRIGHT_FILE) license='$(COPYRIGHTS)'
license $(COMPONENT_LICENSE_FILE) license='$(COMPONENT_LICENSE)'