Revision: 25411
          http://sourceforge.net/p/gar/code/25411
Author:   dmichelsen
Date:     2015-11-25 14:54:14 +0000 (Wed, 25 Nov 2015)
Log Message:
-----------
mGAR v2: Add intermediate IPS progress

Modified Paths:
--------------
    csw/mgar/gar/v2/gar.pkg.mk

Modified: csw/mgar/gar/v2/gar.pkg.mk
===================================================================
--- csw/mgar/gar/v2/gar.pkg.mk  2015-11-25 13:44:53 UTC (rev 25410)
+++ csw/mgar/gar/v2/gar.pkg.mk  2015-11-25 14:54:14 UTC (rev 25411)
@@ -103,6 +103,8 @@
 _PKG_SPECS      = $(filter-out $(NOPACKAGE),$(SPKG_SPECS))
 $(if $(_PKG_SPECS),,$(error No packages for building defined))
 
+_PKG_SPECS_IPS = $(filter-out $(NOPACKAGE),$(or $(PACKAGES_IPS),$(NAME)))
+
 # The is the name of the package containing the sourcefiles for all packages 
generated from this GAR recipe.
 # It defaults to the first defined package name or gspec. SRCPACKAGE_BASE is 
guaranteed
 # to be one of the real packages built.
@@ -225,6 +227,7 @@
 else
 SPKG_EXPORT    := $(HOME)/staging/build-$(shell date '+%d.%b.%Y')
 endif
+SPKG_EXPORT_IPS ?= $(HOME)/staging/ips
 SPKG_PKGROOT   ?= $(PKGROOT)
 SPKG_PKGBASE   ?= $(PKGROOT)
 SPKG_WORKDIR   ?= $(CURDIR)/$(WORKDIR)
@@ -741,7 +744,6 @@
        ) >$@
        $(if $(ALLOW_RELOCATE),echo "BASEDIR=$(RELOCATE_PREFIX)" >>$@)
 
-
 # findlicensefile - Find an existing file for a given relative license file 
name
 # Arguments:
 #  $(1)  A filename to be used for licenses
@@ -936,11 +938,17 @@
 
 PACKAGE_TARGETS = $(foreach SPEC,$(_PKG_SPECS), package-$(SPEC))
 
+PACKAGE_TARGETS_IPS = $(foreach SPEC,$(_PKG_SPECS_IPS),packageips-$(SPEC))
+
 SPKG_DESTDIRS = $(SPKG_SPOOLDIR) $(SPKG_EXPORT)
 
 $(SPKG_DESTDIRS):
        ginstall -d $@
 
+$(SPKG_EXPORT_IPS):
+       pkgrepo create -s $(SPKG_EXPORT_IPS)
+       pkgrepo set -s $(SPKG_EXPORT_IPS) publisher/prefix=opencsw
+
 # This is a target used to generate all prototypes for debugging purposes.
 # On a normal packaging workflow this is not used.
 prototypes: extract merge $(SPKG_DESTDIRS) pre-package $(foreach 
SPEC,$(_PKG_SPECS),$(WORKDIR)/$(SPEC).prototype-$(GARCH))
@@ -976,10 +984,19 @@
                        done)),)
 _buildpackage: pre-package $(PACKAGE_TARGETS) post-package $(if $(filter-out 
0,$(ENABLE_CHECK)),pkgcheck)
 
+_buildpackage-ips: pre-package $(PACKAGE_TARGETS_IPS) post-package
+
 _package: validateplatform extract-global merge $(SPKG_DESTDIRS) _buildpackage
        @$(MAKECOOKIE)
 
-package: _package
+PKGFORMAT-5.8 = svr4 
+PKGFORMAT-5.9 = svr4 
+PKGFORMAT-5.10 = svr4 
+PKGFORMAT-5.11 = ips 
+
+package: package-$(PKGFORMAT-$(GAROSREL)) 
+
+package-svr4: _package 
        @echo
        @echo "The following packages have been built:"
        @echo
@@ -987,6 +1004,14 @@
        @echo
        @$(DONADA)
 
+package-ips: validateplatform extract-global merge $(SPKG_DESTDIRS) 
_buildpackage-ips 
+       @echo
+       @echo "The following packages have been built:"
+       @echo
+       @$(MAKE) -s $(_PASS_GAR_ENV) GAR_PLATFORM=$(GAR_PLATFORM) _pkgshow-ips
+       @echo
+       @$(DONADA)
+
 dirpackage: _DIRPACKAGE=1
 dirpackage: ENABLE_CHECK=
 dirpackage: _package
@@ -1002,6 +1027,9 @@
 _pkgshow:
        @$(foreach SPEC,$(_PKG_SPECS),printf "  %-20s %s\n"  $(SPEC) 
$(SPKG_EXPORT)/$(shell $(call _PKG_ENV,$(SPEC)) $(GARBIN)/mkpackage -qs 
$(WORKDIR)/$(SPEC).gspec -D pkgfile)$(COMPRESSION_SUFFIX) ;)
 
+_pkgshow-ips:
+       @pkgrepo list -s $(SPKG_EXPORT_IPS) $(_PKG_SPECS_IPS)
+
 # The dynamic pkginfo is only generated for dynamic gspec-files
 package-%: $(WORKDIR)/%.gspec $(WORKDIR)/%.prototype-$(GARCH) 
$(WORKDIR)/%.depend $(if $(findstring 
%.gspec,$(DISTFILES)),,$(WORKDIR)/%.pkginfo)
        @echo " ==> Processing $*.gspec"
@@ -1022,6 +1050,33 @@
 package-p:
        @$(foreach COOKIEFILE,$(PACKAGE_TARGETS), test -e 
$(COOKIEDIR)/$(COOKIEFILE) ;)
 
+# -- IPS Packaging --
+
+.PRECIOUS: $(WORKDIR)/%.proto
+$(WORKDIR)/%.proto: $(WORKDIR)
+       $(_DBG)(cd $(PKGROOT) && pkgsend generate .) >$@
+
+IPS_META_CLASSIFICATION ?= Applications/Accessories
+IPS_META_SUMMARY ?= $(DESCRIPTION)
+IPS_META_DESCRIPTION ?= $(DESCRIPTION)
+
+.PRECIOUS: $(WORKDIR)/%.meta
+$(WORKDIR)/%.meta: $(WORKDIR)
+       $(_DBG)(echo "set name=pkg.fmri value=$*@$(VERSION)"; \
+       echo "set name=pkg.summary value=\"$(IPS_META_SUMMARY)\""; \
+       echo "set name=pkg.description value=\"$(IPS_META_DESCRIPTION)\""; \
+       echo "set name=variant.arch value=$(GARCH)"; \
+       echo "set name=info.classification 
value=org.opensolaris.category.2008:$(IPS_META_CLASSIFICATION)"; \
+       $(_CATEGORY_IPS_META) \
+       ) >$@
+
+packageips-%: $(WORKDIR)/%.proto $(WORKDIR)/%.meta $(SPKG_EXPORT_IPS)
+       cd $(WORKDIR) && pkgmogrify $*.proto $*.meta > $*.p5m
+       cd $(WORKDIR) && pkglint $*.p5m
+       pkgsend publish -s $(SPKG_EXPORT_IPS) -d $(SPKG_PKGROOT) 
$(WORKDIR)/$*.p5m
+
+# ---
+
 # pkgcheck - check if the package is compliant
 #
 pkgcheck: $(foreach SPEC,$(_PKG_SPECS),package-$(SPEC))
@@ -1048,7 +1103,7 @@
 # will not be copied to WORKDIR again.
 pkgreset-%:
        @echo " ==> Reset packaging state for $* ($(DESTIMG))"
-       $(_DBG)rm -rf $(foreach T,extract checksum package 
pkgcheck,$(COOKIEDIR)/*$(T)-$**)
+       $(_DBG)rm -rf $(foreach T,extract checksum package package-ips 
pkgcheck,$(COOKIEDIR)/*$(T)-$**)
        $(_DBG)rm -rf $(COOKIEDIR)/pre-package $(COOKIEDIR)/post-package
        $(_DBG)rm -rf $(addprefix $(WORKDIR)/,$(filter-out 
$(DISTFILES),$(patsubst $(WORKDIR)/%,%,$(wildcard $(WORKDIR)/$*.*)) prototype 
copyright $*.copyright))
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

Reply via email to