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