SF.net SVN: gar:[25411] csw/mgar/gar/v2/gar.pkg.mk

dmichelsen at users.sourceforge.net dmichelsen at users.sourceforge.net
Wed Nov 25 15:54:15 CET 2015


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.



More information about the devel mailing list