Revision: 19829
          http://gar.svn.sourceforge.net/gar/?rev=19829&view=rev
Author:   dmichelsen
Date:     2012-12-06 10:32:36 +0000 (Thu, 06 Dec 2012)
Log Message:
-----------
mGAR v2: Fixate package output directory for long running builds

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

Modified: csw/mgar/gar/v2/gar.pkg.mk
===================================================================
--- csw/mgar/gar/v2/gar.pkg.mk  2012-12-06 10:02:36 UTC (rev 19828)
+++ csw/mgar/gar/v2/gar.pkg.mk  2012-12-06 10:32:36 UTC (rev 19829)
@@ -208,7 +208,14 @@
 
 SPKG_SPOOLROOT ?= $(DESTROOT)
 SPKG_SPOOLDIR  ?= $(SPKG_SPOOLROOT)/spool.$(GAROSREL)-$(GARCH)
-SPKG_EXPORT    ?= $(HOME)/staging/build-$(shell date '+%d.%b.%Y')
+ifdef SPKG_EXPORT
+# The definition may include variable parts like a call to "date". This would 
lead to different directory names
+# for multiple invocation in longs builds and a failing checkpkg due to lookup 
in wrong directories, so fixate
+# once what we have.
+SPKG_EXPORT    := $(SPKG_EXPORT)
+else
+SPKG_EXPORT    := $(HOME)/staging/build-$(shell date '+%d.%b.%Y')
+endif
 SPKG_PKGROOT   ?= $(PKGROOT)
 SPKG_PKGBASE   ?= $(PKGROOT)
 SPKG_WORKDIR   ?= $(CURDIR)/$(WORKDIR)
@@ -216,6 +223,10 @@
 
 SPKG_DEPEND_DB  = $(GARDIR)/csw/depend.db
 
+# These variables could change value transiently and need to be passed to 
subinvocations of GAR
+_PASS_GAR_SUBINVOCATION_EXPORTS += SPKG_EXPORT
+_PASS_GAR_ENV = $(foreach V,$(_PASS_GAR_SUBINVOCATION_EXPORTS),$V=$($V))
+
 # This is the old specification being evaluated during mkpackage. The 
expansion of the SPKG_REVSTAMP leads to
 # problems later on when need the filename for checkpkg again and too much 
time has passed. In the new approach
 # the packagename is directly put in the gspec.
@@ -959,7 +970,7 @@
        @echo
        @echo "The following packages have been built:"
        @echo
-       @$(MAKE) -s GAR_PLATFORM=$(GAR_PLATFORM) _pkgshow
+       @$(MAKE) -s $(_PASS_GAR_ENV) GAR_PLATFORM=$(GAR_PLATFORM) _pkgshow
        @echo
        @$(DONADA)
 
@@ -968,7 +979,7 @@
 dirpackage: _package
        @echo "The following packages have been built:"
        @echo
-       @$(MAKE) -s GAR_PLATFORM=$(GAR_PLATFORM) _dirpkgshow
+       @$(MAKE) -s $(_PASS_GAR_ENV) GAR_PLATFORM=$(GAR_PLATFORM) _dirpkgshow
        @echo
        @$(DONADA)
 
@@ -1047,8 +1058,8 @@
        $(foreach P,$(_PACKAGING_PLATFORMS),\
                $(if $(PACKAGING_HOST_$P),\
                        $(if $(filter $(THISHOST),$(PACKAGING_HOST_$P)),\
-                               $(MAKE) GAR_PLATFORM=$P _package && ,\
-                               $(SSH) -t $(PACKAGING_HOST_$P) "$(foreach 
V,$(_PROPAGATE_ENV),$(if $($V),$V=$($V))) $(MAKE) -I $(GARDIR) -C $(CURDIR) 
GAR_PLATFORM=$P _package" && \
+                               $(MAKE) $(_PASS_GAR_ENV) GAR_PLATFORM=$P 
_package && ,\
+                               $(SSH) -t $(PACKAGING_HOST_$P) "$(foreach 
V,$(_PROPAGATE_ENV),$(if $($V),$V=$($V))) $(MAKE) -I $(GARDIR) -C $(CURDIR) 
$(_PASS_GAR_ENV) GAR_PLATFORM=$P _package" && \
                        ),\
                        $(error *** No host has been defined for platform $P)\
                )\
@@ -1061,9 +1072,9 @@
                $(if $(ARCHALL),echo " (suitable for all architectures)\c";) \
                $(if $(filter $(THISHOST),$(PACKAGING_HOST_$P)),\
                        echo " (built on this host)";\
-                         $(MAKE) -s GAR_PLATFORM=$P _pkgshow;echo;,\
+                         $(MAKE) -s $(_PASS_GAR_ENV) GAR_PLATFORM=$P 
_pkgshow;echo;,\
                        echo " (built on host '$(PACKAGING_HOST_$P)')";\
-                         $(SSH) $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin 
$(MAKE) -I $(GARDIR) -C $(CURDIR) -s GAR_PLATFORM=$P _pkgshow";echo;\
+                         $(SSH) $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin 
$(MAKE) -I $(GARDIR) -C $(CURDIR) -s $(_PASS_GAR_ENV) GAR_PLATFORM=$P 
_pkgshow";echo;\
                )\
        )
        @$(MAKECOOKIE)
@@ -1073,8 +1084,8 @@
        $(foreach P,$(_PACKAGING_PLATFORMS),\
                $(if $(PACKAGING_HOST_$P),\
                        $(if $(filter $(THISHOST),$(PACKAGING_HOST_$P)),\
-                               $(MAKE) -s GAR_PLATFORM=$P $* && ,\
-                               $(SSH) -t $(PACKAGING_HOST_$P) 
"PATH=$$PATH:/opt/csw/bin $(MAKE) -I $(GARDIR) -C $(CURDIR) GAR_PLATFORM=$P $*" 
&& \
+                               $(MAKE) -s $(_PASS_GAR_ENV) GAR_PLATFORM=$P $* 
&& ,\
+                               $(SSH) -t $(PACKAGING_HOST_$P) 
"PATH=$$PATH:/opt/csw/bin $(MAKE) -I $(GARDIR) -C $(CURDIR) $(_PASS_GAR_ENV) 
GAR_PLATFORM=$P $*" && \
                        ),\
                        $(error *** No host has been defined for platform $P)\
                )\

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

_______________________________________________
devel mailing list
devel@lists.opencsw.org
https://lists.opencsw.org/mailman/listinfo/devel

Reply via email to