Revision: 13419 http://gar.svn.sourceforge.net/gar/?rev=13419&view=rev Author: dmichelsen Date: 2011-02-20 19:17:33 +0000 (Sun, 20 Feb 2011)
Log Message: ----------- mGAR v2: Add OBSOLETED_* Modified Paths: -------------- csw/mgar/gar/v2/gar.mk csw/mgar/gar/v2/gar.pkg.mk Modified: csw/mgar/gar/v2/gar.mk =================================================================== --- csw/mgar/gar/v2/gar.mk 2011-02-20 15:48:06 UTC (rev 13418) +++ csw/mgar/gar/v2/gar.mk 2011-02-20 19:17:33 UTC (rev 13419) @@ -803,7 +803,7 @@ # The basic merge merges the compiles for all ISAs on the current architecture -merge: checksum pre-merge merge-do merge-license merge-classutils merge-checkpkgoverrides merge-alternatives $(if $(COMPILE_ELISP),compile-elisp) $(if $(NOSOURCEPACKAGE),,merge-src) merge-README.CSW $(if $(AP2_MODS),post-merge-ap2mod) post-merge +merge: checksum pre-merge merge-do merge-license merge-classutils merge-checkpkgoverrides merge-alternatives $(if $(COMPILE_ELISP),compile-elisp) $(if $(NOSOURCEPACKAGE),,merge-src) merge-README.CSW merge-obsoleted-by $(if $(AP2_MODS),post-merge-ap2mod) post-merge banner merge @$(MAKECOOKIE) @@ -887,7 +887,7 @@ .PHONY: remerge reset-merge reset-merge-modulated remerge: reset-merge merge -reset-merge: reset-package $(addprefix reset-merge-,$(MODULATIONS)) reset-merge-license reset-merge-classutils reset-merge-checkpkgoverrides reset-merge-alternatives reset-merge-README.CSW reset-merge-ap2mod reset-merge-src +reset-merge: reset-package $(addprefix reset-merge-,$(MODULATIONS)) reset-merge-license reset-merge-classutils reset-merge-checkpkgoverrides reset-merge-alternatives reset-merge-README.CSW reset-merge-obsoleted-by reset-merge-ap2mod reset-merge-src @rm -f $(COOKIEDIR)/pre-merge $(foreach M,$(MODULATIONS),$(COOKIEDIR)/merge-$M) $(COOKIEDIR)/merge $(COOKIEDIR)/post-merge @rm -rf $(PKGROOT) Modified: csw/mgar/gar/v2/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2/gar.pkg.mk 2011-02-20 15:48:06 UTC (rev 13418) +++ csw/mgar/gar/v2/gar.pkg.mk 2011-02-20 19:17:33 UTC (rev 13419) @@ -40,7 +40,8 @@ CATALOGNAME ?= $(if $(filter-out $(firstword $(PACKAGES)),$(PACKAGES)),,$(subst -,_,$(patsubst CSW%,%,$(PACKAGES)))) SRCPACKAGE_BASE = $(firstword $(PACKAGES)) SRCPACKAGE ?= $(SRCPACKAGE_BASE)-src -SPKG_SPECS ?= $(sort $(basename $(filter %.gspec,$(DISTFILES))) $(PACKAGES) $(if $(NOSOURCEPACKAGE),,$(SRCPACKAGE))) +OBSOLETED_PKGS ?= $(sort $(foreach P,$(PACKAGES),$(OBSOLETES_$P))) +SPKG_SPECS ?= $(sort $(basename $(filter %.gspec,$(DISTFILES))) $(PACKAGES) $(OBSOLETED_PKGS) $(if $(NOSOURCEPACKAGE),,$(SRCPACKAGE))) endif # Automatic definitions for source package @@ -54,6 +55,21 @@ RUNTIME_DEP_PKGS_$(SRCPACKAGE) ?= $(or $(GARPKG_$(GARSYSTEMVERSION)),$(error GAR version $(GARSYSTEMVERSION) unknown)) CATALOG_RELEASE ?= current +define obsoleted_pkg +CATALOGNAME_$(1) = $(call catalogname,$(1)) +SPKG_DESC_$(1) = Transitional package as contents moved to $(foreach P,$(PACKAGES),$(if $(filter $(1),$(OBSOLETES_$P)),$P)) +RUNTIME_DEP_PKGS_$(1) = $(foreach P,$(PACKAGES),$(if $(filter $(1),$(OBSOLETES_$P)),$P)) +PKGFILES_$(1) = NOFILES +ARCHALL_$(1) = 1 +$(foreach P,$(PACKAGES),$(if $(filter $(1),$(OBSOLETES_$P)), + CHECKPKG_OVERRIDES_$(1) += surplus-dependency|$P +)) +endef + +$(warning O: $(OBSOLETED_PKGS)) + +$(foreach P,$(OBSOLETED_PKGS),$(eval $(call obsoleted_pkg,$P))) + _PKG_SPECS = $(filter-out $(NOPACKAGE),$(SPKG_SPECS)) # The is the name of the package containing the sourcefiles for all packages generated from this GAR recipe. @@ -111,7 +127,7 @@ $(CATALOGNAME_$(1)), $(if $(CATALOGNAME), $(CATALOGNAME), - $(if $(filter $(1),$(PACKAGES)), + $(if $(filter $(1),$(PACKAGES) $(OBSOLETED_PKGS)), $(subst -,_,$(patsubst CSW%,%,$(1))), $(if $(realpath files/$(1).gspec), $(shell perl -F'\s+' -ane 'print "$$F[2]" if( $$F[0] eq "%var" && $$F[1] eq "bitname")' files/$(1).gspec), @@ -394,6 +410,10 @@ | ( cat; if test -f "$(WORKDIR_GLOBAL)/$(1).cswreleasenotes";then echo "i cswreleasenotes=$(1).cswreleasenotes"; fi) endef +define obsoleted_filter + | ( cat; if test -f "$(WORKDIR_GLOBAL)/$(1).obsoleted-by";then echo "i obsoleted-by=$(1).obsoleted-by"; fi) +endef + # This file contains all installed pathes. This can be used as a starting point # for distributing files to individual packages. PROTOTYPE = $(WORKDIR)/prototype @@ -444,9 +464,9 @@ ) \ <$(PROTOTYPE); \ if [ -n "$(EXTRA_PKGFILES_$*)" ]; then echo "$(EXTRA_PKGFILES_$*)"; fi \ - ) $(call checkpkg_override_filter,$*) $(call cswreleasenotes_filter,$*) $(_CSWCLASS_FILTER) $(_CATEGORY_FILTER) $(_PROTOTYPE_MODIFIERS) $(_PROTOTYPE_FILTER_$*) >$@; \ + ) $(call checkpkg_override_filter,$*) $(call cswreleasenotes_filter,$*) $(call obsoleted_filter,$*) $(_CSWCLASS_FILTER) $(_CATEGORY_FILTER) $(_PROTOTYPE_MODIFIERS) $(_PROTOTYPE_FILTER_$*) >$@; \ else \ - cat $(PROTOTYPE) $(call checkpkg_override_filter,$*) $(call cswreleasenotes_filter,$*) $(_CSWCLASS_FILTER) $(_CATEGORY_FILTER) $(_PROTOTYPE_MODIFIERS) $(_PROTOTYPE_FILTER_$*) >$@; \ + cat $(PROTOTYPE) $(call checkpkg_override_filter,$*) $(call cswreleasenotes_filter,$*) $(call obsoleted_filter,$*) $(_CSWCLASS_FILTER) $(_CATEGORY_FILTER) $(_PROTOTYPE_MODIFIERS) $(_PROTOTYPE_FILTER_$*) >$@; \ fi $(if $(ALLOW_RELOCATE),$(call dontrelocate,opt,$(PROTOTYPE))) @@ -665,6 +685,19 @@ reset-merge-README.CSW: $(_DBG)rm -f $(COOKIEDIR)/merge-README.CSW $(foreach SPEC,$(_PKG_SPECS),$(PKGROOT)$(docdir)/$(call catalogname,$(SPEC))/README.CSW) +merge-obsoleted-by: $(WORKDIR_GLOBAL) + $(_DBG)$(foreach P,$(OBSOLETED_PKGS),$(foreach Q,$(PACKAGES),$(if $(filter $P,$(OBSOLETES_$Q)), \ + $(if $(SPKG_DESC_$Q), \ + echo "$Q $(call catalogname,$Q) - $(SPKG_DESC_$Q)" >> $(WORKDIR_GLOBAL)/$P.obsoleted-by;, \ + echo "$(shell (/usr/bin/pkginfo $Q || echo "$Q - ") | $(GAWK) '{ $$1 = "P"; print } ')" $(WORKDIR_GLOBAL)/$P.obsoleted-by; \ + ) \ + ))) + @$(MAKECOOKIE) + +.PHONY: reset-merge-obsoleted-by +reset-merge-obsoleted-by: + $(_DBG)rm -f $(COOKIEDIR)/merge-obsoleted-by $(WORKDIR_GLOBAL)/obsoleted-by.* + merge-classutils: merge-migrateconf merge-usergroup merge-inetdconf merge-etcservices reset-merge-classutils: reset-merge-migrateconf reset-merge-usergroup reset-merge-inetdconf reset-merge-etcservices 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