From skayser at users.sourceforge.net Wed Dec 1 00:00:34 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Tue, 30 Nov 2010 23:00:34 +0000 Subject: [csw-devel] SF.net SVN: gar:[11744] csw/mgar/gar/v2-noexternals Message-ID: Revision: 11744 http://gar.svn.sourceforge.net/gar/?rev=11744&view=rev Author: skayser Date: 2010-11-30 23:00:34 +0000 (Tue, 30 Nov 2010) Log Message: ----------- gar/v2-noexternals: drop the requirement for the $GARDIR env variable Modified Paths: -------------- csw/mgar/gar/v2-noexternals/category.mk csw/mgar/gar/v2-noexternals/gar.mk csw/mgar/gar/v2-noexternals/gar.pkg.mk Modified: csw/mgar/gar/v2-noexternals/category.mk =================================================================== --- csw/mgar/gar/v2-noexternals/category.mk 2010-11-30 15:51:57 UTC (rev 11743) +++ csw/mgar/gar/v2-noexternals/category.mk 2010-11-30 23:00:34 UTC (rev 11744) @@ -1,13 +1,12 @@ # vim: ft=make ts=4 sw=4 noet -# This makefile is to be included from Makefiles in each category -# directory. +# +# This Makefile is the main entry point to GAR and is included by +# each package build description. As such, the file name 'category.mk' +# is slightly misleading and could be subject to future change. +# -# This is needed by the pkg build approach with gar/ in each pkg build -# directory and is overriden by the "mgar" wrapper which pre-sets GARDIR -# with an absolute path. If we could determine the full path of -# _this_ file's directory, we could use it for both approaches and -# there would be no need to pre-set it for "mgar". -GARDIR ?= $(CURDIR)/gar +# Determine this file's directory, i.e. the GAR base directory +GARDIR := $(dir $(lastword $(MAKEFILE_LIST))) ifeq (,$(wildcard $(GARDIR)/categories/$(CATEGORIES)/category.mk)) $(error The category '$(CATEGORIES)' is invalid. Valid categories are: $(patsubst $(GARDIR)/categories/%,%,$(wildcard $(GARDIR)/categories/*))) Modified: csw/mgar/gar/v2-noexternals/gar.mk =================================================================== --- csw/mgar/gar/v2-noexternals/gar.mk 2010-11-30 15:51:57 UTC (rev 11743) +++ csw/mgar/gar/v2-noexternals/gar.mk 2010-11-30 23:00:34 UTC (rev 11744) @@ -11,21 +11,11 @@ # Comment this out to make much verbosity #.SILENT: -#ifeq ($(origin GARDIR), undefined) -#GARDIR := $(CURDIR)/../.. -#endif - -#GARDIR ?= ../.. -#ifeq ($(origin GARDIR), undefined) -#GARDIR := $(CURDIR)/../.. -#endif - ifneq ($(abspath /),/) $(error Your version of 'make' is too old: $(MAKE_VERSION). Please make sure you are using at least 3.81) endif -# Still required? GARDIR should be pre-set by the top-level category.mk -GARDIR ?= gar +# $(GARDIR) is pre-set by the top-level category.mk GARBIN = $(GARDIR)/bin DIRSTODOTS = $(subst . /,./,$(patsubst %,/..,$(subst /, ,/$(1)))) @@ -136,7 +126,7 @@ merge-$(2): @echo "[===== Building modulation '$(2)' on host '$$(BUILDHOST)' =====]" $$(if $$(and $$(BUILDHOST),$$(filter-out $$(THISHOST),$$(BUILDHOST))),\ - $(SSH) $$(BUILDHOST) "PATH=$$(PATH) GARDIR=$(GARDIR) MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $$(CURDIR) $(if $(GAR_PLATFORM),GAR_PLATFORM=$(GAR_PLATFORM)) MODULATION=$(2) $(3) merge-modulated",\ + $(SSH) $$(BUILDHOST) "PATH=$$(PATH) MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $$(CURDIR) $(if $(GAR_PLATFORM),GAR_PLATFORM=$(GAR_PLATFORM)) MODULATION=$(2) $(3) merge-modulated",\ $(MAKE) $(if $(GAR_PLATFORM),GAR_PLATFORM=$(GAR_PLATFORM)) MODULATION=$(2) $(3) merge-modulated\ ) @# The next line has intentionally been left blank to explicitly terminate this make rule Modified: csw/mgar/gar/v2-noexternals/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2-noexternals/gar.pkg.mk 2010-11-30 15:51:57 UTC (rev 11743) +++ csw/mgar/gar/v2-noexternals/gar.pkg.mk 2010-11-30 23:00:34 UTC (rev 11744) @@ -866,7 +866,7 @@ $(if $(PACKAGING_HOST_$P),\ $(if $(filter $(THISHOST),$(PACKAGING_HOST_$P)),\ $(MAKE) GAR_PLATFORM=$P _package && ,\ - $(SSH) -t $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin GARDIR=$(GARDIR) MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) GAR_PLATFORM=$P _package" && \ + $(SSH) -t $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) GAR_PLATFORM=$P _package" && \ ),\ $(error *** No host has been defined for platform $P)\ )\ @@ -881,7 +881,7 @@ echo " (built on this host)";\ $(MAKE) -s GAR_PLATFORM=$P _pkgshow;echo;,\ echo " (built on host '$(PACKAGING_HOST_$P)')";\ - $(SSH) $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin GARDIR=$(GARDIR) MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) -s GAR_PLATFORM=$P _pkgshow";echo;\ + $(SSH) $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) -s GAR_PLATFORM=$P _pkgshow";echo;\ )\ ) @$(MAKECOOKIE) @@ -892,7 +892,7 @@ $(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 GARDIR=$(GARDIR) MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) GAR_PLATFORM=$P $*" && \ + $(SSH) -t $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) 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. From wahwah at users.sourceforge.net Wed Dec 1 07:27:15 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 01 Dec 2010 06:27:15 +0000 Subject: [csw-devel] SF.net SVN: gar:[11745] csw/mgar/gar/v2/lib/python/package_checks.py Message-ID: Revision: 11745 http://gar.svn.sourceforge.net/gar/?rev=11745&view=rev Author: wahwah Date: 2010-12-01 06:27:15 +0000 (Wed, 01 Dec 2010) Log Message: ----------- Merge branch 'master' of file:///home/maciej/public_html/opencsw Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-11-30 23:00:34 UTC (rev 11744) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-01 06:27:15 UTC (rev 11745) @@ -1101,6 +1101,9 @@ messenger.SuggestGarLine( "PACKAGES += %s" % suggested_pkgname) messenger.SuggestGarLine( + "CATALOGNAME_%s = %s" + % (suggested_pkgname, policy_catalogname_list[0])) + messenger.SuggestGarLine( "PKGFILES_%s += /%s" % (suggested_pkgname, binary_info["path"])) lib_basename, lib_filename = os.path.split(binary_info["path"]) messenger.SuggestGarLine( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Wed Dec 1 10:37:51 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Wed, 01 Dec 2010 09:37:51 +0000 Subject: [csw-devel] SF.net SVN: gar:[11746] csw/mgar/gar/v2 Message-ID: Revision: 11746 http://gar.svn.sourceforge.net/gar/?rev=11746&view=rev Author: skayser Date: 2010-12-01 09:37:50 +0000 (Wed, 01 Dec 2010) Log Message: ----------- gar/v2: merged branch v2-noexternals r11378:11745 Modified Paths: -------------- csw/mgar/gar/v2/category.mk csw/mgar/gar/v2/gar.mk csw/mgar/gar/v2/gar.pkg.mk Property Changed: ---------------- csw/mgar/gar/v2/ csw/mgar/gar/v2/pkglib/csw/depend Property changes on: csw/mgar/gar/v2 ___________________________________________________________________ Modified: svn:mergeinfo - /csw/mgar/gar/v2:4936-6678 /csw/mgar/gar/v2-bwalton:9784-10011 /csw/mgar/gar/v2-checkpkg:7722-7855 /csw/mgar/gar/v2-checkpkg-override-relocation:10585-10737 /csw/mgar/gar/v2-checkpkg-stats:8454-8649 /csw/mgar/gar/v2-collapsed-modulations:6895 /csw/mgar/gar/v2-dirpackage:8125-8180 /csw/mgar/gar/v2-git/v2-relocate:7617 /csw/mgar/gar/v2-migrateconf:7082-7211 /csw/mgar/gar/v2-relocate:5028-11738 /csw/mgar/gar/v2-skayser:6087-6132 /csw/mgar/gar/v2-sqlite:10434-10449 + /csw/mgar/gar/v2:4936-6678 /csw/mgar/gar/v2-bwalton:9784-10011 /csw/mgar/gar/v2-checkpkg:7722-7855 /csw/mgar/gar/v2-checkpkg-override-relocation:10585-10737 /csw/mgar/gar/v2-checkpkg-stats:8454-8649 /csw/mgar/gar/v2-collapsed-modulations:6895 /csw/mgar/gar/v2-dirpackage:8125-8180 /csw/mgar/gar/v2-git/v2-relocate:7617 /csw/mgar/gar/v2-migrateconf:7082-7211 /csw/mgar/gar/v2-noexternals:11592-11745 /csw/mgar/gar/v2-relocate:5028-11738 /csw/mgar/gar/v2-skayser:6087-6132 /csw/mgar/gar/v2-sqlite:10434-10449 Modified: csw/mgar/gar/v2/category.mk =================================================================== --- csw/mgar/gar/v2/category.mk 2010-12-01 06:27:15 UTC (rev 11745) +++ csw/mgar/gar/v2/category.mk 2010-12-01 09:37:50 UTC (rev 11746) @@ -1,8 +1,12 @@ # vim: ft=make ts=4 sw=4 noet -# This makefile is to be included from Makefiles in each category -# directory. +# +# This Makefile is the main entry point to GAR and is included by +# each package build description. As such, the file name 'category.mk' +# is slightly misleading and could be subject to future change. +# -GARDIR ?= $(abspath gar) +# Determine this file's directory, i.e. the GAR base directory +GARDIR := $(dir $(lastword $(MAKEFILE_LIST))) ifeq (,$(wildcard $(GARDIR)/categories/$(CATEGORIES)/category.mk)) $(error The category '$(CATEGORIES)' is invalid. Valid categories are: $(patsubst $(GARDIR)/categories/%,%,$(wildcard $(GARDIR)/categories/*))) Modified: csw/mgar/gar/v2/gar.mk =================================================================== --- csw/mgar/gar/v2/gar.mk 2010-12-01 06:27:15 UTC (rev 11745) +++ csw/mgar/gar/v2/gar.mk 2010-12-01 09:37:50 UTC (rev 11746) @@ -11,20 +11,11 @@ # Comment this out to make much verbosity #.SILENT: -#ifeq ($(origin GARDIR), undefined) -#GARDIR := $(CURDIR)/../.. -#endif - -#GARDIR ?= ../.. -#ifeq ($(origin GARDIR), undefined) -#GARDIR := $(CURDIR)/../.. -#endif - ifneq ($(abspath /),/) $(error Your version of 'make' is too old: $(MAKE_VERSION). Please make sure you are using at least 3.81) endif -GARDIR ?= $(abspath gar) +# $(GARDIR) is pre-set by the top-level category.mk GARBIN = $(GARDIR)/bin DIRSTODOTS = $(subst . /,./,$(patsubst %,/..,$(subst /, ,/$(1)))) @@ -135,7 +126,7 @@ merge-$(2): @echo "[===== Building modulation '$(2)' on host '$$(BUILDHOST)' =====]" $$(if $$(and $$(BUILDHOST),$$(filter-out $$(THISHOST),$$(BUILDHOST))),\ - $(SSH) $$(BUILDHOST) "PATH=$$(PATH) $(MAKE) -C $$(CURDIR) $(if $(GAR_PLATFORM),GAR_PLATFORM=$(GAR_PLATFORM)) MODULATION=$(2) $(3) merge-modulated",\ + $(SSH) $$(BUILDHOST) "PATH=$$(PATH) MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $$(CURDIR) $(if $(GAR_PLATFORM),GAR_PLATFORM=$(GAR_PLATFORM)) MODULATION=$(2) $(3) merge-modulated",\ $(MAKE) $(if $(GAR_PLATFORM),GAR_PLATFORM=$(GAR_PLATFORM)) MODULATION=$(2) $(3) merge-modulated\ ) @# The next line has intentionally been left blank to explicitly terminate this make rule @@ -395,7 +386,7 @@ # We call an additional extract-modulated without resetting any variables so # a complete unpacked set goes to the global dir for packaging (like gspec) -extract: checksum $(COOKIEDIR) pre-extract pre-extract-git-check extract-modulated $(addprefix extract-,$(MODULATIONS)) post-extract +extract: checksum $(COOKIEDIR) pre-extract $(if $(NOGITPATCH),,pre-extract-git-check) extract-modulated $(addprefix extract-,$(MODULATIONS)) post-extract @$(DONADA) extract-global: $(if $(filter global,$(MODULATION)),extract-modulated) @@ -406,7 +397,7 @@ $(addprefix dep-$(GARDIR)/,$(EXTRACTDEPS)) \ announce-modulation \ pre-extract-modulated pre-extract-$(MODULATION) $(EXTRACT_TARGETS) post-extract-$(MODULATION) post-extract-modulated \ - $(if $(filter global,$(MODULATION)),,post-extract-gitsnap) \ + $(if $(filter global,$(MODULATION)),,$(if $(NOGITPATCH),,post-extract-gitsnap)) \ $(foreach FILE,$(EXPANDVARS),expandvars-$(FILE)) @$(DONADA) @@ -467,7 +458,7 @@ patch: pre-patch $(addprefix patch-,$(MODULATIONS)) post-patch @$(DONADA) -patch-modulated: extract-modulated $(WORKSRC) pre-patch-modulated pre-patch-$(MODULATION) $(PATCH_TARGETS) $(if $(filter global,$(MODULATION)),,post-patch-gitsnap) post-patch-$(MODULATION) post-patch-modulated +patch-modulated: extract-modulated $(WORKSRC) pre-patch-modulated pre-patch-$(MODULATION) $(PATCH_TARGETS) $(if $(filter global,$(MODULATION)),,$(if $(NOGITPATCH),,post-patch-gitsnap)) post-patch-$(MODULATION) post-patch-modulated @$(DONADA) # returns true if patch has completed successfully, false @@ -484,9 +475,13 @@ fi ) @$(MAKECOOKIE) -makepatch: $(addprefix patch-,$(MODULATIONS)) $(addprefix makepatch-,$(MODULATIONS)) +makepatch: $(if $(NOGITPATCH),makepatch-nogit,$(addprefix patch-,$(MODULATIONS)) $(addprefix makepatch-,$(MODULATIONS))) @$(DONADA) +makepatch-nogit: + @echo You set NOGITPATCH in your build recipe. I can't create a patch. + @$(DONADA) + # Allow generation of patches from modified work source. makepatch-modulated: $(FILEDIR) @( if [ -d "$(WORKSRC)/.git" ]; then \ Modified: csw/mgar/gar/v2/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2/gar.pkg.mk 2010-12-01 06:27:15 UTC (rev 11745) +++ csw/mgar/gar/v2/gar.pkg.mk 2010-12-01 09:37:50 UTC (rev 11746) @@ -877,7 +877,7 @@ $(if $(PACKAGING_HOST_$P),\ $(if $(filter $(THISHOST),$(PACKAGING_HOST_$P)),\ $(MAKE) GAR_PLATFORM=$P _package && ,\ - $(SSH) -t $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin $(MAKE) -C $(CURDIR) GAR_PLATFORM=$P _package" && \ + $(SSH) -t $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) GAR_PLATFORM=$P _package" && \ ),\ $(error *** No host has been defined for platform $P)\ )\ @@ -892,7 +892,7 @@ echo " (built on this host)";\ $(MAKE) -s GAR_PLATFORM=$P _pkgshow;echo;,\ echo " (built on host '$(PACKAGING_HOST_$P)')";\ - $(SSH) $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin $(MAKE) -C $(CURDIR) -s GAR_PLATFORM=$P _pkgshow";echo;\ + $(SSH) $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) -s GAR_PLATFORM=$P _pkgshow";echo;\ )\ ) @$(MAKECOOKIE) @@ -903,7 +903,7 @@ $(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) -C $(CURDIR) GAR_PLATFORM=$P $*" && \ + $(SSH) -t $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) GAR_PLATFORM=$P $*" && \ ),\ $(error *** No host has been defined for platform $P)\ )\ Property changes on: csw/mgar/gar/v2/pkglib/csw/depend ___________________________________________________________________ Modified: svn:mergeinfo - /csw/mgar/gar/v2/pkglib/csw/depend:4936-6678 /csw/mgar/gar/v2-bwalton/pkglib/csw/depend:9784-10011 /csw/mgar/gar/v2-checkpkg/pkglib/csw/depend:7722-7855 /csw/mgar/gar/v2-checkpkg-override-relocation/pkglib/csw/depend:10585-10737 /csw/mgar/gar/v2-checkpkg-stats/pkglib/csw/depend:8454-8649 /csw/mgar/gar/v2-collapsed-modulations/pkglib/csw/depend:6895 /csw/mgar/gar/v2-dirpackage/pkglib/csw/depend:8125-8180 /csw/mgar/gar/v2-relocate/pkglib/csw/depend:5028-11738 /csw/mgar/gar/v2-skayser/pkglib/csw/depend:6087-6132 /csw/mgar/gar/v2-sqlite/pkglib/csw/depend:10434-10449 + /csw/mgar/gar/v2/pkglib/csw/depend:4936-6678 /csw/mgar/gar/v2-bwalton/pkglib/csw/depend:9784-10011 /csw/mgar/gar/v2-checkpkg/pkglib/csw/depend:7722-7855 /csw/mgar/gar/v2-checkpkg-override-relocation/pkglib/csw/depend:10585-10737 /csw/mgar/gar/v2-checkpkg-stats/pkglib/csw/depend:8454-8649 /csw/mgar/gar/v2-collapsed-modulations/pkglib/csw/depend:6895 /csw/mgar/gar/v2-dirpackage/pkglib/csw/depend:8125-8180 /csw/mgar/gar/v2-noexternals/pkglib/csw/depend:11592-11745 /csw/mgar/gar/v2-relocate/pkglib/csw/depend:5028-11738 /csw/mgar/gar/v2-skayser/pkglib/csw/depend:6087-6132 /csw/mgar/gar/v2-sqlite/pkglib/csw/depend:10434-10449 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 1 12:56:29 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 01 Dec 2010 11:56:29 +0000 Subject: [csw-devel] SF.net SVN: gar:[11747] csw/mgar/pkg/cpan Message-ID: Revision: 11747 http://gar.svn.sourceforge.net/gar/?rev=11747&view=rev Author: dmichelsen Date: 2010-12-01 11:56:29 +0000 (Wed, 01 Dec 2010) Log Message: ----------- cpan/B-Flags: Initial commit Added Paths: ----------- csw/mgar/pkg/cpan/B-Flags/ csw/mgar/pkg/cpan/B-Flags/branches/ csw/mgar/pkg/cpan/B-Flags/tags/ csw/mgar/pkg/cpan/B-Flags/trunk/ csw/mgar/pkg/cpan/B-Flags/trunk/Makefile csw/mgar/pkg/cpan/B-Flags/trunk/checksums csw/mgar/pkg/cpan/B-Flags/trunk/files/ csw/mgar/pkg/cpan/B-Flags/trunk/files/COPYING Property changes on: csw/mgar/pkg/cpan/B-Flags/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/cpan/B-Flags/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/B-Flags/trunk/Makefile (rev 0) +++ csw/mgar/pkg/cpan/B-Flags/trunk/Makefile 2010-12-01 11:56:29 UTC (rev 11747) @@ -0,0 +1,15 @@ +GARNAME = B-Flags +GARVERSION = 0.04 +CATEGORIES = cpan +AUTHOR = RURBAN + +DESCRIPTION = Friendlier flags for B +define BLURB +endef + +DISTFILES = COPYING + +PACKAGES = CSWpm-b-flags +CATALOGNAME = pm_b_flags + +include gar/category.mk Added: csw/mgar/pkg/cpan/B-Flags/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/B-Flags/trunk/checksums (rev 0) +++ csw/mgar/pkg/cpan/B-Flags/trunk/checksums 2010-12-01 11:56:29 UTC (rev 11747) @@ -0,0 +1 @@ +2c1f39f89662639ee211b32af0d46867 B-Flags-0.04.tar.gz Added: csw/mgar/pkg/cpan/B-Flags/trunk/files/COPYING =================================================================== --- csw/mgar/pkg/cpan/B-Flags/trunk/files/COPYING (rev 0) +++ csw/mgar/pkg/cpan/B-Flags/trunk/files/COPYING 2010-12-01 11:56:29 UTC (rev 11747) @@ -0,0 +1,2 @@ +AL&GPL. +Copyright 2001 Simon Cozens This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 1 12:59:23 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 01 Dec 2010 11:59:23 +0000 Subject: [csw-devel] SF.net SVN: gar:[11748] csw/mgar/pkg/cpan/IPC-Run/trunk Message-ID: Revision: 11748 http://gar.svn.sourceforge.net/gar/?rev=11748&view=rev Author: dmichelsen Date: 2010-12-01 11:59:23 +0000 (Wed, 01 Dec 2010) Log Message: ----------- cpan/IPC-Run: Update to 0.89 and mGAR v2 Modified Paths: -------------- csw/mgar/pkg/cpan/IPC-Run/trunk/Makefile csw/mgar/pkg/cpan/IPC-Run/trunk/checksums Removed Paths: ------------- csw/mgar/pkg/cpan/IPC-Run/trunk/files/CSWpmipcrun.gspec csw/mgar/pkg/cpan/IPC-Run/trunk/files/CSWpmipcrun.prototype Property Changed: ---------------- csw/mgar/pkg/cpan/IPC-Run/trunk/ Property changes on: csw/mgar/pkg/cpan/IPC-Run/trunk ___________________________________________________________________ Modified: svn:externals - gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v1 + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Modified: csw/mgar/pkg/cpan/IPC-Run/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/IPC-Run/trunk/Makefile 2010-12-01 11:56:29 UTC (rev 11747) +++ csw/mgar/pkg/cpan/IPC-Run/trunk/Makefile 2010-12-01 11:59:23 UTC (rev 11748) @@ -1,9 +1,9 @@ GARNAME = IPC-Run -GARVERSION = 0.78 +GARVERSION = 0.89 CATEGORIES = cpan -AUTHOR = RBS +AUTHOR = TODDR -DESCRIPTION = system and background procs w/ piping, redirs, ptys (Unix, Win32) +DESCRIPTION = Provides system() and background procs w/ piping, redirs, ptys define BLURB IPC::Run allows you run and interact with child processes using files, pipes, and pseudo-ttys. Both system()-style and scripted usages are @@ -11,6 +11,11 @@ supported and may be mixed. endef -DISTFILES += $(call admfiles,CSWpmipcrun,prototype) +PACKAGES = CSWpmipcrun +CATALOGNAME = CSWpmipcrun +LICENSE = LICENSE + +ARCHALL = 1 + include gar/category.mk Modified: csw/mgar/pkg/cpan/IPC-Run/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/IPC-Run/trunk/checksums 2010-12-01 11:56:29 UTC (rev 11747) +++ csw/mgar/pkg/cpan/IPC-Run/trunk/checksums 2010-12-01 11:59:23 UTC (rev 11748) @@ -1,3 +1 @@ -5a9ec39bc7c7992498b23a0496a5e727 download/CSWpmipcrun.gspec -4072c5189b76efa9a5897f5718cecbfd download/CSWpmipcrun.prototype -3ee9757db89822211eb710d6498e661d download/IPC-Run-0.78.tar.gz +9dc3b8cca378b871fafab7c6e5a61cdd IPC-Run-0.89.tar.gz Deleted: csw/mgar/pkg/cpan/IPC-Run/trunk/files/CSWpmipcrun.gspec =================================================================== --- csw/mgar/pkg/cpan/IPC-Run/trunk/files/CSWpmipcrun.gspec 2010-12-01 11:56:29 UTC (rev 11747) +++ csw/mgar/pkg/cpan/IPC-Run/trunk/files/CSWpmipcrun.gspec 2010-12-01 11:59:23 UTC (rev 11748) @@ -1,9 +0,0 @@ -%var bitname pm_ipcrun -%var pkgname CSWpmipcrun -%var arch all -%include url file://%{PKGLIB}/csw_cpan.gspec -%copyright -Copyright (c) 1999 by Barrie Slaymaker, barries at slaysys.com - -You may distribute under the terms of either the GNU General Public -License or the Artistic License, as specified in the README file. Deleted: csw/mgar/pkg/cpan/IPC-Run/trunk/files/CSWpmipcrun.prototype =================================================================== --- csw/mgar/pkg/cpan/IPC-Run/trunk/files/CSWpmipcrun.prototype 2010-12-01 11:56:29 UTC (rev 11747) +++ csw/mgar/pkg/cpan/IPC-Run/trunk/files/CSWpmipcrun.prototype 2010-12-01 11:59:23 UTC (rev 11748) @@ -1,28 +0,0 @@ -d none /opt/csw/lib 0755 root bin -d none /opt/csw/lib/perl 0755 root bin -d none /opt/csw/lib/perl/csw 0755 root bin -d none /opt/csw/lib/perl/csw/auto 0755 root bin -d none /opt/csw/lib/perl/csw/auto/IPC 0755 root bin -d none /opt/csw/lib/perl/csw/auto/IPC/Run 0755 root bin -f none /opt/csw/lib/perl/csw/auto/IPC/Run/.packlist 0644 root bin -d none /opt/csw/share 0755 root bin -d none /opt/csw/share/man 0755 root bin -d none /opt/csw/share/man/man3 0755 root bin -f none /opt/csw/share/man/man3/IPC::Run.3perl 0444 root bin -f none /opt/csw/share/man/man3/IPC::Run::Debug.3perl 0444 root bin -f none /opt/csw/share/man/man3/IPC::Run::IO.3perl 0444 root bin -f none /opt/csw/share/man/man3/IPC::Run::Timer.3perl 0444 root bin -f none /opt/csw/share/man/man3/IPC::Run::Win32Helper.3perl 0444 root bin -f none /opt/csw/share/man/man3/IPC::Run::Win32IO.3perl 0444 root bin -f none /opt/csw/share/man/man3/IPC::Run::Win32Pump.3perl 0444 root bin -d none /opt/csw/share/perl 0755 root bin -d none /opt/csw/share/perl/csw 0755 root bin -d none /opt/csw/share/perl/csw/IPC 0755 root bin -d none /opt/csw/share/perl/csw/IPC/Run 0755 root bin -f none /opt/csw/share/perl/csw/IPC/Run.pm 0555 root bin -f none /opt/csw/share/perl/csw/IPC/Run/Debug.pm 0555 root bin -f none /opt/csw/share/perl/csw/IPC/Run/IO.pm 0555 root bin -f none /opt/csw/share/perl/csw/IPC/Run/Timer.pm 0555 root bin -f none /opt/csw/share/perl/csw/IPC/Run/Win32Helper.pm 0555 root bin -f none /opt/csw/share/perl/csw/IPC/Run/Win32IO.pm 0555 root bin -f none /opt/csw/share/perl/csw/IPC/Run/Win32Pump.pm 0555 root bin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 1 12:59:51 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 01 Dec 2010 11:59:51 +0000 Subject: [csw-devel] SF.net SVN: gar:[11749] csw/mgar/pkg/cpan/DBD-Pg/trunk Message-ID: Revision: 11749 http://gar.svn.sourceforge.net/gar/?rev=11749&view=rev Author: dmichelsen Date: 2010-12-01 11:59:51 +0000 (Wed, 01 Dec 2010) Log Message: ----------- cpan/DBD-Pg: Update to 2.17.2 Modified Paths: -------------- csw/mgar/pkg/cpan/DBD-Pg/trunk/Makefile csw/mgar/pkg/cpan/DBD-Pg/trunk/checksums Added Paths: ----------- csw/mgar/pkg/cpan/DBD-Pg/trunk/files/0001-Dont-return-value-in-dequote_bytea.patch Removed Paths: ------------- csw/mgar/pkg/cpan/DBD-Pg/trunk/files/CSWpmdbdpg.depend csw/mgar/pkg/cpan/DBD-Pg/trunk/files/CSWpmdbdpg.gspec Modified: csw/mgar/pkg/cpan/DBD-Pg/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/DBD-Pg/trunk/Makefile 2010-12-01 11:59:23 UTC (rev 11748) +++ csw/mgar/pkg/cpan/DBD-Pg/trunk/Makefile 2010-12-01 11:59:51 UTC (rev 11749) @@ -1,5 +1,5 @@ GARNAME = DBD-Pg -GARVERSION = 2.16.1 +GARVERSION = 2.17.2 CATEGORIES = cpan AUTHOR = TURNSTEP @@ -9,6 +9,8 @@ to PostgreSQL databases. endef +PATCHFILES = 0001-Dont-return-value-in-dequote_bytea.patch + PACKAGES = CSWpmdbdpg CATALOGNAME = pm_dbdpg Modified: csw/mgar/pkg/cpan/DBD-Pg/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/DBD-Pg/trunk/checksums 2010-12-01 11:59:23 UTC (rev 11748) +++ csw/mgar/pkg/cpan/DBD-Pg/trunk/checksums 2010-12-01 11:59:51 UTC (rev 11749) @@ -1 +1 @@ -127f88ab24b971a8f5e3720a496235a5 DBD-Pg-2.16.1.tar.gz +2cd63605a9420a63c780f627420a359a DBD-Pg-2.17.2.tar.gz Added: csw/mgar/pkg/cpan/DBD-Pg/trunk/files/0001-Dont-return-value-in-dequote_bytea.patch =================================================================== --- csw/mgar/pkg/cpan/DBD-Pg/trunk/files/0001-Dont-return-value-in-dequote_bytea.patch (rev 0) +++ csw/mgar/pkg/cpan/DBD-Pg/trunk/files/0001-Dont-return-value-in-dequote_bytea.patch 2010-12-01 11:59:51 UTC (rev 11749) @@ -0,0 +1,29 @@ +From 0242e1aa1d6f6a95a1b1addb750c35c526ee20fe Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Wed, 1 Dec 2010 12:27:55 +0100 +Subject: [PATCH] Dont return value in dequote_bytea + +--- + quote.c | 5 +++-- + 1 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/quote.c b/quote.c +index 96ca12f..f8a7249 100644 +--- a/quote.c ++++ b/quote.c +@@ -529,9 +529,10 @@ void dequote_bytea(char *string, STRLEN *retlen, int estring) + return; + + if ('\\' == *string && 'x' == *(string+1)) +- return _dequote_bytea_hex(string, retlen, estring); ++ _dequote_bytea_hex(string, retlen, estring); + else +- return _dequote_bytea_escape(string, retlen, estring); ++ _dequote_bytea_escape(string, retlen, estring); ++ return; + } + + /* +-- +1.7.3 + Deleted: csw/mgar/pkg/cpan/DBD-Pg/trunk/files/CSWpmdbdpg.depend =================================================================== Deleted: csw/mgar/pkg/cpan/DBD-Pg/trunk/files/CSWpmdbdpg.gspec =================================================================== --- csw/mgar/pkg/cpan/DBD-Pg/trunk/files/CSWpmdbdpg.gspec 2010-12-01 11:59:23 UTC (rev 11748) +++ csw/mgar/pkg/cpan/DBD-Pg/trunk/files/CSWpmdbdpg.gspec 2010-12-01 11:59:51 UTC (rev 11749) @@ -1,11 +0,0 @@ -%var bitname pm_dbdpg -%var pkgname CSWpmdbdpg -%include url file://%{PKGLIB}/csw_cpan.gspec -%copyright -Portions Copyright (c) 1994,1995,1996,1997 Tim Bunce -Copyright (c) 1997,1998,1999,2000 Edmund Mergl -Copyright (c) 2002 Jeffrey W. Baker -Copyright (c) 2002,2003 PostgreSQL Global Development Group - -You may distribute under the terms of either the GNU General Public -License or the Artistic License, as specified in the Perl README file. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 1 13:26:45 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 01 Dec 2010 12:26:45 +0000 Subject: [csw-devel] SF.net SVN: gar:[11750] csw/mgar/pkg/cpan Message-ID: Revision: 11750 http://gar.svn.sourceforge.net/gar/?rev=11750&view=rev Author: dmichelsen Date: 2010-12-01 12:26:44 +0000 (Wed, 01 Dec 2010) Log Message: ----------- cpan/Opcodes: Initial commit Added Paths: ----------- csw/mgar/pkg/cpan/Opcodes/ csw/mgar/pkg/cpan/Opcodes/branches/ csw/mgar/pkg/cpan/Opcodes/tags/ csw/mgar/pkg/cpan/Opcodes/trunk/ csw/mgar/pkg/cpan/Opcodes/trunk/Makefile csw/mgar/pkg/cpan/Opcodes/trunk/checksums csw/mgar/pkg/cpan/Opcodes/trunk/files/ Property changes on: csw/mgar/pkg/cpan/Opcodes/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/cpan/Opcodes/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Opcodes/trunk/Makefile (rev 0) +++ csw/mgar/pkg/cpan/Opcodes/trunk/Makefile 2010-12-01 12:26:44 UTC (rev 11750) @@ -0,0 +1,15 @@ +GARNAME = Opcodes +GARVERSION = 0.10 +CATEGORIES = cpan +AUTHOR = RURBAN + +DESCRIPTION = More Opcodes information from opnames.h and opcode.h +define BLURB +endef + +PACKAGES = CSWpm-opcodes +CATALOGNAME = pm_opcodes + +LICENSE = LICENSE + +include gar/category.mk Added: csw/mgar/pkg/cpan/Opcodes/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/Opcodes/trunk/checksums (rev 0) +++ csw/mgar/pkg/cpan/Opcodes/trunk/checksums 2010-12-01 12:26:44 UTC (rev 11750) @@ -0,0 +1 @@ +f808fc2c8ebdfbf3d8923ec0ec4f4cd2 Opcodes-0.10.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 1 13:48:11 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 01 Dec 2010 12:48:11 +0000 Subject: [csw-devel] SF.net SVN: gar:[11751] csw/mgar/pkg/cpan/IPC-Run/trunk/Makefile Message-ID: Revision: 11751 http://gar.svn.sourceforge.net/gar/?rev=11751&view=rev Author: dmichelsen Date: 2010-12-01 12:48:11 +0000 (Wed, 01 Dec 2010) Log Message: ----------- cpan/IPC-Run: Fix catalog name Modified Paths: -------------- csw/mgar/pkg/cpan/IPC-Run/trunk/Makefile Modified: csw/mgar/pkg/cpan/IPC-Run/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/IPC-Run/trunk/Makefile 2010-12-01 12:26:44 UTC (rev 11750) +++ csw/mgar/pkg/cpan/IPC-Run/trunk/Makefile 2010-12-01 12:48:11 UTC (rev 11751) @@ -12,7 +12,7 @@ endef PACKAGES = CSWpmipcrun -CATALOGNAME = CSWpmipcrun +CATALOGNAME = pm_ipcrun LICENSE = LICENSE This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 1 15:03:42 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 01 Dec 2010 14:03:42 +0000 Subject: [csw-devel] SF.net SVN: gar:[11752] csw/mgar/pkg/adobereader/trunk Message-ID: Revision: 11752 http://gar.svn.sourceforge.net/gar/?rev=11752&view=rev Author: dmichelsen Date: 2010-12-01 14:03:41 +0000 (Wed, 01 Dec 2010) Log Message: ----------- adobereader: Update i386 version to 9.4.1 Modified Paths: -------------- csw/mgar/pkg/adobereader/trunk/Makefile csw/mgar/pkg/adobereader/trunk/checksums Modified: csw/mgar/pkg/adobereader/trunk/Makefile =================================================================== --- csw/mgar/pkg/adobereader/trunk/Makefile 2010-12-01 12:48:11 UTC (rev 11751) +++ csw/mgar/pkg/adobereader/trunk/Makefile 2010-12-01 14:03:41 UTC (rev 11752) @@ -2,8 +2,8 @@ GARNAME = adobereader GARVERSION_sparc = 8.1.7 FILEVERSION_sparc = 8.1.7 -GARVERSION_i386 = 9.4.0 -FILEVERSION_i386 = 9.4 +GARVERSION_i386 = 9.4.1 +FILEVERSION_i386 = 9.4.1 GARVERSION = $(GARVERSION_$(GARCH)) CATEGORIES = apps Modified: csw/mgar/pkg/adobereader/trunk/checksums =================================================================== --- csw/mgar/pkg/adobereader/trunk/checksums 2010-12-01 12:48:11 UTC (rev 11751) +++ csw/mgar/pkg/adobereader/trunk/checksums 2010-12-01 14:03:41 UTC (rev 11752) @@ -1,2 +1,2 @@ -7cb3117a51d0a992af8239bfb6d8fd8d AdbeRdr9.4-1_i486solaris_enu.tar.bz2 +da822d95d8c632947230d102bab177f5 AdbeRdr9.4.1-1_i486solaris_enu.tar.bz2 44aea1ffcf857b2ef8ed36a659b32390 AdobeReader_enu-8.1.7-1.sparc.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 1 15:50:22 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 01 Dec 2010 14:50:22 +0000 Subject: [csw-devel] SF.net SVN: gar:[11753] csw/mgar/pkg/cpan Message-ID: Revision: 11753 http://gar.svn.sourceforge.net/gar/?rev=11753&view=rev Author: dmichelsen Date: 2010-12-01 14:50:22 +0000 (Wed, 01 Dec 2010) Log Message: ----------- cpan/B-C: Initial commit Added Paths: ----------- csw/mgar/pkg/cpan/B-C/ csw/mgar/pkg/cpan/B-C/branches/ csw/mgar/pkg/cpan/B-C/tags/ csw/mgar/pkg/cpan/B-C/trunk/ csw/mgar/pkg/cpan/B-C/trunk/Makefile csw/mgar/pkg/cpan/B-C/trunk/checksums csw/mgar/pkg/cpan/B-C/trunk/files/ Property changes on: csw/mgar/pkg/cpan/B-C/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/cpan/B-C/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/B-C/trunk/Makefile (rev 0) +++ csw/mgar/pkg/cpan/B-C/trunk/Makefile 2010-12-01 14:50:22 UTC (rev 11753) @@ -0,0 +1,17 @@ +GARNAME = B-C +GARVERSION = 1.27 +CATEGORIES = cpan +AUTHOR = RURBAN + +DESCRIPTION = Perl compiler's C backend +define BLURB +endef + +PACKAGES = CSWpmbc +CATALOGNAME = pm_bc + +LICENSE = Artistic + +DEP_PKGS = CSWpm-b-flags CSWpm-opcodes CSWpmipcrun + +include gar/category.mk Added: csw/mgar/pkg/cpan/B-C/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/B-C/trunk/checksums (rev 0) +++ csw/mgar/pkg/cpan/B-C/trunk/checksums 2010-12-01 14:50:22 UTC (rev 11753) @@ -0,0 +1 @@ +34444727813d06e3093316c28bb956ec B-C-1.27.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bonivart at users.sourceforge.net Wed Dec 1 18:31:59 2010 From: bonivart at users.sourceforge.net (bonivart at users.sourceforge.net) Date: Wed, 01 Dec 2010 17:31:59 +0000 Subject: [csw-devel] SF.net SVN: gar:[11754] csw/mgar/pkg/clamav/trunk/Makefile Message-ID: Revision: 11754 http://gar.svn.sourceforge.net/gar/?rev=11754&view=rev Author: bonivart Date: 2010-12-01 17:31:59 +0000 (Wed, 01 Dec 2010) Log Message: ----------- clamav: add i-dep Modified Paths: -------------- csw/mgar/pkg/clamav/trunk/Makefile Modified: csw/mgar/pkg/clamav/trunk/Makefile =================================================================== --- csw/mgar/pkg/clamav/trunk/Makefile 2010-12-01 14:50:22 UTC (rev 11753) +++ csw/mgar/pkg/clamav/trunk/Makefile 2010-12-01 17:31:59 UTC (rev 11754) @@ -34,6 +34,7 @@ RUNTIME_DEP_PKGS_CSWlibclam6 = CSWzlib CSWbzip2 CSWiconv RUNTIME_DEP_PKGS_CSWlibclam6 += CSWlibltdl7 +INCOMPATIBLE_PKGS_CSWlibclam6 = CSWlibclamav # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bonivart at users.sourceforge.net Wed Dec 1 19:04:29 2010 From: bonivart at users.sourceforge.net (bonivart at users.sourceforge.net) Date: Wed, 01 Dec 2010 18:04:29 +0000 Subject: [csw-devel] SF.net SVN: gar:[11755] csw/mgar/pkg/clamav/trunk/Makefile Message-ID: Revision: 11755 http://gar.svn.sourceforge.net/gar/?rev=11755&view=rev Author: bonivart Date: 2010-12-01 18:04:29 +0000 (Wed, 01 Dec 2010) Log Message: ----------- clamav: rename devel pkg Modified Paths: -------------- csw/mgar/pkg/clamav/trunk/Makefile Modified: csw/mgar/pkg/clamav/trunk/Makefile =================================================================== --- csw/mgar/pkg/clamav/trunk/Makefile 2010-12-01 17:31:59 UTC (rev 11754) +++ csw/mgar/pkg/clamav/trunk/Makefile 2010-12-01 18:04:29 UTC (rev 11755) @@ -18,16 +18,16 @@ DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz #DISTFILES = $(GARNAME)-devel-latest.tar.gz -PACKAGES = CSWclamav CSWlibclam6 CSWlibclamav-devel +PACKAGES = CSWclamav CSWlibclam6 CSWlibclam6-devel CATALOGNAME_CSWclamav = clamav SPKG_DESC_CSWclamav = $(DESCRIPTION) -CATALOGNAME_CSWlibclamav = libclam6 +CATALOGNAME_CSWlibclam6 = libclam6 SPKG_DESC_CSWlibclam6 = $(DESCRIPTION) Library -CATALOGNAME_CSWlibclamav-devel = libclamav_devel -SPKG_DESC_CSWlibclamav-devel = $(DESCRIPTION) Development +CATALOGNAME_CSWlibclam6-devel = libclam6_devel +SPKG_DESC_CSWlibclam6-devel = $(DESCRIPTION) Development RUNTIME_DEP_PKGS_CSWclamav = CSWlibclam6 CSWzlib CSWbzip2 CSWiconv CSWncurses RUNTIME_DEP_PKGS_CSWclamav += CSWlibltdl7 @@ -36,6 +36,8 @@ RUNTIME_DEP_PKGS_CSWlibclam6 += CSWlibltdl7 INCOMPATIBLE_PKGS_CSWlibclam6 = CSWlibclamav +INCOMPATIBLE_PKGS_CSWlibclam6-devel = CSWlibclamav-devel + # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz @@ -68,7 +70,7 @@ EXTRA_MERGE_EXCLUDE_FILES = .*~ $(libdir)/.*\.a $(libdir)/.*\.la -PKGFILES_CSWlibclamav-devel = $(PKGFILES_DEVEL) +PKGFILES_CSWlibclam6-devel = $(PKGFILES_DEVEL) PKGFILES_CSWlibclam6 = $(PKGFILES_RT) PKGFILES_CSWlibclam6 += $(docdir)/libclamav/.* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Wed Dec 1 22:14:43 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Wed, 01 Dec 2010 21:14:43 +0000 Subject: [csw-devel] SF.net SVN: gar:[11756] csw/mgar/pkg/freeradius/trunk Message-ID: Revision: 11756 http://gar.svn.sourceforge.net/gar/?rev=11756&view=rev Author: gadavis Date: 2010-12-01 21:14:42 +0000 (Wed, 01 Dec 2010) Log Message: ----------- Bump version to 2.1.10 Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile csw/mgar/pkg/freeradius/trunk/checksums Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-01 18:04:29 UTC (rev 11755) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-01 21:14:42 UTC (rev 11756) @@ -1,5 +1,5 @@ GARNAME = freeradius -GARVERSION = 2.1.6 +GARVERSION = 2.1.10 CATEGORIES = server DESCRIPTION = A free RADIUS server implementation @@ -25,7 +25,8 @@ STRIP_LIBTOOL = 1 CONFIGURE_ARGS = $(DIRPATHS) -CONFIGURE_ARGS += --with-system-libtool +## 2.1.10 requires using included libtool instead of system +#CONFIGURE_ARGS += --with-system-libtool CONFIGURE_ARGS += --without-rlm_sqlippool CONFIGURE_ARGS += --without-rlm_sql_mysql CONFIGURE_ARGS += --without-rlm_sql_postgresql Modified: csw/mgar/pkg/freeradius/trunk/checksums =================================================================== --- csw/mgar/pkg/freeradius/trunk/checksums 2010-12-01 18:04:29 UTC (rev 11755) +++ csw/mgar/pkg/freeradius/trunk/checksums 2010-12-01 21:14:42 UTC (rev 11756) @@ -1 +1 @@ -078f7d29b4d2d34f7c992abf772c28a0 download/freeradius-server-2.1.6.tar.gz +e552704fc1b46d51176e575afa96dcc6 freeradius-server-2.1.10.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Thu Dec 2 03:50:44 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Thu, 02 Dec 2010 02:50:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[11757] csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile Message-ID: Revision: 11757 http://gar.svn.sourceforge.net/gar/?rev=11757&view=rev Author: gadavis Date: 2010-12-02 02:50:43 +0000 (Thu, 02 Dec 2010) Log Message: ----------- Build with GCC 4 Builds on Sparc Solaris 9, 32 bit. 64 bit still fails. DAP functionality (non-critical) has to be disabled due to a couple of failed tests, awaiting response from UCAR Modified Paths: -------------- csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile Modified: csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile =================================================================== --- csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile 2010-12-01 21:14:42 UTC (rev 11756) +++ csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile 2010-12-02 02:50:43 UTC (rev 11757) @@ -11,37 +11,50 @@ DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz LICENSE = COPYRIGHT -RUNTIME_DEP_PKGS = CSWcurlrt CSWhdf5rt CSWgcc3g77rt CSWzlib CSWgcc3corert \ - CSWoldaprt CSWlibcares CSWlibidn CSWgcc3g++rt CSWosslrt +RUNTIME_DEP_PKGS = CSWcurlrt CSWhdf5rt CSWzlib +RUNTIME_DEP_PKGS += CSWoldaprt CSWlibcares CSWlibidn CSWosslrt -BUILD_DEP_PKGS = $(RUNTIME_DEP_PKGS) CSWtetex CSWgcc3g77 +BUILD_DEP_PKGS = $(RUNTIME_DEP_PKGS) CSWtetex +BUILD_DEP_PKGS += CSWgcc4gfortran + ## CFLAGS AND LDFLAGS are necessary due to problems with the fortran bindings when ## building 64-bit -BUILD_ARGS = CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" FFLAGS="$(FFLAGS)" FCFLAGS="$(FCFLAGS)" +BUILD_ARGS = CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" +BUILD_ARGS += FFLAGS="$(FFLAGS)" FCFLAGS="$(FCFLAGS)" +## CXXFLAGS are necessary due to the gcc3core_rt problem noted below +BUILD_ARGS += CXXFLAGS="$(CXXFLAGS)" +## Test args need to be the same otherwise various tests don't link +TEST_ARGS = $(BUILD_ARGS) + +## Originally, non-redistributable libs in /opt/SUNWspro. Fixed as of late, try with studio again? +GARCOMPILER = GCC4 CONFIGURE_ENV = F77=$(F77) FC=$(FC) CC=$(CC) CXX=$(CXX) -CONFIGURE_ARGS = $(DIRPATHS) \ - --enable-netcdf-4 \ - --enable-dap \ - --enable-ncgen4 \ - --enable-shared \ - --enable-separate-fortran \ - --disable-f90 \ - --enable-cxx4 \ - --enable-docs-install \ - --enable-udunits \ - --disable-logging \ - --with-hdf5=/opt/csw \ - --with-zlib=/opt/csw +## Attempt to fix problem with configure not finding libgfortran.so.3 when +## compiling with GCC4 +CONFIGURE_ENV += LD_LIBRARY_PATH=/opt/csw/gcc4/lib/$(MM_LIBDIR) +CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += --enable-netcdf-4 +## DAP is disabled due to bugs on Sparc Solaris 9 GCC4. Bug filed with UCAR +#CONFIGURE_ARGS += --enable-dap +CONFIGURE_ARGS += --disable-dap +CONFIGURE_ARGS += --enable-ncgen4 +CONFIGURE_ARGS += --enable-shared +CONFIGURE_ARGS += --enable-separate-fortran +CONFIGURE_ARGS += --enable-cxx4 +CONFIGURE_ARGS += --enable-docs-install +CONFIGURE_ARGS += --enable-udunits +CONFIGURE_ARGS += --disable-logging +CONFIGURE_ARGS += --with-hdf5=/opt/csw +CONFIGURE_ARGS += --with-zlib=/opt/csw + ## 64 bit build fails in fortran binding tests -BUILD64 = 1 +#BUILD64 = 1 ## Needed for "Large file support" in NetCDF EXTRA_CPPFLAGS = -D_FILE_OFFSET_BITS=64 -## non-redistributable libs in /opt/SUNWspro -GARCOMPILER = GCC3 DEBUG_PACKAGING = 1 ## Add GCC4 lib dir to CFLAGS and friends because gcc3core_rt puts it's @@ -55,15 +68,15 @@ ## ## Adding -dalign to *FLAGS in attempt to fix bus error in nf_test/ftst_vars4 ## in fuction nf_put_vlen_element -#EXTRA_CFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign -#EXTRA_FFLAGS= -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign -#EXTRA_FCFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign -#EXTRA_CXXFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign +EXTRA_CFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign +EXTRA_FFLAGS= -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign +EXTRA_FCFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign +EXTRA_CXXFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign ## OPT_FLAGS_GCC = -O2 -pipe -include gar/category.mk ## During the 32-bit sparc build, the C++ bindings were barfing with an error ## about undefined symbol __sync_fetch_and_add_4 in libnetcdf_c++ -## Per http://www.mail-archive.com/maintainers at lists.opencsw.org/msg06095.html -## replacing -march=v8 with -m32 seems to solve the problem -ARCHFLAGS_GCC4_sparcv8 = -m32 -mcpu=v8 +## From Porting FAQ: http://wiki.opencsw.org/porting-faq#toc5 +OPT_FLAGS_GCC = + +include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Thu Dec 2 07:47:08 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Thu, 02 Dec 2010 06:47:08 +0000 Subject: [csw-devel] SF.net SVN: gar:[11758] csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile Message-ID: Revision: 11758 http://gar.svn.sourceforge.net/gar/?rev=11758&view=rev Author: gadavis Date: 2010-12-02 06:47:08 +0000 (Thu, 02 Dec 2010) Log Message: ----------- GCC 4 build works on 32-bit sparc Solaris 9 Modified Paths: -------------- csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile Modified: csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile =================================================================== --- csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile 2010-12-02 02:50:43 UTC (rev 11757) +++ csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile 2010-12-02 06:47:08 UTC (rev 11758) @@ -5,14 +5,14 @@ GARNAME = netcdf GARVERSION = 4.1.1 CATEGORIES = lib -DESCRIPTION = machine-independent data formats for array-oriented scientific data +DESCRIPTION = Machine-independent data formats for array-oriented scientific data SPKG_SOURCEURL = http://www.unidata.ucar.edu/software/netcdf/ MASTER_SITES = http://www.unidata.ucar.edu/downloads/netcdf/ftp/ DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz LICENSE = COPYRIGHT -RUNTIME_DEP_PKGS = CSWcurlrt CSWhdf5rt CSWzlib -RUNTIME_DEP_PKGS += CSWoldaprt CSWlibcares CSWlibidn CSWosslrt +RUNTIME_DEP_PKGS = CSWhdf5rt CSWzlib +RUNTIME_DEP_PKGS += CSWgcc4gfortranrt CSWgcc4corert CSWgcc4g++rt BUILD_DEP_PKGS = $(RUNTIME_DEP_PKGS) CSWtetex BUILD_DEP_PKGS += CSWgcc4gfortran This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Thu Dec 2 10:33:00 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Thu, 02 Dec 2010 09:33:00 +0000 Subject: [csw-devel] SF.net SVN: gar:[11759] csw/mgar/pkg/cpan/Mail-SPF/trunk/Makefile Message-ID: Revision: 11759 http://gar.svn.sourceforge.net/gar/?rev=11759&view=rev Author: dmichelsen Date: 2010-12-02 09:33:00 +0000 (Thu, 02 Dec 2010) Log Message: ----------- cpan/Mail-SPF: Add dependency to CSWpmerror as reported in #4623 Modified Paths: -------------- csw/mgar/pkg/cpan/Mail-SPF/trunk/Makefile Modified: csw/mgar/pkg/cpan/Mail-SPF/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Mail-SPF/trunk/Makefile 2010-12-02 06:47:08 UTC (rev 11758) +++ csw/mgar/pkg/cpan/Mail-SPF/trunk/Makefile 2010-12-02 09:33:00 UTC (rev 11759) @@ -16,8 +16,12 @@ # Required packages due to bug reports # http://www.opencsw.org/mantis/view.php?id=4139 # http://www.opencsw.org/mantis/view.php?id=4140 -RUNTIME_DEP_PKGS = CSWpmversion CSWpmnetaddrip +DEP_PKGS = CSWpmversion CSWpmnetaddrip +# One more required package due to bug report +# https://www.opencsw.org/mantis/view.php?id=4623 +DEP_PKGS += CSWpmerror + ARCHALL = 1 CONFIGURE_SCRIPTS = $(WORKSRC)/Build.PL This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Thu Dec 2 10:44:31 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Thu, 02 Dec 2010 09:44:31 +0000 Subject: [csw-devel] SF.net SVN: gar:[11760] csw/mgar/pkg/cpan/Mail-SPF/trunk/Makefile Message-ID: Revision: 11760 http://gar.svn.sourceforge.net/gar/?rev=11760&view=rev Author: dmichelsen Date: 2010-12-02 09:44:31 +0000 (Thu, 02 Dec 2010) Log Message: ----------- cpan/Mail-SPF: Add license Modified Paths: -------------- csw/mgar/pkg/cpan/Mail-SPF/trunk/Makefile Modified: csw/mgar/pkg/cpan/Mail-SPF/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Mail-SPF/trunk/Makefile 2010-12-02 09:33:00 UTC (rev 11759) +++ csw/mgar/pkg/cpan/Mail-SPF/trunk/Makefile 2010-12-02 09:44:31 UTC (rev 11760) @@ -13,6 +13,8 @@ PACKAGES = CSWpmmailspf CATALOGNAME = pm_mailspf +LICENSE = LICENSE + # Required packages due to bug reports # http://www.opencsw.org/mantis/view.php?id=4139 # http://www.opencsw.org/mantis/view.php?id=4140 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Thu Dec 2 13:28:30 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Thu, 02 Dec 2010 12:28:30 +0000 Subject: [csw-devel] SF.net SVN: gar:[11761] csw/mgar/pkg/cpan Message-ID: Revision: 11761 http://gar.svn.sourceforge.net/gar/?rev=11761&view=rev Author: dmichelsen Date: 2010-12-02 12:28:29 +0000 (Thu, 02 Dec 2010) Log Message: ----------- cpan/Module-Version: Initial commit Added Paths: ----------- csw/mgar/pkg/cpan/Module-Version/ csw/mgar/pkg/cpan/Module-Version/branches/ csw/mgar/pkg/cpan/Module-Version/tags/ csw/mgar/pkg/cpan/Module-Version/trunk/ csw/mgar/pkg/cpan/Module-Version/trunk/Makefile csw/mgar/pkg/cpan/Module-Version/trunk/checksums csw/mgar/pkg/cpan/Module-Version/trunk/files/ Property changes on: csw/mgar/pkg/cpan/Module-Version/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/cpan/Module-Version/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Module-Version/trunk/Makefile (rev 0) +++ csw/mgar/pkg/cpan/Module-Version/trunk/Makefile 2010-12-02 12:28:29 UTC (rev 11761) @@ -0,0 +1,17 @@ +GARNAME = Module-Version +GARVERSION = 0.12 +CATEGORIES = cpan +AUTHOR = XSAWYERX + +DESCRIPTION = Get module versions +define BLURB +endef + +PACKAGES = CSWpm-module-version +CATALOGNAME = pm_module_version + +LICENSE = LICENSE + +ARCHALL = 1 + +include gar/category.mk Added: csw/mgar/pkg/cpan/Module-Version/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/Module-Version/trunk/checksums (rev 0) +++ csw/mgar/pkg/cpan/Module-Version/trunk/checksums 2010-12-02 12:28:29 UTC (rev 11761) @@ -0,0 +1 @@ +51eaec7fcfd0b2298d602a1867768332 Module-Version-0.12.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Thu Dec 2 14:09:14 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Thu, 02 Dec 2010 13:09:14 +0000 Subject: [csw-devel] SF.net SVN: gar:[11762] csw/mgar/pkg/cpan/pmtools/trunk Message-ID: Revision: 11762 http://gar.svn.sourceforge.net/gar/?rev=11762&view=rev Author: dmichelsen Date: 2010-12-02 13:09:14 +0000 (Thu, 02 Dec 2010) Log Message: ----------- pmtools: Update to 1.10 and mGAR v2 Modified Paths: -------------- csw/mgar/pkg/cpan/pmtools/trunk/Makefile csw/mgar/pkg/cpan/pmtools/trunk/checksums Added Paths: ----------- csw/mgar/pkg/cpan/pmtools/trunk/files/COPYING Removed Paths: ------------- csw/mgar/pkg/cpan/pmtools/trunk/files/CSWpmtools.gspec csw/mgar/pkg/cpan/pmtools/trunk/files/CSWpmtools.prototype Property Changed: ---------------- csw/mgar/pkg/cpan/pmtools/trunk/ Property changes on: csw/mgar/pkg/cpan/pmtools/trunk ___________________________________________________________________ Modified: svn:externals - gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v1 + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Modified: csw/mgar/pkg/cpan/pmtools/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/pmtools/trunk/Makefile 2010-12-02 12:28:29 UTC (rev 11761) +++ csw/mgar/pkg/cpan/pmtools/trunk/Makefile 2010-12-02 13:09:14 UTC (rev 11762) @@ -1,13 +1,17 @@ GARNAME = pmtools -GARVERSION = 1.01 +GARVERSION = 1.10 CATEGORIES = cpan AUTHOR = MLFISHER DESCRIPTION = Tools for managing installed Perl modules. define BLURB - # Blurb goes here endef -DISTFILES = $(call admfiles,CSWpmtools,prototype) +DISTFILES = COPYING +PACKAGES = CSWpmtools +CATALOGNAME = pmtools + +ARCHALL = 1 + include gar/category.mk Modified: csw/mgar/pkg/cpan/pmtools/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/pmtools/trunk/checksums 2010-12-02 12:28:29 UTC (rev 11761) +++ csw/mgar/pkg/cpan/pmtools/trunk/checksums 2010-12-02 13:09:14 UTC (rev 11762) @@ -1,3 +1 @@ -90f8e83e3614cff0c6973454b7417371 download/CSWpmtools.gspec -4e0938e3e5e0e43509f7c9c07c0d3d6b download/CSWpmtools.prototype -85d800dff1f73b559a929d7984435b57 download/pmtools-1.01.tar.gz +3cb192b5b241037d6b701e6e26ef2425 pmtools-1.10.tar.gz Copied: csw/mgar/pkg/cpan/pmtools/trunk/files/COPYING (from rev 11744, csw/mgar/pkg/cpan/pmtools/trunk/files/CSWpmtools.gspec) =================================================================== --- csw/mgar/pkg/cpan/pmtools/trunk/files/COPYING (rev 0) +++ csw/mgar/pkg/cpan/pmtools/trunk/files/COPYING 2010-12-02 13:09:14 UTC (rev 11762) @@ -0,0 +1,5 @@ +Copyright (c) 1999 Tom Christiansen + +This is free software. You may modify it and distribute it +under Perl's Artistic Licence. Modified versions must be +clearly indicated. Deleted: csw/mgar/pkg/cpan/pmtools/trunk/files/CSWpmtools.gspec =================================================================== --- csw/mgar/pkg/cpan/pmtools/trunk/files/CSWpmtools.gspec 2010-12-02 12:28:29 UTC (rev 11761) +++ csw/mgar/pkg/cpan/pmtools/trunk/files/CSWpmtools.gspec 2010-12-02 13:09:14 UTC (rev 11762) @@ -1,10 +0,0 @@ -%var bitname pmtools -%var pkgname CSWpmtools -%var arch all -%include url file://%{PKGLIB}/csw_cpan.gspec -%copyright -Copyright (c) 1999 Tom Christiansen - -This is free software. You may modify it and distribute it -under Perl's Artistic Licence. Modified versions must be -clearly indicated. Deleted: csw/mgar/pkg/cpan/pmtools/trunk/files/CSWpmtools.prototype =================================================================== --- csw/mgar/pkg/cpan/pmtools/trunk/files/CSWpmtools.prototype 2010-12-02 12:28:29 UTC (rev 11761) +++ csw/mgar/pkg/cpan/pmtools/trunk/files/CSWpmtools.prototype 2010-12-02 13:09:14 UTC (rev 11762) @@ -1,64 +0,0 @@ -d none /opt/csw/bin 0755 root bin -f none /opt/csw/bin/basepods 0555 root bin -f none /opt/csw/bin/faqpods 0555 root bin -f none /opt/csw/bin/modpods 0555 root bin -f none /opt/csw/bin/pfcat 0555 root bin -f none /opt/csw/bin/plxload 0555 root bin -f none /opt/csw/bin/pmall 0555 root bin -f none /opt/csw/bin/pman 0555 root bin -f none /opt/csw/bin/pmcat 0555 root bin -f none /opt/csw/bin/pmdesc 0555 root bin -f none /opt/csw/bin/pmdirs 0555 root bin -f none /opt/csw/bin/pmeth 0555 root bin -f none /opt/csw/bin/pmexp 0555 root bin -f none /opt/csw/bin/pmfunc 0555 root bin -f none /opt/csw/bin/pminst 0555 root bin -f none /opt/csw/bin/pmload 0555 root bin -f none /opt/csw/bin/pmls 0555 root bin -f none /opt/csw/bin/pmpath 0555 root bin -f none /opt/csw/bin/pmvers 0555 root bin -f none /opt/csw/bin/podgrep 0555 root bin -f none /opt/csw/bin/podpath 0555 root bin -f none /opt/csw/bin/pods 0555 root bin -f none /opt/csw/bin/podtoc 0555 root bin -f none /opt/csw/bin/sitepods 0555 root bin -f none /opt/csw/bin/stdpods 0555 root bin -d none /opt/csw/lib 0755 root bin -d none /opt/csw/lib/perl 0755 root bin -d none /opt/csw/lib/perl/csw 0755 root bin -d none /opt/csw/lib/perl/csw/auto 0755 root bin -d none /opt/csw/lib/perl/csw/auto/pmtools 0755 root bin -f none /opt/csw/lib/perl/csw/auto/pmtools/.packlist 0644 root bin -d none /opt/csw/share 0755 root bin -d none /opt/csw/share/man 0755 root bin -d none /opt/csw/share/man/man1 0755 root bin -f none /opt/csw/share/man/man1/basepods.1 0444 root bin -f none /opt/csw/share/man/man1/faqpods.1 0444 root bin -f none /opt/csw/share/man/man1/modpods.1 0444 root bin -f none /opt/csw/share/man/man1/pfcat.1 0444 root bin -f none /opt/csw/share/man/man1/plxload.1 0444 root bin -f none /opt/csw/share/man/man1/pmall.1 0444 root bin -f none /opt/csw/share/man/man1/pman.1 0444 root bin -f none /opt/csw/share/man/man1/pmcat.1 0444 root bin -f none /opt/csw/share/man/man1/pmdesc.1 0444 root bin -f none /opt/csw/share/man/man1/pmdirs.1 0444 root bin -f none /opt/csw/share/man/man1/pmeth.1 0444 root bin -f none /opt/csw/share/man/man1/pmexp.1 0444 root bin -f none /opt/csw/share/man/man1/pmfunc.1 0444 root bin -f none /opt/csw/share/man/man1/pminst.1 0444 root bin -f none /opt/csw/share/man/man1/pmload.1 0444 root bin -f none /opt/csw/share/man/man1/pmls.1 0444 root bin -f none /opt/csw/share/man/man1/pmpath.1 0444 root bin -f none /opt/csw/share/man/man1/pmvers.1 0444 root bin -f none /opt/csw/share/man/man1/podgrep.1 0444 root bin -f none /opt/csw/share/man/man1/podpath.1 0444 root bin -f none /opt/csw/share/man/man1/pods.1 0444 root bin -f none /opt/csw/share/man/man1/podtoc.1 0444 root bin -f none /opt/csw/share/man/man1/sitepods.1 0444 root bin -f none /opt/csw/share/man/man1/stdpods.1 0444 root bin -d none /opt/csw/share/man/man3 0755 root bin -f none /opt/csw/share/man/man3/Devel::Loaded.3perl 0444 root bin -d none /opt/csw/share/perl 0755 root bin -d none /opt/csw/share/perl/csw 0755 root bin -d none /opt/csw/share/perl/csw/Devel 0755 root bin -f none /opt/csw/share/perl/csw/Devel/Loaded.pm 0444 root bin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Thu Dec 2 15:09:07 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Thu, 02 Dec 2010 14:09:07 +0000 Subject: [csw-devel] SF.net SVN: gar:[11763] csw/mgar/pkg/genshi/trunk Message-ID: Revision: 11763 http://gar.svn.sourceforge.net/gar/?rev=11763&view=rev Author: dmichelsen Date: 2010-12-02 14:09:06 +0000 (Thu, 02 Dec 2010) Log Message: ----------- genshi: Update to 0.6 Modified Paths: -------------- csw/mgar/pkg/genshi/trunk/Makefile csw/mgar/pkg/genshi/trunk/checksums Modified: csw/mgar/pkg/genshi/trunk/Makefile =================================================================== --- csw/mgar/pkg/genshi/trunk/Makefile 2010-12-02 13:09:14 UTC (rev 11762) +++ csw/mgar/pkg/genshi/trunk/Makefile 2010-12-02 14:09:06 UTC (rev 11763) @@ -1,5 +1,5 @@ GARNAME = Genshi -GARVERSION = 0.5.1 +GARVERSION = 0.6 CATEGORIES = python DESCRIPTION = Python toolkit for generation of output for the web @@ -9,20 +9,23 @@ or other textual content for output generation on the web endef -MASTER_SITES = http://ftp.edgewall.com/pub/genshi/ -SPKG_SOURCEURL = http://genshi.edgewall.org/wiki/TracDownload -DISTFILES = $(GARNAME)-$(GARVERSION).tar.bz2 -# We define upstream file regex so we can be notifed of -# new upstream software release -UFILES_REGEX = (\d+(?:\.\d+)*).tar.gz +MASTER_SITES = http://ftp.edgewall.com/pub/genshi/ +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +UFILES_REGEX = (\d+(?:\.\d+)*).tar.gz + PACKAGES = CSWgenshi -ARCHALL_CSWtrac = 1 +CATALOGNAME = genshi -CATALOGNAME_CSWgenshi = genshi -SPKG_DESC_CSWgenshi = $(DESCRIPTION) +ARCHALL = 1 -TEST_SCRIPTS = +VENDOR_URL = http://genshi.edgewall.org/ +TEST_SCRIPTS = + +# This is a legacy name, don't change for now +CHECKPKG_OVERRIDES_CSWgenshi += pkgname-does-not-start-with-CSWpy- +CHECKPKG_OVERRIDES_CSWgenshi += catalogname-does-not-start-with-py_ + include gar/category.mk Modified: csw/mgar/pkg/genshi/trunk/checksums =================================================================== --- csw/mgar/pkg/genshi/trunk/checksums 2010-12-02 13:09:14 UTC (rev 11762) +++ csw/mgar/pkg/genshi/trunk/checksums 2010-12-02 14:09:06 UTC (rev 11763) @@ -1 +1 @@ -822942bbc3109da9f6b472eb8ea4e3a4 download/Genshi-0.5.1.tar.bz2 +604e8b23b4697655d36a69c2d8ef7187 Genshi-0.6.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Thu Dec 2 18:46:17 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Thu, 02 Dec 2010 17:46:17 +0000 Subject: [csw-devel] SF.net SVN: gar:[11764] csw/mgar/gar/v2-fortran Message-ID: Revision: 11764 http://gar.svn.sourceforge.net/gar/?rev=11764&view=rev Author: gadavis Date: 2010-12-02 17:46:17 +0000 (Thu, 02 Dec 2010) Log Message: ----------- Merging changes from v2 into v2-fortran 10989:11763 Modified Paths: -------------- csw/mgar/gar/v2-fortran/bin/analyze_module_results.py csw/mgar/gar/v2-fortran/bin/checkpkg csw/mgar/gar/v2-fortran/bin/checkpkg_collect_stats.py csw/mgar/gar/v2-fortran/bin/upstream_watch csw/mgar/gar/v2-fortran/categories/cpan/category.mk csw/mgar/gar/v2-fortran/category.mk csw/mgar/gar/v2-fortran/gar.conf.mk csw/mgar/gar/v2-fortran/gar.lib.mk csw/mgar/gar/v2-fortran/gar.mk csw/mgar/gar/v2-fortran/gar.pkg.mk csw/mgar/gar/v2-fortran/lib/python/README csw/mgar/gar/v2-fortran/lib/python/checkpkg.py csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py csw/mgar/gar/v2-fortran/lib/python/opencsw.py csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py csw/mgar/gar/v2-fortran/lib/python/package_checks.py csw/mgar/gar/v2-fortran/lib/python/package_checks_test.py csw/mgar/gar/v2-fortran/lib/python/pkg-review-template.html csw/mgar/gar/v2-fortran/lib/python/submit_to_newpkgs.py csw/mgar/gar/v2-fortran/lib/python/tag.py csw/mgar/gar/v2-fortran/lib/python/tag_test.py csw/mgar/gar/v2-fortran/lib/python/testdata/rpaths.py csw/mgar/gar/v2-fortran/pkglib/csw_cpan_dyngspec.gspec csw/mgar/gar/v2-fortran/tests/run_tests.py Added Paths: ----------- csw/mgar/gar/v2-fortran/.gitignore csw/mgar/gar/v2-fortran/bin/ap2mod_build_scripts csw/mgar/gar/v2-fortran/lib/python/catalog.py csw/mgar/gar/v2-fortran/lib/python/catalog_test.py csw/mgar/gar/v2-fortran/lib/python/compare_pkgs.py csw/mgar/gar/v2-fortran/lib/python/compare_pkgs_test.py csw/mgar/gar/v2-fortran/lib/python/database.py csw/mgar/gar/v2-fortran/lib/python/inspective_package.py csw/mgar/gar/v2-fortran/lib/python/package.py csw/mgar/gar/v2-fortran/lib/python/package_stats.py csw/mgar/gar/v2-fortran/lib/python/package_stats_test.py csw/mgar/gar/v2-fortran/lib/python/package_test.py csw/mgar/gar/v2-fortran/lib/python/patch_package.py csw/mgar/gar/v2-fortran/lib/python/sharedlib_utils.py csw/mgar/gar/v2-fortran/lib/python/sharedlib_utils_test.py csw/mgar/gar/v2-fortran/lib/python/submit_to_newpkgs_test.py csw/mgar/gar/v2-fortran/lib/python/testdata/bdb48_stats.py csw/mgar/gar/v2-fortran/lib/python/testdata/libnet_stats.py csw/mgar/gar/v2-fortran/lib/sh/run_full_cat.sh Property Changed: ---------------- csw/mgar/gar/v2-fortran/ csw/mgar/gar/v2-fortran/lib/python/tag_test.py csw/mgar/gar/v2-fortran/pkglib/csw/depend Property changes on: csw/mgar/gar/v2-fortran ___________________________________________________________________ Modified: svn:mergeinfo - /csw/mgar/gar/v2:4936-6678,10928-10988 /csw/mgar/gar/v2-bwalton:9784-10011 /csw/mgar/gar/v2-checkpkg:7722-7855 /csw/mgar/gar/v2-checkpkg-override-relocation:10585-10737 /csw/mgar/gar/v2-checkpkg-stats:8454-8649 /csw/mgar/gar/v2-collapsed-modulations:6895 /csw/mgar/gar/v2-dirpackage:8125-8180 /csw/mgar/gar/v2-migrateconf:7082-7211 /csw/mgar/gar/v2-skayser:6087-6132 /csw/mgar/gar/v2-sqlite:10434-10449 + /csw/mgar/gar/v2:4936-6678,10928-10988,10990-11763 /csw/mgar/gar/v2-bwalton:9784-10011 /csw/mgar/gar/v2-checkpkg:7722-7855 /csw/mgar/gar/v2-checkpkg-override-relocation:10585-10737 /csw/mgar/gar/v2-checkpkg-stats:8454-8649 /csw/mgar/gar/v2-collapsed-modulations:6895 /csw/mgar/gar/v2-dirpackage:8125-8180 /csw/mgar/gar/v2-git/v2-relocate:7617 /csw/mgar/gar/v2-migrateconf:7082-7211 /csw/mgar/gar/v2-noexternals:11592-11745 /csw/mgar/gar/v2-relocate:5028-11738 /csw/mgar/gar/v2-skayser:6087-6132 /csw/mgar/gar/v2-sqlite:10434-10449 Copied: csw/mgar/gar/v2-fortran/.gitignore (from rev 11763, csw/mgar/gar/v2/.gitignore) =================================================================== --- csw/mgar/gar/v2-fortran/.gitignore (rev 0) +++ csw/mgar/gar/v2-fortran/.gitignore 2010-12-02 17:46:17 UTC (rev 11764) @@ -0,0 +1,2 @@ +*.pyc +*.swp Modified: csw/mgar/gar/v2-fortran/bin/analyze_module_results.py =================================================================== --- csw/mgar/gar/v2-fortran/bin/analyze_module_results.py 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/bin/analyze_module_results.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -17,6 +17,7 @@ sys.path.append(os.path.join(*path_list)) import checkpkg import overrides +import package_stats BEFORE_OVERRIDES = """If any of the reported errors were false positives, you can override them pasting the lines below to the GAR recipe.""" @@ -48,7 +49,7 @@ # It might be a good idea to store the error tags in the database and # eliminate the need to access the directory with the error tag files. - pkgstats = checkpkg.StatsListFromCatalog(filenames, options.catalog) + pkgstats = package_stats.StatsListFromCatalog(filenames, options.catalog) overrides_list = [pkg.GetSavedOverrides() for pkg in pkgstats] override_list = reduce(operator.add, overrides_list) error_tags = reduce(operator.add, [stat.GetSavedErrorTags() for stat in pkgstats]) Copied: csw/mgar/gar/v2-fortran/bin/ap2mod_build_scripts (from rev 11763, csw/mgar/gar/v2/bin/ap2mod_build_scripts) =================================================================== --- csw/mgar/gar/v2-fortran/bin/ap2mod_build_scripts (rev 0) +++ csw/mgar/gar/v2-fortran/bin/ap2mod_build_scripts 2010-12-02 17:46:17 UTC (rev 11764) @@ -0,0 +1,71 @@ +#!/bin/bash + +MERGEDIR=$1; shift +AP2MODS=opt/csw/apache2/ap2mod + +cd $MERGEDIR/ + +[ -d $AP2MODS ] || mkdir -p $AP2MODS + +for a in $*; do + for f in $(find . -name "*$a*"); do + modfile=$(basename $f) + modname=$(echo $modfile | sed 's/mod_//; s/\.so$//') + ap2modfile=$AP2MODS/$modname + cat < $ap2modfile + +PIR=\${PKG_INSTALL_ROOT:-'/'} +AP2_PREFIX=/opt/csw/apache2 +AP2_BINDIR=\$AP2_PREFIX/sbin +AP2_LIBEXEC=\$AP2_PREFIX/libexec +AP2_CONFDIR=/etc/opt/csw/apache2 +AP2_CONFIG=\$AP2_CONFDIR/httpd.conf +AP2_APXS=\$AP2_BINDIR/apxs + +if [ "\$1" = install ]; then + +echo "File created by \$PKGINST during install. Please do not remove." > \$PIR/$ap2modfile + +# Source csw.conf, if it exists +if [ -f \$PIR/opt/csw/etc/csw.conf ] ; then + . \$PIR/opt/csw/etc/csw.conf +fi +if [ -f \$PIR/etc/opt/csw/csw.conf ] ; then + . \$PIR/etc/opt/csw/csw.conf +fi + +# Modules will be enabled by default, but a global kill switch +# is checked , followed by a module specific value. Thus, +# either ap2_enable_modules or ap2_enable_suexec (for example) +# could disable activation of the suexec module. The +# +# This value is passed to apxs (-a: add, enable; -A: add, +# disable) +enmod=-a + +if [ "\$ap2_enable_modules" = "no" ]; then + enmod=-A +fi + +if [ "\$ap2_enable_$modname" = "no" ]; then + enmod=-A +elif [ "$ap2_mod_specific" = "yes" ]; then + enmod=-a +fi + +if [ -f "\$PIR/\$AP2_CONFIG" -a -x "\$PIR/\$AP2_APXS" ]; then + # Add the module module, optionally enabling it by default + chroot \$PIR \$AP2_APXS -e \$enmod -n $modname $modfile +fi + +else + +rm \$PIR/$ap2modfile + +if [ -f "\$PIR/\$AP2_CONFIG" -a -x "\$PIR/\$AP2_APXS" ]; then + chroot \$PIR \$AP2_APXS -e -A -n $modname $modfile +fi +fi +EOF + done +done Modified: csw/mgar/gar/v2-fortran/bin/checkpkg =================================================================== --- csw/mgar/gar/v2-fortran/bin/checkpkg 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/bin/checkpkg 2010-12-02 17:46:17 UTC (rev 11764) @@ -236,7 +236,7 @@ # "checkpkg-". test_suite_ok=1 -checkpkg_module_dir=${command_basedir}/../lib/checkpkg.d +checkpkg_module_dir="${command_basedir}/../lib/checkpkg.d" checkpkg_module_tag="checkpkg-" checkpkg_stats_basedir="${HOME}/.checkpkg/stats" @@ -317,15 +317,14 @@ if [[ "${ANALYZE}" -eq 1 ]]; then # Collecting errors and applying the overrides. # This has to use the original files. - echo "Applying the overrides and analyzing the results." ${command_basedir}/analyze_module_results.py \ ${catalog_options} \ ${quiet_options} \ "$@" if [[ "$?" -ne 0 ]]; then - errmsg "${RED}Modular checks are reporting errors.${COLOR_RESET}" + errmsg "${RED}Checkpkg has reported errors.${COLOR_RESET}" else - print "${GREEN}All modular tests were successful.${COLOR_RESET}" + print "${GREEN}Checkpkg reports no errors.${COLOR_RESET}" fi else echo "Skipping result analysis." Modified: csw/mgar/gar/v2-fortran/bin/checkpkg_collect_stats.py =================================================================== --- csw/mgar/gar/v2-fortran/bin/checkpkg_collect_stats.py 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/bin/checkpkg_collect_stats.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -21,6 +21,7 @@ sys.path.append(os.path.join(*path_list)) import checkpkg import opencsw +import package_stats def main(): parser = optparse.OptionParser() @@ -43,7 +44,7 @@ args_display = args_display[:5] + ["...more..."] file_list = args logging.debug("Processing: %s, please be patient", args_display) - stats_list = checkpkg.StatsListFromCatalog( + stats_list = package_stats.StatsListFromCatalog( file_list, options.catalog, options.debug) # Reversing the item order in the list, so that the pop() method can be used # to get packages, and the order of processing still matches the one in the Modified: csw/mgar/gar/v2-fortran/bin/upstream_watch =================================================================== --- csw/mgar/gar/v2-fortran/bin/upstream_watch 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/bin/upstream_watch 2010-12-02 17:46:17 UTC (rev 11764) @@ -89,8 +89,10 @@ $ftp_proxy_cmd = "set ftp:proxy $ENV{ftp_proxy};" if exists $ENV{ftp_proxy}; $http_proxy_cmd = "set http:proxy $ENV{HTTP_PROXY};" if exists $ENV{HTTP_PROXY}; $http_proxy_cmd = "set http:proxy $ENV{http_proxy};" if exists $ENV{http_proxy}; + $https_proxy_cmd = "set https:proxy $ENV{HTTPS_PROXY};" if exists $ENV{HTTPS_PROXY}; + $https_proxy_cmd = "set https:proxy $ENV{https_proxy};" if exists $ENV{https_proxy}; - open (FH, "lftp -q -c \"set net:timeout 30; set net:max-retries 16; $ftp_proxy_cmd $http_proxy_cmd open $url/ && ls\" 2>/dev/null |"); + open (FH, "lftp -q -c \"set net:timeout 30; set net:max-retries 16; $ftp_proxy_cmd $http_proxy_cmd $https_proxy_cmd open $url/ && ls\" 2>/dev/null |"); while (my $line = ) { my @cols = split (/\s+/, $line); Modified: csw/mgar/gar/v2-fortran/categories/cpan/category.mk =================================================================== --- csw/mgar/gar/v2-fortran/categories/cpan/category.mk 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/categories/cpan/category.mk 2010-12-02 17:46:17 UTC (rev 11764) @@ -31,7 +31,7 @@ UFILES_REGEX ?= $(GARNAME)-(\d+(?:\.\d+)*).tar.gz USTREAM_MASTER_SITE ?= $(SPKG_SOURCEURL) -_CATEGORY_SPKG_DESC = $(GARNAME): $(SPKG_DESC) +$(foreach P,$(PACKAGES),$(eval _CATEGORY_SPKG_DESC_$P = $$(GARNAME): $$(or $$(SPKG_DESC_$P),$$(SPKG_DESC)))) _CATEGORY_PKGINFO = echo "PERL_MODULE_NAME=$(GARNAME)"; SPKG_SOURCEURL := $(SPKG_SOURCEURL)/$(GARNAME) @@ -39,6 +39,8 @@ _MERGE_EXCLUDE_CATEGORY = .*/perllocal\.pod .*/\.packlist _CATEGORY_GSPEC_INCLUDE ?= csw_cpan_dyngspec.gspec +_CATEGORY_RUNTIME_DEP_PKGS ?= CSWperl + # Perl module dependencies can not be properly tracked right now _CATEGORY_CHECKPKG_OVERRIDES = surplus-dependency Modified: csw/mgar/gar/v2-fortran/category.mk =================================================================== --- csw/mgar/gar/v2-fortran/category.mk 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/category.mk 2010-12-02 17:46:17 UTC (rev 11764) @@ -1,9 +1,15 @@ # vim: ft=make ts=4 sw=4 noet -# This makefile is to be included from Makefiles in each category -# directory. +# +# This Makefile is the main entry point to GAR and is included by +# each package build description. As such, the file name 'category.mk' +# is slightly misleading and could be subject to future change. +# -ifeq (,$(wildcard gar/categories/$(CATEGORIES)/category.mk)) - $(error The category '$(CATEGORIES)' is invalid. Valid categories are $(patsubst gar/categories/%,%,$(wildcard gar/categories/*))) +# Determine this file's directory, i.e. the GAR base directory +GARDIR := $(dir $(lastword $(MAKEFILE_LIST))) + +ifeq (,$(wildcard $(GARDIR)/categories/$(CATEGORIES)/category.mk)) + $(error The category '$(CATEGORIES)' is invalid. Valid categories are: $(patsubst $(GARDIR)/categories/%,%,$(wildcard $(GARDIR)/categories/*))) endif -include gar/categories/$(CATEGORIES)/category.mk +include $(GARDIR)/categories/$(CATEGORIES)/category.mk Modified: csw/mgar/gar/v2-fortran/gar.conf.mk =================================================================== --- csw/mgar/gar/v2-fortran/gar.conf.mk 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/gar.conf.mk 2010-12-02 17:46:17 UTC (rev 11764) @@ -145,6 +145,11 @@ perlcswlib ?= $(perllib)/csw perlpackroot ?= $(perlcswlib)/auto +# This Variable is only used if you make your package relocatable +# using ALLOW_RELOCATE, it will allow you to change your default +# directory for BASEDIR +RELOCATE_PREFIX ?= $(prefix) + # These variables are used to construct pathes. If you temporarily reset the above # variables for special install locations (like /opt/csw/bin/bdb44/) the definitions # here make sure the binaries for the make process are still found. @@ -666,6 +671,11 @@ CPAN_MIRRORS = $(foreach S,$(CPAN_SITES),$(S)/authors/id/$(AUTHOR_ID)/) CPAN_FIRST_MIRROR = $(firstword $(CPAN_SITES))/authors/id +# Python Package Index +PYPI_PROJECT ?= $(GARNAME) +PYPI_SUBDIR = $(shell echo $(PYPI_PROJECT) | cut -c 1) +PYPI_MIRROR = http://pypi.python.org/packages/source/$(PYPI_SUBDIR)/$(PYPI_PROJECT)/ + # Package dir GARPACKAGE = $(shell basename $(CURDIR)) Modified: csw/mgar/gar/v2-fortran/gar.lib.mk =================================================================== --- csw/mgar/gar/v2-fortran/gar.lib.mk 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/gar.lib.mk 2010-12-02 17:46:17 UTC (rev 11764) @@ -27,7 +27,7 @@ #################### FETCH RULES #################### -URLS = $(foreach SITE,$(FILE_SITES) $(MASTER_SITES),$(addprefix $(SITE),$(DISTFILES))) $(foreach SITE,$(FILE_SITES) $(PATCH_SITES) $(MASTER_SITES),$(addprefix $(SITE),$(ALLFILES_PATCHFILES))) +URLS := $(foreach SITE,$(FILE_SITES) $(MASTER_SITES),$(addprefix $(SITE),$(DISTFILES))) $(foreach SITE,$(FILE_SITES) $(PATCH_SITES) $(MASTER_SITES),$(addprefix $(SITE),$(ALLFILES_PATCHFILES))) # if the caller has defined _postinstall, etc targets for a package, add # these 'dynamic script' targets to our fetch list @@ -339,6 +339,12 @@ @lzip -dc $(DOWNLOADDIR)/$* | gtar $(TAR_ARGS) -xf - -C $(EXTRACTDIR) @$(MAKECOOKIE) +# rule to extract files with tar and lzma +tar-lzma-extract-%: + @echo " ==> Extracting $(DOWNLOADDIR)/$*" + @lzma -dc $(DOWNLOADDIR)/$* | gtar $(TAR_ARGS) -xf - -C $(EXTRACTDIR) + @$(MAKECOOKIE) + # extract compressed single files gz-extract-%: @echo " ==> Decompressing $(DOWNLOADDIR)/$*" @@ -364,6 +370,12 @@ @lzip -d $(WORKDIR)/$* @$(MAKECOOKIE) +lzma-extract-%: + @echo " ==> Decompressing $(DOWNLOADDIR)/$*" + @cp $(DOWNLOADDIR)/$* $(WORKDIR)/ + @lzma -d $(WORKDIR)/$* + @$(MAKECOOKIE) + # extra dependency rule for git repos, that will allow the user # to supply an alternate target at their discretion git-extract-%: @@ -431,6 +443,9 @@ extract-archive-%.tar.lz: tar-lz-extract-%.tar.lz @$(MAKECOOKIE) +extract-archive-%.tar.lzma: tar-lzma-extract-%.tar.lzma + @$(MAKECOOKIE) + extract-archive-%.zip: zip-extract-%.zip @$(MAKECOOKIE) @@ -452,6 +467,9 @@ extract-archive-%.lz: lz-extract-%.lz @$(MAKECOOKIE) +extract-archive-%.lzma: lzma-extract-%.lzma + @$(MAKECOOKIE) + extract-archive-%.git: git-extract-%.git @$(MAKECOOKIE) @@ -498,7 +516,7 @@ # apply normal patches (git format-patch output or old-style diff -r) normal-patch-%: @echo " ==> Applying patch $(DOWNLOADDIR)/$*" - @( if ggrep -q 'Subject:' $(abspath $(DOWNLOADDIR)/$*); then \ + @( if ggrep -q 'diff --git' $(abspath $(DOWNLOADDIR)/$*); then \ cd $(WORKSRC); git am --ignore-space-change --ignore-whitespace $(abspath $(DOWNLOADDIR)/$*); \ else \ echo Adding old-style patch...; \ Modified: csw/mgar/gar/v2-fortran/gar.mk =================================================================== --- csw/mgar/gar/v2-fortran/gar.mk 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/gar.mk 2010-12-02 17:46:17 UTC (rev 11764) @@ -11,20 +11,11 @@ # Comment this out to make much verbosity #.SILENT: -#ifeq ($(origin GARDIR), undefined) -#GARDIR := $(CURDIR)/../.. -#endif - -#GARDIR ?= ../.. -#ifeq ($(origin GARDIR), undefined) -#GARDIR := $(CURDIR)/../.. -#endif - ifneq ($(abspath /),/) $(error Your version of 'make' is too old: $(MAKE_VERSION). Please make sure you are using at least 3.81) endif -GARDIR ?= gar +# $(GARDIR) is pre-set by the top-level category.mk GARBIN = $(GARDIR)/bin DIRSTODOTS = $(subst . /,./,$(patsubst %,/..,$(subst /, ,/$(1)))) @@ -135,7 +126,7 @@ merge-$(2): @echo "[===== Building modulation '$(2)' on host '$$(BUILDHOST)' =====]" $$(if $$(and $$(BUILDHOST),$$(filter-out $$(THISHOST),$$(BUILDHOST))),\ - $(SSH) $$(BUILDHOST) "PATH=$$(PATH) $(MAKE) -C $$(CURDIR) $(if $(GAR_PLATFORM),GAR_PLATFORM=$(GAR_PLATFORM)) MODULATION=$(2) $(3) merge-modulated",\ + $(SSH) $$(BUILDHOST) "PATH=$$(PATH) MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $$(CURDIR) $(if $(GAR_PLATFORM),GAR_PLATFORM=$(GAR_PLATFORM)) MODULATION=$(2) $(3) merge-modulated",\ $(MAKE) $(if $(GAR_PLATFORM),GAR_PLATFORM=$(GAR_PLATFORM)) MODULATION=$(2) $(3) merge-modulated\ ) @# The next line has intentionally been left blank to explicitly terminate this make rule @@ -395,7 +386,7 @@ # We call an additional extract-modulated without resetting any variables so # a complete unpacked set goes to the global dir for packaging (like gspec) -extract: checksum $(COOKIEDIR) pre-extract pre-extract-git-check extract-modulated $(addprefix extract-,$(MODULATIONS)) post-extract +extract: checksum $(COOKIEDIR) pre-extract $(if $(NOGITPATCH),,pre-extract-git-check) extract-modulated $(addprefix extract-,$(MODULATIONS)) post-extract @$(DONADA) extract-global: $(if $(filter global,$(MODULATION)),extract-modulated) @@ -406,7 +397,7 @@ $(addprefix dep-$(GARDIR)/,$(EXTRACTDEPS)) \ announce-modulation \ pre-extract-modulated pre-extract-$(MODULATION) $(EXTRACT_TARGETS) post-extract-$(MODULATION) post-extract-modulated \ - $(if $(filter global,$(MODULATION)),,post-extract-gitsnap) \ + $(if $(filter global,$(MODULATION)),,$(if $(NOGITPATCH),,post-extract-gitsnap)) \ $(foreach FILE,$(EXPANDVARS),expandvars-$(FILE)) @$(DONADA) @@ -467,7 +458,7 @@ patch: pre-patch $(addprefix patch-,$(MODULATIONS)) post-patch @$(DONADA) -patch-modulated: extract-modulated $(WORKSRC) pre-patch-modulated pre-patch-$(MODULATION) $(PATCH_TARGETS) $(if $(filter global,$(MODULATION)),,post-patch-gitsnap) post-patch-$(MODULATION) post-patch-modulated +patch-modulated: extract-modulated $(WORKSRC) pre-patch-modulated pre-patch-$(MODULATION) $(PATCH_TARGETS) $(if $(filter global,$(MODULATION)),,$(if $(NOGITPATCH),,post-patch-gitsnap)) post-patch-$(MODULATION) post-patch-modulated @$(DONADA) # returns true if patch has completed successfully, false @@ -484,9 +475,13 @@ fi ) @$(MAKECOOKIE) -makepatch: $(addprefix patch-,$(MODULATIONS)) $(addprefix makepatch-,$(MODULATIONS)) +makepatch: $(if $(NOGITPATCH),makepatch-nogit,$(addprefix patch-,$(MODULATIONS)) $(addprefix makepatch-,$(MODULATIONS))) @$(DONADA) +makepatch-nogit: + @echo You set NOGITPATCH in your build recipe. I can't create a patch. + @$(DONADA) + # Allow generation of patches from modified work source. makepatch-modulated: $(FILEDIR) @( if [ -d "$(WORKSRC)/.git" ]; then \ @@ -805,7 +800,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) 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) $(if $(AP2_MODS),post-merge-ap2mod) post-merge @$(DONADA) merge-do: $(if $(PARALLELMODULATIONS),merge-parallel,merge-sequential) @@ -833,6 +828,9 @@ echo "Building all ISAs in parallel. Please see the individual logfiles for details:";$(foreach M,$(MODULATIONS),echo "- $(WORKROOTDIR)/build-$M/build.log";)\ ) +post-merge-ap2mod: + $(GARBIN)/ap2mod_build_scripts $(PKGROOT) $(AP2_MODFILES) + @$(MAKECOOKIE) # This merges the merge-modulated: install-modulated pre-merge-modulated pre-merge-$(MODULATION) $(MERGE_TARGETS) post-merge-$(MODULATION) post-merge-modulated @@ -840,14 +838,14 @@ # Copy the whole tree verbatim merge-copy-all: $(PKGROOT) $(INSTALLISADIR) - $(_DBG_MERGE)(cd $(INSTALLISADIR); umask 022 && pax -r -w -v $(_PAX_ARGS) \ + $(_DBG_MERGE)(cd $(INSTALLISADIR)$(if $(ALLOW_RELOCATE),$(RELOCATE_PREFIX)); umask 022 && pax -r -w -v $(_PAX_ARGS) \ $(foreach DIR,$(MERGE_DIRS),-s ",^\(\.$(DIR)/\),.$(call mergebase,$(DIR))/,p") \ . $(PKGROOT)) @$(MAKECOOKIE) # Copy only the merge directories merge-copy-only: $(PKGROOT) - $(_DBG_MERGE)(cd $(INSTALLISADIR); umask 022 && pax -r -w -v $(_PAX_ARGS) \ + $(_DBG_MERGE)(cd $(INSTALLISADIR)$(if $(ALLOW_RELOCATE),$(RELOCATE_PREFIX)); umask 022 && pax -r -w -v $(_PAX_ARGS) \ $(foreach DIR,$(MERGE_DIRS),-s ",^\(\.$(DIR)/\),.$(call mergebase,$(DIR))/,p") -s ",.*,," \ . $(PKGROOT) \ ) @@ -855,7 +853,7 @@ # Copy the whole tree and relocate the directories in $(MERGE_DIRS) merge-copy-relocate: $(PKGROOT) $(INSTALLISADIR) - $(_DBG_MERGE)(cd $(INSTALLISADIR); umask 022 && pax -r -w -v $(_PAX_ARGS) \ + $(_DBG_MERGE)(cd $(INSTALLISADIR)$(if $(ALLOW_RELOCATE),$(RELOCATE_PREFIX)); umask 022 && pax -r -w -v $(_PAX_ARGS) \ $(foreach DIR,$(MERGE_DIRS),-s ",^\(\.$(DIR)/\),.$(call mergebase,$(DIR))/$(ISA)/,p") \ . $(PKGROOT) \ ) @@ -863,7 +861,7 @@ # Copy only the relocated directories merge-copy-relocated-only: $(PKGROOT) $(INSTALLISADIR) - $(_DBG_MERGE)(cd $(INSTALLISADIR); umask 022 && pax -r -w -v $(_PAX_ARGS) \ + $(_DBG_MERGE)(cd $(INSTALLISADIR)$(if $(ALLOW_RELOCATE),$(RELOCATE_PREFIX)); umask 022 && pax -r -w -v $(_PAX_ARGS) \ $(foreach DIR,$(MERGE_DIRS),-s ",^\(\.$(DIR)/\),.$(call mergebase,$(DIR))/$(ISA)/,p") -s ",.*,," \ . $(PKGROOT) \ ) @@ -871,7 +869,7 @@ # Copy merge-copy-config-only: - $(_DBG_MERGE)(cd $(INSTALLISADIR); umask 022 && pax -r -w -v $(_PAX_ARGS) \ + $(_DBG_MERGE)(cd $(INSTALLISADIR)$(if $(ALLOW_RELOCATE),$(RELOCATE_PREFIX)); umask 022 && pax -r -w -v $(_PAX_ARGS) \ -s ",^\(\.$(bindir)/.*-config\)\$$,\1,p" \ -s ",.*,," \ . $(PKGROOT) \ @@ -881,7 +879,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-src +reset-merge: reset-package $(addprefix reset-merge-,$(MODULATIONS)) reset-merge-license reset-merge-classutils reset-merge-checkpkgoverrides reset-merge-alternatives 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-fortran/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2-fortran/gar.pkg.mk 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/gar.pkg.mk 2010-12-02 17:46:17 UTC (rev 11764) @@ -152,7 +152,10 @@ SPKG_DESC ?= $(DESCRIPTION) SPKG_VERSION ?= $(GARVERSION) SPKG_CATEGORY ?= application -SPKG_SOURCEURL ?= $(firstword $(VENDOR_URL) $(MASTER_SITES) $(GIT_REPOS)) +SPKG_SOURCEURL ?= $(firstword $(VENDOR_URL) \ + $(if $(filter $(GNU_MIRROR),$(MASTER_SITES)),http://www.gnu.org/software/$(GNU_PROJ)) \ + $(MASTER_SITES) \ + $(GIT_REPOS)) SPKG_VENDOR ?= $(SPKG_SOURCEURL) packaged for CSW by $(SPKG_PACKAGER) SPKG_PSTAMP ?= $(LOGNAME)@$(shell hostname)-$(call _REVISION)-$(shell date '+%Y%m%d%H%M%S') SPKG_BASEDIR ?= $(prefix) @@ -185,6 +188,10 @@ # This is the default path for texinfo pages to be picked up. Extend or replace as necessary. TEXINFO ?= $(infodir)/.*\.info(?:-\d+)? $(EXTRA_TEXINFO) +# if AP2_MODS is set, files matching this shell glob (passed to find) +# will have 'build' set as their class +AP2_MODFILES ?= opt/csw/apache2/libexec/*so $(EXTRA_AP2_MODFILES) + # - set class for all config files _CSWCLASS_FILTER = | perl -ane '\ $(foreach FILE,$(MIGRATECONF),$$F[1] = "cswmigrateconf" if( $$F[2] =~ m(^$(FILE)$$) );)\ @@ -197,6 +204,7 @@ $(foreach FILE,$(CRONTABS),$$F[1] = "cswcrontab" if( $$F[2] =~ m(^$(FILE)$$) );)\ $(if $(PYCOMPILE),$(foreach FILE,$(_PYCOMPILE_FILES),$$F[1] = "cswpycompile" if( $$F[2] =~ m(^$(FILE)$$) );))\ $(foreach FILE,$(TEXINFO),$$F[1] = "cswtexinfo" if( $$F[2] =~ m(^$(FILE)$$) );)\ + $(if $(AP2_MODS), at F = ("e", "build", $$F[2], "?", "?", "?") if ($$F[2] =~ m(^/opt/csw/apache2/ap2mod/.*));) \ print join(" ", at F),"\n";' # If you add another filter above, also add the class to this list. It is used @@ -238,7 +246,7 @@ endif # Where we find our mkpackage global templates -PKGLIB = $(CURDIR)/$(GARDIR)/pkglib +PKGLIB = $(GARDIR)/pkglib PKG_EXPORTS = GARNAME GARVERSION DESCRIPTION CATEGORIES GARCH GARDIR GARBIN PKG_EXPORTS += CURDIR WORKDIR WORKDIR_FIRSTMOD WORKSRC WORKSRC_FIRSTMOD PKGROOT @@ -277,10 +285,11 @@ baseisadirs = $(1)/$(2) $(call isadirs,$(1),$(2)) # PKGFILES_RT selects files belonging to a runtime package -PKGFILES_RT += $(call baseisadirs,$(libdir),[^/]*\.so(\.\d+)*) +PKGFILES_RT += $(call baseisadirs,$(libdir),[^/]*\.so\.\d+(\.\d+)*) # PKGFILES_DEVEL selects files belonging to a developer package PKGFILES_DEVEL += $(call baseisadirs,$(bindir),[^/]*-config) +PKGFILES_DEVEL += $(call baseisadirs,$(libdir),[^/]*\.so) PKGFILES_DEVEL += $(call baseisadirs,$(libdir),[^/]*\.(a|la)) PKGFILES_DEVEL += $(call baseisadirs,$(libdir),pkgconfig(/.*)?) PKGFILES_DEVEL += $(includedir)/.* @@ -376,12 +385,16 @@ # for distributing files to individual packages. PROTOTYPE = $(WORKDIR)/prototype +define dontrelocate + $(shell gsed -i -e 's,\(.\) .* \($(1)[\s/]*\),\1 norelocate /\2,g' $(2)) +endef + # Dynamic prototypes work like this: # - A prototype from DISTFILES takes precedence over # Pulled in from pkglib/csw_prototype.gspec $(PROTOTYPE): $(WORKDIR) merge - $(_DBG)cswproto -c $(GARDIR)/etc/commondirs-$(GARCH) -r $(PKGROOT) $(PKGROOT)=/ >$@ + $(_DBG)cswproto -c $(GARDIR)/etc/commondirs-$(GARCH) -r $(PKGROOT) $(PKGROOT)=$(if $(ALLOW_RELOCATE),,'/') >$@ # pathfilter lives in bin/pathfilter and takes care of including/excluding paths from # a prototype (see "perldoc bin/pathfilter"). We employ it here to: @@ -422,6 +435,7 @@ else \ cat $(PROTOTYPE) $(call checkpkg_override_filter,$*) $(_CSWCLASS_FILTER) $(_PROTOTYPE_MODIFIERS) $(_PROTOTYPE_FILTER_$*) >$@; \ fi + $(if $(ALLOW_RELOCATE),$(call dontrelocate,opt,$(PROTOTYPE))) $(WORKDIR)/%.prototype-$(GARCH): | $(WORKDIR)/%.prototype $(_DBG)cat $(WORKDIR)/$*.prototype >$@ @@ -447,16 +461,19 @@ # The dependencies to CSWcswclassutils and CSWtexinfo are only added if there are files # actually matching the _TEXINFO_FILTER. This is done at the prototype-level. $(WORKDIR)/%.depend: $(WORKDIR)/$*.prototype +$(WORKDIR)/%.depend: _EXTRA_GAR_PKGS += $(_CATEGORY_RUNTIME_DEP_PKGS) $(WORKDIR)/%.depend: _EXTRA_GAR_PKGS += $(if $(strip $(shell cat $(WORKDIR)/$*.prototype | perl -ane 'print "yes" if( $$F[1] eq "cswalternatives")')),CSWalternatives) $(WORKDIR)/%.depend: _EXTRA_GAR_PKGS += $(if $(strip $(shell cat $(WORKDIR)/$*.prototype | perl -ane '$(foreach C,$(_CSWCLASSES),print "$C\n" if( $$F[1] eq "$C");)')),CSWcswclassutils) +$(WORKDIR)/%.depend: _DEP_PKGS=$(or $(RUNTIME_DEP_PKGS_ONLY_$*),$(RUNTIME_DEP_PKGS_ONLY),$(sort $(_EXTRA_GAR_PKGS)) $(or $(RUNTIME_DEP_PKGS_$*),$(RUNTIME_DEP_PKGS),$(DEP_PKGS_$*),$(DEP_PKGS))) +$(WORKDIR)/%.depend: $(WORKDIR) # The final "true" is for packages without dependencies to make the shell happy as "( )" is not allowed. -$(WORKDIR)/%.depend: $(WORKDIR) - $(_DBG)$(if $(_EXTRA_GAR_PKGS)$(RUNTIME_DEP_PKGS_$*)$(RUNTIME_DEP_PKGS)$(DEP_PKGS)$(DEP_PKGS_$*)$(INCOMPATIBLE_PKGS)$(INCOMPATIBLE_PKGS_$*), \ +$(WORKDIR)/%.depend: + $(_DBG)$(if $(_DEP_PKGS)$(INCOMPATIBLE_PKGS)$(INCOMPATIBLE_PKGS_$*), \ ($(foreach PKG,$(INCOMPATIBLE_PKGS_$*) $(INCOMPATIBLE_PKGS),\ echo "I $(PKG)";\ )\ - $(foreach PKG,$(sort $(_EXTRA_GAR_PKGS)) $(or $(RUNTIME_DEP_PKGS_$*),$(RUNTIME_DEP_PKGS),$(DEP_PKGS_$*),$(DEP_PKGS)),\ + $(foreach PKG,$(_DEP_PKGS),\ $(if $(SPKG_DESC_$(PKG)), \ echo "P $(PKG) $(call catalogname,$(PKG)) - $(SPKG_DESC_$(PKG))";, \ echo "$(shell (/usr/bin/pkginfo $(PKG) || echo "P $(PKG) - ") | $(GAWK) '{ $$1 = "P"; print } ')"; \ @@ -545,17 +562,20 @@ # Make sure every producable package contains specific descriptions. # We explicitly ignore NOPACKAGE here to disallow circumventing the check. +$(if $(filter-out $(firstword $(SPKG_SPECS)),$(SPKG_SPECS)),\ + $(foreach P,$(SPKG_SPECS),\ + $(if $(SPKG_DESC_$(P)),,$(error Multiple packages defined and SPKG_DESC_$(P) is not set.)))) + $(foreach P,$(SPKG_SPECS),\ - $(foreach Q,$(filter-out $P,$(SPKG_SPECS)),\ - $(if $(shell if test "$(SPKG_DESC_$P)" = "$(SPKG_DESC_$Q)"; then echo ERROR; fi),\ - $(error The package descriptions for $P and $Q are identical, please make sure all package descriptions are unique by setting SPKG_DESC_ for each package) \ -))) + $(foreach Q,$(filter-out $(P),$(SPKG_SPECS)),\ + $(if $(filter-out $(subst ,_,$(SPKG_DESC_$(P))),$(subst ,_,$(SPKG_DESC_$(Q)))),,$(error The package descriptions for $(P) [$(if $(SPKG_DESC_$(P)),$(SPKG_DESC_$(P)),)] and $(Q) [$(if $(SPKG_DESC_$(Q)),$(SPKG_DESC_$(Q)),)] are identical. Please make sure that all descriptions are unique by setting SPKG_DESC_ for each package.)))) .PRECIOUS: $(WORKDIR)/%.pkginfo # The texinfo filter has been taken out of the normal filters as TEXINFO has a default. $(WORKDIR)/%.pkginfo: $(WORKDIR)/%.prototype $(WORKDIR)/%.pkginfo: SPKG_CLASSES += $(if $(strip $(shell cat $(WORKDIR)/$*.prototype | perl -ane 'print "yes" if( $$F[1] eq "cswalternatives")')),cswalternatives) +$(WORKDIR)/%.pkginfo: SPKG_CLASSES += $(if $(strip $(shell cat $(WORKDIR)/$*.prototype | perl -ane 'print "yes" if( $$F[1] eq "build")')),build) $(WORKDIR)/%.pkginfo: SPKG_CLASSES += $(shell cat $(WORKDIR)/$*.prototype | perl -e 'while(<>){@F=split;$$c{$$F[1]}++};$(foreach C,$(_CSWCLASSES),print "$C\n" if( $$c{$C});)') $(WORKDIR)/%.pkginfo: $(WORKDIR) @@ -567,7 +587,8 @@ echo "VENDOR=$(call pkgvar,SPKG_VENDOR,$*)"; \ echo "EMAIL=$(call pkgvar,SPKG_EMAIL,$*)"; \ echo "PSTAMP=$(LOGNAME)@$(shell hostname)-$(shell date '+%Y%m%d%H%M%S')"; \ - echo "CLASSES=$(call pkgvar,SPKG_CLASSES,$*)"; \ + $(if $(ALLOW_RELOCATE),echo "CLASSES=$(call pkgvar,SPKG_CLASSES,$*) norelocate"; \ + ,echo "CLASSES=$(call pkgvar,SPKG_CLASSES,$*)";) \ echo "HOTLINE=http://www.opencsw.org/bugtrack/"; \ echo "OPENCSW_CATALOGNAME=$(call catalogname,$*)"; \ echo "OPENCSW_MODE64=$(call mode64,$*)"; \ @@ -575,6 +596,7 @@ echo "OPENCSW_BUNDLE=$(BUNDLE)"; \ $(_CATEGORY_PKGINFO) \ ) >$@ + $(if $(ALLOW_RELOCATE),echo "BASEDIR=$(RELOCATE_PREFIX)" >>$@) # findlicensefile - Find an existing file for a given license name @@ -624,6 +646,9 @@ reset-merge-classutils: reset-merge-migrateconf reset-merge-usergroup reset-merge-inetdconf reset-merge-etcservices +reset-merge-ap2mod: + @rm -f $(COOKIEDIR)/post-merge-ap2mod + merge-migrateconf: $(foreach S,$(SPKG_SPECS),$(if $(or $(MIGRATE_FILES_$S),$(MIGRATE_FILES)),merge-migrateconf-$S)) @$(MAKECOOKIE) @@ -852,7 +877,7 @@ $(if $(PACKAGING_HOST_$P),\ $(if $(filter $(THISHOST),$(PACKAGING_HOST_$P)),\ $(MAKE) GAR_PLATFORM=$P _package && ,\ - $(SSH) -t $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin $(MAKE) -C $(CURDIR) GAR_PLATFORM=$P _package" && \ + $(SSH) -t $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) GAR_PLATFORM=$P _package" && \ ),\ $(error *** No host has been defined for platform $P)\ )\ @@ -867,7 +892,7 @@ echo " (built on this host)";\ $(MAKE) -s GAR_PLATFORM=$P _pkgshow;echo;,\ echo " (built on host '$(PACKAGING_HOST_$P)')";\ - $(SSH) $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin $(MAKE) -C $(CURDIR) -s GAR_PLATFORM=$P _pkgshow";echo;\ + $(SSH) $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) -s GAR_PLATFORM=$P _pkgshow";echo;\ )\ ) @$(MAKECOOKIE) @@ -878,7 +903,7 @@ $(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) -C $(CURDIR) GAR_PLATFORM=$P $*" && \ + $(SSH) -t $(PACKAGING_HOST_$P) "PATH=$$PATH:/opt/csw/bin MAKEFLAGS=\"$(MAKEFLAGS)\" $(MAKE) -C $(CURDIR) GAR_PLATFORM=$P $*" && \ ),\ $(error *** No host has been defined for platform $P)\ )\ Modified: csw/mgar/gar/v2-fortran/lib/python/README =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/README 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/lib/python/README 2010-12-02 17:46:17 UTC (rev 11764) @@ -13,3 +13,17 @@ Known problems: - libmagic fails sometimes when processing the whole catalog + + +Dependencies: + +It's possible to develop checkpkg on a non-Solaris platform, using unit +tests as means to run various bits of code. Here's the dependency list +for Ubuntu. + + python-cheetah + python-hachoir-parser + python-magic + python-mox + python-progressbar + python-yaml Copied: csw/mgar/gar/v2-fortran/lib/python/catalog.py (from rev 11763, csw/mgar/gar/v2/lib/python/catalog.py) =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/catalog.py (rev 0) +++ csw/mgar/gar/v2-fortran/lib/python/catalog.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -0,0 +1,147 @@ +#!/usr/bin/env python2.6 + +import os +import re +import logging + + +class Error(Exception): + pass + + +class CatalogLineParseError(Error): + pass + + +class OpencswCatalogBuilder(object): + + def __init__(self, product_dir, catalog_dir): + self.product_dir = product_dir + self.catalog_dir = catalog_dir + + def Run(self): + pkg_dirs = os.listdir(self.product_dir) + for pkg_dir in pkg_dirs: + pkg_path = os.path.join(self.product_dir, pkg_dir) + pkginfo_path = os.path.join(pkg_path, "pkginfo") + if (os.path.isdir(pkg_path) + and + os.path.exists(pkginfo_path)): + if not self.Srv4Exists(pkg_path): + pkg = None + tmpdir = None + try: + tmpdir = tempfile.mkdtemp(prefix="sunw-pkg-") + logging.debug("Copying %s to %s", repr(pkg_path), repr(tmpdir)) + tmp_pkg_dir = os.path.join(tmpdir, pkg_dir) + shutil.copytree(pkg_path, tmp_pkg_dir, symlinks=True) + pkg = DirectoryFormatPackage(tmp_pkg_dir) + # Replacing NAME= in the pkginfo, setting it to the catalog name. + pkg.ResetNameProperty() + pkg.ToSrv4(self.catalog_dir) + except IOError, e: + logging.warn("%s has failed: %s", pkg_path, e) + finally: + if pkg: + del(pkg) + if os.path.exists(tmpdir): + shutil.rmtree(tmpdir) + else: + logging.warn("srv4 file for %s already exists, skipping", pkg_path) + else: + logging.warn("%s is not a directory.", pkg_path) + + + def Srv4Exists(self, pkg_dir): + pkg = DirectoryFormatPackage(pkg_dir) + srv4_name = pkg.GetSrv4FileName() + srv4_name += ".gz" + srv4_path = os.path.join(self.catalog_dir, srv4_name) + result = os.path.exists(srv4_path) + logging.debug("Srv4Exists(%s) => %s, %s", pkg_dir, repr(srv4_path), result) + return result + + +class OpencswCatalog(object): + """Represents a catalog file.""" + + def __init__(self, file_name): + self.file_name = file_name + self.by_basename = None + self.catalog_data = None + + def _ParseCatalogLine(self, line): + cline_re_str_list = [ + ( + r"^" + # tmux + r"(?P\S+)" + r"\s+" + # 1.2,REV=2010.05.17 + r"(?P\S+)" + r"\s+" + # CSWtmux + r"(?P\S+)" + r"\s+" + # tmux-1.2,REV=2010.05.17-SunOS5.9-sparc-CSW.pkg.gz + r"(?P\S+)" + r"\s+" + # 145351cf6186fdcadcd169b66387f72f + r"(?P\S+)" + r"\s+" + # 214091 + r"(?P\S+)" + r"\s+" + # CSWcommon|CSWlibevent + r"(?P\S+)" + r"\s+" + # none + r"(?P\S+)" + # An optional empty field. + r"(" + r"\s+" + # none\n' + r"(?P\S+)" + r")?" + r"$" + ), + ] + cline_re_list = [re.compile(x) for x in cline_re_str_list] + matched = False + d = None + for cline_re in cline_re_list: + m = cline_re.match(line) + if m: + d = m.groupdict() + matched = True + if not d: + raise CatalogLineParseError("Parsed %s data is empty" % repr(line)) + if not matched: + raise CatalogLineParseError("No regexes matched %s" % repr(line)) + return d + + def _GetCatalogData(self, fd): + catalog_data = [] + for line in fd: + try: + parsed = self._ParseCatalogLine(line) + catalog_data.append(parsed) + except CatalogLineParseError, e: + logging.debug("Could not parse %s, %s", repr(line), e) + return catalog_data + + def GetCatalogData(self): + if not self.catalog_data: + fd = open(self.file_name, "r") + self.catalog_data = self._GetCatalogData(fd) + return self.catalog_data + + def GetDataByBasename(self): + if not self.by_basename: + self.by_basename = {} + cd = self.GetCatalogData() + for d in cd: + if "file_basename" not in d: + logging.error("%s is missing the file_basename field", d) + self.by_basename[d["file_basename"]] = d + return self.by_basename Copied: csw/mgar/gar/v2-fortran/lib/python/catalog_test.py (from rev 11763, csw/mgar/gar/v2/lib/python/catalog_test.py) =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/catalog_test.py (rev 0) +++ csw/mgar/gar/v2-fortran/lib/python/catalog_test.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -0,0 +1,29 @@ +#!/usr/bin/env python2.6 + +import unittest +import catalog + +class OpencswCatalogUnitTest(unittest.TestCase): + + def test_ParseCatalogLine_1(self): + line = ( + 'tmux 1.2,REV=2010.05.17 CSWtmux ' + 'tmux-1.2,REV=2010.05.17-SunOS5.9-sparc-CSW.pkg.gz ' + '145351cf6186fdcadcd169b66387f72f 214091 ' + 'CSWcommon|CSWlibevent none none\n') + oc = catalog.OpencswCatalog(None) + parsed = oc._ParseCatalogLine(line) + expected = {'catalogname': 'tmux', + 'deps': 'CSWcommon|CSWlibevent', + 'file_basename': 'tmux-1.2,REV=2010.05.17-SunOS5.9-sparc-CSW.pkg.gz', + 'md5sum': '145351cf6186fdcadcd169b66387f72f', + 'none_thing_1': 'none', + 'none_thing_2': 'none', + 'pkgname': 'CSWtmux', + 'size': '214091', + 'version': '1.2,REV=2010.05.17'} + self.assertEquals(expected, parsed) + + +if __name__ == '__main__': + unittest.main() Modified: csw/mgar/gar/v2-fortran/lib/python/checkpkg.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/checkpkg.py 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/lib/python/checkpkg.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -22,18 +22,19 @@ from sqlobject import sqlbuilder import subprocess import textwrap -import yaml from Cheetah import Template -import opencsw -import overrides +import database + +import package +import inspective_package import package_checks +import package_stats import models as m import configuration as c import tag + DEBUG_BREAK_PKGMAP_AFTER = False -DB_SCHEMA_VERSION = 5L -PACKAGE_STATS_VERSION = 9L SYSTEM_PKGMAP = "/var/sadm/install/contents" NEEDED_SONAMES = "needed sonames" RUNPATH = "runpath" @@ -194,58 +195,7 @@ return m.group("username") if m else None -class DatabaseClient(object): - - CHECKPKG_DIR = ".checkpkg" - SQLITE3_DBNAME_TMPL = "checkpkg-db-%(fqdn)s" - TABLES_THAT_NEED_UPDATES = (m.CswFile,) - TABLES = TABLES_THAT_NEED_UPDATES + ( - m.Pkginst, - m.CswConfig, - m.Srv4FileStats, - m.CheckpkgOverride, - m.CheckpkgErrorTag, - m.Architecture, - m.OsRelease, - m.Maintainer) - sqo_conn = None - db_path = None - - def __init__(self, debug=False): - self.debug = debug - - @classmethod - def GetDatabasePath(cls): - if not cls.db_path: - dbname_dict = {'fqdn': socket.getfqdn()} - db_filename = cls.SQLITE3_DBNAME_TMPL % dbname_dict - home_dir = os.environ["HOME"] - cls.db_path = os.path.join(home_dir, cls.CHECKPKG_DIR, db_filename) - return cls.db_path - - @classmethod - def InitializeSqlobject(cls): - """Establishes a database connection and stores it as a class member. - - The idea is to share the database connection between instances. It would - be solved even better if the connection was passed to the class - constructor. - """ - if not cls.sqo_conn: - db_path = cls.GetDatabasePath() - cls.sqo_conn = sqlobject.connectionForURI('sqlite:%s' % db_path) - sqlobject.sqlhub.processConnection = cls.sqo_conn - - def CreateTables(self): - for table in self.TABLES: - table.createTable(ifNotExists=True) - - def IsDatabaseGoodSchema(self): - good_version = self.GetDatabaseSchemaVersion() >= DB_SCHEMA_VERSION - return good_version - - -class SystemPkgmap(DatabaseClient): +class SystemPkgmap(database.DatabaseClient): """A class to hold and manipulate the /var/sadm/install/contents file.""" STOP_PKGS = ["SUNWbcp", "SUNWowbcp", "SUNWucb"] @@ -457,10 +407,10 @@ try: config_option = m.CswConfig.select( m.CswConfig.q.option_key==CONFIG_DB_SCHEMA).getOne() - config_option.int_value = DB_SCHEMA_VERSION + config_option.int_value = database.DB_SCHEMA_VERSION except sqlobject.main.SQLObjectNotFound, e: version = m.CswConfig(option_key=CONFIG_DB_SCHEMA, - int_value=DB_SCHEMA_VERSION) + int_value=database.DB_SCHEMA_VERSION) def GetPkgmapLineByBasename(self, filename): """Returns pkgmap lines by basename: @@ -578,7 +528,7 @@ # subsequent checkpkg runs won't pick up the last change. # I don't expect pkgadd to run under 1s. fresh = f_mtime <= d_mtime - good_version = self.GetDatabaseSchemaVersion() >= DB_SCHEMA_VERSION + good_version = self.GetDatabaseSchemaVersion() >= database.DB_SCHEMA_VERSION logging.debug("IsDatabaseUpToDate: good_version=%s, fresh=%s", repr(good_version), repr(fresh)) return fresh and good_version @@ -773,7 +723,8 @@ self.packages = [] def GetPackageStatsList(self): - return [PackageStats(None, self.stats_basedir, x) for x in self.md5sum_list] + return [package_stats.PackageStats(None, self.stats_basedir, x) + for x in self.md5sum_list] def FormatReports(self, errors, messages, gar_lines): namespace = { @@ -800,7 +751,7 @@ else: if "package-set" not in errors: errors["package-set"] = [] - errors["package-set"].append(error) + errors["package-set"].append(tag) return errors def GetOptimizedAllStats(self, stats_obj_list): @@ -1079,425 +1030,6 @@ return tuple(isalist) -class PackageStats(DatabaseClient): - """Collects stats about a package and saves it. - - TODO: Maintain a global database connection instead of creating one for each - instantiated object. - TODO: Store overrides in a separate table for performance. - """ - - def __init__(self, srv4_pkg, stats_basedir=None, md5sum=None, debug=False): - super(PackageStats, self).__init__(debug=debug) - self.srv4_pkg = srv4_pkg - self.md5sum = md5sum - self.dir_format_pkg = None - self.all_stats = {} - self.stats_basedir = stats_basedir - self.db_pkg_stats = None - if not self.stats_basedir: - home = os.environ["HOME"] - parts = [home, ".checkpkg", "stats"] - self.stats_basedir = os.path.join(*parts) - self.InitializeSqlobject() - - def GetPkgchkData(self): - ret, stdout, stderr = self.srv4_pkg.GetPkgchkOutput() - data = { - 'return_code': ret, - 'stdout_lines': stdout.splitlines(), - 'stderr_lines': stderr.splitlines(), - } - return data - - def GetMd5sum(self): - if not self.md5sum: - self.md5sum = self.srv4_pkg.GetMd5sum() - return self.md5sum - - def GetDbObject(self): - if not self.db_pkg_stats: - md5_sum = self.GetMd5sum() - res = m.Srv4FileStats.select(m.Srv4FileStats.q.md5_sum==md5_sum) - if not res.count(): - # TODO: Change this bit to throw an exception if the object is not - # found. - return None - else: - self.db_pkg_stats = res.getOne() - return self.db_pkg_stats - - - def StatsExist(self): - """Checks if statistics of a package exist. - - Returns: - bool - """ - pkg_stats = self.GetDbObject() - if not pkg_stats: - return False - if pkg_stats.stats_version != PACKAGE_STATS_VERSION: - pkg_stats.destroySelf() - else: - return True - return False - - def GetDirFormatPkg(self): - if not self.dir_format_pkg: - self.dir_format_pkg = self.srv4_pkg.GetDirFormatPkg() - return self.dir_format_pkg - - def GetMtime(self): - return self.srv4_pkg.GetMtime() - - def _MakeDirP(self, dir_path): - """mkdir -p equivalent. - - http://stackoverflow.com/questions/600268/mkdir-p-functionality-in-python - """ - try: - os.makedirs(dir_path) - except OSError, e: - if e.errno == errno.EEXIST: - pass - else: - raise - - def GetBinaryDumpInfo(self): - dir_pkg = self.GetDirFormatPkg() - # Binaries. This could be split off to a separate function. - # man ld.so.1 for more info on this hack - env = copy.copy(os.environ) - env["LD_NOAUXFLTR"] = "1" - binaries_dump_info = [] - for binary in dir_pkg.ListBinaries(): - binary_abs_path = os.path.join(dir_pkg.directory, "root", binary) - binary_base_name = os.path.basename(binary) - args = [DUMP_BIN, "-Lv", binary_abs_path] - dump_proc = subprocess.Popen(args, stdout=subprocess.PIPE, env=env) - stdout, stderr = dump_proc.communicate() - ret = dump_proc.wait() - binary_data = ParseDumpOutput(stdout) - binary_data["path"] = binary - binary_data["base_name"] = binary_base_name - binaries_dump_info.append(binary_data) - return binaries_dump_info - - def GetBasicStats(self): - dir_pkg = self.GetDirFormatPkg() - basic_stats = {} - basic_stats["stats_version"] = PACKAGE_STATS_VERSION - basic_stats["pkg_path"] = self.srv4_pkg.pkg_path - basic_stats["pkg_basename"] = os.path.basename(self.srv4_pkg.pkg_path) - basic_stats["parsed_basename"] = opencsw.ParsePackageFileName( - basic_stats["pkg_basename"]) - basic_stats["pkgname"] = dir_pkg.pkgname - basic_stats["catalogname"] = dir_pkg.GetCatalogname() - basic_stats["md5_sum"] = self.GetMd5sum() - return basic_stats - - def GetOverrides(self): - dir_pkg = self.GetDirFormatPkg() - override_list = dir_pkg.GetOverrides() - def OverrideToDict(override): - return { - "pkgname": override.pkgname, - "tag_name": override.tag_name, - "tag_info": override.tag_info, - } - overrides_simple = [OverrideToDict(x) for x in override_list] - return overrides_simple - - def GetLddMinusRlines(self): - """Returns ldd -r output.""" - dir_pkg = self.GetDirFormatPkg() - binaries = dir_pkg.ListBinaries() - ldd_output = {} - for binary in binaries: - binary_abspath = os.path.join(dir_pkg.directory, "root", binary) - # this could be potentially moved into the DirectoryFormatPackage class. - # ldd needs the binary to be executable - os.chmod(binary_abspath, 0755) - args = ["ldd", "-r", binary_abspath] - ldd_proc = subprocess.Popen( - args, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - stdout, stderr = ldd_proc.communicate() - retcode = ldd_proc.wait() - if retcode: - logging.error("%s returned an error: %s", args, stderr) - ldd_info = [] - for line in stdout.splitlines(): - ldd_info.append(self._ParseLddDashRline(line)) - ldd_output[binary] = ldd_info - return ldd_output - - def GetDefinedSymbols(self): - """Returns text symbols (i.e. defined functions) for packaged ELF objects - - To do this we parse output lines from nm similar to the following. "T"s are - the definitions which we are after. - - 0000104000 D _lib_version - 0000986980 D _libiconv_version - 0000000000 U abort - 0000097616 T aliases_lookup - """ - dir_pkg = self.GetDirFormatPkg() - binaries = dir_pkg.ListBinaries() - defined_symbols = {} - - for binary in binaries: - binary_abspath = os.path.join(dir_pkg.directory, "root", binary) - # Get parsable, ld.so.1 relevant SHT_DYNSYM symbol information - args = ["/usr/ccs/bin/nm", "-p", "-D", binary_abspath] - nm_proc = subprocess.Popen( - args, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - stdout, stderr = nm_proc.communicate() - retcode = nm_proc.wait() - if retcode: - logging.error("%s returned an error: %s", args, stderr) - continue - nm_out = stdout.splitlines() - - defined_symbols[binary] = [] - for line in nm_out: - sym = self._ParseNmSymLine(line) - if not sym: - continue - if sym['type'] not in ("T", "D", "B"): - continue - defined_symbols[binary].append(sym['name']) - - return defined_symbols - - def _ParseNmSymLine(self, line): - re_defined_symbol = re.compile('[0-9]+ [ABDFNSTU] \S+') - m = re_defined_symbol.match(line) - if not m: - return None - fields = line.split() - sym = { 'address': fields[0], 'type': fields[1], 'name': fields[2] } - return sym - - def CollectStats(self, force=False): - """Lazy stats collection.""" - if force or not self.StatsExist(): - return self._CollectStats() - return self.ReadSavedStats() - - def _CollectStats(self): - """The list of variables needs to be synchronized with the one - at the top of this class. - """ - dir_pkg = self.GetDirFormatPkg() - logging.debug("Collecting %s package statistics.", repr(dir_pkg.pkgname)) - override_dicts = self.GetOverrides() - pkg_stats = { - "binaries": dir_pkg.ListBinaries(), - "binaries_dump_info": self.GetBinaryDumpInfo(), - "depends": dir_pkg.GetDependencies(), - "isalist": GetIsalist(), - "overrides": override_dicts, - "pkgchk": self.GetPkgchkData(), - "pkginfo": dir_pkg.GetParsedPkginfo(), - "pkgmap": dir_pkg.GetPkgmap().entries, - "bad_paths": dir_pkg.GetFilesContaining(BAD_CONTENT_REGEXES), - "basic_stats": self.GetBasicStats(), - "files_metadata": dir_pkg.GetFilesMetadata(), - "mtime": self.GetMtime(), - } - pkgname = pkg_stats["basic_stats"]["pkgname"] - # Getting sqlobject representations. - try: - pkginst = m.Pkginst.select(m.Pkginst.q.pkgname==pkgname).getOne() - except sqlobject.main.SQLObjectNotFound, e: - logging.debug(e) - pkginst = m.Pkginst(pkgname=pkgname) - try: - res = m.Architecture.select( - m.Architecture.q.name==pkg_stats["pkginfo"]["ARCH"]) - arch = res.getOne() - except sqlobject.main.SQLObjectNotFound, e: - logging.debug(e) - arch = m.Architecture(name=pkg_stats["pkginfo"]["ARCH"]) - parsed_basename = pkg_stats["basic_stats"]["parsed_basename"] - os_rel_name = parsed_basename["osrel"] - try: - os_rel = m.OsRelease.select( - m.OsRelease.q.short_name==os_rel_name).getOne() - except sqlobject.main.SQLObjectNotFound, e: - logging.debug(e) - os_rel = m.OsRelease(short_name=os_rel_name, full_name=os_rel_name) - try: - maint_email = pkg_stats["pkginfo"]["EMAIL"] - maintainer = m.Maintainer.select( - m.Maintainer.q.email==maint_email).getOne() - except sqlobject.main.SQLObjectNotFound, e: - logging.debug(e) - maintainer = m.Maintainer(email=maint_email) - - # If there are any previous records of the same pkginst, arch and os_rel, - # we're marking them as not-latest. - # This assumes that the packages are examined in a chronological order. - res = m.Srv4FileStats.select(sqlobject.AND( - m.Srv4FileStats.q.pkginst==pkginst, - m.Srv4FileStats.q.arch==arch, - m.Srv4FileStats.q.os_rel==os_rel)) - for obj in res: - obj.latest = False - - rev=None - if "revision_info" in parsed_basename: - if "REV" in parsed_basename["revision_info"]: - rev = parsed_basename["revision_info"]["REV"] - # Creating the object in the database. - db_pkg_stats = m.Srv4FileStats( - md5_sum=self.GetMd5sum(), - pkginst=pkginst, - catalogname=pkg_stats["basic_stats"]["catalogname"], - stats_version=PACKAGE_STATS_VERSION, - os_rel=os_rel, - arch=arch, - basename=pkg_stats["basic_stats"]["pkg_basename"], - maintainer=maintainer, - latest=True, - version_string=parsed_basename["full_version_string"], - rev=rev, - mtime=self.GetMtime(), - data=cPickle.dumps(pkg_stats)) - # Inserting overrides as rows into the database - for override_dict in override_dicts: - o = m.CheckpkgOverride(srv4_file=db_pkg_stats, - **override_dict) - - # The ldd -r reporting breaks on bigger packages during yaml saving. - # It might work when yaml is disabled - # self.DumpObject(self.GetLddMinusRlines(), "ldd_dash_r") - # This check is currently disabled, let's save time by not collecting - # these data. - # self.DumpObject(self.GetDefinedSymbols(), "defined_symbols") - # This one should be last, so that if the collection is interrupted - # in one of the previous runs, the basic_stats.pickle file is not there - # or not updated, and the collection is started again. - - logging.debug("Statistics of %s have been collected.", repr(dir_pkg.pkgname)) - return pkg_stats - - def GetAllStats(self): - if not self.all_stats and self.StatsExist(): - self.all_stats = self.ReadSavedStats() - elif not self.all_stats: - self.all_stats = self.CollectStats() - return self.all_stats - - def GetSavedOverrides(self): - if not self.StatsExist(): - raise PackageError("Package stats not ready.") - pkg_stats = self.GetDbObject() - res = m.CheckpkgOverride.select(m.CheckpkgOverride.q.srv4_file==pkg_stats) - override_list = [] - for db_override in res: - d = { - 'pkgname': db_override.pkgname, - 'tag_name': db_override.tag_name, - 'tag_info': db_override.tag_info, - } - override_list.append(overrides.Override(**d)) - return override_list - - def GetSavedErrorTags(self): - pkg_stats = self.GetDbObject() - res = m.CheckpkgErrorTag.select(m.CheckpkgErrorTag.q.srv4_file==pkg_stats) - tag_list = [tag.CheckpkgTag(x.pkgname, x.tag_name, x.tag_info, x.msg) - for x in res] - return tag_list - - def ReadSavedStats(self): - if not self.all_stats: - md5_sum = self.GetMd5sum() - res = m.Srv4FileStats.select(m.Srv4FileStats.q.md5_sum==md5_sum) - self.all_stats = cPickle.loads(str(res.getOne().data)) - return self.all_stats - - def _ParseLddDashRline(self, line): - found_re = r"^\t(?P\S+)\s+=>\s+(?P\S+)" - symbol_not_found_re = (r"^\tsymbol not found:\s(?P\S+)\s+" - r"\((?P\S+)\)") - only_so = r"^\t(?P\S+)$" - version_so = (r'^\t(?P\S+) ' - r'\((?P\S+)\) =>\t \(version not found\)') - stv_protected = (r'^\trelocation \S+ symbol: (?P\S+): ' - r'file (?P\S+): ' - r'relocation bound to a symbol ' - r'with STV_PROTECTED visibility$') - sizes_differ = (r'^\trelocation \S+ sizes differ: ' - r'(?P\S+)$') - sizes_info = (r'^\t\t\(file (?P\S+) size=(?P0x\w+); ' - r'file (?P\S+) size=(?P0x\w+)\)$') - sizes_one_used = (r'^\t\t(?P\S+) size used; ' - r'possible insufficient data copied$') - common_re = (r"(%s|%s|%s|%s|%s|%s|%s|%s)" - % (found_re, symbol_not_found_re, only_so, version_so, - stv_protected, sizes_differ, sizes_info, sizes_one_used)) - m = re.match(common_re, line) - response = {} - if m: - d = m.groupdict() - if "soname" in d and d["soname"]: - # it was found - response["state"] = "OK" - response["soname"] = d["soname"] - response["path"] = d["path_found"] - response["symbol"] = None - elif "symbol" in d and d["symbol"]: - response["state"] = "symbol-not-found" - response["soname"] = None - response["path"] = d["path_not_found"] - response["symbol"] = d["symbol"] - elif d["path_only"]: - response["state"] = "OK" - response["soname"] = None - response["path"] = d["path_only"] - response["symbol"] = None - elif d["soname_version_not_found"]: - response["state"] = "version-not-found" - response["soname"] = d["soname_version_not_found"] - response["path"] = None - response["symbol"] = None - elif d["relocation_symbol"]: - response["state"] = 'relocation-bound-to-a-symbol-with-STV_PROTECTED-visibility' - response["soname"] = None - response["path"] = d["relocation_path"] - response["symbol"] = d["relocation_symbol"] - elif d["sizes_differ_symbol"]: - response["state"] = 'sizes-differ' - response["soname"] = None - response["path"] = None - response["symbol"] = d["sizes_differ_symbol"] - elif d["sizediff_file1"]: - response["state"] = 'sizes-diff-info' - response["soname"] = None - response["path"] = "%s %s" % (d["sizediff_file1"], d["sizediff_file2"]) - response["symbol"] = None - elif d["sizediffused_file"]: - response["state"] = 'sizes-diff-one-used' - response["soname"] = None - response["path"] = "%s" % (d["sizediffused_file"]) - response["symbol"] = None - else: - raise StdoutSyntaxError("Could not parse %s with %s" - % (repr(line), common_re)) - else: - raise StdoutSyntaxError("Could not parse %s with %s" - % (repr(line), common_re)) - return response - - def ErrorTagsFromFile(file_name): fd = open(file_name) error_tags = [] @@ -1509,20 +1041,6 @@ return error_tags -def StatsListFromCatalog(file_name_list, catalog_file_name=None, debug=False): - packages = [opencsw.CswSrv4File(x, debug) for x in file_name_list] - if catalog_file_name: - catalog = opencsw.OpencswCatalog(catalog_file_name) - md5s_by_basename = catalog.GetDataByBasename() - for pkg in packages: - basename = os.path.basename(pkg.pkg_path) - # It might be the case that a file is present on disk, but missing from - # the catalog file. - if basename in md5s_by_basename: - pkg.md5sum = md5s_by_basename[basename]["md5sum"] - stats_list = [PackageStats(pkg) for pkg in packages] - return stats_list - def SliceList(l, size): """Trasforms a list into a list of lists.""" idxes = xrange(0, len(l), size) @@ -1542,17 +1060,17 @@ md5s.append(arg) else: filenames.append(arg) - srv4_pkgs = [opencsw.CswSrv4File(x) for x in filenames] + srv4_pkgs = [inspective_package.InspectiveCswSrv4File(x) for x in filenames] pkgstat_objs = [] bar = progressbar.ProgressBar() bar.maxval = len(md5s) + len(srv4_pkgs) bar.start() counter = itertools.count() for pkg in srv4_pkgs: - pkgstat_objs.append(PackageStats(pkg, debug=debug)) + pkgstat_objs.append(package_stats.PackageStats(pkg, debug=debug)) bar.update(counter.next()) for md5 in md5s: - pkgstat_objs.append(PackageStats(None, md5sum=md5, debug=debug)) + pkgstat_objs.append(package_stats.PackageStats(None, md5sum=md5, debug=debug)) bar.update(counter.next()) bar.finish() return pkgstat_objs Modified: csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -23,18 +23,6 @@ SELECT * FROM systempkgmap WHERE basename = 'libncursesw.so.5'; """ -LDD_R_OUTPUT_1 = """\tlibc.so.1 => /lib/libc.so.1 -\tsymbol not found: check_encoding_conversion_args (/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so) -\tsymbol not found: LocalToUtf (/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so) -\tsymbol not found: UtfToLocal (/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so) -\tlibm.so.2 => /lib/libm.so.2 -\t/usr/lib/secure/s8_preload.so.1 -\tlibXext.so.0 (SUNW_1.1) =>\t (version not found) -\trelocation R_SPARC_COPY symbol: ASN1_OCTET_STRING_it: file /opt/csw/lib/sparcv8plus+vis/libcrypto.so.0.9.8: relocation bound to a symbol with STV_PROTECTED visibility -\trelocation R_SPARC_COPY sizes differ: _ZTI7QWidget -\t\t(file /tmp/pkg_GqCk0P/CSWkdeartworkgcc/root/opt/csw/kde-gcc/bin/kslideshow.kss size=0x28; file /opt/csw/kde-gcc/lib/libqt-mt.so.3 size=0x20) -""" - class GetLinesBySonameUnitTest(unittest.TestCase): def setUp(self): @@ -279,116 +267,6 @@ self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) -class PackageStatsUnitTest(unittest.TestCase): - - def setUp(self): - self.pkgstats = checkpkg.PackageStats(None) - - def test_ParseNmSymLineGoodLine(self): - line = '0000097616 T aliases_lookup' - expected = { - 'address': '0000097616', - 'type': 'T', - 'name': 'aliases_lookup', - } - self.assertEqual(expected, self.pkgstats._ParseNmSymLine(line)) - - def test_ParseNmSymLineBadLine(self): - line = 'foo' - self.assertEqual(None, self.pkgstats._ParseNmSymLine(line)) - - def test_ParseLddDashRlineFound(self): - line = '\tlibc.so.1 => /lib/libc.so.1' - expected = { - 'state': 'OK', - 'soname': 'libc.so.1', - 'path': '/lib/libc.so.1', - 'symbol': None, - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLddDashRlineSymbolMissing(self): - line = ('\tsymbol not found: check_encoding_conversion_args ' - '(/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so)') - expected = { - 'state': 'symbol-not-found', - 'soname': None, - 'path': '/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so', - 'symbol': 'check_encoding_conversion_args', - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLddDashRlineFound(self): - line = '\t/usr/lib/secure/s8_preload.so.1' - expected = { - 'state': 'OK', - 'soname': None, - 'path': '/usr/lib/secure/s8_preload.so.1', - 'symbol': None, - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLdd_VersionNotFound(self): - line = '\tlibXext.so.0 (SUNW_1.1) =>\t (version not found)' - expected = { - 'symbol': None, - 'soname': 'libXext.so.0', - 'path': None, - 'state': 'version-not-found', - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLdd_StvProtectedVisibility(self): - line = ('\trelocation R_SPARC_COPY symbol: ASN1_OCTET_STRING_it: ' - 'file /opt/csw/lib/sparcv8plus+vis/libcrypto.so.0.9.8: ' - 'relocation bound to a symbol with STV_PROTECTED visibility') - expected = { - 'symbol': 'ASN1_OCTET_STRING_it', - 'soname': None, - 'path': '/opt/csw/lib/sparcv8plus+vis/libcrypto.so.0.9.8', - 'state': 'relocation-bound-to-a-symbol-with-STV_PROTECTED-visibility', - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLdd_SizesDiffer(self): - line = '\trelocation R_SPARC_COPY sizes differ: _ZTI7QWidget' - expected = { - 'symbol': '_ZTI7QWidget', - 'soname': None, - 'path': None, - 'state': 'sizes-differ', - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLdd_SizesDifferInfo(self): - line = ('\t\t(file /tmp/pkg_GqCk0P/CSWkdeartworkgcc/root/opt/csw/kde-gcc/bin/' - 'kslideshow.kss size=0x28; ' - 'file /opt/csw/kde-gcc/lib/libqt-mt.so.3 size=0x20)') - expected = { - 'symbol': None, - 'path': ('/tmp/pkg_GqCk0P/CSWkdeartworkgcc/root/opt/csw/kde-gcc/' - 'bin/kslideshow.kss /opt/csw/kde-gcc/lib/libqt-mt.so.3'), - 'state': 'sizes-diff-info', - 'soname': None, - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLdd_SizesDifferOneUsed(self): - line = ('\t\t/opt/csw/kde-gcc/lib/libqt-mt.so.3 size used; ' - 'possible insufficient data copied') - expected = { - 'symbol': None, - 'path': '/opt/csw/kde-gcc/lib/libqt-mt.so.3', - 'state': 'sizes-diff-one-used', - 'soname': None, - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLddDashRlineManyLines(self): - for line in LDD_R_OUTPUT_1.splitlines(): - parsed = self.pkgstats._ParseLddDashRline(line) - - class ExtractorsUnitTest(unittest.TestCase): def testExtractDescriptionFromGoodData(self): Copied: csw/mgar/gar/v2-fortran/lib/python/compare_pkgs.py (from rev 11763, csw/mgar/gar/v2/lib/python/compare_pkgs.py) =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/compare_pkgs.py (rev 0) +++ csw/mgar/gar/v2-fortran/lib/python/compare_pkgs.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -0,0 +1,69 @@ +#!/opt/csw/bin/python2.6 +# coding=utf-8 +# vim:set sw=2 ts=2 sts=2 expandtab: +# +# Copyright (c) 2009 Maciej Blizi?ski +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License version 2 as published by the +# Free Software Foundation. + +"""Compares the contents of two svr4 packages. + +The needed opencsw.py library is now at: +https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2/lib/python/ + +$Id: compare_pkgs.py 124 2010-02-18 07:28:10Z wahwah $ +""" + +import logging +import optparse +import opencsw + +USAGE = """Compares two packages with the same catalogname. + +To use, place packages (say, foo-1.0,REV=1898.09.25-SunOS5.9-sparc-CSW.pkg.gz +and foo-1.0.1,REV=2010.09.25-SunOS5.9-sparc-CSW.pkg.gz) in two directories +(say, /a and /b), and issue: + + comparepkg --package-dir-a /a --package-dir-b /b --catalog-name foo +""" + +def main(): + parser = optparse.OptionParser(USAGE) + parser.add_option("-d", "--debug", dest="debug", + default=False, action="store_true") + parser.add_option("-a", "--package-dir-a", dest="package_dir_a", + help="Package directory A") + parser.add_option("-b", "--package-dir-b", dest="package_dir_b", + help="Package directory B") + parser.add_option("-c", "--catalog-name", dest="catalog_name", + help="Catalog name, for example 'cups'") + parser.add_option("-p", "--permissions", dest="permissions", + help="Whether to analyze permission bits", + default=False, action="store_true") + parser.add_option("", "--strip-a", dest="strip_a", + help="Strip from paths in a") + parser.add_option("", "--strip-b", dest="strip_b", + help="Strip from paths in b") + (options, args) = parser.parse_args() + if options.debug: + current_logging_level = logging.DEBUG + else: + current_logging_level = logging.INFO + logging.basicConfig(level=current_logging_level) + pkg_dir_a = opencsw.StagingDir(options.package_dir_a) + pkg_dir_b = opencsw.StagingDir(options.package_dir_b) + pkg_path_a = pkg_dir_a.GetLatest(options.catalog_name)[-1] + pkg_path_b = pkg_dir_b.GetLatest(options.catalog_name)[-1] + pc = opencsw.PackageComparator( + pkg_path_a, + pkg_path_b, + permissions=options.permissions, + strip_a=options.strip_a, + strip_b=options.strip_b) + pc.Run() + + +if __name__ == '__main__': + main() Copied: csw/mgar/gar/v2-fortran/lib/python/compare_pkgs_test.py (from rev 11763, csw/mgar/gar/v2/lib/python/compare_pkgs_test.py) =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/compare_pkgs_test.py (rev 0) +++ csw/mgar/gar/v2-fortran/lib/python/compare_pkgs_test.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -0,0 +1,66 @@ +#!/opt/csw/bin/python2.6 +# coding=utf-8 +# vim:set sw=2 ts=2 sts=2 expandtab: + +""" +The needed opencsw.py library is now at: +https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2/lib/python/ + +$Id: compare_pkgs_test.py 124 2010-02-18 07:28:10Z wahwah $ +""" + +import unittest +import compare_pkgs as cpkg +import opencsw + +PKGMAP_1 = """: 1 4407 +1 f none /etc/init.d/cswvncserver 0744 root sys 1152 21257 1048192898 +1 s none /etc/rc0.d/K36cswvncserver=../init.d/cswvncserver +1 s none /etc/rc1.d/K36cswvncserver=../init.d/cswvncserver +1 s none /etc/rc2.d/K36cswvncserver=../init.d/cswvncserver +1 s none /etc/rc3.d/S92cswvncserver=../init.d/cswvncserver +1 s none /etc/rcS.d/K36cswvncserver=../init.d/cswvncserver +1 d none /opt/csw/bin 0755 root bin +1 f none /opt/csw/bin/Xvnc 0755 root bin 1723040 56599 1048192381 +1 f none /opt/csw/bin/vncconnect 0755 root bin 5692 56567 1048192381 +1 f none /opt/csw/bin/vncpasswd 0755 root bin 15828 10990 1048192381 +1 d none /opt/csw/etc 0755 root bin +1 d none /opt/csw/share 0755 root bin +1 d none /opt/csw/share/man 0755 root bin +1 d none /opt/csw/share/man/man1 0755 root bin +1 f none /opt/csw/share/man/man1/Xvnc.1 0644 root bin 6000 15243 1028731374 +1 f none /opt/csw/share/man/man1/vncconnect.1 0644 root bin 1082 26168 1028731541 +1 f none /opt/csw/share/man/man1/vncpasswd.1 0644 root bin 2812 53713 1042812886 +1 f none /opt/csw/share/man/man1/vncserver.1 0644 root bin 3070 7365 1028731541 +1 d none /opt/csw/share/vnc 0755 root bin +1 d none /opt/csw/share/vnc/classes 0755 root bin +1 f none /opt/csw/share/vnc/classes/AuthPanel.class 0644 root bin 2458 21987 1048192130 +1 f none /opt/csw/share/vnc/classes/ButtonPanel.class 0644 root bin 3044 1240 1048192130 +1 f none /opt/csw/share/vnc/classes/ClipboardFrame.class 0644 root bin 2595 24223 1048192130 +1 f none /opt/csw/share/vnc/classes/DesCipher.class 0644 root bin 12745 33616 1048192130 +1 f none /opt/csw/share/vnc/classes/OptionsFrame.class 0644 root bin 6908 39588 1048192130 +1 f none /opt/csw/share/vnc/classes/RecordingFrame.class 0644 root bin 6101 7175 1048192130 +1 f none /opt/csw/share/vnc/classes/ReloginPanel.class 0644 root bin 1405 22871 1048192130 +1 f none /opt/csw/share/vnc/classes/RfbProto.class 0644 root bin 14186 29040 1048192130 +1 f none /opt/csw/share/vnc/classes/SessionRecorder.class 0644 root bin 2654 62139 1048192130 +1 f none /opt/csw/share/vnc/classes/SocketFactory.class 0644 root bin 342 23575 1048192130 +1 f none /opt/csw/share/vnc/classes/VncCanvas.class 0644 root bin 20927 18690 1048192130 +1 f none /opt/csw/share/vnc/classes/VncViewer.class 0644 root bin 13795 52263 1048192130 +1 f none /opt/csw/share/vnc/classes/VncViewer.jar 0644 root bin 47606 63577 1048192130 +1 f none /opt/csw/share/vnc/classes/index.vnc 0644 root bin 846 592 1048192130 +1 f none /opt/csw/share/vnc/vncserver.bin 0755 root bin 15190 2021 1048192092 +1 f none /opt/csw/share/vnc/vncservers.etc 0644 root sys 698 58245 1048192098 +1 i copyright 18000 30145 1048191525 +1 i depend 454 38987 1051394941 +1 i pkginfo 363 30834 1219230102 +1 i postinstall 827 2423 1048191525 +""" + +class PkgmapTest(unittest.TestCase): + + def testPkgmap1(self): + lines = PKGMAP_1.splitlines() + p1 = opencsw.Pkgmap(lines) + +if __name__ == '__main__': + unittest.main() Copied: csw/mgar/gar/v2-fortran/lib/python/database.py (from rev 11763, csw/mgar/gar/v2/lib/python/database.py) =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/database.py (rev 0) +++ csw/mgar/gar/v2-fortran/lib/python/database.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -0,0 +1,57 @@ +import socket +import os +import sqlobject +import models as m + +DB_SCHEMA_VERSION = 5L + + +class DatabaseClient(object): + + CHECKPKG_DIR = ".checkpkg" + SQLITE3_DBNAME_TMPL = "checkpkg-db-%(fqdn)s" + TABLES_THAT_NEED_UPDATES = (m.CswFile,) + TABLES = TABLES_THAT_NEED_UPDATES + ( + m.Pkginst, + m.CswConfig, + m.Srv4FileStats, + m.CheckpkgOverride, + m.CheckpkgErrorTag, + m.Architecture, + m.OsRelease, + m.Maintainer) + sqo_conn = None + db_path = None + + def __init__(self, debug=False): + self.debug = debug + + @classmethod + def GetDatabasePath(cls): + if not cls.db_path: + dbname_dict = {'fqdn': socket.getfqdn()} + db_filename = cls.SQLITE3_DBNAME_TMPL % dbname_dict + home_dir = os.environ["HOME"] + cls.db_path = os.path.join(home_dir, cls.CHECKPKG_DIR, db_filename) + return cls.db_path + + @classmethod + def InitializeSqlobject(cls): + """Establishes a database connection and stores it as a class member. + + The idea is to share the database connection between instances. It would + be solved even better if the connection was passed to the class + constructor. + """ + if not cls.sqo_conn: + db_path = cls.GetDatabasePath() + cls.sqo_conn = sqlobject.connectionForURI('sqlite:%s' % db_path) + sqlobject.sqlhub.processConnection = cls.sqo_conn + + def CreateTables(self): + for table in self.TABLES: + table.createTable(ifNotExists=True) + + def IsDatabaseGoodSchema(self): + good_version = self.GetDatabaseSchemaVersion() >= DB_SCHEMA_VERSION + return good_version Modified: csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -14,6 +14,9 @@ "Please use /opt/csw/mysql5/..."), ("/opt/csw/lib/mysql", "libmysqlclient.so.15", "Please use /opt/csw/mysql5/..."), + ("/opt/csw/lib", "libnet.so", + "Please use -L/opt/csw/lib/libnet-new for linking. " + "See more at http://wiki.opencsw.org/project-libnet"), ) DLOPEN_LIB_LOCATIONS = ( @@ -26,6 +29,7 @@ (r".*\.py$", (u"CSWpython",)), (r".*\.rb$", (u"CSWruby",)), (r".*\.elc?$", (u"CSWemacscommon",)), + (r"/opt/csw/apache2/", (u"CSWapache2",)), ) PREFERRED_DIRECTORY_PROVIDERS = set([u"CSWcommon"]) Modified: csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -5,7 +5,7 @@ import mox import unittest import pprint -import dependency_checks as depchecks +import dependency_checks from testdata import stubs from testdata.tree_stats import pkgstats as tree_stats from testdata.sudo_stats import pkgstats as sudo_stats @@ -26,7 +26,7 @@ logger_stub = stubs.LoggerStub() self.assertEqual( expected, - depchecks.GetPkgByFullPath(self.error_mgr_mock, + dependency_checks.GetPkgByFullPath(self.error_mgr_mock, logger_stub, path_list, pkg_by_path)) @@ -54,7 +54,7 @@ '/opt/csw/lib/libfoo.so.1': ['CSWbar']} self.assertEqual( expected, - depchecks.GetPkgByFullPath(self.error_mgr_mock, + dependency_checks.GetPkgByFullPath(self.error_mgr_mock, logger_stub, paths_to_verify, pkg_by_path)) @@ -156,7 +156,7 @@ u'CSWlibxft2', u'CSWpango', u'CSWgtk2', u'CSWpkgutil'], '/opt/csw/share/man/man1': ['CSWtree'], '/opt/csw/share/man/man1/tree.1': ['CSWtree']} - result = depchecks.ByDirectory(self.pkg_data, + result = dependency_checks.ByDirectory(self.pkg_data, self.error_mgr_mock, self.logger_stub, self.messenger_stub, @@ -182,7 +182,7 @@ '/opt/csw/share/man': [u'CSWcommon', u'CSWgnuplot'], '/opt/csw/share/man/man1': ['CSWtree'], '/opt/csw/share/man/man1/tree.1': ['CSWtree']} - result = depchecks.ByDirectory(self.pkg_data, + result = dependency_checks.ByDirectory(self.pkg_data, self.error_mgr_mock, self.logger_stub, self.messenger_stub, @@ -220,7 +220,7 @@ '/opt/csw/share/man': [u'CSWcommon', u'CSWgnuplot'], '/opt/csw/share/man/man1': ['CSWtree'], '/opt/csw/share/man/man1/tree.1': ['CSWtree']} - result = depchecks.Libraries(self.pkg_data, + result = dependency_checks.Libraries(self.pkg_data, self.error_mgr_mock, self.logger_stub, self.messenger_stub, @@ -290,9 +290,9 @@ [(u'SUNWlibC', u'provides /usr/lib/libCstd.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], [(u'SUNWlibC', u'provides /usr/lib/libCrun.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')]] - # pkg_by_path is not important for depchecks.Libraries. + # pkg_by_path is not important for dependency_checks.Libraries. pkg_by_path = {} - result = depchecks.Libraries(self.pkg_data, + result = dependency_checks.Libraries(self.pkg_data, self.error_mgr_mock, self.logger_stub, self.messenger_stub, @@ -310,7 +310,7 @@ ] declared_deps = set([u"CSWfoo2"]) expected = [[u"CSWbar"]] - result = depchecks.MissingDepsFromReasonGroups( + result = dependency_checks.MissingDepsFromReasonGroups( reason_groups, declared_deps) self.assertEqual(result, expected) @@ -328,7 +328,29 @@ def testOne(self): pass + def testByFilename(self): + self.pkg_data = tree_stats[0] + self.pkg_data["pkgmap"] = [ + {'class': 'none', + 'line': 'not important', + 'mode': '0755', + 'path': '/opt/csw/apache2/bin/foo', + 'type': 'f', + 'group': 'bin', + 'user': 'root'}] + self.mocker.ReplayAll() + result = dependency_checks.ByFilename( + self.pkg_data, + self.error_mgr_mock, + self.logger_stub, + self.messenger_stub, + None, None) + self.mocker.VerifyAll() + expected = [[ + (u'CSWapache2', + "found file(s) matching /opt/csw/apache2/, " + "e.g. '/opt/csw/apache2/bin/foo'")]] + self.assertEqual(expected, result) - if __name__ == '__main__': unittest.main() Copied: csw/mgar/gar/v2-fortran/lib/python/inspective_package.py (from rev 11763, csw/mgar/gar/v2/lib/python/inspective_package.py) =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/inspective_package.py (rev 0) +++ csw/mgar/gar/v2-fortran/lib/python/inspective_package.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -0,0 +1,146 @@ +import package +import os +import re +import logging +import hachoir_parser as hp +import sharedlib_utils +import magic + +"""This file isolates code dependent on hachoir parser. + +hachoir parser takes quite a while to import. +""" + +# Suppress unhelpful warnings +# http://bitbucket.org/haypo/hachoir/issue/23 +import hachoir_core.config +hachoir_core.config.quiet = True + +class InspectivePackage(package.DirectoryFormatPackage): + """Extends DirectoryFormatPackage to allow package inspection.""" + + def GetFilesMetadata(self): + """Returns a data structure with all the files plus their metadata. + + [ + { + "path": ..., + "mime_type": ..., + }, + ] + """ + if not self.files_metadata: + self.CheckPkgpathExists() + self.files_metadata = [] + files_root = os.path.join(self.directory, "root") + if not os.path.exists(files_root): + return self.files_metadata + all_files = self.GetAllFilePaths() + def StripRe(x, strip_re): + return re.sub(strip_re, "", x) + root_re = re.compile(r"^root/") + file_magic = FileMagic() + for file_path in all_files: + full_path = unicode(self.MakeAbsolutePath(file_path)) + file_info = { + "path": StripRe(file_path, root_re), + "mime_type": file_magic.GetFileMimeType(full_path) + } + if not file_info["mime_type"]: + logging.error("Could not establish the mime type of %s", + full_path) + # We really don't want that, as it misses binaries. + raise package.PackageError("Could not establish the mime type of %s" + % full_path) + if sharedlib_utils.IsBinary(file_info): + parser = hp.createParser(full_path) + if not parser: + logging.warning("Can't parse file %s", file_path) + else: + file_info["mime_type_by_hachoir"] = parser.mime_type + machine_id = parser["/header/machine"].value + file_info["machine_id"] = machine_id + file_info["endian"] = parser["/header/endian"].display + self.files_metadata.append(file_info) + return self.files_metadata + + def ListBinaries(self): + """Lists all the binaries from a given package. + + Original checkpkg code: + + ######################################### + # find all executables and dynamic libs,and list their filenames. + listbinaries() { + if [ ! -d $1 ] ; then + print errmsg $1 not a directory + rm -rf $EXTRACTDIR + exit 1 + fi + find $1 -print | xargs file |grep ELF |nawk -F: '{print $1}' + } + + Returns a list of absolute paths. + + Now that there are files_metadata, this function can safely go away, once + all its callers are modified to use files_metadata instead. + """ + if self.binaries is None: + self.CheckPkgpathExists() + files_metadata = self.GetFilesMetadata() + self.binaries = [] + # The nested for-loop looks inefficient. + for file_info in files_metadata: + if sharedlib_utils.IsBinary(file_info): + self.binaries.append(file_info["path"]) + self.binaries.sort() + return self.binaries + + +class FileMagic(object): + """Libmagic sometimes returns None, which I think is a bug. + Trying to come up with a way to work around that. It might not even be + very helpful, but at least detects the issue and tries to work around it. + """ + + def __init__(self): + self.cookie_count = 0 + self.magic_cookie = None + + def _GetCookie(self): + magic_cookie = magic.open(self.cookie_count) + self.cookie_count += 1 + magic_cookie.load() + magic_cookie.setflags(magic.MAGIC_MIME) + return magic_cookie + + def _LazyInit(self): + if not self.magic_cookie: + self.magic_cookie = self._GetCookie() + + def GetFileMimeType(self, full_path): + """Trying to run magic.file() a few times, not accepting None.""" + self._LazyInit() + mime = None + for i in xrange(10): + mime = self.magic_cookie.file(full_path) + if mime: + break; + else: + # Returned mime is null. Re-initializing the cookie and trying again. + logging.error("magic_cookie.file(%s) returned None. Retrying.", + full_path) + self.magic_cookie = self._GetCookie() + return mime + + +class InspectiveCswSrv4File(package.CswSrv4File): + """Allows to get the inspective version of the dir format pkg.""" + + # The presence of this method makes it explicit that we want an inspective + # version of the directory format package. + def GetInspectivePkg(self): + return self.GetDirFormatPkg() + + def GetDirFormatClass(self): + return InspectivePackage Modified: csw/mgar/gar/v2-fortran/lib/python/opencsw.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/opencsw.py 2010-12-02 14:09:06 UTC (rev 11763) +++ csw/mgar/gar/v2-fortran/lib/python/opencsw.py 2010-12-02 17:46:17 UTC (rev 11764) @@ -14,28 +14,15 @@ import copy import datetime -import difflib -import hachoir_parser as hp -import hashlib -import magic import logging import os import os.path import re import shutil -import subprocess -import tempfile -import time import urllib2 -import overrides -import configuration as c from Cheetah import Template +import sharedlib_utils as su -# Suppress unhelpful warnings -# http://bitbucket.org/haypo/hachoir/issue/23 -import hachoir_core.config -hachoir_core.config.quiet = True - ARCH_SPARC = "sparc" ARCH_i386 = "i386" ARCH_ALL = "all" @@ -51,28 +38,7 @@ REVISION_ADDED = "revision number added" PKG_URL_TMPL = "http://www.opencsw.org/packages/%s" CATALOG_URL = "http://mirror.opencsw.org/opencsw/current/i386/5.10/catalog" -BIN_MIMETYPES = ( - 'application/x-executable', - 'application/x-sharedlib', -) -ADMIN_FILE_CONTENT = """ -basedir=default -runlevel=nocheck -conflict=nocheck -setuid=nocheck -action=nocheck -partial=nocheck -instance=unique -idepend=quit -rdepend=quit -space=quit -authentication=nocheck -networktimeout=10 -networkretries=5 -keystore=/var/sadm/security -proxy= -""" - +KNOWN_PKGNAME_PREFIXES = ["SUNW", "FJSV", "CSW"] SUBMITPKG_TMPL = """From: $from To: $to #if $cc @@ -108,10 +74,6 @@ pass -class CatalogLineParseError(Error): - pass - - def ParsePackageFileName(p): if p.endswith(".gz"): p = p[:-3] @@ -137,6 +99,32 @@ } return data + +def ComposeVersionString(version, revision_info): + if revision_info: + version += "," + rev_lst = [] + for key in sorted(revision_info.keys()): + rev_lst.append("%s=%s" % (key, revision_info[key])) + version += "_".join(rev_lst) + return version + + +def ComposePackageFileName(parsed_filename): + """Composes package name, based on a parsed filename data structure. + + Does not use the version_string property, but builds the version from + the basic version plus revision info. + """ + tmpl = "%(catalogname)s-%(new_version)s-%(osrel)s-%(arch)s-%(vendortag)s.pkg" + version_string = parsed_filename["version"] + revision_info = parsed_filename["revision_info"] + version_string = ComposeVersionString(version_string, revision_info) + new_data = copy.copy(parsed_filename) + new_data["new_version"] = version_string + return tmpl % new_data + + def ParseVersionString(s): version_bits = re.split("_|,", s) version_str = version_bits[0] @@ -157,6 +145,10 @@ if not "extra_strings" in revision_info: revision_info["extra_strings"] = [] revision_info["extra_strings"].append(version_bit) + # Bits of parsed version must be hashable; especially extra_strings in + # revision_info. + if "extra_strings" in revision_info: + revision_info["extra_strings"] = tuple(revision_info["extra_strings"]) return version_str, version_info, revision_info @@ -407,183 +399,6 @@ return editor -class ShellMixin(object): - - def ShellCommand(self, args, quiet=False): - logging.debug("Calling: %s", repr(args)) - if quiet: - process = subprocess.Popen(args, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - stdout, stderr = process.communicate() - retcode = process.wait() - else: - retcode = subprocess.call(args) - if retcode: - raise Error("Running %s has failed." % repr(args)) - return retcode - - -class CswSrv4File(ShellMixin, object): - """Represents a package in the srv4 format (pkg).""" - - def __init__(self, pkg_path, debug=False): - self.pkg_path = pkg_path - self.workdir = None - self.gunzipped_path = None - self.transformed = False - self.dir_format_pkg = None - self.debug = debug - self.pkgname = None - self.md5sum = None - self.mtime = None - - def __repr__(self): - return u"CswSrv4File(%s)" % repr(self.pkg_path) - - def GetWorkDir(self): - if not self.workdir: - self.workdir = tempfile.mkdtemp(prefix="pkg_") - fd = open(os.path.join(self.workdir, "admin"), "w") - fd.write(ADMIN_FILE_CONTENT) - fd.close() - return self.workdir - - def GetAdminFilePath(self): - return os.path.join(self.GetWorkDir(), "admin") - - def GetGunzippedPath(self): - if not self.gunzipped_path: - gzip_suffix = ".gz" - pkg_suffix = ".pkg" - if self.pkg_path.endswith("%s%s" % (pkg_suffix, gzip_suffix)): - # Causing the class to stat the .gz file. This call throws away the - # result, but the result will be cached as a class instance member. - self.GetMtime() - base_name_gz = os.path.split(self.pkg_path)[1] - shutil.copy(self.pkg_path, self.GetWorkDir()) - self.pkg_path = os.path.join(self.GetWorkDir(), base_name_gz) - args = ["gunzip", "-f", self.pkg_path] - unused_retcode = self.ShellCommand(args) - self.gunzipped_path = self.pkg_path[:(-len(gzip_suffix))] - elif self.pkg_path.endswith(pkg_suffix): - self.gunzipped_path = self.pkg_path - else: - raise Error("The file name should end in either " - "%s or %s." % (gzip_suffix, pkg_suffix)) - return self.gunzipped_path - - def Pkgtrans(self, src_file, destdir, pkgname): - """A proxy for the pkgtrans command. - - This requires custom-pkgtrans to be available. - """ - if not os.path.isdir(destdir): - raise PackageError("%s doesn't exist or is not a directory" % destdir) - args = [os.path.join(os.path.dirname(__file__), "custom-pkgtrans"), - src_file, - destdir, - pkgname ] - pkgtrans_proc = subprocess.Popen(args, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - stdout, stderr = pkgtrans_proc.communicate() - ret = pkgtrans_proc.wait() - if ret: - logging.error(stdout) - logging.error(stderr) - logging.error("% has failed" % args) - - def GetPkgname(self): - """It's necessary to figure out the pkgname from the .pkg file. - # nawk 'NR == 2 {print $1; exit;} $f - """ - if not self.pkgname: - gunzipped_path = self.GetGunzippedPath() - args = ["nawk", "NR == 2 {print $1; exit;}", gunzipped_path] - nawk_proc = subprocess.Popen(args, stdout=subprocess.PIPE) - stdout, stderr = nawk_proc.communicate() - ret_code = nawk_proc.wait() - self.pkgname = stdout.strip() - logging.debug("GetPkgname(): %s", repr(self.pkgname)) - return self.pkgname - - def GetMtime(self): - if not self.mtime: - # This fails if the file is not there. - s = os.stat(self.pkg_path) - t = time.gmtime(s.st_mtime) - self.mtime = datetime.datetime(*t[:6]) - return self.mtime - - def TransformToDir(self): - """Transforms the file to the directory format. - - This uses the Pkgtrans function at the top, because pkgtrans behaves - differently on Solaris 8 and 10. Having our own implementation helps - achieve consistent behavior. - """ - if not self.transformed: - gunzipped_path = self.GetGunzippedPath() - pkgname = self.GetPkgname() - args = [os.path.join(os.path.dirname(__file__), - "..", "..", "bin", "custom-pkgtrans"), - gunzipped_path, self.GetWorkDir(), pkgname] - logging.debug("transforming: %s", args) - unused_retcode = self.ShellCommand(args, quiet=(not self.debug)) - dirs = self.GetDirs() - if len(dirs) != 1: - raise Error("Need exactly one package in the package stream: " - "%s." % (dirs)) - self.dir_format_pkg = DirectoryFormatPackage(dirs[0]) - self.transformed = True - - def GetDirFormatPkg(self): - self.TransformToDir() - return self.dir_format_pkg - - def GetDirs(self): - paths = os.listdir(self.GetWorkDir()) - dirs = [] - for p in paths: - abspath = os.path.join(self.GetWorkDir(), p) - if os.path.isdir(abspath): - dirs.append(abspath) - return dirs - - def GetPkgmap(self, analyze_permissions, strip=None): - dir_format_pkg = self.GetDirFormatPkg() - return dir_format_pkg.GetPkgmap(analyze_permissions, strip) - - def GetMd5sum(self): - if not self.md5sum: - logging.debug("GetMd5sum() reading file %s", repr(self.pkg_path)) - fp = open(self.pkg_path) - hash = hashlib.md5() - hash.update(fp.read()) - fp.close() - self.md5sum = hash.hexdigest() - return self.md5sum - - def GetPkgchkOutput(self): - """Returns: (exit code, stdout, stderr).""" - args = ["pkgchk", "-d", self.GetGunzippedPath(), "all"] - pkgchk_proc = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - stdout, stderr = pkgchk_proc.communicate() - ret = pkgchk_proc.wait() - return ret, stdout, stderr - - def GetFileMtime(self): - if not self.mtime: - self.mtime = os.stat(self.pkg_path).st_mtime - return self.mtime - - def __del__(self): - if self.workdir: - logging.debug("Removing %s", repr(self.workdir)) - shutil.rmtree(self.workdir) - - def ParsePkginfo(lines): """Parses a pkginfo data.""" d = {} @@ -608,10 +423,9 @@ SUNWbashS --> sunw_bash_s SUNWPython --> sunw_python - Incomprehensible, but unit tested! + This function is incomprehensible, but unit tested! """ - known_prefixes = ["SUNW", "FJSV", "CSW"] - for prefix in known_prefixes: + for prefix in KNOWN_PKGNAME_PREFIXES: if pkgname.startswith(prefix): unused, tmp_prefix, the_rest = pkgname.partition(prefix) pkgname = tmp_prefix + "_" + the_rest @@ -640,12 +454,7 @@ catalogname_list = copy.copy(catalogname_list) if len(catalogname_list) == 1: return catalogname_list[0] - current_substring = catalogname_list.pop() - while catalogname_list and current_substring: - substring_set = LongestCommonSubstring(current_substring, - catalogname_list.pop()) - if substring_set: - current_substring = list(substring_set)[0] + current_substring = su.CollectionLongestCommonSubstring(catalogname_list) # If it's something like foo_, make it foo. while current_substring and not current_substring[-1].isalnum(): current_substring = current_substring[:-1] @@ -654,27 +463,6 @@ return "various packages" -def LongestCommonSubstring(S, T): - """Stolen from Wikibooks - - http://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Longest_common_substring#Python""" - m = len(S); n = len(T) - L = [[0] * (n+1) for i in xrange(m+1)] - LCS = set() - longest = 0 - for i in xrange(m): - for j in xrange(n): - if S[i] == T[j]: - v = L[i][j] + 1 - L[i+1][j+1] = v - if v > longest: - longest = v - LCS = set() - if v == longest: - LCS.add(S[i-v+1:i+1]) - return LCS - - def PkginfoToSrv4Name(pkginfo_dict): SRV4_FN_TMPL = "%(catalog_name)s-%(version)s-%(osver)s-%(arch)s-%(tag)s.pkg" fn_data = {} @@ -689,304 +477,6 @@ return SRV4_FN_TMPL % fn_data -class DirectoryFormatPackage(ShellMixin, object): - """Represents a package in the directory format. - - Allows some read-write operations. - """ - def __init__(self, directory): - self.directory = directory - self.pkgname = os.path.basename(directory) - self.pkgpath = self.directory - self.pkginfo_dict = None - self.binaries = None - self.file_paths = None - self.files_metadata = None - - def GetCatalogname(self): - """Returns the catalog name of the package. - - A bit hacky. Looks for the first word of the NAME field in the package. - """ - pkginfo = self.GetParsedPkginfo() - words = re.split(c.WS_RE, pkginfo["NAME"]) - return words[0] - - def GetParsedPkginfo(self): - if not self.pkginfo_dict: - pkginfo_fd = open(self.GetPkginfoFilename(), "r") - self.pkginfo_dict = ParsePkginfo(pkginfo_fd) - pkginfo_fd.close() - return self.pkginfo_dict - - def GetSrv4FileName(self): - """Guesses the Srv4FileName based on the package directory contents.""" - return PkginfoToSrv4Name(self.GetParsedPkginfo()) - - def ToSrv4(self, target_dir): - target_file_name = self.GetSrv4FileName() - target_path = os.path.join(target_dir, target_file_name) - if os.path.exists(target_path): - return target_path - pkg_container_dir, pkg_dir = os.path.split(self.directory) - if not os.path.isdir(target_dir): - os.makedirs(target_dir) - args = ["pkgtrans", "-s", pkg_container_dir, target_path, pkg_dir] - self.ShellCommand(args, quiet=True) - args = ["gzip", "-f", target_path] - self.ShellCommand(args, quiet=True) - return target_path - - def GetPkgmap(self, analyze_permissions=False, strip=None): - fd = open(os.path.join(self.directory, "pkgmap"), "r") - return Pkgmap(fd, analyze_permissions, strip) - - def SetPkginfoEntry(self, key, value): - pkginfo = self.GetParsedPkginfo() - logging.debug("Setting %s to %s", repr(key), repr(value)) - pkginfo[key] = value - self.WritePkginfo(pkginfo) - pkgmap_path = os.path.join(self.directory, "pkgmap") - pkgmap_fd = open(pkgmap_path, "r") - new_pkgmap_lines = [] - pkginfo_re = re.compile("1 i pkginfo") - ws_re = re.compile(r"\s+") - for line in pkgmap_fd: - if pkginfo_re.search(line): - fields = ws_re.split(line) - # 3: size - # 4: sum - pkginfo_path = os.path.join(self.directory, "pkginfo") - args = ["cksum", pkginfo_path] - cksum_process = subprocess.Popen(args, stdout=subprocess.PIPE) - stdout, stderr = cksum_process.communicate() - cksum_process.wait() - size = ws_re.split(stdout)[1] - args = ["sum", pkginfo_path] - sum_process = subprocess.Popen(args, stdout=subprocess.PIPE) - stdout, stderr = sum_process.communicate() - sum_process.wait() - sum_value = ws_re.split(stdout)[0] - fields[3] = size - fields[4] = sum_value - logging.debug("New pkgmap line: %s", fields) - line = " ".join(fields) - new_pkgmap_lines.append(line.strip()) - pkgmap_fd.close() - # Write that back - pkgmap_path_new = pkgmap_path + ".new" - logging.debug("Writing back to %s", pkgmap_path_new) - pkgmap_fd = open(pkgmap_path_new, "w") - pkgmap_fd.write("\n".join(new_pkgmap_lines)) - pkgmap_fd.close() - shutil.move(pkgmap_path_new, pkgmap_path) - - # TODO(maciej): Need to update the relevant line on pkgmap too - - def GetPkginfoFilename(self): - return os.path.join(self.directory, "pkginfo") - - def WritePkginfo(self, pkginfo_dict): - # Some packages extract read-only. To be sure, change them to be - # user-writable. - args = ["chmod", "-R", "u+w", self.directory] - self.ShellCommand(args) - pkginfo_filename = self.GetPkginfoFilename() - os.chmod(pkginfo_filename, 0644) - pkginfo_fd = open(pkginfo_filename, "w") - pkginfo_dict = self.GetParsedPkginfo() - for k, v in pkginfo_dict.items(): - pkginfo_fd.write("%s=%s\n" % (k, pkginfo_dict[k])) - pkginfo_fd.close() - - def ResetNameProperty(self): - """Sometimes, NAME= contains useless data. This method resets them.""" - pkginfo_dict = self.GetParsedPkginfo() - catalog_name = PkgnameToCatName(pkginfo_dict["PKG"]) - description = pkginfo_dict["DESC"] - pkginfo_name = "%s - %s" % (catalog_name, description) - self.SetPkginfoEntry("NAME", pkginfo_name) - - def GetDependencies(self): - depends = [] - depend_file_path = os.path.join(self.directory, "install", "depend") - if not os.path.exists(depend_file_path): - return depends - fd = open(os.path.join(self.directory, "install", "depend"), "r") - # It needs to be a list because there might be duplicates and it's - # necessary to carry that information. - for line in fd: - fields = re.split(c.WS_RE, line) - if fields[0] == "P": - pkgname = fields[1] - pkg_desc = " ".join(fields[1:]) - depends.append((pkgname, pkg_desc)) - fd.close() - return depends - - def CheckPkgpathExists(self): - if not os.path.isdir(self.directory): - raise PackageError("%s does not exist or is not a directory" - % self.directory) - - def GetFilesMetadata(self): - """Returns a data structure with all the files plus their metadata. - - [ - { - "path": ..., - "mime_type": ..., - }, - ] - """ - if not self.files_metadata: - self.CheckPkgpathExists() - self.files_metadata = [] - files_root = os.path.join(self.directory, "root") - if not os.path.exists(files_root): - return self.files_metadata - all_files = self.GetAllFilePaths() - def StripRe(x, strip_re): - return re.sub(strip_re, "", x) - root_re = re.compile(r"^root/") - file_magic = FileMagic() - for file_path in all_files: - full_path = unicode(self.MakeAbsolutePath(file_path)) - file_info = { - "path": StripRe(file_path, root_re), - "mime_type": file_magic.GetFileMimeType(full_path) - } - if not file_info["mime_type"]: - logging.error("Could not establish the mime type of %s", - full_path) - # We really don't want that, as it misses binaries. - raise PackageError("Could not establish the mime type of %s" - % full_path) - if IsBinary(file_info): - parser = hp.createParser(full_path) - if not parser: - logging.warning("Can't parse file %s", file_path) - else: - file_info["mime_type_by_hachoir"] = parser.mime_type - machine_id = parser["/header/machine"].value - file_info["machine_id"] = machine_id - file_info["endian"] = parser["/header/endian"].display - self.files_metadata.append(file_info) @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Thu Dec 2 22:12:40 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Thu, 02 Dec 2010 21:12:40 +0000 Subject: [csw-devel] SF.net SVN: gar:[11765] csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile Message-ID: Revision: 11765 http://gar.svn.sourceforge.net/gar/?rev=11765&view=rev Author: gadavis Date: 2010-12-02 21:12:39 +0000 (Thu, 02 Dec 2010) Log Message: ----------- 64-bit Sparcv9 build works now Modified Paths: -------------- csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile Modified: csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile =================================================================== --- csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile 2010-12-02 17:46:17 UTC (rev 11764) +++ csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile 2010-12-02 21:12:39 UTC (rev 11765) @@ -27,16 +27,17 @@ ## Test args need to be the same otherwise various tests don't link TEST_ARGS = $(BUILD_ARGS) -## Originally, non-redistributable libs in /opt/SUNWspro. Fixed as of late, try with studio again? GARCOMPILER = GCC4 -CONFIGURE_ENV = F77=$(F77) FC=$(FC) CC=$(CC) CXX=$(CXX) ## Attempt to fix problem with configure not finding libgfortran.so.3 when ## compiling with GCC4 CONFIGURE_ENV += LD_LIBRARY_PATH=/opt/csw/gcc4/lib/$(MM_LIBDIR) CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += F77=$(F77) FC=$(FC) CC=$(CC) CXX=$(CXX) +CONFIGURE_ARGS += CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" FFLAGS="$(FFLAGS)" FCFLAGS="$(FCFLAGS)" CONFIGURE_ARGS += --enable-netcdf-4 -## DAP is disabled due to bugs on Sparc Solaris 9 GCC4. Bug filed with UCAR +## DAP is disabled due to bugs on Sparc Solaris 9 GCC4. Bug filed with UCAR: +## netCDF #ARO-502165 #CONFIGURE_ARGS += --enable-dap CONFIGURE_ARGS += --disable-dap CONFIGURE_ARGS += --enable-ncgen4 @@ -49,8 +50,7 @@ CONFIGURE_ARGS += --with-hdf5=/opt/csw CONFIGURE_ARGS += --with-zlib=/opt/csw -## 64 bit build fails in fortran binding tests -#BUILD64 = 1 +BUILD64 = 1 ## Needed for "Large file support" in NetCDF EXTRA_CPPFLAGS = -D_FILE_OFFSET_BITS=64 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Fri Dec 3 00:54:00 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Thu, 02 Dec 2010 23:54:00 +0000 Subject: [csw-devel] SF.net SVN: gar:[11766] csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile Message-ID: Revision: 11766 http://gar.svn.sourceforge.net/gar/?rev=11766&view=rev Author: gadavis Date: 2010-12-02 23:54:00 +0000 (Thu, 02 Dec 2010) Log Message: ----------- Make checkpkg happy on Sparc Modified Paths: -------------- csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile Modified: csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile =================================================================== --- csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile 2010-12-02 21:12:39 UTC (rev 11765) +++ csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile 2010-12-02 23:54:00 UTC (rev 11766) @@ -11,12 +11,68 @@ DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz LICENSE = COPYRIGHT -RUNTIME_DEP_PKGS = CSWhdf5rt CSWzlib -RUNTIME_DEP_PKGS += CSWgcc4gfortranrt CSWgcc4corert CSWgcc4g++rt -BUILD_DEP_PKGS = $(RUNTIME_DEP_PKGS) CSWtetex +BUILD_DEP_PKGS += CSWhdf5rt CSWzlib +BUILD_DEP_PKGS += CSWgcc4gfortranrt CSWgcc4corert CSWgcc4g++rt +BUILD_DEP_PKGS += CSWtetex BUILD_DEP_PKGS += CSWgcc4gfortran +PACKAGES = CSWnetcdf +CATALOGNAME_CSWnetcdf = netcdf +SPKG_DESC_CSWnetcdf = Machine-independent data formats for array-oriented scientific data +RUNTIME_DEP_PKGS_CSWnetcdf += CSWhdf5rt +RUNTIME_DEP_PKGS_CSWnetcdf += CSWzlib +RUNTIME_DEP_PKGS_CSWnetcdf += CSWlibnetcdf6 + +PACKAGES += CSWlibnetcdf6 +CATALOGNAME_CSWlibnetcdf6 = libnetcf6 +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/libnetcdf.so.6.0.0 +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/libnetcdf.so.6\.[0-9\.]+ +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/libnetcdf.so.6 +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/sparcv9/libnetcdf.so.6.0.0 +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/sparcv9/libnetcdf.so.6\.[0-9\.]+ +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/sparcv9/libnetcdf.so.6 +SPKG_DESC_CSWlibnetcdf6 = Machine-independent data formats for array-oriented scientific data, libnetcdf.so.6 +RUNTIME_DEP_PKGS_CSWlibnetcdf6 = CSWhdf5rt +RUNTIME_DEP_PKGS_CSWlibnetcdf6 += CSWgcc4corert + +PACKAGES += CSWlibnetcdf-c++5 +CATALOGNAME_CSWlibnetcdf-c++5 = libnetcdf_c++5 +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/libnetcdf_c\+\+.so.5.0.0 +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/libnetcdf_c\+\+.so.5\.[0-9\.]+ +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/libnetcdf_c\+\+.so.5 +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so.5.0.0 +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so.5\.[0-9\.]+ +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so.5 +SPKG_DESC_CSWlibnetcdf-c++5 += Machine-independent data formats for array-oriented scientific data, libnetcdf_c++.so.5 +RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 = CSWhdf5rt +RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 += CSWgcc4corert CSWgcc4g++rt +RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 += CSWlibnetcdf6 + +PACKAGES += CSWlibnetcdff5 +CATALOGNAME_CSWlibnetcdff5 = libnetcdff5 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5.0.0 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5\.[0-9\.]+ +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5.0.0 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5\.[0-9\.]+ +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5 +SPKG_DESC_CSWlibnetcdff5 = Machine-independent data formats for array-oriented scientific data, libnetcdff.so.5 +RUNTIME_DEP_PKGS_CSWlibnetcdff5 = CSWhdf5rt +RUNTIME_DEP_PKGS_CSWlibnetcdff5 += CSWgcc4gfortranrt CSWgcc4corert +RUNTIME_DEP_PKGS_CSWlibnetcdff5 += CSWlibnetcdf6 + +PACKAGES += CSWnetcdf-devel +CATALOGNAME_CSWnetcdf-devel = netcdf_devel +SPKG_DESC_CSWnetcdf-devel = Development files for NetCDF +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/libnetcdf.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/libnetcdf_c\+\+.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/libnetcdff.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/sparcv9/libnetcdf.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/sparcv9/libnetcdff.so +PKGFILES_CSWnetcdf-devel += $(PKGFILES_DEVEL) + ## CFLAGS AND LDFLAGS are necessary due to problems with the fortran bindings when ## building 64-bit BUILD_ARGS = CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Fri Dec 3 00:59:11 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Thu, 02 Dec 2010 23:59:11 +0000 Subject: [csw-devel] SF.net SVN: gar:[11767] csw/mgar/pkg/netcdf/trunk Message-ID: Revision: 11767 http://gar.svn.sourceforge.net/gar/?rev=11767&view=rev Author: gadavis Date: 2010-12-02 23:59:11 +0000 (Thu, 02 Dec 2010) Log Message: ----------- NetCDF4 builds on Sparc now (manual merge via copy of branch netcdf-4) Modified Paths: -------------- csw/mgar/pkg/netcdf/trunk/Makefile csw/mgar/pkg/netcdf/trunk/checksums Modified: csw/mgar/pkg/netcdf/trunk/Makefile =================================================================== --- csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-02 23:54:00 UTC (rev 11766) +++ csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-02 23:59:11 UTC (rev 11767) @@ -3,37 +3,114 @@ # $Id$ GARNAME = netcdf -GARVERSION = 3.6.3 +GARVERSION = 4.1.1 CATEGORIES = lib -DESCRIPTION = machine-independent data formats for array-oriented scientific data +DESCRIPTION = Machine-independent data formats for array-oriented scientific data SPKG_SOURCEURL = http://www.unidata.ucar.edu/software/netcdf/ MASTER_SITES = http://www.unidata.ucar.edu/downloads/netcdf/ftp/ DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz LICENSE = COPYRIGHT -RUNTIME_DEP_PKGS = CSWcurlrt CSWhdf5rt CSWgcc3g77rt CSWzlib CSWgcc3corert \ - CSWoldaprt CSWlibcares CSWlibidn CSWgcc3g++rt CSWosslrt -BUILD_DEP_PKGS = $(RUNTIME_DEP_PKGS) CSWtetex CSWgcc3g77 +BUILD_DEP_PKGS += CSWhdf5rt CSWzlib +BUILD_DEP_PKGS += CSWgcc4gfortranrt CSWgcc4corert CSWgcc4g++rt +BUILD_DEP_PKGS += CSWtetex +BUILD_DEP_PKGS += CSWgcc4gfortran + +PACKAGES = CSWnetcdf +CATALOGNAME_CSWnetcdf = netcdf +SPKG_DESC_CSWnetcdf = Machine-independent data formats for array-oriented scientific data +RUNTIME_DEP_PKGS_CSWnetcdf += CSWhdf5rt +RUNTIME_DEP_PKGS_CSWnetcdf += CSWzlib +RUNTIME_DEP_PKGS_CSWnetcdf += CSWlibnetcdf6 + +PACKAGES += CSWlibnetcdf6 +CATALOGNAME_CSWlibnetcdf6 = libnetcf6 +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/libnetcdf.so.6.0.0 +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/libnetcdf.so.6\.[0-9\.]+ +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/libnetcdf.so.6 +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/sparcv9/libnetcdf.so.6.0.0 +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/sparcv9/libnetcdf.so.6\.[0-9\.]+ +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/sparcv9/libnetcdf.so.6 +SPKG_DESC_CSWlibnetcdf6 = Machine-independent data formats for array-oriented scientific data, libnetcdf.so.6 +RUNTIME_DEP_PKGS_CSWlibnetcdf6 = CSWhdf5rt +RUNTIME_DEP_PKGS_CSWlibnetcdf6 += CSWgcc4corert + +PACKAGES += CSWlibnetcdf-c++5 +CATALOGNAME_CSWlibnetcdf-c++5 = libnetcdf_c++5 +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/libnetcdf_c\+\+.so.5.0.0 +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/libnetcdf_c\+\+.so.5\.[0-9\.]+ +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/libnetcdf_c\+\+.so.5 +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so.5.0.0 +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so.5\.[0-9\.]+ +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so.5 +SPKG_DESC_CSWlibnetcdf-c++5 += Machine-independent data formats for array-oriented scientific data, libnetcdf_c++.so.5 +RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 = CSWhdf5rt +RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 += CSWgcc4corert CSWgcc4g++rt +RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 += CSWlibnetcdf6 + +PACKAGES += CSWlibnetcdff5 +CATALOGNAME_CSWlibnetcdff5 = libnetcdff5 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5.0.0 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5\.[0-9\.]+ +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5.0.0 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5\.[0-9\.]+ +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5 +SPKG_DESC_CSWlibnetcdff5 = Machine-independent data formats for array-oriented scientific data, libnetcdff.so.5 +RUNTIME_DEP_PKGS_CSWlibnetcdff5 = CSWhdf5rt +RUNTIME_DEP_PKGS_CSWlibnetcdff5 += CSWgcc4gfortranrt CSWgcc4corert +RUNTIME_DEP_PKGS_CSWlibnetcdff5 += CSWlibnetcdf6 + +PACKAGES += CSWnetcdf-devel +CATALOGNAME_CSWnetcdf-devel = netcdf_devel +SPKG_DESC_CSWnetcdf-devel = Development files for NetCDF +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/libnetcdf.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/libnetcdf_c\+\+.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/libnetcdff.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/sparcv9/libnetcdf.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/sparcv9/libnetcdff.so +PKGFILES_CSWnetcdf-devel += $(PKGFILES_DEVEL) + ## CFLAGS AND LDFLAGS are necessary due to problems with the fortran bindings when ## building 64-bit -BUILD_ARGS = CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" FFLAGS="$(FFLAGS)" FCFLAGS="$(FCFLAGS)" +BUILD_ARGS = CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" +BUILD_ARGS += FFLAGS="$(FFLAGS)" FCFLAGS="$(FCFLAGS)" +## CXXFLAGS are necessary due to the gcc3core_rt problem noted below +BUILD_ARGS += CXXFLAGS="$(CXXFLAGS)" -CONFIGURE_ENV = F77=$(F77) FC=$(FC) CC=$(CC) CXX=$(CXX) -CONFIGURE_ARGS = $(DIRPATHS) \ - --enable-shared \ - --enable-separate-fortran \ - --disable-f90 \ - --enable-docs-install +## Test args need to be the same otherwise various tests don't link +TEST_ARGS = $(BUILD_ARGS) -## 64 bit build fails in fortran binding tests +GARCOMPILER = GCC4 +## Attempt to fix problem with configure not finding libgfortran.so.3 when +## compiling with GCC4 +CONFIGURE_ENV += LD_LIBRARY_PATH=/opt/csw/gcc4/lib/$(MM_LIBDIR) + +CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += F77=$(F77) FC=$(FC) CC=$(CC) CXX=$(CXX) +CONFIGURE_ARGS += CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" FFLAGS="$(FFLAGS)" FCFLAGS="$(FCFLAGS)" +CONFIGURE_ARGS += --enable-netcdf-4 +## DAP is disabled due to bugs on Sparc Solaris 9 GCC4. Bug filed with UCAR: +## netCDF #ARO-502165 +#CONFIGURE_ARGS += --enable-dap +CONFIGURE_ARGS += --disable-dap +CONFIGURE_ARGS += --enable-ncgen4 +CONFIGURE_ARGS += --enable-shared +CONFIGURE_ARGS += --enable-separate-fortran +CONFIGURE_ARGS += --enable-cxx4 +CONFIGURE_ARGS += --enable-docs-install +CONFIGURE_ARGS += --enable-udunits +CONFIGURE_ARGS += --disable-logging +CONFIGURE_ARGS += --with-hdf5=/opt/csw +CONFIGURE_ARGS += --with-zlib=/opt/csw + BUILD64 = 1 ## Needed for "Large file support" in NetCDF EXTRA_CPPFLAGS = -D_FILE_OFFSET_BITS=64 -## non-redistributable libs in /opt/SUNWspro -GARCOMPILER = GCC3 DEBUG_PACKAGING = 1 ## Add GCC4 lib dir to CFLAGS and friends because gcc3core_rt puts it's @@ -47,15 +124,15 @@ ## ## Adding -dalign to *FLAGS in attempt to fix bus error in nf_test/ftst_vars4 ## in fuction nf_put_vlen_element -#EXTRA_CFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign -#EXTRA_FFLAGS= -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign -#EXTRA_FCFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign -#EXTRA_CXXFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign +EXTRA_CFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign +EXTRA_FFLAGS= -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign +EXTRA_FCFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign +EXTRA_CXXFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign ## OPT_FLAGS_GCC = -O2 -pipe -include gar/category.mk ## During the 32-bit sparc build, the C++ bindings were barfing with an error ## about undefined symbol __sync_fetch_and_add_4 in libnetcdf_c++ -## Per http://www.mail-archive.com/maintainers at lists.opencsw.org/msg06095.html -## replacing -march=v8 with -m32 seems to solve the problem -ARCHFLAGS_GCC4_sparcv8 = -m32 -mcpu=v8 +## From Porting FAQ: http://wiki.opencsw.org/porting-faq#toc5 +OPT_FLAGS_GCC = + +include gar/category.mk Modified: csw/mgar/pkg/netcdf/trunk/checksums =================================================================== --- csw/mgar/pkg/netcdf/trunk/checksums 2010-12-02 23:54:00 UTC (rev 11766) +++ csw/mgar/pkg/netcdf/trunk/checksums 2010-12-02 23:59:11 UTC (rev 11767) @@ -1 +1 @@ -334e9bdc010b6cd03fd6531a45fe50ad netcdf-3.6.3.tar.gz +79c5ff14c80d5e18dd8f1fceeae1c8e1 netcdf-4.1.1.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Fri Dec 3 01:01:42 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Fri, 03 Dec 2010 00:01:42 +0000 Subject: [csw-devel] SF.net SVN: gar:[11768] csw/mgar/pkg/netcdf/trunk/Makefile Message-ID: Revision: 11768 http://gar.svn.sourceforge.net/gar/?rev=11768&view=rev Author: gadavis Date: 2010-12-03 00:01:42 +0000 (Fri, 03 Dec 2010) Log Message: ----------- Add scaffold rules for x86 64-bit Modified Paths: -------------- csw/mgar/pkg/netcdf/trunk/Makefile Modified: csw/mgar/pkg/netcdf/trunk/Makefile =================================================================== --- csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-02 23:59:11 UTC (rev 11767) +++ csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-03 00:01:42 UTC (rev 11768) @@ -32,6 +32,9 @@ PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/sparcv9/libnetcdf.so.6.0.0 PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/sparcv9/libnetcdf.so.6\.[0-9\.]+ PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/sparcv9/libnetcdf.so.6 +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/amd64/libnetcdf.so.6.0.0 +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/amd64/libnetcdf.so.6\.[0-9\.]+ +PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/amd64/libnetcdf.so.6 SPKG_DESC_CSWlibnetcdf6 = Machine-independent data formats for array-oriented scientific data, libnetcdf.so.6 RUNTIME_DEP_PKGS_CSWlibnetcdf6 = CSWhdf5rt RUNTIME_DEP_PKGS_CSWlibnetcdf6 += CSWgcc4corert @@ -44,6 +47,9 @@ PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so.5.0.0 PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so.5\.[0-9\.]+ PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so.5 +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/amd64/libnetcdf_c\+\+.so.5.0.0 +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/amd64/libnetcdf_c\+\+.so.5\.[0-9\.]+ +PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/amd64/libnetcdf_c\+\+.so.5 SPKG_DESC_CSWlibnetcdf-c++5 += Machine-independent data formats for array-oriented scientific data, libnetcdf_c++.so.5 RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 = CSWhdf5rt RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 += CSWgcc4corert CSWgcc4g++rt @@ -54,9 +60,9 @@ PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5.0.0 PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5\.[0-9\.]+ PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5 -PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5.0.0 -PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5\.[0-9\.]+ -PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/amd64/libnetcdff.so.5.0.0 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/amd64/libnetcdff.so.5\.[0-9\.]+ +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/amd64/libnetcdff.so.5 SPKG_DESC_CSWlibnetcdff5 = Machine-independent data formats for array-oriented scientific data, libnetcdff.so.5 RUNTIME_DEP_PKGS_CSWlibnetcdff5 = CSWhdf5rt RUNTIME_DEP_PKGS_CSWlibnetcdff5 += CSWgcc4gfortranrt CSWgcc4corert @@ -71,6 +77,9 @@ PKGFILES_CSWnetcdf-devel += /opt/csw/lib/sparcv9/libnetcdf.so PKGFILES_CSWnetcdf-devel += /opt/csw/lib/sparcv9/libnetcdf_c\+\+.so PKGFILES_CSWnetcdf-devel += /opt/csw/lib/sparcv9/libnetcdff.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/amd64/libnetcdf.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/amd64/libnetcdf_c\+\+.so +PKGFILES_CSWnetcdf-devel += /opt/csw/lib/amd64/libnetcdff.so PKGFILES_CSWnetcdf-devel += $(PKGFILES_DEVEL) ## CFLAGS AND LDFLAGS are necessary due to problems with the fortran bindings when This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Fri Dec 3 03:16:23 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Fri, 03 Dec 2010 02:16:23 +0000 Subject: [csw-devel] SF.net SVN: gar:[11769] csw/mgar/pkg/netcdf/trunk/Makefile Message-ID: Revision: 11769 http://gar.svn.sourceforge.net/gar/?rev=11769&view=rev Author: gadavis Date: 2010-12-03 02:16:22 +0000 (Fri, 03 Dec 2010) Log Message: ----------- Fix missing sparcv9 entries for fortran lib Modified Paths: -------------- csw/mgar/pkg/netcdf/trunk/Makefile Modified: csw/mgar/pkg/netcdf/trunk/Makefile =================================================================== --- csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-03 00:01:42 UTC (rev 11768) +++ csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-03 02:16:22 UTC (rev 11769) @@ -60,6 +60,9 @@ PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5.0.0 PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5\.[0-9\.]+ PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/libnetcdff.so.5 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5.0.0 +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5\.[0-9\.]+ +PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/sparcv9/libnetcdff.so.5 PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/amd64/libnetcdff.so.5.0.0 PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/amd64/libnetcdff.so.5\.[0-9\.]+ PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/amd64/libnetcdff.so.5 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rthurner at users.sourceforge.net Fri Dec 3 07:55:22 2010 From: rthurner at users.sourceforge.net (rthurner at users.sourceforge.net) Date: Fri, 03 Dec 2010 06:55:22 +0000 Subject: [csw-devel] SF.net SVN: gar:[11770] csw/mgar/pkg/mercurial/trunk Message-ID: Revision: 11770 http://gar.svn.sourceforge.net/gar/?rev=11770&view=rev Author: rthurner Date: 2010-12-03 06:55:21 +0000 (Fri, 03 Dec 2010) Log Message: ----------- mercurial: upgrade to hg-1.7.2 Modified Paths: -------------- csw/mgar/pkg/mercurial/trunk/Makefile csw/mgar/pkg/mercurial/trunk/checksums Modified: csw/mgar/pkg/mercurial/trunk/Makefile =================================================================== --- csw/mgar/pkg/mercurial/trunk/Makefile 2010-12-03 02:16:22 UTC (rev 11769) +++ csw/mgar/pkg/mercurial/trunk/Makefile 2010-12-03 06:55:21 UTC (rev 11770) @@ -1,5 +1,5 @@ GARNAME = mercurial -GARVERSION = 1.7.1 +GARVERSION = 1.7.2 CATEGORIES = python DESCRIPTION = Fast, lightweight Source Control Management system Modified: csw/mgar/pkg/mercurial/trunk/checksums =================================================================== --- csw/mgar/pkg/mercurial/trunk/checksums 2010-12-03 02:16:22 UTC (rev 11769) +++ csw/mgar/pkg/mercurial/trunk/checksums 2010-12-03 06:55:21 UTC (rev 11770) @@ -1 +1 @@ -b14caa0f9e4dd5acbf9e9a6059c37fd3 mercurial-1.7.1.tar.gz +e9e99a0a20ded8f6d9463ffb94021b12 mercurial-1.7.2.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bonivart at users.sourceforge.net Fri Dec 3 13:54:15 2010 From: bonivart at users.sourceforge.net (bonivart at users.sourceforge.net) Date: Fri, 03 Dec 2010 12:54:15 +0000 Subject: [csw-devel] SF.net SVN: gar:[11771] csw/mgar/pkg/bind/trunk Message-ID: Revision: 11771 http://gar.svn.sourceforge.net/gar/?rev=11771&view=rev Author: bonivart Date: 2010-12-03 12:54:15 +0000 (Fri, 03 Dec 2010) Log Message: ----------- bind: update to 9.7.2-P3 Modified Paths: -------------- csw/mgar/pkg/bind/trunk/Makefile csw/mgar/pkg/bind/trunk/checksums Modified: csw/mgar/pkg/bind/trunk/Makefile =================================================================== --- csw/mgar/pkg/bind/trunk/Makefile 2010-12-03 06:55:21 UTC (rev 11770) +++ csw/mgar/pkg/bind/trunk/Makefile 2010-12-03 12:54:15 UTC (rev 11771) @@ -6,7 +6,7 @@ CATEGORIES = net # Enable these for Px-releases -RELEASE = P2 +RELEASE = P3 DISTVERSION = $(GARVERSION)-$(RELEASE) SPKG_VERSION = $(GARVERSION)$(RELEASE) DISTNAME = $(GARNAME)-$(GARVERSION)-$(RELEASE) @@ -91,7 +91,6 @@ CHECKPKG_OVERRIDES_CSWbind += surplus-dependency|CSWbindutils CHECKPKG_OVERRIDES_CSWbindchroot += surplus-dependency|CSWbind CHECKPKG_OVERRIDES_CSWbinddevel += archall-devel-package -CHECKPKG_OVERRIDES_CSWbinddevel += surplus-dependency|CSWbind CHECKPKG_OVERRIDES_CSWlibbind += non-uniform-lib-versions-in-package|sonames=['libbind9.so.60',|'libdns.so.69',|'libisc.so.62',|'libisccc.so.60',|'libisccfg.so.62',|'liblwres.so.60'] include gar/category.mk Modified: csw/mgar/pkg/bind/trunk/checksums =================================================================== --- csw/mgar/pkg/bind/trunk/checksums 2010-12-03 06:55:21 UTC (rev 11770) +++ csw/mgar/pkg/bind/trunk/checksums 2010-12-03 12:54:15 UTC (rev 11771) @@ -1 +1 @@ -e74de6ec9c2cd27576794c873bd85f4a bind-9.7.2-P2.tar.gz +b4537cbae38b2daef36775bf49f33db9 bind-9.7.2-P3.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bonivart at users.sourceforge.net Fri Dec 3 16:15:51 2010 From: bonivart at users.sourceforge.net (bonivart at users.sourceforge.net) Date: Fri, 03 Dec 2010 15:15:51 +0000 Subject: [csw-devel] SF.net SVN: gar:[11772] csw/mgar/pkg/dhcp/trunk Message-ID: Revision: 11772 http://gar.svn.sourceforge.net/gar/?rev=11772&view=rev Author: bonivart Date: 2010-12-03 15:15:51 +0000 (Fri, 03 Dec 2010) Log Message: ----------- dhcp: update to 4.2.0-P1 Modified Paths: -------------- csw/mgar/pkg/dhcp/trunk/Makefile csw/mgar/pkg/dhcp/trunk/checksums Modified: csw/mgar/pkg/dhcp/trunk/Makefile =================================================================== --- csw/mgar/pkg/dhcp/trunk/Makefile 2010-12-03 12:54:15 UTC (rev 11771) +++ csw/mgar/pkg/dhcp/trunk/Makefile 2010-12-03 15:15:51 UTC (rev 11772) @@ -1,10 +1,10 @@ GARNAME = dhcp GARVERSION = 4.2.0 -#RELEASE = P1 -#DISTVERSION = $(GARVERSION)-$(RELEASE) -#SPKG_VERSION = $(GARVERSION)$(RELEASE) -#DISTNAME = $(GARNAME)-$(GARVERSION)-$(RELEASE) -#WORKSRC = $(WORKDIR)/$(DISTNAME) +RELEASE = P1 +DISTVERSION = $(GARVERSION)-$(RELEASE) +SPKG_VERSION = $(GARVERSION)$(RELEASE) +DISTNAME = $(GARNAME)-$(GARVERSION)-$(RELEASE) +WORKSRC = $(WORKDIR)/$(DISTNAME) CATEGORIES = net DESCRIPTION = ISC DHCP reference implementation @@ -17,7 +17,7 @@ MASTER_SITES = http://ftp.isc.org/isc/dhcp/ DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz -#DISTFILES = $(DISTNAME).tar.gz +DISTFILES = $(DISTNAME).tar.gz LICENSE = LICENSE @@ -27,14 +27,12 @@ SPKG_DESC_CSWdhcp = ISC DHCP reference implementation RUNTIME_DEP_PKGS_CSWdhcpdevel = CSWdhcp +SPKG_DESC_CSWdhcpdevel = ISC DHCP development package CATALOGNAME_CSWdhcpdevel = dhcp_devel ARCHALL_CSWdhcpdevel = 1 UFILES_REGEX = ($(GARNAME)-\d+(?:\.\d+)*).tar.gz -CHECKPKG_OVERRIDES_CSWdhcpdevel += archall-devel-package -CHECKPKG_OVERRIDES_CSWdhcpdevel += surplus-dependency|CSWdhcp - GARCOMPILER = GNU TEST_TARGET = check Modified: csw/mgar/pkg/dhcp/trunk/checksums =================================================================== --- csw/mgar/pkg/dhcp/trunk/checksums 2010-12-03 12:54:15 UTC (rev 11771) +++ csw/mgar/pkg/dhcp/trunk/checksums 2010-12-03 15:15:51 UTC (rev 11772) @@ -1 +1 @@ -83abd7c4f9c24d8dd024ca5a71380c0a dhcp-4.2.0.tar.gz +1c268a2368b2565252b5f9d7255d3c72 dhcp-4.2.0-P1.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bonivart at users.sourceforge.net Fri Dec 3 16:30:58 2010 From: bonivart at users.sourceforge.net (bonivart at users.sourceforge.net) Date: Fri, 03 Dec 2010 15:30:58 +0000 Subject: [csw-devel] SF.net SVN: gar:[11773] csw/mgar/pkg/dhcp/trunk/Makefile Message-ID: Revision: 11773 http://gar.svn.sourceforge.net/gar/?rev=11773&view=rev Author: bonivart Date: 2010-12-03 15:30:58 +0000 (Fri, 03 Dec 2010) Log Message: ----------- dhcp: add override for arch all devel pkg Modified Paths: -------------- csw/mgar/pkg/dhcp/trunk/Makefile Modified: csw/mgar/pkg/dhcp/trunk/Makefile =================================================================== --- csw/mgar/pkg/dhcp/trunk/Makefile 2010-12-03 15:15:51 UTC (rev 11772) +++ csw/mgar/pkg/dhcp/trunk/Makefile 2010-12-03 15:30:58 UTC (rev 11773) @@ -53,6 +53,8 @@ SPKG_SOURCEURL = https://www.isc.org/software/dhcp +CHECKPKG_OVERRIDES_CSWdhcpdevel += archall-devel-package + include gar/category.mk install-custom: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Fri Dec 3 20:21:43 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Fri, 03 Dec 2010 19:21:43 +0000 Subject: [csw-devel] SF.net SVN: gar:[11774] csw/mgar/pkg/freeradius/trunk Message-ID: Revision: 11774 http://gar.svn.sourceforge.net/gar/?rev=11774&view=rev Author: gadavis Date: 2010-12-03 19:21:43 +0000 (Fri, 03 Dec 2010) Log Message: ----------- FreeRADIUS builds and installs under Sparc 32 bit Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Property Changed: ---------------- csw/mgar/pkg/freeradius/trunk/ Property changes on: csw/mgar/pkg/freeradius/trunk ___________________________________________________________________ Modified: svn:externals - gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2-fortran Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-03 15:30:58 UTC (rev 11773) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-03 19:21:43 UTC (rev 11774) @@ -20,15 +20,26 @@ SPKG_SOURCEURL = http://freeradius.org/ -GARCOMPILER = GCC3 +GARCOMPILER = GCC4 -STRIP_LIBTOOL = 1 +# Stripping libtool breaks the build in versions <=2.1.7 +#STRIP_LIBTOOL = 1 -CONFIGURE_ARGS = $(DIRPATHS) -## 2.1.10 requires using included libtool instead of system -#CONFIGURE_ARGS += --with-system-libtool +## Some of the RLM Submodules don't seem to pick up the include paths without +## setting CFLAGS +EXTRA_CFLAGS = -I/opt/csw/include +#EXTRA_CFLAGS += -DIE_LIBTOOL_DIE +#CONFIGURE_ENV = CFLAGS="$(CFLAGS)" + +CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += CC=$(CC) CXX=$(CXX) F77=$(F77) FC=$(FC) +CONFIGURE_ARGS += CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" +CONFIGURE_ARGS += CPPFLAGS="$(CPPFLAGS)" FCFLAGS="$(FCFLAGS)" +CONFIGURE_ARGS += LDFLAGS="$(LDFLAGS)" +CONFIGURE_ARGS += --with-system-libtool +CONFIGURE_ARGS += --with-system-libltld CONFIGURE_ARGS += --without-rlm_sqlippool -CONFIGURE_ARGS += --without-rlm_sql_mysql +CONFIGURE_ARGS += --with-rlm_sql_mysql CONFIGURE_ARGS += --without-rlm_sql_postgresql CONFIGURE_ARGS += --without-rlm_sql_db2 CONFIGURE_ARGS += --without-rlm_sql_firebird @@ -36,24 +47,28 @@ CONFIGURE_ARGS += --without-rlm_sql_iodbc CONFIGURE_ARGS += --without-rlm_sql_oracle CONFIGURE_ARGS += --without-rlm_sql_sybase -CONFIGURE_ARGS += --without-rlm_sql_unixodbc -CONFIGURE_ARGS += --without-rlm-ldap +CONFIGURE_ARGS += --with-rlm_sql_unixodbc +CONFIGURE_ARGS += --with-rlm-ldap CONFIGURE_ARGS += --without-rlm_eap_ikev2 CONFIGURE_ARGS += --without-rlm_eap_sim -CONFIGURE_ARGS += --without-rlm_eap_tls +CONFIGURE_ARGS += --with-rlm_eap_tls CONFIGURE_ARGS += --without-rlm_eap_peap CONFIGURE_ARGS += --without-rlm_eap_ttls CONFIGURE_ARGS += --without-rlm_eap_tnc -CONFIGURE_ARGS += --without-rlm_krb5 +CONFIGURE_ARGS += --with-rlm_krb5 CONFIGURE_ARGS += --without-rlm_dbm CONFIGURE_ARGS += --without-rlm_otp -CONFIGURE_ARGS += --without-rlm_pam -CONFIGURE_ARGS += --without-rlm_python -CONFIGURE_ARGS += --without-snmp +CONFIGURE_ARGS += --with-rlm_pam +CONFIGURE_ARGS += --with-rlm_python +CONFIGURE_ARGS += --with-snmp +CONFIGURE_ARGS += --with-rlm_counter-include-dir=/opt/csw/include +CONFIGURE_ARGS += --with-rlm_counter-lib-dir=/opt/csw/lib/$(MM_LIBDIR) # No tests available TEST_TARGET = +INSTALL_ARGS += R=$(DESTDIR) + include gar/category.mk PATH := /opt/csw/gnu:$(PATH) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Fri Dec 3 23:20:19 2010 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Fri, 03 Dec 2010 22:20:19 +0000 Subject: [csw-devel] SF.net SVN: gar:[11775] csw/mgar/pkg/openssl/trunk Message-ID: Revision: 11775 http://gar.svn.sourceforge.net/gar/?rev=11775&view=rev Author: chninkel Date: 2010-12-03 22:20:19 +0000 (Fri, 03 Dec 2010) Log Message: ----------- openssl: updated to 0.9.8q Modified Paths: -------------- csw/mgar/pkg/openssl/trunk/Makefile csw/mgar/pkg/openssl/trunk/checksums csw/mgar/pkg/openssl/trunk/files/changelog.CSW Modified: csw/mgar/pkg/openssl/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl/trunk/Makefile 2010-12-03 19:21:43 UTC (rev 11774) +++ csw/mgar/pkg/openssl/trunk/Makefile 2010-12-03 22:20:19 UTC (rev 11775) @@ -16,7 +16,7 @@ ###### Package information ####### GARNAME = openssl -GARVERSION = 0.9.8p +GARVERSION = 0.9.8q CATEGORIES = lib DESCRIPTION = The Open Source toolkit for SSL and TLS Modified: csw/mgar/pkg/openssl/trunk/checksums =================================================================== --- csw/mgar/pkg/openssl/trunk/checksums 2010-12-03 19:21:43 UTC (rev 11774) +++ csw/mgar/pkg/openssl/trunk/checksums 2010-12-03 22:20:19 UTC (rev 11775) @@ -1 +1 @@ -7f24047f70364c9eabc94899e356ce39 openssl-0.9.8p.tar.gz +80e67291bec9230f03eefb5cfe858998 openssl-0.9.8q.tar.gz Modified: csw/mgar/pkg/openssl/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/openssl/trunk/files/changelog.CSW 2010-12-03 19:21:43 UTC (rev 11774) +++ csw/mgar/pkg/openssl/trunk/files/changelog.CSW 2010-12-03 22:20:19 UTC (rev 11775) @@ -1,3 +1,9 @@ +openssl (0.9.8q,REV=2010.12.02) unstable + + * New upstream version. + + -- Yann Rouillard Thu, 02 Dec 2010 23:40:12 +0100 + openssl (0.9.8p,REV=2010.11.20) unstable * New upstream version. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Sat Dec 4 01:26:11 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Sat, 04 Dec 2010 00:26:11 +0000 Subject: [csw-devel] SF.net SVN: gar:[11776] csw/mgar/pkg/netcdf/trunk/Makefile Message-ID: Revision: 11776 http://gar.svn.sourceforge.net/gar/?rev=11776&view=rev Author: gadavis Date: 2010-12-04 00:26:11 +0000 (Sat, 04 Dec 2010) Log Message: ----------- Add dependencies for devel package on provided libraries Modified Paths: -------------- csw/mgar/pkg/netcdf/trunk/Makefile Modified: csw/mgar/pkg/netcdf/trunk/Makefile =================================================================== --- csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-03 22:20:19 UTC (rev 11775) +++ csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-04 00:26:11 UTC (rev 11776) @@ -84,6 +84,9 @@ PKGFILES_CSWnetcdf-devel += /opt/csw/lib/amd64/libnetcdf_c\+\+.so PKGFILES_CSWnetcdf-devel += /opt/csw/lib/amd64/libnetcdff.so PKGFILES_CSWnetcdf-devel += $(PKGFILES_DEVEL) +RUNTIME_DEP_PKGS_CSWnetcdf-devel += CSWlibnetcdf6 +RUNTIME_DEP_PKGS_CSWnetcdf-devel += CSWlibnetcdff5 +RUNTIME_DEP_PKGS_CSWnetcdf-devel += CSWlibnetcdf-c++5 ## CFLAGS AND LDFLAGS are necessary due to problems with the fortran bindings when ## building 64-bit @@ -147,4 +150,10 @@ ## From Porting FAQ: http://wiki.opencsw.org/porting-faq#toc5 OPT_FLAGS_GCC = +## The development package should pull in the various libs since it's hard to +## link against what isn't there +CHECKPKG_OVERRIDES_CSWnetcdf-devel += surplus-dependency|CSWlibnetcdf-c++5 +CHECKPKG_OVERRIDES_CSWnetcdf-devel += surplus-dependency|CSWlibnetcdf6 +CHECKPKG_OVERRIDES_CSWnetcdf-devel += surplus-dependency|CSWlibnetcdff5 + include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Sat Dec 4 01:35:42 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Sat, 04 Dec 2010 00:35:42 +0000 Subject: [csw-devel] SF.net SVN: gar:[11777] csw/mgar/pkg/freeradius/trunk/Makefile Message-ID: Revision: 11777 http://gar.svn.sourceforge.net/gar/?rev=11777&view=rev Author: gadavis Date: 2010-12-04 00:35:42 +0000 (Sat, 04 Dec 2010) Log Message: ----------- Disable some modules that were giving RPATH issues, add some checkpkg cleanups Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-04 00:26:11 UTC (rev 11776) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-04 00:35:42 UTC (rev 11777) @@ -11,17 +11,14 @@ DISTFILES = $(GARNAME)-server-$(GARVERSION).tar.gz DISTNAME = $(GARNAME)-server-$(GARVERSION) -# We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz -# If the url used to check for software update is different of MASTER_SITES, then -# uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES -# UPSTREAM_MASTER_SITES = - SPKG_SOURCEURL = http://freeradius.org/ +LICENSE = LICENSE GARCOMPILER = GCC4 + # Stripping libtool breaks the build in versions <=2.1.7 #STRIP_LIBTOOL = 1 @@ -31,39 +28,80 @@ #EXTRA_CFLAGS += -DIE_LIBTOOL_DIE #CONFIGURE_ENV = CFLAGS="$(CFLAGS)" +#EXTRA_MERGE_EXCLUDE_FILES += /opt/csw/lib/libltdl.so.* +#EXTRA_MERGE_EXCLUDE_FILES += /opt/csw/lib/sparcv9/libltdl.so.* +#EXTRA_MERGE_EXCLUDE_FILES += /opt/csw/lib/amd64/libltdl.so.* +#EXTRA_MERGE_EXCLUDE_FILES += /opt/csw/include/ltdl.h + +RUNTIME_DEP_PKGS_CSWfreeradius += CSWlibpython2-6-1-0 +RUNTIME_DEP_PKGS_CSWfreeradius += CSWlibpcap +RUNTIME_DEP_PKGS_CSWfreeradius += CSWoldaprt +RUNTIME_DEP_PKGS_CSWfreeradius += CSWosslrt +RUNTIME_DEP_PKGS_CSWfreeradius += CSWgdbm +RUNTIME_DEP_PKGS_CSWfreeradius += CSWlibltdl7 +RUNTIME_DEP_PKGS_CSWfreeradius += CSWreadline +RUNTIME_DEP_PKGS_CSWfreeradius += CSWkrb5lib +RUNTIME_DEP_PKGS_CSWfreeradius += CSWgcc4corert + +## Can't get perl to link cleanly +## Still get noise about a missing dependency due to an included example +## script in raddb +#RUNTIME_DEP_PKGS_CSWfreeradius += CSWperl +CHECKPKG_OVERRIDES_CSWfreeradius += missing-dependency|CSWperl + +# Put libraries (including all of the modules) in /opt/csw/lib/freeradius +libdir = $(abspath $(libdir_install)/$(GARNAME)/$(MM_LIBDIR)) + +# Put the config in the recommended /etc/opt/csw tree +sysconfdir = /etc$(prefix) +raddbdir = $(sysconfdir)/raddb +# move all of the var stuff to /var/opt/csw +localstatedir = /var$(prefix) + CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += CC=$(CC) CXX=$(CXX) F77=$(F77) FC=$(FC) CONFIGURE_ARGS += CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CONFIGURE_ARGS += CPPFLAGS="$(CPPFLAGS)" FCFLAGS="$(FCFLAGS)" CONFIGURE_ARGS += LDFLAGS="$(LDFLAGS)" +#CONFIGURE_ARGS += MYSQL_CONFIG=/opt/csw/mysql5/bin/$(ISA)/mysql_config CONFIGURE_ARGS += --with-system-libtool CONFIGURE_ARGS += --with-system-libltld -CONFIGURE_ARGS += --without-rlm_sqlippool -CONFIGURE_ARGS += --with-rlm_sql_mysql -CONFIGURE_ARGS += --without-rlm_sql_postgresql -CONFIGURE_ARGS += --without-rlm_sql_db2 +CONFIGURE_ARGS += --with-raddbdir=$(raddbdir) +CONFIGURE_ARGS += --enable-ltdl-install=no +CONFIGURE_ARGS += --enable-strict-dependencies +CONFIGURE_ARGS += --enable-developer +CONFIGURE_ARGS += --with-large-files --with-updfromto --with-edir CONFIGURE_ARGS += --without-rlm_sql_firebird CONFIGURE_ARGS += --without-rlm_sql_freetds CONFIGURE_ARGS += --without-rlm_sql_iodbc CONFIGURE_ARGS += --without-rlm_sql_oracle CONFIGURE_ARGS += --without-rlm_sql_sybase -CONFIGURE_ARGS += --with-rlm_sql_unixodbc -CONFIGURE_ARGS += --with-rlm-ldap +CONFIGURE_ARGS += --without-rlm_sql_db2 CONFIGURE_ARGS += --without-rlm_eap_ikev2 -CONFIGURE_ARGS += --without-rlm_eap_sim -CONFIGURE_ARGS += --with-rlm_eap_tls -CONFIGURE_ARGS += --without-rlm_eap_peap -CONFIGURE_ARGS += --without-rlm_eap_ttls +CONFIGURE_ARGS += --without-rlm_sql_unixodbc CONFIGURE_ARGS += --without-rlm_eap_tnc -CONFIGURE_ARGS += --with-rlm_krb5 -CONFIGURE_ARGS += --without-rlm_dbm -CONFIGURE_ARGS += --without-rlm_otp -CONFIGURE_ARGS += --with-rlm_pam -CONFIGURE_ARGS += --with-rlm_python -CONFIGURE_ARGS += --with-snmp -CONFIGURE_ARGS += --with-rlm_counter-include-dir=/opt/csw/include -CONFIGURE_ARGS += --with-rlm_counter-lib-dir=/opt/csw/lib/$(MM_LIBDIR) +## Disabling Postgresql because it's going to take a bunch of weird +## Makefile hackery of these non-automake Makefiles to get the RPATH right +#BUILD_DEP_PKGS += CSWpostgresql +#rlm_pgsql_lib = $(shell /opt/csw/postgresql/bin/$(ISA)/pg_config --libdir) +#rlm_pgsql_inc = $(shell /opt/csw/postgresql/bin/$(ISA)/pg_config --includedir) +#CONFIGURE_ARGS += --with-rlm_sql_postgresql_lib_dir=$(rlm_pgsql_lib) +#CONFIGURE_ARGS += --with-rlm_sql_postgresql_include_dir=$(rlm_pgsql_inc) +CONFIGURE_ARGS += --without-rlm_sql_postgresql + +## Disabling MySQL because it's going to take a bunch of weird +## Makefile hackery of these non-automake Makefiles to get the RPATH right +#BUILD_DEP_PKGS += CSWmysql5devel +#CONFIGURE_ARGS += --with-mysql-lib-dir=/opt/csw/mysql5/lib/$(ISA)/mysql +#CONFIGURE_ARGS += --with-mysql-include-dir=/opt/csw/mysql5/include +CONFIGURE_ARGS += --without-rlm_sql_mysql + +## Disabling Perl due to linker issues and weird makefiles +#rlm_perl_inc = $(shell /opt/csw/bin/perl -e 'use Config; print "$$Config{archlib}\n"')/CORE +#CONFIGURE_ARGS += --with-rlm_perl_include_dir=$(rlm_perl_inc) +CONFIGURE_ARGS += --without-rlm_perl + # No tests available TEST_TARGET = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rthurner at users.sourceforge.net Sat Dec 4 16:34:23 2010 From: rthurner at users.sourceforge.net (rthurner at users.sourceforge.net) Date: Sat, 04 Dec 2010 15:34:23 +0000 Subject: [csw-devel] SF.net SVN: gar:[11778] csw/mgar/pkg/subversion/trunk Message-ID: Revision: 11778 http://gar.svn.sourceforge.net/gar/?rev=11778&view=rev Author: rthurner Date: 2010-12-04 15:34:23 +0000 (Sat, 04 Dec 2010) Log Message: ----------- subversion: upgrade to svn-1.6.15 Modified Paths: -------------- csw/mgar/pkg/subversion/trunk/Makefile csw/mgar/pkg/subversion/trunk/checksums Modified: csw/mgar/pkg/subversion/trunk/Makefile =================================================================== --- csw/mgar/pkg/subversion/trunk/Makefile 2010-12-04 00:35:42 UTC (rev 11777) +++ csw/mgar/pkg/subversion/trunk/Makefile 2010-12-04 15:34:23 UTC (rev 11778) @@ -22,7 +22,7 @@ # http://subversion.apache.org/mailing-lists.html GARNAME = subversion -GARVERSION = 1.6.13 +GARVERSION = 1.6.15 CATEGORIES = utils DESCRIPTION = Version control rethought Modified: csw/mgar/pkg/subversion/trunk/checksums =================================================================== --- csw/mgar/pkg/subversion/trunk/checksums 2010-12-04 00:35:42 UTC (rev 11777) +++ csw/mgar/pkg/subversion/trunk/checksums 2010-12-04 15:34:23 UTC (rev 11778) @@ -1 +1 @@ -7ae1c827689f21cf975804005be30aeb subversion-1.6.13.tar.bz2 +113fca1d9e4aa389d7dc2b210010fa69 subversion-1.6.15.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bonivart at users.sourceforge.net Sat Dec 4 17:26:50 2010 From: bonivart at users.sourceforge.net (bonivart at users.sourceforge.net) Date: Sat, 04 Dec 2010 16:26:50 +0000 Subject: [csw-devel] SF.net SVN: gar:[11779] csw/mgar/pkg/lzop/trunk Message-ID: Revision: 11779 http://gar.svn.sourceforge.net/gar/?rev=11779&view=rev Author: bonivart Date: 2010-12-04 16:26:49 +0000 (Sat, 04 Dec 2010) Log Message: ----------- lzop: update to 1.03 Modified Paths: -------------- csw/mgar/pkg/lzop/trunk/Makefile csw/mgar/pkg/lzop/trunk/checksums Modified: csw/mgar/pkg/lzop/trunk/Makefile =================================================================== --- csw/mgar/pkg/lzop/trunk/Makefile 2010-12-04 15:34:23 UTC (rev 11778) +++ csw/mgar/pkg/lzop/trunk/Makefile 2010-12-04 16:26:49 UTC (rev 11779) @@ -1,16 +1,16 @@ GARNAME = lzop -GARVERSION = 1.02 -RELEASE = rc1 -DISTVERSION = $(GARVERSION)$(RELEASE) -DISTNAME = $(GARNAME)-$(DISTVERSION) +GARVERSION = 1.03 +#RELEASE = rc1 +#DISTVERSION = $(GARVERSION)$(RELEASE) +#DISTNAME = $(GARNAME)-$(DISTVERSION) CATEGORIES = utils DESCRIPTION = LZO file compressor define BLURB - lzop is a file compressor which is very similar to gzip. lzop uses the LZO data - compression library for compression services, and its main advantages over gzip are - much higher compression and decompression speed (at the cost of some compression - ratio). + lzop is a file compressor which is very similar to gzip. lzop uses the LZO + data compression library for compression services, and its main advantages + over gzip are much higher compression and decompression speed (at the cost + of some compression ratio). endef MASTER_SITES = http://www.lzop.org/download/ @@ -34,7 +34,7 @@ include gar/category.mk -SPKG_REVSTAMP := $(SPKG_REVSTAMP)_rev=$(RELEASE) +#SPKG_REVSTAMP := $(SPKG_REVSTAMP)_rev=$(RELEASE) DOCS = AUTHORS NEWS README THANKS doc/magic DOCDEST = $(DESTDIR)$(docdir)/$(GARNAME) Modified: csw/mgar/pkg/lzop/trunk/checksums =================================================================== --- csw/mgar/pkg/lzop/trunk/checksums 2010-12-04 15:34:23 UTC (rev 11778) +++ csw/mgar/pkg/lzop/trunk/checksums 2010-12-04 16:26:49 UTC (rev 11779) @@ -1 +1 @@ -4b999030716b1353c3dac049b269df7a download/lzop-1.02rc1.tar.gz +006c5e27fb78cdd14a628fdfa5aa1905 lzop-1.03.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rthurner at users.sourceforge.net Sat Dec 4 18:08:59 2010 From: rthurner at users.sourceforge.net (rthurner at users.sourceforge.net) Date: Sat, 04 Dec 2010 17:08:59 +0000 Subject: [csw-devel] SF.net SVN: gar:[11780] csw/mgar/pkg/neon/trunk Message-ID: Revision: 11780 http://gar.svn.sourceforge.net/gar/?rev=11780&view=rev Author: rthurner Date: 2010-12-04 17:08:59 +0000 (Sat, 04 Dec 2010) Log Message: ----------- neon: upgrade to 0.29.5 Modified Paths: -------------- csw/mgar/pkg/neon/trunk/Makefile csw/mgar/pkg/neon/trunk/checksums Modified: csw/mgar/pkg/neon/trunk/Makefile =================================================================== --- csw/mgar/pkg/neon/trunk/Makefile 2010-12-04 16:26:49 UTC (rev 11779) +++ csw/mgar/pkg/neon/trunk/Makefile 2010-12-04 17:08:59 UTC (rev 11780) @@ -1,9 +1,9 @@ GARNAME = neon -GARVERSION = 0.29.4 +GARVERSION = 0.29.5 CATEGORIES = lib EXTRA_MODULATORS = GARVERSION FEATURES -MODULATIONS_GARVERSION = 0.26.4 0.29.4 +MODULATIONS_GARVERSION = 0.26.4 0.29.5 MODULATIONS_FEATURES = minimal full DESCRIPTION = Neon HTTP and WebDAV client library @@ -56,7 +56,7 @@ INSTALL_OVERRIDE_VARS = docdir INSTALL_OVERRIDE_VAR_docdir = $(datadir)/doc/neon -# isa-sparcv8-garversion-0.26.4-features-minimal isa-sparcv8-garversion-0.26.4-features-full isa-sparcv8-garversion-0.29.4-features-minimal isa-sparcv8-garversion-0.29.4-features-full isa-sparcv9-garversion-0.26.4-features-minimal isa-sparcv9-garversion-0.26.4-features-full isa-sparcv9-garversion-0.29.4-features-minimal isa-sparcv9-garversion-0.29.4-features-full +# isa-sparcv8-garversion-0.26.4-features-minimal isa-sparcv8-garversion-0.26.4-features-full isa-sparcv8-garversion-0.29.5-features-minimal isa-sparcv8-garversion-0.29.5-features-full isa-sparcv9-garversion-0.26.4-features-minimal isa-sparcv9-garversion-0.26.4-features-full isa-sparcv9-garversion-0.29.5-features-minimal isa-sparcv9-garversion-0.29.5-features-full # We select pkgconfig for minimal library bindings. As libneon is self-contained (links # to all necessary libs directly) the full version can simly be linked in. @@ -78,13 +78,13 @@ MERGE_SCRIPTS_isa-default64-garversion-0.26.4-features-full = copy-relocated-only MERGE_DIRS_isa-default64-garversion-0.26.4-features-full = $(libdir) -MERGE_SCRIPTS_isa-default-garversion-0.29.4-features-minimal = copy-all -MERGE_SCRIPTS_isa-default64-garversion-0.29.4-features-minimal = copy-relocated-only -MERGE_DIRS_isa-default64-garversion-0.29.4-features-minimal = $(bindir) $(sbindir) $(libexecdir) $(libdir) -MERGE_SCRIPTS_isa-default-garversion-0.29.4-features-full = copy-only -MERGE_DIRS_isa-default-garversion-0.29.4-features-full = $(libdir) -MERGE_SCRIPTS_isa-default64-garversion-0.29.4-features-full = copy-relocated-only -MERGE_DIRS_isa-default64-garversion-0.29.4-features-full = $(libdir) +MERGE_SCRIPTS_isa-default-garversion-0.29.5-features-minimal = copy-all +MERGE_SCRIPTS_isa-default64-garversion-0.29.5-features-minimal = copy-relocated-only +MERGE_DIRS_isa-default64-garversion-0.29.5-features-minimal = $(bindir) $(sbindir) $(libexecdir) $(libdir) +MERGE_SCRIPTS_isa-default-garversion-0.29.5-features-full = copy-only +MERGE_DIRS_isa-default-garversion-0.29.5-features-full = $(libdir) +MERGE_SCRIPTS_isa-default64-garversion-0.29.5-features-full = copy-relocated-only +MERGE_DIRS_isa-default64-garversion-0.29.5-features-full = $(libdir) EXTRA_LINKER_FLAGS = -lintl Modified: csw/mgar/pkg/neon/trunk/checksums =================================================================== --- csw/mgar/pkg/neon/trunk/checksums 2010-12-04 16:26:49 UTC (rev 11779) +++ csw/mgar/pkg/neon/trunk/checksums 2010-12-04 17:08:59 UTC (rev 11780) @@ -1,2 +1,2 @@ 2d11fff51ffa856fc6b5d4bd801d6cc4 neon-0.26.4.tar.gz -29438dbdaee84db2d7fbc73248a92d93 neon-0.29.4.tar.gz +ff369e69ef0f0143beb5626164e87ae2 neon-0.29.5.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 4 19:25:13 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 04 Dec 2010 18:25:13 +0000 Subject: [csw-devel] SF.net SVN: gar:[11781] csw/mgar/pkg/apache2/trunk/files/cswapache2 Message-ID: Revision: 11781 http://gar.svn.sourceforge.net/gar/?rev=11781&view=rev Author: bdwalton Date: 2010-12-04 18:25:12 +0000 (Sat, 04 Dec 2010) Log Message: ----------- apache2: update init script for moved config files Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/cswapache2 Modified: csw/mgar/pkg/apache2/trunk/files/cswapache2 =================================================================== --- csw/mgar/pkg/apache2/trunk/files/cswapache2 2010-12-04 17:08:59 UTC (rev 11780) +++ csw/mgar/pkg/apache2/trunk/files/cswapache2 2010-12-04 18:25:12 UTC (rev 11781) @@ -12,9 +12,9 @@ #RC_SLEV 3 #FMRI network -APACHE_HOME=/opt/csw/apache2 -CONF_FILE=$APACHE_HOME/etc/httpd.conf -APACHECTL=$APACHE_HOME/sbin/apachectl +CONF_FILE=/etc/opt/csw/apache2/httpd.conf +APACHECTL=/opt/csw/apache2/sbin/apachectl +SERVERCRT=/etc/opt/csw/apache2/server.crt [ ! -f "$CONF_FILE" ] && exit 0 [ ! -x "$APACHECTL" ] && exit 0 @@ -22,7 +22,7 @@ case "$1" in start) cmd=$1 - if [ -f "$APACHE_HOME/etc/server.crt" ]; then + if [ -f "$SERVERCRT" ]; then cmd="$cmd -DSSL" fi ;; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 5 03:40:24 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 05 Dec 2010 02:40:24 +0000 Subject: [csw-devel] SF.net SVN: gar:[11782] csw/mgar/pkg/apache2/trunk/Makefile Message-ID: Revision: 11782 http://gar.svn.sourceforge.net/gar/?rev=11782&view=rev Author: bdwalton Date: 2010-12-05 02:40:24 +0000 (Sun, 05 Dec 2010) Log Message: ----------- apache2: no use for running buildconf any more and it breaks on the new libtool anyway; put some of the ssl cert stuff back in to handle migration for existing installs Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/Makefile Modified: csw/mgar/pkg/apache2/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache2/trunk/Makefile 2010-12-04 18:25:12 UTC (rev 11781) +++ csw/mgar/pkg/apache2/trunk/Makefile 2010-12-05 02:40:24 UTC (rev 11782) @@ -198,7 +198,7 @@ PKGFILES_CSWap2worker = .*share/doc/ap2_worker.* .*sbin/httpd.worker PKGFILES_CSWapache2rt = .*share/doc/apache2rt.* -PROTOTYPE_FILTER = gawk '$$$$3 ~ /etc\/opt\/csw\/apache2/ && $$$$1 == "f" && $$$$3 !~ /CSW/ && $$$$3 !~ /original/ {$$$$1 = "e"; $$$$2 = "build"}; {print}' +PROTOTYPE_FILTER = gawk '$$$$3 ~ /etc\/opt\/csw\/apache2/ && $$$$1 == "f" && $$$$3 !~ /CSW/ && $$$$3 !~ /original/ {$$$$1 = "e"; $$$$2 = "build"}; $$$$3 ~ /ssl_cert_migration.CSW/ {$$$$1 = "e"; $$$$2 = "build"}; {print}' include gar/category.mk @@ -208,12 +208,10 @@ FIXCONFIG_RMPATHS = $(DESTDIR) pre-configure-modulated: - (cd $(WORKDIR)/$(GARNAME)-$(GARVERSION); ./buildconf) @gsed -e s,INSTALL_PREFIX,$(prefix)/apache2,g \ $(WORKDIR)/config.layout > $(WORKDIR)/$(GARNAME)-$(GARVERSION)/config.layout @$(MAKECOOKIE) - post-install-modulated: rename-httpd copy-local-files copy-readmes copy-readmes: @@ -248,5 +246,6 @@ echo "...$$f"; \ mv $$f $$f.CSW; \ $(abspath $(FILEDIR))/build_cas_template $$f > $$f; \ + $(abspath $(FILEDIR))/ssl_cas_template server.crt > ssl_cert_migration.CSW; \ done ) @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 5 04:22:39 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 05 Dec 2010 03:22:39 +0000 Subject: [csw-devel] SF.net SVN: gar:[11783] csw/mgar/pkg/apache2/trunk/files/build_cas_template Message-ID: Revision: 11783 http://gar.svn.sourceforge.net/gar/?rev=11783&view=rev Author: bdwalton Date: 2010-12-05 03:22:39 +0000 (Sun, 05 Dec 2010) Log Message: ----------- apache2: apply further path modifications in config files during migration Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/build_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/build_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-05 02:40:24 UTC (rev 11782) +++ csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-05 03:22:39 UTC (rev 11783) @@ -27,6 +27,9 @@ # ensure we use the config files from the new location perl -pi \ -e "s/etc\//\/etc\/opt\/csw\/apache2\//" \$NEW_CONF_FILE + + perl -pi \ + -e "s/\/opt\/csw\/apache2\/\/etc\/opt/\/etc\/opt\/csw\/apache2\//" \$NEW_CONF_FILE else # so, we're not an existing or 'needs migration' install, we must # install from the templates. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 5 04:23:14 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 05 Dec 2010 03:23:14 +0000 Subject: [csw-devel] SF.net SVN: gar:[11784] csw/mgar/pkg/apache2/trunk/files/ssl_cas_template Message-ID: Revision: 11784 http://gar.svn.sourceforge.net/gar/?rev=11784&view=rev Author: bdwalton Date: 2010-12-05 03:23:14 +0000 (Sun, 05 Dec 2010) Log Message: ----------- apache2: add a script that will handle migrating server.{crt,key} using the build CAS Added Paths: ----------- csw/mgar/pkg/apache2/trunk/files/ssl_cas_template Added: csw/mgar/pkg/apache2/trunk/files/ssl_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/ssl_cas_template (rev 0) +++ csw/mgar/pkg/apache2/trunk/files/ssl_cas_template 2010-12-05 03:23:14 UTC (rev 11784) @@ -0,0 +1,43 @@ +#!/bin/sh + +PIR=${PKG_INSTALL_ROOT:-/} +AP2_DIR=/opt/csw/apache2 +AP2_CONF=$PIR/etc/opt/csw/apache2 +OLD_CONF=$PIR/$AP2_DIR/etc + +NEW_CERT_FILE=$AP2_CONF/server.crt +NEW_KEY_FILE=$AP2_CONF/server.key +OLD_CERT_FILE=$OLD_CONF/server.crt +OLD_KEY_FILE=$OLD_CONF/server.key + +if [ "$1" = install ]; then + if [ -f "$NEW_CERT_FILE" ]; then + echo "SSL key files in place already. Doing nothing." >&2 + elif [ -f "$OLD_CERT_FILE" ]; then + # migrate old files. + echo "Importing old SSL files from /opt/csw/apache2/etc." >&2 + cp -p $OLD_CERT_FILE $NEW_CERT_FILE + cp -p $OLD_KEY_FILE $NEW_KEY_FILE + else + echo Generating dummy ssl key and certificate... >&2 + # this is likely overkill for a dummy cert, but why not + cat </dev/null 2>&1 +TS +Westfarthing +Hobbiton + + +`hostname` +bilbo at example.net + + +EOF + chown root:bin $NEW_CERT_FILE $NEW_KEY_FILE + fi + + cat < Revision: 11785 http://gar.svn.sourceforge.net/gar/?rev=11785&view=rev Author: bdwalton Date: 2010-12-05 03:24:05 +0000 (Sun, 05 Dec 2010) Log Message: ----------- apache2: fix the post-merge addition of the ssl_cert_migration handler Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/Makefile Modified: csw/mgar/pkg/apache2/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache2/trunk/Makefile 2010-12-05 03:23:14 UTC (rev 11784) +++ csw/mgar/pkg/apache2/trunk/Makefile 2010-12-05 03:24:05 UTC (rev 11785) @@ -246,6 +246,6 @@ echo "...$$f"; \ mv $$f $$f.CSW; \ $(abspath $(FILEDIR))/build_cas_template $$f > $$f; \ - $(abspath $(FILEDIR))/ssl_cas_template server.crt > ssl_cert_migration.CSW; \ - done ) + done; \ + cp $(abspath $(FILEDIR))/ssl_cas_template ssl_cert_migration.CSW ) @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rthurner at users.sourceforge.net Sun Dec 5 09:27:13 2010 From: rthurner at users.sourceforge.net (rthurner at users.sourceforge.net) Date: Sun, 05 Dec 2010 08:27:13 +0000 Subject: [csw-devel] SF.net SVN: gar:[11786] csw/mgar/pkg Message-ID: Revision: 11786 http://gar.svn.sourceforge.net/gar/?rev=11786&view=rev Author: rthurner Date: 2010-12-05 08:27:13 +0000 (Sun, 05 Dec 2010) Log Message: ----------- neon: try a version specific package Added Paths: ----------- csw/mgar/pkg/neon29/ csw/mgar/pkg/neon29/branches/ csw/mgar/pkg/neon29/tags/ csw/mgar/pkg/neon29/trunk/ csw/mgar/pkg/neon29/trunk/Makefile csw/mgar/pkg/neon29/trunk/checksums csw/mgar/pkg/neon29/trunk/files/ Property changes on: csw/mgar/pkg/neon29/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/neon29/trunk/Makefile =================================================================== --- csw/mgar/pkg/neon29/trunk/Makefile (rev 0) +++ csw/mgar/pkg/neon29/trunk/Makefile 2010-12-05 08:27:13 UTC (rev 11786) @@ -0,0 +1,30 @@ +GARNAME = neon29 +GARVERSION = 0.29.5 +DISTNAME = neon-$(GARVERSION) +CATEGORIES = lib + +DESCRIPTION = Neon HTTP and WebDAV client library +define BLURB + neon is an HTTP and WebDAV client library for Unix systems, with a C language + API. It provides high-level interfaces to HTTP/1.1 and WebDAV methods, and a + low-level interface to HTTP request/response handling, allowing new methods to + be easily implemented. +endef + +MASTER_SITES = http://www.webdav.org/neon/ +DISTFILES = $(DISTNAME).tar.gz + +DEP_PKGS = CSWexpat CSWosslrt CSWzlib CSWggettextrt CSWpakchois CSWlibproxy CSWkrb5lib + +# We define upstream file regex so we can be notifed of new upstream software release +UFILES_REGEX = $(DISTNAME)-(\d+(?:\.\d+)*).tar.gz + +CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += --enable-shared --disable-static +CONFIGURE_ARGS += --with-ssl=openssl +CONFIGURE_ARGS += --with-expat +CONFIGURE_ARGS = --with-libproxy --with-packchois + +TEST_TARGET = check + +include gar/category.mk Property changes on: csw/mgar/pkg/neon29/trunk/Makefile ___________________________________________________________________ Added: svn:keywords + Id Added: csw/mgar/pkg/neon29/trunk/checksums =================================================================== --- csw/mgar/pkg/neon29/trunk/checksums (rev 0) +++ csw/mgar/pkg/neon29/trunk/checksums 2010-12-05 08:27:13 UTC (rev 11786) @@ -0,0 +1 @@ +ff369e69ef0f0143beb5626164e87ae2 neon-0.29.5.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rthurner at users.sourceforge.net Sun Dec 5 10:04:17 2010 From: rthurner at users.sourceforge.net (rthurner at users.sourceforge.net) Date: Sun, 05 Dec 2010 09:04:17 +0000 Subject: [csw-devel] SF.net SVN: gar:[11787] csw/mgar/pkg/libneon29/ Message-ID: Revision: 11787 http://gar.svn.sourceforge.net/gar/?rev=11787&view=rev Author: rthurner Date: 2010-12-05 09:04:17 +0000 (Sun, 05 Dec 2010) Log Message: ----------- neon is a library Added Paths: ----------- csw/mgar/pkg/libneon29/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 5 14:24:20 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 05 Dec 2010 13:24:20 +0000 Subject: [csw-devel] SF.net SVN: gar:[11788] csw/mgar/pkg/apache2/trunk/files/ssl_cas_template Message-ID: Revision: 11788 http://gar.svn.sourceforge.net/gar/?rev=11788&view=rev Author: bdwalton Date: 2010-12-05 13:24:19 +0000 (Sun, 05 Dec 2010) Log Message: ----------- apache2: force owner/group on ssl key files Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/ssl_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/ssl_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/ssl_cas_template 2010-12-05 09:04:17 UTC (rev 11787) +++ csw/mgar/pkg/apache2/trunk/files/ssl_cas_template 2010-12-05 13:24:19 UTC (rev 11788) @@ -18,6 +18,7 @@ echo "Importing old SSL files from /opt/csw/apache2/etc." >&2 cp -p $OLD_CERT_FILE $NEW_CERT_FILE cp -p $OLD_KEY_FILE $NEW_KEY_FILE + chown root:bin $NEW_CERT_FILE $NEW_KEY_FILE else echo Generating dummy ssl key and certificate... >&2 # this is likely overkill for a dummy cert, but why not @@ -32,9 +33,8 @@ EOF - chown root:bin $NEW_CERT_FILE $NEW_KEY_FILE + chown root:bin $NEW_CERT_FILE $NEW_KEY_FILE fi - cat < Revision: 11789 http://gar.svn.sourceforge.net/gar/?rev=11789&view=rev Author: rthurner Date: 2010-12-05 17:31:22 +0000 (Sun, 05 Dec 2010) Log Message: ----------- update home dir Modified Paths: -------------- csw/mgar/pkg/bdb51/trunk/Makefile csw/mgar/pkg/kdesdk/trunk/checksums csw/mgar/pkg/maven3/trunk/Makefile Removed Paths: ------------- csw/mgar/pkg/neon29/ Modified: csw/mgar/pkg/bdb51/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb51/trunk/Makefile 2010-12-05 13:24:19 UTC (rev 11788) +++ csw/mgar/pkg/bdb51/trunk/Makefile 2010-12-05 17:31:22 UTC (rev 11789) @@ -52,14 +52,19 @@ PACKAGES = CSWbdb51 CSWbdb51devel CSWbdb51doc CATALOGNAME_CSWbdb51 = berkeleydb51 +SPKG_DESC_CSWbdb51 = BerkeleyDB 5.1 embedded database libraries and utilities +RUNTIME_DEP_PKGS_CSWbdb51 += CSWbdb51devel + CATALOGNAME_CSWbdb51devel = berkeleydb51_devel +SPKG_DESC_CSWbdb51devel = BerkeleyDB 5.1 development support +PKGFILES_CSWbdb51devel = $(PKGFILES_DEVEL) + CATALOGNAME_CSWbdb51doc = berkeleydb51_doc +SPKG_DESC_CSWbdb51doc = BerkeleyDB 5.1 documentation +PKGFILES_CSWbdb51doc = $(PKGFILES_DOC) ARCHALL_CSWbdb51doc = 1 -SPKG_DESC_CSWbdb51 = BerkeleyDB 5.1 embedded database libraries and utilities -SPKG_DESC_CSWbdb51devel = BerkeleyDB 5.1 development support -SPKG_DESC_CSWbdb51doc = BerkeleyDB 5.1 documentation SPKG_SOURCEURL = http://www.oracle.com/technology/software/products/berkeley-db/db/index.html @@ -73,8 +78,6 @@ # because GAR expects license to be a file instead of a directory EXTRA_MERGE_EXCLUDE_FILES = .*/license.* -PKGFILES_CSWbdb51doc = $(PKGFILES_DOC) -PKGFILES_CSWbdb51devel = $(PKGFILES_DEVEL) include gar/category.mk Modified: csw/mgar/pkg/kdesdk/trunk/checksums =================================================================== --- csw/mgar/pkg/kdesdk/trunk/checksums 2010-12-05 13:24:19 UTC (rev 11788) +++ csw/mgar/pkg/kdesdk/trunk/checksums 2010-12-05 17:31:22 UTC (rev 11789) @@ -1,2 +1,2 @@ -7df8be6b06ba4e25d14ea914ce7e6107 download/CSWkdesdkgcc.gspec -d41d8cd98f00b204e9800998ecf8427e download/CSWkdesdkgcc.depend +248a7a1a7bd0b4cad84e8dd7ffa75145 download/CSWkdesdkgcc.gspec +ad711d1ce09242bd13b73a9a005f3143 download/kdesdk-3.5.10.tar.bz2 Modified: csw/mgar/pkg/maven3/trunk/Makefile =================================================================== --- csw/mgar/pkg/maven3/trunk/Makefile 2010-12-05 13:24:19 UTC (rev 11788) +++ csw/mgar/pkg/maven3/trunk/Makefile 2010-12-05 17:31:22 UTC (rev 11789) @@ -1,6 +1,6 @@ GARNAME = maven3 GARVERSION = 3.0 -CATEGORIES = devel +CATEGORIES = java DESCRIPTION = Java software project management and comprehension tool define BLURB This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rthurner at users.sourceforge.net Sun Dec 5 18:35:54 2010 From: rthurner at users.sourceforge.net (rthurner at users.sourceforge.net) Date: Sun, 05 Dec 2010 17:35:54 +0000 Subject: [csw-devel] SF.net SVN: gar:[11790] csw/mgar/pkg Message-ID: Revision: 11790 http://gar.svn.sourceforge.net/gar/?rev=11790&view=rev Author: rthurner Date: 2010-12-05 17:35:53 +0000 (Sun, 05 Dec 2010) Log Message: ----------- erlang, try to convert to new gar Added Paths: ----------- csw/mgar/pkg/erlang/ csw/mgar/pkg/erlang/branches/ csw/mgar/pkg/erlang/tags/ csw/mgar/pkg/erlang/trunk/ csw/mgar/pkg/erlang/trunk/Makefile csw/mgar/pkg/erlang/trunk/checksums csw/mgar/pkg/erlang/trunk/files/ Property changes on: csw/mgar/pkg/erlang/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/erlang/trunk/Makefile =================================================================== --- csw/mgar/pkg/erlang/trunk/Makefile (rev 0) +++ csw/mgar/pkg/erlang/trunk/Makefile 2010-12-05 17:35:53 UTC (rev 11790) @@ -0,0 +1,23 @@ +# $Id$ +GARNAME = erlang +GARVERSION = 1.0 +CATEGORIES = category + +DESCRIPTION = Brief description +define BLURB + Long description +endef + +MASTER_SITES = +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz + +# File name regex to get notifications about upstream software releases +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz + +# If the url used to check for software update is different of MASTER_SITES, then +# uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES +# UPSTREAM_MASTER_SITES = + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk Property changes on: csw/mgar/pkg/erlang/trunk/Makefile ___________________________________________________________________ Added: svn:keywords + Id Added: csw/mgar/pkg/erlang/trunk/checksums =================================================================== This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rthurner at users.sourceforge.net Sun Dec 5 18:39:59 2010 From: rthurner at users.sourceforge.net (rthurner at users.sourceforge.net) Date: Sun, 05 Dec 2010 17:39:59 +0000 Subject: [csw-devel] SF.net SVN: gar:[11791] csw/mgar/pkg Message-ID: Revision: 11791 http://gar.svn.sourceforge.net/gar/?rev=11791&view=rev Author: rthurner Date: 2010-12-05 17:39:59 +0000 (Sun, 05 Dec 2010) Log Message: ----------- apr-iconv gar first try Added Paths: ----------- csw/mgar/pkg/apr-iconv/ csw/mgar/pkg/apr-iconv/branches/ csw/mgar/pkg/apr-iconv/tags/ csw/mgar/pkg/apr-iconv/trunk/ csw/mgar/pkg/apr-iconv/trunk/Makefile csw/mgar/pkg/apr-iconv/trunk/checksums csw/mgar/pkg/apr-iconv/trunk/files/ Property changes on: csw/mgar/pkg/apr-iconv/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/apr-iconv/trunk/Makefile =================================================================== --- csw/mgar/pkg/apr-iconv/trunk/Makefile (rev 0) +++ csw/mgar/pkg/apr-iconv/trunk/Makefile 2010-12-05 17:39:59 UTC (rev 11791) @@ -0,0 +1,25 @@ +GARNAME = apr-iconv +GARVERSION = 1.2.1 +CATEGORIES = lib + +DESCRIPTION = Apache Portable Runtime Utilities +define BLURB + The mission of the Apache Portable Runtime (APR) project is to create and + maintain software libraries that provide a predictable and consistent + interface to underlying platform-specific implementations. +endef + +MASTER_SITES = http://apache.crihan.fr/dist/apr/ +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +LICENSE = LICENSE + +# We define upstream file regex so we can be notifed of new upstream software release +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz + +CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += --with-apr=$(prefix)/bin/apr-1-config + +BUILD64 = 1 +STRIP_LIBTOOL = 1 + +include gar/category.mk Property changes on: csw/mgar/pkg/apr-iconv/trunk/Makefile ___________________________________________________________________ Added: svn:keywords + Id Added: csw/mgar/pkg/apr-iconv/trunk/checksums =================================================================== --- csw/mgar/pkg/apr-iconv/trunk/checksums (rev 0) +++ csw/mgar/pkg/apr-iconv/trunk/checksums 2010-12-05 17:39:59 UTC (rev 11791) @@ -0,0 +1 @@ +4a27a1480e6862543396e59c4ffcdeb4 apr-iconv-1.2.1.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rthurner at users.sourceforge.net Sun Dec 5 18:42:17 2010 From: rthurner at users.sourceforge.net (rthurner at users.sourceforge.net) Date: Sun, 05 Dec 2010 17:42:17 +0000 Subject: [csw-devel] SF.net SVN: gar:[11792] csw/mgar/pkg/gstplugins_bad/trunk/Makefile Message-ID: Revision: 11792 http://gar.svn.sourceforge.net/gar/?rev=11792&view=rev Author: rthurner Date: 2010-12-05 17:42:17 +0000 (Sun, 05 Dec 2010) Log Message: ----------- upgrade version Modified Paths: -------------- csw/mgar/pkg/gstplugins_bad/trunk/Makefile Modified: csw/mgar/pkg/gstplugins_bad/trunk/Makefile =================================================================== --- csw/mgar/pkg/gstplugins_bad/trunk/Makefile 2010-12-05 17:39:59 UTC (rev 11791) +++ csw/mgar/pkg/gstplugins_bad/trunk/Makefile 2010-12-05 17:42:17 UTC (rev 11792) @@ -1,5 +1,5 @@ GARNAME = gst-plugins-bad -GARVERSION = 0.10.17 +GARVERSION = 0.10.20 CATEGORIES = gnome DESCRIPTION = GStreamer plugins (Bad) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 5 18:55:13 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 05 Dec 2010 17:55:13 +0000 Subject: [csw-devel] SF.net SVN: gar:[11793] csw/mgar/pkg/apache2/trunk/files/build_cas_template Message-ID: Revision: 11793 http://gar.svn.sourceforge.net/gar/?rev=11793&view=rev Author: bdwalton Date: 2010-12-05 17:55:12 +0000 (Sun, 05 Dec 2010) Log Message: ----------- apache2: change the way we update paths for ssl key files during migration Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/build_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/build_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-05 17:42:17 UTC (rev 11792) +++ csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-05 17:55:12 UTC (rev 11793) @@ -24,12 +24,13 @@ \${PIR}/\$AP2_DIR/sbin/update20to22 \$NEW_CONF_FILE >&2 fi + # handle the new path to default ssl key files. + perl -pi \ + -e "s#/opt/csw/apache2/etc/server.crt#/etc/opt/csw/apache2/server.crt#; s#/opt/csw/apache2/etc/server.key#/etc/opt/csw/apache2/server.key#" \$NEW_CONF_FILE + # ensure we use the config files from the new location perl -pi \ -e "s/etc\//\/etc\/opt\/csw\/apache2\//" \$NEW_CONF_FILE - - perl -pi \ - -e "s/\/opt\/csw\/apache2\/\/etc\/opt/\/etc\/opt\/csw\/apache2\//" \$NEW_CONF_FILE else # so, we're not an existing or 'needs migration' install, we must # install from the templates. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Sun Dec 5 23:59:11 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Sun, 05 Dec 2010 22:59:11 +0000 Subject: [csw-devel] SF.net SVN: gar:[11794] csw/mgar/gar/v2/lib/python Message-ID: Revision: 11794 http://gar.svn.sourceforge.net/gar/?rev=11794&view=rev Author: wahwah Date: 2010-12-05 22:59:11 +0000 (Sun, 05 Dec 2010) Log Message: ----------- checkpkg: New check, docdir A package is allowed to have files in /opt/csw/share/doc/, but not in any other directory under /opt/csw/shared/doc. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-05 17:55:12 UTC (rev 11793) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-05 22:59:11 UTC (rev 11794) @@ -1194,6 +1194,22 @@ % (binary_info["soname"], binary_info["base_name"])) +def CheckDocDir(pkg_data, error_mgr, logger, messenger): + pkgname = pkg_data["basic_stats"]["pkgname"] + docpath_re = re.compile(r"/opt/csw/share/doc/(?P[^/]+)/.*") + for pkgmap_entry in pkg_data["pkgmap"]: + if "path" not in pkgmap_entry: continue + if not pkgmap_entry["path"]: continue + m = docpath_re.match(pkgmap_entry["path"]) + if m: + if m.groupdict()["docname"] != pkg_data["basic_stats"]["catalogname"]: + error_mgr.ReportError( + "wrong-docdir", + "expected=/opt/csw/shared/doc/%s/... " + "in-package=%s" + % (pkg_data["basic_stats"]["catalogname"], + pkgmap_entry["path"])) + def CheckSonameMustNotBeEqualToFileNameIfFilenameEndsWithSo( pkg_data, error_mgr, logger, messenger): pass Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-05 17:55:12 UTC (rev 11793) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-05 22:59:11 UTC (rev 11794) @@ -1431,6 +1431,7 @@ FUNCTION_NAME = 'CheckSharedLibraryNameMustBeAsubstringOfSoname' def CheckpkgTest(self): self.pkg_data = neon_stats[0] + # TODO: Implement this class TestCheckSharedLibraryNameMustBeAsubstringOfSonameGood( @@ -1444,5 +1445,24 @@ 'soname=libneon.so.27 filename=foo.so.1') +class TestCheckDocDir(CheckpkgUnitTestHelper, unittest.TestCase): + FUNCTION_NAME = 'CheckDocDir' + def CheckpkgTest(self): + self.pkg_data = neon_stats[0] + self.pkg_data["pkgmap"].append({ + "class": "none", + "group": "bin", + "line": "", + "mode": '0755', + "path": "/opt/csw/share/doc/alien/license", + "type": "f", + "user": "root" + }) + self.error_mgr_mock.ReportError( + 'wrong-docdir', + 'expected=/opt/csw/shared/doc/neon/... ' + 'in-package=/opt/csw/share/doc/alien/license') + + if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 6 00:15:04 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Sun, 05 Dec 2010 23:15:04 +0000 Subject: [csw-devel] SF.net SVN: gar:[11795] csw/mgar/gar/v2/lib/python/checkpkg.py Message-ID: Revision: 11795 http://gar.svn.sourceforge.net/gar/?rev=11795&view=rev Author: wahwah Date: 2010-12-05 23:15:04 +0000 (Sun, 05 Dec 2010) Log Message: ----------- Merge branch 'master' of file:///home/maciej/public_html/opencsw Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg.py Modified: csw/mgar/gar/v2/lib/python/checkpkg.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-05 22:59:11 UTC (rev 11794) +++ csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-05 23:15:04 UTC (rev 11795) @@ -616,8 +616,9 @@ def Emulate64BitSymlinks(self, runpath_list): """Need to emulate the 64 -> amd64, 64 -> sparcv9 symlink - Since we don't know the architecture, we'll adding both amd64 and sparcv9. - It should be safe. + Since we don't know the architecture, we are adding both amd64 and + sparcv9. It should be safe - there are other checks that make sure + that right architectures are in the right directories. """ key = tuple(runpath_list) if key not in self.symlink64_cache: @@ -633,15 +634,7 @@ def SanitizeRunpath(self, runpath): if runpath not in self.runpath_sanitize_cache: - new_runpath = runpath - while True: - if new_runpath.endswith("/"): - new_runpath = new_runpath[:-1] - elif "//" in new_runpath: - new_runpath = new_runpath.replace("//", "/") - else: - break - self.runpath_sanitize_cache[runpath] = new_runpath + self.runpath_sanitize_cache[runpath] = os.path.normpath(runpath) return self.runpath_sanitize_cache[runpath] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From jake_goerzen at users.sourceforge.net Mon Dec 6 00:44:28 2010 From: jake_goerzen at users.sourceforge.net (jake_goerzen at users.sourceforge.net) Date: Sun, 05 Dec 2010 23:44:28 +0000 Subject: [csw-devel] SF.net SVN: gar:[11796] csw/mgar/pkg/dovecot/trunk Message-ID: Revision: 11796 http://gar.svn.sourceforge.net/gar/?rev=11796&view=rev Author: jake_goerzen Date: 2010-12-05 23:44:28 +0000 (Sun, 05 Dec 2010) Log Message: ----------- bump version to 1.2.16, depend on CSWsqlite3rt Modified Paths: -------------- csw/mgar/pkg/dovecot/trunk/Makefile csw/mgar/pkg/dovecot/trunk/checksums Modified: csw/mgar/pkg/dovecot/trunk/Makefile =================================================================== --- csw/mgar/pkg/dovecot/trunk/Makefile 2010-12-05 23:15:04 UTC (rev 11795) +++ csw/mgar/pkg/dovecot/trunk/Makefile 2010-12-05 23:44:28 UTC (rev 11796) @@ -5,7 +5,7 @@ # - USERGROUP doesn't work yet, wrong usage? # - /var/run/dovecot instead of /var/opt/csw/run? GARNAME = dovecot -GARVERSION = 1.2.15 +GARVERSION = 1.2.16 CATEGORIES = server DESCRIPTION = Secure IMAP server @@ -34,7 +34,7 @@ SPKG_DESC_CSWdovecot-sieve = Dovecot secure IMAP server sieve plugin RUNTIME_DEP_PKGS_CSWdovecot = CSWosslrt CSWmysql5rt CSWoldaprt CSWlibpq -RUNTIME_DEP_PKGS_CSWdovecot += CSWsasl CSWsqlite3 CSWzlib CSWlibnet +RUNTIME_DEP_PKGS_CSWdovecot += CSWsasl CSWsqlite3rt CSWzlib CSWlibnet RUNTIME_DEP_PKGS_CSWdovecot += CSWbzip2 CSWiconv CSWcswclassutils RUNTIME_DEP_PKGS_CSWdovecot += CSWkrb5lib RUNTIME_DEP_PKGS_CSWdovecot-devel = CSWdovecot Modified: csw/mgar/pkg/dovecot/trunk/checksums =================================================================== --- csw/mgar/pkg/dovecot/trunk/checksums 2010-12-05 23:15:04 UTC (rev 11795) +++ csw/mgar/pkg/dovecot/trunk/checksums 2010-12-05 23:44:28 UTC (rev 11796) @@ -1 +1 @@ -15fe307fe85a87cb7a697655dbab29d0 dovecot-1.2.15.tar.gz +8bbdf4e96e2e0f5749432ca9cb209a38 dovecot-1.2.16.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 6 01:37:39 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 06 Dec 2010 00:37:39 +0000 Subject: [csw-devel] SF.net SVN: gar:[11797] csw/mgar/pkg/apache2/trunk/files/build_cas_template Message-ID: Revision: 11797 http://gar.svn.sourceforge.net/gar/?rev=11797&view=rev Author: bdwalton Date: 2010-12-06 00:37:38 +0000 (Mon, 06 Dec 2010) Log Message: ----------- apache2: handle migration of some var/ paths in existing configs Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/build_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/build_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-05 23:44:28 UTC (rev 11796) +++ csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-06 00:37:38 UTC (rev 11797) @@ -28,6 +28,13 @@ perl -pi \ -e "s#/opt/csw/apache2/etc/server.crt#/etc/opt/csw/apache2/server.crt#; s#/opt/csw/apache2/etc/server.key#/etc/opt/csw/apache2/server.key#" \$NEW_CONF_FILE + # update various uses of the var/ paths. + perl -pi \ + -e "s#"/opt/csw/apache2/var/log/#/var/opt/csw/log/apache2/#" \ + -e "s#\"/opt/csw/apache2/var/#\"/var/opt/csw/apache2/#" \ + -e "s#\"var/log/#\"/var/opt/csw/log/apache2/#" \ + \$NEW_CONF_FILE + # ensure we use the config files from the new location perl -pi \ -e "s/etc\//\/etc\/opt\/csw\/apache2\//" \$NEW_CONF_FILE This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 6 03:15:39 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 06 Dec 2010 02:15:39 +0000 Subject: [csw-devel] SF.net SVN: gar:[11798] csw/mgar/pkg/apache2/trunk Message-ID: Revision: 11798 http://gar.svn.sourceforge.net/gar/?rev=11798&view=rev Author: bdwalton Date: 2010-12-06 02:15:39 +0000 (Mon, 06 Dec 2010) Log Message: ----------- apache2: handle the index.html file again (accidentally dropped with postinstall script) Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/apache2/trunk/files/index_cas_template Modified: csw/mgar/pkg/apache2/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache2/trunk/Makefile 2010-12-06 00:37:38 UTC (rev 11797) +++ csw/mgar/pkg/apache2/trunk/Makefile 2010-12-06 02:15:39 UTC (rev 11798) @@ -198,7 +198,7 @@ PKGFILES_CSWap2worker = .*share/doc/ap2_worker.* .*sbin/httpd.worker PKGFILES_CSWapache2rt = .*share/doc/apache2rt.* -PROTOTYPE_FILTER = gawk '$$$$3 ~ /etc\/opt\/csw\/apache2/ && $$$$1 == "f" && $$$$3 !~ /CSW/ && $$$$3 !~ /original/ {$$$$1 = "e"; $$$$2 = "build"}; $$$$3 ~ /ssl_cert_migration.CSW/ {$$$$1 = "e"; $$$$2 = "build"}; {print}' +PROTOTYPE_FILTER = gawk '$$$$3 ~ /etc\/opt\/csw\/apache2/ && $$$$1 == "f" && $$$$3 !~ /CSW/ && $$$$3 !~ /original/ {$$$$1 = "e"; $$$$2 = "build"}; $$$$3 ~ /ssl_cert_migration.CSW/ {$$$$1 = "e"; $$$$2 = "build"}; $$$$3 ~ /index.html.CSW/ {$$$$1 = "e"; $$$$2 = "build"}; {print}' include gar/category.mk @@ -247,5 +247,8 @@ mv $$f $$f.CSW; \ $(abspath $(FILEDIR))/build_cas_template $$f > $$f; \ done; \ - cp $(abspath $(FILEDIR))/ssl_cas_template ssl_cert_migration.CSW ) + cd $(PKGROOT)/opt/csw/apache2/share/htdocs; \ + rm index.html; \ + cp $(abspath $(FILEDIR))/index_cas_template index.html.CSW; \ + cp $(abspath $(FILEDIR))/ssl_cas_template ssl_cert_migration.CSW ) @$(MAKECOOKIE) Added: csw/mgar/pkg/apache2/trunk/files/index_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/index_cas_template (rev 0) +++ csw/mgar/pkg/apache2/trunk/files/index_cas_template 2010-12-06 02:15:39 UTC (rev 11798) @@ -0,0 +1,16 @@ +#!/bin/sh + +PIR=${PKG_INSTALL_ROOT:-/} +INDEX_HTML=${PIR}/opt/csw/apache2/share/htdocs/index.html + + + +if [ "$1" = install ]; then + if [ ! -f "$INDEX_HTML" ]; then + echo "Installing default index.html..." >&2 + echo "

It works!

" > ${INDEX_HTML} + fi + + # create our 'template' version of the file regardless of normal version + echo "

It works!

" +fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 6 03:34:24 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 06 Dec 2010 02:34:24 +0000 Subject: [csw-devel] SF.net SVN: gar:[11799] csw/mgar/pkg/apache2/trunk/files/build_cas_template Message-ID: Revision: 11799 http://gar.svn.sourceforge.net/gar/?rev=11799&view=rev Author: bdwalton Date: 2010-12-06 02:34:23 +0000 (Mon, 06 Dec 2010) Log Message: ----------- apache2: collapse several perl calls into one during the config migration Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/build_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/build_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-06 02:15:39 UTC (rev 11798) +++ csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-06 02:34:23 UTC (rev 11799) @@ -25,19 +25,15 @@ fi # handle the new path to default ssl key files. - perl -pi \ - -e "s#/opt/csw/apache2/etc/server.crt#/etc/opt/csw/apache2/server.crt#; s#/opt/csw/apache2/etc/server.key#/etc/opt/csw/apache2/server.key#" \$NEW_CONF_FILE - # update various uses of the var/ paths. + # ensure we use the config files from the new location perl -pi \ - -e "s#"/opt/csw/apache2/var/log/#/var/opt/csw/log/apache2/#" \ + -e "s#/opt/csw/apache2/etc/server.crt#/etc/opt/csw/apache2/server.crt#; s#/opt/csw/apache2/etc/server.key#/etc/opt/csw/apache2/server.key#" \ + -e "s#/opt/csw/apache2/var/log/#/var/opt/csw/log/apache2/#" \ -e "s#\"/opt/csw/apache2/var/#\"/var/opt/csw/apache2/#" \ -e "s#\"var/log/#\"/var/opt/csw/log/apache2/#" \ + -e "s/etc\//\/etc\/opt\/csw\/apache2\//" \ \$NEW_CONF_FILE - - # ensure we use the config files from the new location - perl -pi \ - -e "s/etc\//\/etc\/opt\/csw\/apache2\//" \$NEW_CONF_FILE else # so, we're not an existing or 'needs migration' install, we must # install from the templates. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 6 04:00:26 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 06 Dec 2010 03:00:26 +0000 Subject: [csw-devel] SF.net SVN: gar:[11800] csw/mgar/pkg/coreutils/trunk/Makefile Message-ID: Revision: 11800 http://gar.svn.sourceforge.net/gar/?rev=11800&view=rev Author: bdwalton Date: 2010-12-06 03:00:26 +0000 (Mon, 06 Dec 2010) Log Message: ----------- coreutils: version bump to 8.7 Modified Paths: -------------- csw/mgar/pkg/coreutils/trunk/Makefile Modified: csw/mgar/pkg/coreutils/trunk/Makefile =================================================================== --- csw/mgar/pkg/coreutils/trunk/Makefile 2010-12-06 02:34:23 UTC (rev 11799) +++ csw/mgar/pkg/coreutils/trunk/Makefile 2010-12-06 03:00:26 UTC (rev 11800) @@ -1,5 +1,5 @@ GARNAME = coreutils -GARVERSION = 8.6 +GARVERSION = 8.7 CATEGORIES = utils # seq has issues related to the handling of long double's with -O2. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 6 04:04:22 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 06 Dec 2010 03:04:22 +0000 Subject: [csw-devel] SF.net SVN: gar:[11801] csw/mgar/pkg/apache2/trunk/files/build_cas_template Message-ID: Revision: 11801 http://gar.svn.sourceforge.net/gar/?rev=11801&view=rev Author: bdwalton Date: 2010-12-06 03:04:22 +0000 (Mon, 06 Dec 2010) Log Message: ----------- apache2: split out two commands to separate -e statements in config migration Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/build_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/build_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-06 03:00:26 UTC (rev 11800) +++ csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-06 03:04:22 UTC (rev 11801) @@ -28,7 +28,8 @@ # update various uses of the var/ paths. # ensure we use the config files from the new location perl -pi \ - -e "s#/opt/csw/apache2/etc/server.crt#/etc/opt/csw/apache2/server.crt#; s#/opt/csw/apache2/etc/server.key#/etc/opt/csw/apache2/server.key#" \ + -e "s#/opt/csw/apache2/etc/server.crt#/etc/opt/csw/apache2/server.crt#" \ + -e s#/opt/csw/apache2/etc/server.key#/etc/opt/csw/apache2/server.key#" \ -e "s#/opt/csw/apache2/var/log/#/var/opt/csw/log/apache2/#" \ -e "s#\"/opt/csw/apache2/var/#\"/var/opt/csw/apache2/#" \ -e "s#\"var/log/#\"/var/opt/csw/log/apache2/#" \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 6 04:15:58 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 06 Dec 2010 03:15:58 +0000 Subject: [csw-devel] SF.net SVN: gar:[11802] csw/mgar/pkg/apache2/trunk/files/build_cas_template Message-ID: Revision: 11802 http://gar.svn.sourceforge.net/gar/?rev=11802&view=rev Author: bdwalton Date: 2010-12-06 03:15:58 +0000 (Mon, 06 Dec 2010) Log Message: ----------- apache2: correct missing quote in configuration migration commands Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/build_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/build_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-06 03:04:22 UTC (rev 11801) +++ csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-06 03:15:58 UTC (rev 11802) @@ -29,7 +29,7 @@ # ensure we use the config files from the new location perl -pi \ -e "s#/opt/csw/apache2/etc/server.crt#/etc/opt/csw/apache2/server.crt#" \ - -e s#/opt/csw/apache2/etc/server.key#/etc/opt/csw/apache2/server.key#" \ + -e "s#/opt/csw/apache2/etc/server.key#/etc/opt/csw/apache2/server.key#" \ -e "s#/opt/csw/apache2/var/log/#/var/opt/csw/log/apache2/#" \ -e "s#\"/opt/csw/apache2/var/#\"/var/opt/csw/apache2/#" \ -e "s#\"var/log/#\"/var/opt/csw/log/apache2/#" \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 6 04:27:58 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 06 Dec 2010 03:27:58 +0000 Subject: [csw-devel] SF.net SVN: gar:[11803] csw/mgar/pkg/apache2/trunk/files/build_cas_template Message-ID: Revision: 11803 http://gar.svn.sourceforge.net/gar/?rev=11803&view=rev Author: bdwalton Date: 2010-12-06 03:27:58 +0000 (Mon, 06 Dec 2010) Log Message: ----------- apache2: use standard s/// instead of s### with less readable \/ in config migration perl scripting Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/build_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/build_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-06 03:15:58 UTC (rev 11802) +++ csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-06 03:27:58 UTC (rev 11803) @@ -28,11 +28,11 @@ # update various uses of the var/ paths. # ensure we use the config files from the new location perl -pi \ - -e "s#/opt/csw/apache2/etc/server.crt#/etc/opt/csw/apache2/server.crt#" \ - -e "s#/opt/csw/apache2/etc/server.key#/etc/opt/csw/apache2/server.key#" \ - -e "s#/opt/csw/apache2/var/log/#/var/opt/csw/log/apache2/#" \ - -e "s#\"/opt/csw/apache2/var/#\"/var/opt/csw/apache2/#" \ - -e "s#\"var/log/#\"/var/opt/csw/log/apache2/#" \ + -e "s/\/opt\/csw\/apache2\/etc\/server.crt/\/etc\/opt\/csw\/apache2\/server.crt/" \ + -e "s/\/opt\/csw\/apache2\/etc\/server.key/\/etc\/opt\/csw\/apache2\/server.key/" \ + -e "s/\/opt\/csw\/apache2\/var\/log\//\/var\/opt\/csw\/log\/apache2\//" \ + -e "s/\"\/opt\/csw\/apache2\/var\//\"\/var\/opt\/csw\/apache2\//" \ + -e "s/\"var\/log\//\"\/var\/opt\/csw\/log\/apache2\//" \ -e "s/etc\//\/etc\/opt\/csw\/apache2\//" \ \$NEW_CONF_FILE else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 14:03:02 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 13:03:02 +0000 Subject: [csw-devel] SF.net SVN: gar:[11804] csw/mgar/pkg/gnuplot/trunk Message-ID: Revision: 11804 http://gar.svn.sourceforge.net/gar/?rev=11804&view=rev Author: dmichelsen Date: 2010-12-06 13:03:02 +0000 (Mon, 06 Dec 2010) Log Message: ----------- gnuplot: Update to 4.4.2 and some minor patching Modified Paths: -------------- csw/mgar/pkg/gnuplot/trunk/Makefile csw/mgar/pkg/gnuplot/trunk/checksums Added Paths: ----------- csw/mgar/pkg/gnuplot/trunk/files/0001-Remove-definition-unclear-why-leaving-it-in-causes-e.patch Modified: csw/mgar/pkg/gnuplot/trunk/Makefile =================================================================== --- csw/mgar/pkg/gnuplot/trunk/Makefile 2010-12-06 03:27:58 UTC (rev 11803) +++ csw/mgar/pkg/gnuplot/trunk/Makefile 2010-12-06 13:03:02 UTC (rev 11804) @@ -1,16 +1,56 @@ GARNAME = gnuplot -GARVERSION = 4.4.0 +GARVERSION = 4.4.2 CATEGORIES = utils DESCRIPTION = The Gnuplot Plotting Utility define BLURB - The Gnuplot Plotting Utility. + The Gnuplot Plotting Utility. endef MASTER_SITES = $(SF_MIRRORS) DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +PATCHFILES = 0001-Remove-definition-unclear-why-leaving-it-in-causes-e.patch + # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +VENDOR_URL = http://www.gnuplot.info/ + +LICENSE = Copyright + +RUNTIME_DEP_PKGS_CSWgnuplot += CSWwxwidgetscommon +RUNTIME_DEP_PKGS_CSWgnuplot += CSWlibatk +RUNTIME_DEP_PKGS_CSWgnuplot += CSWpango +RUNTIME_DEP_PKGS_CSWgnuplot += CSWggettextrt +RUNTIME_DEP_PKGS_CSWgnuplot += CSWpng +RUNTIME_DEP_PKGS_CSWgnuplot += CSWemacscommon +RUNTIME_DEP_PKGS_CSWgnuplot += CSWfconfig +RUNTIME_DEP_PKGS_CSWgnuplot += CSWlibcairo +RUNTIME_DEP_PKGS_CSWgnuplot += CSWiconv +RUNTIME_DEP_PKGS_CSWgnuplot += CSWwxwidgetsgtk2 +RUNTIME_DEP_PKGS_CSWgnuplot += CSWreadline +RUNTIME_DEP_PKGS_CSWgnuplot += CSWgtk2 +RUNTIME_DEP_PKGS_CSWgnuplot += CSWgd +RUNTIME_DEP_PKGS_CSWgnuplot += CSWxpm +RUNTIME_DEP_PKGS_CSWgnuplot += CSWncurses +RUNTIME_DEP_PKGS_CSWgnuplot += CSWlua +RUNTIME_DEP_PKGS_CSWgnuplot += CSWsunmath +RUNTIME_DEP_PKGS_CSWgnuplot += CSWftype2 +RUNTIME_DEP_PKGS_CSWgnuplot += CSWglib2 +RUNTIME_DEP_PKGS_CSWgnuplot += CSWzlib +RUNTIME_DEP_PKGS_CSWgnuplot += CSWjpeg + +BUILD_DEP_PKGS = $(RUNTIME_DEP_PKGS_CSWgnuplot) + +CONFIGURE_ARGS = $(DIRPATHS) + +# Preset value until this is fixed: +# https://sourceforge.net/tracker/?func=detail&aid=3129839&group_id=2055&atid=102055 +CONFIGURE_ARGS += ac_cv_type__Bool=no + +#CONFIGURE_ARGS += --with-texdir= + +TEST_TARGET = check + include gar/category.mk Modified: csw/mgar/pkg/gnuplot/trunk/checksums =================================================================== --- csw/mgar/pkg/gnuplot/trunk/checksums 2010-12-06 03:27:58 UTC (rev 11803) +++ csw/mgar/pkg/gnuplot/trunk/checksums 2010-12-06 13:03:02 UTC (rev 11804) @@ -1 +1 @@ -e708665bd512153ad5c35252fe499059 gnuplot-4.4.0.tar.gz +a4f0dd89f9b9334890464f687ddd9f50 gnuplot-4.4.2.tar.gz Added: csw/mgar/pkg/gnuplot/trunk/files/0001-Remove-definition-unclear-why-leaving-it-in-causes-e.patch =================================================================== --- csw/mgar/pkg/gnuplot/trunk/files/0001-Remove-definition-unclear-why-leaving-it-in-causes-e.patch (rev 0) +++ csw/mgar/pkg/gnuplot/trunk/files/0001-Remove-definition-unclear-why-leaving-it-in-causes-e.patch 2010-12-06 13:03:02 UTC (rev 11804) @@ -0,0 +1,25 @@ +From 0935ad8425969e358de4ba22b7bdf3f0b967b9c9 Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Mon, 6 Dec 2010 13:36:41 +0100 +Subject: [PATCH] Remove definition, unclear why leaving it in causes errors + +--- + src/syscfg.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/syscfg.h b/src/syscfg.h +index 1921f63..83e107e 100644 +--- a/src/syscfg.h ++++ b/src/syscfg.h +@@ -415,7 +415,7 @@ typedef RETSIGTYPE (*sigfunc)__PROTO((void)); + # ifdef __cplusplus + typedef bool _Bool; + # else +-typedef unsigned char _Bool; ++typedef unsigned char _Bool_; + # endif + # endif + # define bool _Bool +-- +1.7.3 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 14:09:17 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 13:09:17 +0000 Subject: [csw-devel] SF.net SVN: gar:[11805] csw/mgar/pkg/gnuplot/trunk/Makefile Message-ID: Revision: 11805 http://gar.svn.sourceforge.net/gar/?rev=11805&view=rev Author: dmichelsen Date: 2010-12-06 13:09:16 +0000 (Mon, 06 Dec 2010) Log Message: ----------- gnuplot: Don't run interactive tests Modified Paths: -------------- csw/mgar/pkg/gnuplot/trunk/Makefile Modified: csw/mgar/pkg/gnuplot/trunk/Makefile =================================================================== --- csw/mgar/pkg/gnuplot/trunk/Makefile 2010-12-06 13:03:02 UTC (rev 11804) +++ csw/mgar/pkg/gnuplot/trunk/Makefile 2010-12-06 13:09:16 UTC (rev 11805) @@ -51,6 +51,10 @@ #CONFIGURE_ARGS += --with-texdir= +# Make sure we don't run the interactive displays from demo/ +EXTRA_TEST_EXPORTS = DISPLAY +DISPLAY = + TEST_TARGET = check include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 14:48:40 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 13:48:40 +0000 Subject: [csw-devel] SF.net SVN: gar:[11806] csw/mgar/pkg/bdb48/trunk Message-ID: Revision: 11806 http://gar.svn.sourceforge.net/gar/?rev=11806&view=rev Author: dmichelsen Date: 2010-12-06 13:48:40 +0000 (Mon, 06 Dec 2010) Log Message: ----------- bdb48: Update to 4.8.30 and current jdk Modified Paths: -------------- csw/mgar/pkg/bdb48/trunk/Makefile csw/mgar/pkg/bdb48/trunk/checksums Modified: csw/mgar/pkg/bdb48/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb48/trunk/Makefile 2010-12-06 13:09:16 UTC (rev 11805) +++ csw/mgar/pkg/bdb48/trunk/Makefile 2010-12-06 13:48:40 UTC (rev 11806) @@ -1,5 +1,5 @@ GARNAME = db -GARVERSION = 4.8.26 +GARVERSION = 4.8.30 CATEGORIES = lib DESCRIPTION = Berkeley DB 4.8 @@ -83,7 +83,7 @@ LIBS += -lnsl export LIBS -PATH := /usr/jdk1.6.0_07/bin:$(PATH) +PATH := /usr/jdk1.6.0_20/bin:$(PATH) export PATH configure-dist: Modified: csw/mgar/pkg/bdb48/trunk/checksums =================================================================== --- csw/mgar/pkg/bdb48/trunk/checksums 2010-12-06 13:09:16 UTC (rev 11805) +++ csw/mgar/pkg/bdb48/trunk/checksums 2010-12-06 13:48:40 UTC (rev 11806) @@ -1 +1 @@ -3476bac9ec0f3c40729c8a404151d5e3 db-4.8.26.tar.gz +f80022099c5742cd179343556179aa8c db-4.8.30.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 15:06:31 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 14:06:31 +0000 Subject: [csw-devel] SF.net SVN: gar:[11808] csw/mgar/pkg/perl/branches/perl-5.10.1/Makefile Message-ID: Revision: 11808 http://gar.svn.sourceforge.net/gar/?rev=11808&view=rev Author: dmichelsen Date: 2010-12-06 14:06:30 +0000 (Mon, 06 Dec 2010) Log Message: ----------- perl-5.10.1: Fix #4544 (missing DB_File.pm) Modified Paths: -------------- csw/mgar/pkg/perl/branches/perl-5.10.1/Makefile Modified: csw/mgar/pkg/perl/branches/perl-5.10.1/Makefile =================================================================== --- csw/mgar/pkg/perl/branches/perl-5.10.1/Makefile 2010-12-06 13:56:29 UTC (rev 11807) +++ csw/mgar/pkg/perl/branches/perl-5.10.1/Makefile 2010-12-06 14:06:30 UTC (rev 11808) @@ -114,7 +114,13 @@ EXTRA_LIB += $(prefix)/bdb48/lib EXTRA_INC += $(prefix)/bdb48/include -#EXTRA_LDFLAGS = -lperl +# Somehow the CPPFLAGS do not make it into the compile environment. +# Add them explicitly here, otherwise specifically the bdb48/include will +# not make it resulting in db.h not to be found and DB_File.pm not to be built +# as reported here: +# https://www.opencsw.org/mantis/view.php?id=4544 +EXTRA_CFLAGS = $(CPPFLAGS) + EXTRA_LDFLAGS = -L$(libdir) -lperl EXTRA_MERGE_EXCLUDE_FILES = .*\/perllocal.pod @@ -135,6 +141,12 @@ # Do not exclude static libs as at least DynaLoader.a is needed for XS compilation MERGE_EXCLUDE_STATICLIBS = +# No libperl.so splitting for now, this involves many other things and +# therefore very careful planning first. +CHECKPKG_OVERRIDES_CSWperl += shared-lib-package-contains-so-symlink|file=/opt/csw/lib/libperl.so +CHECKPKG_OVERRIDES_CSWperl += shared-lib-pkgname-mismatch|file=opt/csw/lib/libperl.so.5.10.1|soname=libperl.so.5.10.1|pkgname=CSWperl|expected=['CSWlibperl5-10-1'] +CHECKPKG_OVERRIDES_CSWperl += shared-lib-package-contains-so-symlink|file=/opt/csw/lib/libperl.so + include gar/category.mk post-extract-modulated: @@ -149,7 +161,7 @@ # How to configure Perl configure-perl: - @(cd $(WORKSRC) ; $(CONFIGURE_ENV) ./Configure $(CONFIGURE_ARGS) -des) + (cd $(WORKSRC) ; $(CONFIGURE_ENV) ./Configure $(CONFIGURE_ARGS) -des) @$(MAKECOOKIE) # Make links to libperl This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 15:24:44 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 14:24:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[11809] csw/mgar/pkg/perl Message-ID: Revision: 11809 http://gar.svn.sourceforge.net/gar/?rev=11809&view=rev Author: dmichelsen Date: 2010-12-06 14:24:44 +0000 (Mon, 06 Dec 2010) Log Message: ----------- perl: Merge perl-5.10.1 branch to trunk/ Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile csw/mgar/pkg/perl/trunk/checksums Removed Paths: ------------- csw/mgar/pkg/perl/branches/perl-5.10.1/ Property Changed: ---------------- csw/mgar/pkg/perl/trunk/ Property changes on: csw/mgar/pkg/perl/trunk ___________________________________________________________________ Added: svn:mergeinfo + /csw/mgar/pkg/perl/branches/perl-5.10.1:7616-11803 Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2010-12-06 14:06:30 UTC (rev 11808) +++ csw/mgar/pkg/perl/trunk/Makefile 2010-12-06 14:24:44 UTC (rev 11809) @@ -1,5 +1,5 @@ GARNAME = perl -GARVERSION = 5.8.8 +GARVERSION = 5.10.1 CATEGORIES = lang DESCRIPTION = A high-level, general-purpose programming language @@ -19,41 +19,44 @@ PACKAGES = CSWperl CSWperldoc ARCHALL_CSWperldoc = 1 -RUNTIME_DEP_PKGS_CSWperl = CSWbdb47 CSWgdbm +RUNTIME_DEP_PKGS_CSWperl = CSWbdb48 CSWgdbm RUNTIME_DEP_PKGS_CSWperldoc = CSWperl INCOMPATIBLE_PKGS_CSWperl = CSWperlmods CSWpmdigest CSWpmi18nlangtags + SPKG_DESC_CSWperl = $(DESCRIPTION) SPKG_DESC_CSWperldoc = Perl documentation LICENSE = Copying +CHECKPKG_OVERRIDES_CSWperldoc += surplus-dependency|CSWperl + # Core module updates -MASTER_SITES += $(CPAN_FIRST_MIRROR)/S/SM/SMUELLER/ -CORE_UPDATES += PathTools-3.30 -CORE_OBSOLETE += Cwd.pm File/Spec* auto/Cwd +#MASTER_SITES += $(CPAN_FIRST_MIRROR)/S/SM/SMUELLER/ +#CORE_UPDATES += PathTools-3.30 +#CORE_OBSOLETE += Cwd.pm File/Spec* auto/Cwd -MASTER_SITES += $(CPAN_FIRST_MIRROR)/L/LD/LDS/ -CORE_UPDATES += CGI.pm-3.44 -CORE_OBSOLETE += CGI* +#MASTER_SITES += $(CPAN_FIRST_MIRROR)/L/LD/LDS/ +#CORE_UPDATES += CGI.pm-3.44 +#CORE_OBSOLETE += CGI* -MASTER_SITES += $(CPAN_FIRST_MIRROR)/M/MS/MSCHWERN/ -CORE_UPDATES += Test-Simple-0.92 -CORE_OBSOLETE += Test/Builder* Test/More.pm Test/Simple.pm Test/Tutorial.pm +#MASTER_SITES += $(CPAN_FIRST_MIRROR)/M/MS/MSCHWERN/ +#CORE_UPDATES += Test-Simple-0.92 +#CORE_OBSOLETE += Test/Builder* Test/More.pm Test/Simple.pm Test/Tutorial.pm -MASTER_SITES += $(CPAN_FIRST_MIRROR)/T/TJ/TJENNESS/ -CORE_UPDATES += File-Temp-0.22 -CORE_OBSOLETE += File/Temp.pm +#MASTER_SITES += $(CPAN_FIRST_MIRROR)/T/TJ/TJENNESS/ +#CORE_UPDATES += File-Temp-0.22 +#CORE_OBSOLETE += File/Temp.pm -MASTER_SITES += $(CPAN_FIRST_MIRROR)/G/GB/GBARR/ -CORE_UPDATES += IO-1.25 -CORE_OBSOLETE += IO/Socket* IO/IO* IO/Socket.pm IO/Select.pm IO/Seekable.pm IO/Poll.pm IO/Pipe.pm IO/Handle.pm IO/File.pm IO/Dir.pm IO.pm +#MASTER_SITES += $(CPAN_FIRST_MIRROR)/G/GB/GBARR/ +#CORE_UPDATES += IO-1.25 +#CORE_OBSOLETE += IO/Socket* IO/IO* IO/Socket.pm IO/Select.pm IO/Seekable.pm IO/Poll.pm IO/Pipe.pm IO/Handle.pm IO/File.pm IO/Dir.pm IO.pm -MASTER_SITES += $(CPAN_FIRST_MIRROR)/A/AM/AMS/ -CORE_UPDATES += Storable-2.20 -CORE_OBSOLETE += Storable/* Storable.pm +#MASTER_SITES += $(CPAN_FIRST_MIRROR)/A/AM/AMS/ +#CORE_UPDATES += Storable-2.20 +#CORE_OBSOLETE += Storable/* Storable.pm -MASTER_SITES += $(CPAN_FIRST_MIRROR)/M/MS/MSCHWERN/ -CORE_UPDATES += ExtUtils-MakeMaker-6.54 +#MASTER_SITES += $(CPAN_FIRST_MIRROR)/M/MS/MSCHWERN/ +#CORE_UPDATES += ExtUtils-MakeMaker-6.54 #CORE_OBSOLETE += ExtUtils/* DISTFILES += $(foreach N,$(CORE_UPDATES),$(N).tar.gz) @@ -66,12 +69,10 @@ CONFIGURE_SCRIPTS = perl # Compatable with all prior patch revs -PL_MAJOR = 5.8 -PL_PATCH = 0 2 4 6 7 -INC_COMPAT = $(foreach REV,$(PL_PATCH),$(PL_MAJOR).$(REV)) +INC_COMPAT = 5.8.0 5.8.2 5.8.4 5.8.6 5.8.7 5.8.8 5.10.0 -# Force use of db-4.7 -PERL_LIBS += -lsocket -lnsl -lgdbm -ldb-4.7 -ldl -lm -lpthread -lc -lperl +# Force use of db-4.8 +PERL_LIBS += -lsocket -lnsl -lgdbm -ldb-4.8 -ldl -lm -lpthread -lc -lperl # Configuration flags CONFIGURE_ARGS += -Darchlib=$(libdir)/perl/$(GARVERSION) @@ -102,6 +103,7 @@ CONFIGURE_ARGS += -Duseshrplib CONFIGURE_ARGS += -Dusesitecustomize CONFIGURE_ARGS += -Dusethreads +#CONFIGURE_ARGS += -Dusedtrace CONFIGURE_ARGS += -Dvendorarch=$(libdir)/perl/csw CONFIGURE_ARGS += -Dvendorlib=$(datadir)/perl/csw CONFIGURE_ARGS += -Dvendorprefix=$(prefix) @@ -109,11 +111,11 @@ CONFIGURE_ARGS += -Dlibsdirs=" /usr/lib /opt/csw/lib" CONFIGURE_ARGS += -Dsed=$(bindir)/gsed -EXTRA_LIB += $(prefix)/bdb47/lib -EXTRA_INC += $(prefix)/bdb47/include +EXTRA_LIB += $(prefix)/bdb48/lib +EXTRA_INC += $(prefix)/bdb48/include #EXTRA_LDFLAGS = -lperl -EXTRA_LDFLAGS = -L/opt/csw/lib/libperl.so +EXTRA_LDFLAGS = -L$(libdir) -lperl EXTRA_MERGE_EXCLUDE_FILES = .*\/perllocal.pod PKGFILES_CSWperldoc = .*\/pod\/.*\.pod .*\/man\/man.\/.* @@ -126,10 +128,20 @@ # Tests take a long time TEST_SCRIPTS = +# Make sure we don't include the path to the newly built perl as the +# library is not in place yet. +IGNORE_DESTDIR = 1 + # Do not exclude static libs as at least DynaLoader.a is needed for XS compilation MERGE_EXCLUDE_STATICLIBS = include gar/category.mk + +post-extract-modulated: + mkdir -p $(WORKSRC) + gln -s libperl.so.5.10.1 $(WORKSRC)/libperl.so + @$(MAKECOOKIE) + ifneq ($(CORE_UPDATES),) POST_TARGETS = install-core-updates include files/updatecore.mk Modified: csw/mgar/pkg/perl/trunk/checksums =================================================================== --- csw/mgar/pkg/perl/trunk/checksums 2010-12-06 14:06:30 UTC (rev 11808) +++ csw/mgar/pkg/perl/trunk/checksums 2010-12-06 14:24:44 UTC (rev 11809) @@ -1,8 +1 @@ -d1b217a7a2463d5543d25490ff1b3d14 download/CGI.pm-3.44.tar.gz -003c04b33e8c8eed693f5001fe52b647 download/ExtUtils-MakeMaker-6.54.tar.gz -a7e93cf2015881ded1f22b5b2d0cb391 download/File-Temp-0.22.tar.gz -b88aaf2bb7437725b11e9eb48dfb6c93 download/IO-1.25.tar.gz -18a72d6a66bb62ce9bbb422dfa41181a download/PathTools-3.30.tar.gz -2ba3f963daf86c1172cd7bbbd47891be download/Storable-2.20.tar.gz -eaafa92c9a21c4290dd9d0752bb744b0 download/Test-Simple-0.92.tar.gz -b8c118d4360846829beb30b02a6b91a7 download/perl-5.8.8.tar.gz +b9b2fdb957f50ada62d73f43ee75d044 perl-5.10.1.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 16:20:01 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 15:20:01 +0000 Subject: [csw-devel] SF.net SVN: gar:[11810] csw/mgar/pkg/perl/trunk/Makefile Message-ID: Revision: 11810 http://gar.svn.sourceforge.net/gar/?rev=11810&view=rev Author: dmichelsen Date: 2010-12-06 15:20:00 +0000 (Mon, 06 Dec 2010) Log Message: ----------- perl: Override suggestions to split off libperl.so Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2010-12-06 14:24:44 UTC (rev 11809) +++ csw/mgar/pkg/perl/trunk/Makefile 2010-12-06 15:20:00 UTC (rev 11810) @@ -135,6 +135,12 @@ # Do not exclude static libs as at least DynaLoader.a is needed for XS compilation MERGE_EXCLUDE_STATICLIBS = +# Splitting of a separate libperl.so requires more work and careful planning. +# Override for now. +CHECKPKG_OVERRIDES_CSWperl += shared-lib-package-contains-so-symlink|file=/opt/csw/lib/libperl.so +CHECKPKG_OVERRIDES_CSWperl += shared-lib-pkgname-mismatch|file=opt/csw/lib/libperl.so.5.10.1|soname=libperl.so.5.10.1|pkgname=CSWperl|expected=['CSWlibperl5-10-1'] +CHECKPKG_OVERRIDES_CSWperl += shared-lib-package-contains-so-symlink|file=/opt/csw/lib/libperl.so + include gar/category.mk post-extract-modulated: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 6 16:21:54 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 06 Dec 2010 15:21:54 +0000 Subject: [csw-devel] SF.net SVN: gar:[11811] csw/mgar/gar/v2/lib/python/package_checks_test.py Message-ID: Revision: 11811 http://gar.svn.sourceforge.net/gar/?rev=11811&view=rev Author: wahwah Date: 2010-12-06 15:21:53 +0000 (Mon, 06 Dec 2010) Log Message: ----------- checkpkg: A unit test for regular doc files They can be placed outside the /opt/csw/share/doc// directory. Only license files must be there. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-06 15:20:00 UTC (rev 11810) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-06 15:21:53 UTC (rev 11811) @@ -1445,18 +1445,14 @@ 'soname=libneon.so.27 filename=foo.so.1') -class TestCheckDocDir(CheckpkgUnitTestHelper, unittest.TestCase): +class TestCheckDocDirLicense(CheckpkgUnitTestHelper, unittest.TestCase): FUNCTION_NAME = 'CheckDocDir' def CheckpkgTest(self): self.pkg_data = neon_stats[0] self.pkg_data["pkgmap"].append({ - "class": "none", - "group": "bin", - "line": "", - "mode": '0755', + "class": "none", "type": "f", "line": "", + "user": "root", "group": "bin", "mode": '0755', "path": "/opt/csw/share/doc/alien/license", - "type": "f", - "user": "root" }) self.error_mgr_mock.ReportError( 'wrong-docdir', @@ -1464,5 +1460,17 @@ 'in-package=/opt/csw/share/doc/alien/license') +class TestCheckDocDirRandomFile(CheckpkgUnitTestHelper, unittest.TestCase): + "A random file should not trigger the message; only license files." + FUNCTION_NAME = 'CheckDocDir' + def CheckpkgTest(self): + self.pkg_data = neon_stats[0] + self.pkg_data["pkgmap"].append({ + "class": "none", "type": "f", "line": "", + "user": "root", "group": "bin", "mode": '0755', + "path": "/opt/csw/share/doc/alien/random_file", + }) + + if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 14:56:29 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 13:56:29 +0000 Subject: [csw-devel] SF.net SVN: gar:[11807] csw/mgar/pkg/perl/tags Message-ID: Revision: 11807 http://gar.svn.sourceforge.net/gar/?rev=11807&view=rev Author: dmichelsen Date: 2010-12-06 13:56:29 +0000 (Mon, 06 Dec 2010) Log Message: ----------- perl-5.8.8: Adjust tag name Modified Paths: -------------- csw/mgar/pkg/perl/tags/perl-5.8.8,REV_2009.11.12/Makefile csw/mgar/pkg/perl/tags/perl-5.8.8,REV_2009.11.12/files/updatecore.mk Added Paths: ----------- csw/mgar/pkg/perl/tags/perl-5.8.8,REV_2009.11.12/ Removed Paths: ------------- csw/mgar/pkg/perl/tags/perl-5.8.8,REV=2009.11.12/ Modified: csw/mgar/pkg/perl/tags/perl-5.8.8,REV_2009.11.12/Makefile =================================================================== --- csw/mgar/pkg/perl/tags/perl-5.8.8,REV=2009.11.12/Makefile 2010-05-05 02:34:54 UTC (rev 9816) +++ csw/mgar/pkg/perl/tags/perl-5.8.8,REV_2009.11.12/Makefile 2010-12-06 13:56:29 UTC (rev 11807) @@ -58,9 +58,8 @@ DISTFILES += $(foreach N,$(CORE_UPDATES),$(N).tar.gz) -# Dependencies -#LIBDEPS += bdb48/lib -LIBDEPS += lib/gdbm +# Make sure we don't pick up the newly build Perl but rely on the system Perl for GAR operations +IGNORE_DESTDIR = 1 # Custom configure CONFIGURE_SCRIPTS = perl Modified: csw/mgar/pkg/perl/tags/perl-5.8.8,REV_2009.11.12/files/updatecore.mk =================================================================== --- csw/mgar/pkg/perl/tags/perl-5.8.8,REV=2009.11.12/files/updatecore.mk 2010-05-05 02:34:54 UTC (rev 9816) +++ csw/mgar/pkg/perl/tags/perl-5.8.8,REV_2009.11.12/files/updatecore.mk 2010-12-06 13:56:29 UTC (rev 11807) @@ -2,11 +2,11 @@ # Install core updates install-core-updates: remove-obsolete-modules - @for d in "" $(CORE_UPDATES) ; do \ + for d in "" $(CORE_UPDATES) ; do \ test -z "$$d" && continue ; \ echo " ==> Applying core update: $$d" ; \ ( cd $(WORKDIR)/$$d ; \ - $(CONFIGURE_ENV) perl Makefile.PL ; \ + $(CONFIGURE_ENV) LD_LIBRARY_PATH=$(abspath $(WORKSRC)) $(DESTDIR)$(bindir)/perl Makefile.PL ; \ $(BUILD_ENV) make ; \ $(TEST_ENV) make test ; \ $(INSTALL_ENV) make install INSTALLDIRS=perl DESTDIR=$(DESTDIR) ) ; \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 16:38:47 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 15:38:47 +0000 Subject: [csw-devel] SF.net SVN: gar:[11813] csw/mgar/gar/v2/lib/python/package_checks.py Message-ID: Revision: 11813 http://gar.svn.sourceforge.net/gar/?rev=11813&view=rev Author: dmichelsen Date: 2010-12-06 15:38:47 +0000 (Mon, 06 Dec 2010) Log Message: ----------- mGAR v2: Only license needs to be in the package docdir, not the docs themselves Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-06 15:26:19 UTC (rev 11812) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-06 15:38:47 UTC (rev 11813) @@ -1196,7 +1196,7 @@ def CheckDocDir(pkg_data, error_mgr, logger, messenger): pkgname = pkg_data["basic_stats"]["pkgname"] - docpath_re = re.compile(r"/opt/csw/share/doc/(?P[^/]+)/.*") + docpath_re = re.compile(r"/opt/csw/share/doc/(?P[^/]+)/license") for pkgmap_entry in pkg_data["pkgmap"]: if "path" not in pkgmap_entry: continue if not pkgmap_entry["path"]: continue This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 16:39:12 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 15:39:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[11814] csw/mgar/pkg/bdb48/trunk/Makefile Message-ID: Revision: 11814 http://gar.svn.sourceforge.net/gar/?rev=11814&view=rev Author: dmichelsen Date: 2010-12-06 15:39:12 +0000 (Mon, 06 Dec 2010) Log Message: ----------- bdb48: Remove docdir override as this is fixed in checkpkg itself Modified Paths: -------------- csw/mgar/pkg/bdb48/trunk/Makefile Modified: csw/mgar/pkg/bdb48/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb48/trunk/Makefile 2010-12-06 15:38:47 UTC (rev 11813) +++ csw/mgar/pkg/bdb48/trunk/Makefile 2010-12-06 15:39:12 UTC (rev 11814) @@ -83,9 +83,6 @@ # Compiler run pathes, skip for now. CHECKPKG_OVERRIDES_CSWbdb48 += bad-rpath-entry -# Docs are in a directory named after the main package -CHECKPKG_OVERRIDES_CSWbdb48doc += wrong-docdir - include gar/category.mk LIBS += -lnsl This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 16:26:19 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 15:26:19 +0000 Subject: [csw-devel] SF.net SVN: gar:[11812] csw/mgar/pkg/bdb48/trunk/Makefile Message-ID: Revision: 11812 http://gar.svn.sourceforge.net/gar/?rev=11812&view=rev Author: dmichelsen Date: 2010-12-06 15:26:19 +0000 (Mon, 06 Dec 2010) Log Message: ----------- bdb48: Adjust overrides Modified Paths: -------------- csw/mgar/pkg/bdb48/trunk/Makefile Modified: csw/mgar/pkg/bdb48/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb48/trunk/Makefile 2010-12-06 15:21:53 UTC (rev 11811) +++ csw/mgar/pkg/bdb48/trunk/Makefile 2010-12-06 15:26:19 UTC (rev 11812) @@ -64,6 +64,8 @@ SPKG_SOURCEURL = http://www.oracle.com/technology/software/products/berkeley-db/db/index.html RUNTIME_DEP_PKGS_CSWbdb48devel = CSWbdb48 +CHECKPKG_OVERRIDES_CSWbdb48devel += surplus-dependency|CSWbdb48 +CHECKPKG_OVERRIDES_CSWbdb48 += missing-dependency|CSWbdb48devel LICENSE = LICENSE @@ -76,8 +78,14 @@ EXTRA_MERGE_EXCLUDE_FILES = .*/license.* PKGFILES_CSWbdb48doc = $(PKGFILES_DOC) -PKGFILES_CSWbdb48devel = $(PKGFILES_DEVEL) +PKGFILES_CSWbdb48devel = $(includedir)/.* +# Compiler run pathes, skip for now. +CHECKPKG_OVERRIDES_CSWbdb48 += bad-rpath-entry + +# Docs are in a directory named after the main package +CHECKPKG_OVERRIDES_CSWbdb48doc += wrong-docdir + include gar/category.mk LIBS += -lnsl This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 17:00:16 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 16:00:16 +0000 Subject: [csw-devel] SF.net SVN: gar:[11815] csw/mgar/pkg/libgpg_error/trunk Message-ID: Revision: 11815 http://gar.svn.sourceforge.net/gar/?rev=11815&view=rev Author: dmichelsen Date: 2010-12-06 16:00:16 +0000 (Mon, 06 Dec 2010) Log Message: ----------- libgpg_error: Update to 1.10 Modified Paths: -------------- csw/mgar/pkg/libgpg_error/trunk/Makefile csw/mgar/pkg/libgpg_error/trunk/checksums Modified: csw/mgar/pkg/libgpg_error/trunk/Makefile =================================================================== --- csw/mgar/pkg/libgpg_error/trunk/Makefile 2010-12-06 15:39:12 UTC (rev 11814) +++ csw/mgar/pkg/libgpg_error/trunk/Makefile 2010-12-06 16:00:16 UTC (rev 11815) @@ -1,5 +1,5 @@ GARNAME = libgpg-error -GARVERSION = 1.9 +GARVERSION = 1.10 CATEGORIES = lib DESCRIPTION = GNU gpg related library @@ -16,7 +16,7 @@ UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.bz2 -SPKG_SOURCEURL = http://www.gnupg.org/download/ +VENDOR_URL = http://www.gnupg.org/download/ RUNTIME_DEP_PKGS = CSWggettextrt Modified: csw/mgar/pkg/libgpg_error/trunk/checksums =================================================================== --- csw/mgar/pkg/libgpg_error/trunk/checksums 2010-12-06 15:39:12 UTC (rev 11814) +++ csw/mgar/pkg/libgpg_error/trunk/checksums 2010-12-06 16:00:16 UTC (rev 11815) @@ -1 +1 @@ -521b98aa9395e7eaf0ef2236233a0796 libgpg-error-1.9.tar.bz2 +736a03daa9dc5873047d4eb4a9c22a16 libgpg-error-1.10.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 6 18:04:16 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 06 Dec 2010 17:04:16 +0000 Subject: [csw-devel] SF.net SVN: gar:[11816] csw/mgar/pkg/perl/trunk/Makefile Message-ID: Revision: 11816 http://gar.svn.sourceforge.net/gar/?rev=11816&view=rev Author: dmichelsen Date: 2010-12-06 17:04:16 +0000 (Mon, 06 Dec 2010) Log Message: ----------- perl: Forward-port fix of #4544 Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2010-12-06 16:00:16 UTC (rev 11815) +++ csw/mgar/pkg/perl/trunk/Makefile 2010-12-06 17:04:16 UTC (rev 11816) @@ -114,7 +114,13 @@ EXTRA_LIB += $(prefix)/bdb48/lib EXTRA_INC += $(prefix)/bdb48/include -#EXTRA_LDFLAGS = -lperl +# Somehow the CPPFLAGS do not make it into the compile environment. +# Add them explicitly here, otherwise specifically the bdb48/include will +# not make it resulting in db.h not to be found and DB_File.pm not to be built +# as reported here: +# https://www.opencsw.org/mantis/view.php?id=4544 +EXTRA_CFLAGS = $(CPPFLAGS) + EXTRA_LDFLAGS = -L$(libdir) -lperl EXTRA_MERGE_EXCLUDE_FILES = .*\/perllocal.pod This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From maciej at opencsw.org Mon Dec 6 18:23:30 2010 From: maciej at opencsw.org (maciej at opencsw.org) Date: Mon, 6 Dec 2010 18:23:30 +0100 Subject: [csw-devel] [PATCH] mGAR v2: Checking packages against 'current' Message-ID: <1291656210-20510-1-git-send-email-maciej@opencsw.org> From: Maciej Blizinski Defining CATALOG_RELEASE and setting it to 'current' by default. This means that packages will be checked against the current branch by default. --- gar/v2/gar.pkg.mk | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/gar/v2/gar.pkg.mk b/gar/v2/gar.pkg.mk index 296e73f..fd7c5d4 100644 --- a/gar/v2/gar.pkg.mk +++ b/gar/v2/gar.pkg.mk @@ -33,6 +33,7 @@ PKGINFO ?= /usr/bin/pkginfo ifeq ($(origin PACKAGES), undefined) PACKAGES = $(if $(filter %.gspec,$(DISTFILES)),,CSW$(GARNAME)) CATALOGNAME ?= $(if $(filter %.gspec,$(DISTFILES)),,$(GARNAME)) +CATALOG_RELEASE ?= current SRCPACKAGE_BASE = $(firstword $(basename $(filter %.gspec,$(DISTFILES))) $(PACKAGES)) SRCPACKAGE ?= $(SRCPACKAGE_BASE)-src SPKG_SPECS ?= $(basename $(filter %.gspec,$(DISTFILES))) $(PACKAGES) $(if $(NOSOURCEPACKAGE),,$(SRCPACKAGE)) @@ -846,6 +847,7 @@ pkgcheck: $(foreach SPEC,$(_PKG_SPECS),package-$(SPEC)) $(_DBG)( LC_ALL=C $(GARBIN)/checkpkg \ --architecture $(GARCH) \ --os-releases $(SPKG_OSNAME) \ + --catalog-release $(CATALOG_RELEASE) \ $(foreach SPEC,$(_PKG_SPECS),$(SPKG_EXPORT)/`$(call _PKG_ENV,$(SPEC)) mkpackage --tmpdir $(SPKG_TMPDIR) -qs $(WORKDIR)/$(SPEC).gspec -D pkgfile`.gz ) || exit 2;) @$(MAKECOOKIE) -- 1.7.3.2 From maciej at opencsw.org Mon Dec 6 18:36:49 2010 From: maciej at opencsw.org (Maciej (Matchek) Blizinski) Date: Mon, 6 Dec 2010 17:36:49 +0000 Subject: [csw-devel] [PATCH] mGAR v2: Checking packages against 'current' In-Reply-To: <1291656210-20510-1-git-send-email-maciej@opencsw.org> References: <1291656210-20510-1-git-send-email-maciej@opencsw.org> Message-ID: This isn't a commit, it's an experiment with sending a proposed change from git. We could use this to discuss code changes before they are made, if we want to. From gadavis at users.sourceforge.net Mon Dec 6 18:42:57 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Mon, 06 Dec 2010 17:42:57 +0000 Subject: [csw-devel] SF.net SVN: gar:[11817] csw/mgar/pkg/netcdf/trunk Message-ID: Revision: 11817 http://gar.svn.sourceforge.net/gar/?rev=11817&view=rev Author: gadavis Date: 2010-12-06 17:42:56 +0000 (Mon, 06 Dec 2010) Log Message: ----------- Work around 64-bit linking issues in Mantis 4497 Modified Paths: -------------- csw/mgar/pkg/netcdf/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdf-c++5.cswreleasemgr csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdf6.cswreleasemgr csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdff5.cswreleasemgr Modified: csw/mgar/pkg/netcdf/trunk/Makefile =================================================================== --- csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-06 17:04:16 UTC (rev 11816) +++ csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-06 17:42:56 UTC (rev 11817) @@ -1,4 +1,4 @@ -# Copyright 2009 OpenCSW +# Copyright 2009,2010 OpenCSW # Distributed under the terms of the GNU General Public License v2 # $Id$ @@ -8,7 +8,10 @@ DESCRIPTION = Machine-independent data formats for array-oriented scientific data SPKG_SOURCEURL = http://www.unidata.ucar.edu/software/netcdf/ MASTER_SITES = http://www.unidata.ucar.edu/downloads/netcdf/ftp/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES += $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES += CSWlibnetcdf6.cswreleasemgr +DISTFILES += CSWlibnetcdff5.cswreleasemgr +DISTFILES += CSWlibnetcdf-c++5.cswreleasemgr UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz LICENSE = COPYRIGHT @@ -38,6 +41,7 @@ SPKG_DESC_CSWlibnetcdf6 = Machine-independent data formats for array-oriented scientific data, libnetcdf.so.6 RUNTIME_DEP_PKGS_CSWlibnetcdf6 = CSWhdf5rt RUNTIME_DEP_PKGS_CSWlibnetcdf6 += CSWgcc4corert +RUNTIME_DEP_PKGS_CSWlibnetcdf6 += CSWgcc4core # Mantis Bug #4497, missing 64 symlink PACKAGES += CSWlibnetcdf-c++5 CATALOGNAME_CSWlibnetcdf-c++5 = libnetcdf_c++5 @@ -52,7 +56,7 @@ PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/amd64/libnetcdf_c\+\+.so.5 SPKG_DESC_CSWlibnetcdf-c++5 += Machine-independent data formats for array-oriented scientific data, libnetcdf_c++.so.5 RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 = CSWhdf5rt -RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 += CSWgcc4corert CSWgcc4g++rt +RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 += CSWgcc4corert CSWgcc4core CSWgcc4g++rt RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 += CSWlibnetcdf6 PACKAGES += CSWlibnetcdff5 @@ -68,7 +72,7 @@ PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/amd64/libnetcdff.so.5 SPKG_DESC_CSWlibnetcdff5 = Machine-independent data formats for array-oriented scientific data, libnetcdff.so.5 RUNTIME_DEP_PKGS_CSWlibnetcdff5 = CSWhdf5rt -RUNTIME_DEP_PKGS_CSWlibnetcdff5 += CSWgcc4gfortranrt CSWgcc4corert +RUNTIME_DEP_PKGS_CSWlibnetcdff5 += CSWgcc4gfortranrt CSWgcc4corert CSWgcc4core RUNTIME_DEP_PKGS_CSWlibnetcdff5 += CSWlibnetcdf6 PACKAGES += CSWnetcdf-devel @@ -143,11 +147,11 @@ EXTRA_FFLAGS= -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign EXTRA_FCFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign EXTRA_CXXFLAGS = -L/opt/csw/gcc4/lib/$(MM_LIBDIR) -dalign -## OPT_FLAGS_GCC = -O2 -pipe ## During the 32-bit sparc build, the C++ bindings were barfing with an error ## about undefined symbol __sync_fetch_and_add_4 in libnetcdf_c++ ## From Porting FAQ: http://wiki.opencsw.org/porting-faq#toc5 +## OPT_FLAGS_GCC = -O2 -pipe OPT_FLAGS_GCC = ## The development package should pull in the various libs since it's hard to @@ -156,4 +160,10 @@ CHECKPKG_OVERRIDES_CSWnetcdf-devel += surplus-dependency|CSWlibnetcdf6 CHECKPKG_OVERRIDES_CSWnetcdf-devel += surplus-dependency|CSWlibnetcdff5 +## Mantis bug 4497 means there's no 64 symlink in CSWgcc4corert so you can't +## link against these libraries without CSWgcc4core +CHECKPKG_OVERRIDES_CSWlibnetcdf-c++5 += surplus-dependency|CSWgcc4core +CHECKPKG_OVERRIDES_CSWlibnetcdf6 += surplus-dependency|CSWgcc4core +CHECKPKG_OVERRIDES_CSWlibnetcdff5 += surplus-dependency|CSWgcc4core + include gar/category.mk Added: csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdf-c++5.cswreleasemgr =================================================================== --- csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdf-c++5.cswreleasemgr (rev 0) +++ csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdf-c++5.cswreleasemgr 2010-12-06 17:42:56 UTC (rev 11817) @@ -0,0 +1,2 @@ +This package depends on CSWgcc4core due to Mantis Bug ID 4497 +The various libraries are not found by the 64 bit executable due to the 32 and 64 symlinks not being present in /opt/csw/gcc4/lib Added: csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdf6.cswreleasemgr =================================================================== --- csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdf6.cswreleasemgr (rev 0) +++ csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdf6.cswreleasemgr 2010-12-06 17:42:56 UTC (rev 11817) @@ -0,0 +1,2 @@ +This package depends on CSWgcc4core due to Mantis Bug ID 4497 +The various libraries are not found by the 64 bit executable due to the 32 and 64 symlinks not being present in /opt/csw/gcc4/lib Added: csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdff5.cswreleasemgr =================================================================== --- csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdff5.cswreleasemgr (rev 0) +++ csw/mgar/pkg/netcdf/trunk/files/CSWlibnetcdff5.cswreleasemgr 2010-12-06 17:42:56 UTC (rev 11817) @@ -0,0 +1,2 @@ +This package depends on CSWgcc4core due to Mantis Bug ID 4497 +The various libraries are not found by the 64 bit executable due to the 32 and 64 symlinks not being present in /opt/csw/gcc4/lib This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bwalton at opencsw.org Mon Dec 6 18:46:13 2010 From: bwalton at opencsw.org (Ben Walton) Date: Mon, 06 Dec 2010 12:46:13 -0500 Subject: [csw-devel] [PATCH] mGAR v2: Checking packages against 'current' In-Reply-To: References: <1291656210-20510-1-git-send-email-maciej@opencsw.org> Message-ID: <1291657501-sup-8254@pinkfloyd.chass.utoronto.ca> Excerpts from Maciej (Matchek) Blizinski's message of Mon Dec 06 12:36:49 -0500 2010: > This isn't a commit, it's an experiment with sending a proposed > change from git. We could use this to discuss code changes before > they are made, if we want to. I like this idea. We would do all GAR change work on a branch and post a series of patches before merge. We can still continue with our tradition of no news is good news (eg: cricket syndrome) but at least it puts the changes in an easily accessible forum for review. Thanks -Ben -- Ben Walton Systems Programmer - CHASS University of Toronto C:416.407.5610 | W:416.978.4302 From gadavis at users.sourceforge.net Mon Dec 6 19:32:21 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Mon, 06 Dec 2010 18:32:21 +0000 Subject: [csw-devel] SF.net SVN: gar:[11818] csw/mgar/pkg/netcdf/trunk/Makefile Message-ID: Revision: 11818 http://gar.svn.sourceforge.net/gar/?rev=11818&view=rev Author: gadavis Date: 2010-12-06 18:32:20 +0000 (Mon, 06 Dec 2010) Log Message: ----------- Disable Git patching due to failure on remerge/repackage cycle Modified Paths: -------------- csw/mgar/pkg/netcdf/trunk/Makefile Modified: csw/mgar/pkg/netcdf/trunk/Makefile =================================================================== --- csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-06 17:42:56 UTC (rev 11817) +++ csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-06 18:32:20 UTC (rev 11818) @@ -166,4 +166,7 @@ CHECKPKG_OVERRIDES_CSWlibnetcdf6 += surplus-dependency|CSWgcc4core CHECKPKG_OVERRIDES_CSWlibnetcdff5 += surplus-dependency|CSWgcc4core +## Git patching is failing on a remerge/repackage +NOGITPATCH = 1 + include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 6 23:14:33 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 06 Dec 2010 22:14:33 +0000 Subject: [csw-devel] SF.net SVN: gar:[11819] csw/mgar/gar/v2-fortran Message-ID: Revision: 11819 http://gar.svn.sourceforge.net/gar/?rev=11819&view=rev Author: wahwah Date: 2010-12-06 22:14:33 +0000 (Mon, 06 Dec 2010) Log Message: ----------- mGAR v2-fortran: Merging changes from v2 Modified Paths: -------------- csw/mgar/gar/v2-fortran/bin/checkpkg csw/mgar/gar/v2-fortran/lib/python/checkpkg.py csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py csw/mgar/gar/v2-fortran/lib/python/opencsw.py csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py csw/mgar/gar/v2-fortran/lib/python/package_checks.py csw/mgar/gar/v2-fortran/lib/python/package_checks_test.py Added Paths: ----------- csw/mgar/gar/v2-fortran/lib/python/testdata/apr_util_stats.py Property Changed: ---------------- csw/mgar/gar/v2-fortran/ csw/mgar/gar/v2-fortran/pkglib/csw/depend Property changes on: csw/mgar/gar/v2-fortran ___________________________________________________________________ Modified: svn:mergeinfo - /csw/mgar/gar/v2:4936-6678,10928-10988,10990-11763 /csw/mgar/gar/v2-bwalton:9784-10011 /csw/mgar/gar/v2-checkpkg:7722-7855 /csw/mgar/gar/v2-checkpkg-override-relocation:10585-10737 /csw/mgar/gar/v2-checkpkg-stats:8454-8649 /csw/mgar/gar/v2-collapsed-modulations:6895 /csw/mgar/gar/v2-dirpackage:8125-8180 /csw/mgar/gar/v2-git/v2-relocate:7617 /csw/mgar/gar/v2-migrateconf:7082-7211 /csw/mgar/gar/v2-noexternals:11592-11745 /csw/mgar/gar/v2-relocate:5028-11738 /csw/mgar/gar/v2-skayser:6087-6132 /csw/mgar/gar/v2-sqlite:10434-10449 + /csw/mgar/gar/v2:4936-6678,10883-11818 /csw/mgar/gar/v2-bwalton:9784-10011 /csw/mgar/gar/v2-checkpkg:7722-7855 /csw/mgar/gar/v2-checkpkg-override-relocation:10585-10737 /csw/mgar/gar/v2-checkpkg-stats:8454-8649 /csw/mgar/gar/v2-collapsed-modulations:6895 /csw/mgar/gar/v2-dirpackage:8125-8180 /csw/mgar/gar/v2-git/v2-relocate:7617 /csw/mgar/gar/v2-migrateconf:7082-7211 /csw/mgar/gar/v2-noexternals:11592-11745 /csw/mgar/gar/v2-relocate:5028-11738 /csw/mgar/gar/v2-skayser:6087-6132 /csw/mgar/gar/v2-sqlite:10434-10449 Modified: csw/mgar/gar/v2-fortran/bin/checkpkg =================================================================== --- csw/mgar/gar/v2-fortran/bin/checkpkg 2010-12-06 18:32:20 UTC (rev 11818) +++ csw/mgar/gar/v2-fortran/bin/checkpkg 2010-12-06 22:14:33 UTC (rev 11819) @@ -101,8 +101,6 @@ # TODO: Options to add: # - Use an pre-cached (from a catalog file?) list of md5 sums # - Don't use the data from /var/sadm/install/contents -SAVE_TAGS=0 -SAVED_TAGS_FILE=error-tags.txt display_help=0 SKIP_STATS_COLLECTION=0 MD5_SUMS_CATALOG_FILE="" @@ -116,12 +114,6 @@ c) INSTALL_CONTENTS_FILES="${INSTALL_CONTENTS_FILES} ${OPTARG}" ;; - s) - SAVE_TAGS=1 - ;; - o) - SAVED_TAGS_FILE="${OPTARG}" - ;; d) DEBUG=1 ;; @@ -151,8 +143,6 @@ readonly INSTALL_CONTENTS_FILES readonly MD5_SUMS_CATALOG_FILE -readonly SAVED_TAGS_FILE -readonly SAVE_TAGS readonly SKIP_STATS_COLLECTION readonly ANALYZE readonly PROFILE @@ -162,23 +152,17 @@ print 'Usage: checkpkg [options] pkg1 [pkg2 ....]' print 'Options:' print ' -c use an additional install/contents file' - print ' -s save error tags on disk' - print ' -o save tag output to file' print ' -d display debug messages' print ' -N skip statistics collection' print ' -M use package md5sums from a catalog file' print ' -A Do not analyze the results.' print ' -p Enable profiling' print ' -q Display less messages' + print '' + print 'Error tags are saved to the sqlite database.' exit 0 fi -if [[ "${SAVE_TAGS}" -eq 1 ]]; then - if [[ -f "${SAVED_TAGS_FILE}" ]]; then - rm "${SAVED_TAGS_FILE}" - fi -fi - # a unique filename for the list of package deps and libs we see in a 'set' SETINF=$CHECKPKG_TMPDIR/checkpkg.$$.`date +%Y%m%d%H%M%S` SETLIBS=$SETINF.libs Modified: csw/mgar/gar/v2-fortran/lib/python/checkpkg.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/checkpkg.py 2010-12-06 18:32:20 UTC (rev 11818) +++ csw/mgar/gar/v2-fortran/lib/python/checkpkg.py 2010-12-06 22:14:33 UTC (rev 11819) @@ -616,8 +616,9 @@ def Emulate64BitSymlinks(self, runpath_list): """Need to emulate the 64 -> amd64, 64 -> sparcv9 symlink - Since we don't know the architecture, we'll adding both amd64 and sparcv9. - It should be safe. + Since we don't know the architecture, we are adding both amd64 and + sparcv9. It should be safe - there are other checks that make sure + that right architectures are in the right directories. """ key = tuple(runpath_list) if key not in self.symlink64_cache: @@ -633,19 +634,12 @@ def SanitizeRunpath(self, runpath): if runpath not in self.runpath_sanitize_cache: - new_runpath = runpath - while True: - if new_runpath.endswith("/"): - new_runpath = new_runpath[:-1] - elif "//" in new_runpath: - new_runpath = new_runpath.replace("//", "/") - else: - break - self.runpath_sanitize_cache[runpath] = new_runpath + self.runpath_sanitize_cache[runpath] = os.path.normpath(runpath) return self.runpath_sanitize_cache[runpath] - def ResolveSoname(self, runpath_list, soname, isalist, path_list, binary_path): + def ResolveSoname(self, runpath_list, soname, isalist, + path_list, binary_path): """Emulates ldd behavior, minimal implementation. runpath: e.g. ["/opt/csw/lib/$ISALIST", "/usr/lib"] @@ -667,8 +661,9 @@ # in the path_list. for expanded_p in expanded_p_list: original_paths_by_expanded_paths[expanded_p] = p - # logging.debug("%s: looking for %s in %s", - # soname, runpath_list, original_paths_by_expanded_paths.keys()) + logging.debug( + "%s: looking for %s in %s", + soname, runpath_list, original_paths_by_expanded_paths.keys()) for runpath_expanded in runpath_list: if runpath_expanded in original_paths_by_expanded_paths: # logging.debug("Found %s", @@ -883,7 +878,9 @@ def GetCommonPaths(self, arch): """Returns a list of paths for architecture, from gar/etc/commondirs*.""" # TODO: If this was cached, it could save a significant amount of time. - assert arch in ('i386', 'sparc', 'all'), "Wrong arch: %s" % repr(arch) + if arch not in ('i386', 'sparc', 'all'): + logging.warn("Wrong arch: %s", repr(arch)) + return [] if arch == 'all': archs = ('i386', 'sparc') else: Modified: csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py 2010-12-06 18:32:20 UTC (rev 11818) +++ csw/mgar/gar/v2-fortran/lib/python/checkpkg_test.py 2010-12-06 22:14:33 UTC (rev 11819) @@ -341,5 +341,23 @@ self.assertTrue(expected, checkpkg.SliceList(l, s)) +class LddEmulartorUnitTest(unittest.TestCase): + + def setUp(self): + self.pkgmap_mocker = mox.Mox() + self.e = checkpkg.LddEmulator() + + def testResolveSoname_1(self): + # runpath_list, soname, isalist, path_list, binary_path + runpath_list = ["/opt/csw/bdb47/lib", "/opt/csw/lib"] + soname = "foo.so.1" + path_list = ["/opt/csw/lib", "/opt/csw/bdb47/lib", "/usr/lib"] + binary_path = "unused" + isalist = ["amd64"] + result = self.e.ResolveSoname(runpath_list, soname, isalist, + path_list, binary_path) + self.assertEqual("/opt/csw/bdb47/lib", result) + + if __name__ == '__main__': unittest.main() Modified: csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py 2010-12-06 18:32:20 UTC (rev 11818) +++ csw/mgar/gar/v2-fortran/lib/python/dependency_checks.py 2010-12-06 22:14:33 UTC (rev 11819) @@ -34,6 +34,77 @@ PREFERRED_DIRECTORY_PROVIDERS = set([u"CSWcommon"]) +def ProcessSoname( + ldd_emulator, + soname, path_and_pkg_by_basename, binary_info, isalist, binary_path, logger, + error_mgr, + pkgname, messenger): + """This is not an ideal name for a function. + + Returns: + orphan_sonames + """ + orphan_sonames = [] + required_deps = [] + resolved = False + path_list = path_and_pkg_by_basename[soname].keys() + runpath_tuple = ( + tuple(binary_info["runpath"]) + + tuple(checkpkg.SYS_DEFAULT_RUNPATH)) + runpath_history = [] + alternative_deps = set() + first_lib = None + for runpath in runpath_tuple: + runpath = ldd_emulator.SanitizeRunpath(runpath) + runpath_list = ldd_emulator.ExpandRunpath(runpath, isalist, binary_path) + runpath_list = ldd_emulator.Emulate64BitSymlinks(runpath_list) + # To accumulate all the runpaths that we were looking at + runpath_history += runpath_list + resolved_path = ldd_emulator.ResolveSoname(runpath_list, + soname, + isalist, + path_list, + binary_path) + if resolved_path: + resolved = True + req_pkgs = path_and_pkg_by_basename[soname][resolved_path] + reason = ("provides %s/%s needed by %s" + % (resolved_path, soname, binary_info["path"])) + # Looking for deprecated libraries. However, only alerting if the + # deprecated library is the first one found in the RPATH. For example, + # libdb-4.7.so is found in CSWbdb and CSWbdb47, and it's important to + # throw an error if the RPATH is ("/opt/csw/lib", "/opt/csw/bdb47/lib"), + # and not to throw an error if RPATH is ("/opt/csw/bdb47/lib", + # "/opt/csw/lib") + if not first_lib: + first_lib = (resolved_path, soname) + for bad_path, bad_soname, msg in DEPRECATED_LIBRARY_LOCATIONS: + if resolved_path == bad_path and soname == bad_soname: + logger.debug("Bad lib found: %s/%s", bad_path, bad_soname) + error_mgr.ReportError( + pkgname, + "deprecated-library", + ("%s %s %s/%s" + % (binary_info["path"], msg, resolved_path, soname))) + for req_pkg in req_pkgs: + alternative_deps.add((req_pkg, reason)) + required_deps.append(list(alternative_deps)) + if not resolved: + orphan_sonames.append((soname, binary_info["path"])) + if path_list: + path_msg = "was available at the following paths: %s." % path_list + else: + path_msg = ("was not present on the filesystem, " + "nor in the packages under examination.") + if soname not in ALLOWED_ORPHAN_SONAMES: + messenger.Message( + "%s could not be resolved for %s, with rpath %s, expanded to %s, " + "while the file %s" + % (soname, binary_info["path"], + runpath_tuple, runpath_history, path_msg)) + return orphan_sonames, required_deps + + def Libraries(pkg_data, error_mgr, logger, messenger, path_and_pkg_by_basename, pkg_by_path): """Checks shared libraries. @@ -53,66 +124,20 @@ """ pkgname = pkg_data["basic_stats"]["pkgname"] logger.debug("Libraries(): pkgname = %s", repr(pkgname)) + isalist = pkg_data["isalist"] + ldd_emulator = checkpkg.LddEmulator() orphan_sonames = [] required_deps = [] - isalist = pkg_data["isalist"] - ldd_emulator = checkpkg.LddEmulator() for binary_info in pkg_data["binaries_dump_info"]: binary_path, binary_basename = os.path.split(binary_info["path"]) for soname in binary_info["needed sonames"]: - resolved = False - path_list = path_and_pkg_by_basename[soname].keys() - # logger.debug("%s @ %s: looking for %s in %s", - # soname, - # binary_info["path"], - # binary_info["runpath"], - # path_list) - runpath_tuple = (tuple(binary_info["runpath"]) - + tuple(checkpkg.SYS_DEFAULT_RUNPATH)) - runpath_history = [] - alternative_deps = set() - for runpath in runpath_tuple: - runpath = ldd_emulator.SanitizeRunpath(runpath) - runpath_list = ldd_emulator.ExpandRunpath(runpath, isalist, binary_path) - runpath_list = ldd_emulator.Emulate64BitSymlinks(runpath_list) - # To accumulate all the runpaths that we were looking at - runpath_history += runpath_list - resolved_path = ldd_emulator.ResolveSoname(runpath_list, - soname, - isalist, - path_list, - binary_path) - if resolved_path: - resolved = True - req_pkgs = path_and_pkg_by_basename[soname][resolved_path] - reason = ("provides %s/%s needed by %s" - % (resolved_path, soname, binary_info["path"])) - # Looking for deprecated libraries. - for bad_path, bad_soname, msg in DEPRECATED_LIBRARY_LOCATIONS: - if resolved_path == bad_path and soname == bad_soname: - logger.debug("Bad lib found: %s/%s", bad_path, bad_soname) - error_mgr.ReportError( - pkgname, - "deprecated-library", - ("%s %s %s/%s" - % (binary_info["path"], msg, resolved_path, soname))) - for req_pkg in req_pkgs: - alternative_deps.add((req_pkg, reason)) - # print "alternative_deps:", alternative_deps - required_deps.append(list(alternative_deps)) - if not resolved: - orphan_sonames.append((soname, binary_info["path"])) - if path_list: - path_msg = "was available at the following paths: %s." % path_list - else: - path_msg = ("was not present on the filesystem, " - "nor in the packages under examination.") - if soname not in ALLOWED_ORPHAN_SONAMES: - messenger.Message( - "%s could not be resolved for %s, with rpath %s, expanded to %s, " - "while the file %s" - % (soname, binary_info["path"], - runpath_tuple, runpath_history, path_msg)) + orphan_sonames_tmp, required_deps_tmp = ProcessSoname( + ldd_emulator, + soname, path_and_pkg_by_basename, binary_info, isalist, binary_path, logger, + error_mgr, + pkgname, messenger) + orphan_sonames.extend(orphan_sonames_tmp) + required_deps.extend(required_deps_tmp) orphan_sonames = set(orphan_sonames) for soname, binary_path in orphan_sonames: if soname not in ALLOWED_ORPHAN_SONAMES: Modified: csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py 2010-12-06 18:32:20 UTC (rev 11818) +++ csw/mgar/gar/v2-fortran/lib/python/dependency_checks_test.py 2010-12-06 22:14:33 UTC (rev 11819) @@ -325,7 +325,9 @@ checkpkg.SetCheckInterface) self.pkg_data = copy.deepcopy(sudo_stats) - def testOne(self): + def testLibrariesRpathOrder(self): + # pkg_data, error_mgr, logger, messenger, path_and_pkg_by_basename, + # pkg_by_path pass def testByFilename(self): Modified: csw/mgar/gar/v2-fortran/lib/python/opencsw.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/opencsw.py 2010-12-06 18:32:20 UTC (rev 11818) +++ csw/mgar/gar/v2-fortran/lib/python/opencsw.py 2010-12-06 22:14:33 UTC (rev 11819) @@ -81,15 +81,28 @@ p = p[:-4] bits = p.split("-") catalogname = bits[0] - version, version_info, revision_info = ParseVersionString(bits[1]) + if len(bits) < 2: + version, version_info, revision_info = None, None, None + full_version_string = None + else: + version, version_info, revision_info = ParseVersionString(bits[1]) + full_version_string = bits[1] if len(bits) == 5: osrel, arch, vendortag = bits[2:5] - else: + elif len(bits) == 4: arch, vendortag = bits[2:4] osrel = "unspecified" + elif len(bits) == 3: + arch = bits[2] + vendortag = "UNKN" + osrel = "unspecified" + else: + arch = "unknown" + vendortag = "UNKN" + osrel = "unspecified" data = { 'catalogname': catalogname, - 'full_version_string': bits[1], + 'full_version_string': full_version_string, 'version': version, 'version_info': version_info, 'revision_info': revision_info, Modified: csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py 2010-12-06 18:32:20 UTC (rev 11818) +++ csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py 2010-12-06 22:14:33 UTC (rev 11819) @@ -163,30 +163,6 @@ self.assertEqual("unspecified", parsed["osrel"]) -class ComposePackageFileNameUnitTest(unittest.TestCase): - - def setUp(self): - self.parsed = {'arch': 'i386', - 'catalogname': 'mysql5client', - 'full_version_string': '5.0.87,REV=2010.02.28', - 'osrel': 'SunOS5.8', - 'revision_info': {'REV': '2010.02.28'}, - 'vendortag': 'CSW', - 'version': '5.0.87', - 'version_info': {'major version': '5', - 'minor version': '0', - 'patchlevel': '87'}} - - def testSimple(self): - file_name = 'mysql5client-5.0.87,REV=2010.02.28-SunOS5.8-i386-CSW.pkg' - self.assertEquals(file_name, opencsw.ComposePackageFileName(self.parsed)) - - def testMoreRev(self): - file_name = 'mysql5client-5.0.87,REV=2010.02.28_foo=bar-SunOS5.8-i386-CSW.pkg' - self.parsed["revision_info"]["foo"] = "bar" - self.assertEquals(file_name, opencsw.ComposePackageFileName(self.parsed)) - - class ParseVersionStringTest(unittest.TestCase): def test_NoRev(self): @@ -204,28 +180,11 @@ def test_Empty(self): data = "" + opencsw.ParseVersionString(data) expected = ('', {'major version': ''}, {}) self.assertEqual(expected, opencsw.ParseVersionString(data)) - def testExtraStringsHashable(self): - data = "2.7,REV=2009.06.18_STABLE6" - expected = ( - '2.7', - { - 'minor version': '7', - 'major version': '2'}, - { - # Here's the important bit: all parts of the parsed version - # must be hashable for submitpkg to work. - 'extra_strings': ('STABLE6',), - 'REV': '2009.06.18', - } - ) - result = opencsw.ParseVersionString(data) - hash(result[2]['extra_strings']) - self.assertEqual(expected, opencsw.ParseVersionString(data)) - class UpgradeTypeTest(unittest.TestCase): def testUpgradeType_1(self): Modified: csw/mgar/gar/v2-fortran/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/package_checks.py 2010-12-06 18:32:20 UTC (rev 11818) +++ csw/mgar/gar/v2-fortran/lib/python/package_checks.py 2010-12-06 22:14:33 UTC (rev 11819) @@ -1194,6 +1194,22 @@ % (binary_info["soname"], binary_info["base_name"])) +def CheckDocDir(pkg_data, error_mgr, logger, messenger): + pkgname = pkg_data["basic_stats"]["pkgname"] + docpath_re = re.compile(r"/opt/csw/share/doc/(?P[^/]+)/license") + for pkgmap_entry in pkg_data["pkgmap"]: + if "path" not in pkgmap_entry: continue + if not pkgmap_entry["path"]: continue + m = docpath_re.match(pkgmap_entry["path"]) + if m: + if m.groupdict()["docname"] != pkg_data["basic_stats"]["catalogname"]: + error_mgr.ReportError( + "wrong-docdir", + "expected=/opt/csw/shared/doc/%s/... " + "in-package=%s" + % (pkg_data["basic_stats"]["catalogname"], + pkgmap_entry["path"])) + def CheckSonameMustNotBeEqualToFileNameIfFilenameEndsWithSo( pkg_data, error_mgr, logger, messenger): pass Modified: csw/mgar/gar/v2-fortran/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/package_checks_test.py 2010-12-06 18:32:20 UTC (rev 11818) +++ csw/mgar/gar/v2-fortran/lib/python/package_checks_test.py 2010-12-06 22:14:33 UTC (rev 11819) @@ -549,6 +549,66 @@ self.pkg_data = [self.pkg_data] +class TestDeprecatedLibraries_GoodRpath(CheckpkgUnitTestHelper, unittest.TestCase): + FUNCTION_NAME = 'SetCheckLibraries' + def CheckpkgTest(self): + binaries_dump_info = self.pkg_data["binaries_dump_info"] + binaries_dump_info[0]["runpath"] = ("/opt/csw/bdb47/lib", "/opt/csw/lib",) + binaries_dump_info[0]["needed sonames"] = ["libdb-4.7.so"] + self.pkg_data["depends"] = (("CSWbad", None),(u"CSWcommon", "")) + self.pkg_data["binaries_dump_info"] = binaries_dump_info[0:1] + self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libdb-4.7.so').AndReturn({ + u'/opt/csw/bdb47/lib': [u'CSWbad'], + u'/opt/csw/bdb47lib/sparcv9': [u'CSWbad'], + u'/opt/csw/lib': [u'CSWgood'], + u'/opt/csw/lib/sparcv9': [u'CSWgood'], + }) + self.error_mgr_mock.GetPkgByPath( + '/opt/csw/share/man').AndReturn(["CSWcommon"]) + self.error_mgr_mock.GetPkgByPath( + '/opt/csw/bin').AndReturn(["CSWcommon"]) + self.error_mgr_mock.GetPkgByPath( + '/opt/csw/bin/sparcv8').AndReturn(["CSWcommon"]) + self.error_mgr_mock.GetPkgByPath( + '/opt/csw/bin/sparcv9').AndReturn(["CSWcommon"]) + self.error_mgr_mock.GetPkgByPath( + '/opt/csw/share/doc').AndReturn(["CSWcommon"]) + # There should be no error here, since /opt/csw/bdb47/lib is first in the RPATH. + self.pkg_data = [self.pkg_data] + + +class TestDeprecatedLibraries_BadRpath(CheckpkgUnitTestHelper, unittest.TestCase): + FUNCTION_NAME = 'SetCheckLibraries' + def CheckpkgTest(self): + binaries_dump_info = self.pkg_data["binaries_dump_info"] + binaries_dump_info[0]["runpath"] = ("/opt/csw/lib", "/opt/csw/bdb47/lib",) + binaries_dump_info[0]["needed sonames"] = ["libdb-4.7.so"] + self.pkg_data["depends"] = (("CSWbad", None),(u"CSWcommon", "")) + self.pkg_data["binaries_dump_info"] = binaries_dump_info[0:1] + self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libdb-4.7.so').AndReturn({ + u'/opt/csw/bdb47/lib': [u'CSWbad'], + u'/opt/csw/bdb47lib/sparcv9': [u'CSWbad'], + u'/opt/csw/lib': [u'CSWgood'], + u'/opt/csw/lib/sparcv9': [u'CSWgood'], + }) + self.error_mgr_mock.GetPkgByPath( + '/opt/csw/share/man').AndReturn(["CSWcommon"]) + self.error_mgr_mock.GetPkgByPath( + '/opt/csw/bin').AndReturn(["CSWcommon"]) + self.error_mgr_mock.GetPkgByPath( + '/opt/csw/bin/sparcv8').AndReturn(["CSWcommon"]) + self.error_mgr_mock.GetPkgByPath( + '/opt/csw/bin/sparcv9').AndReturn(["CSWcommon"]) + self.error_mgr_mock.GetPkgByPath( + '/opt/csw/share/doc').AndReturn(["CSWcommon"]) + self.error_mgr_mock.ReportError( + 'CSWrsync', + 'deprecated-library', + u'opt/csw/bin/sparcv8/rsync Deprecated Berkeley DB location ' + u'/opt/csw/lib/libdb-4.7.so') + self.pkg_data = [self.pkg_data] + + class TestSetCheckLibmLinking(CheckpkgUnitTestHelper, unittest.TestCase): FUNCTION_NAME = 'SetCheckLibraries' def CheckpkgTest(self): @@ -1371,6 +1431,7 @@ FUNCTION_NAME = 'CheckSharedLibraryNameMustBeAsubstringOfSoname' def CheckpkgTest(self): self.pkg_data = neon_stats[0] + # TODO: Implement this class TestCheckSharedLibraryNameMustBeAsubstringOfSonameGood( @@ -1384,5 +1445,32 @@ 'soname=libneon.so.27 filename=foo.so.1') +class TestCheckDocDirLicense(CheckpkgUnitTestHelper, unittest.TestCase): + FUNCTION_NAME = 'CheckDocDir' + def CheckpkgTest(self): + self.pkg_data = neon_stats[0] + self.pkg_data["pkgmap"].append({ + "class": "none", "type": "f", "line": "", + "user": "root", "group": "bin", "mode": '0755', + "path": "/opt/csw/share/doc/alien/license", + }) + self.error_mgr_mock.ReportError( + 'wrong-docdir', + 'expected=/opt/csw/shared/doc/neon/... ' + 'in-package=/opt/csw/share/doc/alien/license') + + +class TestCheckDocDirRandomFile(CheckpkgUnitTestHelper, unittest.TestCase): + "A random file should not trigger the message; only license files." + FUNCTION_NAME = 'CheckDocDir' + def CheckpkgTest(self): + self.pkg_data = neon_stats[0] + self.pkg_data["pkgmap"].append({ + "class": "none", "type": "f", "line": "", + "user": "root", "group": "bin", "mode": '0755', + "path": "/opt/csw/share/doc/alien/random_file", + }) + + if __name__ == '__main__': unittest.main() Copied: csw/mgar/gar/v2-fortran/lib/python/testdata/apr_util_stats.py (from rev 10927, csw/mgar/gar/v2/lib/python/testdata/apr_util_stats.py) =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/testdata/apr_util_stats.py (rev 0) +++ csw/mgar/gar/v2-fortran/lib/python/testdata/apr_util_stats.py 2010-12-06 22:14:33 UTC (rev 11819) @@ -0,0 +1,605 @@ +import datetime +pkgstats = [{'bad_paths': {}, + 'basic_stats': {'catalogname': 'apr_util', + 'md5_sum': 'e19f2b377884db51cc20a88ff06c8eb7', + 'parsed_basename': {'arch': 'sparc', + 'catalogname': 'apr_util', + 'full_version_string': '1.3.9,REV=2010.08.27', + 'osrel': 'SunOS5.9', + 'revision_info': {'REV': '2010.08.27'}, + 'vendortag': 'CSW', + 'version': '1.3.9', + 'version_info': {'major version': '1', + 'minor version': '3', + 'patchlevel': '9'}}, + 'pkg_basename': 'apr_util-1.3.9,REV=2010.08.27-SunOS5.9-sparc-CSW.pkg.gz', + 'pkg_path': '/tmp/pkg_bKg13A/apr_util-1.3.9,REV=2010.08.27-SunOS5.9-sparc-CSW.pkg.gz', + 'pkgname': 'CSWar-util', + 'stats_version': 9L}, + 'binaries': ['opt/csw/lib/apr-util-1/apr_dbd_odbc-1.so', + 'opt/csw/lib/apr-util-1/apr_dbd_sqlite3-1.so', + 'opt/csw/lib/apr-util-1/apr_dbm_db-1.so', + 'opt/csw/lib/apr-util-1/apr_ldap-1.so', + 'opt/csw/lib/libaprutil-1.so.0.3.9'], + 'binaries_dump_info': [{'RPATH set': True, + 'RUNPATH RPATH the same': True, + 'RUNPATH set': True, + 'base_name': 'apr_dbd_odbc-1.so', + 'needed sonames': ('libodbc.so.1', 'libc.so.1'), + 'path': 'opt/csw/lib/apr-util-1/apr_dbd_odbc-1.so', + 'runpath': ('/opt/csw/bdb47/lib', '/opt/csw/lib'), + 'soname': 'apr_dbd_odbc-1.so'}, + {'RPATH set': True, + 'RUNPATH RPATH the same': True, + 'RUNPATH set': True, + 'base_name': 'apr_dbd_sqlite3-1.so', + 'needed sonames': ('libsqlite3.so.0', + 'libc.so.1'), + 'path': 'opt/csw/lib/apr-util-1/apr_dbd_sqlite3-1.so', + 'runpath': ('/opt/csw/bdb47/lib', '/opt/csw/lib'), + 'soname': 'apr_dbd_sqlite3-1.so'}, + {'RPATH set': True, + 'RUNPATH RPATH the same': True, + 'RUNPATH set': True, + 'base_name': 'apr_dbm_db-1.so', + 'needed sonames': ('libdb-4.7.so', 'libc.so.1'), + 'path': 'opt/csw/lib/apr-util-1/apr_dbm_db-1.so', + 'runpath': ('/opt/csw/bdb47/lib', '/opt/csw/lib'), + 'soname': 'apr_dbm_db-1.so'}, + {'RPATH set': True, + 'RUNPATH RPATH the same': True, + 'RUNPATH set': True, + 'base_name': 'apr_ldap-1.so', + 'needed sonames': ('libldap-2.4.so.2', + 'libgen.so.1', + 'libnet.so', + 'libsasl2.so.2', + 'libdl.so.1', + 'libnsl.so.1', + 'libresolv.so.2', + 'libsocket.so.1', + 'libssl.so.0.9.8', + 'libcrypto.so.0.9.8', + 'liblber-2.4.so.2', + 'libc.so.1'), + 'path': 'opt/csw/lib/apr-util-1/apr_ldap-1.so', + 'runpath': ('/opt/csw/bdb47/lib', '/opt/csw/lib'), + 'soname': 'apr_ldap-1.so'}, + {'RPATH set': True, + 'RUNPATH RPATH the same': True, + 'RUNPATH set': True, + 'base_name': 'libaprutil-1.so.0.3.9', + 'needed sonames': ('libexpat.so.1', + 'libiconv.so.2', + 'libapr-1.so.0', + 'libuuid.so.1', + 'libsendfile.so.1', + 'librt.so.1', + 'libsocket.so.1', + 'libnsl.so.1', + 'libpthread.so.1', + 'libdl.so.1', + 'libc.so.1'), + 'path': 'opt/csw/lib/libaprutil-1.so.0.3.9', + 'runpath': ('/opt/csw/bdb47/lib', '/opt/csw/lib'), + 'soname': 'libaprutil-1.so.0'}], + 'depends': [('CSWcommon', + 'CSWcommon common - common files and dirs for CSW packages '), + ('CSWapr', 'CSWapr apr - Apache Portable Runtime '), + ('CSWiconv', 'CSWiconv libiconv - GNU iconv library '), + ('CSWsqlite3rt', + 'CSWsqlite3rt sqlite3_rt - An embeddable SQL engine in a C library runtime '), + ('CSWunixodbc', + 'CSWunixodbc unixodbc - ODBC drivers for Unix systems '), + ('CSWexpat', 'CSWexpat expat - XML Parser Toolkit '), + ('CSWbdb47', + 'CSWbdb47 berkeleydb47 - BerkeleyDB 4.7 embedded database libraries and utilities '), + ('CSWoldaprt', + 'CSWoldaprt openldap_rt - OpenLDAP runtime libraries '), + ('CSWosslrt', + 'CSWosslrt openssl_rt - Openssl runtime libraries '), + ('CSWsasl', + 'CSWsasl sasl - Simple Authentication and Security Layer '), + ('CSWlibnet', + 'CSWlibnet libnet - the libnet packet construction library ')], + 'files_metadata': [{'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_ldap_option.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_memcache.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_dbd.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_sdbm.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apu_want.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_rmm.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_uri.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_ldap_rebind.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_ldap_url.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_reslist.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_anylock.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_date.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_thread_pool.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_hooks.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_dbm.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_optional.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_strmatch.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_queue.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_base64.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_ldap.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_ldap_init.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_optional_hooks.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_sha1.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_uuid.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_xml.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_xlate.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apu.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_md5.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apu_version.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_md4.h'}, + {'mime_type': 'text/x-c; charset=us-ascii', + 'path': 'opt/csw/include/apr_buckets.h'}, + {'mime_type': 'text/plain; charset=us-ascii', + 'path': 'opt/csw/lib/aprutil.exp'}, + {'endian': 'Big endian', + 'machine_id': 2, + 'mime_type': 'application/x-sharedlib; charset=binary', + 'mime_type_by_hachoir': u'application/x-executable', + 'path': 'opt/csw/lib/libaprutil-1.so.0.3.9'}, + {'mime_type': 'text/plain; charset=us-ascii', + 'path': 'opt/csw/lib/pkgconfig/apr-util-1.pc'}, + {'endian': 'Big endian', + 'machine_id': 2, + 'mime_type': 'application/x-sharedlib; charset=binary', + 'mime_type_by_hachoir': u'application/x-executable', + 'path': 'opt/csw/lib/apr-util-1/apr_dbd_sqlite3-1.so'}, + {'endian': 'Big endian', + 'machine_id': 2, + 'mime_type': 'application/x-sharedlib; charset=binary', + 'mime_type_by_hachoir': u'application/x-executable', + 'path': 'opt/csw/lib/apr-util-1/apr_ldap-1.so'}, + {'endian': 'Big endian', + 'machine_id': 2, + 'mime_type': 'application/x-sharedlib; charset=binary', + 'mime_type_by_hachoir': u'application/x-executable', + 'path': 'opt/csw/lib/apr-util-1/apr_dbd_odbc-1.so'}, + {'endian': 'Big endian', + 'machine_id': 2, + 'mime_type': 'application/x-sharedlib; charset=binary', + 'mime_type_by_hachoir': u'application/x-executable', + 'path': 'opt/csw/lib/apr-util-1/apr_dbm_db-1.so'}, + {'mime_type': 'text/plain; charset=us-ascii', + 'path': 'opt/csw/share/doc/apr_util/license'}, + {'mime_type': 'text/x-shellscript; charset=us-ascii', + 'path': 'opt/csw/bin/apu-1-config'}], + 'isalist': ('sparcv9+vis2', + 'sparcv9+vis', + 'sparcv9', + 'sparcv8plus+vis2', + 'sparcv8plus+vis', + 'sparcv8plus', + 'sparcv8', + 'sparcv8-fsmuld', + 'sparcv7', + 'sparc'), + 'mtime': datetime.datetime(2010, 8, 27, 11, 0, 10), + 'overrides': [], + 'pkgchk': {'return_code': 0, + 'stderr_lines': ['rm: Cannot remove any directory in the path of the current working directory', + '/var/tmp/aaaIGaO6g/CSWar-util'], + 'stdout_lines': ['Checking uninstalled stream format package from ', + '## Checking control scripts.', + '## Checking package objects.', + '## Checking is complete.']}, + 'pkginfo': {'ARCH': 'sparc', + 'CATEGORY': 'application', + 'CLASSES': 'none', + 'EMAIL': 'maciej at opencsw.org', + 'HOTLINE': 'http://www.opencsw.org/bugtrack/', + 'NAME': 'apr_util - Apache Portable Runtime Utilities', + 'OPENCSW_BUNDLE': 'apr-util', + 'OPENCSW_CATALOGNAME': 'apr_util', + 'OPENCSW_MODE64': '32', + 'OPENCSW_REPOSITORY': 'https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/pkg/apr-util/trunk at 10822', + 'PKG': 'CSWar-util', + 'PSTAMP': 'maciej at testing9s-20100827130000', + 'VENDOR': 'http://apache.crihan.fr/dist/apr/ packaged for CSW by Maciej Blizinski', + 'VERSION': '1.3.9,REV=2010.08.27', + 'WORKDIR_FIRSTMOD': '../build-isa-sparcv8'}, + 'pkgmap': [{'class': None, + 'group': None, + 'line': ': 1 0', + 'mode': None, + 'path': None, + 'type': '1', + 'user': None}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/bin/apu-1-config 0755 root bin 6437 35894 1282906794', + 'mode': '0755', + 'path': '/opt/csw/bin/apu-1-config', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_anylock.h 0644 root bin 5050 35768 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_anylock.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_base64.h 0644 root bin 3823 57460 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_base64.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_buckets.h 0644 root bin 60020 64941 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_buckets.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_date.h 0644 root bin 3554 13649 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_date.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_dbd.h 0644 root bin 24093 4453 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_dbd.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_dbm.h 0644 root bin 8599 26734 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_dbm.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_hooks.h 0644 root bin 8585 47295 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_hooks.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_ldap.h 0644 root bin 5704 7247 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_ldap.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_ldap_init.h 0644 root bin 5780 10710 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_ldap_init.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_ldap_option.h 0644 root bin 8604 41864 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_ldap_option.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_ldap_rebind.h 0644 root bin 3168 62596 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_ldap_rebind.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_ldap_url.h 0644 root bin 3799 32681 1282906791', + 'mode': '0644', + 'path': '/opt/csw/include/apr_ldap_url.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_md4.h 0644 root bin 4525 42434 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_md4.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_md5.h 0644 root bin 5573 519 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_md5.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_memcache.h 0644 root bin 17072 60128 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_memcache.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_optional.h 0644 root bin 2780 34306 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_optional.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_optional_hooks.h 0644 root bin 3869 64111 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_optional_hooks.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_queue.h 0644 root bin 4082 16636 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_queue.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_reslist.h 0644 root bin 6326 56986 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_reslist.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_rmm.h 0644 root bin 4778 15266 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_rmm.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_sdbm.h 0644 root bin 6113 34421 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_sdbm.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_sha1.h 0644 root bin 3884 57845 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_sha1.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_strmatch.h 0644 root bin 2677 28267 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_strmatch.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_thread_pool.h 0644 root bin 11104 60025 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_thread_pool.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_uri.h 0644 root bin 6589 55175 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_uri.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_uuid.h 0644 root bin 2102 40269 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_uuid.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_xlate.h 0644 root bin 6408 789 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_xlate.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apr_xml.h 0644 root bin 12357 61173 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apr_xml.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apu.h 0644 root bin 3560 23891 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apu.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apu_version.h 0644 root bin 4126 11796 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apu_version.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/include/apu_want.h 0644 root bin 1483 49830 1282906792', + 'mode': '0644', + 'path': '/opt/csw/include/apu_want.h', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 d none /opt/csw/lib/apr-util-1 0755 root bin', + 'mode': '0755', + 'path': '/opt/csw/lib/apr-util-1', + 'type': 'd', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/lib/apr-util-1/apr_dbd_odbc-1.so 0755 root bin 30580 5683 1282906789', + 'mode': '0755', + 'path': '/opt/csw/lib/apr-util-1/apr_dbd_odbc-1.so', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': None, + 'line': '1 s none /opt/csw/lib/apr-util-1/apr_dbd_odbc.so=apr_dbd_odbc-1.so', + 'mode': None, + 'path': '/opt/csw/lib/apr-util-1/apr_dbd_odbc.so', + 'type': 's', + 'user': None}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/lib/apr-util-1/apr_dbd_sqlite3-1.so 0755 root bin 18044 2829 1282906788', + 'mode': '0755', + 'path': '/opt/csw/lib/apr-util-1/apr_dbd_sqlite3-1.so', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': None, + 'line': '1 s none /opt/csw/lib/apr-util-1/apr_dbd_sqlite3.so=apr_dbd_sqlite3-1.so', + 'mode': None, + 'path': '/opt/csw/lib/apr-util-1/apr_dbd_sqlite3.so', + 'type': 's', + 'user': None}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/lib/apr-util-1/apr_dbm_db-1.so 0755 root bin 9764 59811 1282906789', + 'mode': '0755', + 'path': '/opt/csw/lib/apr-util-1/apr_dbm_db-1.so', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': None, + 'line': '1 s none /opt/csw/lib/apr-util-1/apr_dbm_db.so=apr_dbm_db-1.so', + 'mode': None, + 'path': '/opt/csw/lib/apr-util-1/apr_dbm_db.so', + 'type': 's', + 'user': None}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/lib/apr-util-1/apr_ldap-1.so 0755 root bin 17916 9844 1282906790', + 'mode': '0755', + 'path': '/opt/csw/lib/apr-util-1/apr_ldap-1.so', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': None, + 'line': '1 s none /opt/csw/lib/apr-util-1/apr_ldap.so=apr_ldap-1.so', + 'mode': None, + 'path': '/opt/csw/lib/apr-util-1/apr_ldap.so', + 'type': 's', + 'user': None}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/lib/aprutil.exp 0644 root bin 5442 19740 1282906793', + 'mode': '0644', + 'path': '/opt/csw/lib/aprutil.exp', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': None, + 'line': '1 s none /opt/csw/lib/libaprutil-1.so=libaprutil-1.so.0.3.9', + 'mode': None, + 'path': '/opt/csw/lib/libaprutil-1.so', + 'type': 's', + 'user': None}, + {'class': 'none', + 'group': None, + 'line': '1 s none /opt/csw/lib/libaprutil-1.so.0=libaprutil-1.so.0.3.9', + 'mode': None, + 'path': '/opt/csw/lib/libaprutil-1.so.0', + 'type': 's', + 'user': None}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/lib/libaprutil-1.so.0.3.9 0755 root bin 272120 38251 1282906792', + 'mode': '0755', + 'path': '/opt/csw/lib/libaprutil-1.so.0.3.9', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 d none /opt/csw/lib/pkgconfig 0755 root bin', + 'mode': '0755', + 'path': '/opt/csw/lib/pkgconfig', + 'type': 'd', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/lib/pkgconfig/apr-util-1.pc 0644 root bin 371 32716 1282906792', + 'mode': '0644', + 'path': '/opt/csw/lib/pkgconfig/apr-util-1.pc', + 'type': 'f', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 d none /opt/csw/share/doc/apr_util 0755 root bin', + 'mode': '0755', + 'path': '/opt/csw/share/doc/apr_util', + 'type': 'd', + 'user': 'root'}, + {'class': 'none', + 'group': 'bin', + 'line': '1 f none /opt/csw/share/doc/apr_util/license 0644 root bin 21179 51077 1282906796', + 'mode': '0644', + 'path': '/opt/csw/share/doc/apr_util/license', + 'type': 'f', + 'user': 'root'}, + {'class': None, + 'group': None, + 'line': '1 i copyright 72 6789 1282906796', + 'mode': None, + 'path': None, + 'type': 'i', + 'user': None}, + {'class': None, + 'group': None, + 'line': '1 i depend 614 54845 1282906800', + 'mode': None, + 'path': None, + 'type': 'i', + 'user': None}, + {'class': None, + 'group': None, + 'line': '1 i pkginfo 528 44388 1282906809', + 'mode': None, + 'path': None, + 'type': 'i', + 'user': None}]}] + Property changes on: csw/mgar/gar/v2-fortran/pkglib/csw/depend ___________________________________________________________________ Modified: svn:mergeinfo - /csw/mgar/gar/v2/pkglib/csw/depend:4936-6678,10928-10988,10990-11763 /csw/mgar/gar/v2-bwalton/pkglib/csw/depend:9784-10011 /csw/mgar/gar/v2-checkpkg/pkglib/csw/depend:7722-7855 /csw/mgar/gar/v2-checkpkg-override-relocation/pkglib/csw/depend:10585-10737 /csw/mgar/gar/v2-checkpkg-stats/pkglib/csw/depend:8454-8649 /csw/mgar/gar/v2-collapsed-modulations/pkglib/csw/depend:6895 /csw/mgar/gar/v2-dirpackage/pkglib/csw/depend:8125-8180 /csw/mgar/gar/v2-noexternals/pkglib/csw/depend:11592-11745 /csw/mgar/gar/v2-relocate/pkglib/csw/depend:5028-11738 /csw/mgar/gar/v2-skayser/pkglib/csw/depend:6087-6132 /csw/mgar/gar/v2-sqlite/pkglib/csw/depend:10434-10449 + /csw/mgar/gar/v2/pkglib/csw/depend:4936-6678,10883-11818 /csw/mgar/gar/v2-bwalton/pkglib/csw/depend:9784-10011 /csw/mgar/gar/v2-checkpkg/pkglib/csw/depend:7722-7855 /csw/mgar/gar/v2-checkpkg-override-relocation/pkglib/csw/depend:10585-10737 /csw/mgar/gar/v2-checkpkg-stats/pkglib/csw/depend:8454-8649 /csw/mgar/gar/v2-collapsed-modulations/pkglib/csw/depend:6895 /csw/mgar/gar/v2-dirpackage/pkglib/csw/depend:8125-8180 /csw/mgar/gar/v2-noexternals/pkglib/csw/depend:11592-11745 /csw/mgar/gar/v2-relocate/pkglib/csw/depend:5028-11738 /csw/mgar/gar/v2-skayser/pkglib/csw/depend:6087-6132 /csw/mgar/gar/v2-sqlite/pkglib/csw/depend:10434-10449 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 6 23:33:25 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 06 Dec 2010 22:33:25 +0000 Subject: [csw-devel] SF.net SVN: gar:[11820] csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py Message-ID: Revision: 11820 http://gar.svn.sourceforge.net/gar/?rev=11820&view=rev Author: wahwah Date: 2010-12-06 22:33:25 +0000 (Mon, 06 Dec 2010) Log Message: ----------- mGAR v2-fortran: Bringing the opencsw_test.py file in sync with v2 I don't know how did it get out of sync; there was a conflict during merge and I apparently resolved it the wrong way. Modified Paths: -------------- csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py Modified: csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py =================================================================== --- csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py 2010-12-06 22:14:33 UTC (rev 11819) +++ csw/mgar/gar/v2-fortran/lib/python/opencsw_test.py 2010-12-06 22:33:25 UTC (rev 11820) @@ -163,6 +163,30 @@ self.assertEqual("unspecified", parsed["osrel"]) +class ComposePackageFileNameUnitTest(unittest.TestCase): + + def setUp(self): + self.parsed = {'arch': 'i386', + 'catalogname': 'mysql5client', + 'full_version_string': '5.0.87,REV=2010.02.28', + 'osrel': 'SunOS5.8', + 'revision_info': {'REV': '2010.02.28'}, + 'vendortag': 'CSW', + 'version': '5.0.87', + 'version_info': {'major version': '5', + 'minor version': '0', + 'patchlevel': '87'}} + + def testSimple(self): + file_name = 'mysql5client-5.0.87,REV=2010.02.28-SunOS5.8-i386-CSW.pkg' + self.assertEquals(file_name, opencsw.ComposePackageFileName(self.parsed)) + + def testMoreRev(self): + file_name = 'mysql5client-5.0.87,REV=2010.02.28_foo=bar-SunOS5.8-i386-CSW.pkg' + self.parsed["revision_info"]["foo"] = "bar" + self.assertEquals(file_name, opencsw.ComposePackageFileName(self.parsed)) + + class ParseVersionStringTest(unittest.TestCase): def test_NoRev(self): @@ -180,11 +204,28 @@ def test_Empty(self): data = "" - opencsw.ParseVersionString(data) expected = ('', {'major version': ''}, {}) self.assertEqual(expected, opencsw.ParseVersionString(data)) + def testExtraStringsHashable(self): + data = "2.7,REV=2009.06.18_STABLE6" + expected = ( + '2.7', + { + 'minor version': '7', + 'major version': '2'}, + { + # Here's the important bit: all parts of the parsed version + # must be hashable for submitpkg to work. + 'extra_strings': ('STABLE6',), + 'REV': '2009.06.18', + } + ) + result = opencsw.ParseVersionString(data) + hash(result[2]['extra_strings']) + self.assertEqual(expected, opencsw.ParseVersionString(data)) + class UpgradeTypeTest(unittest.TestCase): def testUpgradeType_1(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 6 23:53:05 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 06 Dec 2010 22:53:05 +0000 Subject: [csw-devel] SF.net SVN: gar:[11821] csw/mgar/gar/v2/lib/python/package_checks_test.py Message-ID: Revision: 11821 http://gar.svn.sourceforge.net/gar/?rev=11821&view=rev Author: wahwah Date: 2010-12-06 22:53:04 +0000 (Mon, 06 Dec 2010) Log Message: ----------- checkpkg: Copying the test data structure Turns out, there was a bug in my unit test. I should have tested my test first! The problem was that one of the test was modifying a data structure that other tests were using later on. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-06 22:33:25 UTC (rev 11820) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-06 22:53:04 UTC (rev 11821) @@ -1448,7 +1448,7 @@ class TestCheckDocDirLicense(CheckpkgUnitTestHelper, unittest.TestCase): FUNCTION_NAME = 'CheckDocDir' def CheckpkgTest(self): - self.pkg_data = neon_stats[0] + self.pkg_data = copy.deepcopy(neon_stats[0]) self.pkg_data["pkgmap"].append({ "class": "none", "type": "f", "line": "", "user": "root", "group": "bin", "mode": '0755', @@ -1464,7 +1464,7 @@ "A random file should not trigger the message; only license files." FUNCTION_NAME = 'CheckDocDir' def CheckpkgTest(self): - self.pkg_data = neon_stats[0] + self.pkg_data = copy.deepcopy(neon_stats[0]) self.pkg_data["pkgmap"].append({ "class": "none", "type": "f", "line": "", "user": "root", "group": "bin", "mode": '0755', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Tue Dec 7 02:20:17 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Tue, 07 Dec 2010 01:20:17 +0000 Subject: [csw-devel] SF.net SVN: gar:[11822] csw/mgar/pkg/freeradius/trunk/Makefile Message-ID: Revision: 11822 http://gar.svn.sourceforge.net/gar/?rev=11822&view=rev Author: gadavis Date: 2010-12-07 01:20:17 +0000 (Tue, 07 Dec 2010) Log Message: ----------- Split out LDAP and KRB5 packages Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-06 22:53:04 UTC (rev 11821) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-07 01:20:17 UTC (rev 11822) @@ -18,37 +18,13 @@ LICENSE = LICENSE GARCOMPILER = GCC4 - # Stripping libtool breaks the build in versions <=2.1.7 #STRIP_LIBTOOL = 1 ## Some of the RLM Submodules don't seem to pick up the include paths without ## setting CFLAGS EXTRA_CFLAGS = -I/opt/csw/include -#EXTRA_CFLAGS += -DIE_LIBTOOL_DIE -#CONFIGURE_ENV = CFLAGS="$(CFLAGS)" -#EXTRA_MERGE_EXCLUDE_FILES += /opt/csw/lib/libltdl.so.* -#EXTRA_MERGE_EXCLUDE_FILES += /opt/csw/lib/sparcv9/libltdl.so.* -#EXTRA_MERGE_EXCLUDE_FILES += /opt/csw/lib/amd64/libltdl.so.* -#EXTRA_MERGE_EXCLUDE_FILES += /opt/csw/include/ltdl.h - -RUNTIME_DEP_PKGS_CSWfreeradius += CSWlibpython2-6-1-0 -RUNTIME_DEP_PKGS_CSWfreeradius += CSWlibpcap -RUNTIME_DEP_PKGS_CSWfreeradius += CSWoldaprt -RUNTIME_DEP_PKGS_CSWfreeradius += CSWosslrt -RUNTIME_DEP_PKGS_CSWfreeradius += CSWgdbm -RUNTIME_DEP_PKGS_CSWfreeradius += CSWlibltdl7 -RUNTIME_DEP_PKGS_CSWfreeradius += CSWreadline -RUNTIME_DEP_PKGS_CSWfreeradius += CSWkrb5lib -RUNTIME_DEP_PKGS_CSWfreeradius += CSWgcc4corert - -## Can't get perl to link cleanly -## Still get noise about a missing dependency due to an included example -## script in raddb -#RUNTIME_DEP_PKGS_CSWfreeradius += CSWperl -CHECKPKG_OVERRIDES_CSWfreeradius += missing-dependency|CSWperl - # Put libraries (including all of the modules) in /opt/csw/lib/freeradius libdir = $(abspath $(libdir_install)/$(GARNAME)/$(MM_LIBDIR)) @@ -81,6 +57,64 @@ CONFIGURE_ARGS += --without-rlm_sql_unixodbc CONFIGURE_ARGS += --without-rlm_eap_tnc +## Individual Package definitions start here + +PACKAGES += CSWfreeradius +CATALOGNAME_CSWfreeradius = $(GARNAME) +SPKG_DESC_CSWfreeradius = $(DESCRIPTION) +RUNTIME_DEP_PKGS_CSWfreeradius += CSWlibpython2-6-1-0 +RUNTIME_DEP_PKGS_CSWfreeradius += CSWlibpcap +RUNTIME_DEP_PKGS_CSWfreeradius += CSWosslrt +RUNTIME_DEP_PKGS_CSWfreeradius += CSWgdbm +RUNTIME_DEP_PKGS_CSWfreeradius += CSWlibltdl7 +RUNTIME_DEP_PKGS_CSWfreeradius += CSWreadline +RUNTIME_DEP_PKGS_CSWfreeradius += CSWgcc4corert + +## Kerberos +PACKAGES += CSWfreeradius-krb5 +CATALOGNAME_CSWfreeradius-krb5 = freeradius_krb5 +SPKG_DESC_CSWfreeradius-krb5 = Kerberos 5 Module rlm_krb5 for FreeRADIUS +PKGFILES_CSWfreeradius-krb5 += $(raddbdir)/modules/krb5 +PKGFILES_CSWfreeradius-krb5 += $(docdir)/rlm_krb5 +PKGFILES_CSWfreeradius-krb5 += /opt/csw/lib/freeradius/rlm_krb5\.so +PKGFILES_CSWfreeradius-krb5 += /opt/csw/lib/freeradius/rlm_krb5-2\.1\.[0-9]+\.so +RUNTIME_DEP_PKGS_CSWfreeradius-krb5 += CSWkrb5lib +RUNTIME_DEP_PKGS_CSWfreeradius-krb5 += CSWfreeradius +RUNTIME_DEP_PKGS_CSWfreeradius-krb5 += CSWgcc4corert + +## LDAP +PACKAGES += CSWfreeradius-ldap +CATALOGNAME_CSWfreeradius-ldap = freeradias_ldap +SPKG_DESC_CSWfreeradius-ldap = LDAP Module rlm_ldap for FreeRADIUS +PKGFILES_CSWfreeradius-ldap += $(raddbdir)/ldap\.attrmap +PKGFILES_CSWfreeradius-ldap += $(raddbdir)/modules/ldap +PKGFILES_CSWfreeradius-ldap += $(docdir)/ldap_howto.rst +PKGFILES_CSWfreeradius-ldap += $(docdir)/RADIUS-LDAP-eDirectory +PKGFILES_CSWfreeradius-ldap += $(docdir)/rlm_ldap +PKGFILES_CSWfreeradius-ldap += $(docdir)/examples/openldap.schema +PKGFILES_CSWfreeradius-ldap += /opt/csw/lib/freeradius/rlm_ldap\.so +PKGFILES_CSWfreeradius-ldap += /opt/csw/lib/freeradius/rlm_ldap-2\.1\.[0-9]+\.so +RUNTIME_DEP_PKGS_CSWfreeradius-ldap += CSWoldaprt +RUNTIME_DEP_PKGS_CSWfreeradius-ldap += CSWfreeradius +RUNTIME_DEP_PKGS_CSWfreeradius-ldap += CSWgcc4corert + +## Perl support +## Disabling Perl due to linker issues and weird makefiles +#PACKAGES += CSWfreeradius-perl +#CATALOGNAME_CSWfreeradius-perl = freeradius-perl +#SPKG_DESC_CSWfreeradius-perl = Perl Module rlm_perl for FreeRADIUS +#RUNTIME_DEP_PKGS_CSWfreeradius-perl += CSWperl +#RUNTIME_DEP_PKGS_CSWfreeradius-perl += CSWfreeradius +#PKGFILES_CSWfreeradius-perl += $(raddbdir)/example.pl +#rlm_perl_inc = $(shell /opt/csw/bin/perl -e 'use Config; print "$$Config{archlib}\n"')/CORE +#CONFIGURE_ARGS += --with-rlm_perl_include_dir=$(rlm_perl_inc) +## Comment out the following lines when building Perl +CONFIGURE_ARGS += --without-rlm_perl +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/example.pl +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/modules/perl +## End perl exclusion lines + +## PostgreSQL support ## Disabling Postgresql because it's going to take a bunch of weird ## Makefile hackery of these non-automake Makefiles to get the RPATH right #BUILD_DEP_PKGS += CSWpostgresql @@ -88,19 +122,19 @@ #rlm_pgsql_inc = $(shell /opt/csw/postgresql/bin/$(ISA)/pg_config --includedir) #CONFIGURE_ARGS += --with-rlm_sql_postgresql_lib_dir=$(rlm_pgsql_lib) #CONFIGURE_ARGS += --with-rlm_sql_postgresql_include_dir=$(rlm_pgsql_inc) +## Comment out the following lines when building PostgreSQL support CONFIGURE_ARGS += --without-rlm_sql_postgresql +## End pgsql exclusion lines ## Disabling MySQL because it's going to take a bunch of weird ## Makefile hackery of these non-automake Makefiles to get the RPATH right #BUILD_DEP_PKGS += CSWmysql5devel #CONFIGURE_ARGS += --with-mysql-lib-dir=/opt/csw/mysql5/lib/$(ISA)/mysql #CONFIGURE_ARGS += --with-mysql-include-dir=/opt/csw/mysql5/include +## Comment out the following lines when building mysql support CONFIGURE_ARGS += --without-rlm_sql_mysql +## End mysql exclusion lines -## Disabling Perl due to linker issues and weird makefiles -#rlm_perl_inc = $(shell /opt/csw/bin/perl -e 'use Config; print "$$Config{archlib}\n"')/CORE -#CONFIGURE_ARGS += --with-rlm_perl_include_dir=$(rlm_perl_inc) -CONFIGURE_ARGS += --without-rlm_perl # No tests available TEST_TARGET = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Tue Dec 7 02:23:30 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Tue, 07 Dec 2010 01:23:30 +0000 Subject: [csw-devel] SF.net SVN: gar:[11823] csw/mgar/pkg/netcdf/trunk/Makefile Message-ID: Revision: 11823 http://gar.svn.sourceforge.net/gar/?rev=11823&view=rev Author: gadavis Date: 2010-12-07 01:23:30 +0000 (Tue, 07 Dec 2010) Log Message: ----------- Fix catalog name of CSWlibnetcdf6, remove surplus overrides after gar version bump Modified Paths: -------------- csw/mgar/pkg/netcdf/trunk/Makefile Modified: csw/mgar/pkg/netcdf/trunk/Makefile =================================================================== --- csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-07 01:20:17 UTC (rev 11822) +++ csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-07 01:23:30 UTC (rev 11823) @@ -28,7 +28,7 @@ RUNTIME_DEP_PKGS_CSWnetcdf += CSWlibnetcdf6 PACKAGES += CSWlibnetcdf6 -CATALOGNAME_CSWlibnetcdf6 = libnetcf6 +CATALOGNAME_CSWlibnetcdf6 = libnetcdf6 PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/libnetcdf.so.6.0.0 PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/libnetcdf.so.6\.[0-9\.]+ PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/libnetcdf.so.6 @@ -154,12 +154,6 @@ ## OPT_FLAGS_GCC = -O2 -pipe OPT_FLAGS_GCC = -## The development package should pull in the various libs since it's hard to -## link against what isn't there -CHECKPKG_OVERRIDES_CSWnetcdf-devel += surplus-dependency|CSWlibnetcdf-c++5 -CHECKPKG_OVERRIDES_CSWnetcdf-devel += surplus-dependency|CSWlibnetcdf6 -CHECKPKG_OVERRIDES_CSWnetcdf-devel += surplus-dependency|CSWlibnetcdff5 - ## Mantis bug 4497 means there's no 64 symlink in CSWgcc4corert so you can't ## link against these libraries without CSWgcc4core CHECKPKG_OVERRIDES_CSWlibnetcdf-c++5 += surplus-dependency|CSWgcc4core This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Tue Dec 7 03:22:06 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Tue, 07 Dec 2010 02:22:06 +0000 Subject: [csw-devel] SF.net SVN: gar:[11824] csw/mgar/pkg/freeradius/trunk/Makefile Message-ID: Revision: 11824 http://gar.svn.sourceforge.net/gar/?rev=11824&view=rev Author: gadavis Date: 2010-12-07 02:22:06 +0000 (Tue, 07 Dec 2010) Log Message: ----------- Speel chekc freeradius Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-07 01:23:30 UTC (rev 11823) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-07 02:22:06 UTC (rev 11824) @@ -84,7 +84,7 @@ ## LDAP PACKAGES += CSWfreeradius-ldap -CATALOGNAME_CSWfreeradius-ldap = freeradias_ldap +CATALOGNAME_CSWfreeradius-ldap = freeradius_ldap SPKG_DESC_CSWfreeradius-ldap = LDAP Module rlm_ldap for FreeRADIUS PKGFILES_CSWfreeradius-ldap += $(raddbdir)/ldap\.attrmap PKGFILES_CSWfreeradius-ldap += $(raddbdir)/modules/ldap This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Tue Dec 7 04:20:06 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Tue, 07 Dec 2010 03:20:06 +0000 Subject: [csw-devel] SF.net SVN: gar:[11825] csw/mgar/pkg/logwatch/trunk/Makefile Message-ID: Revision: 11825 http://gar.svn.sourceforge.net/gar/?rev=11825&view=rev Author: bdwalton Date: 2010-12-07 03:20:06 +0000 (Tue, 07 Dec 2010) Log Message: ----------- logwatch: drop a checkpkg override now that coreutils exists Modified Paths: -------------- csw/mgar/pkg/logwatch/trunk/Makefile Modified: csw/mgar/pkg/logwatch/trunk/Makefile =================================================================== --- csw/mgar/pkg/logwatch/trunk/Makefile 2010-12-07 02:22:06 UTC (rev 11824) +++ csw/mgar/pkg/logwatch/trunk/Makefile 2010-12-07 03:20:06 UTC (rev 11825) @@ -31,7 +31,6 @@ TEST_SCRIPTS = INSTALL_SCRIPTS = custom -CHECKPKG_OVERRIDES_CSWlogwatch += unidentified-dependency|CSWcoreutils CHECKPKG_OVERRIDES_CSWlogwatch += surplus-dependency|CSWggrep CHECKPKG_OVERRIDES_CSWlogwatch += surplus-dependency|CSWfortune CHECKPKG_OVERRIDES_CSWlogwatch += surplus-dependency|CSWcoreutils This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 7 16:02:51 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 07 Dec 2010 15:02:51 +0000 Subject: [csw-devel] SF.net SVN: gar:[11826] csw/mgar/pkg/pacparser/trunk Message-ID: Revision: 11826 http://gar.svn.sourceforge.net/gar/?rev=11826&view=rev Author: dmichelsen Date: 2010-12-07 15:02:51 +0000 (Tue, 07 Dec 2010) Log Message: ----------- pacparser: Add a ton of patches Modified Paths: -------------- csw/mgar/pkg/pacparser/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/pacparser/trunk/files/0001-Adjust-Makefile.patch csw/mgar/pkg/pacparser/trunk/files/0002-Fix-nullpointer-bug.patch csw/mgar/pkg/pacparser/trunk/files/0003-Only-GNU-grep-knows-q.patch csw/mgar/pkg/pacparser/trunk/files/0004-Some-more-Makefile-tweaks.patch csw/mgar/pkg/pacparser/trunk/files/0005-Fix-soname-and-pactester-compilation.patch csw/mgar/pkg/pacparser/trunk/files/0006-Add-flags-to-make-library-self-sufficient.patch csw/mgar/pkg/pacparser/trunk/files/0007-Add-config-for-spidermonkey-i386.patch csw/mgar/pkg/pacparser/trunk/files/0008-Always-set-myIpAddr-to-127.0.0.1-or-tests-on-current.patch Modified: csw/mgar/pkg/pacparser/trunk/Makefile =================================================================== --- csw/mgar/pkg/pacparser/trunk/Makefile 2010-12-07 03:20:06 UTC (rev 11825) +++ csw/mgar/pkg/pacparser/trunk/Makefile 2010-12-07 15:02:51 UTC (rev 11826) @@ -18,10 +18,74 @@ MASTER_SITES = $(GOOGLE_MIRROR) DISTFILES = $(DISTNAME).tar.gz +PATCHFILES = 0001-Adjust-Makefile.patch + +# Reported upstream as +# http://code.google.com/p/pacparser/issues/detail?id=6 +PATCHFILES += 0002-Fix-nullpointer-bug.patch + +PATCHFILES += 0003-Only-GNU-grep-knows-q.patch +PATCHFILES += 0004-Some-more-Makefile-tweaks.patch +PATCHFILES += 0005-Fix-soname-and-pactester-compilation.patch +PATCHFILES += 0006-Add-flags-to-make-library-self-sufficient.patch +PATCHFILES += 0007-Add-config-for-spidermonkey-i386.patch +PATCHFILES += 0008-Always-set-myIpAddr-to-127.0.0.1-or-tests-on-current.patch + # File name regex to get notifications about upstream software releases UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz -BUILD64 = 1 -CONFIGURE_ARGS = $(DIRPATHS) +PACKAGES = CSWpacparser CSWlibpacparser1 CSWlibpacparser-devel CSWpy-libpacparser +CATALOGNAME_CSWpacparser = pacparser +CATALOGNAME_CSWlibpacparser1 = libpacparser1 +CATALOGNAME_CSWlibpacparser-devel = libpacparser_devel +CATALOGNAME_CSWpy-libpacparser = py_libpacparser +SPKG_DESC_CSWpacparser = $(DESCRIPTION) +SPKG_DESC_CSWlibpacparser1 = Library libpacparser.so.1 +SPKG_DESC_CSWlibpacparser-devel = Development Files for libpacparser.so +SPKG_DESC_CSWpy-libpacparser = Python Bindings for libpacparser + +RUNTIME_DEP_PKGS_CSWpacparser = CSWlibpacparser1 +RUNTIME_DEP_PKGS_CSWlibpacparser-devel = CSWlibpacparser1 +RUNTIME_DEP_PKGS_CSWpy-libpacparser = CSWlibpython2-6-1-0 CSWpython + +VENDOR_URL = http://code.google.com/p/pacparser/ + +# There is some Python stuff in the package +PYCOMPILE = 1 + +NOISALIST = 1 + +CONFIGURE_SCRIPTS = + +BUILD_SCRIPTS = $(WORKSRC)/src/Makefile +BUILD_ARGS = all pymod +BUILD_OVERRIDE_VARS = PREFIX +BUILD_OVERRIDE_VAR_PREFIX = $(prefix) + +# Tests are run after build +TEST_SCRIPTS = + +INSTALL_SCRIPTS = $(WORKSRC)/src/Makefile +INSTALL_ARGS = install install-pymod +INSTALL_OVERRIDE_DIRS = PREFIX +PREFIX=$(prefix) + +PKGFILES_CSWlibpacparser1 = $(PKGFILES_RT) +PKGFILES_CSWlibpacparser-devel = $(PKGFILES_DEVEL) +PKGFILES_CSWlibpacparser-devel += $(docdir)/pacparser/html/.* +PKGFILES_CSWlibpacparser-devel += .*\.c +PKGFILES_CSWpy-libpacparser = $(libdir)/python/.* +PKGFILES_CSWpy-libpacparser += .*\.py + include gar/category.mk + +# Needed for 'install' during install-phase +PATH := /opt/csw/gnu:$(PATH) + +post-extract-modulated: + @# We have patched something in although the package has not been unpacked. + @# Make sure it is uncompressed afterwards. + -cd $(WORKSRC)/src && gtar xzvf spidermonkey/js-?.?.?.tar.gz -C spidermonkey + $(if $(filter sparc,$(GARCH)),echo "Sparc is fast!!",rm -f $(WORKSRC)/src/spidermonkey/js/src/lock_SunOS.s) + @$(MAKECOOKIE) Added: csw/mgar/pkg/pacparser/trunk/files/0001-Adjust-Makefile.patch =================================================================== --- csw/mgar/pkg/pacparser/trunk/files/0001-Adjust-Makefile.patch (rev 0) +++ csw/mgar/pkg/pacparser/trunk/files/0001-Adjust-Makefile.patch 2010-12-07 15:02:51 UTC (rev 11826) @@ -0,0 +1,55 @@ +From 8460d62468b9c2067ee473da0e1013a869b2791f Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Tue, 7 Dec 2010 12:09:01 +0100 +Subject: [PATCH 1/8] Adjust Makefile + +--- + src/Makefile | 10 +++++----- + 1 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/Makefile b/src/Makefile +index 804dd86..b1cc23f 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -38,9 +38,9 @@ LIB_VER = 1 + SO_SUFFIX = so + LIBRARY = $(LIBRARY_NAME).$(SO_SUFFIX).$(LIB_VER) + MKSHLIB = $(CC) -shared +-LIB_OPTS = -Wl,-soname=$(LIBRARY) -Wl,-exclude-libs=libjs.a ++LIB_OPTS = -Wl,-soname=$(LIBRARY) + SHFLAGS = -fPIC +-SMCFLAGS = -DHAVE_VA_COPY -DVA_COPY=__va_copy ++SMCFLAGS = -DHAVE_VA_COPY -DVA_COPY=va_copy + + ifeq ($(OS_ARCH),Darwin) + SO_SUFFIX = dylib +@@ -51,7 +51,7 @@ ifeq ($(OS_ARCH),Darwin) + SMCFLAGS = + endif + +-CFLAGS = -g -DXP_UNIX -Wall -DVERSION=$(VERSION) ++CFLAGS = -g -DXP_UNIX -DVERSION=$(VERSION) + + ifndef PYTHON + PYTHON = python +@@ -72,7 +72,7 @@ MAN_PREFIX = $(PREFIX)/share/man + all: testpactester + + spidermonkey/js/src: spidermonkey/js-?.?.?.tar.gz +- tar xzvf spidermonkey/js-?.?.?.tar.gz -C spidermonkey ++ gtar xzvf spidermonkey/js-?.?.?.tar.gz -C spidermonkey + + jsapi_buildstamp: spidermonkey/js/src + cd spidermonkey && SMCFLAGS="$(SHFLAGS) $(SMCFLAGS)" $(MAKE) jsapi +@@ -92,7 +92,7 @@ $(LIBRARY_LINK): $(LIBRARY) + ln -sf $(LIBRARY) $(LIBRARY_LINK) + + pactester: pactester.c pacparser.h $(LIBRARY_LINK) +- $(CC) pactester.c -o pactester -lpacparser -L. -I. ++ $(CC) pactester.c -o pactester -L. -lpacparser -I. -lsocket -lnsl + + testpactester: pactester + echo "Running tests for pactester." +-- +1.7.3.2 + Added: csw/mgar/pkg/pacparser/trunk/files/0002-Fix-nullpointer-bug.patch =================================================================== --- csw/mgar/pkg/pacparser/trunk/files/0002-Fix-nullpointer-bug.patch (rev 0) +++ csw/mgar/pkg/pacparser/trunk/files/0002-Fix-nullpointer-bug.patch 2010-12-07 15:02:51 UTC (rev 11826) @@ -0,0 +1,25 @@ +From 9b90310b830099acbd0b7339f534970e74d47c3a Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Tue, 7 Dec 2010 12:09:29 +0100 +Subject: [PATCH 2/8] Fix nullpointer bug + +--- + src/pacparser.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/pacparser.c b/src/pacparser.c +index 315f854..dd6a840 100644 +--- a/src/pacparser.c ++++ b/src/pacparser.c +@@ -112,7 +112,7 @@ resolve_host(const char *hostname, char *ipaddr_list, int max_results) + if (ipaddr_list[0] == '\0') sprintf(ipaddr_list, "%s", ipaddr); + else sprintf(ipaddr_list, "%s;%s", ipaddr_list, ipaddr); + } +- freeaddrinfo(ai); ++ freeaddrinfo(result); + return 0; + } + +-- +1.7.3.2 + Added: csw/mgar/pkg/pacparser/trunk/files/0003-Only-GNU-grep-knows-q.patch =================================================================== --- csw/mgar/pkg/pacparser/trunk/files/0003-Only-GNU-grep-knows-q.patch (rev 0) +++ csw/mgar/pkg/pacparser/trunk/files/0003-Only-GNU-grep-knows-q.patch 2010-12-07 15:02:51 UTC (rev 11826) @@ -0,0 +1,25 @@ +From 72f1b20d04215976c6df42f40d10b90e8cbf6773 Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Tue, 7 Dec 2010 12:09:46 +0100 +Subject: [PATCH 3/8] Only GNU grep knows -q + +--- + tests/runtests.sh | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/tests/runtests.sh b/tests/runtests.sh +index 616cc6a..09a6b1e 100755 +--- a/tests/runtests.sh ++++ b/tests/runtests.sh +@@ -23,7 +23,7 @@ fi + + while read line + do +- echo "$line" | grep -q "^#" && continue ++ echo "$line" | ggrep -q "^#" && continue + PARAMS=$(echo "$line"|cut -d"|" -f1) + EXPECTED_RESULT=$(echo $line|cut -d"|" -f2) + RESULT=$($PACTESTER -p $PACFILE $PARAMS) +-- +1.7.3.2 + Added: csw/mgar/pkg/pacparser/trunk/files/0004-Some-more-Makefile-tweaks.patch =================================================================== --- csw/mgar/pkg/pacparser/trunk/files/0004-Some-more-Makefile-tweaks.patch (rev 0) +++ csw/mgar/pkg/pacparser/trunk/files/0004-Some-more-Makefile-tweaks.patch 2010-12-07 15:02:51 UTC (rev 11826) @@ -0,0 +1,34 @@ +From 8c97093a01763998f67272c479f59fa98d32c49c Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Tue, 7 Dec 2010 13:27:46 +0100 +Subject: [PATCH 4/8] Some more Makefile tweaks + +--- + src/Makefile | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/Makefile b/src/Makefile +index b1cc23f..af7a410 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -40,7 +40,7 @@ LIBRARY = $(LIBRARY_NAME).$(SO_SUFFIX).$(LIB_VER) + MKSHLIB = $(CC) -shared + LIB_OPTS = -Wl,-soname=$(LIBRARY) + SHFLAGS = -fPIC +-SMCFLAGS = -DHAVE_VA_COPY -DVA_COPY=va_copy ++SMCFLAGS = -DHAVE_VA_COPY -DVA_COPY=va_copy $(CFLAGS) + + ifeq ($(OS_ARCH),Darwin) + SO_SUFFIX = dylib +@@ -51,7 +51,7 @@ ifeq ($(OS_ARCH),Darwin) + SMCFLAGS = + endif + +-CFLAGS = -g -DXP_UNIX -DVERSION=$(VERSION) ++CFLAGS += -DXP_UNIX -DVERSION=$(VERSION) + + ifndef PYTHON + PYTHON = python +-- +1.7.3.2 + Added: csw/mgar/pkg/pacparser/trunk/files/0005-Fix-soname-and-pactester-compilation.patch =================================================================== --- csw/mgar/pkg/pacparser/trunk/files/0005-Fix-soname-and-pactester-compilation.patch (rev 0) +++ csw/mgar/pkg/pacparser/trunk/files/0005-Fix-soname-and-pactester-compilation.patch 2010-12-07 15:02:51 UTC (rev 11826) @@ -0,0 +1,34 @@ +From e285a716d2a06a4da42f24d4d72b74e094896444 Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Tue, 7 Dec 2010 13:30:08 +0100 +Subject: [PATCH 5/8] Fix soname and pactester compilation + +--- + src/Makefile | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/Makefile b/src/Makefile +index af7a410..b3abb27 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -38,7 +38,7 @@ LIB_VER = 1 + SO_SUFFIX = so + LIBRARY = $(LIBRARY_NAME).$(SO_SUFFIX).$(LIB_VER) + MKSHLIB = $(CC) -shared +-LIB_OPTS = -Wl,-soname=$(LIBRARY) ++LIB_OPTS = -h $(LIBRARY) + SHFLAGS = -fPIC + SMCFLAGS = -DHAVE_VA_COPY -DVA_COPY=va_copy $(CFLAGS) + +@@ -92,7 +92,7 @@ $(LIBRARY_LINK): $(LIBRARY) + ln -sf $(LIBRARY) $(LIBRARY_LINK) + + pactester: pactester.c pacparser.h $(LIBRARY_LINK) +- $(CC) pactester.c -o pactester -L. -lpacparser -I. -lsocket -lnsl ++ $(CC) $(CFLAGS) pactester.c -o pactester -L. -lpacparser -I. -lsocket -lnsl + + testpactester: pactester + echo "Running tests for pactester." +-- +1.7.3.2 + Added: csw/mgar/pkg/pacparser/trunk/files/0006-Add-flags-to-make-library-self-sufficient.patch =================================================================== --- csw/mgar/pkg/pacparser/trunk/files/0006-Add-flags-to-make-library-self-sufficient.patch (rev 0) +++ csw/mgar/pkg/pacparser/trunk/files/0006-Add-flags-to-make-library-self-sufficient.patch 2010-12-07 15:02:51 UTC (rev 11826) @@ -0,0 +1,25 @@ +From cd3ca684d7f4955c964ffb666d31ca5a396941c2 Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Tue, 7 Dec 2010 13:37:57 +0100 +Subject: [PATCH 6/8] Add flags to make library self-sufficient + +--- + src/Makefile | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/Makefile b/src/Makefile +index b3abb27..66b2263 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -59,7 +59,7 @@ endif + + # Spidermonkey library. + CFLAGS += -Ispidermonkey/js/src +-LDFLAGS += -lm ++LDFLAGS += -lm -lsocket -lnsl + + LIBRARY_LINK = $(LIBRARY_NAME).$(SO_SUFFIX) + PREFIX := $(DESTDIR)$(PREFIX) +-- +1.7.3.2 + Added: csw/mgar/pkg/pacparser/trunk/files/0007-Add-config-for-spidermonkey-i386.patch =================================================================== --- csw/mgar/pkg/pacparser/trunk/files/0007-Add-config-for-spidermonkey-i386.patch (rev 0) +++ csw/mgar/pkg/pacparser/trunk/files/0007-Add-config-for-spidermonkey-i386.patch 2010-12-07 15:02:51 UTC (rev 11826) @@ -0,0 +1,106 @@ +From 7f7e1c52c65e2e2085b0f689490b03e8d022cac2 Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Tue, 7 Dec 2010 14:25:03 +0100 +Subject: [PATCH 7/8] Add config for spidermonkey i386 + +--- + src/spidermonkey/js/src/config/SunOS5.9_i86pc.mk | 87 ++++++++++++++++++++++ + 1 files changed, 87 insertions(+), 0 deletions(-) + create mode 100644 src/spidermonkey/js/src/config/SunOS5.9_i86pc.mk + +diff --git a/src/spidermonkey/js/src/config/SunOS5.9_i86pc.mk b/src/spidermonkey/js/src/config/SunOS5.9_i86pc.mk +new file mode 100644 +index 0000000..bb4561f +--- /dev/null ++++ b/src/spidermonkey/js/src/config/SunOS5.9_i86pc.mk +@@ -0,0 +1,87 @@ ++# -*- Mode: makefile -*- ++# ++# ***** BEGIN LICENSE BLOCK ***** ++# Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++# ++# The contents of this file are subject to the Mozilla Public License Version ++# 1.1 (the "License"); you may not use this file except in compliance with ++# the License. You may obtain a copy of the License at ++# http://www.mozilla.org/MPL/ ++# ++# Software distributed under the License is distributed on an "AS IS" basis, ++# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++# for the specific language governing rights and limitations under the ++# License. ++# ++# The Original Code is Mozilla Communicator client code, released ++# March 31, 1998. ++# ++# The Initial Developer of the Original Code is ++# Netscape Communications Corporation. ++# Portions created by the Initial Developer are Copyright (C) 1998 ++# the Initial Developer. All Rights Reserved. ++# ++# Contributor(s): ++# ++# Alternatively, the contents of this file may be used under the terms of ++# either the GNU General Public License Version 2 or later (the "GPL"), or ++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++# in which case the provisions of the GPL or the LGPL are applicable instead ++# of those above. If you wish to allow use of your version of this file only ++# under the terms of either the GPL or the LGPL, and not to allow others to ++# use your version of this file under the terms of the MPL, indicate your ++# decision by deleting the provisions above and replace them with the notice ++# and other provisions required by the GPL or the LGPL. If you do not delete ++# the provisions above, a recipient may use your version of this file under ++# the terms of any one of the MPL, the GPL or the LGPL. ++# ++# ***** END LICENSE BLOCK ***** ++ ++# ++# Config stuff for SunOS5.5 ++# ++ ++AS = /usr/ccs/bin/as ++ifndef NS_USE_NATIVE ++CC = gcc ++CCC = g++ ++CFLAGS += -Wall -Wno-format ++else ++CC = cc ++CCC = CC ++endif ++ ++RANLIB = echo ++ ++#.c.o: ++# $(CC) -c -MD $*.d $(CFLAGS) $< ++ ++CPU_ARCH = x86 ++GFX_ARCH = x ++ ++OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -DSOLARIS -DHAVE_LOCALTIME_R ++OS_LIBS = -lsocket -lnsl -ldl ++ ++ASFLAGS += -P -L -K PIC -D_ASM -D__STDC__=0 ++ ++HAVE_PURIFY = 1 ++ ++NOSUCHFILE = /solaris-rm-f-sucks ++ ++ifeq ($(OS_CPUARCH),sun4u) # ultra sparc? ++ifeq ($(CC),gcc) # using gcc? ++ifndef JS_NO_ULTRA # do we want ultra? ++ifdef JS_THREADSAFE # only in thread-safe mode ++DEFINES += -DULTRA_SPARC ++DEFINES += -Wa,-xarch=v8plus,-DULTRA_SPARC ++else ++ASFLAGS += -xarch=v8plus -DULTRA_SPARC ++endif ++endif ++endif ++endif ++ ++MKSHLIB = $(LD) -G ++ ++# Use the editline library to provide line-editing support. ++JS_EDITLINE = 1 +-- +1.7.3.2 + Added: csw/mgar/pkg/pacparser/trunk/files/0008-Always-set-myIpAddr-to-127.0.0.1-or-tests-on-current.patch =================================================================== --- csw/mgar/pkg/pacparser/trunk/files/0008-Always-set-myIpAddr-to-127.0.0.1-or-tests-on-current.patch (rev 0) +++ csw/mgar/pkg/pacparser/trunk/files/0008-Always-set-myIpAddr-to-127.0.0.1-or-tests-on-current.patch 2010-12-07 15:02:51 UTC (rev 11826) @@ -0,0 +1,34 @@ +From 1a11df76feae6867b665d5e7c2d70ad8151a0823 Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Tue, 7 Dec 2010 15:44:37 +0100 +Subject: [PATCH 8/8] Always set myIpAddr to 127.0.0.1 or tests on current9x fails + +--- + tests/runtests.sh | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/runtests.sh b/tests/runtests.sh +index 09a6b1e..61663f8 100755 +--- a/tests/runtests.sh ++++ b/tests/runtests.sh +@@ -26,7 +26,7 @@ while read line + echo "$line" | ggrep -q "^#" && continue + PARAMS=$(echo "$line"|cut -d"|" -f1) + EXPECTED_RESULT=$(echo $line|cut -d"|" -f2) +- RESULT=$($PACTESTER -p $PACFILE $PARAMS) ++ RESULT=$($PACTESTER -c 127.0.0.1 -p $PACFILE $PARAMS) + if [ $? != 0 ]; then + echo "pactester execution failed." + echo "Command tried: $PACTESTER -p $PACFILE $PARAMS" +@@ -39,7 +39,7 @@ while read line + [ $DEBUG ] && echo "Params: $PARAMS" + if [ "$RESULT" != "$EXPECTED_RESULT" ]; then + echo "Test failed: got \"$RESULT\", expected \"$EXPECTED_RESULT\"" +- echo "Command tried: $PACTESTER -p $PACFILE $PARAMS" ++ echo "Command tried: $PACTESTER -c 127.0.0.1 -p $PACFILE $PARAMS" + echo "Running with debug mode on..." + echo "DEBUG=1 $PACTESTER -p $PACFILE $PARAMS" + DEBUG=1 $PACTESTER -p $PACFILE $PARAMS +-- +1.7.3.2 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Tue Dec 7 22:30:34 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Tue, 07 Dec 2010 21:30:34 +0000 Subject: [csw-devel] SF.net SVN: gar:[11827] csw/mgar/pkg/gmt/trunk/Makefile Message-ID: Revision: 11827 http://gar.svn.sourceforge.net/gar/?rev=11827&view=rev Author: gadavis Date: 2010-12-07 21:30:34 +0000 (Tue, 07 Dec 2010) Log Message: ----------- Get GMT to clear checkpkg gauntlet Modified Paths: -------------- csw/mgar/pkg/gmt/trunk/Makefile Modified: csw/mgar/pkg/gmt/trunk/Makefile =================================================================== --- csw/mgar/pkg/gmt/trunk/Makefile 2010-12-07 15:02:51 UTC (rev 11826) +++ csw/mgar/pkg/gmt/trunk/Makefile 2010-12-07 21:30:34 UTC (rev 11827) @@ -35,7 +35,8 @@ TEST_SCRIPTS = ## GMT doesn't use the GNU convention for unpacked tarballs -WORKSRC = $(WORKDIR)/GMT$(GARVERSION) +#WORKSRC = $(WORKDIR)/GMT$(GARVERSION) +DISTNAME = GMT$(GMT_VERSION) ## Arguments passed to the ./configure script. Configure ignores the various ## environment variables so we have to pass CFLAGS and friends @@ -60,7 +61,10 @@ ## order to make a map of any real substance CHECKPKG_OVERRIDES_CSWgmt += surplus-dependency|CSWgmtcoast +INSTALL_ARGS = install-all + ## Gar's license file finding routine isn't aware of how to find files when WORKSRC has been redefined, so we need to put the license file somewhere that it can find. -post-install-modulated: - @cp $(WORKSRC)/LICENSE.TXT $(WORKDIR)/COPYING +#post-install-modulated: +# @cp $(WORKSRC)/LICENSE.TXT $(WORKDIR)/COPYING +LICENSE = LICENSE.TXT include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Tue Dec 7 22:32:35 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Tue, 07 Dec 2010 21:32:35 +0000 Subject: [csw-devel] SF.net SVN: gar:[11828] csw/mgar/pkg/freeradius/trunk Message-ID: Revision: 11828 http://gar.svn.sourceforge.net/gar/?rev=11828&view=rev Author: gadavis Date: 2010-12-07 21:32:35 +0000 (Tue, 07 Dec 2010) Log Message: ----------- add init script Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/freeradius/trunk/files/cswfreeradius Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-07 21:30:34 UTC (rev 11827) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-07 21:32:35 UTC (rev 11828) @@ -9,6 +9,7 @@ MASTER_SITES = ftp://ftp.freeradius.org:/pub/freeradius/ DISTFILES = $(GARNAME)-server-$(GARVERSION).tar.gz +DISTFILES += cswfreeradius DISTNAME = $(GARNAME)-server-$(GARVERSION) UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz @@ -141,6 +142,16 @@ INSTALL_ARGS += R=$(DESTDIR) +INITSMF = /etc/opt/csw/init.d/cswapache2 + include gar/category.mk PATH := /opt/csw/gnu:$(PATH) + +post-install-modulated: copy-local-files + +# Copy in specialized templates +copy-local-files: + @ginstall -d $(DESTDIR)/etc/opt/csw/init.d + @ginstall $(WORKDIR)/cswfreeradius $(DESTDIR)/etc/opt/csw/init.d + @$(MAKECOOKIE) Added: csw/mgar/pkg/freeradius/trunk/files/cswfreeradius =================================================================== --- csw/mgar/pkg/freeradius/trunk/files/cswfreeradius (rev 0) +++ csw/mgar/pkg/freeradius/trunk/files/cswfreeradius 2010-12-07 21:32:35 UTC (rev 11828) @@ -0,0 +1,100 @@ +#!/bin/sh +# +# radiusd Start the radius daemon. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +# +# Copyright (C) 2001-2008 The FreeRADIUS Project http://www.freeradius.org + +prefix=/opt/csw +exec_prefix=/opt/csw +sbindir=/opt/csw/sbin +localstatedir=/var/opt/csw +logdir=${localstatedir}/log/radius +rundir=${localstatedir}/run/radiusd +sysconfdir=/etc/opt/csw + +# +# If you have issues with OpenSSL, uncomment these next lines. +# +# Something similar may work for MySQL, and you may also +# have to LD_PRELOAD libz.so +# +#LD_LIBRARY_PATH= -lcrypto -lssl -lcrypto +#LD_RUN_PATH= -lcrypto -lssl -lcrypto: +#LD_PRELOAD= -lcrypto -lssl -lcryptolibcrypto.so +export LD_LIBRARY_PATH LD_RUN_PATH LD_PRELOAD + +RADIUSD=$sbindir/radiusd +RADDBDIR=/etc/opt/csw/raddb +DESC="FreeRADIUS" + +# +# See 'man radiusd' for details on command-line options. +# +ARGS="" + +test -f $RADIUSD || exit 0 +test -f $RADDBDIR/radiusd.conf || exit 0 + +#if [ ! -d $rundir ] ; then +# mkdir $rundir +# chown radmin:radius $rundir +# chmod 775 $rundir +#fi +# +#if [ ! -d $logdir ] ; then +# mkdir $logdir +# chown radmin:radius $logdir +# chmod 770 $logdir +# chmod g+s $logdir +#fi +# +#if [ ! -f $logdir/radius.log ]; then +# touch $logdir/radius.log +#fi +# +#chown radmin:radius $logdir/radius.log +#chmod 660 $logdir/radius.log + +case "$1" in + start) + echo -n "Starting $DESC:" + $RADIUSD $ARGS + echo "radiusd" + ;; + stop) + [ -z "$2" ] && echo -n "Stopping $DESC: " + [ -f $rundir/radiusd.pid ] && kill -TERM `cat $rundir/radiusd.pid` + [ -z "$2" ] && echo "radiusd." + ;; + reload|force-reload) + echo "Reloading $DESC configuration files." + [ -f $rundir/radiusd.pid ] && kill -HUP `cat $rundir/radiusd.pid` + ;; + restart) + sh $0 stop quiet + sleep 3 + sh $0 start + ;; + check) + $RADIUSD -C $ARGS + ;; + *) + echo "Usage: /etc/init.d/$RADIUS {start|stop|reload|restart|check}" + exit 1 +esac + +exit 0 Property changes on: csw/mgar/pkg/freeradius/trunk/files/cswfreeradius ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Tue Dec 7 22:38:33 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Tue, 07 Dec 2010 21:38:33 +0000 Subject: [csw-devel] SF.net SVN: gar:[11829] csw/mgar/pkg/freeradius/trunk/files/cswfreeradius Message-ID: Revision: 11829 http://gar.svn.sourceforge.net/gar/?rev=11829&view=rev Author: gadavis Date: 2010-12-07 21:38:33 +0000 (Tue, 07 Dec 2010) Log Message: ----------- Add some CSW tweaks to init script Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/files/cswfreeradius Modified: csw/mgar/pkg/freeradius/trunk/files/cswfreeradius =================================================================== --- csw/mgar/pkg/freeradius/trunk/files/cswfreeradius 2010-12-07 21:32:35 UTC (rev 11828) +++ csw/mgar/pkg/freeradius/trunk/files/cswfreeradius 2010-12-07 21:38:33 UTC (rev 11829) @@ -1,6 +1,6 @@ #!/bin/sh # -# radiusd Start the radius daemon. +# cswfreeradius Start the radiusd daemon. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,6 +17,9 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA # # Copyright (C) 2001-2008 The FreeRADIUS Project http://www.freeradius.org +# +# Additional modifications by OpenCSW +#FMRI network prefix=/opt/csw exec_prefix=/opt/csw @@ -35,7 +38,7 @@ #LD_LIBRARY_PATH= -lcrypto -lssl -lcrypto #LD_RUN_PATH= -lcrypto -lssl -lcrypto: #LD_PRELOAD= -lcrypto -lssl -lcryptolibcrypto.so -export LD_LIBRARY_PATH LD_RUN_PATH LD_PRELOAD +#export LD_LIBRARY_PATH LD_RUN_PATH LD_PRELOAD RADIUSD=$sbindir/radiusd RADDBDIR=/etc/opt/csw/raddb @@ -93,7 +96,7 @@ $RADIUSD -C $ARGS ;; *) - echo "Usage: /etc/init.d/$RADIUS {start|stop|reload|restart|check}" + echo "Usage: $0 {start|stop|reload|restart|check}" exit 1 esac This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Tue Dec 7 23:13:56 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Tue, 07 Dec 2010 22:13:56 +0000 Subject: [csw-devel] SF.net SVN: gar:[11830] csw/mgar/pkg/netcdf/trunk/Makefile Message-ID: Revision: 11830 http://gar.svn.sourceforge.net/gar/?rev=11830&view=rev Author: gadavis Date: 2010-12-07 22:13:56 +0000 (Tue, 07 Dec 2010) Log Message: ----------- Make package descriptions more descriptive, remove debug flag, remove extraneous checkpkg overrides Modified Paths: -------------- csw/mgar/pkg/netcdf/trunk/Makefile Modified: csw/mgar/pkg/netcdf/trunk/Makefile =================================================================== --- csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-07 21:38:33 UTC (rev 11829) +++ csw/mgar/pkg/netcdf/trunk/Makefile 2010-12-07 22:13:56 UTC (rev 11830) @@ -22,7 +22,7 @@ PACKAGES = CSWnetcdf CATALOGNAME_CSWnetcdf = netcdf -SPKG_DESC_CSWnetcdf = Machine-independent data formats for array-oriented scientific data +SPKG_DESC_CSWnetcdf = NetCDF - Machine-independent data formats for array-oriented scientific data RUNTIME_DEP_PKGS_CSWnetcdf += CSWhdf5rt RUNTIME_DEP_PKGS_CSWnetcdf += CSWzlib RUNTIME_DEP_PKGS_CSWnetcdf += CSWlibnetcdf6 @@ -38,7 +38,7 @@ PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/amd64/libnetcdf.so.6.0.0 PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/amd64/libnetcdf.so.6\.[0-9\.]+ PKGFILES_CSWlibnetcdf6 += /opt/csw/lib/amd64/libnetcdf.so.6 -SPKG_DESC_CSWlibnetcdf6 = Machine-independent data formats for array-oriented scientific data, libnetcdf.so.6 +SPKG_DESC_CSWlibnetcdf6 = C shared library for netcdf - libnetcdf.so.6 RUNTIME_DEP_PKGS_CSWlibnetcdf6 = CSWhdf5rt RUNTIME_DEP_PKGS_CSWlibnetcdf6 += CSWgcc4corert RUNTIME_DEP_PKGS_CSWlibnetcdf6 += CSWgcc4core # Mantis Bug #4497, missing 64 symlink @@ -54,7 +54,7 @@ PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/amd64/libnetcdf_c\+\+.so.5.0.0 PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/amd64/libnetcdf_c\+\+.so.5\.[0-9\.]+ PKGFILES_CSWlibnetcdf-c++5 += /opt/csw/lib/amd64/libnetcdf_c\+\+.so.5 -SPKG_DESC_CSWlibnetcdf-c++5 += Machine-independent data formats for array-oriented scientific data, libnetcdf_c++.so.5 +SPKG_DESC_CSWlibnetcdf-c++5 += C++ shared library for netcdf - libnetcdf_c++.so.5 RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 = CSWhdf5rt RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 += CSWgcc4corert CSWgcc4core CSWgcc4g++rt RUNTIME_DEP_PKGS_CSWlibnetcdf-c++5 += CSWlibnetcdf6 @@ -70,7 +70,7 @@ PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/amd64/libnetcdff.so.5.0.0 PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/amd64/libnetcdff.so.5\.[0-9\.]+ PKGFILES_CSWlibnetcdff5 += /opt/csw/lib/amd64/libnetcdff.so.5 -SPKG_DESC_CSWlibnetcdff5 = Machine-independent data formats for array-oriented scientific data, libnetcdff.so.5 +SPKG_DESC_CSWlibnetcdff5 = Fortran shared libraries for netcdf - libnetcdff.so.5 RUNTIME_DEP_PKGS_CSWlibnetcdff5 = CSWhdf5rt RUNTIME_DEP_PKGS_CSWlibnetcdff5 += CSWgcc4gfortranrt CSWgcc4corert CSWgcc4core RUNTIME_DEP_PKGS_CSWlibnetcdff5 += CSWlibnetcdf6 @@ -130,8 +130,6 @@ ## Needed for "Large file support" in NetCDF EXTRA_CPPFLAGS = -D_FILE_OFFSET_BITS=64 - -DEBUG_PACKAGING = 1 ## Add GCC4 lib dir to CFLAGS and friends because gcc3core_rt puts it's ## libgcc_s.so in /opt/csw/lib and this breaks the build in all sorts of weird ## places. @@ -154,12 +152,6 @@ ## OPT_FLAGS_GCC = -O2 -pipe OPT_FLAGS_GCC = -## Mantis bug 4497 means there's no 64 symlink in CSWgcc4corert so you can't -## link against these libraries without CSWgcc4core -CHECKPKG_OVERRIDES_CSWlibnetcdf-c++5 += surplus-dependency|CSWgcc4core -CHECKPKG_OVERRIDES_CSWlibnetcdf6 += surplus-dependency|CSWgcc4core -CHECKPKG_OVERRIDES_CSWlibnetcdff5 += surplus-dependency|CSWgcc4core - ## Git patching is failing on a remerge/repackage NOGITPATCH = 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Tue Dec 7 23:22:34 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Tue, 07 Dec 2010 22:22:34 +0000 Subject: [csw-devel] SF.net SVN: gar:[11831] csw/mgar/pkg Message-ID: Revision: 11831 http://gar.svn.sourceforge.net/gar/?rev=11831&view=rev Author: skayser Date: 2010-12-07 22:22:34 +0000 (Tue, 07 Dec 2010) Log Message: ----------- parcellite: initial commit Added Paths: ----------- csw/mgar/pkg/parcellite/ csw/mgar/pkg/parcellite/branches/ csw/mgar/pkg/parcellite/tags/ csw/mgar/pkg/parcellite/trunk/ csw/mgar/pkg/parcellite/trunk/Makefile csw/mgar/pkg/parcellite/trunk/checksums csw/mgar/pkg/parcellite/trunk/files/ csw/mgar/pkg/parcellite/trunk/files/changelog.CSW Property changes on: csw/mgar/pkg/parcellite/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/parcellite/trunk/Makefile =================================================================== --- csw/mgar/pkg/parcellite/trunk/Makefile (rev 0) +++ csw/mgar/pkg/parcellite/trunk/Makefile 2010-12-07 22:22:34 UTC (rev 11831) @@ -0,0 +1,32 @@ +GARNAME = parcellite +GARVERSION = 0.9.2 +CATEGORIES = utils + +DESCRIPTION = Lightweight GTK+ clipboard manager +define BLURB + Parcellite is a stripped down, basic-features-only clipboard manager + with a small memory footprint for those who like simplicity. +endef + +MASTER_SITES = $(SF_MIRROR) +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz + +# There's no test suite +TEST_SCRIPTS = + +CONFIGURE_ARGS = $(DIRPATHS) + +# Not quite sure why "pkg-config gtk+-2.0 --libs" doesn't yield -lX11 also +EXTRA_LDFLAGS = -lX11 + +include gar/category.mk + +# Requires GNU gettext +PATH := /opt/csw/gnu:$(PATH) + +# Install changelog.CSW +post-merge: $(foreach P,$(_PKG_SPECS),install-changelog-$P) +install-changelog-%: + ginstall -D $(FILEDIR)/changelog.CSW \ + $(PKGROOT)$(docdir)/$(call catalogname,$*)/changelog.CSW + @$(MAKECOOKIE) Property changes on: csw/mgar/pkg/parcellite/trunk/Makefile ___________________________________________________________________ Added: svn:keywords + Id Added: csw/mgar/pkg/parcellite/trunk/checksums =================================================================== --- csw/mgar/pkg/parcellite/trunk/checksums (rev 0) +++ csw/mgar/pkg/parcellite/trunk/checksums 2010-12-07 22:22:34 UTC (rev 11831) @@ -0,0 +1 @@ +a650f6fe0fec96827b30ca3218a2b4df parcellite-0.9.2.tar.gz Added: csw/mgar/pkg/parcellite/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/parcellite/trunk/files/changelog.CSW (rev 0) +++ csw/mgar/pkg/parcellite/trunk/files/changelog.CSW 2010-12-07 22:22:34 UTC (rev 11831) @@ -0,0 +1,5 @@ +parcellite (0.9.2,REV=2010.12.07) + + * Initial release. + + -- Sebastian Kayser Tue, 7 Dec 2010 23:19:51 +0100 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Tue Dec 7 23:37:43 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Tue, 07 Dec 2010 22:37:43 +0000 Subject: [csw-devel] SF.net SVN: gar:[11832] csw/mgar/pkg/freeradius/trunk/Makefile Message-ID: Revision: 11832 http://gar.svn.sourceforge.net/gar/?rev=11832&view=rev Author: gadavis Date: 2010-12-07 22:37:42 +0000 (Tue, 07 Dec 2010) Log Message: ----------- Fix init script name, preserve radness... err contents... of raddb Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-07 22:22:34 UTC (rev 11831) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-07 22:37:42 UTC (rev 11832) @@ -35,6 +35,8 @@ # move all of the var stuff to /var/opt/csw localstatedir = /var$(prefix) +PRESERVECONF = $(raddbdir)/.* + CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += CC=$(CC) CXX=$(CXX) F77=$(F77) FC=$(FC) CONFIGURE_ARGS += CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" @@ -142,7 +144,7 @@ INSTALL_ARGS += R=$(DESTDIR) -INITSMF = /etc/opt/csw/init.d/cswapache2 +INITSMF = /etc/opt/csw/init.d/cswfreeradius include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Tue Dec 7 23:42:43 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Tue, 07 Dec 2010 22:42:43 +0000 Subject: [csw-devel] SF.net SVN: gar:[11833] csw/mgar/pkg/parcellite/trunk/Makefile Message-ID: Revision: 11833 http://gar.svn.sourceforge.net/gar/?rev=11833&view=rev Author: skayser Date: 2010-12-07 22:42:43 +0000 (Tue, 07 Dec 2010) Log Message: ----------- parcellite: add runtime deps Modified Paths: -------------- csw/mgar/pkg/parcellite/trunk/Makefile Modified: csw/mgar/pkg/parcellite/trunk/Makefile =================================================================== --- csw/mgar/pkg/parcellite/trunk/Makefile 2010-12-07 22:37:42 UTC (rev 11832) +++ csw/mgar/pkg/parcellite/trunk/Makefile 2010-12-07 22:42:43 UTC (rev 11833) @@ -11,6 +11,15 @@ MASTER_SITES = $(SF_MIRROR) DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +RUNTIME_DEP_PKGS += CSWlibatk +RUNTIME_DEP_PKGS += CSWggettextrt +RUNTIME_DEP_PKGS += CSWfconfig +RUNTIME_DEP_PKGS += CSWglib2 +RUNTIME_DEP_PKGS += CSWftype2 +RUNTIME_DEP_PKGS += CSWpango +RUNTIME_DEP_PKGS += CSWgtk2 +RUNTIME_DEP_PKGS += CSWlibcairo + # There's no test suite TEST_SCRIPTS = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Wed Dec 8 00:30:14 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Tue, 07 Dec 2010 23:30:14 +0000 Subject: [csw-devel] SF.net SVN: gar:[11834] csw/mgar/pkg/freeradius/trunk/Makefile Message-ID: Revision: 11834 http://gar.svn.sourceforge.net/gar/?rev=11834&view=rev Author: gadavis Date: 2010-12-07 23:30:13 +0000 (Tue, 07 Dec 2010) Log Message: ----------- be a bit more explicit with the preserved files in raddb Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-07 22:42:43 UTC (rev 11833) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-07 23:30:13 UTC (rev 11834) @@ -35,7 +35,18 @@ # move all of the var stuff to /var/opt/csw localstatedir = /var$(prefix) -PRESERVECONF = $(raddbdir)/.* +PRESERVECONF += $(raddbdir)/.*\.conf +PRESERVECONF += $(raddbdir)/acct_users +PRESERVECONF += $(raddbdir)/attrs.* +PRESERVECONF += $(raddbdir)/dictionary +PRESERVECONF += $(raddbdir)/certs/.*.cnf +PRESERVECONF += $(raddbdir)/hints +PRESERVECONF += $(raddbdir)/huntgroups +PRESERVECONF += $(raddbdir)/ldap.attrmap +PRESERVECONF += $(raddbdir)/policy.txt +PRESERVECONF += $(raddbdir)/preproxy_users +PRESERVECONF += $(raddbdir)/sql/.*/.*\.conf +PRESERVECONF += $(raddbdir)/users CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += CC=$(CC) CXX=$(CXX) F77=$(F77) FC=$(FC) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 8 00:45:34 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 07 Dec 2010 23:45:34 +0000 Subject: [csw-devel] SF.net SVN: gar:[11835] csw/mgar/gar/v2/lib/python/package_checks.py Message-ID: Revision: 11835 http://gar.svn.sourceforge.net/gar/?rev=11835&view=rev Author: wahwah Date: 2010-12-07 23:45:34 +0000 (Tue, 07 Dec 2010) Log Message: ----------- checkpkg: A message for an init file class check Added a message and a GAR line suggestion for the init-file-missing-cswinitsmf-class error tag. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-07 23:30:13 UTC (rev 11834) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-07 23:45:34 UTC (rev 11835) @@ -256,6 +256,12 @@ error_mgr.ReportError( "init-file-missing-cswinitsmf-class", "%s class=%s" % (entry["path"], entry["class"])) + messenger.Message( + "The init file %s in the package has the %s class, while it " + "should have the cswinitsmf class, which takes advantage of " + "the SMF integration automation from cswclassutils." + % (entry["path"], entry["class"])) + messenger.SuggestGarLine("INITSMF = %s" % entry["path"]) # This is not an error, in fact, putting files into # /opt/csw/etc/init.d breaks packages. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Wed Dec 8 01:15:38 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Wed, 08 Dec 2010 00:15:38 +0000 Subject: [csw-devel] SF.net SVN: gar:[11836] csw/mgar/pkg/freeradius/trunk/Makefile Message-ID: Revision: 11836 http://gar.svn.sourceforge.net/gar/?rev=11836&view=rev Author: gadavis Date: 2010-12-08 00:15:38 +0000 (Wed, 08 Dec 2010) Log Message: ----------- Prune some config files for modules that are not included Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-07 23:45:34 UTC (rev 11835) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-08 00:15:38 UTC (rev 11836) @@ -43,6 +43,7 @@ PRESERVECONF += $(raddbdir)/hints PRESERVECONF += $(raddbdir)/huntgroups PRESERVECONF += $(raddbdir)/ldap.attrmap +PRESERVECONF += $(raddbdir)/modules/.* PRESERVECONF += $(raddbdir)/policy.txt PRESERVECONF += $(raddbdir)/preproxy_users PRESERVECONF += $(raddbdir)/sql/.*/.*\.conf @@ -61,15 +62,21 @@ CONFIGURE_ARGS += --enable-strict-dependencies CONFIGURE_ARGS += --enable-developer CONFIGURE_ARGS += --with-large-files --with-updfromto --with-edir +CONFIGURE_ARGS += --without-rlm_eap_ikev2 +CONFIGURE_ARGS += --without-rlm_sql_unixodbc +CONFIGURE_ARGS += --without-rlm_eap_tnc + +# We probably won't ever build these database bindings CONFIGURE_ARGS += --without-rlm_sql_firebird CONFIGURE_ARGS += --without-rlm_sql_freetds CONFIGURE_ARGS += --without-rlm_sql_iodbc -CONFIGURE_ARGS += --without-rlm_sql_oracle CONFIGURE_ARGS += --without-rlm_sql_sybase CONFIGURE_ARGS += --without-rlm_sql_db2 -CONFIGURE_ARGS += --without-rlm_eap_ikev2 -CONFIGURE_ARGS += --without-rlm_sql_unixodbc -CONFIGURE_ARGS += --without-rlm_eap_tnc +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/sql/mssql +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/sql/mssql/.* +CONFIGURE_ARGS += --without-rlm_sql_oracle +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/sql/oracle +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/sql/oracle/.* ## Individual Package definitions start here @@ -138,6 +145,8 @@ #CONFIGURE_ARGS += --with-rlm_sql_postgresql_include_dir=$(rlm_pgsql_inc) ## Comment out the following lines when building PostgreSQL support CONFIGURE_ARGS += --without-rlm_sql_postgresql +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/sql/postgresql +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/sql/postgresql/.* ## End pgsql exclusion lines ## Disabling MySQL because it's going to take a bunch of weird @@ -147,6 +156,8 @@ #CONFIGURE_ARGS += --with-mysql-include-dir=/opt/csw/mysql5/include ## Comment out the following lines when building mysql support CONFIGURE_ARGS += --without-rlm_sql_mysql +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/sql/mysql +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/sql/mysql/.* ## End mysql exclusion lines This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Wed Dec 8 01:25:35 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Wed, 08 Dec 2010 00:25:35 +0000 Subject: [csw-devel] SF.net SVN: gar:[11837] csw/mgar/pkg/freeradius/trunk/Makefile Message-ID: Revision: 11837 http://gar.svn.sourceforge.net/gar/?rev=11837&view=rev Author: gadavis Date: 2010-12-08 00:25:35 +0000 (Wed, 08 Dec 2010) Log Message: ----------- make pkgfiles lines compatible with preserveconf Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-08 00:15:38 UTC (rev 11836) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-08 00:25:35 UTC (rev 11837) @@ -95,7 +95,7 @@ PACKAGES += CSWfreeradius-krb5 CATALOGNAME_CSWfreeradius-krb5 = freeradius_krb5 SPKG_DESC_CSWfreeradius-krb5 = Kerberos 5 Module rlm_krb5 for FreeRADIUS -PKGFILES_CSWfreeradius-krb5 += $(raddbdir)/modules/krb5 +PKGFILES_CSWfreeradius-krb5 += $(raddbdir)/modules/krb5.CSW PKGFILES_CSWfreeradius-krb5 += $(docdir)/rlm_krb5 PKGFILES_CSWfreeradius-krb5 += /opt/csw/lib/freeradius/rlm_krb5\.so PKGFILES_CSWfreeradius-krb5 += /opt/csw/lib/freeradius/rlm_krb5-2\.1\.[0-9]+\.so @@ -107,9 +107,9 @@ PACKAGES += CSWfreeradius-ldap CATALOGNAME_CSWfreeradius-ldap = freeradius_ldap SPKG_DESC_CSWfreeradius-ldap = LDAP Module rlm_ldap for FreeRADIUS -PKGFILES_CSWfreeradius-ldap += $(raddbdir)/ldap\.attrmap -PKGFILES_CSWfreeradius-ldap += $(raddbdir)/modules/ldap -PKGFILES_CSWfreeradius-ldap += $(docdir)/ldap_howto.rst +PKGFILES_CSWfreeradius-ldap += $(raddbdir)/ldap\.attrmap\.CSW +PKGFILES_CSWfreeradius-ldap += $(raddbdir)/modules/ldap\.CSW +PKGFILES_CSWfreeradius-ldap += $(docdir)/ldap_howto\.rst PKGFILES_CSWfreeradius-ldap += $(docdir)/RADIUS-LDAP-eDirectory PKGFILES_CSWfreeradius-ldap += $(docdir)/rlm_ldap PKGFILES_CSWfreeradius-ldap += $(docdir)/examples/openldap.schema This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Wed Dec 8 02:20:00 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Wed, 08 Dec 2010 01:20:00 +0000 Subject: [csw-devel] SF.net SVN: gar:[11838] csw/mgar/pkg/freeradius/trunk/Makefile Message-ID: Revision: 11838 http://gar.svn.sourceforge.net/gar/?rev=11838&view=rev Author: gadavis Date: 2010-12-08 01:20:00 +0000 (Wed, 08 Dec 2010) Log Message: ----------- attempt to get init script to show up Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-08 00:25:35 UTC (rev 11837) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-08 01:20:00 UTC (rev 11838) @@ -177,5 +177,5 @@ # Copy in specialized templates copy-local-files: @ginstall -d $(DESTDIR)/etc/opt/csw/init.d - @ginstall $(WORKDIR)/cswfreeradius $(DESTDIR)/etc/opt/csw/init.d + @ginstall $(WORKDIR)/cswfreeradius $(DESTDIR)/etc/opt/csw/init.d/cswfreeradius @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 8 04:44:54 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 08 Dec 2010 03:44:54 +0000 Subject: [csw-devel] SF.net SVN: gar:[11839] csw/mgar/gar/v2/lib/python/package_checks.py Message-ID: Revision: 11839 http://gar.svn.sourceforge.net/gar/?rev=11839&view=rev Author: bdwalton Date: 2010-12-08 03:44:54 +0000 (Wed, 08 Dec 2010) Log Message: ----------- checkpkg: alter the handling of surplus dependency suppression to allow for passing regexes; this is in response to the cswclassutils -> cas_foo change Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-08 01:20:00 UTC (rev 11838) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-08 03:44:54 UTC (rev 11839) @@ -70,7 +70,7 @@ DO_NOT_LINK_AGAINST_THESE_SONAMES = set([]) # Regarding surplus libraries reports -DO_NOT_REPORT_SURPLUS = set([u"CSWcommon", u"CSWcswclassutils", u"CSWisaexec"]) +DO_NOT_REPORT_SURPLUS = [r"^CSWcommon$", r"^CSWcswclassutils$", r"^CSWcas-", r"^CSWisaexec$"] DO_NOT_REPORT_SURPLUS_FOR = [r"CSW[a-z\-]+dev(el)?"] DO_NOT_REPORT_MISSING = set([]) DO_NOT_REPORT_MISSING_RE = [r"\*?SUNW.*"] @@ -375,7 +375,12 @@ (x for x, y in reduce(operator.add, req_pkgs_reasons, []))) missing_dep_groups = new_missing_dep_groups surplus_deps = declared_deps_set.difference(potential_req_pkgs) - surplus_deps = surplus_deps.difference(DO_NOT_REPORT_SURPLUS) + no_report_surplus = set() + for sp_regex in DO_NOT_REPORT_SURPLUS: + for maybe_surplus in surplus_deps: + if re.match(sp_regex, maybe_surplus): + no_report_surplus.add(maybe_surplus) + surplus_deps = surplus_deps.difference(no_report_surplus) for regex_str in DO_NOT_REPORT_SURPLUS_FOR: if surplus_deps and re.match(regex_str, pkgname): surplus_deps = set() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 8 04:48:13 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 08 Dec 2010 03:48:13 +0000 Subject: [csw-devel] SF.net SVN: gar:[11840] csw/mgar/gar/v2/gar.pkg.mk Message-ID: Revision: 11840 http://gar.svn.sourceforge.net/gar/?rev=11840&view=rev Author: bdwalton Date: 2010-12-08 03:48:13 +0000 (Wed, 08 Dec 2010) Log Message: ----------- gar/v2: set CAS dependencies on individual package instead of parent cswclassutils Modified Paths: -------------- csw/mgar/gar/v2/gar.pkg.mk Modified: csw/mgar/gar/v2/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2/gar.pkg.mk 2010-12-08 03:44:54 UTC (rev 11839) +++ csw/mgar/gar/v2/gar.pkg.mk 2010-12-08 03:48:13 UTC (rev 11840) @@ -463,7 +463,7 @@ $(WORKDIR)/%.depend: $(WORKDIR)/$*.prototype $(WORKDIR)/%.depend: _EXTRA_GAR_PKGS += $(_CATEGORY_RUNTIME_DEP_PKGS) $(WORKDIR)/%.depend: _EXTRA_GAR_PKGS += $(if $(strip $(shell cat $(WORKDIR)/$*.prototype | perl -ane 'print "yes" if( $$F[1] eq "cswalternatives")')),CSWalternatives) -$(WORKDIR)/%.depend: _EXTRA_GAR_PKGS += $(if $(strip $(shell cat $(WORKDIR)/$*.prototype | perl -ane '$(foreach C,$(_CSWCLASSES),print "$C\n" if( $$F[1] eq "$C");)')),CSWcswclassutils) +$(WORKDIR)/%.depend: _EXTRA_GAR_PKGS += $(foreach P,$(strip $(shell cat $(WORKDIR)/$*.prototype | perl -ane '$(foreach C,$(_CSWCLASSES),print "$C " if( $$F[1] eq "$C");)')),CSWcas-$(subst csw,,$(P))) $(WORKDIR)/%.depend: _DEP_PKGS=$(or $(RUNTIME_DEP_PKGS_ONLY_$*),$(RUNTIME_DEP_PKGS_ONLY),$(sort $(_EXTRA_GAR_PKGS)) $(or $(RUNTIME_DEP_PKGS_$*),$(RUNTIME_DEP_PKGS),$(DEP_PKGS_$*),$(DEP_PKGS))) $(WORKDIR)/%.depend: $(WORKDIR) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From maciej at opencsw.org Wed Dec 8 09:01:39 2010 From: maciej at opencsw.org (Maciej (Matchek) Blizinski) Date: Wed, 8 Dec 2010 08:01:39 +0000 Subject: [csw-devel] SF.net SVN: gar:[11839] csw/mgar/gar/v2/lib/python/package_checks.py In-Reply-To: References: Message-ID: No dia 8 de Dezembro de 2010 03:44, escreveu: > Revision: 11839 > ? ? ? ? ?http://gar.svn.sourceforge.net/gar/?rev=11839&view=rev > Author: ? bdwalton > Date: ? ? 2010-12-08 03:44:54 +0000 (Wed, 08 Dec 2010) > > Log Message: > ----------- > checkpkg: alter the handling of surplus dependency suppression to allow for passing regexes; this is in response to the cswclassutils -> cas_foo change > > Modified Paths: > -------------- > ? ?csw/mgar/gar/v2/lib/python/package_checks.py > > Modified: csw/mgar/gar/v2/lib/python/package_checks.py > =================================================================== > --- csw/mgar/gar/v2/lib/python/package_checks.py ? ? ? ?2010-12-08 01:20:00 UTC (rev 11838) > +++ csw/mgar/gar/v2/lib/python/package_checks.py ? ? ? ?2010-12-08 03:44:54 UTC (rev 11839) > @@ -70,7 +70,7 @@ > ?DO_NOT_LINK_AGAINST_THESE_SONAMES = set([]) > > ?# Regarding surplus libraries reports > -DO_NOT_REPORT_SURPLUS = set([u"CSWcommon", u"CSWcswclassutils", u"CSWisaexec"]) > +DO_NOT_REPORT_SURPLUS = [r"^CSWcommon$", r"^CSWcswclassutils$", r"^CSWcas-", r"^CSWisaexec$"] I'd wrap it to 80 chars. They still can be a set, or even a frozenset. > ?DO_NOT_REPORT_SURPLUS_FOR = [r"CSW[a-z\-]+dev(el)?"] > ?DO_NOT_REPORT_MISSING = set([]) > ?DO_NOT_REPORT_MISSING_RE = [r"\*?SUNW.*"] > @@ -375,7 +375,12 @@ > ? ? ? ? (x for x, y in reduce(operator.add, req_pkgs_reasons, []))) > ? ? missing_dep_groups = new_missing_dep_groups > ? ? surplus_deps = declared_deps_set.difference(potential_req_pkgs) > - ? ?surplus_deps = surplus_deps.difference(DO_NOT_REPORT_SURPLUS) > + ? ?no_report_surplus = set() > + ? ?for sp_regex in DO_NOT_REPORT_SURPLUS: > + ? ? ?for maybe_surplus in surplus_deps: > + ? ? ? ?if re.match(sp_regex, maybe_surplus): > + ? ? ? ? ?no_report_surplus.add(maybe_surplus) > + ? ?surplus_deps = surplus_deps.difference(no_report_surplus) > ? ? for regex_str in DO_NOT_REPORT_SURPLUS_FOR: > ? ? ? if surplus_deps and re.match(regex_str, pkgname): > ? ? ? ? surplus_deps = set() Looks good. Have tried running gar/v2/tests/run_tests.py? From maciej at opencsw.org Wed Dec 8 09:04:21 2010 From: maciej at opencsw.org (Maciej (Matchek) Blizinski) Date: Wed, 8 Dec 2010 08:04:21 +0000 Subject: [csw-devel] SF.net SVN: gar:[11832] csw/mgar/pkg/freeradius/trunk/Makefile In-Reply-To: References: Message-ID: No dia 7 de Dezembro de 2010 22:37, escreveu: > -INITSMF = /etc/opt/csw/init.d/cswapache2 > +INITSMF = /etc/opt/csw/init.d/cswfreeradius Can GAR display a warning if INITSMF is set, but does not match any files? From skayser at users.sourceforge.net Thu Dec 9 01:00:54 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 00:00:54 +0000 Subject: [csw-devel] SF.net SVN: gar:[11841] csw/mgar/pkg Message-ID: Revision: 11841 http://gar.svn.sourceforge.net/gar/?rev=11841&view=rev Author: skayser Date: 2010-12-09 00:00:54 +0000 (Thu, 09 Dec 2010) Log Message: ----------- haproxy: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/haproxy/ csw/mgar/pkg/haproxy/branches/ csw/mgar/pkg/haproxy/tags/ csw/mgar/pkg/haproxy/trunk/ csw/mgar/pkg/haproxy/trunk/Makefile csw/mgar/pkg/haproxy/trunk/checksums csw/mgar/pkg/haproxy/trunk/files/ Property changes on: csw/mgar/pkg/haproxy/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/haproxy/trunk/Makefile =================================================================== --- csw/mgar/pkg/haproxy/trunk/Makefile (rev 0) +++ csw/mgar/pkg/haproxy/trunk/Makefile 2010-12-09 00:00:54 UTC (rev 11841) @@ -0,0 +1,56 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! Build in unknown state, work in progress, please take over & verify +# ! Include init script +# ! Include default configuration +# * Use the shipped Makefile optimization flags +# +GARNAME = haproxy +GARVERSION = 1.4.1 +CATEGORIES = apps + +DESCRIPTION = Reliable, high performance TCP/HTTP load balancer +define BLURB + HAProxy is a free, very fast and reliable solution offering high + availability, load balancing, and proxying for TCP and HTTP-based + applications. It is particularly suited for web sites crawling under + very high loads while needing persistence or Layer7 processing. + Supporting tens of thousands of connections is clearly realistic with + todays hardware. Its mode of operation makes its integration into + existing architectures very easy and riskless, while still offering the + possibility not to expose fragile web servers to the Net. +endef + +VENDOR_URL = http://haproxy.1wt.eu/ +MASTER_SITES = http://haproxy.1wt.eu/download/1.4/src/ +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UPSTREAM_MASTER_SITES = $(VENDOR_URL) + +# Heavily optimized, supported for gcc, didn't dare to touch +GARCOMPILER = GCC4 + +CONFIGURE_SCRIPTS = +TEST_SCRIPTS = + +BUILD_ARGS = \ + TARGET=solaris \ + CC=$(CC) \ + CFLAGS="$(CFLAGS)" \ + LDFLAGS="$(LDFLAGS)" + +INSTALL_ARGS = \ + PREFIX=$(prefix) \ + DOCDIR=$(docdir)/$(GARNAME) + +include gar/category.mk + +# Makefile contains references to install +PATH := /opt/csw/gnu:$(PATH) + +post-install-modulated: DOCDEST=$(DESTDIR)$(docdir)/$(GARNAME) +post-install-modulated: + mkdir -p $(DOCDEST) + cp -r $(WORKSRC)/examples $(DOCDEST) + cp -r $(WORKSRC)/doc/* $(DOCDEST) + @$(MAKECOOKIE) Added: csw/mgar/pkg/haproxy/trunk/checksums =================================================================== --- csw/mgar/pkg/haproxy/trunk/checksums (rev 0) +++ csw/mgar/pkg/haproxy/trunk/checksums 2010-12-09 00:00:54 UTC (rev 11841) @@ -0,0 +1 @@ +7f27c2dec3d67fce1b113be5fe878c33 haproxy-1.4.1.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 01:36:19 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 00:36:19 +0000 Subject: [csw-devel] SF.net SVN: gar:[11842] csw/mgar/pkg Message-ID: Revision: 11842 http://gar.svn.sourceforge.net/gar/?rev=11842&view=rev Author: skayser Date: 2010-12-09 00:36:18 +0000 (Thu, 09 Dec 2010) Log Message: ----------- gpicview: initial commit Added Paths: ----------- csw/mgar/pkg/gpicview/ csw/mgar/pkg/gpicview/branches/ csw/mgar/pkg/gpicview/tags/ csw/mgar/pkg/gpicview/trunk/ csw/mgar/pkg/gpicview/trunk/Makefile csw/mgar/pkg/gpicview/trunk/checksums csw/mgar/pkg/gpicview/trunk/files/ csw/mgar/pkg/gpicview/trunk/files/changelog.CSW Property changes on: csw/mgar/pkg/gpicview/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/gpicview/trunk/Makefile =================================================================== --- csw/mgar/pkg/gpicview/trunk/Makefile (rev 0) +++ csw/mgar/pkg/gpicview/trunk/Makefile 2010-12-09 00:36:18 UTC (rev 11842) @@ -0,0 +1,31 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +NAME = gpicview +VERSION = 0.2.1 +CATEGORIES = utils + +DESCRIPTION = A Simple and Fast Image Viewer for X +define BLURB +endef + +VENDOR_URL = http://lxde.sourceforge.net/gpicview/ +MASTER_SITES = $(SF_MIRRORS) +SF_PROJ = lxde +DISTFILES = $(NAME)-$(VERSION).tar.gz + +# No test suite available +TEST_SCRIPTS = + +CONFIGURE_ARGS = $(DIRPATHS) +EXTRA_LDFLAGS = -lm -lX11 + +include gar/category.mk + +# Requires GNU gettext in PATH +PATH := $(prefix)/gnu:$(PATH) + +# Install changelog.CSW +post-merge: $(foreach P,$(_PKG_SPECS),install-changelog-$P) +install-changelog-%: + ginstall -D $(FILEDIR)/changelog.CSW \ + $(PKGROOT)$(docdir)/$(call catalogname,$*)/changelog.CSW + @$(MAKECOOKIE) Added: csw/mgar/pkg/gpicview/trunk/checksums =================================================================== --- csw/mgar/pkg/gpicview/trunk/checksums (rev 0) +++ csw/mgar/pkg/gpicview/trunk/checksums 2010-12-09 00:36:18 UTC (rev 11842) @@ -0,0 +1 @@ +a2de255bf9bdc40746c0dc89b3454a10 download/gpicview-0.2.1.tar.gz Added: csw/mgar/pkg/gpicview/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/gpicview/trunk/files/changelog.CSW (rev 0) +++ csw/mgar/pkg/gpicview/trunk/files/changelog.CSW 2010-12-09 00:36:18 UTC (rev 11842) @@ -0,0 +1,5 @@ +gpicview (0.2.1,REV=2010.12.09) + + * Initial release. + + -- Sebastian Kayser Thu, 9 Dec 2010 01:35:50 +0100 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 01:47:50 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 00:47:50 +0000 Subject: [csw-devel] SF.net SVN: gar:[11843] csw/mgar/pkg/gpicview/trunk/Makefile Message-ID: Revision: 11843 http://gar.svn.sourceforge.net/gar/?rev=11843&view=rev Author: skayser Date: 2010-12-09 00:47:50 +0000 (Thu, 09 Dec 2010) Log Message: ----------- gpicview: add runtime deps, adjust NAME/VERSION to (still) regular GARNAME/GARVERSION Modified Paths: -------------- csw/mgar/pkg/gpicview/trunk/Makefile Modified: csw/mgar/pkg/gpicview/trunk/Makefile =================================================================== --- csw/mgar/pkg/gpicview/trunk/Makefile 2010-12-09 00:36:18 UTC (rev 11842) +++ csw/mgar/pkg/gpicview/trunk/Makefile 2010-12-09 00:47:50 UTC (rev 11843) @@ -1,6 +1,6 @@ # TODO (release-critical prefixed with !, non release-critical with *) -NAME = gpicview -VERSION = 0.2.1 +GARNAME = gpicview +GARVERSION = 0.2.1 CATEGORIES = utils DESCRIPTION = A Simple and Fast Image Viewer for X @@ -10,8 +10,18 @@ VENDOR_URL = http://lxde.sourceforge.net/gpicview/ MASTER_SITES = $(SF_MIRRORS) SF_PROJ = lxde -DISTFILES = $(NAME)-$(VERSION).tar.gz +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +RUNTIME_DEP_PKGS += CSWlibatk +RUNTIME_DEP_PKGS += CSWggettextrt +RUNTIME_DEP_PKGS += CSWfconfig +RUNTIME_DEP_PKGS += CSWglib2 +RUNTIME_DEP_PKGS += CSWftype2 +RUNTIME_DEP_PKGS += CSWpango +RUNTIME_DEP_PKGS += CSWgtk2 +RUNTIME_DEP_PKGS += CSWlibcairo +RUNTIME_DEP_PKGS += CSWjpeg + # No test suite available TEST_SCRIPTS = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 01:54:50 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 00:54:50 +0000 Subject: [csw-devel] SF.net SVN: gar:[11844] csw/mgar/pkg Message-ID: Revision: 11844 http://gar.svn.sourceforge.net/gar/?rev=11844&view=rev Author: skayser Date: 2010-12-09 00:54:50 +0000 (Thu, 09 Dec 2010) Log Message: ----------- csync2: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/csync2/ csw/mgar/pkg/csync2/branches/ csw/mgar/pkg/csync2/tags/ csw/mgar/pkg/csync2/trunk/ csw/mgar/pkg/csync2/trunk/Makefile csw/mgar/pkg/csync2/trunk/checksums csw/mgar/pkg/csync2/trunk/files/ Property changes on: csw/mgar/pkg/csync2/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/csync2/trunk/Makefile =================================================================== --- csw/mgar/pkg/csync2/trunk/Makefile (rev 0) +++ csw/mgar/pkg/csync2/trunk/Makefile 2010-12-09 00:54:50 UTC (rev 11844) @@ -0,0 +1,31 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! csync2 uses a GNU-extension which isn't available on Solaris +# "action.c", line 47: undefined symbol: FNM_LEADING_DIR +# Might be possible to use the gnulib fnmatch-gnu module as a replacement +# http://bugs.opensolaris.org/bugdatabase/view_bug.do;jsessionid=9fb51afbd594902d6b0fe775834d?bug_id=6721185 +# ! csync2 uses scandir, not available on Solaris, but available via gnulib +# +GARNAME = csync2 +GARVERSION = 1.34 +CATEGORIES = apps + +DESCRIPTION = Keeps files across multiple (cluster) hosts in sync +define BLURB + Csync2 is a cluster synchronization tool. It can be used to keep files on + multiple hosts in a cluster in sync. Csync2 can handle complex setups with + much more than just 2 hosts, handle file deletions and can detect conflicts. + + It is expedient for HA-clusters, HPC-clusters, COWs and server farms. If + you are looking for a tool to sync your laptop with your workstation, you + better have a look at Unison (http://www.cis.upenn.edu/~bcpierce/unison/) + too. +endef + +MASTER_SITES = http://oss.linbit.com/csync2/ +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk Added: csw/mgar/pkg/csync2/trunk/checksums =================================================================== --- csw/mgar/pkg/csync2/trunk/checksums (rev 0) +++ csw/mgar/pkg/csync2/trunk/checksums 2010-12-09 00:54:50 UTC (rev 11844) @@ -0,0 +1 @@ +efc8a3548996b79cef2ad76af5e93cd8 csync2-1.34.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 02:05:00 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:05:00 +0000 Subject: [csw-devel] SF.net SVN: gar:[11845] csw/mgar/pkg Message-ID: Revision: 11845 http://gar.svn.sourceforge.net/gar/?rev=11845&view=rev Author: skayser Date: 2010-12-09 01:05:00 +0000 (Thu, 09 Dec 2010) Log Message: ----------- stress: initial commit Added Paths: ----------- csw/mgar/pkg/stress/ csw/mgar/pkg/stress/branches/ csw/mgar/pkg/stress/tags/ csw/mgar/pkg/stress/trunk/ csw/mgar/pkg/stress/trunk/Makefile csw/mgar/pkg/stress/trunk/checksums csw/mgar/pkg/stress/trunk/files/ csw/mgar/pkg/stress/trunk/files/changelog.CSW Property changes on: csw/mgar/pkg/stress/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/stress/trunk/Makefile =================================================================== --- csw/mgar/pkg/stress/trunk/Makefile (rev 0) +++ csw/mgar/pkg/stress/trunk/Makefile 2010-12-09 01:05:00 UTC (rev 11845) @@ -0,0 +1,30 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +GARNAME = stress +GARVERSION = 1.0.4 +CATEGORIES = apps + +DESCRIPTION = A deliberately simple workload generator for POSIX systems +define BLURB + The tool started out as a very simple way to generate work on a + computer. It has pretty much stayed as simple as reasonably possible. It + is a single file called stress.c whose internal organization is in + essence a loop that forks worker processes and then waits for them to + either complete normally or exit with an error. It has been used in a + lot of product development labs as well as in research projects. +endef + +MASTER_SITES = http://weather.ou.edu/~apw/projects/stress/ +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk + +# Install changelog.CSW +post-merge: $(foreach P,$(_PKG_SPECS),install-changelog-$P) +install-changelog-%: + ginstall -D $(FILEDIR)/changelog.CSW \ + $(PKGROOT)$(docdir)/$(call catalogname,$*)/changelog.CSW + @$(MAKECOOKIE) Added: csw/mgar/pkg/stress/trunk/checksums =================================================================== --- csw/mgar/pkg/stress/trunk/checksums (rev 0) +++ csw/mgar/pkg/stress/trunk/checksums 2010-12-09 01:05:00 UTC (rev 11845) @@ -0,0 +1 @@ +a607afa695a511765b40993a64c6e2f4 stress-1.0.4.tar.gz Added: csw/mgar/pkg/stress/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/stress/trunk/files/changelog.CSW (rev 0) +++ csw/mgar/pkg/stress/trunk/files/changelog.CSW 2010-12-09 01:05:00 UTC (rev 11845) @@ -0,0 +1,6 @@ +stress (1.0.4,REV=2010.12.09) + + * Upstream version bump to 1.0.4 + * Ship stress.1 man page. (Closes #3665) + + -- Sebastian Kayser Thu, 9 Dec 2010 02:00:00 +0100 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Thu Dec 9 02:07:12 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:07:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[11846] csw/mgar/pkg/apache2/trunk/files/build_cas_template Message-ID: Revision: 11846 http://gar.svn.sourceforge.net/gar/?rev=11846&view=rev Author: bdwalton Date: 2010-12-09 01:07:12 +0000 (Thu, 09 Dec 2010) Log Message: ----------- apache2: add missing ; in -e options to perl during config migration Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/build_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/build_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-09 01:05:00 UTC (rev 11845) +++ csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-09 01:07:12 UTC (rev 11846) @@ -28,12 +28,12 @@ # update various uses of the var/ paths. # ensure we use the config files from the new location perl -pi \ - -e "s/\/opt\/csw\/apache2\/etc\/server.crt/\/etc\/opt\/csw\/apache2\/server.crt/" \ - -e "s/\/opt\/csw\/apache2\/etc\/server.key/\/etc\/opt\/csw\/apache2\/server.key/" \ - -e "s/\/opt\/csw\/apache2\/var\/log\//\/var\/opt\/csw\/log\/apache2\//" \ - -e "s/\"\/opt\/csw\/apache2\/var\//\"\/var\/opt\/csw\/apache2\//" \ - -e "s/\"var\/log\//\"\/var\/opt\/csw\/log\/apache2\//" \ - -e "s/etc\//\/etc\/opt\/csw\/apache2\//" \ + -e "s/\/opt\/csw\/apache2\/etc\/server.crt/\/etc\/opt\/csw\/apache2\/server.crt/;" \ + -e "s/\/opt\/csw\/apache2\/etc\/server.key/\/etc\/opt\/csw\/apache2\/server.key/;" \ + -e "s/\/opt\/csw\/apache2\/var\/log\//\/var\/opt\/csw\/log\/apache2\//;" \ + -e "s/\"\/opt\/csw\/apache2\/var\//\"\/var\/opt\/csw\/apache2\//;" \ + -e "s/\"var\/log\//\"\/var\/opt\/csw\/log\/apache2\//;" \ + -e "s/etc\//\/etc\/opt\/csw\/apache2\//;" \ \$NEW_CONF_FILE else # so, we're not an existing or 'needs migration' install, we must This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 02:10:37 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:10:37 +0000 Subject: [csw-devel] SF.net SVN: gar:[11847] csw/mgar/pkg Message-ID: Revision: 11847 http://gar.svn.sourceforge.net/gar/?rev=11847&view=rev Author: skayser Date: 2010-12-09 01:10:37 +0000 (Thu, 09 Dec 2010) Log Message: ----------- snownews: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/snownews/ csw/mgar/pkg/snownews/branches/ csw/mgar/pkg/snownews/tags/ csw/mgar/pkg/snownews/trunk/ csw/mgar/pkg/snownews/trunk/Makefile csw/mgar/pkg/snownews/trunk/checksums csw/mgar/pkg/snownews/trunk/files/ Property changes on: csw/mgar/pkg/snownews/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/snownews/trunk/Makefile =================================================================== --- csw/mgar/pkg/snownews/trunk/Makefile (rev 0) +++ csw/mgar/pkg/snownews/trunk/Makefile 2010-12-09 01:10:37 UTC (rev 11847) @@ -0,0 +1,28 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! build state unknown, work in progress, please verify +# +GARNAME = snownews +GARVERSION = 1.5.12 +CATEGORIES = apps + +DESCRIPTION = Text mode RSS/RDF news reader +define BLURB + Long description +endef + +VENDOR_URL = http://kiza.kcore.de/software/snownews/ +MASTER_SITES = http://kiza.kcore.de/media/software/snownews/ +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz + +CONFIGURE_ARGS = --prefix=$(prefix) + +EXTRA_INC=/opt/csw/include/ncursesw/ + +include gar/category.mk + +# snownews doesn't use autoconf, but a very simple perl ./configure script +pre-configure-modulated: + perl -pi -e 's|-Wall -Wno-format-y2k||' $(WORKSRC)/configure + @$(MAKECOOKIE) Added: csw/mgar/pkg/snownews/trunk/checksums =================================================================== --- csw/mgar/pkg/snownews/trunk/checksums (rev 0) +++ csw/mgar/pkg/snownews/trunk/checksums 2010-12-09 01:10:37 UTC (rev 11847) @@ -0,0 +1 @@ +80da8943fc5aa96571924aec0087d4c0 download/snownews-1.5.12.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 02:12:47 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:12:47 +0000 Subject: [csw-devel] SF.net SVN: gar:[11848] csw/mgar/pkg Message-ID: Revision: 11848 http://gar.svn.sourceforge.net/gar/?rev=11848&view=rev Author: skayser Date: 2010-12-09 01:12:47 +0000 (Thu, 09 Dec 2010) Log Message: ----------- tcpreplay: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/tcpreplay/ csw/mgar/pkg/tcpreplay/branches/ csw/mgar/pkg/tcpreplay/tags/ csw/mgar/pkg/tcpreplay/trunk/ csw/mgar/pkg/tcpreplay/trunk/Makefile csw/mgar/pkg/tcpreplay/trunk/checksums csw/mgar/pkg/tcpreplay/trunk/files/ Property changes on: csw/mgar/pkg/tcpreplay/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/tcpreplay/trunk/Makefile =================================================================== --- csw/mgar/pkg/tcpreplay/trunk/Makefile (rev 0) +++ csw/mgar/pkg/tcpreplay/trunk/Makefile 2010-12-09 01:12:47 UTC (rev 11848) @@ -0,0 +1,39 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! build state unknown, work in progress, please verify +# +GARNAME = tcpreplay +GARVERSION = 3.4.4 +CATEGORIES = apps + +DESCRIPTION = Tool to replay saved tcpdump files at arbitrary speeds +define BLURB + Tcpreplay is a suite of BSD licensed tools written by Aaron Turner for + UNIX (and Win32 under Cygwin) operating systems which gives you the + ability to use previously captured traffic in libpcap format to test a + variety of network devices. It allows you to classify traffic as client + or server, rewrite Layer 2, 3 and 4 headers and finally replay the + traffic back onto the network and through other devices such as + switches, routers, firewalls, NIDS and IPS's. Tcpreplay supports both + single and dual NIC modes for testing both sniffing and inline devices. +endef + +VENDOR_URL = http://tcpreplay.sf.net +MASTER_SITES = $(SF_MIRRORS) +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz + +CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += --with-libpcap=$(prefix) +CONFIGURE_ARGS += --enable-dynamic-link + +# Avoid "template version mismatches" error +# http://tcpreplay.synfin.net/wiki/FAQ#tcpreplay_opts.h:72:3:error:erroroptiontemplateversionmismatchesautooptsoptions.hheader +CONFIGURE_ARGS += --disable-local-libopts --disable-libopts-install + +include gar/category.mk + +pre-configure-modulated: + gsed -i 's,-Wall -O3 -std=gnu99,,' $(WORKSRC)/configure.ac + autoreconf -fi $(WORKSRC) + @$(MAKECOOKIE) Property changes on: csw/mgar/pkg/tcpreplay/trunk/Makefile ___________________________________________________________________ Added: svn:keywords + Id Added: csw/mgar/pkg/tcpreplay/trunk/checksums =================================================================== --- csw/mgar/pkg/tcpreplay/trunk/checksums (rev 0) +++ csw/mgar/pkg/tcpreplay/trunk/checksums 2010-12-09 01:12:47 UTC (rev 11848) @@ -0,0 +1 @@ +22725feb9b2590809f9350308ec65180 tcpreplay-3.4.4.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 02:15:46 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:15:46 +0000 Subject: [csw-devel] SF.net SVN: gar:[11849] csw/mgar/pkg Message-ID: Revision: 11849 http://gar.svn.sourceforge.net/gar/?rev=11849&view=rev Author: skayser Date: 2010-12-09 01:15:46 +0000 (Thu, 09 Dec 2010) Log Message: ----------- stressapptest: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/stressapptest/ csw/mgar/pkg/stressapptest/branches/ csw/mgar/pkg/stressapptest/tags/ csw/mgar/pkg/stressapptest/trunk/ csw/mgar/pkg/stressapptest/trunk/Makefile csw/mgar/pkg/stressapptest/trunk/checksums csw/mgar/pkg/stressapptest/trunk/files/ Property changes on: csw/mgar/pkg/stressapptest/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/stressapptest/trunk/Makefile =================================================================== --- csw/mgar/pkg/stressapptest/trunk/Makefile (rev 0) +++ csw/mgar/pkg/stressapptest/trunk/Makefile 2010-12-09 01:15:46 UTC (rev 11849) @@ -0,0 +1,25 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! build state unknown, work in progress, please verify +# +GARNAME = stressapptest +GARVERSION = 1.0.3 +CATEGORIES = apps + +DESCRIPTION = Stress test application for simulating high load situations +define BLURB + Stressful Application Test (or stressapptest, its unix name) tries to + maximize randomized traffic to memory from processor and I/O, with the + intent of creating a realistic high load situation in order to test the + existing hardware devices in a computer. +endef + +VENDOR_URL = http://code.google.com/p/stressapptest/ +MASTER_SITES = http://stressapptest.googlecode.com/files/ +DISTFILES = $(GARNAME)-$(GARVERSION)_autoconf.tar.gz +DISTNAME = $(GARNAME)-$(GARVERSION)_autoconf +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*)_autoconf.tar.gz + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk Added: csw/mgar/pkg/stressapptest/trunk/checksums =================================================================== --- csw/mgar/pkg/stressapptest/trunk/checksums (rev 0) +++ csw/mgar/pkg/stressapptest/trunk/checksums 2010-12-09 01:15:46 UTC (rev 11849) @@ -0,0 +1 @@ +931d96b0914e2a4353470b8a9fbf5034 stressapptest-1.0.1_autoconf.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 02:17:23 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:17:23 +0000 Subject: [csw-devel] SF.net SVN: gar:[11850] csw/mgar/pkg Message-ID: Revision: 11850 http://gar.svn.sourceforge.net/gar/?rev=11850&view=rev Author: skayser Date: 2010-12-09 01:17:23 +0000 (Thu, 09 Dec 2010) Log Message: ----------- ucarp: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/ucarp/ csw/mgar/pkg/ucarp/branches/ csw/mgar/pkg/ucarp/tags/ csw/mgar/pkg/ucarp/trunk/ csw/mgar/pkg/ucarp/trunk/Makefile csw/mgar/pkg/ucarp/trunk/checksums csw/mgar/pkg/ucarp/trunk/files/ Property changes on: csw/mgar/pkg/ucarp/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/ucarp/trunk/Makefile =================================================================== --- csw/mgar/pkg/ucarp/trunk/Makefile (rev 0) +++ csw/mgar/pkg/ucarp/trunk/Makefile 2010-12-09 01:17:23 UTC (rev 11850) @@ -0,0 +1,24 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! build state unknown, work in progress, please verify +# +GARNAME = ucarp +GARVERSION = 1.5.2 +CATEGORIES = apps + +DESCRIPTION = UCARP is a portable implementation of the CARP protocol. +define BLURB + UCARP allows a couple of hosts to share common virtual IP addresses in + order to provide automatic failover. It is a portable userland + implementation of the secure and patent-free Common Address Redundancy + Protocol (CARP, OpenBSD's alternative to the patents-bloated VRRP). +endef + +VENDOR_URL = http://www.ucarp.org/project/ucarp +MASTER_SITES = http://download.pureftpd.org/pub/ucarp/ +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk Added: csw/mgar/pkg/ucarp/trunk/checksums =================================================================== --- csw/mgar/pkg/ucarp/trunk/checksums (rev 0) +++ csw/mgar/pkg/ucarp/trunk/checksums 2010-12-09 01:17:23 UTC (rev 11850) @@ -0,0 +1 @@ +e3caa733316a32c09e5d3817617e9145 ucarp-1.5.2.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 02:18:36 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:18:36 +0000 Subject: [csw-devel] SF.net SVN: gar:[11851] csw/mgar/pkg Message-ID: Revision: 11851 http://gar.svn.sourceforge.net/gar/?rev=11851&view=rev Author: skayser Date: 2010-12-09 01:18:36 +0000 (Thu, 09 Dec 2010) Log Message: ----------- freerdp: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/freerdp/ csw/mgar/pkg/freerdp/branches/ csw/mgar/pkg/freerdp/tags/ csw/mgar/pkg/freerdp/trunk/ csw/mgar/pkg/freerdp/trunk/Makefile csw/mgar/pkg/freerdp/trunk/checksums csw/mgar/pkg/freerdp/trunk/files/ Property changes on: csw/mgar/pkg/freerdp/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/freerdp/trunk/Makefile =================================================================== --- csw/mgar/pkg/freerdp/trunk/Makefile (rev 0) +++ csw/mgar/pkg/freerdp/trunk/Makefile 2010-12-09 01:18:36 UTC (rev 11851) @@ -0,0 +1,21 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! libxcursor packages missing (currently only available in the CSW +# X11 stack which should be obsoleted) +# +GARNAME = freerdp +GARVERSION = 0.8.2 +CATEGORIES = utils + +DESCRIPTION = RDP client. Fork of the rdesktop project. +define BLURB + Long description +endef + +MASTER_SITES = $(SF_MIRROR) +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk Property changes on: csw/mgar/pkg/freerdp/trunk/Makefile ___________________________________________________________________ Added: svn:keywords + Id Added: csw/mgar/pkg/freerdp/trunk/checksums =================================================================== --- csw/mgar/pkg/freerdp/trunk/checksums (rev 0) +++ csw/mgar/pkg/freerdp/trunk/checksums 2010-12-09 01:18:36 UTC (rev 11851) @@ -0,0 +1 @@ +cde590336292c977dfc1b4b7badf24d2 freerdp-0.8.2.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 02:21:30 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:21:30 +0000 Subject: [csw-devel] SF.net SVN: gar:[11852] csw/mgar/pkg Message-ID: Revision: 11852 http://gar.svn.sourceforge.net/gar/?rev=11852&view=rev Author: skayser Date: 2010-12-09 01:21:30 +0000 (Thu, 09 Dec 2010) Log Message: ----------- avfs: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/avfs/ csw/mgar/pkg/avfs/branches/ csw/mgar/pkg/avfs/tags/ csw/mgar/pkg/avfs/trunk/ csw/mgar/pkg/avfs/trunk/Makefile csw/mgar/pkg/avfs/trunk/checksums csw/mgar/pkg/avfs/trunk/files/ Property changes on: csw/mgar/pkg/avfs/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/avfs/trunk/Makefile =================================================================== --- csw/mgar/pkg/avfs/trunk/Makefile (rev 0) +++ csw/mgar/pkg/avfs/trunk/Makefile 2010-12-09 01:21:30 UTC (rev 11852) @@ -0,0 +1,22 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! build state unknown, work in progress, please verify +# +GARNAME = avfs +GARVERSION = 0.9.8 +CATEGORIES = apps + +DESCRIPTION = Virtual file system to access archives, disk images, remote locations +define BLURB + Long description +endef + +VENDOR_URL = http://avf.sourceforge.net/ +MASTER_SITES = $(SF_MIRRORS) +SF_PROJ = avf +DISTFILES = $(GARNAME)-$(GARVERSION).tar.bz2 +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.bz2 + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk Added: csw/mgar/pkg/avfs/trunk/checksums =================================================================== --- csw/mgar/pkg/avfs/trunk/checksums (rev 0) +++ csw/mgar/pkg/avfs/trunk/checksums 2010-12-09 01:21:30 UTC (rev 11852) @@ -0,0 +1 @@ +5281b990251c8c3a15366ad40e4818db avfs-0.9.8.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 02:24:09 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:24:09 +0000 Subject: [csw-devel] SF.net SVN: gar:[11853] csw/mgar/pkg Message-ID: Revision: 11853 http://gar.svn.sourceforge.net/gar/?rev=11853&view=rev Author: skayser Date: 2010-12-09 01:24:09 +0000 (Thu, 09 Dec 2010) Log Message: ----------- webfs: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/webfs/ csw/mgar/pkg/webfs/branches/ csw/mgar/pkg/webfs/tags/ csw/mgar/pkg/webfs/trunk/ csw/mgar/pkg/webfs/trunk/Makefile csw/mgar/pkg/webfs/trunk/checksums csw/mgar/pkg/webfs/trunk/files/ Property changes on: csw/mgar/pkg/webfs/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/webfs/trunk/Makefile =================================================================== --- csw/mgar/pkg/webfs/trunk/Makefile (rev 0) +++ csw/mgar/pkg/webfs/trunk/Makefile 2010-12-09 01:24:09 UTC (rev 11853) @@ -0,0 +1,23 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! build state unknown, work in progress, please verify +# +GARNAME = webfs +GARVERSION = 1.21 +CATEGORIES = apps + +DESCRIPTION = Lightweight HTTP server for static content +define BLURB + Long description +endef + +VENDOR_URL = http://linux.bytesex.org/misc/webfs.html +MASTER_SITES = http://dl.bytesex.org/releases/webfs/ +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz + +CONFIGURE_SCRIPTS = + +include gar/category.mk + +PATH := $(prefix)/gnu:$(PATH) Added: csw/mgar/pkg/webfs/trunk/checksums =================================================================== --- csw/mgar/pkg/webfs/trunk/checksums (rev 0) +++ csw/mgar/pkg/webfs/trunk/checksums 2010-12-09 01:24:09 UTC (rev 11853) @@ -0,0 +1 @@ +6dc125fe160479404147e7bbfc781dbc download/webfs-1.21.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 02:30:15 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:30:15 +0000 Subject: [csw-devel] SF.net SVN: gar:[11854] csw/mgar/pkg Message-ID: Revision: 11854 http://gar.svn.sourceforge.net/gar/?rev=11854&view=rev Author: skayser Date: 2010-12-09 01:30:15 +0000 (Thu, 09 Dec 2010) Log Message: ----------- perdition: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/perdition/ csw/mgar/pkg/perdition/branches/ csw/mgar/pkg/perdition/tags/ csw/mgar/pkg/perdition/trunk/ csw/mgar/pkg/perdition/trunk/Makefile csw/mgar/pkg/perdition/trunk/checksums csw/mgar/pkg/perdition/trunk/files/ Property changes on: csw/mgar/pkg/perdition/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/perdition/trunk/Makefile =================================================================== --- csw/mgar/pkg/perdition/trunk/Makefile (rev 0) +++ csw/mgar/pkg/perdition/trunk/Makefile 2010-12-09 01:30:15 UTC (rev 11854) @@ -0,0 +1,28 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! build state unknown, work in progress, please verify +# +GARNAME = perdition +GARVERSION = 1.18 +CATEGORIES = server + +DESCRIPTION = POP3 and IMAP4 proxy server with high capacity in mind. +define BLURB + Perdition is a fully featured POP3 and IMAP4 proxy server. It is able to + handle both SSL and non-SSL connections and redirect users to a + real-server based on a database lookup. Perdition supports modular based + database access. ODBC, MySQL, PostgreSQL, GDBM, POSIX Regular Expression + and NIS modules ship with the distribution. The API for modules is open + allowing arbitrary modules to be written to allow access to any data + store. +endef + +VENDOR_URL = http://horms.net/projects/perdition/ +MASTER_SITES = http://horms.net/projects/perdition/download/$(GARVERSION)/ +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +UFILES_REGEX = (\d+(?:\.\d+)*) +UPSTREAM_MASTER_SITES = http://horms.net/projects/perdition/download/ + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk Added: csw/mgar/pkg/perdition/trunk/checksums =================================================================== --- csw/mgar/pkg/perdition/trunk/checksums (rev 0) +++ csw/mgar/pkg/perdition/trunk/checksums 2010-12-09 01:30:15 UTC (rev 11854) @@ -0,0 +1 @@ +0baec303d27073f053cc03488bf8d98b perdition-1.18.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 02:31:17 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:31:17 +0000 Subject: [csw-devel] SF.net SVN: gar:[11855] csw/mgar/pkg Message-ID: Revision: 11855 http://gar.svn.sourceforge.net/gar/?rev=11855&view=rev Author: skayser Date: 2010-12-09 01:31:16 +0000 (Thu, 09 Dec 2010) Log Message: ----------- gorilla: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/gorilla/ csw/mgar/pkg/gorilla/branches/ csw/mgar/pkg/gorilla/tags/ csw/mgar/pkg/gorilla/trunk/ csw/mgar/pkg/gorilla/trunk/Makefile csw/mgar/pkg/gorilla/trunk/checksums csw/mgar/pkg/gorilla/trunk/files/ Property changes on: csw/mgar/pkg/gorilla/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/gorilla/trunk/Makefile =================================================================== --- csw/mgar/pkg/gorilla/trunk/Makefile (rev 0) +++ csw/mgar/pkg/gorilla/trunk/Makefile 2010-12-09 01:31:16 UTC (rev 11855) @@ -0,0 +1,21 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! build state unknown, work in progress, please verify +# +GARNAME = gorilla +GARVERSION = 1.4 +CATEGORIES = apps + +DESCRIPTION = A cross-platform, Tcl/Tk-based Password Manager +define BLURB + Long description +endef + +VENDOR_URL = http://www.fpx.de/fp/Software/Gorilla/ +MASTER_SITES = http://www.fpx.de/fp/Software/Gorilla/download/ +DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk Added: csw/mgar/pkg/gorilla/trunk/checksums =================================================================== --- csw/mgar/pkg/gorilla/trunk/checksums (rev 0) +++ csw/mgar/pkg/gorilla/trunk/checksums 2010-12-09 01:31:16 UTC (rev 11855) @@ -0,0 +1 @@ +9914efa3ddaf309de76f083c43f57dce gorilla-1.4.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 02:34:48 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:34:48 +0000 Subject: [csw-devel] SF.net SVN: gar:[11856] csw/mgar/pkg Message-ID: Revision: 11856 http://gar.svn.sourceforge.net/gar/?rev=11856&view=rev Author: skayser Date: 2010-12-09 01:34:48 +0000 (Thu, 09 Dec 2010) Log Message: ----------- puppet-dashboard: initial commit, work in progress, feel free to take over Added Paths: ----------- csw/mgar/pkg/puppet-dashboard/ csw/mgar/pkg/puppet-dashboard/branches/ csw/mgar/pkg/puppet-dashboard/tags/ csw/mgar/pkg/puppet-dashboard/trunk/ csw/mgar/pkg/puppet-dashboard/trunk/Makefile csw/mgar/pkg/puppet-dashboard/trunk/checksums csw/mgar/pkg/puppet-dashboard/trunk/files/ Property changes on: csw/mgar/pkg/puppet-dashboard/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/puppet-dashboard/trunk/Makefile =================================================================== --- csw/mgar/pkg/puppet-dashboard/trunk/Makefile (rev 0) +++ csw/mgar/pkg/puppet-dashboard/trunk/Makefile 2010-12-09 01:34:48 UTC (rev 11856) @@ -0,0 +1,21 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! build state unknown, work in progress, please verify +# +GARNAME = puppet-dashboard +GARVERSION = 1.0.0 +CATEGORIES = apps + +DESCRIPTION = Web interface and reporting tool for Puppet +define BLURB + Long description +endef + +VENDOR_URL = http://www.puppetlabs.com/puppet/related-projects/dashboard/ +MASTER_SITES = http://puppetlabs.com/downloads/dashboard/ +DISTFILES = $(GARNAME)-$(GARVERSION).tgz +UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tgz + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk Added: csw/mgar/pkg/puppet-dashboard/trunk/checksums =================================================================== --- csw/mgar/pkg/puppet-dashboard/trunk/checksums (rev 0) +++ csw/mgar/pkg/puppet-dashboard/trunk/checksums 2010-12-09 01:34:48 UTC (rev 11856) @@ -0,0 +1 @@ +e01fc46584ab93e1e51c6d8a5a2be363 puppet-dashboard-1.0.0.tgz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Thu Dec 9 02:48:16 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Thu, 09 Dec 2010 01:48:16 +0000 Subject: [csw-devel] SF.net SVN: gar:[11857] csw/mgar/pkg/apache2/trunk/files/build_cas_template Message-ID: Revision: 11857 http://gar.svn.sourceforge.net/gar/?rev=11857&view=rev Author: bdwalton Date: 2010-12-09 01:48:16 +0000 (Thu, 09 Dec 2010) Log Message: ----------- apache2: join continued lines to avoid here doc line split issue Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/build_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/build_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-09 01:34:48 UTC (rev 11856) +++ csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-09 01:48:16 UTC (rev 11857) @@ -27,14 +27,7 @@ # handle the new path to default ssl key files. # update various uses of the var/ paths. # ensure we use the config files from the new location - perl -pi \ - -e "s/\/opt\/csw\/apache2\/etc\/server.crt/\/etc\/opt\/csw\/apache2\/server.crt/;" \ - -e "s/\/opt\/csw\/apache2\/etc\/server.key/\/etc\/opt\/csw\/apache2\/server.key/;" \ - -e "s/\/opt\/csw\/apache2\/var\/log\//\/var\/opt\/csw\/log\/apache2\//;" \ - -e "s/\"\/opt\/csw\/apache2\/var\//\"\/var\/opt\/csw\/apache2\//;" \ - -e "s/\"var\/log\//\"\/var\/opt\/csw\/log\/apache2\//;" \ - -e "s/etc\//\/etc\/opt\/csw\/apache2\//;" \ - \$NEW_CONF_FILE + perl -pi -e "s/\/opt\/csw\/apache2\/etc\/server.crt/\/etc\/opt\/csw\/apache2\/server.crt/;" -e "s/\/opt\/csw\/apache2\/etc\/server.key/\/etc\/opt\/csw\/apache2\/server.key/;" -e "s/\/opt\/csw\/apache2\/var\/log\//\/var\/opt\/csw\/log\/apache2\//;" -e "s/\"\/opt\/csw\/apache2\/var\//\"\/var\/opt\/csw\/apache2\//;" -e "s/\"var\/log\//\"\/var\/opt\/csw\/log\/apache2\//;" -e "s/etc\//\/etc\/opt\/csw\/apache2\//;" \$NEW_CONF_FILE else # so, we're not an existing or 'needs migration' install, we must # install from the templates. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 03:19:22 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 02:19:22 +0000 Subject: [csw-devel] SF.net SVN: gar:[11858] csw/mgar/pkg/php5/trunk/Makefile Message-ID: Revision: 11858 http://gar.svn.sourceforge.net/gar/?rev=11858&view=rev Author: skayser Date: 2010-12-09 02:19:22 +0000 (Thu, 09 Dec 2010) Log Message: ----------- php5: document TODOs WRT to extension builds, minor tweaks Modified Paths: -------------- csw/mgar/pkg/php5/trunk/Makefile Modified: csw/mgar/pkg/php5/trunk/Makefile =================================================================== --- csw/mgar/pkg/php5/trunk/Makefile 2010-12-09 01:48:16 UTC (rev 11857) +++ csw/mgar/pkg/php5/trunk/Makefile 2010-12-09 02:19:22 UTC (rev 11858) @@ -1,3 +1,9 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! Re-enable the integrated PHP extension builds. This either requires +# performance enhancements to GAR or a completely different approach. +# Details documented below. +# GARNAME = php5 GARVERSION = 5.3.3 CATEGORIES = lang @@ -18,10 +24,10 @@ available. endef +VENDOR_URL = http://www.php.net/ MASTER_SITES = http://us.php.net/distributions/ -SPKG_SOURCEURL = http://www.php.net/ INSTALL_ENV += INSTALL_ROOT=$(DESTDIR) -STRIP_DIRS += $(shell $(call _get_php_prefix,$(DESTDIR))/bin/php-config --extension-dir)/*/ +STRIP_DIRS := $(shell $(call _get_php_prefix,$(DESTDIR))/bin/php-config --extension-dir)/*/ DISTFILES += $(DISTNAME).tar.bz2 DISTFILES += php.ini.CSW phpext pear.conf.CSW CSWphp5.postinstall @@ -29,7 +35,7 @@ PACKAGES = CSWphp5 CSWphp5devel CATALOGNAME_CSWphp5 = php5 -SPKG_DESC_CSWphp5 = A High-Level Scripting Languages +SPKG_DESC_CSWphp5 = A High-Level Scripting Language CATALOGNAME_CSWphp5devel = php5_devel SPKG_DESC_CSWphp5devel = Development files for php5 RUNTIME_DEP_PKGS_CSWphp5 = CSWexpat CSWggettextrt CSWiconv CSWpng CSWsqlite @@ -58,9 +64,17 @@ PATCHFILES += configure.diff -# PHP Extensions -EXTDIRLIST = $(shell ls -d extensions/*) -#include $(foreach X,$(EXTDIRLIST),$(X)/Makefile) +# PHP Extensions, currently deactivated +# +# GAR needs performance enhancements to handle an integrated build with +# all the extensions otherwise the build takes ages. +# 1) File downloads are triggered via gmake invocations -> s l o w !! +# 2) Unless gmake is called -r there are heaps of implicit rule searches +# for the included Makefiles (gmake tries to remake them) +# 3) ... TBD, probably more +# +EXTENSION_MAKEFILES := $(wildcard extensions/*/Makefile) +#include $(EXTENSION_MAKEFILES) EXTRA_CFLAGS = -I$(prefix)/include/ncursesw This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 04:29:48 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 03:29:48 +0000 Subject: [csw-devel] SF.net SVN: gar:[11859] csw/mgar/pkg/iozone/trunk/Makefile Message-ID: Revision: 11859 http://gar.svn.sourceforge.net/gar/?rev=11859&view=rev Author: skayser Date: 2010-12-09 03:29:48 +0000 (Thu, 09 Dec 2010) Log Message: ----------- iozone: don't use VERSION as GARVERSION will be renamed to VERSION soon Modified Paths: -------------- csw/mgar/pkg/iozone/trunk/Makefile Modified: csw/mgar/pkg/iozone/trunk/Makefile =================================================================== --- csw/mgar/pkg/iozone/trunk/Makefile 2010-12-09 02:19:22 UTC (rev 11858) +++ csw/mgar/pkg/iozone/trunk/Makefile 2010-12-09 03:29:48 UTC (rev 11859) @@ -1,6 +1,6 @@ GARNAME = iozone GARVERSION = 3.291 -VERSION = $(shell echo $(GARVERSION) | sed -e 's/\./_/g') +DISTVERSION = $(shell echo $(GARVERSION) | sed -e 's/\./_/g') CATEGORIES = apps DESCRIPTION = IO benchmarking tool @@ -11,17 +11,16 @@ many operating systems. endef +VENDOR_URL = http://www.iozone.org/ MASTER_SITES = http://www.iozone.org/src/current/ MASTER_SITES += http://www.iozone.org/docs/ -DISTFILES = $(GARNAME)$(VERSION).tar -DISTFILES += vx_ioctl.h -DISTFILES += $(call admfiles,CSWiozone) +UFILES_REGEX = $(GARNAME)(\d+(?:\.\d+)*).tar +DISTFILES = $(GARNAME)$(DISTVERSION).tar +DISTFILES += vx_ioctl.h +DISTFILES += $(call admfiles,CSWiozone) -DISTNAME = $(GARNAME)$(VERSION) +DISTNAME = $(GARNAME)$(DISTVERSION) -# We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)(\d+(?:\.\d+)*).tar - PATCHFILES = patch-vx_ioctl.diff DOCS = IOzone_msword_98.pdf This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 04:47:04 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 03:47:04 +0000 Subject: [csw-devel] SF.net SVN: gar:[11860] csw/mgar/gar/v2 Message-ID: Revision: 11860 http://gar.svn.sourceforge.net/gar/?rev=11860&view=rev Author: skayser Date: 2010-12-09 03:47:03 +0000 (Thu, 09 Dec 2010) Log Message: ----------- gar/v2: Transitional change for var renaming GAR{NAME,VERSION} -> {NAME,VERSION} As a preparation for the introduction of GARTYPE, the two variables GARNAME and GARVERSION will be renamed to NAME and VERSION (to better reflect their relevance to the package, not GAR). This change renames these variables within GAR while - for now - leaving existing build descriptions functional. After adjusting our documentation and sending a heads up to maintainers@, the next step will then obsolete the old variables. Modified Paths: -------------- csw/mgar/gar/v2/bin/cpan_apply_updates csw/mgar/gar/v2/bin/depgraph csw/mgar/gar/v2/bin/gem2pkg csw/mgar/gar/v2/categories/cpan/category.mk csw/mgar/gar/v2/categories/java/category.mk csw/mgar/gar/v2/categories/kde/category.mk csw/mgar/gar/v2/categories/kde4/category.mk csw/mgar/gar/v2/categories/rbgems/category.mk csw/mgar/gar/v2/categories/xfce/category.mk csw/mgar/gar/v2/gar.conf.mk csw/mgar/gar/v2/gar.lib.mk csw/mgar/gar/v2/gar.mk csw/mgar/gar/v2/gar.pkg.mk csw/mgar/gar/v2/gar.svn.mk csw/mgar/gar/v2/lib/python/gartest.py csw/mgar/gar/v2/pkglib/Makefile csw/mgar/gar/v2/tests/example_test.py csw/mgar/gar/v2/tests/overrides_test.py csw/mgar/gar/v2/tests/static/example/Makefile Modified: csw/mgar/gar/v2/bin/cpan_apply_updates =================================================================== --- csw/mgar/gar/v2/bin/cpan_apply_updates 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/bin/cpan_apply_updates 2010-12-09 03:47:03 UTC (rev 11860) @@ -28,7 +28,7 @@ next; } print "Updating $module to $newvers\n"; - my $rpat = "s/^(GARVERSION).*\$/\$1 = $newvers/"; + my $rpat = "s/^(VERSION).*\$/\$1 = $newvers/"; system("perl -i.bak -plne '$rpat' $module/Makefile") and die "Failed to upgrade $module\n"; system("gmake -C $module update") Modified: csw/mgar/gar/v2/bin/depgraph =================================================================== --- csw/mgar/gar/v2/bin/depgraph 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/bin/depgraph 2010-12-09 03:47:03 UTC (rev 11860) @@ -49,7 +49,7 @@ my ($garname, @deps); foreach (@lines) { - if (/^GARNAME\s*=\s*(\S*)\s*$/) { + if (/^NAME\s*=\s*(\S*)\s*$/) { $garname = $1; next; } Modified: csw/mgar/gar/v2/bin/gem2pkg =================================================================== --- csw/mgar/gar/v2/bin/gem2pkg 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/bin/gem2pkg 2010-12-09 03:47:03 UTC (rev 11860) @@ -14,8 +14,8 @@ blurb = spec.description.gsub("\n", ' ').squeeze.lstrip puts <<"EOF" -GARNAME = #{spec.name} -GARVERSION = #{spec.version} +NAME = #{spec.name} +VERSION = #{spec.version} CATEGORIES = rbgems DESCRIPTION = #{spec.summary} Modified: csw/mgar/gar/v2/categories/cpan/category.mk =================================================================== --- csw/mgar/gar/v2/categories/cpan/category.mk 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/categories/cpan/category.mk 2010-12-09 03:47:03 UTC (rev 11860) @@ -3,7 +3,7 @@ MASTER_SITES ?= $(CPAN_MIRRORS) # This is common to most modules - override in module makefile if different -MODDIST ?= $(GARNAME)-$(GARVERSION).tar.gz +MODDIST ?= $(NAME)-$(VERSION).tar.gz DISTFILES += $(MODDIST) CHECKPATH ?= $(firstword $(CPAN_MIRRORS)) @@ -28,13 +28,13 @@ SPKG_SOURCEURL := $(SPKG_SOURCEURL)/~$(call TOLOWER,$(AUTHOR)) # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX ?= $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX ?= $(NAME)-(\d+(?:\.\d+)*).tar.gz USTREAM_MASTER_SITE ?= $(SPKG_SOURCEURL) -$(foreach P,$(PACKAGES),$(eval _CATEGORY_SPKG_DESC_$P = $$(GARNAME): $$(or $$(SPKG_DESC_$P),$$(SPKG_DESC)))) -_CATEGORY_PKGINFO = echo "PERL_MODULE_NAME=$(GARNAME)"; +$(foreach P,$(PACKAGES),$(eval _CATEGORY_SPKG_DESC_$P = $$(NAME): $$(or $$(SPKG_DESC_$P),$$(SPKG_DESC)))) +_CATEGORY_PKGINFO = echo "PERL_MODULE_NAME=$(NAME)"; -SPKG_SOURCEURL := $(SPKG_SOURCEURL)/$(GARNAME) +SPKG_SOURCEURL := $(SPKG_SOURCEURL)/$(NAME) _MERGE_EXCLUDE_CATEGORY = .*/perllocal\.pod .*/\.packlist _CATEGORY_GSPEC_INCLUDE ?= csw_cpan_dyngspec.gspec @@ -91,23 +91,23 @@ # Check for a CPAN module version update update-check: - @echo " ==> Update Check: $(GARNAME) $(GARVERSION)" + @echo " ==> Update Check: $(NAME) $(VERSION)" @if test "x$(MANUAL_UPDATE)" != "x0" ; then \ cpan_check $(CHECKPATH)$(MODDIST) \ $(CURDIR)/../update_results.txt ; \ else \ - echo " ==> AUTO UPDATE CHECK FOR $(GARNAME) IS DISABLED" ; \ + echo " ==> AUTO UPDATE CHECK FOR $(NAME) IS DISABLED" ; \ fi # Print HTML info for modules module-info: - @echo " ==> Generating module info for $(GARNAME) $(GARVERSION)" + @echo " ==> Generating module info for $(NAME) $(VERSION)" @printf "> ../module_info.html @printf "~$(shell echo $(AUTHOR) | tr '[A-Z]' '[a-z]')/" \ >> ../module_info.html - @printf "$(GARNAME)-$(GARVERSION)" \ + @printf "$(NAME)-$(VERSION)" \ >> ../module_info.html - @printf "\">$(GARNAME)-$(GARVERSION)
\n" \ + @printf "\">$(NAME)-$(VERSION)
\n" \ >> ../module_info.html Modified: csw/mgar/gar/v2/categories/java/category.mk =================================================================== --- csw/mgar/gar/v2/categories/java/category.mk 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/categories/java/category.mk 2010-12-09 03:47:03 UTC (rev 11860) @@ -1,7 +1,7 @@ # http://jakarta.apache.org/commons # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX ?= commons-$(GARNAME)-(\d+(?:\.\d+)*)-bin.tar.gz +UFILES_REGEX ?= commons-$(NAME)-(\d+(?:\.\d+)*)-bin.tar.gz USTREAM_MASTER_SITE ?= $(SPKG_SOURCEURL) # Includes the rest of gar Modified: csw/mgar/gar/v2/categories/kde/category.mk =================================================================== --- csw/mgar/gar/v2/categories/kde/category.mk 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/categories/kde/category.mk 2010-12-09 03:47:03 UTC (rev 11860) @@ -6,8 +6,8 @@ KDE_MIRROR = $(KDE_ROOT)/$(KDE_DIST)/$(KDE_VERSION)/src/ MASTER_SITES ?= $(KDE_MIRROR) -GARVERSION ?= $(KDE_VERSION) -PKGDIST ?= $(GARNAME)-$(GARVERSION).tar.bz2 +VERSION ?= $(KDE_VERSION) +PKGDIST ?= $(NAME)-$(VERSION).tar.bz2 DISTFILES += $(PKGDIST) # Compiler Modified: csw/mgar/gar/v2/categories/kde4/category.mk =================================================================== --- csw/mgar/gar/v2/categories/kde4/category.mk 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/categories/kde4/category.mk 2010-12-09 03:47:03 UTC (rev 11860) @@ -6,8 +6,8 @@ KDE_MIRROR = $(KDE_ROOT)/$(KDE_DIST)/$(KDE_VERSION)/src/ MASTER_SITES ?= $(KDE_MIRROR) -GARVERSION ?= $(KDE_VERSION) -PKGDIST ?= $(DISTNAME)-$(GARVERSION).tar.bz2 +VERSION ?= $(KDE_VERSION) +PKGDIST ?= $(DISTNAME)-$(VERSION).tar.bz2 DISTFILES += $(PKGDIST) # Compiler Modified: csw/mgar/gar/v2/categories/rbgems/category.mk =================================================================== --- csw/mgar/gar/v2/categories/rbgems/category.mk 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/categories/rbgems/category.mk 2010-12-09 03:47:03 UTC (rev 11860) @@ -4,8 +4,8 @@ MASTER_SITES ?= http://rubygems.org/downloads/ # This is common to most modules - override in module makefile if different -GEMNAME ?= $(GARNAME) -GEMVERSION ?= $(GARVERSION) +GEMNAME ?= $(NAME) +GEMVERSION ?= $(VERSION) GEMFILE ?= $(GEMNAME)-$(GEMVERSION).gem DISTFILES += $(GEMFILE) @@ -86,5 +86,5 @@ # Check for a CPAN module version update update-check: @# TBD! - @echo " ==> Update Check: $(GARNAME) $(GARVERSION)" - @echo " ==> AUTO UPDATE CHECK FOR $(GARNAME) IS DISABLED" + @echo " ==> Update Check: $(NAME) $(VERSION)" + @echo " ==> AUTO UPDATE CHECK FOR $(NAME) IS DISABLED" Modified: csw/mgar/gar/v2/categories/xfce/category.mk =================================================================== --- csw/mgar/gar/v2/categories/xfce/category.mk 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/categories/xfce/category.mk 2010-12-09 03:47:03 UTC (rev 11860) @@ -4,8 +4,8 @@ XFCE_MIRROR = $(XFCE_ROOT)/archive/xfce-$(XFCE_VERSION)/src/ MASTER_SITES ?= $(XFCE_MIRROR) -GARVERSION ?= $(XFCE_VERSION) -PKGDIST ?= $(GARNAME)-$(GARVERSION).tar.bz2 +VERSION ?= $(XFCE_VERSION) +PKGDIST ?= $(NAME)-$(VERSION).tar.bz2 DISTFILES += $(PKGDIST) # Compiler options Modified: csw/mgar/gar/v2/gar.conf.mk =================================================================== --- csw/mgar/gar/v2/gar.conf.mk 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/gar.conf.mk 2010-12-09 03:47:03 UTC (rev 11860) @@ -595,13 +595,13 @@ # # Gnome -GNOME_PROJ ?= $(GARNAME) +GNOME_PROJ ?= $(NAME) GNOME_ROOT = http://ftp.gnome.org/pub/GNOME/sources -GNOME_SUBV = $(shell echo $(GARVERSION) | awk -F. '{print $$1"."$$2}') +GNOME_SUBV = $(shell echo $(VERSION) | awk -F. '{print $$1"."$$2}') GNOME_MIRROR = $(GNOME_ROOT)/$(GNOME_PROJ)/$(GNOME_SUBV)/ # SourceForge -SF_PROJ ?= $(GARNAME) +SF_PROJ ?= $(NAME) SF_MIRRORS ?= http://downloads.sourceforge.net/$(SF_PROJ)/ # Keep this for compatibility SF_MIRROR = $(firstword $(SF_MIRRORS)) @@ -609,18 +609,18 @@ UPSTREAM_USE_SF ?= 0 # Google Code -GOOGLE_PROJECT ?= $(GARNAME) +GOOGLE_PROJECT ?= $(NAME) GOOGLE_MIRROR ?= http://$(GOOGLE_PROJECT).googlecode.com/files/ # Berlios -BERLIOS_PROJECT ?= $(GARNAME) +BERLIOS_PROJECT ?= $(NAME) BERLIOS_MIRROR ?= http://download.berlios.de/$(BERLIOS_PROJECT)/ http://download2.berlios.de/$(BERLIOS_PROJECT)/ # GNU GNU_SITE = http://mirrors.kernel.org GNU_GNUROOT = $(GNU_SITE)/gnu GNU_NGNUROOT = $(GNU_SITE)/non-gnu -GNU_PROJ ?= $(GARNAME) +GNU_PROJ ?= $(NAME) GNU_MIRROR = $(GNU_GNUROOT)/$(GNU_PROJ)/ GNU_NMIRROR = $(GNU_NGNUROOT)/$(GNU_PROJ)/ @@ -635,7 +635,7 @@ CPAN_FIRST_MIRROR = $(firstword $(CPAN_SITES))/authors/id # Python Package Index -PYPI_PROJECT ?= $(GARNAME) +PYPI_PROJECT ?= $(NAME) PYPI_SUBDIR = $(shell echo $(PYPI_PROJECT) | cut -c 1) PYPI_MIRROR = http://pypi.python.org/packages/source/$(PYPI_SUBDIR)/$(PYPI_PROJECT)/ Modified: csw/mgar/gar/v2/gar.lib.mk =================================================================== --- csw/mgar/gar/v2/gar.lib.mk 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/gar.lib.mk 2010-12-09 03:47:03 UTC (rev 11860) @@ -200,7 +200,7 @@ else \ if echo $(DISTFILES) | grep -w $$FILE >/dev/null; then \ PACKAGE_UP_TO_DATE=1; \ - echo "$(GARNAME) : Package is up-to-date. Current version is $$FILE" ; \ + echo "$(NAME) : Package is up-to-date. Current version is $$FILE" ; \ else \ NEW_FILES="$$FILE $$NEW_FILES"; \ fi; \ @@ -209,11 +209,11 @@ done; \ if test -z "$$NEW_FILES" ; then \ if [ ! -n '$(UFILES_REGEX)' ]; then \ - echo "$(GARNAME) : Warning UFILES_REGEX is not set : $(UFILES_REGEX)" ; \ + echo "$(NAME) : Warning UFILES_REGEX is not set : $(UFILES_REGEX)" ; \ # { echo ""; \ -# echo "Hello dear $(GARNAME) maintainer,"; \ +# echo "Hello dear $(NAME) maintainer,"; \ # echo ""; \ -# echo "The upstream notification job has detected that $(GARNAME) is not configured for automatic upstream file update detection."; \ +# echo "The upstream notification job has detected that $(NAME) is not configured for automatic upstream file update detection."; \ # echo ""; \ # echo "Please consider updating your package. Documentation is available from this link : http://www.opencsw.org" ; \ # echo ""; \ @@ -221,22 +221,22 @@ # echo ""; \ # echo "--"; \ # echo "Kindest regards"; \ -# echo "upstream notification job"; } | $(GARBIN)/mail2maintainer -s '[svn] $(GARNAME) upstream update notification' $(GARNAME); \ +# echo "upstream notification job"; } | $(GARBIN)/mail2maintainer -s '[svn] $(NAME) upstream update notification' $(NAME); \ else \ if [ "$$PACKAGE_UP_TO_DATE" -eq "0" ]; then \ - echo "$(GARNAME) : Warning no files to check ! $(FILES2CHECK)" ; \ - echo "$(GARNAME) : UPSTREAM_MASTER_SITES is $(UPSTREAM_MASTER_SITES)" ; \ - echo "$(GARNAME) : DISTNAME is $(DISTNAME)" ; \ - echo "$(GARNAME) : UFILES_REGEX is : $(UFILES_REGEX)" ; \ - echo "$(GARNAME) : Please check configuration" ; \ + echo "$(NAME) : Warning no files to check ! $(FILES2CHECK)" ; \ + echo "$(NAME) : UPSTREAM_MASTER_SITES is $(UPSTREAM_MASTER_SITES)" ; \ + echo "$(NAME) : DISTNAME is $(DISTNAME)" ; \ + echo "$(NAME) : UFILES_REGEX is : $(UFILES_REGEX)" ; \ + echo "$(NAME) : Please check configuration" ; \ fi; \ fi; \ else \ - echo "$(GARNAME) : new upstream files available: $$NEW_FILES"; \ + echo "$(NAME) : new upstream files available: $$NEW_FILES"; \ { echo ""; \ - echo "Hello dear $(GARNAME) maintainer,"; \ + echo "Hello dear $(NAME) maintainer,"; \ echo ""; \ - echo "The upstream notification job has detected the availability of new files for $(GARNAME)."; \ + echo "The upstream notification job has detected the availability of new files for $(NAME)."; \ echo ""; \ echo "The following upstream file(s):"; \ echo " $$NEW_FILES"; \ @@ -250,7 +250,7 @@ echo ""; \ echo "--"; \ echo "Kindest regards"; \ - echo "upstream notification job"; } | $(GARBIN)/mail2maintainer -s '[svn] $(GARNAME) upstream update notification' $(GARNAME); \ + echo "upstream notification job"; } | $(GARBIN)/mail2maintainer -s '[svn] $(NAME) upstream update notification' $(NAME); \ fi; \ fi @@ -266,7 +266,7 @@ else \ if echo $(DISTFILES) | grep -w $$FILE >/dev/null; then \ PACKAGE_UP_TO_DATE=1; \ - echo "$(GARNAME) : Package is up-to-date. Current version is $$FILE" ; \ + echo "$(NAME) : Package is up-to-date. Current version is $$FILE" ; \ else \ NEW_FILES="$$FILE $$NEW_FILES"; \ fi; \ @@ -275,18 +275,18 @@ done; \ if test -z "$$NEW_FILES" ; then \ if [ ! -n '$(UFILES_REGEX)' ]; then \ - echo "$(GARNAME) : Warning UFILES_REGEX is not set : $(UFILES_REGEX)" ; \ + echo "$(NAME) : Warning UFILES_REGEX is not set : $(UFILES_REGEX)" ; \ else \ if [ "$$PACKAGE_UP_TO_DATE" -eq "0" ]; then \ - echo "$(GARNAME) : Warning no files to check ! $(FILES2CHECK)" ; \ - echo "$(GARNAME) : UPSTREAM_MASTER_SITES is $(UPSTREAM_MASTER_SITES)" ; \ - echo "$(GARNAME) : DISTNAME is $(DISTNAME)" ; \ - echo "$(GARNAME) : UFILES_REGEX is : $(UFILES_REGEX)" ; \ - echo "$(GARNAME) : Please check configuration" ; \ + echo "$(NAME) : Warning no files to check ! $(FILES2CHECK)" ; \ + echo "$(NAME) : UPSTREAM_MASTER_SITES is $(UPSTREAM_MASTER_SITES)" ; \ + echo "$(NAME) : DISTNAME is $(DISTNAME)" ; \ + echo "$(NAME) : UFILES_REGEX is : $(UFILES_REGEX)" ; \ + echo "$(NAME) : Please check configuration" ; \ fi; \ fi; \ else \ - echo "$(GARNAME) : new upstream files available: $$NEW_FILES"; \ + echo "$(NAME) : new upstream files available: $$NEW_FILES"; \ fi; \ fi @@ -380,7 +380,7 @@ # to supply an alternate target at their discretion git-extract-%: @echo " ===> Extracting Git Repo $(DOWNLOADDIR)/$* (Treeish: $(call GIT_TREEISH,$*))" - git --bare archive --prefix=$(GARNAME)-$(GARVERSION)/ --remote=file://$(abspath $(DOWNLOADDIR))/$*/ $(call GIT_TREEISH,$*) | gtar -xf - -C $(EXTRACTDIR) + git --bare archive --prefix=$(NAME)-$(VERSION)/ --remote=file://$(abspath $(DOWNLOADDIR))/$*/ $(call GIT_TREEISH,$*) | gtar -xf - -C $(EXTRACTDIR) @$(MAKECOOKIE) # rule to extract files with unzip @@ -768,8 +768,8 @@ # pkg-config scripts install-%-config: - mkdir -p $(STAGINGDIR)/$(GARNAME) - cp -f $(DESTDIR)$(bindir)/$*-config $(STAGINGDIR)/$(GARNAME)/ + mkdir -p $(STAGINGDIR)/$(NAME) + cp -f $(DESTDIR)$(bindir)/$*-config $(STAGINGDIR)/$(NAME)/ $(MAKECOOKIE) ###################################### Modified: csw/mgar/gar/v2/gar.mk =================================================================== --- csw/mgar/gar/v2/gar.mk 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/gar.mk 2010-12-09 03:47:03 UTC (rev 11860) @@ -15,6 +15,16 @@ $(error Your version of 'make' is too old: $(MAKE_VERSION). Please make sure you are using at least 3.81) endif +# Prepare for the GARNAME & GARVERSION to NAME & VERSION migration. While the +# recipes have not been adjusted, we will accept both variables. Once the +# adjustment has been carried out, delete these two lines and uncomment the +# deprecation errors below. +NAME ?= $(GARNAME) +VERSION ?= $(GARVERSION) + +#$(if $(GARNAME),$(error The deprecated variable 'GARNAME' is defined, please replace it with 'NAME')) +#$(if $(GARVERSION),$(error The deprecated variable 'GARVERSION' is defined, please replace it with 'VERSION')) + # $(GARDIR) is pre-set by the top-level category.mk GARBIN = $(GARDIR)/bin @@ -33,7 +43,7 @@ PARALLELMFLAGS ?= $(MFLAGS) export PARALLELMFLAGS -DISTNAME ?= $(GARNAME)-$(GARVERSION) +DISTNAME ?= $(NAME)-$(VERSION) DYNSCRIPTS = $(foreach PKG,$(SPKG_SPECS),$(foreach SCR,$(ADMSCRIPTS),$(if $(value $(PKG)_$(SCR)), $(PKG).$(SCR)))) _LOCALFILES = $(notdir $(wildcard files/*)) @@ -57,9 +67,9 @@ # For rules that do nothing, display what dependencies they # successfully completed #DONADA = @echo " [$@] complete. Finished rules: $+" -#DONADA = @touch $(COOKIEDIR)/$@; echo " [$@] complete for $(GARNAME)." +#DONADA = @touch $(COOKIEDIR)/$@; echo " [$@] complete for $(NAME)." COOKIEFILE = $(COOKIEDIR)/$(patsubst $(COOKIEDIR)/%,%,$1) -DONADA = @touch $(call COOKIEFILE,$@); echo " [$@] complete for $(GARNAME)." +DONADA = @touch $(call COOKIEFILE,$@); echo " [$@] complete for $(NAME)." # TODO: write a stub rule to print out the name of a rule when it @@ -425,8 +435,8 @@ @( if [ -d "$(WORKSRC)" ]; then \ echo ' ==> Snapshotting extracted source tree with git'; \ cd $(WORKSRC); git init; git add .; \ - git commit -m "Upstream $(GARVERSION)"; \ - git tag -am "Upstream $(GARVERSION)" upstream-$(GARVERSION); \ + git commit -m "Upstream $(VERSION)"; \ + git tag -am "Upstream $(VERSION)" upstream-$(VERSION); \ git checkout -b csw; \ fi ) @$(MAKECOOKIE) @@ -471,7 +481,7 @@ @( if [ -d "$(WORKSRC)/.git" ]; then \ echo "Tagging top of current csw patch stack..."; \ cd $(WORKSRC); \ - git tag -am "CSW $(GARVERSION)" csw-$(GARVERSION); \ + git tag -am "CSW $(VERSION)" csw-$(VERSION); \ fi ) @$(MAKECOOKIE) @@ -495,7 +505,7 @@ echo "Capturing changes..."; \ git commit $(GIT_COMMIT_OPTS) && \ ( NEXTPATCH=`git log --pretty=oneline master..HEAD | wc -l | tr -d '[[:space:]]'`; \ - git format-patch --start-number=$$NEXTPATCH csw-$(GARVERSION); \ + git format-patch --start-number=$$NEXTPATCH csw-$(VERSION); \ echo Add the following to your recipe and then; \ NEWPATCHES=`echo 00*-*patch`; \ FILES_PATCHES=`for p in $$NEWPATCHES; do echo files/$$p; done`; \ Modified: csw/mgar/gar/v2/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2/gar.pkg.mk 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/gar.pkg.mk 2010-12-09 03:47:03 UTC (rev 11860) @@ -22,8 +22,8 @@ PKGINFO ?= /usr/bin/pkginfo # You can use either PACKAGES with dynamic gspec-files or explicitly add gspec-files to DISTFILES. -# Do "PACKAGES = CSWmypkg" when you build a package whose GARNAME is not the package name. -# If no explicit gspec-files have been defined the default name for the package is CSW$(GARNAME). +# Do "PACKAGES = CSWmypkg" when you build a package whose NAME is not the package name. +# If no explicit gspec-files have been defined the default name for the package is CSW$(NAME). # The whole processing is done from _PKG_SPECS, which includes all packages to be build. # SRCPACKAGE_BASE is the name of the package containing the sourcefiles for all packages @@ -31,8 +31,8 @@ # SRCPACKAGE is the name of the package containing the sources ifeq ($(origin PACKAGES), undefined) -PACKAGES = $(if $(filter %.gspec,$(DISTFILES)),,CSW$(GARNAME)) -CATALOGNAME ?= $(if $(filter %.gspec,$(DISTFILES)),,$(GARNAME)) +PACKAGES = $(if $(filter %.gspec,$(DISTFILES)),,CSW$(NAME)) +CATALOGNAME ?= $(if $(filter %.gspec,$(DISTFILES)),,$(NAME)) SRCPACKAGE_BASE = $(firstword $(basename $(filter %.gspec,$(DISTFILES))) $(PACKAGES)) SRCPACKAGE ?= $(SRCPACKAGE_BASE)-src SPKG_SPECS ?= $(basename $(filter %.gspec,$(DISTFILES))) $(PACKAGES) $(if $(NOSOURCEPACKAGE),,$(SRCPACKAGE)) @@ -78,7 +78,7 @@ _PKG_SPECS = $(filter-out $(NOPACKAGE),$(SPKG_SPECS)) -BUNDLE ?= $(GARNAME) +BUNDLE ?= $(NAME) # pkgname - Get the name of a package from a gspec-name or package-name # @@ -150,7 +150,7 @@ SPKG_DESC ?= $(DESCRIPTION) -SPKG_VERSION ?= $(GARVERSION) +SPKG_VERSION ?= $(VERSION) SPKG_CATEGORY ?= application SPKG_SOURCEURL ?= $(firstword $(VENDOR_URL) \ $(if $(filter $(GNU_MIRROR),$(MASTER_SITES)),http://www.gnu.org/software/$(GNU_PROJ)) \ @@ -248,7 +248,7 @@ # Where we find our mkpackage global templates PKGLIB = $(GARDIR)/pkglib -PKG_EXPORTS = GARNAME GARVERSION DESCRIPTION CATEGORIES GARCH GARDIR GARBIN +PKG_EXPORTS = NAME VERSION DESCRIPTION CATEGORIES GARCH GARDIR GARBIN PKG_EXPORTS += CURDIR WORKDIR WORKDIR_FIRSTMOD WORKSRC WORKSRC_FIRSTMOD PKGROOT PKG_EXPORTS += SPKG_REVSTAMP SPKG_PKGNAME SPKG_DESC SPKG_VERSION SPKG_CATEGORY PKG_EXPORTS += SPKG_VENDOR SPKG_EMAIL SPKG_PSTAMP SPKG_BASEDIR SPKG_CLASSES @@ -484,7 +484,7 @@ # Dynamic gspec-files are constructed as follows: # - Packages using dynamic gspec-files must be listed in PACKAGES # - There is a default of PACKAGES containing one packages named CSW -# followed by the GARNAME. It can be changed by setting PACKAGES explicitly. +# followed by the NAME. It can be changed by setting PACKAGES explicitly. # - The name of the generated package is always the same as listed in PACKAGES # - The catalog name defaults to the suffix following CSW of the package name, # but can be customized by setting CATALOGNAME_ = @@ -930,13 +930,13 @@ submitpkg-%: @$(if $(filter $(call _REVISION),UNCOMMITTED NOTVERSIONED NOSVN),\ $(error You have local files not in the repository. Please commit everything before submitting a package)) - $(SVN) -m "$(GARNAME): Tag as release $(SPKG_VERSION),$(SPKG_REVSTAMP)$(if $(filter default,$*),, for project '$*')" cp $(_PKGURL)/trunk $(_PKGURL)/tags/$(if $(filter default,$*),,$*_)$(GARNAME)-$(SPKG_VERSION),$(SPKG_REVSTAMP) + $(SVN) -m "$(NAME): Tag as release $(SPKG_VERSION),$(SPKG_REVSTAMP)$(if $(filter default,$*),, for project '$*')" cp $(_PKGURL)/trunk $(_PKGURL)/tags/$(if $(filter default,$*),,$*_)$(NAME)-$(SPKG_VERSION),$(SPKG_REVSTAMP) # dependb - update the dependency database # dependb: @dependb --db $(SPKG_DEPEND_DB) \ - --parent $(CATEGORIES)/$(GARNAME) \ + --parent $(CATEGORIES)/$(NAME) \ --add $(DEPENDS) # pkgenv - dump the packaging environment Modified: csw/mgar/gar/v2/gar.svn.mk =================================================================== --- csw/mgar/gar/v2/gar.svn.mk 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/gar.svn.mk 2010-12-09 03:47:03 UTC (rev 11860) @@ -27,6 +27,6 @@ $(GARDIR)/bin/svnignore work cookies download scm-tag-release: - $(SVN) cp ../trunk ../tags/$(GARNAME)-$(GARVERSION)$(SPKG_REVSTAMP) + $(SVN) cp ../trunk ../tags/$(NAME)-$(VERSION)$(SPKG_REVSTAMP) .PHONY: scm-help scm-update-all scm-update-package scm-update-gar scm-update-ignores scm-tag-release Modified: csw/mgar/gar/v2/lib/python/gartest.py =================================================================== --- csw/mgar/gar/v2/lib/python/gartest.py 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/lib/python/gartest.py 2010-12-09 03:47:03 UTC (rev 11860) @@ -120,13 +120,13 @@ os.mkdir(self.filedir) self.install_files = [] self.garvars = { - "GARNAME": "testbuild", + "NAME": "testbuild", "DESCRIPTION": u"A test package from %s" % self, "CATEGORIES": "lib", "CONFIGURE_ARGS": "$(DIRPATHS)", "SPKG_SOURCEURL": "http://www.opencsw.org/", "MASTER_SITES": "", - "GARVERSION": "0.0.1", + "VERSION": "0.0.1", "CONFIGURE_SCRIPTS": "", "BUILD_SCRIPTS": "", "TEST_SCRIPTS": "", Modified: csw/mgar/gar/v2/pkglib/Makefile =================================================================== --- csw/mgar/gar/v2/pkglib/Makefile 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/pkglib/Makefile 2010-12-09 03:47:03 UTC (rev 11860) @@ -1,5 +1,5 @@ -GARNAME = csw -GARVERSION = 1.0 +NAME = csw +VERSION = 1.0 CATEGORIES = none DESCRIPTION = CSW static include files for Solaris packaging. Modified: csw/mgar/gar/v2/tests/example_test.py =================================================================== --- csw/mgar/gar/v2/tests/example_test.py 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/tests/example_test.py 2010-12-09 03:47:03 UTC (rev 11860) @@ -10,9 +10,9 @@ """An example end-to-end test of GAR.""" def testPkginfoName(self): - """Checks that the GARNAME makes it to the NAME in pkginfo.""" + """Checks that the NAME makes it to the NAME in pkginfo.""" mybuild = gartest.DynamicGarBuild() - mybuild.SetGarVariable("GARNAME", "foo") + mybuild.SetGarVariable("NAME", "foo") mybuild.AddInstallFile("/opt/csw/share/foo", "bar!\n") mybuild.WriteGarFiles() self.assertEquals(0, mybuild.Build()) Modified: csw/mgar/gar/v2/tests/overrides_test.py =================================================================== --- csw/mgar/gar/v2/tests/overrides_test.py 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/tests/overrides_test.py 2010-12-09 03:47:03 UTC (rev 11860) @@ -13,7 +13,7 @@ def testOneOverride(self): """Checks that CHECKPKG_OVERRIDES variable creates an override.""" mybuild = gartest.DynamicGarBuild() - mybuild.SetGarVariable("GARNAME", "overrides-test") + mybuild.SetGarVariable("NAME", "overrides-test") mybuild.SetGarVariable("CATALOGNAME", "overrides_test") mybuild.SetGarVariable("CHECKPKG_OVERRIDES", "example-tag|example-parameter") @@ -33,7 +33,7 @@ def testTwoOverriders(self): """Checks that CHECKPKG_OVERRIDES variable creates overrides.""" mybuild = gartest.DynamicGarBuild() - mybuild.SetGarVariable("GARNAME", "overrides-test") + mybuild.SetGarVariable("NAME", "overrides-test") mybuild.SetGarVariable("CATALOGNAME", "overrides_test") mybuild.SetGarVariable( "CHECKPKG_OVERRIDES", @@ -58,7 +58,7 @@ # """http://sourceforge.net/apps/trac/gar/ticket/17""" # overr_file_1 = "/opt/csw/share/checkpkg/overrides/overrides_test_1" # mybuild = gartest.DynamicGarBuild() -# mybuild.SetGarVariable("GARNAME", "overrides-test") +# mybuild.SetGarVariable("NAME", "overrides-test") # mybuild.SetGarVariable("PACKAGES", "CSWoverrides-test-1 " # "CSWoverrides-test-2") # mybuild.SetGarVariable("CATALOGNAME_CSWoverrides-test-1", Modified: csw/mgar/gar/v2/tests/static/example/Makefile =================================================================== --- csw/mgar/gar/v2/tests/static/example/Makefile 2010-12-09 03:29:48 UTC (rev 11859) +++ csw/mgar/gar/v2/tests/static/example/Makefile 2010-12-09 03:47:03 UTC (rev 11860) @@ -2,8 +2,8 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ -GARNAME = loose-files -GARVERSION = 1.0 +NAME = loose-files +VERSION = 1.0 CATEGORIES = utils DESCRIPTION = An example of a package created from loose files. define BLURB This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 22:26:25 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 21:26:25 +0000 Subject: [csw-devel] SF.net SVN: gar:[11861] csw/mgar/pkg/synergy/trunk Message-ID: Revision: 11861 http://gar.svn.sourceforge.net/gar/?rev=11861&view=rev Author: skayser Date: 2010-12-09 21:26:25 +0000 (Thu, 09 Dec 2010) Log Message: ----------- synergy: work towards 1.3.4 Modified Paths: -------------- csw/mgar/pkg/synergy/trunk/Makefile csw/mgar/pkg/synergy/trunk/checksums Modified: csw/mgar/pkg/synergy/trunk/Makefile =================================================================== --- csw/mgar/pkg/synergy/trunk/Makefile 2010-12-09 03:47:03 UTC (rev 11860) +++ csw/mgar/pkg/synergy/trunk/Makefile 2010-12-09 21:26:25 UTC (rev 11861) @@ -1,5 +1,17 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! Doesn't yet build +# "../../lib/server/CConfig.h", line 145: Error: "," expected instead of "<". +# "../../lib/server/CConfig.h", line 145: Error: Use ";" to terminate declarations. +# "../../lib/server/CConfig.h", line 145: Error: "}" expected instead of "<". +# "../../lib/server/CConfig.h", line 145: Error: Use ";" to terminate declarations. +# "../../lib/server/CConfig.h", line 145: Error: A declaration was expected instead of "<". +# "../../lib/server/CConfig.h", line 145: Warning: declarator required in declaration. +# "../../lib/server/CConfig.h", line 145: Error: Use ";" to terminate declarations. +# "../../lib/server/CConfig.h", line 145: Error: A declaration was expected instead of ">" +# GARNAME = synergy -GARVERSION = 1.3.1 +GARVERSION = 1.3.4 CATEGORIES = apps DESCRIPTION = Software-based TCP/IP "KVM" switch @@ -10,54 +22,50 @@ on their desk since each system uses its own monitor(s). endef -SPKG_SOURCEURL = http://synergy2.sourceforge.net/ +VENDOR_URL = http://synergy-foss.org/ +MASTER_SITES = $(GOOGLE_MIRROR) +GOOGLE_PROJECT = synergy-plus +DISTFILES = synergy-plus-$(GARVERSION).tar.gz +DISTNAME = synergy-plus-$(GARVERSION) -MASTER_SITES = $(SF_MIRRORS) -SF_PROJ = $(GARNAME)2 -DISTFILES = synergy-$(GARVERSION).tar.gz -DISTFILES += $(call admfiles,CSWsynergy) - # We define upstream file regex so we can be notifed of new upstream software release -UPSTREAM_MASTER_SITES = $(SF_PROJECT_SHOWFILE)=59275 -UPSTREAM_USE_SF = 1 -UFILES_REGEX = (\d+(?:\.\d+)*) +UPSTREAM_MASTER_SITES = http://synergy-foss.org/pm/projects/synergy/tabs/download +UFILES_REGEX = synergy-plus-(\d+(?:\.\d+)*).tar.gz +# Was required with synergy 1.3.1, still required? # Adjust code so that it compiles with Sun Studio Compiler # https://sourceforge.net/tracker/index.php?func=detail&aid=1574331&group_id=59275&atid=490469 -PATCHFILES = suncc.diff +#PATCHFILES = suncc.diff +# Was required with synergy 1.3.1, still required? # Adjust configure.in to properly use --x-libraries option # http://sf.net/tracker/index.php?func=detail&aid=2359359&group_id=59275&atid=490469 -PATCHFILES += link-xlibs.diff +#PATCHFILES += link-xlibs.diff CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += --sysconfdir=/etc/opt/csw CONFIGURE_ARGS += --x-includes=/usr/openwin/include CONFIGURE_ARGS += --x-libraries=/usr/openwin/lib TEST_SCRIPTS = -# fix missing user write permissions -post-extract: - @chmod -R u+w $(WORKSRC) - @$(MAKECOOKIE) +#pre-configure: +# cd $(WORKSRC) && autoreconf +# @$(MAKECOOKIE) -pre-configure: - cd $(WORKSRC) && autoreconf - @$(MAKECOOKIE) - post-install: - @ginstall -d $(DESTDIR)$(sysconfdir) - @ginstall -d $(DESTDIR)$(docdir)/$(GARNAME)/images - @ginstall -m 644 \ + ginstall -d $(DESTDIR)$(sysconfdir) + ginstall -d $(DESTDIR)$(docdir)/$(GARNAME)/images + ginstall -m 644 \ $(WORKSRC)/examples/synergy.conf \ $(DESTDIR)$(sysconfdir)/synergy.conf.example - @ginstall -m 644 \ + ginstall -m 644 \ $(WORKSRC)/README \ $(WORKSRC)/AUTHORS \ $(WORKSRC)/NEWS \ $(WORKSRC)/doc/*.html \ $(DESTDIR)$(docdir)/$(GARNAME) - @ginstall -m 644 \ + ginstall -m 644 \ $(WORKSRC)/doc/images/* \ $(DESTDIR)$(docdir)/$(GARNAME)/images @$(MAKECOOKIE) Modified: csw/mgar/pkg/synergy/trunk/checksums =================================================================== --- csw/mgar/pkg/synergy/trunk/checksums 2010-12-09 03:47:03 UTC (rev 11860) +++ csw/mgar/pkg/synergy/trunk/checksums 2010-12-09 21:26:25 UTC (rev 11861) @@ -1,4 +1 @@ -a6e09d6b71cb217f23069980060abf27 download/synergy-1.3.1.tar.gz -8ee797c256fbfdd223d1647dcab454a0 download/CSWsynergy.gspec -aa4510eb9fbc50674aa20395f772b1c0 download/suncc.diff -4d57febac6efdffb43d9edc9a3a9c2d4 download/link-xlibs.diff +2c565afe5f920d363eef38dd97449b73 synergy-plus-1.3.4.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 22:28:30 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 21:28:30 +0000 Subject: [csw-devel] SF.net SVN: gar:[11862] csw/mgar/pkg/bvi/trunk/Makefile Message-ID: Revision: 11862 http://gar.svn.sourceforge.net/gar/?rev=11862&view=rev Author: skayser Date: 2010-12-09 21:28:30 +0000 (Thu, 09 Dec 2010) Log Message: ----------- bvi: cosmetic tweaks Modified Paths: -------------- csw/mgar/pkg/bvi/trunk/Makefile Modified: csw/mgar/pkg/bvi/trunk/Makefile =================================================================== --- csw/mgar/pkg/bvi/trunk/Makefile 2010-12-09 21:26:25 UTC (rev 11861) +++ csw/mgar/pkg/bvi/trunk/Makefile 2010-12-09 21:28:30 UTC (rev 11862) @@ -4,13 +4,15 @@ DESCRIPTION = A vi-like binary file (hex) editor define BLURB - Long description + The bvi is a display-oriented editor for binary files, based on the vi + texteditor. If you are familiar with vi, just start the editor and begin + to edit! A bmore program is also included in the package. If you never + heard about vi, maybe bvi is not the best choice for you. endef +VENDOR_URL = http://bvi.sourceforge.net/ MASTER_SITES = $(SF_MIRRORS) -DISTFILES = $(GARNAME)-$(GARVERSION).src.tar.gz - -# We define upstream file regex so we can be notifed of new upstream software release +DISTFILES = $(GARNAME)-$(GARVERSION).src.tar.gz UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).src.tar.gz UPSTREAM_MASTER_SITES = http://sourceforge.net/projects/bvi/files/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 22:32:12 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 21:32:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[11863] csw/mgar/pkg/xterm/trunk Message-ID: Revision: 11863 http://gar.svn.sourceforge.net/gar/?rev=11863&view=rev Author: skayser Date: 2010-12-09 21:32:12 +0000 (Thu, 09 Dec 2010) Log Message: ----------- xterm: bump to 267 Modified Paths: -------------- csw/mgar/pkg/xterm/trunk/Makefile csw/mgar/pkg/xterm/trunk/checksums csw/mgar/pkg/xterm/trunk/files/changelog.CSW Modified: csw/mgar/pkg/xterm/trunk/Makefile =================================================================== --- csw/mgar/pkg/xterm/trunk/Makefile 2010-12-09 21:28:30 UTC (rev 11862) +++ csw/mgar/pkg/xterm/trunk/Makefile 2010-12-09 21:32:12 UTC (rev 11863) @@ -1,6 +1,6 @@ # TODO (release-critical prefixed with !, non release-critical with *) GARNAME = xterm -GARVERSION = 260 +GARVERSION = 267 CATEGORIES = apps DESCRIPTION = Terminal emulator for the X Window System Modified: csw/mgar/pkg/xterm/trunk/checksums =================================================================== --- csw/mgar/pkg/xterm/trunk/checksums 2010-12-09 21:28:30 UTC (rev 11862) +++ csw/mgar/pkg/xterm/trunk/checksums 2010-12-09 21:32:12 UTC (rev 11863) @@ -1,2 +1 @@ -d028c88c07ae91b8367ee76cdcb16cc8 COPYING -1db28bd91f66278b836162e960ad4e22 xterm-260.tgz +bb53ddd4933736a50e6391cef3472c12 xterm-266.tgz Modified: csw/mgar/pkg/xterm/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/xterm/trunk/files/changelog.CSW 2010-12-09 21:28:30 UTC (rev 11862) +++ csw/mgar/pkg/xterm/trunk/files/changelog.CSW 2010-12-09 21:32:12 UTC (rev 11863) @@ -1,3 +1,9 @@ +xterm (267,REV=2010.12.09) + + * Updated to 267. (Fixes #4582) + + -- Sebastian Kayser Thu, 9 Dec 2010 22:29:55 +0100 + xterm (260,REV=2010.07.08) * Updated to 260. (Fixes #4473) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Thu Dec 9 22:38:27 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Thu, 09 Dec 2010 21:38:27 +0000 Subject: [csw-devel] SF.net SVN: gar:[11864] csw/mgar/pkg/freeradius/trunk/Makefile Message-ID: Revision: 11864 http://gar.svn.sourceforge.net/gar/?rev=11864&view=rev Author: gadavis Date: 2010-12-09 21:38:27 +0000 (Thu, 09 Dec 2010) Log Message: ----------- clean up the default configuration files some more Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-09 21:32:12 UTC (rev 11863) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-09 21:38:27 UTC (rev 11864) @@ -35,6 +35,8 @@ # move all of the var stuff to /var/opt/csw localstatedir = /var$(prefix) + +## Configuration directory PRESERVECONF += $(raddbdir)/.*\.conf PRESERVECONF += $(raddbdir)/acct_users PRESERVECONF += $(raddbdir)/attrs.* @@ -48,7 +50,27 @@ PRESERVECONF += $(raddbdir)/preproxy_users PRESERVECONF += $(raddbdir)/sql/.*/.*\.conf PRESERVECONF += $(raddbdir)/users +PRESERVECONF += $(raddbdir)/sites-available/buffered-sql +PRESERVECONF += $(raddbdir)/sites-available/coa +PRESERVECONF += $(raddbdir)/sites-available/control-socket +PRESERVECONF += $(raddbdir)/sites-available/copy-acct-to-home-server +PRESERVECONF += $(raddbdir)/sites-available/decoupled-accounting +PRESERVECONF += $(raddbdir)/sites-available/default +PRESERVECONF += $(raddbdir)/sites-available/dhcp +PRESERVECONF += $(raddbdir)/sites-available/dynamic-clients +PRESERVECONF += $(raddbdir)/sites-available/example +PRESERVECONF += $(raddbdir)/sites-available/inter-tunnel +PRESERVECONF += $(raddbdir)/sites-available/originate-coa +PRESERVECONF += $(raddbdir)/sites-available/proxy-inner-tunnel +PRESERVECONF += $(raddbdir)/sites-available/robust-proxy-accounting +PRESERVECONF += $(raddbdir)/sites-available/status +PRESERVECONF += $(raddbdir)/sites-available/virtual.example.com +PRESERVECONF += $(raddbdir)/sites-available/vmps +## Additional Config cleanups +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/sites-enabled/control-socket +EXTRA_MERGE_EXCLUDE_FILES += $(raddbdir)/sites-enabled/inner-tunnel + CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += CC=$(CC) CXX=$(CXX) F77=$(F77) FC=$(FC) CONFIGURE_ARGS += CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 22:44:16 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 21:44:16 +0000 Subject: [csw-devel] SF.net SVN: gar:[11865] csw/mgar/pkg/xterm/trunk/checksums Message-ID: Revision: 11865 http://gar.svn.sourceforge.net/gar/?rev=11865&view=rev Author: skayser Date: 2010-12-09 21:44:16 +0000 (Thu, 09 Dec 2010) Log Message: ----------- xterm: bump to 267 (checksums) Modified Paths: -------------- csw/mgar/pkg/xterm/trunk/checksums Modified: csw/mgar/pkg/xterm/trunk/checksums =================================================================== --- csw/mgar/pkg/xterm/trunk/checksums 2010-12-09 21:38:27 UTC (rev 11864) +++ csw/mgar/pkg/xterm/trunk/checksums 2010-12-09 21:44:16 UTC (rev 11865) @@ -1 +1 @@ -bb53ddd4933736a50e6391cef3472c12 xterm-266.tgz +3945ab70cfa2a9e95804157ee1b0f8e8 xterm-267.tgz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 23:11:16 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 22:11:16 +0000 Subject: [csw-devel] SF.net SVN: gar:[11866] csw/mgar/pkg/spine/trunk Message-ID: Revision: 11866 http://gar.svn.sourceforge.net/gar/?rev=11866&view=rev Author: skayser Date: 2010-12-09 22:11:16 +0000 (Thu, 09 Dec 2010) Log Message: ----------- spine: commit work in progress, mainly cleanups, feel free to take over Modified Paths: -------------- csw/mgar/pkg/spine/trunk/Makefile Removed Paths: ------------- csw/mgar/pkg/spine/trunk/files/CSWspine.prototype Modified: csw/mgar/pkg/spine/trunk/Makefile =================================================================== --- csw/mgar/pkg/spine/trunk/Makefile 2010-12-09 21:44:16 UTC (rev 11865) +++ csw/mgar/pkg/spine/trunk/Makefile 2010-12-09 22:11:16 UTC (rev 11866) @@ -1,19 +1,33 @@ -#GARNAME = cacti-spine +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! Convert postinstall to POSTMSG +# ! Test that the package is actually working +# ! Check the user handling (cswusergroup file exists, but not used?!) +# * Document and merge patches, ./configure LD* hack really required?! +# * libtool hack really required? +# GARNAME = spine GARVERSION = 0.8.7e CATEGORIES = apps -DESCRIPTION = very fast poller for cacti +DESCRIPTION = Very fast poller for cacti define BLURB - Spine, formally Cactid, is a poller for Cacti that primarily strives to be as fast as possible. For this reason it is written in native C, makes use of POSIX threads, and is linked directly against the net-snmp library for minmumal SNMP polling overhead. Spine is a replacement for the default cmd.php poller so you must decide if using Spine makes sense for your installation. + Spine, formally Cactid, is a poller for Cacti that primarily strives + to be as fast as possible. For this reason it is written in native C, + makes use of POSIX threads, and is linked directly against the net-snmp + library for minmumal SNMP polling overhead. Spine is a replacement for + the default cmd.php poller so you must decide if using Spine makes sense + for your installation. endef +VENDOR_URL = http://www.cacti.net/ MASTER_SITES = http://www.cacti.net/downloads/spine/ -#DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz -DISTFILES = cacti-$(GARNAME)-$(GARVERSION).tar.gz -DISTFILES += cswusergroup CSWspine.postinstall CSWspine.prototype -DISTNAME = cacti-$(GARNAME)-$(GARVERSION) +DISTFILES = cacti-$(GARNAME)-$(GARVERSION).tar.gz +DISTFILES += cswusergroup CSWspine.postinstall +WORKSRC = $(WORKDIR)/cacti-$(GARNAME)-$(GARVERSION) +LICENSE = LICENSE + PATCHFILES += configure.diff PATCHFILES += spine.h.diff PATCHFILES += util.c.diff @@ -21,56 +35,52 @@ NOISALIST = 1 -CATALOGNAME = spine +RUNTIME_DEP_PKGS += CSWmysql5rt +RUNTIME_DEP_PKGS += CSWnetsnmp +RUNTIME_DEP_PKGS += CSWosslrt +RUNTIME_DEP_PKGS += CSWzlib -# We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = -(\d+(?:\.\d+)*).tar.gz - -# If the url used to check for software update is different of MASTER_SITES, then -# uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES -# UPSTREAM_MASTER_SITES = - -RUNTIME_DEP_PKGS = CSWmysql5rt CSWnetsnmp CSWosslrt CSWzlib CSWcswclassutils - -SPKG_CLASSES = none cswpreserveconf - -CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += --with-mysql=/opt/csw/mysql5 CONFIGURE_ARGS += --with-snmp=/opt/csw/include/net-snmp +EXTRA_LIB = /opt/csw/mysql5/lib/mysql +CONFIGURE_SCRIPTS = custom INSTALL_SCRIPTS = custom +# Spine doesn't come with a test suite SKIPTEST = 1 -EXTRA_LIB += /opt/csw/mysql5/lib/mysql +sysconfdir = /etc/opt/csw +PRESERVECONF = $(sysconfdir)/spine.conf -DOCDEST = $(DESTDIR)$(BUILD_PREFIX)/share/doc/spine -BINDIR = $(DESTDIR)$(BUILD_PREFIX)/bin -CFGDIR = $(DESTDIR)/etc$(BUILD_PREFIX) - include gar/category.mk -pre-configure-modulated: - @echo " ==> Pre-configure in $(WORKSRC)" - @rm $(WORKSRC)/config/ltmain.sh - @rm $(WORKSRC)/config/config.sub - @rm $(WORKSRC)/config/config.guess - @ln -s /opt/csw/share/libtool/config/ltmain.sh $(WORKSRC)/config/ltmain.sh - @ln -s /opt/csw/share/libtool/config/config.sub $(WORKSRC)/config/config.sub - @ln -s /opt/csw/share/libtool/config/config.guess $(WORKSRC)/config/config.guess +configure-custom: + @echo " ==> Configuring in $(WORKSRC)" + rm $(WORKSRC)/config/ltmain.sh + rm $(WORKSRC)/config/config.sub + rm $(WORKSRC)/config/config.guess + ln -s /opt/csw/share/libtool/config/ltmain.sh $(WORKSRC)/config/ltmain.sh + ln -s /opt/csw/share/libtool/config/config.sub $(WORKSRC)/config/config.sub + ln -s /opt/csw/share/libtool/config/config.guess $(WORKSRC)/config/config.guess + ( cd $(WORKSRC) ; ./configure $(CONFIGURE_ARGS) ) @$(MAKECOOKIE) +install-custom: BINDIR = $(DESTDIR)$(bindir) +install-custom: CFGDIR = $(DESTDIR)$(sysconfdir) +install-custom: DOCDEST = $(DESTDIR)$(docdir)/spine install-custom: - @ginstall -d $(DOCDEST) - @ginstall -m 644 $(WORKSRC)/LICENSE $(DOCDEST) - @ginstall -m 644 $(WORKSRC)/README $(DOCDEST) - @ginstall -m 644 $(WORKSRC)/README-WINDOWS $(DOCDEST) - @ginstall -m 644 $(WORKSRC)/INSTALL $(DOCDEST) - @ginstall -m 644 $(WORKSRC)/LICENSE.LGPL $(DOCDEST) - @ginstall -m 644 $(WORKSRC)/COPYING $(DOCDEST) - @ginstall -m 644 $(WORKSRC)/ChangeLog $(DOCDEST) - @ginstall -d $(BINDIR) - @ginstall -m 755 $(WORKSRC)/spine $(BINDIR) - @ginstall -d $(CFGDIR) - @ginstall -m 644 $(WORKSRC)/spine.conf $(CFGDIR)/spine.conf.CSW + ginstall -d $(DOCDEST) + ginstall -m 644 $(WORKSRC)/LICENSE $(DOCDEST) + ginstall -m 644 $(WORKSRC)/README $(DOCDEST) + ginstall -m 644 $(WORKSRC)/README-WINDOWS $(DOCDEST) + ginstall -m 644 $(WORKSRC)/INSTALL $(DOCDEST) + ginstall -m 644 $(WORKSRC)/LICENSE.LGPL $(DOCDEST) + ginstall -m 644 $(WORKSRC)/COPYING $(DOCDEST) + ginstall -m 644 $(WORKSRC)/ChangeLog $(DOCDEST) + ginstall -d $(BINDIR) + ginstall -m 755 $(WORKSRC)/spine $(BINDIR) + ginstall -d $(CFGDIR) + ginstall -m 644 $(WORKSRC)/spine.conf $(CFGDIR)/spine.conf @$(MAKECOOKIE) Deleted: csw/mgar/pkg/spine/trunk/files/CSWspine.prototype =================================================================== --- csw/mgar/pkg/spine/trunk/files/CSWspine.prototype 2010-12-09 21:44:16 UTC (rev 11865) +++ csw/mgar/pkg/spine/trunk/files/CSWspine.prototype 2010-12-09 22:11:16 UTC (rev 11866) @@ -1,10 +0,0 @@ -f none /opt/csw/bin/spine 0755 root bin -f cswpreserveconf /etc/opt/csw/spine.conf.CSW 0644 root bin -d none /opt/csw/share/doc/spine 0755 root bin -f none /opt/csw/share/doc/spine/COPYING 0644 root bin -f none /opt/csw/share/doc/spine/ChangeLog 0644 root bin -f none /opt/csw/share/doc/spine/INSTALL 0644 root bin -f none /opt/csw/share/doc/spine/LICENSE 0644 root bin -f none /opt/csw/share/doc/spine/LICENSE.LGPL 0644 root bin -f none /opt/csw/share/doc/spine/README 0644 root bin -f none /opt/csw/share/doc/spine/README-WINDOWS 0644 root bin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 23:13:44 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 22:13:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[11867] csw/mgar/pkg/autossh/trunk/Makefile Message-ID: Revision: 11867 http://gar.svn.sourceforge.net/gar/?rev=11867&view=rev Author: skayser Date: 2010-12-09 22:13:44 +0000 (Thu, 09 Dec 2010) Log Message: ----------- autossh: document known issue Modified Paths: -------------- csw/mgar/pkg/autossh/trunk/Makefile Modified: csw/mgar/pkg/autossh/trunk/Makefile =================================================================== --- csw/mgar/pkg/autossh/trunk/Makefile 2010-12-09 22:11:16 UTC (rev 11866) +++ csw/mgar/pkg/autossh/trunk/Makefile 2010-12-09 22:13:44 UTC (rev 11867) @@ -1,4 +1,6 @@ # TODO (release-critical prefixed with !, non release-critical with *) +# ! As soon as AUTOSSH_PORT is set, the invocation of autossh will +# pass wrong options to ssh. # * man page doesn't properly format on Solaris. Upstream notified on # 2009-06-24, intends to work on it, has access to his own Solaris # box. In case of a new upstream version, verify whether man page This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 23:21:14 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 22:21:14 +0000 Subject: [csw-devel] SF.net SVN: gar:[11868] csw/mgar/pkg/spine/trunk/Makefile Message-ID: Revision: 11868 http://gar.svn.sourceforge.net/gar/?rev=11868&view=rev Author: skayser Date: 2010-12-09 22:21:14 +0000 (Thu, 09 Dec 2010) Log Message: ----------- spine: couldn't resist, further cleanups, up for grabs ... go for it Modified Paths: -------------- csw/mgar/pkg/spine/trunk/Makefile Modified: csw/mgar/pkg/spine/trunk/Makefile =================================================================== --- csw/mgar/pkg/spine/trunk/Makefile 2010-12-09 22:13:44 UTC (rev 11867) +++ csw/mgar/pkg/spine/trunk/Makefile 2010-12-09 22:21:14 UTC (rev 11868) @@ -26,8 +26,6 @@ DISTFILES += cswusergroup CSWspine.postinstall WORKSRC = $(WORKDIR)/cacti-$(GARNAME)-$(GARVERSION) -LICENSE = LICENSE - PATCHFILES += configure.diff PATCHFILES += spine.h.diff PATCHFILES += util.c.diff @@ -54,6 +52,8 @@ sysconfdir = /etc/opt/csw PRESERVECONF = $(sysconfdir)/spine.conf +EXTRA_PAX_ARGS = '-s,ChangeLog,changelog,p' + include gar/category.mk configure-custom: @@ -67,20 +67,13 @@ ( cd $(WORKSRC) ; ./configure $(CONFIGURE_ARGS) ) @$(MAKECOOKIE) +install-custom: EXTRA_DOCS = README LICENSE LICENSE.LGPL ChangeLog install-custom: BINDIR = $(DESTDIR)$(bindir) install-custom: CFGDIR = $(DESTDIR)$(sysconfdir) install-custom: DOCDEST = $(DESTDIR)$(docdir)/spine install-custom: ginstall -d $(DOCDEST) - ginstall -m 644 $(WORKSRC)/LICENSE $(DOCDEST) - ginstall -m 644 $(WORKSRC)/README $(DOCDEST) - ginstall -m 644 $(WORKSRC)/README-WINDOWS $(DOCDEST) - ginstall -m 644 $(WORKSRC)/INSTALL $(DOCDEST) - ginstall -m 644 $(WORKSRC)/LICENSE.LGPL $(DOCDEST) - ginstall -m 644 $(WORKSRC)/COPYING $(DOCDEST) - ginstall -m 644 $(WORKSRC)/ChangeLog $(DOCDEST) - ginstall -d $(BINDIR) - ginstall -m 755 $(WORKSRC)/spine $(BINDIR) - ginstall -d $(CFGDIR) - ginstall -m 644 $(WORKSRC)/spine.conf $(CFGDIR)/spine.conf + (cd $(WORKSRC); ginstall -m 644 $(EXTRA_DOCS) $(DOCDEST)) + ginstall -Dm 755 $(WORKSRC)/spine $(BINDIR) + ginstall -Dm 644 $(WORKSRC)/spine.conf $(CFGDIR)/spine.conf @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 23:23:47 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 22:23:47 +0000 Subject: [csw-devel] SF.net SVN: gar:[11869] csw/mgar/pkg/gorilla/ Message-ID: Revision: 11869 http://gar.svn.sourceforge.net/gar/?rev=11869&view=rev Author: skayser Date: 2010-12-09 22:23:47 +0000 (Thu, 09 Dec 2010) Log Message: ----------- gorilla: remove stub, password-gorilla/ holds the real thing Removed Paths: ------------- csw/mgar/pkg/gorilla/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 23:25:18 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 22:25:18 +0000 Subject: [csw-devel] SF.net SVN: gar:[11870] csw/mgar/pkg/password-gorilla/trunk/Makefile Message-ID: Revision: 11870 http://gar.svn.sourceforge.net/gar/?rev=11870&view=rev Author: skayser Date: 2010-12-09 22:25:17 +0000 (Thu, 09 Dec 2010) Log Message: ----------- password-gorilla: document known packaging issue Modified Paths: -------------- csw/mgar/pkg/password-gorilla/trunk/Makefile Modified: csw/mgar/pkg/password-gorilla/trunk/Makefile =================================================================== --- csw/mgar/pkg/password-gorilla/trunk/Makefile 2010-12-09 22:23:47 UTC (rev 11869) +++ csw/mgar/pkg/password-gorilla/trunk/Makefile 2010-12-09 22:25:17 UTC (rev 11870) @@ -1,3 +1,9 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! Requires http://incrtcl.sourceforge.net/itcl/ (running password-gorilla +# currently fails with "The Password Gorilla requires the [incr Tcl] add-on +# to Tcl. Please install the [incr Tcl] package." +# GARNAME = password-gorilla GARVERSION = 1.4 CATEGORIES = apps This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 23:26:38 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 22:26:38 +0000 Subject: [csw-devel] SF.net SVN: gar:[11871] csw/mgar/pkg/ccache/trunk/Makefile Message-ID: Revision: 11871 http://gar.svn.sourceforge.net/gar/?rev=11871&view=rev Author: skayser Date: 2010-12-09 22:26:38 +0000 (Thu, 09 Dec 2010) Log Message: ----------- ccache: fix test.sh invocation environment Modified Paths: -------------- csw/mgar/pkg/ccache/trunk/Makefile Modified: csw/mgar/pkg/ccache/trunk/Makefile =================================================================== --- csw/mgar/pkg/ccache/trunk/Makefile 2010-12-09 22:25:17 UTC (rev 11870) +++ csw/mgar/pkg/ccache/trunk/Makefile 2010-12-09 22:26:38 UTC (rev 11871) @@ -22,4 +22,8 @@ CONFIGURE_ARGS = $(DIRPATHS) EXTRA_CFLAGS = -D__EXTENSIONS__ +# Unset $PWD (which isn't changed on gmake -C) so that test.sh uses `pwd` +PWD= +TEST_EXPORTS=PWD + include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 23:28:12 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 22:28:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[11872] csw/mgar/pkg/spidermonkey/trunk/checksums Message-ID: Revision: 11872 http://gar.svn.sourceforge.net/gar/?rev=11872&view=rev Author: skayser Date: 2010-12-09 22:28:11 +0000 (Thu, 09 Dec 2010) Log Message: ----------- spidermonkey: update checksums Modified Paths: -------------- csw/mgar/pkg/spidermonkey/trunk/checksums Modified: csw/mgar/pkg/spidermonkey/trunk/checksums =================================================================== --- csw/mgar/pkg/spidermonkey/trunk/checksums 2010-12-09 22:26:38 UTC (rev 11871) +++ csw/mgar/pkg/spidermonkey/trunk/checksums 2010-12-09 22:28:11 UTC (rev 11872) @@ -1,3 +1 @@ -863bb6462f4ce535399a7c6276ae6776 download/js-1.5.tar.gz -84e0944853496c6207a776e8cafd7ef6 download/CSWspidermonkey.gspec -dfa212ef96bccd5f6ca1cb59d5e97a8c download/SunOS5.8_i86pc.mk +5571134c3863686b623ebe4e6b1f6fe6 js-1.7.0.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Thu Dec 9 23:30:12 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Thu, 09 Dec 2010 22:30:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[11873] csw/mgar/pkg/x11/Makefile Message-ID: Revision: 11873 http://gar.svn.sourceforge.net/gar/?rev=11873&view=rev Author: skayser Date: 2010-12-09 22:30:12 +0000 (Thu, 09 Dec 2010) Log Message: ----------- x11/Makefile: for newpkg-% pre-populate CATEGORIES and MASTER_SITES Modified Paths: -------------- csw/mgar/pkg/x11/Makefile Modified: csw/mgar/pkg/x11/Makefile =================================================================== --- csw/mgar/pkg/x11/Makefile 2010-12-09 22:28:11 UTC (rev 11872) +++ csw/mgar/pkg/x11/Makefile 2010-12-09 22:30:12 UTC (rev 11873) @@ -30,14 +30,14 @@ @svn mkdir $* $*/tags $*/branches $*/trunk $*/trunk/files @(echo "GARNAME = $*"; \ echo "GARVERSION = 1.0"; \ - echo "CATEGORIES = category"; \ + echo "CATEGORIES = x11"; \ echo ""; \ echo "DESCRIPTION = Brief description"; \ echo "define BLURB"; \ echo " Long description"; \ echo "endef"; \ echo ""; \ - echo "MASTER_SITES = "; \ + echo "MASTER_SITES = $$(XORG_LIB_MASTER_SITE)"; \ echo "DISTFILES = $$(GARNAME)-$$(GARVERSION).tar.gz"; \ echo ""; \ echo "# We define upstream file regex so we can be notifed of new upstream software release"; \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Thu Dec 9 23:49:30 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Thu, 09 Dec 2010 22:49:30 +0000 Subject: [csw-devel] SF.net SVN: gar:[11874] csw/mgar/pkg/freeradius/trunk/Makefile Message-ID: Revision: 11874 http://gar.svn.sourceforge.net/gar/?rev=11874&view=rev Author: gadavis Date: 2010-12-09 22:49:29 +0000 (Thu, 09 Dec 2010) Log Message: ----------- Add stupid makefile rule to clear the copy-local-files cookie Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-09 22:30:12 UTC (rev 11873) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-09 22:49:29 UTC (rev 11874) @@ -201,3 +201,9 @@ @ginstall -d $(DESTDIR)/etc/opt/csw/init.d @ginstall $(WORKDIR)/cswfreeradius $(DESTDIR)/etc/opt/csw/init.d/cswfreeradius @$(MAKECOOKIE) + +clean-local: nuke-local-cookie + +nuke-local-cookie: + @echo Removing all copy-local-files build cookies + rm -f work/*/cookies/*/copy-local-files This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Fri Dec 10 01:09:31 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Fri, 10 Dec 2010 00:09:31 +0000 Subject: [csw-devel] SF.net SVN: gar:[11875] csw/mgar/pkg/socat/trunk Message-ID: Revision: 11875 http://gar.svn.sourceforge.net/gar/?rev=11875&view=rev Author: skayser Date: 2010-12-10 00:09:31 +0000 (Fri, 10 Dec 2010) Log Message: ----------- socat: work towards 1.7.1.3 Modified Paths: -------------- csw/mgar/pkg/socat/trunk/Makefile csw/mgar/pkg/socat/trunk/checksums Added Paths: ----------- csw/mgar/pkg/socat/trunk/files/0001-Escape-nested-double-quotes.patch Modified: csw/mgar/pkg/socat/trunk/Makefile =================================================================== --- csw/mgar/pkg/socat/trunk/Makefile 2010-12-09 22:49:29 UTC (rev 11874) +++ csw/mgar/pkg/socat/trunk/Makefile 2010-12-10 00:09:31 UTC (rev 11875) @@ -1,5 +1,26 @@ +# TODO (release-critical prefixed with !, non release-critical with *) +# +# ! Why does OPENSSL_TCP4 fail? +# +# $ /opt/csw/bin/bash test.sh OPENSSL_TCP4 +# using temp directory /tmp/skayser/12533 +# test 60 OPENSSL_TCP4: openssl connect... FAILED: ./socat: +# ./socat -t 0.1 exec:'openssl s_server -accept 12021 -quiet -cert testsrv.pem' pipe & +# ./socat -t 0.1 - openssl:127.0.0.1:12021,pf=ip4,verify=0, +# 1d0 +# < test60 Fri Dec 10 00:48:32 CET 2010 31169 +# +# Client connections to listener service (pipe ^= echo) don't get an +# immediate response (seems like data is stuck or procs exiting early). +# Upon the 2nd or 3rd connection, input is usually echoed fine. +# echo foo | openssl s_client -connect localhost:12021 -quiet -no_ign_eof +# +# * Send 0001 patch upstream, if you want to be 100% accurate you could +# also ask why here strings (<<<) are used over here docs (< +Date: Tue, 26 Oct 2010 12:51:45 +0200 +Subject: [PATCH] Escape nested double quotes + +Solaris /bin/bash chokes otherwise. +--- + test.sh | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/test.sh b/test.sh +index 230d021..f438ae9 100755 +--- a/test.sh ++++ b/test.sh +@@ -9051,8 +9051,8 @@ while read PF KEYW ADDR IPPORT SCM_ENABLE SCM_RECV SCM_TYPE SCM_NAME ROOT SCM_VA + do + if [ -z "$PF" ] || [[ "$PF" == \#* ]]; then continue; fi + # +-pf="$(echo "$PF" |tr A-Z a-z)" +-proto="$(echo "$KEYW" |tr A-Z a-z)" ++pf="$(echo \"$PF\" |tr A-Z a-z)" ++proto="$(echo \"$KEYW\" |tr A-Z a-z)" + NAME=${KEYW}SCM_$SCM_TYPE + case "$TESTS" in + *%functions%*|*%$pf%*|*%dgram%*|*%udp%*|*%$proto%*|*%recv%*|*%ancillary%*|*%$ROOT%*|*%$NAME%*) +-- +1.7.3 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Fri Dec 10 02:20:21 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Fri, 10 Dec 2010 01:20:21 +0000 Subject: [csw-devel] SF.net SVN: gar:[11876] csw/mgar/pkg/cpan/ack/trunk Message-ID: Revision: 11876 http://gar.svn.sourceforge.net/gar/?rev=11876&view=rev Author: skayser Date: 2010-12-10 01:20:21 +0000 (Fri, 10 Dec 2010) Log Message: ----------- cpan/ack: version bump to 1.94 Modified Paths: -------------- csw/mgar/pkg/cpan/ack/trunk/Makefile csw/mgar/pkg/cpan/ack/trunk/checksums csw/mgar/pkg/cpan/ack/trunk/files/changelog.CSW Modified: csw/mgar/pkg/cpan/ack/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/ack/trunk/Makefile 2010-12-10 00:09:31 UTC (rev 11875) +++ csw/mgar/pkg/cpan/ack/trunk/Makefile 2010-12-10 01:20:21 UTC (rev 11876) @@ -1,5 +1,5 @@ GARNAME = ack -GARVERSION = 1.88 +GARVERSION = 1.94 CATEGORIES = cpan AUTHOR = PETDANCE @@ -20,23 +20,23 @@ # Make sure ack uses our perl, stock perl version on Sol 8 / 9 bail out post-extract-modulated: - @perl -pi -e '\ + perl -pi -e '\ s|^#!.*$$|#!/opt/csw/bin/perl| if $$. eq 1;' \ $(WORKSRC)/t/*.t - @perl -pi -e '\ + perl -pi -e '\ s|/usr/bin/env perl|/opt/csw/bin/perl|' \ $(WORKSRC)/squash @$(MAKECOOKIE) install-custom: DOCDEST = $(DESTDIR)$(docdir)/$(GARNAME) install-custom: - @ginstall -d $(DESTDIR)$(bindir) - @ginstall -d $(DESTDIR)$(mandir)/man1 - @ginstall -d $(DOCDEST) - @cp $(WORKSRC)/ack $(DESTDIR)$(bindir) - @pod2man --section=1 $(WORKSRC)/ack > $(DESTDIR)$(mandir)/man1/ack.1 - @cp $(WORKSRC)/Changes $(DOCDEST)/changelog - @cp $(FILEDIR)/changelog.CSW $(DOCDEST) + ginstall -d $(DESTDIR)$(bindir) + ginstall -d $(DESTDIR)$(mandir)/man1 + ginstall -d $(DOCDEST) + cp $(WORKSRC)/ack $(DESTDIR)$(bindir) + pod2man --section=1 $(WORKSRC)/ack > $(DESTDIR)$(mandir)/man1/ack.1 + cp $(WORKSRC)/Changes $(DOCDEST)/changelog + cp $(FILEDIR)/changelog.CSW $(DOCDEST) @$(MAKECOOKIE) pre-merge-modulated: Modified: csw/mgar/pkg/cpan/ack/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/ack/trunk/checksums 2010-12-10 00:09:31 UTC (rev 11875) +++ csw/mgar/pkg/cpan/ack/trunk/checksums 2010-12-10 01:20:21 UTC (rev 11876) @@ -1 +1 @@ -a1aad025ac94d582628ee72872d44c94 download/ack-1.88.tar.gz +dcf68e56bab0d394370fa102c7f08cb0 ack-1.94.tar.gz Modified: csw/mgar/pkg/cpan/ack/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/cpan/ack/trunk/files/changelog.CSW 2010-12-10 00:09:31 UTC (rev 11875) +++ csw/mgar/pkg/cpan/ack/trunk/files/changelog.CSW 2010-12-10 01:20:21 UTC (rev 11876) @@ -1,3 +1,9 @@ +ack (1.94,REV=2010.12.10) + + * Version bump to 1.94. + + -- Sebastian Kayser Fri, 10 Dec 2010 02:14:37 +0100 + ack (1.88,REV=2009.07.15) * Switched interpreter from /usr/bin/env perl to /opt/csw/bin/perl. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Fri Dec 10 14:01:40 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Fri, 10 Dec 2010 13:01:40 +0000 Subject: [csw-devel] SF.net SVN: gar:[11877] csw/mgar/gar/v2 Message-ID: Revision: 11877 http://gar.svn.sourceforge.net/gar/?rev=11877&view=rev Author: wahwah Date: 2010-12-10 13:01:40 +0000 (Fri, 10 Dec 2010) Log Message: ----------- comparepkg: Fixed a reference to a library Added a symlink in the v2/bin directory. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/compare_pkgs.py csw/mgar/gar/v2/lib/python/opencsw.py Added Paths: ----------- csw/mgar/gar/v2/bin/comparepkg Added: csw/mgar/gar/v2/bin/comparepkg =================================================================== --- csw/mgar/gar/v2/bin/comparepkg (rev 0) +++ csw/mgar/gar/v2/bin/comparepkg 2010-12-10 13:01:40 UTC (rev 11877) @@ -0,0 +1 @@ +link ../lib/python/compare_pkgs.py \ No newline at end of file Property changes on: csw/mgar/gar/v2/bin/comparepkg ___________________________________________________________________ Added: svn:special + * Modified: csw/mgar/gar/v2/lib/python/compare_pkgs.py =================================================================== --- csw/mgar/gar/v2/lib/python/compare_pkgs.py 2010-12-10 01:20:21 UTC (rev 11876) +++ csw/mgar/gar/v2/lib/python/compare_pkgs.py 2010-12-10 13:01:40 UTC (rev 11877) @@ -19,6 +19,7 @@ import logging import optparse import opencsw +import package USAGE = """Compares two packages with the same catalogname. @@ -56,7 +57,7 @@ pkg_dir_b = opencsw.StagingDir(options.package_dir_b) pkg_path_a = pkg_dir_a.GetLatest(options.catalog_name)[-1] pkg_path_b = pkg_dir_b.GetLatest(options.catalog_name)[-1] - pc = opencsw.PackageComparator( + pc = package.PackageComparator( pkg_path_a, pkg_path_b, permissions=options.permissions, Modified: csw/mgar/gar/v2/lib/python/opencsw.py =================================================================== --- csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-10 01:20:21 UTC (rev 11876) +++ csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-10 13:01:40 UTC (rev 11877) @@ -27,7 +27,7 @@ ARCH_i386 = "i386" ARCH_ALL = "all" ARCHITECTURES = [ARCH_SPARC, ARCH_i386, ARCH_ALL] -OS_RELS = [u"SunOS5.9", u"SunOS5.10"] +OS_RELS = [u"SunOS5.8", u"SunOS5.9", u"SunOS5.10"] MAJOR_VERSION = "major version" MINOR_VERSION = "minor version" PATCHLEVEL = "patchlevel" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Dec 10 14:48:16 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 10 Dec 2010 13:48:16 +0000 Subject: [csw-devel] SF.net SVN: gar:[11878] csw/mgar/gar/v2/gar.pkg.mk Message-ID: Revision: 11878 http://gar.svn.sourceforge.net/gar/?rev=11878&view=rev Author: dmichelsen Date: 2010-12-10 13:48:16 +0000 (Fri, 10 Dec 2010) Log Message: ----------- mGAR v2: Remove superflous directory for checkpkg/overrides as this is now 'i' type Modified Paths: -------------- csw/mgar/gar/v2/gar.pkg.mk Modified: csw/mgar/gar/v2/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2/gar.pkg.mk 2010-12-10 13:01:40 UTC (rev 11877) +++ csw/mgar/gar/v2/gar.pkg.mk 2010-12-10 13:48:16 UTC (rev 11878) @@ -708,7 +708,6 @@ merge-checkpkgoverrides-%: @echo "[ Generating checkpkg override for package $* ]" - $(_DBG)ginstall -d $(PKGROOT)/opt/csw/share/checkpkg/overrides $(_DBG)($(foreach O,$(or $(CHECKPKG_OVERRIDES_$*),$(CHECKPKG_OVERRIDES)) $(_CATEGORY_CHECKPKG_OVERRIDES),echo "$O";)) | \ perl -F'\|' -ane 'unshift @F,"$*"; $$F[0].=":"; print join(" ", at F );' \ > $(WORKDIR_GLOBAL)/checkpkg_override.$* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Fri Dec 10 17:48:59 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Fri, 10 Dec 2010 16:48:59 +0000 Subject: [csw-devel] SF.net SVN: gar:[11879] csw/mgar/gar/v2 Message-ID: Revision: 11879 http://gar.svn.sourceforge.net/gar/?rev=11879&view=rev Author: wahwah Date: 2010-12-10 16:48:58 +0000 (Fri, 10 Dec 2010) Log Message: ----------- checkpkg: File collision detection This revision introduces file collision detection in checkpkg. It also changes the database usage scenario. Instead of a private sqlite database for every user, there's one shared mysql database for everyone. Each packages is checked in the context of the whole catalog. Packages installed in the system have no influence on the checking process. The automatic database update after each package installation or removal is now gone. There is a distinction between CSW packages and other packages. It's still possible to run a private sqlite database, but the performance is currently very poor. This commit is a squashed version of multiple commits done in git. Happy package checking! Maciej Squashed commit of the following: commit 2d96a59e519fa01b1739560d958c8510735bd250 Merge: a5a5338 134cf22 Author: Maciej Blizinski Date: Fri Dec 10 17:16:09 2010 +0100 Merge branch 'local-db-mgmt' of file:///home/maciej/public_html/opencsw Conflicts: gar/v2/lib/python/opencsw.py commit 134cf22ebc317c578cd6e98b4dc8cff6a7f2ce6e Author: Maciej Blizinski Date: Fri Dec 10 13:06:43 2010 +0000 checkpkg: Automatic database management support It's running very, very slowly. The re-population procedure can easily take one hour. commit 962e61622c3061744412159f1f9ff9696f7968ec Merge: ee5fb1f 0b6dde6 Author: Maciej Blizinski Date: Fri Dec 10 09:42:20 2010 +0000 Merge branch 'collisions' into col-buildfarm There was a lot of conflicts. This is what you get if you try to use the HTTP transport for git repositories, which exports old data. You end up working against a really old code and getting a lot of code conflicts afterwards. Conflicts: gar/v2/lib/python/checkpkg.py gar/v2/lib/python/checkpkg2.py gar/v2/lib/python/checkpkg_lib.py gar/v2/lib/python/checkpkg_lib_test.py gar/v2/lib/python/checkpkg_test.py gar/v2/lib/python/common_constants.py gar/v2/lib/python/configuration.py gar/v2/lib/python/database.py gar/v2/lib/python/ldd_emul.py gar/v2/lib/python/models.py gar/v2/lib/python/package_checks.py gar/v2/lib/python/package_stats.py gar/v2/lib/python/pkgdb.py gar/v2/lib/python/system_pkgmap.py gar/v2/lib/python/system_pkgmap_test.py gar/v2/tests/run_tests.py commit 0b6dde6512739689bd6446418134e9b72d061c7f Author: Maciej Blizinski Date: Tue Dec 7 08:37:47 2010 +0000 checkpkg: Added support for sqlite connections If the configuration file is not present, it's created automatically and populated with sane defaults: using sqlite in ~/.checkpkg. commit 2a6908a04f6a1de0b1e911b6e04070c6dfb9cd28 Author: Maciej Blizinski Date: Tue Dec 7 08:36:31 2010 +0000 checkpkg: Using SunOS9.9 format in the help msg Also removed commented out option which is no longer needed. commit a5ff4289810b956d320829cd8df3d028d72dafba Author: Maciej Blizinski Date: Tue Nov 23 11:53:54 2010 +0100 mGAR v2: checkpkg, moved db connection stuff to configuration.py, started working on checkpkg runs. commit 03ca394fcfefcbec1d4a8658215a0b5f9ae3b573 Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 10:19:35 2010 +0000 mGAR v2: checkpkg, removed unused imports from checkpkg.py. commit a0c20b64e9b63dccea2244da3b421ec3d0e5be20 Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 10:10:25 2010 +0000 mGAR v2: checkpkg, created checkpkg_lib.py with the intention to empty checkpkg.py. commit b0b71585b1a86d7c5ba96887087f4fe1ba86081a Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 08:08:53 2010 +0000 mGAR v2: checkpkg, implemented GetInstalledPackages in the Catalog class. commit 3e9a26cd53b88c64d2c35f1d31e210c0484d219c Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 07:06:37 2010 +0000 mGAR v2: checkpkg: splitting off LddEmulator and SystemPkgmap to separate files. commit 0ff2904a44fd07bc2b5bfddd951474e6a1b0a4fa Author: Maciej Blizi?\197?\132ski Date: Mon Nov 22 23:23:25 2010 +0000 mGAR v2: checkpkg, checking package architecture before inserting into a catalog. commit d1a920d836d9d996efa9c62179b5787f6ba0aa32 Author: Maciej Blizi?\197?\132ski Date: Mon Nov 22 22:00:18 2010 +0000 mGAR v2: checkpkg, a registering an existing package works now. commit 3940ac5ebddb6749a30a7452c7dc6dad438cd90a Author: Maciej Blizi?\197?\132ski Date: Mon Nov 22 21:50:10 2010 +0000 mGAR v2: checkpkg, removing the super() call in SystemPkgmapMixin commit d251e74fba8effc7a6252cbc5366fba7b5174054 Author: Maciej Blizinski Date: Mon Nov 22 21:06:26 2010 +0100 mGAR v2: Removing the database classmethods, and making sure that we're returning files that belong to packages that are in catalogs (although the check is slightly redundant). commit cad7a0eb75bfc76b85646e7c9bb91a27632c06c0 Author: Maciej Blizinski Date: Mon Nov 22 11:14:44 2010 +0100 mGAR v2: checkpkg, more db refactoring, tests are passing, pkgdb needs to be fixed. commit 46da2df03e5a281a4b5ee6d8919601c690781d15 Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 18:25:00 2010 +0000 mGAR v2: checkpkg, removing a package from a catalog works now. commit c6663f06904d9f15d7c5f0f6b9cac747abd8e6fd Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 15:46:49 2010 +0000 mGAR v2: checkpkg, not allowing two packages with the same pkgname in one catalog. commit ce90fc50d3f956c695e3478a60f4d63e335c093c Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 14:46:37 2010 +0000 mGAR v2: checkpkg, checking that putting one package two times in a catalog raises an error. commit d57371da016d94b976e57ec0cf06c94c02bb643d Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 14:34:33 2010 +0000 mGAR v2: checkpkg, small unit tests cleanup. commit 1d86b191635a574f50b37e52b6c0b9e1b02610ac Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 14:26:27 2010 +0000 mGAR v2: checkpkg, querying the database for files works. commit ab0e6e80b920065f9bad5097a9697fbff9480963 Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 12:13:25 2010 +0000 mGAR v2: using #!/usr/bin/env for checkpkg_test.py commit 00d0eba622308a78f0a536d04aa87d2952d7f144 Author: Maciej Blizinski Date: Sun Nov 21 13:08:32 2010 +0100 mGAR v2: checkpkg, start of a test for retrieving pkgnames for a basename. The netzwerk lags today, moving development home. commit a0775af72c164a548411c5808f0dafaac571c27d Author: Maciej Blizinski Date: Sun Nov 21 12:44:48 2010 +0100 mGAR v2: checkpkg, registering a package with a catalog. commit cdfe61d4cf9e04c787accddbd8dfe56df696116c Author: Maciej Blizinski Date: Sat Nov 20 19:00:28 2010 +0100 mGAR v2: checkpkg, a test for inserting stats into the db. commit dd7e5f88dbb1dc35c9883ba90a32d9a3f33de7b5 Author: Maciej Blizinski Date: Sat Nov 20 18:10:58 2010 +0100 mGAR v2: checkpkg, started a database related unit tests. commit ca23f8080f0ee979a01765dfc21619ae8b525c8e Author: Maciej Blizinski Date: Sat Nov 20 11:07:37 2010 +0100 mGAR v2: checkpkg, removing the remaining korn shell code. commit 1e007cd71ef772ffa181f85829aecdf71400a160 Author: Maciej Blizinski Date: Thu Nov 18 12:32:33 2010 +0100 mGAR v2: checkpkg, insignificant change to models.py commit ee5fb1fa6d5a16b845107c4e853f7a90af4d0690 Author: Maciej Blizinski Date: Mon Dec 6 18:17:54 2010 +0100 mGAR v2: Checking packages against 'current' Defining CATALOG_RELEASE and setting it to 'current' by default. This means that packages will be checked against the current branch by default. The current branch is meant to be kept in sync with the on-disk (on-mirrors) catalogs, while 'experimental', 'unstable', 'testing' and 'stable' are to be updated with a different set of packages. commit 88df8e297f99a7904e77c54af87180177d7ca956 Merge: 49d51c7 5ad7504 Author: Maciej Blizinski Date: Wed Dec 8 10:36:53 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 49d51c75c7c28023bc805a2f5579e695a48a3963 Merge: 489957d 1d38d9d Author: Maciej Blizinski Date: Wed Dec 8 10:36:32 2010 +0100 Merge branch 'master' of file:///home/maciej/public_html/opencsw into collisions commit 1d38d9d9130ebeff1cdac2108ea02c4312624dc0 Merge: 332c204 28ccacb Author: Maciej Blizinski Date: Wed Dec 8 09:50:28 2010 +0100 Merge branch 'master' of file:///home/maciej/public_html/opencsw commit 5ad7504c053039b9b07a81ca16b36f1c3a7011d2 Merge: c5306dc 489957d Author: Maciej Blizi?\197?\132ski Date: Wed Dec 8 08:50:20 2010 +0000 Merge branch 'collisions' of ssh://login.opencsw.org/home/maciej/public_html/opencsw into collisions Conflicts: gar/v2/lib/python/package_checks.py commit 28ccacbece5b6479a5b73b29f71c176d930bb17d Merge: 918abba daaa503 Author: Maciej Blizinski Date: Wed Dec 8 09:08:34 2010 +0100 Merge branch 'master' of file:///home/maciej/public_html/opencsw commit c5306dcfc5cb0eda325a74d892576f184aca020d Author: Maciej Blizi?\197?\132ski Date: Wed Dec 8 07:54:45 2010 +0000 checkpkg: A fix for PackageStats unit test There was a change to use frozensets, unit tests needed updates. I also added a check for mtime value; the mtime field is currently null in the database, and it needs debugging. commit 489957d59ba14a1d5d89247930c29921e907e5ec Merge: 6ab061d daaa503 Author: Maciej Blizinski Date: Wed Dec 8 00:42:20 2010 +0100 Merge branch 'master' of file:///home/maciej/public_html/opencsw into collisions commit daaa50376aed243c189668c8fc0101b7b91bfda1 Author: Maciej Blizi?\197?\132ski Date: Tue Dec 7 22:51:00 2010 +0000 checkpkg: A message for an init file class check Added a message and a GAR line suggestion for the init-file-missing-cswinitsmf-class error tag. commit 6ab061db2c6ae4fe5d6fadb5f69a0b585d2e3c2e Merge: 5d004ef 08da91c Author: Maciej Blizinski Date: Tue Dec 7 14:25:44 2010 +0100 Merge branch 'master' into collisions commit 5d004ef738ef2c25b0770541808faf2405018bdf Merge: 9d343d0 a8f0add Author: Maciej Blizinski Date: Mon Dec 6 17:48:23 2010 +0100 Merge branch 'master' of file:///home/maciej/public_html/opencsw into collisions commit 76c35400eadab8a8ee4d5d999360e1a26d5c74f4 Author: Maciej Blizi?\197?\132ski Date: Sun Dec 5 23:39:11 2010 +0000 checkpkg: Profiling support in the main executable commit 8d51eb10aa5b74b1daabe9585ef7bc8ef8508eef Author: Maciej Blizi?\197?\132ski Date: Sun Dec 5 23:38:33 2010 +0000 checkpkg: Adding a missing CATALOGNAME_CSWfoo line When suggesting shared library split-offs. commit 9d343d09fa4b0f33bb2c3ff0ea0bfb0dee9780a1 Merge: 6f9cf13 e686424 Author: Maciej Blizinski Date: Mon Dec 6 00:24:06 2010 +0100 checkpkg: Using os.normpath for path sanitization Conflicts: gar/v2/lib/python/checkpkg.py commit 6f9cf137c05655c1ba4d3a17adb969087379be6b Merge: e744306 ad653d0 Author: Maciej Blizinski Date: Mon Dec 6 00:11:24 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit e744306709404652a04fa435af79e04fe9b2ed16 Author: Maciej Blizinski Date: Sun Dec 5 19:27:46 2010 +0100 checkpkg: File collisions check is working There is warning displayed if colliding files are found, it can be fixed but I'm leaving it for later. commit bd13f29160f98f3fda8d60c2b7d3e3168b5c9e40 Author: Maciej Blizinski Date: Sun Dec 5 16:50:52 2010 +0100 GAR v2: Calling checkpkg with new required options commit 573a0f0c4161286f29b467e62d2dc2b8b03cb7b3 Author: Maciej Blizi?\197?\132ski Date: Sun Dec 5 14:30:10 2010 +0000 checkpkg: A better message for the libmagic bug Displays helpful information to the user - says it's a known problem and suggests restarting the process. commit a6eabd39f6fb5c2ff46a5f1752603b9d6e57b1f2 Author: Maciej Blizinski Date: Sun Dec 5 15:24:12 2010 +0100 pkgdb: One command to import one catalog release Imports all OS releases and all catalogs. commit 3c7d0c3612692ef9fd064decdc1c0d63ade68025 Author: Maciej Blizinski Date: Sun Dec 5 14:23:45 2010 +0100 pkgdb: Started a unit test file. commit 919fe07a4d79f6c6dae8eb8d147f55d64c8025c6 Author: Maciej Blizi?\197?\132ski Date: Sun Dec 5 13:22:43 2010 +0000 pkgdb: Adding models_test.py commit f6e389d289056a85cd5b396992b008633efa7eee Author: Maciej Blizinski Date: Sun Dec 5 13:09:13 2010 +0100 pkgdb: A few fixes for the import catalog feature Tested live on the buildfarm, works. It could use some refactoring, and perhaps one more convenience function, that imports all architectures and all OS releases. commit f40b848d1de2e6444e53a07fb5711aad67b79d3a Author: Maciej Blizi?\197?\132ski Date: Sun Dec 5 10:27:41 2010 +0000 pkgdb: Syncing a single catalog from disk This convenience function allows to import a catalog state from the disk, using a catalog file, to the database. No matter what were the previous srv4-catalog assignments, it brings the catalog in the db to the state that is on disk. commit 8332605c49a5994493efb7114884973e7371a8d0 Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 16:42:13 2010 +0000 pkgdb: Added 'pkg search' command. commit ecc931ea3b17f96b45d2d076e683d5660a1f3b9a Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 16:27:47 2010 +0000 checkpkg: Unit test for ToGarFormat() commit 514e69806b4afb9ad90b92f4f95b156b2a65c290 Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 16:02:32 2010 +0000 checkpkg: The checkpkg tool passes smoke test It can be fed file names or md5_sums. Runs and displays results. commit 3e81a9d6f748ded49d1840e34e23719cc55f6669 Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 15:46:43 2010 +0000 checkpkg: Fixed a bug in system files import When linking a file with a package, all files previously associated with the package would be removed. Changed this so that only the first occurence cleans the files previously associated with the package. commit 51fcdc8d2c399b0ca7cd42eb694956382d726548 Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 13:06:20 2010 +0000 checkpkg: A unit test for CheckpkgManager2.Run() Verifies that error tags are actually inserted into the database. commit 37495c9ebdb9bcf9176195dd86dd7799f16e0b98 Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 12:46:53 2010 +0000 checkpkg: Using common_contants to check catrels It's better than a hardcoded value. commit 9dad9b1d2d8405c8fb4edd61d26ab2f79a57488c Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 07:51:35 2010 +0000 mGAR v2: checkpkg, cleaning up CheckpkgManager2 Added a method to clean up checkpkg results. Some work towards unit testing the main Run() methods. commit 09220b8c10e5e9e9283974aace90ec7f224189e6 Author: Maciej Blizi?\197?\132ski Date: Thu Dec 2 22:56:22 2010 +0000 mGAR v2: pkgdb, making initdb idempotent Not that it was a problem, but it's nicer that way. commit 4580244a7eeb2cb25b139dd548e5b5038898dd70 Author: Maciej Blizi?\197?\132ski Date: Tue Nov 30 21:05:43 2010 +0000 mGAR v2: checkpkg, skipping over missing md5 If a md5 sum was supposed to be added to the catalog, but is not in the database, print a warning and continue. commit aa061769c925e7e46bebd7435d492a6163549c69 Author: Maciej Blizinski Date: Tue Nov 30 08:32:14 2010 +0100 mGAR v2: checkpkg, calling chkpkg by full path Some hosts don't have /usr/sbin in the $PATH. commit e0879aca39279f017ecc787f05fa402f91a93ffe Author: Maciej Blizinski Date: Tue Nov 30 00:39:28 2010 +0100 mGAR v2: checkpkg, models cleanup Also, a bugfix for the pkginfo and contents streams, which may be lists, and sometimes can't be close()d. commit 918fc003772f4e3442c58e0aa7536d35b081263c Author: Maciej Blizi?\197?\132ski Date: Mon Nov 29 23:36:27 2010 +0000 mGAR v2: checkpkg, storing srv4 file size Also, a unit test for _ColectStats, which had to mock quite a lot of calls to other classes functions. Could use some cleanup. commit a83b90174cdfba999013743b2ec32841c163cb35 Author: Maciej Blizi?\197?\132ski Date: Mon Nov 29 10:54:55 2010 +0000 mGAR v2: checkpkg, a bugfix for package_stats.py Sadly, this bit of code is not unit tested. commit 904acfc689602ec1da8eb7179c5d2bb00f39a91c Author: Maciej Blizi?\197?\132ski Date: Mon Nov 29 10:49:00 2010 +0000 mGAR v2: checkpkg, not shelling out to isalist Sheling out to 'isalist' to get the list of ISAs imposed a restriction, that sparc packages could not be indexed on i386 boxes and vice-versa. This change hardcodes the isalists and allows to index packages independently of the architecture. Data structures remain to hold the isalist as part of the pickled data in the database, so each package has its own list of ISAs. commit cb83c7332d6b3221c6545c93969c7d02afb5e12c Author: Maciej Blizi?\197?\132ski Date: Sun Nov 28 22:33:06 2010 +0000 mGAR v2: checkpkg, using highest pickling format Pickling seems to be fairly memory-intensive with the data sets we have. Setting the pickling format to the highest format in the hope it'll be more efficient. commit cfdc66adb3e2ed4650d929963a589b7c0d640591 Author: Maciej Blizinski Date: Sun Nov 28 19:46:11 2010 +0100 mGAR v2: checkpkg, install/contents support Accepting a bad line in install/contents. There is a line that does not follow the spec. E-mail thread: http://lists.opencsw.org/pipermail/maintainers/2010-November/013277.html commit eea5db79dcb25c64030a2784e2842a0eb243e2c6 Author: Maciej Blizi?\197?\132ski Date: Sun Nov 28 16:37:52 2010 +0000 mGAR v2: checkpkg, importing system files into db Imports files into the database, providing idempotence. - MuteProgressBar helps with batch mode commit 3a1aa1d654aba0c09e76e04c4238925d7583dbba Author: Maciej Blizi?\197?\132ski Date: Sat Nov 27 13:08:18 2010 +0000 mGAR v2: pkgdb, implemented proper parsing and pickling of /var/sadm/install/contents. commit 4c342e8a64f4320f7ed33b2c56c42c568cc345af Author: Maciej Blizinski Date: Fri Nov 26 09:39:04 2010 +0100 mGAR v2: checkpkg, adding 'overriden' to the error tag class. commit b4729052a533c5a58c16e24558f7213e8ceef493 Author: Maciej Blizi?\197?\132ski Date: Thu Nov 25 08:40:46 2010 +0000 mGAR v2: checkpkg, added a frontend to del-from-cat. commit bde27cae59374cb0b6f0eb995ed3ebbebbdb3bdb Author: Maciej Blizinski Date: Thu Nov 25 01:37:58 2010 +0100 mGAR v2: checkpkg, pkgdb: Logging which packages are added to a catalog. commit a2edf0e211b1e41819a654c0240e55174554a1d4 Author: Maciej Blizi?\197?\132ski Date: Thu Nov 25 00:37:33 2010 +0000 mGAR v2: Moved heavy pickled data to a separate table, from Srv4FileStats to Srv4FileStatsBlob. commit 1ae31596999fb57d924b151a4d77f6236eb68bea Author: Maciej Blizi?\197?\132ski Date: Thu Nov 25 00:09:05 2010 +0000 mGAR v2: checkpkg, warning on filename vs pkginfo architecture declaration mismatch. Setting logging level to 'error' in unit tests. commit a38d6128029c84ee982703081d26e70a11e09ff7 Author: Maciej Blizi?\197?\132ski Date: Thu Nov 25 00:06:10 2010 +0000 mGAR v2: checkpkg, allowing to add a i386 package to a sparc catalog if the filename declares 'all'. commit 5f303d7d3c5a74fafe54810af509d59667d35625 Author: Maciej Blizinski Date: Wed Nov 24 18:08:04 2010 +0100 mGAR v2: Added filename_arch to the srv4_file_stats table, so I'll be able to quickly access both pkginfo and filename arch declarations. commit ce765b5856a28ae33b7bec68fc3a0022c7abfaa1 Author: Maciej Blizinski Date: Wed Nov 24 13:49:49 2010 +0100 mGAR v2: checkpkg, more verbose logging when importing packages. commit f92bd6603b742f36dce6952fbfbeeeb1cc73b7b3 Author: Maciej Blizi?\197?\132ski Date: Wed Nov 24 12:49:11 2010 +0000 mGAR v2: checkpkg, not throwing an error when adding a package to a catalog and the package is already there. commit 392addca6d76372f966a1a7895b173a82cf41e2f Author: Maciej Blizi?\197?\132ski Date: Wed Nov 24 09:56:58 2010 +0000 mGAR v2: checkpkg, comments in the models.py file. commit dffec9394053b8fc09a836d00b4f0f2e496d51e4 Author: Maciej Blizi?\197?\132ski Date: Wed Nov 24 08:57:22 2010 +0000 mGAR v2: checkpkg, ImportPkg(): if a package was previously imported, don't replace. commit a1add3419a14cc4e2920aab4f295e9021e3df774 Author: Maciej Blizi?\197?\132ski Date: Wed Nov 24 08:53:49 2010 +0000 mGAR v2: checkpkg, removing previously existing files in ImportPkg(). commit 1a6c25a6a1bcf9a3728aaed97ddfa105d0c9f605 Author: Maciej Blizi?\197?\132ski Date: Wed Nov 24 08:33:05 2010 +0000 mGAR v2: checkpkg, support for latin1 encoded file names. commit 2d8c448677155eff0f68ba164e9af944424fe7e0 Author: Maciej Blizinski Date: Wed Nov 24 08:58:10 2010 +0100 mGAR v2: checkpkg, a test case for the latin1 encoded file name problem. commit bb65d859b0debfde01bec49a0a0677a0ea56187c Author: Maciej Blizinski Date: Wed Nov 24 00:22:29 2010 +0100 mGAR v2: checkpkg, adding missing operator module import to checkpkg_lib, checkpkg just started working. commit f8a94116407d9b621d480d99d08f6d33f0e40753 Author: Maciej Blizinski Date: Wed Nov 24 00:07:31 2010 +0100 mGAR v2: checkpkg, memoization of GetPkgByPath(). commit f257045629b66164ad99e158d3dde6dbe0e533a8 Author: Maciej Blizinski Date: Wed Nov 24 00:02:07 2010 +0100 mGAR v2: checkpkg, implemented new GetPkgByPath() in the Catalog class. commit a67d494fb01e7b68f7c025a32a8aad2b8bb15024 Author: Maciej Blizinski Date: Tue Nov 23 21:53:00 2010 +0100 mGAR v2: checkpkg, throwing an error if an unregistered package is given for inclusion in a catalog. commit 8c24f724a7b1e726016701741f5bccb591005d18 Author: Maciej Blizinski Date: Tue Nov 23 19:43:02 2010 +0100 mGAR v2: checkpkg, importing to the database can import some packages, but it fails with sqlobject.dberrors.OperationalError: Got a packet bigger than 'max_allowed_packet' bytes commit b4d2689808a41d2ba4c6fc52dfb2cf146f0cbbac Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 14:24:32 2010 +0000 mGAR v2: Added sqlobject to the list of dependencies on Debian/Ubuntu. commit 059b2a187252e32753651888284c1ad79ea5c4a5 Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 10:55:21 2010 +0000 mGAR v2: checkpkg, renamed 'bar' to 'pbar' to satisfy pylint. commit 330688c955f950ca2d5936f052997d9e32dba166 Author: Maciej Blizinski Date: Tue Nov 23 11:53:54 2010 +0100 mGAR v2: checkpkg, moved db connection stuff to configuration.py, started working on checkpkg runs. commit deb3592857b917ec45507d0df21fc7a17f5c27de Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 10:19:35 2010 +0000 mGAR v2: checkpkg, removed unused imports from checkpkg.py. commit 8e3d9c1629b099df5eb8c532ec7852e6bdc47cf3 Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 10:10:25 2010 +0000 mGAR v2: checkpkg, created checkpkg_lib.py with the intention to empty checkpkg.py. commit 603df4ed5da34ca73653ac0c78dc1d14300128ab Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 08:08:53 2010 +0000 mGAR v2: checkpkg, implemented GetInstalledPackages in the Catalog class. commit 6fb79e23175b64a17bf17737d704e5b55e402a04 Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 07:06:37 2010 +0000 mGAR v2: checkpkg: splitting off LddEmulator and SystemPkgmap to separate files. commit 6841f6378d3aecf0087914a41610fadc4ea2cde0 Author: Maciej Blizi?\197?\132ski Date: Mon Nov 22 23:23:25 2010 +0000 mGAR v2: checkpkg, checking package architecture before inserting into a catalog. commit 36f71f6fd6d61fb9152b115c14ce8d90a6acde41 Author: Maciej Blizi?\197?\132ski Date: Mon Nov 22 22:00:18 2010 +0000 mGAR v2: checkpkg, a registering an existing package works now. commit 4b4ae3496ce42583d74498f76a14be17bc7c7de9 Author: Maciej Blizi?\197?\132ski Date: Mon Nov 22 21:50:10 2010 +0000 mGAR v2: checkpkg, removing the super() call in SystemPkgmapMixin commit c029546b72d8050ca9295b7ae392c029c963fc8f Author: Maciej Blizinski Date: Mon Nov 22 21:06:26 2010 +0100 mGAR v2: Removing the database classmethods, and making sure that we're returning files that belong to packages that are in catalogs (although the check is slightly redundant). commit 80fe1f38463aeb84aaae4afac204c3c570e272a4 Author: Maciej Blizinski Date: Mon Nov 22 11:14:44 2010 +0100 mGAR v2: checkpkg, more db refactoring, tests are passing, pkgdb needs to be fixed. commit 6de1d3a315bb4d17395f43fd795736abf97e20af Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 18:25:00 2010 +0000 mGAR v2: checkpkg, removing a package from a catalog works now. commit bd311acc53e551279f3d7dffb0e2250b08c78d85 Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 15:46:49 2010 +0000 mGAR v2: checkpkg, not allowing two packages with the same pkgname in one catalog. commit 543f01b737c1ae948b9bda6b58045c72500844ae Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 14:46:37 2010 +0000 mGAR v2: checkpkg, checking that putting one package two times in a catalog raises an error. commit af4b68bb853318179b43db599728f836bfd6bba7 Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 14:34:33 2010 +0000 mGAR v2: checkpkg, small unit tests cleanup. commit 5a1e29b064fe6cf28a1ca1ef07de55ad08b62d0c Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 14:26:27 2010 +0000 mGAR v2: checkpkg, querying the database for files works. commit a0995e0faa9d28d9a3c30f67bd8c4d4d7e819285 Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 12:13:25 2010 +0000 mGAR v2: using #!/usr/bin/env for checkpkg_test.py commit 3c0a9f725bb70f4d744368876321715f8a8f01c1 Author: Maciej Blizinski Date: Sun Nov 21 13:08:32 2010 +0100 mGAR v2: checkpkg, start of a test for retrieving pkgnames for a basename. The netzwerk lags today, moving development home. commit f22c753eefcd7a2874d625ef6751817be4628980 Author: Maciej Blizinski Date: Sun Nov 21 12:44:48 2010 +0100 mGAR v2: checkpkg, registering a package with a catalog. commit 445fd5d8d78349f1828d65c8e6e145324ae4b793 Author: Maciej Blizinski Date: Sat Nov 20 19:00:28 2010 +0100 mGAR v2: checkpkg, a test for inserting stats into the db. commit f320ca6f8e31bf24aeed1d754025e72b3631e32b Author: Maciej Blizinski Date: Sat Nov 20 18:10:58 2010 +0100 mGAR v2: checkpkg, started a database related unit tests. commit dd322d77647b6894ee426d8e1209d46eac0a1e4e Author: Maciej Blizinski Date: Sat Nov 20 11:07:37 2010 +0100 mGAR v2: checkpkg, removing the remaining korn shell code. commit 5f306157431ea10be7273617bbd75117ac612cc8 Author: Maciej Blizinski Date: Thu Nov 18 12:32:33 2010 +0100 mGAR v2: checkpkg, insignificant change to models.py commit ad653d03fc409356d477c24bc2515c206b571fe9 Author: Maciej Blizinski Date: Sun Dec 5 19:27:46 2010 +0100 checkpkg: File collisions check is working There is warning displayed if colliding files are found, it can be fixed but I'm leaving it for later. commit 3d98f9deda4e6e7e9a329c2b3116322e97aa72d4 Author: Maciej Blizinski Date: Sun Dec 5 16:50:52 2010 +0100 GAR v2: Calling checkpkg with new required options commit d87ff582fd2b78403085dc7fd754aa0b88f4e62b Merge: 7db825e 01d1b93 Author: Maciej Blizinski Date: Sun Dec 5 15:31:17 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 01d1b93716caa4dcd94618df5c7b3656f63ccb71 Author: Maciej Blizi?\197?\132ski Date: Sun Dec 5 14:30:10 2010 +0000 checkpkg: A better message for the libmagic bug Displays helpful information to the user - says it's a known problem and suggests restarting the process. commit 7db825ee329114da5043d6fd7c5cb1eb8afeb10f Author: Maciej Blizinski Date: Sun Dec 5 15:24:12 2010 +0100 pkgdb: One command to import one catalog release Imports all OS releases and all catalogs. commit 47e96015d125d12b4422fa9bc63d1843e5dec7a3 Merge: c307773 9bae110 Author: Maciej Blizinski Date: Sun Dec 5 14:25:30 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit c30777357c6674505c7fcdcbea58a602c5c9a339 Author: Maciej Blizinski Date: Sun Dec 5 14:23:45 2010 +0100 pkgdb: Started a unit test file. commit 9bae11075d3a0b066007551aa1cfb1e6e02e180b Author: Maciej Blizi?\197?\132ski Date: Sun Dec 5 13:22:43 2010 +0000 pkgdb: Adding models_test.py commit 643cc52677853847f4177a1e1785a438e27262a2 Author: Maciej Blizinski Date: Sun Dec 5 13:09:13 2010 +0100 pkgdb: A few fixes for the import catalog feature Tested live on the buildfarm, works. It could use some refactoring, and perhaps one more convenience function, that imports all architectures and all OS releases. commit 1691c5cc4709ddb94ea0b0eedad9be37e482d0dd Merge: e3dddeb ab6e10d Author: Maciej Blizinski Date: Sun Dec 5 11:28:58 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit ab6e10daf883b60e0fea1fab5c4e600399f48615 Author: Maciej Blizi?\197?\132ski Date: Sun Dec 5 10:27:41 2010 +0000 pkgdb: Syncing a single catalog from disk This convenience function allows to import a catalog state from the disk, using a catalog file, to the database. No matter what were the previous srv4-catalog assignments, it brings the catalog in the db to the state that is on disk. commit e3dddebb782c403b7cd43bbc09d3e539bde5909d Merge: 7e32e6f a67e05d Author: Maciej Blizinski Date: Sat Dec 4 17:42:21 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit a67e05dd0f31ac0e6564fa0a18612424e5aa7f86 Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 16:42:13 2010 +0000 pkgdb: Added 'pkg search' command. commit ff28462a8817e82115a70c006d9f1fc9a1c841f8 Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 16:27:47 2010 +0000 checkpkg: Unit test for ToGarFormat() commit 7e32e6f2e99f1cd1d0c0116db9df8c9e2e4256f1 Merge: 17530b3 e87ea55 Author: Maciej Blizinski Date: Sat Dec 4 17:03:45 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit e87ea55be20509703b3127b74026dc5b90f4c749 Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 16:02:32 2010 +0000 checkpkg: The checkpkg tool passes smoke test It can be fed file names or md5_sums. Runs and displays results. commit 17530b318738cac9973bb3fcf2aa4ea83dcef6a8 Merge: 1fb6151 2abee78 Author: Maciej Blizinski Date: Sat Dec 4 16:48:22 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 2abee78f910810da4938c973bddd7c79b981346b Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 15:46:43 2010 +0000 checkpkg: Fixed a bug in system files import When linking a file with a package, all files previously associated with the package would be removed. Changed this so that only the first occurence cleans the files previously associated with the package. commit 18fcb6c3584786eaa13c195714efc83f539a1606 Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 13:06:20 2010 +0000 checkpkg: A unit test for CheckpkgManager2.Run() Verifies that error tags are actually inserted into the database. commit 72f82113376254704d5d19631908e5872c060ccc Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 12:46:53 2010 +0000 checkpkg: Using common_contants to check catrels It's better than a hardcoded value. commit 7d0becb86c3384e9cd13ce8a58ea3437970b67db Author: Maciej Blizi?\197?\132ski Date: Sat Dec 4 07:51:35 2010 +0000 mGAR v2: checkpkg, cleaning up CheckpkgManager2 Added a method to clean up checkpkg results. Some work towards unit testing the main Run() methods. commit a48e5a3e81c01f03658cdf3a0bda22ea3b1e097d Author: Maciej Blizi?\197?\132ski Date: Thu Dec 2 22:56:22 2010 +0000 mGAR v2: pkgdb, making initdb idempotent Not that it was a problem, but it's nicer that way. commit 1fb61518a1e1ece53dc1e4cae4270476b2dada3f Merge: 48c88c9 034d650 Author: Maciej Blizinski Date: Tue Nov 30 22:06:22 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 034d65058012c36c04f35373cd2198801fcd562c Author: Maciej Blizi?\197?\132ski Date: Tue Nov 30 21:05:43 2010 +0000 mGAR v2: checkpkg, skipping over missing md5 If a md5 sum was supposed to be added to the catalog, but is not in the database, print a warning and continue. commit 48c88c9981f23198ba3dfe2170ba2efaac5fb0da Author: Maciej Blizinski Date: Tue Nov 30 08:32:14 2010 +0100 mGAR v2: checkpkg, calling chkpkg by full path Some hosts don't have /usr/sbin in the $PATH. commit 21d2c1b406e4675b3582c24eb9b4f12451083cd9 Merge: 5a13ae1 ec98fd4 Author: Maciej Blizinski Date: Tue Nov 30 00:40:42 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 5a13ae19ddfaf641e2b2fc06d0448bee23622399 Author: Maciej Blizinski Date: Tue Nov 30 00:39:28 2010 +0100 mGAR v2: checkpkg, models cleanup Also, a bugfix for the pkginfo and contents streams, which may be lists, and sometimes can't be close()d. commit ec98fd428ce63d3468c2560c88ef72a8c4bea5d3 Author: Maciej Blizi?\197?\132ski Date: Mon Nov 29 23:36:27 2010 +0000 mGAR v2: checkpkg, storing srv4 file size Also, a unit test for _ColectStats, which had to mock quite a lot of calls to other classes functions. Could use some cleanup. commit 143dea83827609a82ffd5a25f6ccb630e07448d6 Author: Maciej Blizi?\197?\132ski Date: Mon Nov 29 10:54:55 2010 +0000 mGAR v2: checkpkg, a bugfix for package_stats.py Sadly, this bit of code is not unit tested. commit 00ab8a575a700fa6bf36b35ec888923ddfbc8ce1 Author: Maciej Blizi?\197?\132ski Date: Mon Nov 29 10:49:00 2010 +0000 mGAR v2: checkpkg, not shelling out to isalist Sheling out to 'isalist' to get the list of ISAs imposed a restriction, that sparc packages could not be indexed on i386 boxes and vice-versa. This change hardcodes the isalists and allows to index packages independently of the architecture. Data structures remain to hold the isalist as part of the pickled data in the database, so each package has its own list of ISAs. commit df4bd110d11465de23ccffe3822a32f2c3e85b8e Author: Maciej Blizi?\197?\132ski Date: Sun Nov 28 22:33:06 2010 +0000 mGAR v2: checkpkg, using highest pickling format Pickling seems to be fairly memory-intensive with the data sets we have. Setting the pickling format to the highest format in the hope it'll be more efficient. commit 62f0c6801aa2ce243e6955694a1d492f51cfefbb Author: Maciej Blizinski Date: Sun Nov 28 19:46:11 2010 +0100 mGAR v2: checkpkg, install/contents support Accepting a bad line in install/contents. There is a line that does not follow the spec. E-mail thread: http://lists.opencsw.org/pipermail/maintainers/2010-November/013277.html commit 86eb898780ae8c639056de3164419364d000b6f0 Merge: dada99f 200303b Author: Maciej Blizinski Date: Sun Nov 28 17:39:29 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 200303b2e127ca16a7de911102c62476dd98667f Author: Maciej Blizi?\197?\132ski Date: Sun Nov 28 16:37:52 2010 +0000 mGAR v2: checkpkg, importing system files into db Imports files into the database, providing idempotence. - MuteProgressBar helps with batch mode commit dada99f84dda60934a9f49c6cc69be690fb43643 Merge: af4e86e 8e4ba00 Author: Maciej Blizinski Date: Sat Nov 27 14:10:25 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 8e4ba00b5d805a0ec6224993b9a3f47fb9dcce85 Author: Maciej Blizi?\197?\132ski Date: Sat Nov 27 13:08:18 2010 +0000 mGAR v2: pkgdb, implemented proper parsing and pickling of /var/sadm/install/contents. commit af4e86e1e4ca051e68f0c487de6f60663a455f48 Author: Maciej Blizinski Date: Fri Nov 26 09:39:04 2010 +0100 mGAR v2: checkpkg, adding 'overriden' to the error tag class. commit d296a3ac141fb7e11bc4b4b1be32552a64937c75 Author: Maciej Blizi?\197?\132ski Date: Thu Nov 25 08:40:46 2010 +0000 mGAR v2: checkpkg, added a frontend to del-from-cat. commit f34cff6c3892a5fd82da606ce26ca257b05f7209 Merge: 8e960bd d296a3a Author: Maciej Blizinski Date: Thu Nov 25 09:40:46 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 8e960bd354bc78d63754349fc5ec6cbfc1bc9d19 Merge: b29f6e0 33c16ec Author: Maciej Blizinski Date: Thu Nov 25 01:38:04 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit b29f6e00dae17bed9a96a44bf2cc305d8b130b72 Author: Maciej Blizinski Date: Thu Nov 25 01:37:58 2010 +0100 mGAR v2: checkpkg, pkgdb: Logging which packages are added to a catalog. commit 33c16ecba7e58ff5f528781e3d607f32f49a8826 Author: Maciej Blizi?\197?\132ski Date: Thu Nov 25 00:37:33 2010 +0000 mGAR v2: Moved heavy pickled data to a separate table, from Srv4FileStats to Srv4FileStatsBlob. commit 0df28fc119a0788152e712bc223cf23cd5c32f14 Author: Maciej Blizi?\197?\132ski Date: Thu Nov 25 00:09:05 2010 +0000 mGAR v2: checkpkg, warning on filename vs pkginfo architecture declaration mismatch. Setting logging level to 'error' in unit tests. commit e0ec4eb5b7430bc718f8923d75abc1bf09c48cff Author: Maciej Blizi?\197?\132ski Date: Thu Nov 25 00:06:10 2010 +0000 mGAR v2: checkpkg, allowing to add a i386 package to a sparc catalog if the filename declares 'all'. commit 02d2403525d8e6bf19915fd1c19fd2d68445fede Author: Maciej Blizinski Date: Wed Nov 24 18:08:04 2010 +0100 mGAR v2: Added filename_arch to the srv4_file_stats table, so I'll be able to quickly access both pkginfo and filename arch declarations. commit 0c8cd3ec8e65a6d9cd3bf610a684ad5c41118d0f Merge: 4d2b4e9 f94d332 Author: Maciej Blizinski Date: Wed Nov 24 13:49:57 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 4d2b4e9ff9c33e6ac6b5622dae12fb73800d600c Author: Maciej Blizinski Date: Wed Nov 24 13:49:49 2010 +0100 mGAR v2: checkpkg, more verbose logging when importing packages. commit f94d332a7796e318b2e3f45849585dc1ec489094 Author: Maciej Blizi?\197?\132ski Date: Wed Nov 24 12:49:11 2010 +0000 mGAR v2: checkpkg, not throwing an error when adding a package to a catalog and the package is already there. commit 35d53ee05d143bd5bfb6b31e909ed0a08fa9c931 Author: Maciej Blizi?\197?\132ski Date: Wed Nov 24 09:56:58 2010 +0000 mGAR v2: checkpkg, comments in the models.py file. commit 1f77c9453c2c6c5a78871664089aa26bd5a84018 Author: Maciej Blizi?\197?\132ski Date: Wed Nov 24 08:57:22 2010 +0000 mGAR v2: checkpkg, ImportPkg(): if a package was previously imported, don't replace. commit 32fcf3009a281200b16b80a8bab0ef6cdf6d91e7 Author: Maciej Blizi?\197?\132ski Date: Wed Nov 24 08:53:49 2010 +0000 mGAR v2: checkpkg, removing previously existing files in ImportPkg(). commit 9528a322a6fa26d749688a6685c50abe0a2e1415 Author: Maciej Blizi?\197?\132ski Date: Wed Nov 24 08:33:05 2010 +0000 mGAR v2: checkpkg, support for latin1 encoded file names. commit ec58dbb63a70413159ba64ffb8d289745b683420 Merge: 49f4aec 587bd3d Author: Maciej Blizi?\197?\132ski Date: Wed Nov 24 07:59:30 2010 +0000 Merge branch 'collisions' of ssh://login.opencsw.org/home/maciej/public_html/opencsw into collisions commit 587bd3d3f7103ee631ccf31a59eaba92fb4d96a8 Author: Maciej Blizinski Date: Wed Nov 24 08:58:10 2010 +0100 mGAR v2: checkpkg, a test case for the latin1 encoded file name problem. commit 3eb9d385731b98a31fe342e3e52cbe1ef18a72fc Author: Maciej Blizinski Date: Wed Nov 24 00:22:29 2010 +0100 mGAR v2: checkpkg, adding missing operator module import to checkpkg_lib, checkpkg just started working. commit 6749f47bba082f9d492d335fe24286982d18d3fb Author: Maciej Blizinski Date: Wed Nov 24 00:07:31 2010 +0100 mGAR v2: checkpkg, memoization of GetPkgByPath(). commit 68beafc7fe8f69a87081a5bf5fc26285fe23f550 Author: Maciej Blizinski Date: Wed Nov 24 00:02:07 2010 +0100 mGAR v2: checkpkg, implemented new GetPkgByPath() in the Catalog class. commit 49f4aecb95c1be8ce6e55a312026f55f60a4fbe1 Merge: 86a8abd 4c75fa9 Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 22:29:33 2010 +0000 Merge branch 'collisions' of ssh://login.opencsw.org/home/maciej/public_html/opencsw into collisions commit 4c75fa9b3b6b06b0bee69f64874f5e1487efba03 Merge: 937c34e 0204d2c Author: Maciej Blizinski Date: Tue Nov 23 21:57:14 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 937c34eb38b42097796cd00b8141634dae0c33af Author: Maciej Blizinski Date: Tue Nov 23 21:53:00 2010 +0100 mGAR v2: checkpkg, throwing an error if an unregistered package is given for inclusion in a catalog. commit 20b9a6b1cb04991a836054bad89676d80a4734b4 Author: Maciej Blizinski Date: Tue Nov 23 19:43:02 2010 +0100 mGAR v2: checkpkg, importing to the database can import some packages, but it fails with sqlobject.dberrors.OperationalError: Got a packet bigger than 'max_allowed_packet' bytes commit 0204d2c1f6c2fadc88e1ddec31572cdd59ede8c7 Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 14:24:32 2010 +0000 mGAR v2: Added sqlobject to the list of dependencies on Debian/Ubuntu. commit 86a8abd52ecbc636d2add023718c65f6a7240090 Merge: d77ebb3 ac9d118 Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 10:55:26 2010 +0000 Merge branch 'collisions' of ssh://login.opencsw.org/home/maciej/public_html/opencsw into collisions commit d77ebb3886c1b3b74ed9cf3ffe707a2b4758f6a4 Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 10:55:21 2010 +0000 mGAR v2: checkpkg, renamed 'bar' to 'pbar' to satisfy pylint. commit ac9d118bd750ffe7d5a824a27dc0d0cdb2333eeb Author: Maciej Blizinski Date: Tue Nov 23 11:53:54 2010 +0100 mGAR v2: checkpkg, moved db connection stuff to configuration.py, started working on checkpkg runs. commit 4356b072d1546314e8cb9c3bd15174f507da44ea Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 10:19:35 2010 +0000 mGAR v2: checkpkg, removed unused imports from checkpkg.py. commit a45c5fee794935dea3854defef99bb2b61bc473b Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 10:10:25 2010 +0000 mGAR v2: checkpkg, created checkpkg_lib.py with the intention to empty checkpkg.py. commit 9931638ee6ed87bf1f8c2694dc36ae2b74693a6b Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 08:08:53 2010 +0000 mGAR v2: checkpkg, implemented GetInstalledPackages in the Catalog class. commit 9aa73511ba7e67574085ba623d3eae0419a88b18 Author: Maciej Blizi?\197?\132ski Date: Tue Nov 23 07:06:37 2010 +0000 mGAR v2: checkpkg: splitting off LddEmulator and SystemPkgmap to separate files. commit aa650b652a9d4c24c8ab3e8c6f63a9d0a9afa380 Author: Maciej Blizi?\197?\132ski Date: Mon Nov 22 23:23:25 2010 +0000 mGAR v2: checkpkg, checking package architecture before inserting into a catalog. commit ef28624d237bc2949f491bdc2e89913c60da83ed Author: Maciej Blizi?\197?\132ski Date: Mon Nov 22 22:00:18 2010 +0000 mGAR v2: checkpkg, a registering an existing package works now. commit 913547c974bde31d97c91f400877a7ca5b767d4e Author: Maciej Blizi?\197?\132ski Date: Mon Nov 22 21:50:10 2010 +0000 mGAR v2: checkpkg, removing the super() call in SystemPkgmapMixin commit 9655c817cdb56ef27de103b2bfd68428087717f2 Author: Maciej Blizinski Date: Mon Nov 22 21:06:26 2010 +0100 mGAR v2: Removing the database classmethods, and making sure that we're returning files that belong to packages that are in catalogs (although the check is slightly redundant). commit 25dbd71a94f7e7db4ccab1d820ba305b37ce0066 Author: Maciej Blizinski Date: Mon Nov 22 11:14:44 2010 +0100 mGAR v2: checkpkg, more db refactoring, tests are passing, pkgdb needs to be fixed. commit 5c44f40f21b6155216eaff5923cc97d23c05be14 Merge: 426f6c8 4e03ab2 Author: Maciej Blizinski Date: Sun Nov 21 19:36:48 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 4e03ab231ebad07bfc58c9cfc016d180ef4d865e Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 18:25:00 2010 +0000 mGAR v2: checkpkg, removing a package from a catalog works now. commit 1fcb2db5e243015001252ee96a11b045d52f4320 Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 15:46:49 2010 +0000 mGAR v2: checkpkg, not allowing two packages with the same pkgname in one catalog. commit 426f6c862262092c19dc422400b8d98a92606b23 Merge: 90098b5 1767ae5 Author: Maciej Blizinski Date: Sun Nov 21 16:23:30 2010 +0100 Merge branch 'collisions' of file:///home/maciej/public_html/opencsw into collisions commit 90098b5fac1e4c4ddbe1356d4172c9c346864289 Merge: 5d940e5 f3ae454 Author: Maciej Blizinski Date: Sun Nov 21 16:20:47 2010 +0100 Merge branch 'master' of file:///home/maciej/public_html/opencsw into collisions commit 0d9de2311b68856db552ecc452aaa0c12c00c900 Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 14:46:37 2010 +0000 mGAR v2: checkpkg, checking that putting one package two times in a catalog raises an error. commit 1767ae5d3e6e6c8ea37ad91ed5b05651b148f929 Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 14:34:33 2010 +0000 mGAR v2: checkpkg, small unit tests cleanup. commit 787874a57a0c3568f7991750b958df63689ad533 Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 14:26:27 2010 +0000 mGAR v2: checkpkg, querying the database for files works. commit 728670ac4ecc7dccc8fe5d33e0eff5edcdae3019 Author: Maciej Blizi?\197?\132ski Date: Sun Nov 21 12:13:25 2010 +0000 mGAR v2: using #!/usr/bin/env for checkpkg_test.py commit 5d940e5a98876f51a0e095d80af42075371466b0 Author: Maciej Blizinski Date: Sun Nov 21 13:08:32 2010 +0100 mGAR v2: checkpkg, start of a test for retrieving pkgnames for a basename. The netzwerk lags today, moving development home. commit 38c8c3a6db74d373859abef28ac1de400ac99bef Author: Maciej Blizinski Date: Sun Nov 21 12:44:48 2010 +0100 mGAR v2: checkpkg, registering a package with a catalog. commit 77de13f7cdcd6af28d38735bd64518217c61b6e7 Author: Maciej Blizinski Date: Sat Nov 20 19:00:28 2010 +0100 mGAR v2: checkpkg, a test for inserting stats into the db. commit 1adc64e53ac87fd88f57b707c8e4b4b68b7487b7 Author: Maciej Blizinski Date: Sat Nov 20 18:10:58 2010 +0100 mGAR v2: checkpkg, started a database related unit tests. commit 73c3fb73e0989bd8cf1fee46ebe5ac96e17ca208 Author: Maciej Blizinski Date: Sat Nov 20 11:07:37 2010 +0100 mGAR v2: checkpkg, removing the remaining korn shell code. commit 24acc21103eb336d82bd5d7198144bea633bb550 Merge: 3e34c07 46dd5e8 Author: Maciej Blizinski Date: Fri Nov 19 00:54:55 2010 +0100 Merge branch 'master' into collisions commit 3e34c07a5187e9babcd85b75d4397b18d646d7a5 Author: Maciej Blizinski Date: Thu Nov 18 12:32:33 2010 +0100 mGAR v2: checkpkg, insignificant change to models.py commit 286195b81d1507f8094676efbb0e209be431e543 Merge: 4b8a652 953d348 Author: Maciej Blizinski Date: Wed Nov 17 23:47:29 2010 +0100 Merge branch 'master' into collisions commit 953d348e07b9fa5b58b00c2af67c97946dee38ca Author: Maciej Blizinski Date: Wed Nov 17 23:40:35 2010 +0100 mGAR v2: pkgdb, adding soname to the binaries_dump_info section. commit de9fcb7042b1466499c3d56aceed1df1de9b9e79 Author: Maciej Blizi?\197?\132ski Date: Wed Nov 3 08:43:14 2010 +0000 Revert "mGAR v2: checkpkg, README, the list of dependencies to run the unit tests on Ubuntu." This reverts commit 46b7b6bd95a737c1f65a8e1d60bf07e1cd3301de. commit 9b9d1a7d46cbefed0316f08939b41a0b3775880c Author: Maciej Blizinski Date: Wed Nov 3 08:40:03 2010 +0000 mGAR v2: checkpkg, README, the list of dependencies to run the unit tests on Ubuntu. Modified Paths: -------------- csw/mgar/gar/v2/bin/checkpkg csw/mgar/gar/v2/bin/mkpackage csw/mgar/gar/v2/gar.pkg.mk csw/mgar/gar/v2/lib/python/README csw/mgar/gar/v2/lib/python/catalog.py csw/mgar/gar/v2/lib/python/checkpkg.py csw/mgar/gar/v2/lib/python/checkpkg_test.py csw/mgar/gar/v2/lib/python/configuration.py csw/mgar/gar/v2/lib/python/database.py csw/mgar/gar/v2/lib/python/dependency_checks.py csw/mgar/gar/v2/lib/python/dependency_checks_test.py csw/mgar/gar/v2/lib/python/inspective_package.py csw/mgar/gar/v2/lib/python/models.py csw/mgar/gar/v2/lib/python/opencsw.py csw/mgar/gar/v2/lib/python/package.py csw/mgar/gar/v2/lib/python/package_checks.py csw/mgar/gar/v2/lib/python/package_checks_test.py csw/mgar/gar/v2/lib/python/package_stats.py csw/mgar/gar/v2/lib/python/package_stats_test.py csw/mgar/gar/v2/lib/python/pkgdb.py csw/mgar/gar/v2/lib/python/sharedlib_utils.py csw/mgar/gar/v2/lib/python/sharedlib_utils_test.py csw/mgar/gar/v2/lib/python/tag.py csw/mgar/gar/v2/lib/python/tag_test.py csw/mgar/gar/v2/lib/python/testdata/neon_stats.py csw/mgar/gar/v2/lib/python/testdata/tree_stats.py csw/mgar/gar/v2/tests/run_tests.py Added Paths: ----------- csw/mgar/gar/v2/lib/python/checkpkg2.py csw/mgar/gar/v2/lib/python/checkpkg_lib.py csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py csw/mgar/gar/v2/lib/python/common_constants.py csw/mgar/gar/v2/lib/python/ldd_emul.py csw/mgar/gar/v2/lib/python/ldd_emul_test.py csw/mgar/gar/v2/lib/python/models_test.py csw/mgar/gar/v2/lib/python/mute_progressbar.py csw/mgar/gar/v2/lib/python/pkgdb_test.py csw/mgar/gar/v2/lib/python/shell.py csw/mgar/gar/v2/lib/python/system_pkgmap.py csw/mgar/gar/v2/lib/python/system_pkgmap_test.py csw/mgar/gar/v2/lib/python/test_base.py Removed Paths: ------------- csw/mgar/gar/v2/bin/analyze_module_results.py csw/mgar/gar/v2/bin/checkpkg_collect_stats.py csw/mgar/gar/v2/bin/checkpkg_run_modules.py Property Changed: ---------------- csw/mgar/gar/v2/bin/checkpkg csw/mgar/gar/v2/lib/python/package_stats_test.py Deleted: csw/mgar/gar/v2/bin/analyze_module_results.py =================================================================== --- csw/mgar/gar/v2/bin/analyze_module_results.py 2010-12-10 13:48:16 UTC (rev 11878) +++ csw/mgar/gar/v2/bin/analyze_module_results.py 2010-12-10 16:48:58 UTC (rev 11879) @@ -1,73 +0,0 @@ -#!/opt/csw/bin/python2.6 -# $Id$ - -import itertools -import operator -import optparse -import os -import pprint -import progressbar -import sys -import textwrap - -# The following bit of code sets the correct path to Python libraries -# distributed with GAR. -path_list = [os.path.dirname(__file__), - "..", "lib", "python"] -sys.path.append(os.path.join(*path_list)) -import checkpkg -import overrides -import package_stats - -BEFORE_OVERRIDES = """If any of the reported errors were false positives, you -can override them pasting the lines below to the GAR recipe.""" - -AFTER_OVERRIDES = """Please note that checkpkg isn't suggesting you should -simply add these overrides do the Makefile. It only informs what the overrides -could look like. You need to understand what are the reported issues about and -use your best judgement to decide whether to fix the underlying problems or -override them. For more information, scroll up and read the detailed -messages.""" - -UNAPPLIED_OVERRIDES = """WARNING: Some overrides did not match any errors. -They can be removed, as they don't take any effect anyway. If you're getting -errors at the same time, maybe you didn't specify the overrides correctly.""" - -def main(): - parser = optparse.OptionParser() - parser.add_option("-c", "--catalog_file", dest="catalog", - help="Optional catalog file") - parser.add_option("-q", "--quiet", dest="quiet", - default=False, action="store_true", - help=("Display less messages")) - options, args = parser.parse_args() - filenames = args - - # This might be bottleneck. Perhaps a list of md5 sums can be given to this - # script instead. - - # It might be a good idea to store the error tags in the database and - # eliminate the need to access the directory with the error tag files. - - pkgstats = package_stats.StatsListFromCatalog(filenames, options.catalog) - overrides_list = [pkg.GetSavedOverrides() for pkg in pkgstats] - override_list = reduce(operator.add, overrides_list) - error_tags = reduce(operator.add, [stat.GetSavedErrorTags() for stat in pkgstats]) - (tags_after_overrides, - unapplied_overrides) = overrides.ApplyOverrides(error_tags, override_list) - if not options.quiet: - if tags_after_overrides: - print textwrap.fill(BEFORE_OVERRIDES, 80) - for checkpkg_tag in tags_after_overrides: - print checkpkg_tag.ToGarSyntax() - print textwrap.fill(AFTER_OVERRIDES, 80) - if unapplied_overrides: - print textwrap.fill(UNAPPLIED_OVERRIDES, 80) - for override in unapplied_overrides: - print "* Unused %s" % override - exit_code = bool(tags_after_overrides) - sys.exit(exit_code) - - -if __name__ == '__main__': - main() Modified: csw/mgar/gar/v2/bin/checkpkg =================================================================== --- csw/mgar/gar/v2/bin/checkpkg 2010-12-10 13:48:16 UTC (rev 11878) +++ csw/mgar/gar/v2/bin/checkpkg 2010-12-10 16:48:58 UTC (rev 11879) @@ -1,322 +1 @@ -#!/bin/ksh -p -# -# $Id$ -# -# checkpkg 1.51 -# -# diff to 1.46a -# - check multiple package files -# - checkpkg.d plugin support -# - getopts support for command line options -# - colors -# - modular architecture + unit tests -# - reliable shared library checking -# -# This script examines a package that has been put together -# for submittal to the CSW archive at opencsw.org -# -# It examines it for compliance with the packaging standards at -# http://www.opencsw.org/standards/ -# It DOES NOT CATCH EVERYTHING. However, the package will be -# tested with this script before acceptance, so you may as well -# save yourself some time, and run the script yourself! -# -# Be sure to occasionally do a "pkg-get update cswutils" so that -# you know you are tracking the most current version. -# -# TODO: -# - add message handlig to the CheckInterface class. -# - -PATH=$PATH:/usr/sbin -readonly NAME_MAX_LENGTH=${NAME_MAX_LENGTH:-20} - -command_basename=`basename $0` -command_basedir="${0%/${command_basename}}" -libshdir="${command_basedir}/../lib/sh" -readonly command_basename command_basedir libshdir -. "${libshdir}/libcheckpkg.sh" - -LOCAL_ARCH=`uname -p` -CHECKPKG_TMPDIR=${CHECKPKG_TMPDIR:-/var/tmp} -readonly CHECKPKG_TMPDIR - -# Colors only when running interactively -if [[ -t 1 ]]; then - GREEN="\\033[0;32;40m" - RED="\\033[1;31;40m" - BOLD="\\033[1m" - COLOR_RESET="\\033[00m" -else - GREEN="" - RED="" - BOLD="" - COLOR_RESET="" -fi -readonly GREEN RED BOLD COLOR_RESET - -readonly selfpath="$0" -readonly selfargs="$@" - -cleanup(){ - if [[ -d "$EXTRACTDIR" ]] ; then - rm -rf $EXTRACTDIR - fi - cleantmparchives -} - -cleantmparchives() { - for TMPARCHIVE in $tmparchives; do - if [[ "$TMPARCHIVE" != "" ]]; then - [ -f "$TMPARCHIVE" ] && rm $TMPARCHIVE - fi - done -} - -cleanupset(){ - if [ "`echo $SETINF*`" != "$SETINF*" ]; then - rm $SETINF* - fi -} - -# Print error message, and quit program. -errmsg(){ - print ERROR: $* >/dev/fd/2 - cleanup - cleanupset - print "To run checkpkg in the debug mode, add the '-d' flag, for example:" - # selfargs can be very, very long. Find a way to truncate it. - # print "${selfpath} -d ${selfargs}" - print "After you modify any overrides, you need to do gmake remerge repackage" - print "or gmake platforms-remerge platforms-repackage." - exit 1 -} - -debugmsg() { - if [[ "${DEBUG}" != "" ]]; then - print "DEBUG: $*" > /dev/fd/2 - fi -} - -# TODO: Options to add: -# - Use an pre-cached (from a catalog file?) list of md5 sums -# - Don't use the data from /var/sadm/install/contents -display_help=0 -SKIP_STATS_COLLECTION=0 -MD5_SUMS_CATALOG_FILE="" -INSTALL_CONTENTS_FILES="/var/sadm/install/contents" -ANALYZE=1 -PROFILE=0 -QUIET=0 - -while getopts hsdNM:o:c:Apq opt; do - case "${opt}" in - c) - INSTALL_CONTENTS_FILES="${INSTALL_CONTENTS_FILES} ${OPTARG}" - ;; - d) - DEBUG=1 - ;; - h) - display_help=1 - ;; - N) - SKIP_STATS_COLLECTION=1 - ;; - M) - MD5_SUMS_CATALOG_FILE="${OPTARG}" - ;; - A) - ANALYZE=0 - ;; - p) - PROFILE=1 - ;; - q) QUIET=1 - ;; - *) - echo "Unknown option '${opt}'" - ;; - esac -done -shift $(( $OPTIND -1 )) - -readonly INSTALL_CONTENTS_FILES -readonly MD5_SUMS_CATALOG_FILE -readonly SKIP_STATS_COLLECTION -readonly ANALYZE -readonly PROFILE -readonly QUIET - -if [[ "${display_help}" -eq 1 ]] ; then - print 'Usage: checkpkg [options] pkg1 [pkg2 ....]' - print 'Options:' - print ' -c use an additional install/contents file' - print ' -d display debug messages' - print ' -N skip statistics collection' - print ' -M use package md5sums from a catalog file' - print ' -A Do not analyze the results.' - print ' -p Enable profiling' - print ' -q Display less messages' - print '' - print 'Error tags are saved to the sqlite database.' - exit 0 -fi - -# a unique filename for the list of package deps and libs we see in a 'set' -SETINF=$CHECKPKG_TMPDIR/checkpkg.$$.`date +%Y%m%d%H%M%S` -SETLIBS=$SETINF.libs -SETDEPS=$SETINF.deps -pkgnames="" -tmparchives="" - -EXTRACTDIR=$CHECKPKG_TMPDIR/dissect.$$ - -if [ -d $EXTRACTDIR ] ; then - errmsg ERROR: $EXTRACTDIR already exists -fi - -for f in "$@" -do - - if [[ ! -f $f ]] ; then - errmsg ERROR: $f does not exist - fi - - -[ -d ${EXTRACTDIR} ] || mkdir ${EXTRACTDIR} - -######################################## -# Check for some common errors -######################################### - -# TODO: To be ported. -# -# # find all executables and dynamic libs,and list their filenames. -# if [[ "$basedir" != "" ]] ; then -# print -# if [[ -f $EXTRACTDIR/elflist ]] ; then -# print "Checking relocation ability..." -# xargs strings < $EXTRACTDIR/elflist| grep /opt/csw -# if [[ $? -eq 0 ]] ; then -# errmsg package build as relocatable, but binaries have hardcoded /opt/csw paths in them -# else -# print trivial check passed -# fi -# else -# echo No relocation check done for non-binary relocatable package. -# fi -# fi - -tmparchives="$tmparchives $TMPARCHIVE" -done - -# Plugin section. This is here for support for other programming languages -# than Python. As of 2010-03-16 there are no checks in there. If this keeps -# empty, if no checks in other languages get written, it could be removed. -# -# Plugins should live in checkpkg.d subdirectory in the same directory in which -# checkpkg is. Each plugin file name should be an executable and begin with -# "checkpkg-". - -test_suite_ok=1 -checkpkg_module_dir="${command_basedir}/../lib/checkpkg.d" -checkpkg_module_tag="checkpkg-" -checkpkg_stats_basedir="${HOME}/.checkpkg/stats" - -# Cleaning up old *.pyc files which can cause grief. This is because of the -# move of Python libraries. -for pyc_file in ${checkpkg_module_dir}/opencsw.pyc \ - ${checkpkg_module_dir}/checkpkg.pyc; do - if [ -f "${pyc_file}" ]; then - echo "Removing old pyc file: '${pyc_file}'" - rm "${pyc_file}" - fi -done - -if [[ "${DEBUG}" != "" ]]; then - extra_options="--debug" -fi -if [[ "${PROFILE}" -eq 1 ]]; then - extra_options="${extra_options} --profile" -fi -if [[ "${QUIET}" -eq 1 ]]; then - quiet_options="--quiet" -else - quiet_options="" -fi - -if [[ -n "${MD5_SUMS_CATALOG_FILE}" ]]; then - catalog_options="--catalog=${MD5_SUMS_CATALOG_FILE}" -else - catalog_options="" -fi - -# /var/sadm/install/contents cache update -# TODO: Either remove this section or stop the stats collection phase from -# updating the cache. -${command_basedir}/update_contents_cache.py ${extra_options} -if [[ $? -ne 0 ]]; then - errmsg "Updating the contents cache has failed." -fi -if [[ "${SKIP_STATS_COLLECTION}" -eq 0 ]]; then - # Collects package stats to be analyzed later - ${command_basedir}/checkpkg_collect_stats.py \ - ${catalog_options} \ - ${extra_options} \ - "$@" - if [[ "$?" -ne 0 ]]; then - errmsg "Stats collection phase has failed." - fi -fi - -# TODO: A performance problem. The following line means that the md5sums are -# calculated once more. -if [ "${MD5_SUMS_CATALOG_FILE}" ]; then - debugmsg "Reading md5sums from ${MD5_SUMS_CATALOG_FILE}" - md5sums=`cat "${MD5_SUMS_CATALOG_FILE}" \ - | awk '{print $5}' \ - | ggrep -E '[0-9abcdef]{32}'` -else - debugmsg "Calculating md5 sums of all the package files." - md5sums=`gmd5sum "$@" | awk '{print $1}'` -fi -debugmsg "All md5 sums: ${md5sums}" - -# Running the checks. -${command_basedir}/checkpkg_run_modules.py \ - ${extra_options} \ - -b "${checkpkg_stats_basedir}" \ - ${quiet_options} \ - ${md5sums} -if [[ "$?" -ne 0 ]]; then - print "There was a problem analyzing package stats." - test_suite_ok=0 -fi - -if [[ ${test_suite_ok} -ne 1 ]]; then - errmsg "One or more tests have finished with an error." -fi - -if [[ "${ANALYZE}" -eq 1 ]]; then -# Collecting errors and applying the overrides. -# This has to use the original files. - ${command_basedir}/analyze_module_results.py \ - ${catalog_options} \ - ${quiet_options} \ - "$@" - if [[ "$?" -ne 0 ]]; then - errmsg "${RED}Checkpkg has reported errors.${COLOR_RESET}" - else - print "${GREEN}Checkpkg reports no errors.${COLOR_RESET}" - fi -else - echo "Skipping result analysis." -fi - -print "" - -# Cleaning up after all packages -cleanup - -cleanupset +link ../lib/python/checkpkg2.py \ No newline at end of file Property changes on: csw/mgar/gar/v2/bin/checkpkg ___________________________________________________________________ Deleted: svn:executable - * Added: svn:special + * Deleted: csw/mgar/gar/v2/bin/checkpkg_collect_stats.py =================================================================== --- csw/mgar/gar/v2/bin/checkpkg_collect_stats.py 2010-12-10 13:48:16 UTC (rev 11878) +++ csw/mgar/gar/v2/bin/checkpkg_collect_stats.py 2010-12-10 16:48:58 UTC (rev 11879) @@ -1,69 +0,0 @@ -#!/opt/csw/bin/python2.6 -# -# $Id$ -# -# Collects statistics about a package and saves to a directory, for later use -# by checkpkg modules. - -import itertools -import logging -import optparse -import os -import os.path -import subprocess -import sys -import progressbar - -# The following bit of code sets the correct path to Python libraries -# distributed with GAR. -path_list = [os.path.dirname(__file__), - "..", "lib", "python"] -sys.path.append(os.path.join(*path_list)) -import checkpkg -import opencsw -import package_stats - -def main(): - parser = optparse.OptionParser() - parser.add_option("-d", "--debug", dest="debug", - default=False, action="store_true", - help="Turn on debugging messages") - parser.add_option("-c", "--catalog", dest="catalog", - help="Catalog file") - parser.add_option("-p", "--profile", dest="profile", - default=False, action="store_true", - help="A disabled option") - options, args = parser.parse_args() - if options.debug: - logging.basicConfig(level=logging.DEBUG) - else: - logging.basicConfig(level=logging.INFO) - logging.debug("Collecting statistics about given package files.") - args_display = args - if len(args_display) > 5: - args_display = args_display[:5] + ["...more..."] - file_list = args - logging.debug("Processing: %s, please be patient", args_display) - stats_list = package_stats.StatsListFromCatalog( - file_list, options.catalog, options.debug) - # Reversing the item order in the list, so that the pop() method can be used - # to get packages, and the order of processing still matches the one in the - # catalog file. - stats_list.reverse() - total_packages = len(stats_list) - counter = itertools.count(1) - logging.info("Juicing the srv4 package stream files...") - bar = progressbar.ProgressBar() - bar.maxval = total_packages - bar.start() - while stats_list: - # This way objects will get garbage collected as soon as they are removed - # from the list by pop(). The destructor (__del__()) of the srv4 class - # removes the temporary directory from the disk. This allows to process - # the whole catalog. - stats_list.pop().CollectStats() - bar.update(counter.next()) - bar.finish() - -if __name__ == '__main__': - main() Deleted: csw/mgar/gar/v2/bin/checkpkg_run_modules.py =================================================================== --- csw/mgar/gar/v2/bin/checkpkg_run_modules.py 2010-12-10 13:48:16 UTC (rev 11878) +++ csw/mgar/gar/v2/bin/checkpkg_run_modules.py 2010-12-10 16:48:58 UTC (rev 11879) @@ -1,56 +0,0 @@ -#!/opt/csw/bin/python2.6 -# $Id$ - -"""This script runs all the checks written in Python.""" - -import datetime -import logging -import os -import os.path -import sys -import re -import cProfile - -CHECKPKG_MODULE_NAME = "Second checkpkg API version" - -# The following bit of code sets the correct path to Python libraries -# distributed with GAR. -path_list = [os.path.dirname(__file__), - "..", "lib", "python"] -sys.path.append(os.path.join(*path_list)) -import checkpkg -import opencsw - - -def main(): - options, args = checkpkg.GetOptions() - if options.debug: - logging.basicConfig(level=logging.DEBUG) - else: - logging.basicConfig(level=logging.INFO) - md5sums = args - # CheckpkgManager2 class abstracts away things such as the collection of - # results. - check_manager = checkpkg.CheckpkgManager2(CHECKPKG_MODULE_NAME, - options.stats_basedir, - md5sums, - options.debug) - # Running the checks, reporting and exiting. - exit_code, screen_report, tags_report = check_manager.Run() - screen_report = unicode(screen_report) - if not options.quiet and screen_report: - sys.stdout.write(screen_report) - else: - logging.debug("No screen report.") - sys.exit(exit_code) - - -if __name__ == '__main__': - if "--profile" in sys.argv: - t_str = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M") - home = os.environ["HOME"] - cprof_file_name = os.path.join( - home, ".checkpkg", "run-modules-%s.cprof" % t_str) - cProfile.run("main()", sort=1, filename=cprof_file_name) - else: - main() Modified: csw/mgar/gar/v2/bin/mkpackage =================================================================== --- csw/mgar/gar/v2/bin/mkpackage 2010-12-10 13:48:16 UTC (rev 11878) +++ csw/mgar/gar/v2/bin/mkpackage 2010-12-10 16:48:58 UTC (rev 11879) @@ -25,6 +25,9 @@ # Tool Version/Revision Information $TOOLVERSION = "1.4"; ($REVISION) = q/$Revision$/ =~ /(\d+)/; +# This shows a warning: +# "Use of uninitialized value $REVISION in sprintf at +# /home/maciej/src/opencsw/pkg/nspr/trunk/gar/bin/mkpackage line 31." $VERSION = sprintf '%s (r%d)', $TOOLVERSION, $REVISION; # Discover network support Modified: csw/mgar/gar/v2/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2/gar.pkg.mk 2010-12-10 13:48:16 UTC (rev 11878) +++ csw/mgar/gar/v2/gar.pkg.mk 2010-12-10 16:48:58 UTC (rev 11879) @@ -52,6 +52,7 @@ GARPKG_v1 = CSWgar-v1 GARPKG_v2 = CSWgar-v2 RUNTIME_DEP_PKGS_$(SRCPACKAGE) ?= $(or $(GARPKG_$(GARSYSTEMVERSION)),$(error GAR version $(GARSYSTEMVERSION) unknown)) +CATALOG_RELEASE ?= current _PKG_SPECS = $(filter-out $(NOPACKAGE),$(SPKG_SPECS)) @@ -842,7 +843,11 @@ # pkgcheck - check if the package is compliant # pkgcheck: $(foreach SPEC,$(_PKG_SPECS),package-$(SPEC)) - $(_DBG)( LC_ALL=C $(GARBIN)/checkpkg $(foreach SPEC,$(_PKG_SPECS),$(SPKG_EXPORT)/`$(call _PKG_ENV,$(SPEC)) mkpackage --tmpdir $(SPKG_TMPDIR) -qs $(WORKDIR)/$(SPEC).gspec -D pkgfile`.gz ) || exit 2;) + $(_DBG)( LC_ALL=C $(GARBIN)/checkpkg \ + --architecture "$(GARCH)" \ + --os-releases "$(SPKG_OSNAME)" \ + --catalog-release "$(CATALOG_RELEASE)" \ + $(foreach SPEC,$(_PKG_SPECS),$(SPKG_EXPORT)/`$(call _PKG_ENV,$(SPEC)) mkpackage --tmpdir $(SPKG_TMPDIR) -qs $(WORKDIR)/$(SPEC).gspec -D pkgfile`.gz ) || exit 2;) @$(MAKECOOKIE) pkgcheck-p: Modified: csw/mgar/gar/v2/lib/python/README =================================================================== --- csw/mgar/gar/v2/lib/python/README 2010-12-10 13:48:16 UTC (rev 11878) +++ csw/mgar/gar/v2/lib/python/README 2010-12-10 16:48:58 UTC (rev 11879) @@ -21,9 +21,11 @@ tests as means to run various bits of code. Here's the dependency list for Ubuntu. - python-cheetah - python-hachoir-parser - python-magic - python-mox - python-progressbar +sudo aptitude install \ + python-cheetah \ + python-hachoir-parser \ + python-magic \ + python-mox \ + python-progressbar \ + python-sqlobject \ python-yaml Modified: csw/mgar/gar/v2/lib/python/catalog.py =================================================================== --- csw/mgar/gar/v2/lib/python/catalog.py 2010-12-10 13:48:16 UTC (rev 11878) +++ csw/mgar/gar/v2/lib/python/catalog.py 2010-12-10 16:48:58 UTC (rev 11879) @@ -123,6 +123,7 @@ def _GetCatalogData(self, fd): catalog_data = [] for line in fd: + if line.startswith("#"): continue try: parsed = self._ParseCatalogLine(line) catalog_data.append(parsed) Modified: csw/mgar/gar/v2/lib/python/checkpkg.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-10 13:48:16 UTC (rev 11878) +++ csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-10 16:48:58 UTC (rev 11879) @@ -3,44 +3,22 @@ # This is the checkpkg library, common for all checkpkg tests written in # Python. -import copy -import cPickle -import errno import itertools import logging -import operator import optparse -import os import os.path import re import pprint import progressbar -import socket -import sqlite3 import sqlobject -import time -from sqlobject import sqlbuilder import subprocess -import textwrap -from Cheetah import Template import database -import package import inspective_package -import package_checks -import package_stats import models as m -import configuration as c -import tag +import common_constants -DEBUG_BREAK_PKGMAP_AFTER = False -SYSTEM_PKGMAP = "/var/sadm/install/contents" -NEEDED_SONAMES = "needed sonames" -RUNPATH = "runpath" -SONAME = "soname" -CONFIG_MTIME = "mtime" -CONFIG_DB_SCHEMA = "db_schema_version" DO_NOT_REPORT_SURPLUS = set([u"CSWcommon", u"CSWcswclassutils", u"CSWisaexec"]) DO_NOT_REPORT_MISSING = set([]) DO_NOT_REPORT_MISSING_RE = [r"\*?SUNW.*"] @@ -48,17 +26,11 @@ PSTAMP_RE = r"(?P\w+)@(?P[\w\.-]+)-(?P\d+)" DESCRIPTION_RE = r"^([\S]+) - (.*)$" BAD_CONTENT_REGEXES = ( - # Slightly obfuscating these by using the default concatenation of - # strings. + # Slightly obfuscating these by using concatenation of strings. r'/export' r'/medusa', r'/opt' r'/build', ) -SYSTEM_SYMLINKS = ( - ("/opt/csw/bdb4", ["/opt/csw/bdb42"]), - ("/64", ["/amd64", "/sparcv9"]), - ("/opt/csw/lib/i386", ["/opt/csw/lib"]), -) INSTALL_CONTENTS_AVG_LINE_LENGTH = 102.09710677919261 SYS_DEFAULT_RUNPATH = [ "/usr/lib/$ISALIST", @@ -67,8 +39,7 @@ "/lib", ] -CONTENT_PKG_RE = r"^\*?(CSW|SUNW)[0-9a-zA-Z\-]?[0-9a-z\-]+$" -MD5_RE = r"^[0123456789abcdef]{32}$" +MD5_RE = re.compile(r"^[0123456789abcdef]{32}$") REPORT_TMPL = u"""#if $missing_deps or $surplus_deps or $orphan_sonames Dependency issues of $pkgname: @@ -90,57 +61,6 @@ #end if """ -SCREEN_ERROR_REPORT_TMPL = u"""#if $errors -#if $debug -ERROR: One or more errors have been found by $name. -#end if -#for $pkgname in $errors -$pkgname: -#for $error in $errors[$pkgname] -#if $debug - $repr($error) -#elif $error.msg -$textwrap.fill($error.msg, 78, initial_indent="# ", subsequent_indent="# ") -# -> $repr($error) - -#end if -#end for -#end for -#else -#if $debug -OK: $repr($name) module found no problems. -#end if -#end if -#if $messages -#for $msg in $messages -$textwrap.fill($msg, 78, initial_indent=" * ", subsequent_indent=" ") -#end for -#end if -#if $gar_lines - -# Checkpkg suggests adding the following lines to the GAR recipe: -# This is a summary; see above for details. -#for $line in $gar_lines -$line -#end for -#end if -""" - -# http://www.cheetahtemplate.org/docs/users_guide_html_multipage/language.directives.closures.html -TAG_REPORT_TMPL = u"""#if $errors -# Tags reported by $name module -#for $pkgname in $errors -#for $tag in $errors[$pkgname] -#if $tag.msg -$textwrap.fill($tag.msg, 70, initial_indent="# ", subsequent_indent="# ") -#end if -$pkgname: ${tag.tag_name}#if $tag.tag_info# $tag.tag_info#end if# -#end for -#end for -#end if -""" - - class Error(Exception): pass @@ -157,11 +77,12 @@ pass +class SetupError(Error): + pass + + def GetOptions(): parser = optparse.OptionParser() - parser.add_option("-b", "--stats-basedir", dest="stats_basedir", - help=("The base directory with package statistics " - "in yaml format, e.g. ~/.checkpkg/stats")) parser.add_option("-d", "--debug", dest="debug", default=False, action="store_true", help="Turn on debugging messages") @@ -172,8 +93,6 @@ default=False, action="store_true", help=("Print less messages")) (options, args) = parser.parse_args() - if not options.stats_basedir: - raise ConfigurationError("ERROR: the -b option is missing.") # Using set() to make the arguments unique. return options, set(args) @@ -195,859 +114,9 @@ return m.group("username") if m else None -class SystemPkgmap(database.DatabaseClient): - """A class to hold and manipulate the /var/sadm/install/contents file.""" - - STOP_PKGS = ["SUNWbcp", "SUNWowbcp", "SUNWucb"] - - def __init__(self, system_pkgmap_files=None, debug=False): - """There is no need to re-parse it each time. - - Read it slowly the first time and cache it for later.""" - super(SystemPkgmap, self).__init__(debug=debug) - self.cache = {} - self.pkgs_by_path_cache = {} - self.file_mtime = None - self.cache_mtime = None - self.initialized = False - if not system_pkgmap_files: - self.system_pkgmap_files = [SYSTEM_PKGMAP] - else: - self.system_pkgmap_files = system_pkgmap_files - self.csw_pkg_re = re.compile(CONTENT_PKG_RE) - self.digits_re = re.compile(r"^[0-9]+$") - - def _LazyInitializeDatabase(self): - if not self.initialized: - self.InitializeDatabase() - - def InitializeRawDb(self): - """It's necessary for low level operations.""" - if True: - logging.debug("Connecting to sqlite") - self.sqlite_conn = sqlite3.connect(self.GetDatabasePath()) - - def InitializeDatabase(self): - """Established the connection to the database. - - TODO: Refactor this class to first create CswFile with no primary key and - no indexes. - """ - need_to_create_tables = False - db_path = self.GetDatabasePath() - checkpkg_dir = os.path.join(os.environ["HOME"], self.CHECKPKG_DIR) - if not os.path.exists(db_path): - logging.info("Building the cache database %s.", self.system_pkgmap_files) - logging.info("The cache will be kept in %s.", db_path) - if not os.path.exists(checkpkg_dir): - logging.debug("Creating %s", checkpkg_dir) - os.mkdir(checkpkg_dir) - need_to_create_tables = True - self.InitializeRawDb() - self.InitializeSqlobject() - if not self.IsDatabaseGoodSchema(): - logging.info("Old database schema detected.") - self.PurgeDatabase(drop_tables=True) - need_to_create_tables = True - if need_to_create_tables: - self.CreateTables() - self.PerformInitialDataImport() - if not self.IsDatabaseUpToDate(): - logging.debug("Rebuilding the package cache, can take a few minutes.") - self.ClearTablesForUpdates() - self.RefreshDatabase() - self.initialized = True - - def RefreshDatabase(self): - for pkgmap_path in self.system_pkgmap_files: - self._ProcessSystemPkgmap(pkgmap_path) - self.PopulatePackagesTable() - self.SetDatabaseMtime() - - def PerformInitialDataImport(self): - """Imports data into the database. - - Original bit of code from checkpkg: - egrep -v 'SUNWbcp|SUNWowbcp|SUNWucb' /var/sadm/install/contents | - fgrep -f $EXTRACTDIR/liblist >$EXTRACTDIR/shortcatalog - """ - for pkgmap_path in self.system_pkgmap_files: - self._ProcessSystemPkgmap(pkgmap_path) - self.SetDatabaseSchemaVersion() - self.PopulatePackagesTable() - self.SetDatabaseMtime() - - def _ProcessSystemPkgmap(self, pkgmap_path): - """Update the database using data from pkgmap. - - The strategy to only update the necessary bits: - - for each new row - - look it up in the db - - if doesn't exist, create it - - if exists, check the - TODO: continue this description - """ - INSERT_SQL = """ - INSERT INTO csw_file (basename, path, line) - VALUES (?, ?, ?); - """ - sqlite_cursor = self.sqlite_conn.cursor() - break_after = DEBUG_BREAK_PKGMAP_AFTER - contents_length = os.stat(pkgmap_path).st_size - if break_after: - estimated_lines = break_after - else: - estimated_lines = contents_length / INSTALL_CONTENTS_AVG_LINE_LENGTH - # The progressbar library doesn't like handling larger numbers - # It displays up to 99% if we feed it a maxval in the range of hundreds of - # thousands. - progressbar_divisor = int(estimated_lines / 1000) - if progressbar_divisor < 1: - progressbar_divisor = 1 - update_period = 1L - # To help delete old records - system_pkgmap_fd = open(pkgmap_path, "r") - stop_re = re.compile("(%s)" % "|".join(self.STOP_PKGS)) - # Creating a data structure: - # soname - {: , : , ...} - logging.debug("Building database cache db of the %s file", - pkgmap_path) - logging.info("Processing %s, it can take a few minutes", pkgmap_path) - count = itertools.count() - bar = progressbar.ProgressBar() - bar.maxval = estimated_lines / progressbar_divisor - bar.start() - # I tried dropping the csw_file_basename_idx index to speed up operation, - # but after I measured the times, it turned out that it doesn't make any - # difference to the total runnng time. - # logging.info("Dropping csw_file_basename_idx") - # sqlite_cursor.execute("DROP INDEX csw_file_basename_idx;") - for line in system_pkgmap_fd: - i = count.next() - if not i % update_period and (i / progressbar_divisor) <= bar.maxval: - bar.update(i / progressbar_divisor) - if stop_re.search(line): - continue - if line.startswith("#"): - continue - fields = re.split(c.WS_RE, line) - pkgmap_entry_path = fields[0].split("=")[0] - pkgmap_entry_dir, pkgmap_entry_base_name = os.path.split(pkgmap_entry_path) - # The following SQLObject-driven inserts are 60 times slower than the raw - # sqlite API. - # pkgmap_entry = m.CswFile(basename=pkgmap_entry_base_name, - # path=pkgmap_entry_dir, line=line.strip()) - # This page has some hints: - # http://www.mail-archive.com/sqlobject-discuss at lists.sourceforge.net/msg04641.html - # "These are simple straightforward INSERTs without any additional - # high-level burden - no SELECT, no caching, nothing. Fire and forget." - # sql = self.sqo_conn.sqlrepr( - # sqlobject.sqlbuilder.Insert(m.CswFile.sqlmeta.table, values=record)) - # self.sqo_conn.query(sql) - # ...unfortunately, it isn't any faster in practice. - # The fastest way is: - sqlite_cursor.execute(INSERT_SQL, [pkgmap_entry_base_name, - pkgmap_entry_dir, - line.strip()]) - if break_after and i > break_after: - logging.warning("Breaking after %s for debugging purposes.", break_after) - break - bar.finish() - self.sqlite_conn.commit() - logging.debug("All lines of %s were processed.", pkgmap_path) - - def _ParsePkginfoLine(self, line): - fields = re.split(c.WS_RE, line) - pkgname = fields[1] - pkg_desc = u" ".join(fields[2:]) - return pkgname, pkg_desc - - def PopulatePackagesTable(self): - logging.info("Updating the packages table") - args = ["pkginfo"] - pkginfo_proc = subprocess.Popen(args, stdout=subprocess.PIPE) - stdout, stderr = pkginfo_proc.communicate() - ret = pkginfo_proc.wait() - lines = stdout.splitlines() - bar = progressbar.ProgressBar() - bar.maxval = len(lines) - bar.start() - count = itertools.count() - INSERT_SQL = """ - INSERT INTO pkginst (pkgname, pkg_desc) - VALUES (?, ?); - """ - # If self.GetInstalledPackages calls out to the initialization, - # the result is an infinite recursion. - installed_pkgs = self.GetInstalledPackages(initialize=False) - for line in stdout.splitlines(): - pkgname, pkg_desc = self._ParsePkginfoLine(line) - if pkgname not in installed_pkgs: - # This is slow: - # pkg = m.Pkginst(pkgname=pkgname, pkg_desc=pkg_desc) - # This is much faster: - self.sqlite_conn.execute(INSERT_SQL, [pkgname, pkg_desc]) - i = count.next() - bar.update(i) - # Need to commit, otherwise subsequent SQLObject calls will fail. - self.sqlite_conn.commit() - bar.finish() - - def SetDatabaseMtime(self): - mtime = self.GetFileMtime() - res = m.CswConfig.select(m.CswConfig.q.option_key==CONFIG_MTIME) - if res.count() == 0: - logging.debug("Inserting the mtime (%s) into the database.", mtime) - config_record = m.CswConfig(option_key=CONFIG_MTIME, float_value=mtime) - else: - logging.debug("Updating the mtime (%s) in the database.", mtime) - res.getOne().float_value = mtime - - def SetDatabaseSchemaVersion(self): - try: - config_option = m.CswConfig.select( - m.CswConfig.q.option_key==CONFIG_DB_SCHEMA).getOne() - config_option.int_value = database.DB_SCHEMA_VERSION - except sqlobject.main.SQLObjectNotFound, e: - version = m.CswConfig(option_key=CONFIG_DB_SCHEMA, - int_value=database.DB_SCHEMA_VERSION) - - def GetPkgmapLineByBasename(self, filename): - """Returns pkgmap lines by basename: - { - path1: line1, - path2: line2, - } - """ - if filename in self.cache: - return self.cache[filename] - self._LazyInitializeDatabase() - res = m.CswFile.select(m.CswFile.q.basename==filename) - lines = {} - for obj in res: - lines[obj.path] = obj.line - if len(lines) == 0: - logging.debug("Cache doesn't contain filename %s", filename) - self.cache[filename] = lines - return lines - - def _InferPackagesFromPkgmapLine(self, line): - """Given a pkgmap line, return all packages it contains.""" - line = line.strip() - parts = re.split(c.WS_RE, line) - pkgs = [] - if parts[1] == 'd': - parts = parts[6:] - while parts: - part = parts.pop() - if self.digits_re.match(part): - break - elif "none" == part: - break - pkgs.append(part) - # Make the packages appear in the same order as in the install/contents - # file. - pkgs.reverse() - return pkgs - - def GetPathsAndPkgnamesByBasename(self, filename): - """Returns paths and packages by basename. - - e.g. - {"/opt/csw/lib": ["CSWfoo", "CSWbar"], - "/opt/csw/1/lib": ["CSWfoomore"]} - """ - lines = self.GetPkgmapLineByBasename(filename) - pkgs = {} - # Infer packages - for file_path in lines: - pkgs[file_path] = self._InferPackagesFromPkgmapLine(lines[file_path]) - # self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libc.so.1').AndReturn({ - # "/usr/lib": (u"SUNWcsl",)}) - logging.debug("self.error_mgr_mock.GetPathsAndPkgnamesByBasename(%s).AndReturn(%s)", - repr(filename), pprint.pformat(pkgs)) - return pkgs - - def GetPkgByPath(self, full_path): - if full_path not in self.pkgs_by_path_cache: - self._LazyInitializeDatabase() - path, basename = os.path.split(full_path) - try: - obj = m.CswFile.select( - sqlobject.AND( - m.CswFile.q.path==path, - m.CswFile.q.basename==basename)).getOne() - self.pkgs_by_path_cache[full_path] = self._InferPackagesFromPkgmapLine( - obj.line) - except sqlobject.main.SQLObjectNotFound, e: - logging.debug("Couldn't find in the db: %s/%s", path, basename) - logging.debug(e) - self.pkgs_by_path_cache[full_path] = [] - logging.debug("self.error_mgr_mock.GetPkgByPath(%s).AndReturn(%s)", - repr(full_path), pprint.pformat(self.pkgs_by_path_cache[full_path])) - return self.pkgs_by_path_cache[full_path] - - def GetDatabaseMtime(self): - if not self.cache_mtime: - res = m.CswConfig.select(m.CswConfig.q.option_key==CONFIG_MTIME) - if res.count() == 1: - self.cache_mtime = res.getOne().float_value - elif res.count() < 1: - self.cache_mtime = 1 - logging.debug("GetDatabaseMtime() --> %s", self.cache_mtime) - return self.cache_mtime - - def GetFileMtime(self): - if not self.file_mtime: - stat_data = os.stat(SYSTEM_PKGMAP) - self.file_mtime = stat_data.st_mtime - return self.file_mtime - - def GetDatabaseSchemaVersion(self): - schema_on_disk = 1L - if not m.CswConfig.tableExists(): - return schema_on_disk; - res = m.CswConfig.select(m.CswConfig.q.option_key == CONFIG_DB_SCHEMA) - if res.count() < 1: - logging.debug("No db schema value found, assuming %s.", - schema_on_disk) - elif res.count() == 1: - schema_on_disk = res.getOne().int_value - return schema_on_disk - - def IsDatabaseUpToDate(self): - f_mtime_epoch = self.GetFileMtime() - d_mtime_epoch = self.GetDatabaseMtime() - f_mtime = time.gmtime(int(f_mtime_epoch)) - d_mtime = time.gmtime(int(d_mtime_epoch)) - logging.debug("IsDatabaseUpToDate: f_mtime %s, d_time: %s", f_mtime, d_mtime) - # Rounding up to integer seconds. There is a race condition: - # pkgadd finishes at 100.1 - # checkpkg reads /var/sadm/install/contents at 100.2 - # new pkgadd runs and finishes at 100.3 - # subsequent checkpkg runs won't pick up the last change. - # I don't expect pkgadd to run under 1s. - fresh = f_mtime <= d_mtime - good_version = self.GetDatabaseSchemaVersion() >= database.DB_SCHEMA_VERSION - logging.debug("IsDatabaseUpToDate: good_version=%s, fresh=%s", - repr(good_version), repr(fresh)) - return fresh and good_version - - def ClearTablesForUpdates(self): - for table in self.TABLES_THAT_NEED_UPDATES: - table.clearTable() - - def PurgeDatabase(self, drop_tables=False): - if drop_tables: - for table in self.TABLES: - if table.tableExists(): - table.dropTable() - else: - logging.debug("Truncating all tables") - for table in self.TABLES: - table.clearTable() - - def GetInstalledPackages(self, initialize=True): - """Returns a dictionary of all installed packages.""" - if initialize: - self._LazyInitializeDatabase() - res = m.Pkginst.select() - return dict([[str(x.pkgname), str(x.pkg_desc)] for x in res]) - - -class LddEmulator(object): - """A class to emulate ldd(1) - - Used primarily to resolve SONAMEs and detect package dependencies. - """ - def __init__(self): - self.runpath_expand_cache = {} - self.runpath_origin_expand_cache = {} - self.symlink_expand_cache = {} - self.symlink64_cache = {} - self.runpath_sanitize_cache = {} - - def ExpandRunpath(self, runpath, isalist, binary_path): - """Expands a signle runpath element. - - Args: - runpath: e.g. "/opt/csw/lib/$ISALIST" - isalist: isalist elements - binary_path: Necessary to expand $ORIGIN - """ - key = (runpath, tuple(isalist)) - if key not in self.runpath_expand_cache: - origin_present = False - # Emulating $ISALIST and $ORIGIN expansion - if '$ORIGIN' in runpath: - origin_present = True - if origin_present: - key_o = (runpath, tuple(isalist), binary_path) - if key_o in self.runpath_origin_expand_cache: - return self.runpath_origin_expand_cache[key_o] - else: - if not binary_path.startswith("/"): - binary_path = "/" + binary_path - runpath = runpath.replace('$ORIGIN', binary_path) - if '$ISALIST' in runpath: - expanded_list = [runpath.replace('/$ISALIST', '')] - expanded_list += [runpath.replace('$ISALIST', isa) for isa in isalist] - else: - expanded_list = [runpath] - expanded_list = [os.path.abspath(p) for p in expanded_list] - if not origin_present: - self.runpath_expand_cache[key] = expanded_list - else: - self.runpath_origin_expand_cache[key_o] = expanded_list - return self.runpath_origin_expand_cache[key_o] - return self.runpath_expand_cache[key] - - def ExpandSymlink(self, symlink, target, input_path): - key = (symlink, target, input_path) - if key not in self.symlink_expand_cache: - symlink_re = re.compile(r"%s(/|$)" % symlink) - if re.search(symlink_re, input_path): - result = input_path.replace(symlink, target) - else: - result = input_path - self.symlink_expand_cache[key] = result - return self.symlink_expand_cache[key] - - def Emulate64BitSymlinks(self, runpath_list): - """Need to emulate the 64 -> amd64, 64 -> sparcv9 symlink - - Since we don't know the architecture, we are adding both amd64 and - sparcv9. It should be safe - there are other checks that make sure - that right architectures are in the right directories. - """ - key = tuple(runpath_list) - if key not in self.symlink64_cache: - symlinked_list = [] - for runpath in runpath_list: - for symlink, expansion_list in SYSTEM_SYMLINKS: - for target in expansion_list: - expanded = self.ExpandSymlink(symlink, target, runpath) - if expanded not in symlinked_list: - symlinked_list.append(expanded) - self.symlink64_cache[key] = symlinked_list - return self.symlink64_cache[key] - - def SanitizeRunpath(self, runpath): - if runpath not in self.runpath_sanitize_cache: - self.runpath_sanitize_cache[runpath] = os.path.normpath(runpath) - return self.runpath_sanitize_cache[runpath] - - - def ResolveSoname(self, runpath_list, soname, isalist, - path_list, binary_path): - """Emulates ldd behavior, minimal implementation. - - runpath: e.g. ["/opt/csw/lib/$ISALIST", "/usr/lib"] - soname: e.g. "libfoo.so.1" - isalist: e.g. ["sparcv9", "sparcv8"] - path_list: A list of paths where the soname is present, e.g. - ["/opt/csw/lib", "/opt/csw/lib/sparcv9"] - - The function returns the one path. - """ - # Emulating the install time symlinks, for instance, if the prototype contains - # /opt/csw/lib/i386/foo.so.0 and /opt/csw/lib/i386 is a symlink to ".", - # the shared library ends up in /opt/csw/lib/foo.so.0 and should be - # findable even when RPATH does not contain $ISALIST. - original_paths_by_expanded_paths = {} - for p in path_list: - expanded_p_list = self.Emulate64BitSymlinks([p]) - # We can't just expand and return; we need to return one of the paths given - # in the path_list. - for expanded_p in expanded_p_list: - original_paths_by_expanded_paths[expanded_p] = p - logging.debug( - "%s: looking for %s in %s", - soname, runpath_list, original_paths_by_expanded_paths.keys()) - for runpath_expanded in runpath_list: - if runpath_expanded in original_paths_by_expanded_paths: - # logging.debug("Found %s", - # original_paths_by_expanded_paths[runpath_expanded]) - return original_paths_by_expanded_paths[runpath_expanded] - - -def ParseDumpOutput(dump_output): - binary_data = {RUNPATH: [], - NEEDED_SONAMES: []} - runpath = [] - rpath = [] - for line in dump_output.splitlines(): - fields = re.split(c.WS_RE, line) - if len(fields) < 3: - continue - if fields[1] == "NEEDED": - binary_data[NEEDED_SONAMES].append(fields[2]) - elif fields[1] == "RUNPATH": - runpath.extend(fields[2].split(":")) - elif fields[1] == "RPATH": - rpath.extend(fields[2].split(":")) - elif fields[1] == "SONAME": - binary_data[SONAME] = fields[2] - if runpath: - binary_data[RUNPATH].extend(runpath) - elif rpath: - binary_data[RUNPATH].extend(rpath) - - # Converting runpath to a tuple, which is a hashable data type and can act as - # a key in a dict. - binary_data[RUNPATH] = tuple(binary_data[RUNPATH]) - # the NEEDED list must not be modified, converting to a tuple. - binary_data[NEEDED_SONAMES] = tuple(binary_data[NEEDED_SONAMES]) - binary_data["RUNPATH RPATH the same"] = (runpath == rpath) - binary_data["RPATH set"] = bool(rpath) - binary_data["RUNPATH set"] = bool(runpath) - return binary_data - - -class CheckpkgManagerBase(object): - """Common functions between the older and newer calling functions.""" - - def __init__(self, name, stats_basedir, md5sum_list, debug=False): - self.debug = debug - self.name = name - self.md5sum_list = md5sum_list - self.stats_basedir = stats_basedir - self.errors = [] - self.individual_checks = [] - self.set_checks = [] - self.packages = [] - - def GetPackageStatsList(self): - return [package_stats.PackageStats(None, self.stats_basedir, x) - for x in self.md5sum_list] - - def FormatReports(self, errors, messages, gar_lines): - namespace = { - "name": self.name, - "errors": errors, - "debug": self.debug, - "textwrap": textwrap, - "messages": messages, - "gar_lines": gar_lines, - } - screen_t = Template.Template(SCREEN_ERROR_REPORT_TMPL, searchList=[namespace]) - tags_report_t = Template.Template(TAG_REPORT_TMPL, searchList=[namespace]) - return screen_t, tags_report_t - - def SetErrorsToDict(self, set_errors, a_dict): - # These were generated by a set, but are likely to be bound to specific - # packages. We'll try to preserve the package assignments. - errors = copy.copy(a_dict) - for tag in set_errors: - if tag.pkgname: - if not tag.pkgname in errors: - errors[tag.pkgname] = [] - errors[tag.pkgname].append(tag) - else: - if "package-set" not in errors: - errors["package-set"] = [] - errors["package-set"].append(tag) - return errors - - def GetOptimizedAllStats(self, stats_obj_list): - logging.info("Unwrapping candies...") - pkgs_data = [] - counter = itertools.count() - length = len(stats_obj_list) - bar = progressbar.ProgressBar() - bar.maxval = length - bar.start() - for stats_obj in stats_obj_list: - # pkg_data = {} - # This bit is tightly tied to the data structures returned by - # PackageStats. - # - # Python strings are already implementing the flyweight pattern. What's - # left is lists and dictionaries. - i = counter.next() - # logging.debug("Loading stats for %s (%s/%s)", - # stats_obj.md5sum, i, length) - raw_pkg_data = stats_obj.GetAllStats() - pkg_data = raw_pkg_data - pkgs_data.append(pkg_data) - bar.update(i) - bar.finish() - return pkgs_data - - def Run(self): - """Runs all the checks - - Returns a tuple of an exit code and a report. - """ - packages_data = self.GetPackageStatsList() - db_stat_objs_by_pkgname = {} - obj_id_list = [] - for pkg in packages_data: - db_obj = pkg.GetDbObject() - db_stat_objs_by_pkgname[db_obj.pkginst.pkgname] = db_obj - obj_id_list.append(db_obj.id) - logging.debug("Deleting old %s errors from the database.", - db_obj.pkginst.pkgname) - conn = sqlobject.sqlhub.processConnection - # It's the maximum number of ORs in a SQL statement. - # Slicing the long list up into s-sized segments. 1000 is too much. - obj_id_lists = SliceList(obj_id_list, 900) - for obj_id_list in obj_id_lists: - # WARNING: This is raw SQL, potentially breaking during a transition to - # another db. It's here for efficiency. - sql = ("DELETE FROM checkpkg_error_tag WHERE %s;" - % " OR ".join("srv4_file_id = %s" % x for x in obj_id_list)) - conn.query(sql) - # Need to construct the predicate by hand. Otherwise: - # File "/opt/csw/lib/python/site-packages/sqlobject/sqlbuilder.py", - # line 829, in OR - # return SQLOp("OR", op1, OR(*ops)) - # RuntimeError: maximum recursion depth exceeded while calling a Python object - # - # The following also tries to use recursion and fails. - # delete_predicate = sqlobject.OR(False) - # for pred in delete_predicate_list: - # delete_predicate = sqlobject.OR(delete_predicate, pred) - # conn.query( - # conn.sqlrepr(sqlbuilder.Delete(m.CheckpkgErrorTag.sqlmeta.table, - # delete_predicate - # ))) - # res = m.CheckpkgErrorTag.select(m.CheckpkgErrorTag.q.srv4_file==db_obj) - # for obj in res: - # obj.destroySelf() - errors, messages, gar_lines = self.GetAllTags(packages_data) - no_errors = len(errors) + 1 - bar = progressbar.ProgressBar() - bar.maxval = no_errors - count = itertools.count(1) - logging.info("Stuffing the candies under the pillow...") - bar.start() - for pkgname, es in errors.iteritems(): - logging.debug("Saving %s errors to the database.", pkgname) - for e in es: - db_error = m.CheckpkgErrorTag(srv4_file=db_stat_objs_by_pkgname[e.pkgname], - pkgname=e.pkgname, - tag_name=e.tag_name, - tag_info=e.tag_info, - msg=e.msg) - bar.update(count.next()) - bar.finish() - flat_error_list = reduce(operator.add, errors.values(), []) - screen_report, tags_report = self.FormatReports(errors, messages, gar_lines) - exit_code = 0 - return (exit_code, screen_report, tags_report) - - -class CheckInterfaceBase(object): - """Proxies interaction with checking functions. - - It wraps access to the /var/sadm/install/contents cache. - """ - - def __init__(self, system_pkgmap=None, lines_dict=None): - self.system_pkgmap = system_pkgmap - if not self.system_pkgmap: - self.system_pkgmap = SystemPkgmap() - self.common_paths = {} - if lines_dict: - self.lines_dict = lines_dict - else: - self.lines_dict = {} - - def GetPathsAndPkgnamesByBasename(self, basename): - """Proxies calls to self.system_pkgmap.""" - return self.system_pkgmap.GetPathsAndPkgnamesByBasename(basename) - - def GetPkgByPath(self, path): - """Proxies calls to self.system_pkgmap.""" - return self.system_pkgmap.GetPkgByPath(path) - - def GetInstalledPackages(self, initialize=True): - return self.system_pkgmap.GetInstalledPackages(initialize) - - def _GetPathsForArch(self, arch): - if not arch in self.lines_dict: - file_name = os.path.join( - os.path.dirname(__file__), "..", "..", "etc", "commondirs-%s" % arch) - logging.debug("opening %s", file_name) - f = open(file_name, "r") - self.lines_dict[arch] = f.read().splitlines() - f.close() - return self.lines_dict[arch] - - def GetCommonPaths(self, arch): - """Returns a list of paths for architecture, from gar/etc/commondirs*.""" - # TODO: If this was cached, it could save a significant amount of time. - if arch not in ('i386', 'sparc', 'all'): - logging.warn("Wrong arch: %s", repr(arch)) - return [] - if arch == 'all': - archs = ('i386', 'sparc') - else: - archs = [arch] - lines = [] - for arch in archs: - lines.extend(self._GetPathsForArch(arch)) - return lines - - -class IndividualCheckInterface(CheckInterfaceBase): - """To be passed to the checking functions. - - Wraps the creation of tag.CheckpkgTag objects. - """ - - def __init__(self, pkgname, system_pkgmap=None): - super(IndividualCheckInterface, self).__init__(system_pkgmap) - self.pkgname = pkgname - self.errors = [] - - def ReportError(self, tag_name, tag_info=None, msg=None): - logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s)", - repr(tag_name), repr(tag_info), repr(msg)) - checkpkg_tag = tag.CheckpkgTag(self.pkgname, tag_name, tag_info, msg=msg) - self.errors.append(checkpkg_tag) - - -class SetCheckInterface(CheckInterfaceBase): - """To be passed to set checking functions.""" - - def __init__(self, system_pkgmap=None): - super(SetCheckInterface, self).__init__(system_pkgmap) - self.errors = [] - - def ReportError(self, pkgname, tag_name, tag_info=None, msg=None): - logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s, %s)", - repr(pkgname), - repr(tag_name), repr(tag_info), repr(msg)) - checkpkg_tag = tag.CheckpkgTag(pkgname, tag_name, tag_info, msg=msg) - self.errors.append(checkpkg_tag) - - -class CheckpkgMessenger(object): - """Class responsible for passing messages from checks to the user.""" - def __init__(self): - self.messages = [] - self.one_time_messages = {} - self.gar_lines = [] - - def Message(self, m): - logging.debug("self.messenger.Message(%s)", repr(m)) - self.messages.append(m) - - def OneTimeMessage(self, key, m): - logging.debug("self.messenger.OneTimeMessage(%s, %s)", repr(key), repr(m)) - if key not in self.one_time_messages: - self.one_time_messages[key] = m - - def SuggestGarLine(self, m): - logging.debug("self.messenger.SuggestGarLine(%s)", repr(m)) - self.gar_lines.append(m) - - -class CheckpkgManager2(CheckpkgManagerBase): - """The second incarnation of the checkpkg manager. - - Implements the API to be used by checking functions. - - Its purpose is to reduce the amount of boilerplate code and allow for easier - unit test writing. - """ - def _RegisterIndividualCheck(self, function): - self.individual_checks.append(function) - - def _RegisterSetCheck(self, function): - self.set_checks.append(function) - - def _AutoregisterChecks(self): - """Autodetects all defined checks.""" - logging.debug("CheckpkgManager2._AutoregisterChecks()") - checkpkg_module = package_checks - members = dir(checkpkg_module) - for member_name in members: - logging.debug("Examining module member: %s", repr(member_name)) - member = getattr(checkpkg_module, member_name) - if callable(member): - if member_name.startswith("Check"): - logging.debug("Registering individual check %s", repr(member_name)) - self._RegisterIndividualCheck(member) - elif member_name.startswith("SetCheck"): - logging.debug("Registering set check %s", repr(member_name)) - self._RegisterSetCheck(member) - - def GetAllTags(self, stats_obj_list): - errors = {} - pkgmap = SystemPkgmap() - logging.debug("Loading all package statistics.") - pkgs_data = self.GetOptimizedAllStats(stats_obj_list) - logging.debug("All package statistics loaded.") - messenger = CheckpkgMessenger() - # Individual checks - count = itertools.count() - bar = progressbar.ProgressBar() - bar.maxval = len(pkgs_data) * len(self.individual_checks) - logging.info("Tasting candies one by one...") - bar.start() - for pkg_data in pkgs_data: - pkgname = pkg_data["basic_stats"]["pkgname"] - check_interface = IndividualCheckInterface(pkgname, pkgmap) - for function in self.individual_checks: - logger = logging.getLogger("%s-%s" % (pkgname, function.__name__)) - logger.debug("Calling %s", function.__name__) - function(pkg_data, check_interface, logger=logger, messenger=messenger) - if check_interface.errors: - errors[pkgname] = check_interface.errors - bar.update(count.next()) - bar.finish() - # Set checks - logging.info("Tasting them all at once...") - for function in self.set_checks: - logger = logging.getLogger(function.__name__) - check_interface = SetCheckInterface(pkgmap) - logger.debug("Calling %s", function.__name__) - function(pkgs_data, check_interface, logger=logger, messenger=messenger) - if check_interface.errors: - errors = self.SetErrorsToDict(check_interface.errors, errors) - messages = messenger.messages + messenger.one_time_messages.values() - return errors, messages, messenger.gar_lines - - def Run(self): - self._AutoregisterChecks() - return super(CheckpkgManager2, self).Run() - - -def GetIsalist(): - args = ["isalist"] - isalist_proc = subprocess.Popen(args, stdout=subprocess.PIPE) - stdout, stderr = isalist_proc.communicate() - ret = isalist_proc.wait() - if ret: - logging.error("Calling isalist has failed.") - isalist = re.split(r"\s+", stdout.strip()) - return tuple(isalist) - - -def ErrorTagsFromFile(file_name): - fd = open(file_name) - error_tags = [] - for line in fd: - if line.startswith("#"): - continue - pkgname, tag_name, tag_info = tag.ParseTagLine(line) - error_tags.append(tag.CheckpkgTag(pkgname, tag_name, tag_info)) - return error_tags - - -def SliceList(l, size): - """Trasforms a list into a list of lists.""" - idxes = xrange(0, len(l), size) - sliced = [l[i:i+size] for i in idxes] - return sliced - def IsMd5(s): # For optimization, move the compilation elsewhere. - md5_re = re.compile(MD5_RE) - return md5_re.match(s) + return MD5_RE.match(s) def GetPackageStatsByFilenamesOrMd5s(args, debug=False): filenames = [] @@ -1059,15 +128,15 @@ filenames.append(arg) srv4_pkgs = [inspective_package.InspectiveCswSrv4File(x) for x in filenames] pkgstat_objs = [] - bar = progressbar.ProgressBar() - bar.maxval = len(md5s) + len(srv4_pkgs) - bar.start() + pbar = progressbar.ProgressBar() + pbar.maxval = len(md5s) + len(srv4_pkgs) + pbar.start() counter = itertools.count() for pkg in srv4_pkgs: pkgstat_objs.append(package_stats.PackageStats(pkg, debug=debug)) - bar.update(counter.next()) + pbar.update(counter.next()) for md5 in md5s: pkgstat_objs.append(package_stats.PackageStats(None, md5sum=md5, debug=debug)) - bar.update(counter.next()) - bar.finish() + pbar.update(counter.next()) + pbar.finish() return pkgstat_objs Added: csw/mgar/gar/v2/lib/python/checkpkg2.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg2.py (rev 0) +++ csw/mgar/gar/v2/lib/python/checkpkg2.py 2010-12-10 16:48:58 UTC (rev 11879) @@ -0,0 +1,178 @@ +#!/usr/bin/env python2.6 +# +# checkpkg +# + +import logging +import operator +import optparse +import os +import sys +import textwrap +import configuration +import datetime +import database + +import package_stats +import checkpkg +import checkpkg_lib +import overrides +import models +import sqlobject + +USAGE = """%prog [ options ] pkg1 [ pkg2 [ ... ] ]""" +CHECKPKG_MODULE_NAME = "The main checking module." +BEFORE_OVERRIDES = """If any of the reported errors were false positives, you +can override them pasting the lines below to the GAR recipe.""" + +AFTER_OVERRIDES = """Please note that checkpkg isn't suggesting you should +simply add these overrides do the Makefile. It only informs what the overrides +could look like. You need to understand what are the reported issues about and +use your best judgement to decide whether to fix the underlying problems or +override them. For more information, scroll up and read the detailed +messages.""" + +UNAPPLIED_OVERRIDES = """WARNING: Some overrides did not match any errors. +They can be removed, as they don't take any effect anyway. If you're getting +errors at the same time, maybe you didn't specify the overrides correctly.""" + + +class Error(Exception): + """Generic error.""" + + +class UsageError(Error): + """Problem with usage, e.g. command line options.""" + + +def main(): + configuration.SetUpSqlobjectConnection() + parser = optparse.OptionParser(USAGE) + parser.add_option("-d", "--debug", + dest="debug", + action="store_true", + default=False, + help="Switch on debugging messages") + parser.add_option("-q", "--quiet", + dest="quiet", + action="store_true", + default=False, + help="Display less messages") + parser.add_option("--catalog-release", + dest="catrel", + default="unstable", + help="A catalog release: experimental, unstable, testing, stable.") + parser.add_option("-r", "--os-releases", + dest="osrel_commas", + help=("Comma separated list of ['SunOS5.9', 'SunOS5.10'], " + "e.g. 'SunOS5.9,SunOS5.10'.")) + parser.add_option("-a", "--architecture", + dest="arch", + help="Architecture: i386, sparc.") + parser.add_option("--profile", dest="profile", + default=False, action="store_true", + help="Enable profiling (a developer option).") + options, args = parser.parse_args() + assert len(args), "The list of files or md5 sums must be not empty." + logging_level = logging.INFO + if options.quiet: + logging_level = logging.WARNING + elif options.debug: + # If both flags are set, debug wins. + logging_level = logging.DEBUG + logging.basicConfig(level=logging_level) + logging.debug("Starting.") + + dm = database.DatabaseManager() + dm.AutoManage() + + + err_msg_list = [] + if not options.osrel_commas: + err_msg_list.append("Please specify --os-releases.") + if not options.arch: + err_msg_list.append("Please specify --architecture.") + if err_msg_list: + raise UsageError(" ".join(err_msg_list)) + + stats_list = [] + collector = package_stats.StatsCollector( + logger=logging, + debug=options.debug) + # We need to separate files and md5 sums. + md5_sums, file_list = [], [] + for arg in args: + if checkpkg.MD5_RE.match(arg): + md5_sums.append(arg) + else: + file_list.append(arg) + if file_list: + stats_list = collector.CollectStatsFromFiles(file_list, None) + # We need the md5 sums of these files + md5_sums.extend([x["basic_stats"]["md5_sum"] for x in stats_list]) + assert md5_sums, "The list of md5 sums must not be empty." + logging.debug("md5_sums: %s", md5_sums) + osrel_list = options.osrel_commas.split(",") + logging.debug("Reading packages data from the database.") + # This part might need improvements in order to handle a whole + # catalog. On the other hand, if we already have the whole catalog in + # the database, we can do it altogether differently. + # Transforming the result to a list in order to force object + # retrieval. + sqo_pkgs = list(models.Srv4FileStats.select( + sqlobject.IN(models.Srv4FileStats.q.md5_sum, md5_sums))) + tags_for_all_osrels = [] + sqo_arch = models.Architecture.selectBy(name=options.arch).getOne() + sqo_catrel = models.CatalogRelease.selectBy(name=options.catrel).getOne() + for osrel in osrel_list: + sqo_osrel = models.OsRelease.selectBy(short_name=osrel).getOne() + check_manager = checkpkg_lib.CheckpkgManager2( + CHECKPKG_MODULE_NAME, + sqo_pkgs, + osrel, + options.arch, + options.catrel, + debug=options.debug, + show_progress=(not options.quiet)) + # Running the checks, reporting and exiting. + exit_code, screen_report, tags_report = check_manager.Run() + screen_report = unicode(screen_report) + if not options.quiet and screen_report: + # TODO: Write this to screen only after overrides are applied. + sys.stdout.write(screen_report) + else: + logging.debug("No screen report.") + + overrides_list = [list(pkg.GetOverridesResult()) for pkg in sqo_pkgs] + override_list = reduce(operator.add, overrides_list) + args = (sqo_osrel, sqo_arch, sqo_catrel) + tag_lists = [list(pkg.GetErrorTagsResult(*args)) for pkg in sqo_pkgs] + error_tags = reduce(operator.add, tag_lists) + # TODO: Set the 'overriden' tag for specific error tags + (tags_after_overrides, + unapplied_overrides) = overrides.ApplyOverrides(error_tags, override_list) + tags_for_all_osrels.extend(tags_after_overrides) + if not options.quiet: + if tags_after_overrides: + print textwrap.fill(BEFORE_OVERRIDES, 80) + for checkpkg_tag in tags_after_overrides: + print checkpkg_tag.ToGarSyntax() + print textwrap.fill(AFTER_OVERRIDES, 80) + if unapplied_overrides: + print textwrap.fill(UNAPPLIED_OVERRIDES, 80) + for override in unapplied_overrides: + print "* Unused %s" % override + exit_code = bool(tags_for_all_osrels) + sys.exit(exit_code) + + +if __name__ == '__main__': + if "--profile" in sys.argv: + import cProfile + t_str = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M") + home = os.environ["HOME"] + cprof_file_name = os.path.join( + home, ".checkpkg", "run-modules-%s.cprof" % t_str) + cProfile.run("main()", sort=1, filename=cprof_file_name) + else: + main() Property changes on: csw/mgar/gar/v2/lib/python/checkpkg2.py ___________________________________________________________________ Added: svn:executable + * Added: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py (rev 0) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-10 16:48:58 UTC (rev 11879) @@ -0,0 +1,600 @@ +# A collection of checkpkg-specific classes. +# +# This file is supposed to drain the checkpkg.py file until is becomes +# empty and goes away. + +import copy +from Cheetah import Template +import logging +import package_stats +import package_checks +import sqlobject +import itertools +import progressbar +import database +import models as m +import textwrap +import os.path +import tag +import pprint +import operator +import common_constants +import sharedlib_utils +import mute_progressbar +import cPickle + + +class Error(Exception): + pass + + +class CatalogDatabaseError(Error): + pass + + +SCREEN_ERROR_REPORT_TMPL = u"""#if $errors +#if $debug +ERROR: One or more errors have been found by $name. +#end if +#for $pkgname in $errors +$pkgname: +#for $error in $errors[$pkgname] +#if $debug + $repr($error) +#elif $error.msg +$textwrap.fill($error.msg, 78, initial_indent="# ", subsequent_indent="# ") +# -> $repr($error) + +#end if +#end for +#end for +#else +#if $debug +OK: $repr($name) module found no problems. +#end if +#end if +#if $messages +#for $msg in $messages +$textwrap.fill($msg, 78, initial_indent=" * ", subsequent_indent=" ") +#end for +#end if +#if $gar_lines + +# Checkpkg suggests adding the following lines to the GAR recipe: +# This is a summary; see above for details. +#for $line in $gar_lines +$line +#end for +#end if +""" + +# http://www.cheetahtemplate.org/docs/users_guide_html_multipage/language.directives.closures.html +TAG_REPORT_TMPL = u"""#if $errors +# Tags reported by $name module +#for $pkgname in $errors +#for $tag in $errors[$pkgname] +#if $tag.msg +$textwrap.fill($tag.msg, 70, initial_indent="# ", subsequent_indent="# ") +#end if +$pkgname: ${tag.tag_name}#if $tag.tag_info# $tag.tag_info#end if# +#end for +#end for +#end if +""" + + +class SqlobjectHelperMixin(object): + + def GetSqlobjectTriad(self, osrel, arch, catrel): + logging.debug("GetSqlobjectTriad(%s, %s, %s)", osrel, arch, catrel) + sqo_arch = m.Architecture.select( + m.Architecture.q.name==arch).getOne() + sqo_osrel = m.OsRelease.select( + m.OsRelease.q.short_name==osrel).getOne() + sqo_catrel = m.CatalogRelease.select( + m.CatalogRelease.q.name==catrel).getOne() + return sqo_osrel, sqo_arch, sqo_catrel + + +class CheckpkgManagerBase(SqlobjectHelperMixin): + """Common functions between the older and newer calling functions.""" + + def __init__(self, name, sqo_pkgs_list, osrel, arch, catrel, debug=False, + show_progress=False): + self.debug = debug + self.name = name + self.sqo_pkgs_list = sqo_pkgs_list + self.errors = [] + self.individual_checks = [] + self.set_checks = [] + self.packages = [] + self.osrel = osrel + self.arch = arch + self.catrel = catrel + self.show_progress = show_progress + + def GetProgressBar(self): + if self.show_progress: + return progressbar.ProgressBar() + else: + return mute_progressbar.MuteProgressBar() + + def GetSqlobjectTriad(self): + return super(CheckpkgManagerBase, self).GetSqlobjectTriad( + self.osrel, self.arch, self.catrel) + + def GetPackageStatsList(self): + raise RuntimeError("Please don't use this function as it violates " + "the Law of Demeter.") + + def FormatReports(self, errors, messages, gar_lines): + namespace = { + "name": self.name, + "errors": errors, + "debug": self.debug, + "textwrap": textwrap, + "messages": messages, + "gar_lines": gar_lines, + } + screen_t = Template.Template(SCREEN_ERROR_REPORT_TMPL, searchList=[namespace]) + tags_report_t = Template.Template(TAG_REPORT_TMPL, searchList=[namespace]) + return screen_t, tags_report_t + + def SetErrorsToDict(self, set_errors, a_dict): + # These were generated by a set, but are likely to be bound to specific + # packages. We'll try to preserve the package assignments. + errors = copy.copy(a_dict) + for tag in set_errors: + if tag.pkgname: + if not tag.pkgname in errors: + errors[tag.pkgname] = [] + errors[tag.pkgname].append(tag) + else: + if "package-set" not in errors: + errors["package-set"] = [] + errors["package-set"].append(tag) + return errors + + def GetOptimizedAllStats(self, stats_obj_list): + logging.info("Unwrapping candies...") + pkgs_data = [] + counter = itertools.count() + length = len(stats_obj_list) + pbar = self.GetProgressBar() + pbar.maxval = length + pbar.start() + for stats_obj in stats_obj_list: + # This bit is tightly tied to the data structures returned by + # PackageStats. + # + # Python strings are already implementing the flyweight pattern. What's + # left is lists and dictionaries. + i = counter.next() + raw_pkg_data = cPickle.loads(stats_obj.data_obj.pickle) + pkg_data = raw_pkg_data + pkgs_data.append(pkg_data) + pbar.update(i) + pbar.finish() + return pkgs_data + + def Run(self): + """Runs all the checks + + Returns a tuple of an exit code and a report. + """ + # packages_data = self.GetPackageStatsList() + assert self.sqo_pkgs_list, "The list of packages must not be empty." + db_stat_objs_by_pkgname = {} + for pkg in self.sqo_pkgs_list: + db_stat_objs_by_pkgname[pkg.pkginst.pkgname] = pkg + logging.debug("Deleting old errors from the database.") + for pkgname, db_obj in db_stat_objs_by_pkgname.iteritems(): + sqo_os_rel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad() + db_obj.RemoveCheckpkgResults( + sqo_os_rel, sqo_arch, sqo_catrel) + errors, messages, gar_lines = self.GetAllTags(self.sqo_pkgs_list) + no_errors = len(errors) + 1 + pbar = self.GetProgressBar() + pbar.maxval = no_errors + count = itertools.count(1) + logging.info("Stuffing the candies under the pillow...") + pbar.start() + for pkgname, es in errors.iteritems(): + logging.debug("Saving errors of %s to the database.", pkgname) + for e in es: + if e.pkgname not in db_stat_objs_by_pkgname: + logging.warning("Not saving an error for %s.", e.pkgname) + continue + db_error = m.CheckpkgErrorTag(srv4_file=db_stat_objs_by_pkgname[e.pkgname], + pkgname=e.pkgname, + tag_name=e.tag_name, + tag_info=e.tag_info, + msg=e.msg, + os_rel=sqo_os_rel, + catrel=sqo_catrel, + arch=sqo_arch) + pbar.update(count.next()) + pbar.finish() + flat_error_list = reduce(operator.add, errors.values(), []) + screen_report, tags_report = self.FormatReports(errors, messages, gar_lines) + exit_code = 0 + return (exit_code, screen_report, tags_report) + + +class CheckInterfaceBase(object): + """Provides an interface for checking functions. + + It wraps access to the catalog database. + """ + + def __init__(self, osrel, arch, catrel, catalog=None, lines_dict=None): + self.osrel = osrel + self.arch = arch + self.catrel = catrel + self.catalog = catalog + if not self.catalog: + self.catalog = Catalog() + self.common_paths = {} + if lines_dict: + self.lines_dict = lines_dict + else: + self.lines_dict = {} + + def GetPathsAndPkgnamesByBasename(self, basename): + """Proxies calls to class member.""" + return self.catalog.GetPathsAndPkgnamesByBasename( + basename, self.osrel, self.arch, self.catrel) + + def GetPkgByPath(self, file_path): + """Proxies calls to self.system_pkgmap.""" + return self.catalog.GetPkgByPath( + file_path, self.osrel, self.arch, self.catrel) + + def GetInstalledPackages(self): + return self.catalog.GetInstalledPackages( + self.osrel, self.arch, self.catrel) + + def _GetPathsForArch(self, arch): + if not arch in self.lines_dict: + file_name = os.path.join( + os.path.dirname(__file__), "..", "..", "etc", "commondirs-%s" % arch) + logging.debug("opening %s", file_name) + f = open(file_name, "r") + self.lines_dict[arch] = f.read().splitlines() + f.close() + return self.lines_dict[arch] + + def GetCommonPaths(self, arch): + """Returns a list of paths for architecture, from gar/etc/commondirs*.""" + # TODO: If this was cached, it could save a significant amount of time. + if arch not in ('i386', 'sparc', 'all'): + logging.warn("Wrong arch: %s", repr(arch)) + return [] + if arch == 'all': + archs = ('i386', 'sparc') + else: + archs = [arch] + lines = [] + for arch in archs: + lines.extend(self._GetPathsForArch(arch)) + return lines + + +class IndividualCheckInterface(CheckInterfaceBase): + """To be passed to the checking functions. + + Wraps the creation of tag.CheckpkgTag objects. + """ + + def __init__(self, pkgname, osrel, arch, catrel, catalog=None): + super(IndividualCheckInterface, self).__init__(osrel, arch, catrel, catalog) + self.pkgname = pkgname + self.errors = [] + + def ReportError(self, tag_name, tag_info=None, msg=None): + logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s)", + repr(tag_name), repr(tag_info), repr(msg)) + checkpkg_tag = tag.CheckpkgTag(self.pkgname, tag_name, tag_info, msg=msg) + self.errors.append(checkpkg_tag) + + +class SetCheckInterface(CheckInterfaceBase): + """To be passed to set checking functions.""" + + def __init__(self, osrel, arch, catrel, catalog=None): + super(SetCheckInterface, self).__init__(osrel, arch, catrel, catalog) + self.errors = [] + + def ReportError(self, pkgname, tag_name, tag_info=None, msg=None): + logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s, %s)", + repr(pkgname), + repr(tag_name), repr(tag_info), repr(msg)) + checkpkg_tag = tag.CheckpkgTag(pkgname, tag_name, tag_info, msg=msg) + self.errors.append(checkpkg_tag) + + +class CheckpkgMessenger(object): + """Class responsible for passing messages from checks to the user.""" + def __init__(self): + self.messages = [] + self.one_time_messages = {} + self.gar_lines = [] + + def Message(self, m): + logging.debug("self.messenger.Message(%s)", repr(m)) + self.messages.append(m) + + def OneTimeMessage(self, key, m): + logging.debug("self.messenger.OneTimeMessage(%s, %s)", repr(key), repr(m)) + if key not in self.one_time_messages: + self.one_time_messages[key] = m + + def SuggestGarLine(self, m): + logging.debug("self.messenger.SuggestGarLine(%s)", repr(m)) + self.gar_lines.append(m) + + +class CheckpkgManager2(CheckpkgManagerBase): + """The second incarnation of the checkpkg manager. + + Implements the API to be used by checking functions. + + Its purpose is to reduce the amount of boilerplate code and allow for easier + unit test writing. + """ + def _RegisterIndividualCheck(self, function): + self.individual_checks.append(function) + + def _RegisterSetCheck(self, function): + self.set_checks.append(function) + + def _AutoregisterChecks(self): + """Autodetects all defined checks.""" + logging.debug("CheckpkgManager2._AutoregisterChecks()") + checkpkg_module = package_checks + members = dir(checkpkg_module) + for member_name in members: + logging.debug("Examining module member: %s", repr(member_name)) + member = getattr(checkpkg_module, member_name) + if callable(member): + if member_name.startswith("Check"): + logging.debug("Registering individual check %s", repr(member_name)) + self._RegisterIndividualCheck(member) + elif member_name.startswith("SetCheck"): + logging.debug("Registering set check %s", repr(member_name)) + self._RegisterSetCheck(member) + + def GetAllTags(self, stats_obj_list): + errors = {} + catalog = Catalog() + logging.debug("Loading all package statistics.") + pkgs_data = self.GetOptimizedAllStats(stats_obj_list) + logging.debug("All package statistics loaded.") + messenger = CheckpkgMessenger() + # Individual checks + count = itertools.count() + pbar = self.GetProgressBar() + pbar.maxval = len(pkgs_data) * len(self.individual_checks) + logging.info("Tasting candies one by one...") + pbar.start() + for pkg_data in pkgs_data: + pkgname = pkg_data["basic_stats"]["pkgname"] + check_interface = IndividualCheckInterface( + pkgname, self.osrel, self.arch, self.catrel, catalog) + for function in self.individual_checks: + logger = logging.getLogger("%s-%s" % (pkgname, function.__name__)) + logger.debug("Calling %s", function.__name__) + function(pkg_data, check_interface, logger=logger, messenger=messenger) + if check_interface.errors: + errors[pkgname] = check_interface.errors + pbar.update(count.next()) + pbar.finish() + # Set checks + logging.info("Tasting them all at once...") + for function in self.set_checks: + logger = logging.getLogger(function.__name__) + check_interface = SetCheckInterface( + self.osrel, self.arch, self.catrel, catalog) + logger.debug("Calling %s", function.__name__) + function(pkgs_data, check_interface, logger=logger, messenger=messenger) + if check_interface.errors: + errors = self.SetErrorsToDict(check_interface.errors, errors) + messages = messenger.messages + messenger.one_time_messages.values() + return errors, messages, messenger.gar_lines + + def Run(self): + self._AutoregisterChecks() + return super(CheckpkgManager2, self).Run() + + +def SliceList(l, size): + """Trasforms a list into a list of lists.""" + idxes = xrange(0, len(l), size) + sliced = [l[i:i+size] for i in idxes] + return sliced + + +class CatalogMixin(SqlobjectHelperMixin): + """Responsible for functionality related to catalog operations. + + These include: + - getting a list of all packages + - getting a list of packages that contain certain files + - getting a list of packages that contain files of certain names + """ + + def __init__(self): + super(CatalogMixin, self).__init__() + self.pkgs_by_path_cache = {} + + def GetInstalledPackages(self, osrel, arch, catrel): + sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( + osrel, arch, catrel) + res = m.Srv4FileInCatalog.select( + sqlobject.AND( + m.Srv4FileInCatalog.q.osrel==sqo_osrel, + m.Srv4FileInCatalog.q.arch==sqo_arch, + m.Srv4FileInCatalog.q.catrel==sqo_catrel)) + pkgs = [] + for srv4_in_cat in res: + pkgs.append(srv4_in_cat.srv4file.pkginst.pkgname) + return pkgs + + def GetPathsAndPkgnamesByBasename(self, basename, osrel, arch, catrel): + """Retrieves pkginst names of packages that have certain files. + + Since it needs to match a specific catalog, a table join is required: + - CswFile (basename) + - related Srv4FileStats + - related Srv4FileInCatalog + + Args: + basename: u'libfoo.so.1' + osrel: u'5.9' + arch: 'sparc', 'x86' + catrel: 'stable' + + Returns: + {"/opt/csw/lib": ["CSWfoo", "CSWbar"], + "/opt/csw/1/lib": ["CSWfoomore"]} + """ + pkgs = {} + sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( + osrel, arch, catrel) + + # Looks like this join is hard to do that way. + # res = m.Srv4FileInCatalog.select( + # sqlobject.AND( + # m.Srv4FileInCatalog.q.osrel==sqo_osrel, + # m.Srv4FileInCatalog.q.arch==sqo_arch, + # m.Srv4FileInCatalog.q.catrel==sqo_catrel)). + # throughTo.srv4file.thoughTo.files + + # We'll implement it on the application level. First, we'll get all + # the files that match the basename, and then filter them based on + # catalog properties. + res = m.CswFile.select(m.CswFile.q.basename==basename) + file_list = [] + for f in res: + # Check whether osrel, arch and catrel are matching. + for cat in f.srv4_file.in_catalogs: + if (f.srv4_file.registered + and cat.osrel == sqo_osrel + and cat.arch == sqo_arch + and cat.catrel == sqo_catrel): + file_list.append(f) + for obj in file_list: + pkgs.setdefault(obj.path, []) + pkgs[obj.path].append(obj.pkginst.pkgname) + logging.debug("self.error_mgr_mock.GetPathsAndPkgnamesByBasename(%s)" + ".AndReturn(%s)", repr(basename), pprint.pformat(pkgs)) + return pkgs + + def GetPkgByPath(self, full_file_path, osrel, arch, catrel): + """Returns a list of packages.""" + # Memoization for performance + key = (full_file_path, osrel, arch, catrel) + if key not in self.pkgs_by_path_cache: + pkgs = [] + file_path, basename = os.path.split(full_file_path) + sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( + osrel, arch, catrel) + res = m.CswFile.select( + sqlobject.AND( + m.CswFile.q.path==file_path, + m.CswFile.q.basename==basename)) + for sqo_file in res: + # Making sure that we're taking packages only from the right catalog. + for cat in sqo_file.srv4_file.in_catalogs: + if (sqo_file.srv4_file.registered + and cat.osrel == sqo_osrel + and cat.arch == sqo_arch + and cat.catrel == sqo_catrel): + pkgs.append(sqo_file.srv4_file.pkginst.pkgname) + self.pkgs_by_path_cache[key] = frozenset(pkgs) + return self.pkgs_by_path_cache[key] + + def CommonArchByString(self, s): + return sharedlib_utils.ArchByString(s) + + def Srv4MatchesCatalog(self, sqo_srv4, sqo_arch): + cat_arch = self.CommonArchByString(sqo_arch.name) + pkg_arch = self.CommonArchByString(sqo_srv4.arch.name) + ans = (cat_arch == pkg_arch) or (pkg_arch == common_constants.ARCH_ALL) + if not ans: + logging.debug("Srv4MatchesCatalog(): mismatch: %s / %s and %s / %s", + cat_arch, pkg_arch, pkg_arch, common_constants.ARCH_ALL) + # Some packages have the architecture in the file saying 'all', but pkginfo + # says 'i386'. + filename_arch = self.CommonArchByString(sqo_srv4.filename_arch.name) + if filename_arch == common_constants.ARCH_ALL: + ans = True + if filename_arch != pkg_arch: + logging.warning( + "Package %s declares %s in pkginfo and %s in the filename.", + sqo_srv4, repr(pkg_arch), repr(filename_arch)) + return ans + + def AddSrv4ToCatalog(self, sqo_srv4, osrel, arch, catrel): + """Registers a srv4 file in a catalog.""" + logging.debug("AddSrv4ToCatalog(%s, %s, %s, %s)", + sqo_srv4, osrel, arch, catrel) + sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( + osrel, arch, catrel) + if not self.Srv4MatchesCatalog(sqo_srv4, sqo_arch): + raise CatalogDatabaseError( + "Specified package does not match the catalog. " + "Package: %s, catalog: %s %s %s" + % (sqo_srv4, osrel, arch, catrel)) + if not sqo_srv4.registered: + raise CatalogDatabaseError( + "Package %s (%s) is not registered for releases." + % (sqo_srv4.basename, sqo_srv4.md5_sum)) + # Checking for presence of a different srv4 with the same pkginst in the + # same catalog + pkginst = sqo_srv4.pkginst + res = m.Srv4FileStats.select( + m.Srv4FileStats.q.pkginst==pkginst).throughTo.in_catalogs.filter( + sqlobject.AND( + m.Srv4FileInCatalog.q.osrel==sqo_osrel, + m.Srv4FileInCatalog.q.arch==sqo_arch, + m.Srv4FileInCatalog.q.catrel==sqo_catrel, + m.Srv4FileInCatalog.q.srv4file!=sqo_srv4)) + if len(list(res)): + raise CatalogDatabaseError( + "There already is a package with that pkgname: %s" % pkginst) + # Checking for presence of the same srv4 already in the catalog. + res = m.Srv4FileInCatalog.select( + sqlobject.AND( + m.Srv4FileInCatalog.q.osrel==sqo_osrel, + m.Srv4FileInCatalog.q.arch==sqo_arch, + m.Srv4FileInCatalog.q.catrel==sqo_catrel, + m.Srv4FileInCatalog.q.srv4file==sqo_srv4)) + if len(list(res)): + logging.debug("%s is already part of %s %s %s", + sqo_srv4, osrel, arch, catrel) + # Our srv4 is already part of that catalog. + return + obj = m.Srv4FileInCatalog( + arch=sqo_arch, + osrel=sqo_osrel, + catrel=sqo_catrel, + srv4file=sqo_srv4) + + def RemoveSrv4(self, sqo_srv4, osrel, arch, catrel): + sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( + osrel, arch, catrel) + sqo_srv4_in_cat = m.Srv4FileInCatalog.select( + sqlobject.AND( + m.Srv4FileInCatalog.q.arch==sqo_arch, + m.Srv4FileInCatalog.q.osrel==sqo_osrel, + m.Srv4FileInCatalog.q.catrel==sqo_catrel, + m.Srv4FileInCatalog.q.srv4file==sqo_srv4)).getOne() + sqo_srv4_in_cat.registered = False + # TODO(maciej): Remove all files belonging to that one + for cat_file in sqo_srv4_in_cat.srv4file.files: + cat_file.destroySelf() + + +class Catalog(CatalogMixin): + pass Added: csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py (rev 0) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-10 16:48:58 UTC (rev 11879) @@ -0,0 +1,74 @@ +#!/usr/bin/env python2.6 + +import copy +import unittest +import checkpkg_lib +import tag +import package_stats +import database +import sqlobject +import models +import package_stats +import inspective_package +import mox +import test_base + +from testdata.neon_stats import pkgstats as neon_stats + + +class CheckpkgManager2UnitTest(unittest.TestCase): + + def setUp(self): + super(CheckpkgManager2UnitTest, self).setUp() + self.mox = mox.Mox() + + def testSingleTag(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + tags = { + "CSWfoo": [ + tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), + ], + } + screen_report, tags_report = m.FormatReports(tags, [], []) + expected = u'# Tags reported by testname module\nCSWfoo: foo-tag foo-info\n' + self.assertEqual(expected, unicode(tags_report)) + + def testThreeTags(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + tags = { + "CSWfoo": [ + tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), + tag.CheckpkgTag("CSWfoo", "bar-tag", "bar-info"), + tag.CheckpkgTag("CSWfoo", "baz-tag"), + ], + } + screen_report, tags_report = m.FormatReports(tags, [], []) + expected = (u'# Tags reported by testname module\n' + u'CSWfoo: foo-tag foo-info\n' + u'CSWfoo: bar-tag bar-info\n' + u'CSWfoo: baz-tag\n') + self.assertEqual(expected, unicode(tags_report)) + + +class CheckpkgManager2DatabaseIntegrationTest( + test_base.SqlObjectTestMixin, unittest.TestCase): + + def setUp(self): + super(CheckpkgManager2DatabaseIntegrationTest, self).setUp() + self.mox = mox.Mox() + + def testInsertNeon(self): + self.dbc.InitialDataImport() + sqo_pkg = package_stats.PackageStats.SaveStats(neon_stats[0], True) + cm = checkpkg_lib.CheckpkgManager2( + "testname", [sqo_pkg], "SunOS5.9", "sparc", "unstable", + show_progress=False) + cm.Run() + # Verifying that there are some reported error tags. + self.assertTrue(list(models.CheckpkgErrorTag.select())) + + +if __name__ == '__main__': + unittest.main() Property changes on: csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py ___________________________________________________________________ Added: svn:executable + * Modified: csw/mgar/gar/v2/lib/python/checkpkg_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_test.py 2010-12-10 13:48:16 UTC (rev 11878) +++ csw/mgar/gar/v2/lib/python/checkpkg_test.py 2010-12-10 16:48:58 UTC (rev 11879) @@ -1,16 +1,24 @@ -#!/opt/csw/bin/python2.6 +#!/usr/bin/env python2.6 # $Id$ +import copy import re import unittest import mox import difflib import checkpkg +import checkpkg_lib +import database +import models as m import tag -import testdata.dump_output_1 as dump_1 -import testdata.dump_output_2 as dump_2 -import testdata.dump_output_3 as dump_3 +import package_stats +import sqlite3 +import sqlobject +import test_base +from testdata.tree_stats import pkgstats as tree_stats +from testdata.neon_stats import pkgstats as neon_stats + """A set of unit tests for the library checking code. A bunch of lines to test in the interactive Python shell. @@ -23,250 +31,6 @@ SELECT * FROM systempkgmap WHERE basename = 'libncursesw.so.5'; """ -class GetLinesBySonameUnitTest(unittest.TestCase): - - def setUp(self): - self.pkgmap_mocker = mox.Mox() - self.e = checkpkg.LddEmulator() - - def testExpandRunpath_1(self): - isalist = ["foo", "bar"] - runpath = "/opt/csw/lib/$ISALIST" - expected = ["/opt/csw/lib", "/opt/csw/lib/foo", "/opt/csw/lib/bar"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_2(self): - isalist = ["foo", "bar"] - runpath = "/opt/csw/mysql5/lib/$ISALIST/mysql" - expected = ["/opt/csw/mysql5/lib/mysql", - "/opt/csw/mysql5/lib/foo/mysql", - "/opt/csw/mysql5/lib/bar/mysql"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_OriginSimple(self): - isalist = () - runpath = "$ORIGIN" - expected = ["/opt/csw/lib"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_OriginDots(self): - isalist = () - runpath = "$ORIGIN/.." - expected = ["/opt/csw/lib"] - bin_path = "opt/csw/lib/subdir" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_Caching(self): - """Make sure that the cache doesn't mess it up. - - Two invocations, where the only difference is the binary path. - """ - isalist = () - runpath = "/opt/csw/lib/foo" - expected = ["/opt/csw/lib/foo"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - expected = ["/opt/csw/lib/foo"] - bin_path = "/opt/csw/lib/foo" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_OriginCaching(self): - """Make sure that the cache doesn't mess it up. - - Two invocations, where the only difference is the binary path. - """ - isalist = () - runpath = "$ORIGIN" - expected = ["/opt/csw/lib"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, - self.e.ExpandRunpath(runpath, isalist, bin_path)) - expected = ["/opt/csw/foo/lib"] - bin_path = "/opt/csw/foo/lib" - self.assertEquals(expected, - self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_OnlyIsalist(self): - """Make sure that the cache doesn't mess it up. - - Two invocations, where the only difference is the binary path. - """ - isalist = ("bar",) - runpath = "/opt/csw/lib/$ISALIST" - expected = ["/opt/csw/lib", "/opt/csw/lib/bar"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testEmulate64BitSymlinks_1(self): - runpath_list = ["/opt/csw/mysql5/lib/foo/mysql/64"] - expected = "/opt/csw/mysql5/lib/foo/mysql/amd64" - self.assertTrue(expected in self.e.Emulate64BitSymlinks(runpath_list)) - - def testEmulate64BitSymlinks_2(self): - runpath_list = ["/opt/csw/mysql5/lib/64/mysql/foo"] - expected = "/opt/csw/mysql5/lib/amd64/mysql/foo" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertTrue(expected in result, "%s not in %s" % (expected, result)) - - def testEmulate64BitSymlinks_3(self): - runpath_list = ["/opt/csw/mysql5/lib/64/mysql/foo"] - expected = "/opt/csw/mysql5/lib/sparcv9/mysql/foo" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertTrue(expected in result, "%s not in %s" % (expected, result)) - - def testEmulate64BitSymlinks_4(self): - """No repeated paths because of symlink expansion""" - runpath_list = ["/opt/csw/lib"] - expected = "/opt/csw/lib" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertEquals(1, len(result), "len(%s) != %s" % (result, 1)) - - def testEmulateSymlinks_3(self): - runpath_list = ["/opt/csw/bdb4"] - expected = "/opt/csw/bdb42" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertTrue(expected in result, "%s not in %s" % (expected, result)) - - def testEmulateSymlinks_4(self): - runpath_list = ["/opt/csw/bdb42"] - expected = "/opt/csw/bdb42" - not_expected = "/opt/csw/bdb422" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertTrue(expected in result, - "%s not in %s" % (expected, result)) - self.assertFalse(not_expected in result, - "%s is in %s" % (not_expected, result)) - - def testEmulateSymlinks_5(self): - """Install time symlink expansion.""" - runpath_list = ["/opt/csw/lib/i386"] - expected = "/opt/csw/lib" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertTrue(expected in result, "%s not in %s" % (expected, result)) - - def testEmulateSymlinks_6(self): - """ExpandSymlink for /opt/csw/lib/i386.""" - runpath_list = ["/opt/csw/lib/i386"] - expected = "/opt/csw/lib" - not_expected = "/opt/csw/lib/i386" - result = self.e.ExpandSymlink("/opt/csw/lib/i386", - "/opt/csw/lib", - "/opt/csw/lib/i386") - self.assertTrue(expected in result, "%s not in %s" % (expected, result)) - self.assertFalse(not_expected in result, - "%s is in %s" % (not_expected, result)) - - def testSanitizeRunpath_1(self): - self.assertEqual("/opt/csw/lib", - self.e.SanitizeRunpath("/opt/csw/lib/")) - - def testSanitizeRunpath_2(self): - self.assertEqual("/opt/csw/lib", - self.e.SanitizeRunpath("/opt//csw////lib/")) - - - -class ParseDumpOutputUnitTest(unittest.TestCase): - - def test_1(self): - expected = { - 'RPATH set': True, - 'RUNPATH RPATH the same': True, - 'RUNPATH set': True, - 'needed sonames': ('librt.so.1', - 'libresolv.so.2', - 'libc.so.1', - 'libgen.so.1', - 'libsocket.so.1', - 'libnsl.so.1', - 'libm.so.1', - 'libz.so.1'), - 'runpath': ('/opt/csw/lib/$ISALIST', - '/opt/csw/lib', - '/opt/csw/mysql5/lib/$ISALIST', - '/opt/csw/mysql5/lib', - '/opt/csw/mysql5/lib/$ISALIST/mysql'), - 'soname': 'libmysqlclient.so.15', - } - self.assertEqual(expected, - checkpkg.ParseDumpOutput(dump_1.DATA_DUMP_OUTPUT)) - - def testEmpty(self): - expected_runpath = () - self.assertEqual( - expected_runpath, - checkpkg.ParseDumpOutput(dump_2.DATA_DUMP_OUTPUT)["runpath"]) - - def testRpathOnly(self): - expected = { - 'RPATH set': True, - 'RUNPATH RPATH the same': False, - 'RUNPATH set': False, - 'needed sonames': ('librt.so.1', - 'libresolv.so.2', - 'libc.so.1', - 'libgen.so.1', - 'libsocket.so.1', - 'libnsl.so.1', - 'libm.so.1', - 'libz.so.1'), - 'runpath': ('/opt/csw/lib/$ISALIST', - '/opt/csw/lib', - '/opt/csw/mysql5/lib/$ISALIST', - '/opt/csw/mysql5/lib', - '/opt/csw/mysql5/lib/$ISALIST/mysql'), - 'soname': 'libmysqlclient.so.15', - } - self.assertEqual( - expected, - checkpkg.ParseDumpOutput(dump_3.DATA_DUMP_OUTPUT)) - - -class SystemPkgmapUnitTest(unittest.TestCase): - - def testParsePkginfoLine(self): - line = ('application CSWcswclassutils ' - 'cswclassutils - CSW class action utilities') - expected = ('CSWcswclassutils', - 'cswclassutils - CSW class action utilities') - spkgmap = checkpkg.SystemPkgmap() - self.assertEqual(expected, spkgmap._ParsePkginfoLine(line)) - - def test_InferPackagesFromPkgmapLine(self): - line = ("/opt/csw/sbin d none 0755 root bin CSWfping CSWbonobo2 " - "CSWkrb5libdev CSWsasl CSWschilybase CSWschilyutils CSWstar " - "CSWcommon CSWcacertificates CSWfacter") - expected = ["CSWfping", "CSWbonobo2", "CSWkrb5libdev", "CSWsasl", - "CSWschilybase", "CSWschilyutils", "CSWstar", "CSWcommon", - "CSWcacertificates", "CSWfacter"] - spkgmap = checkpkg.SystemPkgmap() - self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) - - def test_InferPackagesFromPkgmapLine_2(self): - line = ("/usr/lib/sparcv9/libpthread.so.1 f none 0755 root bin 41296 28258 " - "1018129099 SUNWcslx") - expected = ["SUNWcslx"] - spkgmap = checkpkg.SystemPkgmap() - self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) - - def test_InferPackagesFromPkgmapLine_3(self): - line = ("/usr/lib/libCrun.so.1 f none 0755 root bin 63588 " - "6287 1256043984 SUNWlibC") - expected = ["SUNWlibC"] - spkgmap = checkpkg.SystemPkgmap() - self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) - - def test_InferPackagesFromPkgmapLine_4(self): - line = ("/opt/csw/apache2/lib/libapr-1.so.0=libapr-1.so.0.3.8 s none " - "CSWapache2rt") - expected = ["CSWapache2rt"] - spkgmap = checkpkg.SystemPkgmap() - self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) - - class ExtractorsUnitTest(unittest.TestCase): def testExtractDescriptionFromGoodData(self): @@ -296,68 +60,67 @@ self.assertEqual(expected, re.match(checkpkg.PSTAMP_RE, pstamp).groupdict()) -class CheckpkgManager2UnitTest(unittest.TestCase): - - def test_1(self): - m = checkpkg.CheckpkgManager2("testname", "/tmp", ["CSWfoo"]) - tags = { - "CSWfoo": [ - tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), - ], - } - screen_report, tags_report = m.FormatReports(tags, [], []) - expected = u'# Tags reported by testname module\nCSWfoo: foo-tag foo-info\n' - self.assertEqual(expected, unicode(tags_report)) - - def test_2(self): - m = checkpkg.CheckpkgManager2("testname", "/tmp", ["CSWfoo"]) - tags = { - "CSWfoo": [ - tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), - tag.CheckpkgTag("CSWfoo", "bar-tag", "bar-info"), - tag.CheckpkgTag("CSWfoo", "baz-tag"), - ], - } - screen_report, tags_report = m.FormatReports(tags, [], []) - expected = (u'# Tags reported by testname module\n' - u'CSWfoo: foo-tag foo-info\n' - u'CSWfoo: bar-tag bar-info\n' - u'CSWfoo: baz-tag\n') - self.assertEqual(expected, unicode(tags_report)) - - class SliceListUnitTest(unittest.TestCase): def testOne(self): l = [1, 2, 3, 4, 5] s = 1 expected = [[1], [2], [3], [4], [5]] - self.assertTrue(expected, checkpkg.SliceList(l, s)) + self.assertTrue(expected, checkpkg_lib.SliceList(l, s)) def testTwo(self): l = [1, 2, 3, 4, 5] s = 2 expected = [[1, 2], [3, 4], [5]] - self.assertTrue(expected, checkpkg.SliceList(l, s)) + self.assertTrue(expected, checkpkg_lib.SliceList(l, s)) -class LddEmulartorUnitTest(unittest.TestCase): +class SqliteUnitTest(unittest.TestCase): + "Makes sure that we can lose state between tests." + def setUp(self): - self.pkgmap_mocker = mox.Mox() - self.e = checkpkg.LddEmulator() + self.conn = sqlite3.connect(":memory:") + self.c = self.conn.cursor() - def testResolveSoname_1(self): - # runpath_list, soname, isalist, path_list, binary_path - runpath_list = ["/opt/csw/bdb47/lib", "/opt/csw/lib"] - soname = "foo.so.1" - path_list = ["/opt/csw/lib", "/opt/csw/bdb47/lib", "/usr/lib"] - binary_path = "unused" - isalist = ["amd64"] - result = self.e.ResolveSoname(runpath_list, soname, isalist, - path_list, binary_path) - self.assertEqual("/opt/csw/bdb47/lib", result) + def tearDown(self): + self.conn = None + def testCannotCreateTwoTables(self): + self.c.execute("CREATE TABLE foo (INT bar);") + self.assertRaises( + sqlite3.OperationalError, + self.c.execute, "CREATE TABLE foo (INT bar);") + def testOne(self): + self.c.execute("CREATE TABLE foo (INT bar);") + + def testTwo(self): + self.c.execute("CREATE TABLE foo (INT bar);") + + +class SqlobjectUnitTest(test_base.SqlObjectTestMixin, unittest.TestCase): + + "Makes sure that we can lose state between methods." + + class TestModel(sqlobject.SQLObject): + name = sqlobject.UnicodeCol(length=255, unique=True, notNone=True) + + # This does not work. Why? + # def testCannotCreateTwoTables(self): + # self.TestModel.createTable() + # self.assertRaises( + # sqlite3.OperationalError, + # self.TestModel.createTable) + + def testOne(self): + self.TestModel.createTable() + + def testTwo(self): + self.TestModel.createTable() + + if __name__ == '__main__': + # import logging + # logging.basicConfig(level=logging.DEBUG) unittest.main() @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Fri Dec 10 21:55:59 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Fri, 10 Dec 2010 20:55:59 +0000 Subject: [csw-devel] SF.net SVN: gar:[11880] csw/mgar/gar/v2 Message-ID: Revision: 11880 http://gar.svn.sourceforge.net/gar/?rev=11880&view=rev Author: wahwah Date: 2010-12-10 20:55:58 +0000 (Fri, 10 Dec 2010) Log Message: ----------- Revert "checkpkg: File collision detection" This reverts commit 41873226c2f5805d914b6fb39c05efbdcafcc084. Modified Paths: -------------- csw/mgar/gar/v2/bin/checkpkg csw/mgar/gar/v2/bin/mkpackage csw/mgar/gar/v2/gar.pkg.mk csw/mgar/gar/v2/lib/python/README csw/mgar/gar/v2/lib/python/catalog.py csw/mgar/gar/v2/lib/python/checkpkg.py csw/mgar/gar/v2/lib/python/checkpkg_test.py csw/mgar/gar/v2/lib/python/configuration.py csw/mgar/gar/v2/lib/python/database.py csw/mgar/gar/v2/lib/python/dependency_checks.py csw/mgar/gar/v2/lib/python/dependency_checks_test.py csw/mgar/gar/v2/lib/python/inspective_package.py csw/mgar/gar/v2/lib/python/models.py csw/mgar/gar/v2/lib/python/opencsw.py csw/mgar/gar/v2/lib/python/package.py csw/mgar/gar/v2/lib/python/package_checks.py csw/mgar/gar/v2/lib/python/package_checks_test.py csw/mgar/gar/v2/lib/python/package_stats.py csw/mgar/gar/v2/lib/python/package_stats_test.py csw/mgar/gar/v2/lib/python/pkgdb.py csw/mgar/gar/v2/lib/python/sharedlib_utils.py csw/mgar/gar/v2/lib/python/sharedlib_utils_test.py csw/mgar/gar/v2/lib/python/tag.py csw/mgar/gar/v2/lib/python/tag_test.py csw/mgar/gar/v2/lib/python/testdata/neon_stats.py csw/mgar/gar/v2/lib/python/testdata/tree_stats.py csw/mgar/gar/v2/tests/run_tests.py Added Paths: ----------- csw/mgar/gar/v2/bin/analyze_module_results.py csw/mgar/gar/v2/bin/checkpkg_collect_stats.py csw/mgar/gar/v2/bin/checkpkg_run_modules.py Removed Paths: ------------- csw/mgar/gar/v2/lib/python/checkpkg2.py csw/mgar/gar/v2/lib/python/checkpkg_lib.py csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py csw/mgar/gar/v2/lib/python/common_constants.py csw/mgar/gar/v2/lib/python/ldd_emul.py csw/mgar/gar/v2/lib/python/ldd_emul_test.py csw/mgar/gar/v2/lib/python/models_test.py csw/mgar/gar/v2/lib/python/mute_progressbar.py csw/mgar/gar/v2/lib/python/pkgdb_test.py csw/mgar/gar/v2/lib/python/shell.py csw/mgar/gar/v2/lib/python/system_pkgmap.py csw/mgar/gar/v2/lib/python/system_pkgmap_test.py csw/mgar/gar/v2/lib/python/test_base.py Property Changed: ---------------- csw/mgar/gar/v2/bin/checkpkg csw/mgar/gar/v2/lib/python/package_stats_test.py Added: csw/mgar/gar/v2/bin/analyze_module_results.py =================================================================== --- csw/mgar/gar/v2/bin/analyze_module_results.py (rev 0) +++ csw/mgar/gar/v2/bin/analyze_module_results.py 2010-12-10 20:55:58 UTC (rev 11880) @@ -0,0 +1,73 @@ +#!/opt/csw/bin/python2.6 +# $Id$ + +import itertools +import operator +import optparse +import os +import pprint +import progressbar +import sys +import textwrap + +# The following bit of code sets the correct path to Python libraries +# distributed with GAR. +path_list = [os.path.dirname(__file__), + "..", "lib", "python"] +sys.path.append(os.path.join(*path_list)) +import checkpkg +import overrides +import package_stats + +BEFORE_OVERRIDES = """If any of the reported errors were false positives, you +can override them pasting the lines below to the GAR recipe.""" + +AFTER_OVERRIDES = """Please note that checkpkg isn't suggesting you should +simply add these overrides do the Makefile. It only informs what the overrides +could look like. You need to understand what are the reported issues about and +use your best judgement to decide whether to fix the underlying problems or +override them. For more information, scroll up and read the detailed +messages.""" + +UNAPPLIED_OVERRIDES = """WARNING: Some overrides did not match any errors. +They can be removed, as they don't take any effect anyway. If you're getting +errors at the same time, maybe you didn't specify the overrides correctly.""" + +def main(): + parser = optparse.OptionParser() + parser.add_option("-c", "--catalog_file", dest="catalog", + help="Optional catalog file") + parser.add_option("-q", "--quiet", dest="quiet", + default=False, action="store_true", + help=("Display less messages")) + options, args = parser.parse_args() + filenames = args + + # This might be bottleneck. Perhaps a list of md5 sums can be given to this + # script instead. + + # It might be a good idea to store the error tags in the database and + # eliminate the need to access the directory with the error tag files. + + pkgstats = package_stats.StatsListFromCatalog(filenames, options.catalog) + overrides_list = [pkg.GetSavedOverrides() for pkg in pkgstats] + override_list = reduce(operator.add, overrides_list) + error_tags = reduce(operator.add, [stat.GetSavedErrorTags() for stat in pkgstats]) + (tags_after_overrides, + unapplied_overrides) = overrides.ApplyOverrides(error_tags, override_list) + if not options.quiet: + if tags_after_overrides: + print textwrap.fill(BEFORE_OVERRIDES, 80) + for checkpkg_tag in tags_after_overrides: + print checkpkg_tag.ToGarSyntax() + print textwrap.fill(AFTER_OVERRIDES, 80) + if unapplied_overrides: + print textwrap.fill(UNAPPLIED_OVERRIDES, 80) + for override in unapplied_overrides: + print "* Unused %s" % override + exit_code = bool(tags_after_overrides) + sys.exit(exit_code) + + +if __name__ == '__main__': + main() Property changes on: csw/mgar/gar/v2/bin/analyze_module_results.py ___________________________________________________________________ Added: svn:executable + * Modified: csw/mgar/gar/v2/bin/checkpkg =================================================================== --- csw/mgar/gar/v2/bin/checkpkg 2010-12-10 16:48:58 UTC (rev 11879) +++ csw/mgar/gar/v2/bin/checkpkg 2010-12-10 20:55:58 UTC (rev 11880) @@ -1 +1,322 @@ -link ../lib/python/checkpkg2.py \ No newline at end of file +#!/bin/ksh -p +# +# $Id$ +# +# checkpkg 1.51 +# +# diff to 1.46a +# - check multiple package files +# - checkpkg.d plugin support +# - getopts support for command line options +# - colors +# - modular architecture + unit tests +# - reliable shared library checking +# +# This script examines a package that has been put together +# for submittal to the CSW archive at opencsw.org +# +# It examines it for compliance with the packaging standards at +# http://www.opencsw.org/standards/ +# It DOES NOT CATCH EVERYTHING. However, the package will be +# tested with this script before acceptance, so you may as well +# save yourself some time, and run the script yourself! +# +# Be sure to occasionally do a "pkg-get update cswutils" so that +# you know you are tracking the most current version. +# +# TODO: +# - add message handlig to the CheckInterface class. +# + +PATH=$PATH:/usr/sbin +readonly NAME_MAX_LENGTH=${NAME_MAX_LENGTH:-20} + +command_basename=`basename $0` +command_basedir="${0%/${command_basename}}" +libshdir="${command_basedir}/../lib/sh" +readonly command_basename command_basedir libshdir +. "${libshdir}/libcheckpkg.sh" + +LOCAL_ARCH=`uname -p` +CHECKPKG_TMPDIR=${CHECKPKG_TMPDIR:-/var/tmp} +readonly CHECKPKG_TMPDIR + +# Colors only when running interactively +if [[ -t 1 ]]; then + GREEN="\\033[0;32;40m" + RED="\\033[1;31;40m" + BOLD="\\033[1m" + COLOR_RESET="\\033[00m" +else + GREEN="" + RED="" + BOLD="" + COLOR_RESET="" +fi +readonly GREEN RED BOLD COLOR_RESET + +readonly selfpath="$0" +readonly selfargs="$@" + +cleanup(){ + if [[ -d "$EXTRACTDIR" ]] ; then + rm -rf $EXTRACTDIR + fi + cleantmparchives +} + +cleantmparchives() { + for TMPARCHIVE in $tmparchives; do + if [[ "$TMPARCHIVE" != "" ]]; then + [ -f "$TMPARCHIVE" ] && rm $TMPARCHIVE + fi + done +} + +cleanupset(){ + if [ "`echo $SETINF*`" != "$SETINF*" ]; then + rm $SETINF* + fi +} + +# Print error message, and quit program. +errmsg(){ + print ERROR: $* >/dev/fd/2 + cleanup + cleanupset + print "To run checkpkg in the debug mode, add the '-d' flag, for example:" + # selfargs can be very, very long. Find a way to truncate it. + # print "${selfpath} -d ${selfargs}" + print "After you modify any overrides, you need to do gmake remerge repackage" + print "or gmake platforms-remerge platforms-repackage." + exit 1 +} + +debugmsg() { + if [[ "${DEBUG}" != "" ]]; then + print "DEBUG: $*" > /dev/fd/2 + fi +} + +# TODO: Options to add: +# - Use an pre-cached (from a catalog file?) list of md5 sums +# - Don't use the data from /var/sadm/install/contents +display_help=0 +SKIP_STATS_COLLECTION=0 +MD5_SUMS_CATALOG_FILE="" +INSTALL_CONTENTS_FILES="/var/sadm/install/contents" +ANALYZE=1 +PROFILE=0 +QUIET=0 + +while getopts hsdNM:o:c:Apq opt; do + case "${opt}" in + c) + INSTALL_CONTENTS_FILES="${INSTALL_CONTENTS_FILES} ${OPTARG}" + ;; + d) + DEBUG=1 + ;; + h) + display_help=1 + ;; + N) + SKIP_STATS_COLLECTION=1 + ;; + M) + MD5_SUMS_CATALOG_FILE="${OPTARG}" + ;; + A) + ANALYZE=0 + ;; + p) + PROFILE=1 + ;; + q) QUIET=1 + ;; + *) + echo "Unknown option '${opt}'" + ;; + esac +done +shift $(( $OPTIND -1 )) + +readonly INSTALL_CONTENTS_FILES +readonly MD5_SUMS_CATALOG_FILE +readonly SKIP_STATS_COLLECTION +readonly ANALYZE +readonly PROFILE +readonly QUIET + +if [[ "${display_help}" -eq 1 ]] ; then + print 'Usage: checkpkg [options] pkg1 [pkg2 ....]' + print 'Options:' + print ' -c use an additional install/contents file' + print ' -d display debug messages' + print ' -N skip statistics collection' + print ' -M use package md5sums from a catalog file' + print ' -A Do not analyze the results.' + print ' -p Enable profiling' + print ' -q Display less messages' + print '' + print 'Error tags are saved to the sqlite database.' + exit 0 +fi + +# a unique filename for the list of package deps and libs we see in a 'set' +SETINF=$CHECKPKG_TMPDIR/checkpkg.$$.`date +%Y%m%d%H%M%S` +SETLIBS=$SETINF.libs +SETDEPS=$SETINF.deps +pkgnames="" +tmparchives="" + +EXTRACTDIR=$CHECKPKG_TMPDIR/dissect.$$ + +if [ -d $EXTRACTDIR ] ; then + errmsg ERROR: $EXTRACTDIR already exists +fi + +for f in "$@" +do + + if [[ ! -f $f ]] ; then + errmsg ERROR: $f does not exist + fi + + +[ -d ${EXTRACTDIR} ] || mkdir ${EXTRACTDIR} + +######################################## +# Check for some common errors +######################################### + +# TODO: To be ported. +# +# # find all executables and dynamic libs,and list their filenames. +# if [[ "$basedir" != "" ]] ; then +# print +# if [[ -f $EXTRACTDIR/elflist ]] ; then +# print "Checking relocation ability..." +# xargs strings < $EXTRACTDIR/elflist| grep /opt/csw +# if [[ $? -eq 0 ]] ; then +# errmsg package build as relocatable, but binaries have hardcoded /opt/csw paths in them +# else +# print trivial check passed +# fi +# else +# echo No relocation check done for non-binary relocatable package. +# fi +# fi + +tmparchives="$tmparchives $TMPARCHIVE" +done + +# Plugin section. This is here for support for other programming languages +# than Python. As of 2010-03-16 there are no checks in there. If this keeps +# empty, if no checks in other languages get written, it could be removed. +# +# Plugins should live in checkpkg.d subdirectory in the same directory in which +# checkpkg is. Each plugin file name should be an executable and begin with +# "checkpkg-". + +test_suite_ok=1 +checkpkg_module_dir="${command_basedir}/../lib/checkpkg.d" +checkpkg_module_tag="checkpkg-" +checkpkg_stats_basedir="${HOME}/.checkpkg/stats" + +# Cleaning up old *.pyc files which can cause grief. This is because of the +# move of Python libraries. +for pyc_file in ${checkpkg_module_dir}/opencsw.pyc \ + ${checkpkg_module_dir}/checkpkg.pyc; do + if [ -f "${pyc_file}" ]; then + echo "Removing old pyc file: '${pyc_file}'" + rm "${pyc_file}" + fi +done + +if [[ "${DEBUG}" != "" ]]; then + extra_options="--debug" +fi +if [[ "${PROFILE}" -eq 1 ]]; then + extra_options="${extra_options} --profile" +fi +if [[ "${QUIET}" -eq 1 ]]; then + quiet_options="--quiet" +else + quiet_options="" +fi + +if [[ -n "${MD5_SUMS_CATALOG_FILE}" ]]; then + catalog_options="--catalog=${MD5_SUMS_CATALOG_FILE}" +else + catalog_options="" +fi + +# /var/sadm/install/contents cache update +# TODO: Either remove this section or stop the stats collection phase from +# updating the cache. +${command_basedir}/update_contents_cache.py ${extra_options} +if [[ $? -ne 0 ]]; then + errmsg "Updating the contents cache has failed." +fi +if [[ "${SKIP_STATS_COLLECTION}" -eq 0 ]]; then + # Collects package stats to be analyzed later + ${command_basedir}/checkpkg_collect_stats.py \ + ${catalog_options} \ + ${extra_options} \ + "$@" + if [[ "$?" -ne 0 ]]; then + errmsg "Stats collection phase has failed." + fi +fi + +# TODO: A performance problem. The following line means that the md5sums are +# calculated once more. +if [ "${MD5_SUMS_CATALOG_FILE}" ]; then + debugmsg "Reading md5sums from ${MD5_SUMS_CATALOG_FILE}" + md5sums=`cat "${MD5_SUMS_CATALOG_FILE}" \ + | awk '{print $5}' \ + | ggrep -E '[0-9abcdef]{32}'` +else + debugmsg "Calculating md5 sums of all the package files." + md5sums=`gmd5sum "$@" | awk '{print $1}'` +fi +debugmsg "All md5 sums: ${md5sums}" + +# Running the checks. +${command_basedir}/checkpkg_run_modules.py \ + ${extra_options} \ + -b "${checkpkg_stats_basedir}" \ + ${quiet_options} \ + ${md5sums} +if [[ "$?" -ne 0 ]]; then + print "There was a problem analyzing package stats." + test_suite_ok=0 +fi + +if [[ ${test_suite_ok} -ne 1 ]]; then + errmsg "One or more tests have finished with an error." +fi + +if [[ "${ANALYZE}" -eq 1 ]]; then +# Collecting errors and applying the overrides. +# This has to use the original files. + ${command_basedir}/analyze_module_results.py \ + ${catalog_options} \ + ${quiet_options} \ + "$@" + if [[ "$?" -ne 0 ]]; then + errmsg "${RED}Checkpkg has reported errors.${COLOR_RESET}" + else + print "${GREEN}Checkpkg reports no errors.${COLOR_RESET}" + fi +else + echo "Skipping result analysis." +fi + +print "" + +# Cleaning up after all packages +cleanup + +cleanupset Property changes on: csw/mgar/gar/v2/bin/checkpkg ___________________________________________________________________ Deleted: svn:special - * Added: svn:executable + * Added: csw/mgar/gar/v2/bin/checkpkg_collect_stats.py =================================================================== --- csw/mgar/gar/v2/bin/checkpkg_collect_stats.py (rev 0) +++ csw/mgar/gar/v2/bin/checkpkg_collect_stats.py 2010-12-10 20:55:58 UTC (rev 11880) @@ -0,0 +1,69 @@ +#!/opt/csw/bin/python2.6 +# +# $Id$ +# +# Collects statistics about a package and saves to a directory, for later use +# by checkpkg modules. + +import itertools +import logging +import optparse +import os +import os.path +import subprocess +import sys +import progressbar + +# The following bit of code sets the correct path to Python libraries +# distributed with GAR. +path_list = [os.path.dirname(__file__), + "..", "lib", "python"] +sys.path.append(os.path.join(*path_list)) +import checkpkg +import opencsw +import package_stats + +def main(): + parser = optparse.OptionParser() + parser.add_option("-d", "--debug", dest="debug", + default=False, action="store_true", + help="Turn on debugging messages") + parser.add_option("-c", "--catalog", dest="catalog", + help="Catalog file") + parser.add_option("-p", "--profile", dest="profile", + default=False, action="store_true", + help="A disabled option") + options, args = parser.parse_args() + if options.debug: + logging.basicConfig(level=logging.DEBUG) + else: + logging.basicConfig(level=logging.INFO) + logging.debug("Collecting statistics about given package files.") + args_display = args + if len(args_display) > 5: + args_display = args_display[:5] + ["...more..."] + file_list = args + logging.debug("Processing: %s, please be patient", args_display) + stats_list = package_stats.StatsListFromCatalog( + file_list, options.catalog, options.debug) + # Reversing the item order in the list, so that the pop() method can be used + # to get packages, and the order of processing still matches the one in the + # catalog file. + stats_list.reverse() + total_packages = len(stats_list) + counter = itertools.count(1) + logging.info("Juicing the srv4 package stream files...") + bar = progressbar.ProgressBar() + bar.maxval = total_packages + bar.start() + while stats_list: + # This way objects will get garbage collected as soon as they are removed + # from the list by pop(). The destructor (__del__()) of the srv4 class + # removes the temporary directory from the disk. This allows to process + # the whole catalog. + stats_list.pop().CollectStats() + bar.update(counter.next()) + bar.finish() + +if __name__ == '__main__': + main() Property changes on: csw/mgar/gar/v2/bin/checkpkg_collect_stats.py ___________________________________________________________________ Added: svn:executable + * Added: csw/mgar/gar/v2/bin/checkpkg_run_modules.py =================================================================== --- csw/mgar/gar/v2/bin/checkpkg_run_modules.py (rev 0) +++ csw/mgar/gar/v2/bin/checkpkg_run_modules.py 2010-12-10 20:55:58 UTC (rev 11880) @@ -0,0 +1,56 @@ +#!/opt/csw/bin/python2.6 +# $Id$ + +"""This script runs all the checks written in Python.""" + +import datetime +import logging +import os +import os.path +import sys +import re +import cProfile + +CHECKPKG_MODULE_NAME = "Second checkpkg API version" + +# The following bit of code sets the correct path to Python libraries +# distributed with GAR. +path_list = [os.path.dirname(__file__), + "..", "lib", "python"] +sys.path.append(os.path.join(*path_list)) +import checkpkg +import opencsw + + +def main(): + options, args = checkpkg.GetOptions() + if options.debug: + logging.basicConfig(level=logging.DEBUG) + else: + logging.basicConfig(level=logging.INFO) + md5sums = args + # CheckpkgManager2 class abstracts away things such as the collection of + # results. + check_manager = checkpkg.CheckpkgManager2(CHECKPKG_MODULE_NAME, + options.stats_basedir, + md5sums, + options.debug) + # Running the checks, reporting and exiting. + exit_code, screen_report, tags_report = check_manager.Run() + screen_report = unicode(screen_report) + if not options.quiet and screen_report: + sys.stdout.write(screen_report) + else: + logging.debug("No screen report.") + sys.exit(exit_code) + + +if __name__ == '__main__': + if "--profile" in sys.argv: + t_str = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M") + home = os.environ["HOME"] + cprof_file_name = os.path.join( + home, ".checkpkg", "run-modules-%s.cprof" % t_str) + cProfile.run("main()", sort=1, filename=cprof_file_name) + else: + main() Property changes on: csw/mgar/gar/v2/bin/checkpkg_run_modules.py ___________________________________________________________________ Added: svn:executable + * Modified: csw/mgar/gar/v2/bin/mkpackage =================================================================== --- csw/mgar/gar/v2/bin/mkpackage 2010-12-10 16:48:58 UTC (rev 11879) +++ csw/mgar/gar/v2/bin/mkpackage 2010-12-10 20:55:58 UTC (rev 11880) @@ -25,9 +25,6 @@ # Tool Version/Revision Information $TOOLVERSION = "1.4"; ($REVISION) = q/$Revision$/ =~ /(\d+)/; -# This shows a warning: -# "Use of uninitialized value $REVISION in sprintf at -# /home/maciej/src/opencsw/pkg/nspr/trunk/gar/bin/mkpackage line 31." $VERSION = sprintf '%s (r%d)', $TOOLVERSION, $REVISION; # Discover network support Modified: csw/mgar/gar/v2/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2/gar.pkg.mk 2010-12-10 16:48:58 UTC (rev 11879) +++ csw/mgar/gar/v2/gar.pkg.mk 2010-12-10 20:55:58 UTC (rev 11880) @@ -52,7 +52,6 @@ GARPKG_v1 = CSWgar-v1 GARPKG_v2 = CSWgar-v2 RUNTIME_DEP_PKGS_$(SRCPACKAGE) ?= $(or $(GARPKG_$(GARSYSTEMVERSION)),$(error GAR version $(GARSYSTEMVERSION) unknown)) -CATALOG_RELEASE ?= current _PKG_SPECS = $(filter-out $(NOPACKAGE),$(SPKG_SPECS)) @@ -843,11 +842,7 @@ # pkgcheck - check if the package is compliant # pkgcheck: $(foreach SPEC,$(_PKG_SPECS),package-$(SPEC)) - $(_DBG)( LC_ALL=C $(GARBIN)/checkpkg \ - --architecture "$(GARCH)" \ - --os-releases "$(SPKG_OSNAME)" \ - --catalog-release "$(CATALOG_RELEASE)" \ - $(foreach SPEC,$(_PKG_SPECS),$(SPKG_EXPORT)/`$(call _PKG_ENV,$(SPEC)) mkpackage --tmpdir $(SPKG_TMPDIR) -qs $(WORKDIR)/$(SPEC).gspec -D pkgfile`.gz ) || exit 2;) + $(_DBG)( LC_ALL=C $(GARBIN)/checkpkg $(foreach SPEC,$(_PKG_SPECS),$(SPKG_EXPORT)/`$(call _PKG_ENV,$(SPEC)) mkpackage --tmpdir $(SPKG_TMPDIR) -qs $(WORKDIR)/$(SPEC).gspec -D pkgfile`.gz ) || exit 2;) @$(MAKECOOKIE) pkgcheck-p: Modified: csw/mgar/gar/v2/lib/python/README =================================================================== --- csw/mgar/gar/v2/lib/python/README 2010-12-10 16:48:58 UTC (rev 11879) +++ csw/mgar/gar/v2/lib/python/README 2010-12-10 20:55:58 UTC (rev 11880) @@ -21,11 +21,9 @@ tests as means to run various bits of code. Here's the dependency list for Ubuntu. -sudo aptitude install \ - python-cheetah \ - python-hachoir-parser \ - python-magic \ - python-mox \ - python-progressbar \ - python-sqlobject \ + python-cheetah + python-hachoir-parser + python-magic + python-mox + python-progressbar python-yaml Modified: csw/mgar/gar/v2/lib/python/catalog.py =================================================================== --- csw/mgar/gar/v2/lib/python/catalog.py 2010-12-10 16:48:58 UTC (rev 11879) +++ csw/mgar/gar/v2/lib/python/catalog.py 2010-12-10 20:55:58 UTC (rev 11880) @@ -123,7 +123,6 @@ def _GetCatalogData(self, fd): catalog_data = [] for line in fd: - if line.startswith("#"): continue try: parsed = self._ParseCatalogLine(line) catalog_data.append(parsed) Modified: csw/mgar/gar/v2/lib/python/checkpkg.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-10 16:48:58 UTC (rev 11879) +++ csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-10 20:55:58 UTC (rev 11880) @@ -3,22 +3,44 @@ # This is the checkpkg library, common for all checkpkg tests written in # Python. +import copy +import cPickle +import errno import itertools import logging +import operator import optparse +import os import os.path import re import pprint import progressbar +import socket +import sqlite3 import sqlobject +import time +from sqlobject import sqlbuilder import subprocess +import textwrap +from Cheetah import Template import database +import package import inspective_package +import package_checks +import package_stats import models as m -import common_constants +import configuration as c +import tag +DEBUG_BREAK_PKGMAP_AFTER = False +SYSTEM_PKGMAP = "/var/sadm/install/contents" +NEEDED_SONAMES = "needed sonames" +RUNPATH = "runpath" +SONAME = "soname" +CONFIG_MTIME = "mtime" +CONFIG_DB_SCHEMA = "db_schema_version" DO_NOT_REPORT_SURPLUS = set([u"CSWcommon", u"CSWcswclassutils", u"CSWisaexec"]) DO_NOT_REPORT_MISSING = set([]) DO_NOT_REPORT_MISSING_RE = [r"\*?SUNW.*"] @@ -26,11 +48,17 @@ PSTAMP_RE = r"(?P\w+)@(?P[\w\.-]+)-(?P\d+)" DESCRIPTION_RE = r"^([\S]+) - (.*)$" BAD_CONTENT_REGEXES = ( - # Slightly obfuscating these by using concatenation of strings. + # Slightly obfuscating these by using the default concatenation of + # strings. r'/export' r'/medusa', r'/opt' r'/build', ) +SYSTEM_SYMLINKS = ( + ("/opt/csw/bdb4", ["/opt/csw/bdb42"]), + ("/64", ["/amd64", "/sparcv9"]), + ("/opt/csw/lib/i386", ["/opt/csw/lib"]), +) INSTALL_CONTENTS_AVG_LINE_LENGTH = 102.09710677919261 SYS_DEFAULT_RUNPATH = [ "/usr/lib/$ISALIST", @@ -39,7 +67,8 @@ "/lib", ] -MD5_RE = re.compile(r"^[0123456789abcdef]{32}$") +CONTENT_PKG_RE = r"^\*?(CSW|SUNW)[0-9a-zA-Z\-]?[0-9a-z\-]+$" +MD5_RE = r"^[0123456789abcdef]{32}$" REPORT_TMPL = u"""#if $missing_deps or $surplus_deps or $orphan_sonames Dependency issues of $pkgname: @@ -61,6 +90,57 @@ #end if """ +SCREEN_ERROR_REPORT_TMPL = u"""#if $errors +#if $debug +ERROR: One or more errors have been found by $name. +#end if +#for $pkgname in $errors +$pkgname: +#for $error in $errors[$pkgname] +#if $debug + $repr($error) +#elif $error.msg +$textwrap.fill($error.msg, 78, initial_indent="# ", subsequent_indent="# ") +# -> $repr($error) + +#end if +#end for +#end for +#else +#if $debug +OK: $repr($name) module found no problems. +#end if +#end if +#if $messages +#for $msg in $messages +$textwrap.fill($msg, 78, initial_indent=" * ", subsequent_indent=" ") +#end for +#end if +#if $gar_lines + +# Checkpkg suggests adding the following lines to the GAR recipe: +# This is a summary; see above for details. +#for $line in $gar_lines +$line +#end for +#end if +""" + +# http://www.cheetahtemplate.org/docs/users_guide_html_multipage/language.directives.closures.html +TAG_REPORT_TMPL = u"""#if $errors +# Tags reported by $name module +#for $pkgname in $errors +#for $tag in $errors[$pkgname] +#if $tag.msg +$textwrap.fill($tag.msg, 70, initial_indent="# ", subsequent_indent="# ") +#end if +$pkgname: ${tag.tag_name}#if $tag.tag_info# $tag.tag_info#end if# +#end for +#end for +#end if +""" + + class Error(Exception): pass @@ -77,12 +157,11 @@ pass -class SetupError(Error): - pass - - def GetOptions(): parser = optparse.OptionParser() + parser.add_option("-b", "--stats-basedir", dest="stats_basedir", + help=("The base directory with package statistics " + "in yaml format, e.g. ~/.checkpkg/stats")) parser.add_option("-d", "--debug", dest="debug", default=False, action="store_true", help="Turn on debugging messages") @@ -93,6 +172,8 @@ default=False, action="store_true", help=("Print less messages")) (options, args) = parser.parse_args() + if not options.stats_basedir: + raise ConfigurationError("ERROR: the -b option is missing.") # Using set() to make the arguments unique. return options, set(args) @@ -114,9 +195,859 @@ return m.group("username") if m else None +class SystemPkgmap(database.DatabaseClient): + """A class to hold and manipulate the /var/sadm/install/contents file.""" + + STOP_PKGS = ["SUNWbcp", "SUNWowbcp", "SUNWucb"] + + def __init__(self, system_pkgmap_files=None, debug=False): + """There is no need to re-parse it each time. + + Read it slowly the first time and cache it for later.""" + super(SystemPkgmap, self).__init__(debug=debug) + self.cache = {} + self.pkgs_by_path_cache = {} + self.file_mtime = None + self.cache_mtime = None + self.initialized = False + if not system_pkgmap_files: + self.system_pkgmap_files = [SYSTEM_PKGMAP] + else: + self.system_pkgmap_files = system_pkgmap_files + self.csw_pkg_re = re.compile(CONTENT_PKG_RE) + self.digits_re = re.compile(r"^[0-9]+$") + + def _LazyInitializeDatabase(self): + if not self.initialized: + self.InitializeDatabase() + + def InitializeRawDb(self): + """It's necessary for low level operations.""" + if True: + logging.debug("Connecting to sqlite") + self.sqlite_conn = sqlite3.connect(self.GetDatabasePath()) + + def InitializeDatabase(self): + """Established the connection to the database. + + TODO: Refactor this class to first create CswFile with no primary key and + no indexes. + """ + need_to_create_tables = False + db_path = self.GetDatabasePath() + checkpkg_dir = os.path.join(os.environ["HOME"], self.CHECKPKG_DIR) + if not os.path.exists(db_path): + logging.info("Building the cache database %s.", self.system_pkgmap_files) + logging.info("The cache will be kept in %s.", db_path) + if not os.path.exists(checkpkg_dir): + logging.debug("Creating %s", checkpkg_dir) + os.mkdir(checkpkg_dir) + need_to_create_tables = True + self.InitializeRawDb() + self.InitializeSqlobject() + if not self.IsDatabaseGoodSchema(): + logging.info("Old database schema detected.") + self.PurgeDatabase(drop_tables=True) + need_to_create_tables = True + if need_to_create_tables: + self.CreateTables() + self.PerformInitialDataImport() + if not self.IsDatabaseUpToDate(): + logging.debug("Rebuilding the package cache, can take a few minutes.") + self.ClearTablesForUpdates() + self.RefreshDatabase() + self.initialized = True + + def RefreshDatabase(self): + for pkgmap_path in self.system_pkgmap_files: + self._ProcessSystemPkgmap(pkgmap_path) + self.PopulatePackagesTable() + self.SetDatabaseMtime() + + def PerformInitialDataImport(self): + """Imports data into the database. + + Original bit of code from checkpkg: + egrep -v 'SUNWbcp|SUNWowbcp|SUNWucb' /var/sadm/install/contents | + fgrep -f $EXTRACTDIR/liblist >$EXTRACTDIR/shortcatalog + """ + for pkgmap_path in self.system_pkgmap_files: + self._ProcessSystemPkgmap(pkgmap_path) + self.SetDatabaseSchemaVersion() + self.PopulatePackagesTable() + self.SetDatabaseMtime() + + def _ProcessSystemPkgmap(self, pkgmap_path): + """Update the database using data from pkgmap. + + The strategy to only update the necessary bits: + - for each new row + - look it up in the db + - if doesn't exist, create it + - if exists, check the + TODO: continue this description + """ + INSERT_SQL = """ + INSERT INTO csw_file (basename, path, line) + VALUES (?, ?, ?); + """ + sqlite_cursor = self.sqlite_conn.cursor() + break_after = DEBUG_BREAK_PKGMAP_AFTER + contents_length = os.stat(pkgmap_path).st_size + if break_after: + estimated_lines = break_after + else: + estimated_lines = contents_length / INSTALL_CONTENTS_AVG_LINE_LENGTH + # The progressbar library doesn't like handling larger numbers + # It displays up to 99% if we feed it a maxval in the range of hundreds of + # thousands. + progressbar_divisor = int(estimated_lines / 1000) + if progressbar_divisor < 1: + progressbar_divisor = 1 + update_period = 1L + # To help delete old records + system_pkgmap_fd = open(pkgmap_path, "r") + stop_re = re.compile("(%s)" % "|".join(self.STOP_PKGS)) + # Creating a data structure: + # soname - {: , : , ...} + logging.debug("Building database cache db of the %s file", + pkgmap_path) + logging.info("Processing %s, it can take a few minutes", pkgmap_path) + count = itertools.count() + bar = progressbar.ProgressBar() + bar.maxval = estimated_lines / progressbar_divisor + bar.start() + # I tried dropping the csw_file_basename_idx index to speed up operation, + # but after I measured the times, it turned out that it doesn't make any + # difference to the total runnng time. + # logging.info("Dropping csw_file_basename_idx") + # sqlite_cursor.execute("DROP INDEX csw_file_basename_idx;") + for line in system_pkgmap_fd: + i = count.next() + if not i % update_period and (i / progressbar_divisor) <= bar.maxval: + bar.update(i / progressbar_divisor) + if stop_re.search(line): + continue + if line.startswith("#"): + continue + fields = re.split(c.WS_RE, line) + pkgmap_entry_path = fields[0].split("=")[0] + pkgmap_entry_dir, pkgmap_entry_base_name = os.path.split(pkgmap_entry_path) + # The following SQLObject-driven inserts are 60 times slower than the raw + # sqlite API. + # pkgmap_entry = m.CswFile(basename=pkgmap_entry_base_name, + # path=pkgmap_entry_dir, line=line.strip()) + # This page has some hints: + # http://www.mail-archive.com/sqlobject-discuss at lists.sourceforge.net/msg04641.html + # "These are simple straightforward INSERTs without any additional + # high-level burden - no SELECT, no caching, nothing. Fire and forget." + # sql = self.sqo_conn.sqlrepr( + # sqlobject.sqlbuilder.Insert(m.CswFile.sqlmeta.table, values=record)) + # self.sqo_conn.query(sql) + # ...unfortunately, it isn't any faster in practice. + # The fastest way is: + sqlite_cursor.execute(INSERT_SQL, [pkgmap_entry_base_name, + pkgmap_entry_dir, + line.strip()]) + if break_after and i > break_after: + logging.warning("Breaking after %s for debugging purposes.", break_after) + break + bar.finish() + self.sqlite_conn.commit() + logging.debug("All lines of %s were processed.", pkgmap_path) + + def _ParsePkginfoLine(self, line): + fields = re.split(c.WS_RE, line) + pkgname = fields[1] + pkg_desc = u" ".join(fields[2:]) + return pkgname, pkg_desc + + def PopulatePackagesTable(self): + logging.info("Updating the packages table") + args = ["pkginfo"] + pkginfo_proc = subprocess.Popen(args, stdout=subprocess.PIPE) + stdout, stderr = pkginfo_proc.communicate() + ret = pkginfo_proc.wait() + lines = stdout.splitlines() + bar = progressbar.ProgressBar() + bar.maxval = len(lines) + bar.start() + count = itertools.count() + INSERT_SQL = """ + INSERT INTO pkginst (pkgname, pkg_desc) + VALUES (?, ?); + """ + # If self.GetInstalledPackages calls out to the initialization, + # the result is an infinite recursion. + installed_pkgs = self.GetInstalledPackages(initialize=False) + for line in stdout.splitlines(): + pkgname, pkg_desc = self._ParsePkginfoLine(line) + if pkgname not in installed_pkgs: + # This is slow: + # pkg = m.Pkginst(pkgname=pkgname, pkg_desc=pkg_desc) + # This is much faster: + self.sqlite_conn.execute(INSERT_SQL, [pkgname, pkg_desc]) + i = count.next() + bar.update(i) + # Need to commit, otherwise subsequent SQLObject calls will fail. + self.sqlite_conn.commit() + bar.finish() + + def SetDatabaseMtime(self): + mtime = self.GetFileMtime() + res = m.CswConfig.select(m.CswConfig.q.option_key==CONFIG_MTIME) + if res.count() == 0: + logging.debug("Inserting the mtime (%s) into the database.", mtime) + config_record = m.CswConfig(option_key=CONFIG_MTIME, float_value=mtime) + else: + logging.debug("Updating the mtime (%s) in the database.", mtime) + res.getOne().float_value = mtime + + def SetDatabaseSchemaVersion(self): + try: + config_option = m.CswConfig.select( + m.CswConfig.q.option_key==CONFIG_DB_SCHEMA).getOne() + config_option.int_value = database.DB_SCHEMA_VERSION + except sqlobject.main.SQLObjectNotFound, e: + version = m.CswConfig(option_key=CONFIG_DB_SCHEMA, + int_value=database.DB_SCHEMA_VERSION) + + def GetPkgmapLineByBasename(self, filename): + """Returns pkgmap lines by basename: + { + path1: line1, + path2: line2, + } + """ + if filename in self.cache: + return self.cache[filename] + self._LazyInitializeDatabase() + res = m.CswFile.select(m.CswFile.q.basename==filename) + lines = {} + for obj in res: + lines[obj.path] = obj.line + if len(lines) == 0: + logging.debug("Cache doesn't contain filename %s", filename) + self.cache[filename] = lines + return lines + + def _InferPackagesFromPkgmapLine(self, line): + """Given a pkgmap line, return all packages it contains.""" + line = line.strip() + parts = re.split(c.WS_RE, line) + pkgs = [] + if parts[1] == 'd': + parts = parts[6:] + while parts: + part = parts.pop() + if self.digits_re.match(part): + break + elif "none" == part: + break + pkgs.append(part) + # Make the packages appear in the same order as in the install/contents + # file. + pkgs.reverse() + return pkgs + + def GetPathsAndPkgnamesByBasename(self, filename): + """Returns paths and packages by basename. + + e.g. + {"/opt/csw/lib": ["CSWfoo", "CSWbar"], + "/opt/csw/1/lib": ["CSWfoomore"]} + """ + lines = self.GetPkgmapLineByBasename(filename) + pkgs = {} + # Infer packages + for file_path in lines: + pkgs[file_path] = self._InferPackagesFromPkgmapLine(lines[file_path]) + # self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libc.so.1').AndReturn({ + # "/usr/lib": (u"SUNWcsl",)}) + logging.debug("self.error_mgr_mock.GetPathsAndPkgnamesByBasename(%s).AndReturn(%s)", + repr(filename), pprint.pformat(pkgs)) + return pkgs + + def GetPkgByPath(self, full_path): + if full_path not in self.pkgs_by_path_cache: + self._LazyInitializeDatabase() + path, basename = os.path.split(full_path) + try: + obj = m.CswFile.select( + sqlobject.AND( + m.CswFile.q.path==path, + m.CswFile.q.basename==basename)).getOne() + self.pkgs_by_path_cache[full_path] = self._InferPackagesFromPkgmapLine( + obj.line) + except sqlobject.main.SQLObjectNotFound, e: + logging.debug("Couldn't find in the db: %s/%s", path, basename) + logging.debug(e) + self.pkgs_by_path_cache[full_path] = [] + logging.debug("self.error_mgr_mock.GetPkgByPath(%s).AndReturn(%s)", + repr(full_path), pprint.pformat(self.pkgs_by_path_cache[full_path])) + return self.pkgs_by_path_cache[full_path] + + def GetDatabaseMtime(self): + if not self.cache_mtime: + res = m.CswConfig.select(m.CswConfig.q.option_key==CONFIG_MTIME) + if res.count() == 1: + self.cache_mtime = res.getOne().float_value + elif res.count() < 1: + self.cache_mtime = 1 + logging.debug("GetDatabaseMtime() --> %s", self.cache_mtime) + return self.cache_mtime + + def GetFileMtime(self): + if not self.file_mtime: + stat_data = os.stat(SYSTEM_PKGMAP) + self.file_mtime = stat_data.st_mtime + return self.file_mtime + + def GetDatabaseSchemaVersion(self): + schema_on_disk = 1L + if not m.CswConfig.tableExists(): + return schema_on_disk; + res = m.CswConfig.select(m.CswConfig.q.option_key == CONFIG_DB_SCHEMA) + if res.count() < 1: + logging.debug("No db schema value found, assuming %s.", + schema_on_disk) + elif res.count() == 1: + schema_on_disk = res.getOne().int_value + return schema_on_disk + + def IsDatabaseUpToDate(self): + f_mtime_epoch = self.GetFileMtime() + d_mtime_epoch = self.GetDatabaseMtime() + f_mtime = time.gmtime(int(f_mtime_epoch)) + d_mtime = time.gmtime(int(d_mtime_epoch)) + logging.debug("IsDatabaseUpToDate: f_mtime %s, d_time: %s", f_mtime, d_mtime) + # Rounding up to integer seconds. There is a race condition: + # pkgadd finishes at 100.1 + # checkpkg reads /var/sadm/install/contents at 100.2 + # new pkgadd runs and finishes at 100.3 + # subsequent checkpkg runs won't pick up the last change. + # I don't expect pkgadd to run under 1s. + fresh = f_mtime <= d_mtime + good_version = self.GetDatabaseSchemaVersion() >= database.DB_SCHEMA_VERSION + logging.debug("IsDatabaseUpToDate: good_version=%s, fresh=%s", + repr(good_version), repr(fresh)) + return fresh and good_version + + def ClearTablesForUpdates(self): + for table in self.TABLES_THAT_NEED_UPDATES: + table.clearTable() + + def PurgeDatabase(self, drop_tables=False): + if drop_tables: + for table in self.TABLES: + if table.tableExists(): + table.dropTable() + else: + logging.debug("Truncating all tables") + for table in self.TABLES: + table.clearTable() + + def GetInstalledPackages(self, initialize=True): + """Returns a dictionary of all installed packages.""" + if initialize: + self._LazyInitializeDatabase() + res = m.Pkginst.select() + return dict([[str(x.pkgname), str(x.pkg_desc)] for x in res]) + + +class LddEmulator(object): + """A class to emulate ldd(1) + + Used primarily to resolve SONAMEs and detect package dependencies. + """ + def __init__(self): + self.runpath_expand_cache = {} + self.runpath_origin_expand_cache = {} + self.symlink_expand_cache = {} + self.symlink64_cache = {} + self.runpath_sanitize_cache = {} + + def ExpandRunpath(self, runpath, isalist, binary_path): + """Expands a signle runpath element. + + Args: + runpath: e.g. "/opt/csw/lib/$ISALIST" + isalist: isalist elements + binary_path: Necessary to expand $ORIGIN + """ + key = (runpath, tuple(isalist)) + if key not in self.runpath_expand_cache: + origin_present = False + # Emulating $ISALIST and $ORIGIN expansion + if '$ORIGIN' in runpath: + origin_present = True + if origin_present: + key_o = (runpath, tuple(isalist), binary_path) + if key_o in self.runpath_origin_expand_cache: + return self.runpath_origin_expand_cache[key_o] + else: + if not binary_path.startswith("/"): + binary_path = "/" + binary_path + runpath = runpath.replace('$ORIGIN', binary_path) + if '$ISALIST' in runpath: + expanded_list = [runpath.replace('/$ISALIST', '')] + expanded_list += [runpath.replace('$ISALIST', isa) for isa in isalist] + else: + expanded_list = [runpath] + expanded_list = [os.path.abspath(p) for p in expanded_list] + if not origin_present: + self.runpath_expand_cache[key] = expanded_list + else: + self.runpath_origin_expand_cache[key_o] = expanded_list + return self.runpath_origin_expand_cache[key_o] + return self.runpath_expand_cache[key] + + def ExpandSymlink(self, symlink, target, input_path): + key = (symlink, target, input_path) + if key not in self.symlink_expand_cache: + symlink_re = re.compile(r"%s(/|$)" % symlink) + if re.search(symlink_re, input_path): + result = input_path.replace(symlink, target) + else: + result = input_path + self.symlink_expand_cache[key] = result + return self.symlink_expand_cache[key] + + def Emulate64BitSymlinks(self, runpath_list): + """Need to emulate the 64 -> amd64, 64 -> sparcv9 symlink + + Since we don't know the architecture, we are adding both amd64 and + sparcv9. It should be safe - there are other checks that make sure + that right architectures are in the right directories. + """ + key = tuple(runpath_list) + if key not in self.symlink64_cache: + symlinked_list = [] + for runpath in runpath_list: + for symlink, expansion_list in SYSTEM_SYMLINKS: + for target in expansion_list: + expanded = self.ExpandSymlink(symlink, target, runpath) + if expanded not in symlinked_list: + symlinked_list.append(expanded) + self.symlink64_cache[key] = symlinked_list + return self.symlink64_cache[key] + + def SanitizeRunpath(self, runpath): + if runpath not in self.runpath_sanitize_cache: + self.runpath_sanitize_cache[runpath] = os.path.normpath(runpath) + return self.runpath_sanitize_cache[runpath] + + + def ResolveSoname(self, runpath_list, soname, isalist, + path_list, binary_path): + """Emulates ldd behavior, minimal implementation. + + runpath: e.g. ["/opt/csw/lib/$ISALIST", "/usr/lib"] + soname: e.g. "libfoo.so.1" + isalist: e.g. ["sparcv9", "sparcv8"] + path_list: A list of paths where the soname is present, e.g. + ["/opt/csw/lib", "/opt/csw/lib/sparcv9"] + + The function returns the one path. + """ + # Emulating the install time symlinks, for instance, if the prototype contains + # /opt/csw/lib/i386/foo.so.0 and /opt/csw/lib/i386 is a symlink to ".", + # the shared library ends up in /opt/csw/lib/foo.so.0 and should be + # findable even when RPATH does not contain $ISALIST. + original_paths_by_expanded_paths = {} + for p in path_list: + expanded_p_list = self.Emulate64BitSymlinks([p]) + # We can't just expand and return; we need to return one of the paths given + # in the path_list. + for expanded_p in expanded_p_list: + original_paths_by_expanded_paths[expanded_p] = p + logging.debug( + "%s: looking for %s in %s", + soname, runpath_list, original_paths_by_expanded_paths.keys()) + for runpath_expanded in runpath_list: + if runpath_expanded in original_paths_by_expanded_paths: + # logging.debug("Found %s", + # original_paths_by_expanded_paths[runpath_expanded]) + return original_paths_by_expanded_paths[runpath_expanded] + + +def ParseDumpOutput(dump_output): + binary_data = {RUNPATH: [], + NEEDED_SONAMES: []} + runpath = [] + rpath = [] + for line in dump_output.splitlines(): + fields = re.split(c.WS_RE, line) + if len(fields) < 3: + continue + if fields[1] == "NEEDED": + binary_data[NEEDED_SONAMES].append(fields[2]) + elif fields[1] == "RUNPATH": + runpath.extend(fields[2].split(":")) + elif fields[1] == "RPATH": + rpath.extend(fields[2].split(":")) + elif fields[1] == "SONAME": + binary_data[SONAME] = fields[2] + if runpath: + binary_data[RUNPATH].extend(runpath) + elif rpath: + binary_data[RUNPATH].extend(rpath) + + # Converting runpath to a tuple, which is a hashable data type and can act as + # a key in a dict. + binary_data[RUNPATH] = tuple(binary_data[RUNPATH]) + # the NEEDED list must not be modified, converting to a tuple. + binary_data[NEEDED_SONAMES] = tuple(binary_data[NEEDED_SONAMES]) + binary_data["RUNPATH RPATH the same"] = (runpath == rpath) + binary_data["RPATH set"] = bool(rpath) + binary_data["RUNPATH set"] = bool(runpath) + return binary_data + + +class CheckpkgManagerBase(object): + """Common functions between the older and newer calling functions.""" + + def __init__(self, name, stats_basedir, md5sum_list, debug=False): + self.debug = debug + self.name = name + self.md5sum_list = md5sum_list + self.stats_basedir = stats_basedir + self.errors = [] + self.individual_checks = [] + self.set_checks = [] + self.packages = [] + + def GetPackageStatsList(self): + return [package_stats.PackageStats(None, self.stats_basedir, x) + for x in self.md5sum_list] + + def FormatReports(self, errors, messages, gar_lines): + namespace = { + "name": self.name, + "errors": errors, + "debug": self.debug, + "textwrap": textwrap, + "messages": messages, + "gar_lines": gar_lines, + } + screen_t = Template.Template(SCREEN_ERROR_REPORT_TMPL, searchList=[namespace]) + tags_report_t = Template.Template(TAG_REPORT_TMPL, searchList=[namespace]) + return screen_t, tags_report_t + + def SetErrorsToDict(self, set_errors, a_dict): + # These were generated by a set, but are likely to be bound to specific + # packages. We'll try to preserve the package assignments. + errors = copy.copy(a_dict) + for tag in set_errors: + if tag.pkgname: + if not tag.pkgname in errors: + errors[tag.pkgname] = [] + errors[tag.pkgname].append(tag) + else: + if "package-set" not in errors: + errors["package-set"] = [] + errors["package-set"].append(tag) + return errors + + def GetOptimizedAllStats(self, stats_obj_list): + logging.info("Unwrapping candies...") + pkgs_data = [] + counter = itertools.count() + length = len(stats_obj_list) + bar = progressbar.ProgressBar() + bar.maxval = length + bar.start() + for stats_obj in stats_obj_list: + # pkg_data = {} + # This bit is tightly tied to the data structures returned by + # PackageStats. + # + # Python strings are already implementing the flyweight pattern. What's + # left is lists and dictionaries. + i = counter.next() + # logging.debug("Loading stats for %s (%s/%s)", + # stats_obj.md5sum, i, length) + raw_pkg_data = stats_obj.GetAllStats() + pkg_data = raw_pkg_data + pkgs_data.append(pkg_data) + bar.update(i) + bar.finish() + return pkgs_data + + def Run(self): + """Runs all the checks + + Returns a tuple of an exit code and a report. + """ + packages_data = self.GetPackageStatsList() + db_stat_objs_by_pkgname = {} + obj_id_list = [] + for pkg in packages_data: + db_obj = pkg.GetDbObject() + db_stat_objs_by_pkgname[db_obj.pkginst.pkgname] = db_obj + obj_id_list.append(db_obj.id) + logging.debug("Deleting old %s errors from the database.", + db_obj.pkginst.pkgname) + conn = sqlobject.sqlhub.processConnection + # It's the maximum number of ORs in a SQL statement. + # Slicing the long list up into s-sized segments. 1000 is too much. + obj_id_lists = SliceList(obj_id_list, 900) + for obj_id_list in obj_id_lists: + # WARNING: This is raw SQL, potentially breaking during a transition to + # another db. It's here for efficiency. + sql = ("DELETE FROM checkpkg_error_tag WHERE %s;" + % " OR ".join("srv4_file_id = %s" % x for x in obj_id_list)) + conn.query(sql) + # Need to construct the predicate by hand. Otherwise: + # File "/opt/csw/lib/python/site-packages/sqlobject/sqlbuilder.py", + # line 829, in OR + # return SQLOp("OR", op1, OR(*ops)) + # RuntimeError: maximum recursion depth exceeded while calling a Python object + # + # The following also tries to use recursion and fails. + # delete_predicate = sqlobject.OR(False) + # for pred in delete_predicate_list: + # delete_predicate = sqlobject.OR(delete_predicate, pred) + # conn.query( + # conn.sqlrepr(sqlbuilder.Delete(m.CheckpkgErrorTag.sqlmeta.table, + # delete_predicate + # ))) + # res = m.CheckpkgErrorTag.select(m.CheckpkgErrorTag.q.srv4_file==db_obj) + # for obj in res: + # obj.destroySelf() + errors, messages, gar_lines = self.GetAllTags(packages_data) + no_errors = len(errors) + 1 + bar = progressbar.ProgressBar() + bar.maxval = no_errors + count = itertools.count(1) + logging.info("Stuffing the candies under the pillow...") + bar.start() + for pkgname, es in errors.iteritems(): + logging.debug("Saving %s errors to the database.", pkgname) + for e in es: + db_error = m.CheckpkgErrorTag(srv4_file=db_stat_objs_by_pkgname[e.pkgname], + pkgname=e.pkgname, + tag_name=e.tag_name, + tag_info=e.tag_info, + msg=e.msg) + bar.update(count.next()) + bar.finish() + flat_error_list = reduce(operator.add, errors.values(), []) + screen_report, tags_report = self.FormatReports(errors, messages, gar_lines) + exit_code = 0 + return (exit_code, screen_report, tags_report) + + +class CheckInterfaceBase(object): + """Proxies interaction with checking functions. + + It wraps access to the /var/sadm/install/contents cache. + """ + + def __init__(self, system_pkgmap=None, lines_dict=None): + self.system_pkgmap = system_pkgmap + if not self.system_pkgmap: + self.system_pkgmap = SystemPkgmap() + self.common_paths = {} + if lines_dict: + self.lines_dict = lines_dict + else: + self.lines_dict = {} + + def GetPathsAndPkgnamesByBasename(self, basename): + """Proxies calls to self.system_pkgmap.""" + return self.system_pkgmap.GetPathsAndPkgnamesByBasename(basename) + + def GetPkgByPath(self, path): + """Proxies calls to self.system_pkgmap.""" + return self.system_pkgmap.GetPkgByPath(path) + + def GetInstalledPackages(self, initialize=True): + return self.system_pkgmap.GetInstalledPackages(initialize) + + def _GetPathsForArch(self, arch): + if not arch in self.lines_dict: + file_name = os.path.join( + os.path.dirname(__file__), "..", "..", "etc", "commondirs-%s" % arch) + logging.debug("opening %s", file_name) + f = open(file_name, "r") + self.lines_dict[arch] = f.read().splitlines() + f.close() + return self.lines_dict[arch] + + def GetCommonPaths(self, arch): + """Returns a list of paths for architecture, from gar/etc/commondirs*.""" + # TODO: If this was cached, it could save a significant amount of time. + if arch not in ('i386', 'sparc', 'all'): + logging.warn("Wrong arch: %s", repr(arch)) + return [] + if arch == 'all': + archs = ('i386', 'sparc') + else: + archs = [arch] + lines = [] + for arch in archs: + lines.extend(self._GetPathsForArch(arch)) + return lines + + +class IndividualCheckInterface(CheckInterfaceBase): + """To be passed to the checking functions. + + Wraps the creation of tag.CheckpkgTag objects. + """ + + def __init__(self, pkgname, system_pkgmap=None): + super(IndividualCheckInterface, self).__init__(system_pkgmap) + self.pkgname = pkgname + self.errors = [] + + def ReportError(self, tag_name, tag_info=None, msg=None): + logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s)", + repr(tag_name), repr(tag_info), repr(msg)) + checkpkg_tag = tag.CheckpkgTag(self.pkgname, tag_name, tag_info, msg=msg) + self.errors.append(checkpkg_tag) + + +class SetCheckInterface(CheckInterfaceBase): + """To be passed to set checking functions.""" + + def __init__(self, system_pkgmap=None): + super(SetCheckInterface, self).__init__(system_pkgmap) + self.errors = [] + + def ReportError(self, pkgname, tag_name, tag_info=None, msg=None): + logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s, %s)", + repr(pkgname), + repr(tag_name), repr(tag_info), repr(msg)) + checkpkg_tag = tag.CheckpkgTag(pkgname, tag_name, tag_info, msg=msg) + self.errors.append(checkpkg_tag) + + +class CheckpkgMessenger(object): + """Class responsible for passing messages from checks to the user.""" + def __init__(self): + self.messages = [] + self.one_time_messages = {} + self.gar_lines = [] + + def Message(self, m): + logging.debug("self.messenger.Message(%s)", repr(m)) + self.messages.append(m) + + def OneTimeMessage(self, key, m): + logging.debug("self.messenger.OneTimeMessage(%s, %s)", repr(key), repr(m)) + if key not in self.one_time_messages: + self.one_time_messages[key] = m + + def SuggestGarLine(self, m): + logging.debug("self.messenger.SuggestGarLine(%s)", repr(m)) + self.gar_lines.append(m) + + +class CheckpkgManager2(CheckpkgManagerBase): + """The second incarnation of the checkpkg manager. + + Implements the API to be used by checking functions. + + Its purpose is to reduce the amount of boilerplate code and allow for easier + unit test writing. + """ + def _RegisterIndividualCheck(self, function): + self.individual_checks.append(function) + + def _RegisterSetCheck(self, function): + self.set_checks.append(function) + + def _AutoregisterChecks(self): + """Autodetects all defined checks.""" + logging.debug("CheckpkgManager2._AutoregisterChecks()") + checkpkg_module = package_checks + members = dir(checkpkg_module) + for member_name in members: + logging.debug("Examining module member: %s", repr(member_name)) + member = getattr(checkpkg_module, member_name) + if callable(member): + if member_name.startswith("Check"): + logging.debug("Registering individual check %s", repr(member_name)) + self._RegisterIndividualCheck(member) + elif member_name.startswith("SetCheck"): + logging.debug("Registering set check %s", repr(member_name)) + self._RegisterSetCheck(member) + + def GetAllTags(self, stats_obj_list): + errors = {} + pkgmap = SystemPkgmap() + logging.debug("Loading all package statistics.") + pkgs_data = self.GetOptimizedAllStats(stats_obj_list) + logging.debug("All package statistics loaded.") + messenger = CheckpkgMessenger() + # Individual checks + count = itertools.count() + bar = progressbar.ProgressBar() + bar.maxval = len(pkgs_data) * len(self.individual_checks) + logging.info("Tasting candies one by one...") + bar.start() + for pkg_data in pkgs_data: + pkgname = pkg_data["basic_stats"]["pkgname"] + check_interface = IndividualCheckInterface(pkgname, pkgmap) + for function in self.individual_checks: + logger = logging.getLogger("%s-%s" % (pkgname, function.__name__)) + logger.debug("Calling %s", function.__name__) + function(pkg_data, check_interface, logger=logger, messenger=messenger) + if check_interface.errors: + errors[pkgname] = check_interface.errors + bar.update(count.next()) + bar.finish() + # Set checks + logging.info("Tasting them all at once...") + for function in self.set_checks: + logger = logging.getLogger(function.__name__) + check_interface = SetCheckInterface(pkgmap) + logger.debug("Calling %s", function.__name__) + function(pkgs_data, check_interface, logger=logger, messenger=messenger) + if check_interface.errors: + errors = self.SetErrorsToDict(check_interface.errors, errors) + messages = messenger.messages + messenger.one_time_messages.values() + return errors, messages, messenger.gar_lines + + def Run(self): + self._AutoregisterChecks() + return super(CheckpkgManager2, self).Run() + + +def GetIsalist(): + args = ["isalist"] + isalist_proc = subprocess.Popen(args, stdout=subprocess.PIPE) + stdout, stderr = isalist_proc.communicate() + ret = isalist_proc.wait() + if ret: + logging.error("Calling isalist has failed.") + isalist = re.split(r"\s+", stdout.strip()) + return tuple(isalist) + + +def ErrorTagsFromFile(file_name): + fd = open(file_name) + error_tags = [] + for line in fd: + if line.startswith("#"): + continue + pkgname, tag_name, tag_info = tag.ParseTagLine(line) + error_tags.append(tag.CheckpkgTag(pkgname, tag_name, tag_info)) + return error_tags + + +def SliceList(l, size): + """Trasforms a list into a list of lists.""" + idxes = xrange(0, len(l), size) + sliced = [l[i:i+size] for i in idxes] + return sliced + def IsMd5(s): # For optimization, move the compilation elsewhere. - return MD5_RE.match(s) + md5_re = re.compile(MD5_RE) + return md5_re.match(s) def GetPackageStatsByFilenamesOrMd5s(args, debug=False): filenames = [] @@ -128,15 +1059,15 @@ filenames.append(arg) srv4_pkgs = [inspective_package.InspectiveCswSrv4File(x) for x in filenames] pkgstat_objs = [] - pbar = progressbar.ProgressBar() - pbar.maxval = len(md5s) + len(srv4_pkgs) - pbar.start() + bar = progressbar.ProgressBar() + bar.maxval = len(md5s) + len(srv4_pkgs) + bar.start() counter = itertools.count() for pkg in srv4_pkgs: pkgstat_objs.append(package_stats.PackageStats(pkg, debug=debug)) - pbar.update(counter.next()) + bar.update(counter.next()) for md5 in md5s: pkgstat_objs.append(package_stats.PackageStats(None, md5sum=md5, debug=debug)) - pbar.update(counter.next()) - pbar.finish() + bar.update(counter.next()) + bar.finish() return pkgstat_objs Deleted: csw/mgar/gar/v2/lib/python/checkpkg2.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg2.py 2010-12-10 16:48:58 UTC (rev 11879) +++ csw/mgar/gar/v2/lib/python/checkpkg2.py 2010-12-10 20:55:58 UTC (rev 11880) @@ -1,178 +0,0 @@ -#!/usr/bin/env python2.6 -# -# checkpkg -# - -import logging -import operator -import optparse -import os -import sys -import textwrap -import configuration -import datetime -import database - -import package_stats -import checkpkg -import checkpkg_lib -import overrides -import models -import sqlobject - -USAGE = """%prog [ options ] pkg1 [ pkg2 [ ... ] ]""" -CHECKPKG_MODULE_NAME = "The main checking module." -BEFORE_OVERRIDES = """If any of the reported errors were false positives, you -can override them pasting the lines below to the GAR recipe.""" - -AFTER_OVERRIDES = """Please note that checkpkg isn't suggesting you should -simply add these overrides do the Makefile. It only informs what the overrides -could look like. You need to understand what are the reported issues about and -use your best judgement to decide whether to fix the underlying problems or -override them. For more information, scroll up and read the detailed -messages.""" - -UNAPPLIED_OVERRIDES = """WARNING: Some overrides did not match any errors. -They can be removed, as they don't take any effect anyway. If you're getting -errors at the same time, maybe you didn't specify the overrides correctly.""" - - -class Error(Exception): - """Generic error.""" - - -class UsageError(Error): - """Problem with usage, e.g. command line options.""" - - -def main(): - configuration.SetUpSqlobjectConnection() - parser = optparse.OptionParser(USAGE) - parser.add_option("-d", "--debug", - dest="debug", - action="store_true", - default=False, - help="Switch on debugging messages") - parser.add_option("-q", "--quiet", - dest="quiet", - action="store_true", - default=False, - help="Display less messages") - parser.add_option("--catalog-release", - dest="catrel", - default="unstable", - help="A catalog release: experimental, unstable, testing, stable.") - parser.add_option("-r", "--os-releases", - dest="osrel_commas", - help=("Comma separated list of ['SunOS5.9', 'SunOS5.10'], " - "e.g. 'SunOS5.9,SunOS5.10'.")) - parser.add_option("-a", "--architecture", - dest="arch", - help="Architecture: i386, sparc.") - parser.add_option("--profile", dest="profile", - default=False, action="store_true", - help="Enable profiling (a developer option).") - options, args = parser.parse_args() - assert len(args), "The list of files or md5 sums must be not empty." - logging_level = logging.INFO - if options.quiet: - logging_level = logging.WARNING - elif options.debug: - # If both flags are set, debug wins. - logging_level = logging.DEBUG - logging.basicConfig(level=logging_level) - logging.debug("Starting.") - - dm = database.DatabaseManager() - dm.AutoManage() - - - err_msg_list = [] - if not options.osrel_commas: - err_msg_list.append("Please specify --os-releases.") - if not options.arch: - err_msg_list.append("Please specify --architecture.") - if err_msg_list: - raise UsageError(" ".join(err_msg_list)) - - stats_list = [] - collector = package_stats.StatsCollector( - logger=logging, - debug=options.debug) - # We need to separate files and md5 sums. - md5_sums, file_list = [], [] - for arg in args: - if checkpkg.MD5_RE.match(arg): - md5_sums.append(arg) - else: - file_list.append(arg) - if file_list: - stats_list = collector.CollectStatsFromFiles(file_list, None) - # We need the md5 sums of these files - md5_sums.extend([x["basic_stats"]["md5_sum"] for x in stats_list]) - assert md5_sums, "The list of md5 sums must not be empty." - logging.debug("md5_sums: %s", md5_sums) - osrel_list = options.osrel_commas.split(",") - logging.debug("Reading packages data from the database.") - # This part might need improvements in order to handle a whole - # catalog. On the other hand, if we already have the whole catalog in - # the database, we can do it altogether differently. - # Transforming the result to a list in order to force object - # retrieval. - sqo_pkgs = list(models.Srv4FileStats.select( - sqlobject.IN(models.Srv4FileStats.q.md5_sum, md5_sums))) - tags_for_all_osrels = [] - sqo_arch = models.Architecture.selectBy(name=options.arch).getOne() - sqo_catrel = models.CatalogRelease.selectBy(name=options.catrel).getOne() - for osrel in osrel_list: - sqo_osrel = models.OsRelease.selectBy(short_name=osrel).getOne() - check_manager = checkpkg_lib.CheckpkgManager2( - CHECKPKG_MODULE_NAME, - sqo_pkgs, - osrel, - options.arch, - options.catrel, - debug=options.debug, - show_progress=(not options.quiet)) - # Running the checks, reporting and exiting. - exit_code, screen_report, tags_report = check_manager.Run() - screen_report = unicode(screen_report) - if not options.quiet and screen_report: - # TODO: Write this to screen only after overrides are applied. - sys.stdout.write(screen_report) - else: - logging.debug("No screen report.") - - overrides_list = [list(pkg.GetOverridesResult()) for pkg in sqo_pkgs] - override_list = reduce(operator.add, overrides_list) - args = (sqo_osrel, sqo_arch, sqo_catrel) - tag_lists = [list(pkg.GetErrorTagsResult(*args)) for pkg in sqo_pkgs] - error_tags = reduce(operator.add, tag_lists) - # TODO: Set the 'overriden' tag for specific error tags - (tags_after_overrides, - unapplied_overrides) = overrides.ApplyOverrides(error_tags, override_list) - tags_for_all_osrels.extend(tags_after_overrides) - if not options.quiet: - if tags_after_overrides: - print textwrap.fill(BEFORE_OVERRIDES, 80) - for checkpkg_tag in tags_after_overrides: - print checkpkg_tag.ToGarSyntax() - print textwrap.fill(AFTER_OVERRIDES, 80) - if unapplied_overrides: - print textwrap.fill(UNAPPLIED_OVERRIDES, 80) - for override in unapplied_overrides: - print "* Unused %s" % override - exit_code = bool(tags_for_all_osrels) - sys.exit(exit_code) - - -if __name__ == '__main__': - if "--profile" in sys.argv: - import cProfile - t_str = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M") - home = os.environ["HOME"] - cprof_file_name = os.path.join( - home, ".checkpkg", "run-modules-%s.cprof" % t_str) - cProfile.run("main()", sort=1, filename=cprof_file_name) - else: - main() Deleted: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-10 16:48:58 UTC (rev 11879) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-10 20:55:58 UTC (rev 11880) @@ -1,600 +0,0 @@ -# A collection of checkpkg-specific classes. -# -# This file is supposed to drain the checkpkg.py file until is becomes -# empty and goes away. - -import copy -from Cheetah import Template -import logging -import package_stats -import package_checks -import sqlobject -import itertools -import progressbar -import database -import models as m -import textwrap -import os.path -import tag -import pprint -import operator -import common_constants -import sharedlib_utils -import mute_progressbar -import cPickle - - -class Error(Exception): - pass - - -class CatalogDatabaseError(Error): - pass - - -SCREEN_ERROR_REPORT_TMPL = u"""#if $errors -#if $debug -ERROR: One or more errors have been found by $name. -#end if -#for $pkgname in $errors -$pkgname: -#for $error in $errors[$pkgname] -#if $debug - $repr($error) -#elif $error.msg -$textwrap.fill($error.msg, 78, initial_indent="# ", subsequent_indent="# ") -# -> $repr($error) - -#end if -#end for -#end for -#else -#if $debug -OK: $repr($name) module found no problems. -#end if -#end if -#if $messages -#for $msg in $messages -$textwrap.fill($msg, 78, initial_indent=" * ", subsequent_indent=" ") -#end for -#end if -#if $gar_lines - -# Checkpkg suggests adding the following lines to the GAR recipe: -# This is a summary; see above for details. -#for $line in $gar_lines -$line -#end for -#end if -""" - -# http://www.cheetahtemplate.org/docs/users_guide_html_multipage/language.directives.closures.html -TAG_REPORT_TMPL = u"""#if $errors -# Tags reported by $name module -#for $pkgname in $errors -#for $tag in $errors[$pkgname] -#if $tag.msg -$textwrap.fill($tag.msg, 70, initial_indent="# ", subsequent_indent="# ") -#end if -$pkgname: ${tag.tag_name}#if $tag.tag_info# $tag.tag_info#end if# -#end for -#end for -#end if -""" - - -class SqlobjectHelperMixin(object): - - def GetSqlobjectTriad(self, osrel, arch, catrel): - logging.debug("GetSqlobjectTriad(%s, %s, %s)", osrel, arch, catrel) - sqo_arch = m.Architecture.select( - m.Architecture.q.name==arch).getOne() - sqo_osrel = m.OsRelease.select( - m.OsRelease.q.short_name==osrel).getOne() - sqo_catrel = m.CatalogRelease.select( - m.CatalogRelease.q.name==catrel).getOne() - return sqo_osrel, sqo_arch, sqo_catrel - - -class CheckpkgManagerBase(SqlobjectHelperMixin): - """Common functions between the older and newer calling functions.""" - - def __init__(self, name, sqo_pkgs_list, osrel, arch, catrel, debug=False, - show_progress=False): - self.debug = debug - self.name = name - self.sqo_pkgs_list = sqo_pkgs_list - self.errors = [] - self.individual_checks = [] - self.set_checks = [] - self.packages = [] - self.osrel = osrel - self.arch = arch - self.catrel = catrel - self.show_progress = show_progress - - def GetProgressBar(self): - if self.show_progress: - return progressbar.ProgressBar() - else: - return mute_progressbar.MuteProgressBar() - - def GetSqlobjectTriad(self): - return super(CheckpkgManagerBase, self).GetSqlobjectTriad( - self.osrel, self.arch, self.catrel) - - def GetPackageStatsList(self): - raise RuntimeError("Please don't use this function as it violates " - "the Law of Demeter.") - - def FormatReports(self, errors, messages, gar_lines): - namespace = { - "name": self.name, - "errors": errors, - "debug": self.debug, - "textwrap": textwrap, - "messages": messages, - "gar_lines": gar_lines, - } - screen_t = Template.Template(SCREEN_ERROR_REPORT_TMPL, searchList=[namespace]) - tags_report_t = Template.Template(TAG_REPORT_TMPL, searchList=[namespace]) - return screen_t, tags_report_t - - def SetErrorsToDict(self, set_errors, a_dict): - # These were generated by a set, but are likely to be bound to specific - # packages. We'll try to preserve the package assignments. - errors = copy.copy(a_dict) - for tag in set_errors: - if tag.pkgname: - if not tag.pkgname in errors: - errors[tag.pkgname] = [] - errors[tag.pkgname].append(tag) - else: - if "package-set" not in errors: - errors["package-set"] = [] - errors["package-set"].append(tag) - return errors - - def GetOptimizedAllStats(self, stats_obj_list): - logging.info("Unwrapping candies...") - pkgs_data = [] - counter = itertools.count() - length = len(stats_obj_list) - pbar = self.GetProgressBar() - pbar.maxval = length - pbar.start() - for stats_obj in stats_obj_list: - # This bit is tightly tied to the data structures returned by - # PackageStats. - # - # Python strings are already implementing the flyweight pattern. What's - # left is lists and dictionaries. - i = counter.next() - raw_pkg_data = cPickle.loads(stats_obj.data_obj.pickle) - pkg_data = raw_pkg_data - pkgs_data.append(pkg_data) - pbar.update(i) - pbar.finish() - return pkgs_data - - def Run(self): - """Runs all the checks - - Returns a tuple of an exit code and a report. - """ - # packages_data = self.GetPackageStatsList() - assert self.sqo_pkgs_list, "The list of packages must not be empty." - db_stat_objs_by_pkgname = {} - for pkg in self.sqo_pkgs_list: - db_stat_objs_by_pkgname[pkg.pkginst.pkgname] = pkg - logging.debug("Deleting old errors from the database.") - for pkgname, db_obj in db_stat_objs_by_pkgname.iteritems(): - sqo_os_rel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad() - db_obj.RemoveCheckpkgResults( - sqo_os_rel, sqo_arch, sqo_catrel) - errors, messages, gar_lines = self.GetAllTags(self.sqo_pkgs_list) - no_errors = len(errors) + 1 - pbar = self.GetProgressBar() - pbar.maxval = no_errors - count = itertools.count(1) - logging.info("Stuffing the candies under the pillow...") - pbar.start() - for pkgname, es in errors.iteritems(): - logging.debug("Saving errors of %s to the database.", pkgname) - for e in es: - if e.pkgname not in db_stat_objs_by_pkgname: - logging.warning("Not saving an error for %s.", e.pkgname) - continue - db_error = m.CheckpkgErrorTag(srv4_file=db_stat_objs_by_pkgname[e.pkgname], - pkgname=e.pkgname, - tag_name=e.tag_name, - tag_info=e.tag_info, - msg=e.msg, - os_rel=sqo_os_rel, - catrel=sqo_catrel, - arch=sqo_arch) - pbar.update(count.next()) - pbar.finish() - flat_error_list = reduce(operator.add, errors.values(), []) - screen_report, tags_report = self.FormatReports(errors, messages, gar_lines) - exit_code = 0 - return (exit_code, screen_report, tags_report) - - -class CheckInterfaceBase(object): - """Provides an interface for checking functions. - - It wraps access to the catalog database. - """ - - def __init__(self, osrel, arch, catrel, catalog=None, lines_dict=None): - self.osrel = osrel - self.arch = arch - self.catrel = catrel - self.catalog = catalog - if not self.catalog: - self.catalog = Catalog() - self.common_paths = {} - if lines_dict: - self.lines_dict = lines_dict - else: - self.lines_dict = {} - - def GetPathsAndPkgnamesByBasename(self, basename): - """Proxies calls to class member.""" - return self.catalog.GetPathsAndPkgnamesByBasename( - basename, self.osrel, self.arch, self.catrel) - - def GetPkgByPath(self, file_path): - """Proxies calls to self.system_pkgmap.""" - return self.catalog.GetPkgByPath( - file_path, self.osrel, self.arch, self.catrel) - - def GetInstalledPackages(self): - return self.catalog.GetInstalledPackages( - self.osrel, self.arch, self.catrel) - - def _GetPathsForArch(self, arch): - if not arch in self.lines_dict: - file_name = os.path.join( - os.path.dirname(__file__), "..", "..", "etc", "commondirs-%s" % arch) - logging.debug("opening %s", file_name) - f = open(file_name, "r") - self.lines_dict[arch] = f.read().splitlines() - f.close() - return self.lines_dict[arch] - - def GetCommonPaths(self, arch): - """Returns a list of paths for architecture, from gar/etc/commondirs*.""" - # TODO: If this was cached, it could save a significant amount of time. - if arch not in ('i386', 'sparc', 'all'): - logging.warn("Wrong arch: %s", repr(arch)) - return [] - if arch == 'all': - archs = ('i386', 'sparc') - else: - archs = [arch] - lines = [] - for arch in archs: - lines.extend(self._GetPathsForArch(arch)) - return lines - - -class IndividualCheckInterface(CheckInterfaceBase): - """To be passed to the checking functions. - - Wraps the creation of tag.CheckpkgTag objects. - """ - - def __init__(self, pkgname, osrel, arch, catrel, catalog=None): - super(IndividualCheckInterface, self).__init__(osrel, arch, catrel, catalog) - self.pkgname = pkgname - self.errors = [] - - def ReportError(self, tag_name, tag_info=None, msg=None): - logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s)", - repr(tag_name), repr(tag_info), repr(msg)) - checkpkg_tag = tag.CheckpkgTag(self.pkgname, tag_name, tag_info, msg=msg) - self.errors.append(checkpkg_tag) - - -class SetCheckInterface(CheckInterfaceBase): - """To be passed to set checking functions.""" - - def __init__(self, osrel, arch, catrel, catalog=None): - super(SetCheckInterface, self).__init__(osrel, arch, catrel, catalog) - self.errors = [] - - def ReportError(self, pkgname, tag_name, tag_info=None, msg=None): - logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s, %s)", - repr(pkgname), - repr(tag_name), repr(tag_info), repr(msg)) - checkpkg_tag = tag.CheckpkgTag(pkgname, tag_name, tag_info, msg=msg) - self.errors.append(checkpkg_tag) - - -class CheckpkgMessenger(object): - """Class responsible for passing messages from checks to the user.""" - def __init__(self): - self.messages = [] - self.one_time_messages = {} - self.gar_lines = [] - - def Message(self, m): - logging.debug("self.messenger.Message(%s)", repr(m)) - self.messages.append(m) - - def OneTimeMessage(self, key, m): - logging.debug("self.messenger.OneTimeMessage(%s, %s)", repr(key), repr(m)) - if key not in self.one_time_messages: - self.one_time_messages[key] = m - - def SuggestGarLine(self, m): - logging.debug("self.messenger.SuggestGarLine(%s)", repr(m)) - self.gar_lines.append(m) - - -class CheckpkgManager2(CheckpkgManagerBase): - """The second incarnation of the checkpkg manager. - - Implements the API to be used by checking functions. - - Its purpose is to reduce the amount of boilerplate code and allow for easier - unit test writing. - """ - def _RegisterIndividualCheck(self, function): - self.individual_checks.append(function) - - def _RegisterSetCheck(self, function): - self.set_checks.append(function) - - def _AutoregisterChecks(self): - """Autodetects all defined checks.""" - logging.debug("CheckpkgManager2._AutoregisterChecks()") - checkpkg_module = package_checks - members = dir(checkpkg_module) - for member_name in members: - logging.debug("Examining module member: %s", repr(member_name)) - member = getattr(checkpkg_module, member_name) - if callable(member): - if member_name.startswith("Check"): - logging.debug("Registering individual check %s", repr(member_name)) - self._RegisterIndividualCheck(member) - elif member_name.startswith("SetCheck"): - logging.debug("Registering set check %s", repr(member_name)) - self._RegisterSetCheck(member) - - def GetAllTags(self, stats_obj_list): - errors = {} - catalog = Catalog() - logging.debug("Loading all package statistics.") - pkgs_data = self.GetOptimizedAllStats(stats_obj_list) - logging.debug("All package statistics loaded.") - messenger = CheckpkgMessenger() - # Individual checks - count = itertools.count() - pbar = self.GetProgressBar() - pbar.maxval = len(pkgs_data) * len(self.individual_checks) - logging.info("Tasting candies one by one...") - pbar.start() - for pkg_data in pkgs_data: - pkgname = pkg_data["basic_stats"]["pkgname"] - check_interface = IndividualCheckInterface( - pkgname, self.osrel, self.arch, self.catrel, catalog) - for function in self.individual_checks: - logger = logging.getLogger("%s-%s" % (pkgname, function.__name__)) - logger.debug("Calling %s", function.__name__) - function(pkg_data, check_interface, logger=logger, messenger=messenger) - if check_interface.errors: - errors[pkgname] = check_interface.errors - pbar.update(count.next()) - pbar.finish() - # Set checks - logging.info("Tasting them all at once...") - for function in self.set_checks: - logger = logging.getLogger(function.__name__) - check_interface = SetCheckInterface( - self.osrel, self.arch, self.catrel, catalog) - logger.debug("Calling %s", function.__name__) - function(pkgs_data, check_interface, logger=logger, messenger=messenger) - if check_interface.errors: - errors = self.SetErrorsToDict(check_interface.errors, errors) - messages = messenger.messages + messenger.one_time_messages.values() - return errors, messages, messenger.gar_lines - - def Run(self): - self._AutoregisterChecks() - return super(CheckpkgManager2, self).Run() - - -def SliceList(l, size): - """Trasforms a list into a list of lists.""" - idxes = xrange(0, len(l), size) - sliced = [l[i:i+size] for i in idxes] - return sliced - - -class CatalogMixin(SqlobjectHelperMixin): - """Responsible for functionality related to catalog operations. - - These include: - - getting a list of all packages - - getting a list of packages that contain certain files - - getting a list of packages that contain files of certain names - """ - - def __init__(self): - super(CatalogMixin, self).__init__() - self.pkgs_by_path_cache = {} - - def GetInstalledPackages(self, osrel, arch, catrel): - sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( - osrel, arch, catrel) - res = m.Srv4FileInCatalog.select( - sqlobject.AND( - m.Srv4FileInCatalog.q.osrel==sqo_osrel, - m.Srv4FileInCatalog.q.arch==sqo_arch, - m.Srv4FileInCatalog.q.catrel==sqo_catrel)) - pkgs = [] - for srv4_in_cat in res: - pkgs.append(srv4_in_cat.srv4file.pkginst.pkgname) - return pkgs - - def GetPathsAndPkgnamesByBasename(self, basename, osrel, arch, catrel): - """Retrieves pkginst names of packages that have certain files. - - Since it needs to match a specific catalog, a table join is required: - - CswFile (basename) - - related Srv4FileStats - - related Srv4FileInCatalog - - Args: - basename: u'libfoo.so.1' - osrel: u'5.9' - arch: 'sparc', 'x86' - catrel: 'stable' - - Returns: - {"/opt/csw/lib": ["CSWfoo", "CSWbar"], - "/opt/csw/1/lib": ["CSWfoomore"]} - """ - pkgs = {} - sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( - osrel, arch, catrel) - - # Looks like this join is hard to do that way. - # res = m.Srv4FileInCatalog.select( - # sqlobject.AND( - # m.Srv4FileInCatalog.q.osrel==sqo_osrel, - # m.Srv4FileInCatalog.q.arch==sqo_arch, - # m.Srv4FileInCatalog.q.catrel==sqo_catrel)). - # throughTo.srv4file.thoughTo.files - - # We'll implement it on the application level. First, we'll get all - # the files that match the basename, and then filter them based on - # catalog properties. - res = m.CswFile.select(m.CswFile.q.basename==basename) - file_list = [] - for f in res: - # Check whether osrel, arch and catrel are matching. - for cat in f.srv4_file.in_catalogs: - if (f.srv4_file.registered - and cat.osrel == sqo_osrel - and cat.arch == sqo_arch - and cat.catrel == sqo_catrel): - file_list.append(f) - for obj in file_list: - pkgs.setdefault(obj.path, []) - pkgs[obj.path].append(obj.pkginst.pkgname) - logging.debug("self.error_mgr_mock.GetPathsAndPkgnamesByBasename(%s)" - ".AndReturn(%s)", repr(basename), pprint.pformat(pkgs)) - return pkgs - - def GetPkgByPath(self, full_file_path, osrel, arch, catrel): - """Returns a list of packages.""" - # Memoization for performance - key = (full_file_path, osrel, arch, catrel) - if key not in self.pkgs_by_path_cache: - pkgs = [] - file_path, basename = os.path.split(full_file_path) - sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( - osrel, arch, catrel) - res = m.CswFile.select( - sqlobject.AND( - m.CswFile.q.path==file_path, - m.CswFile.q.basename==basename)) - for sqo_file in res: - # Making sure that we're taking packages only from the right catalog. - for cat in sqo_file.srv4_file.in_catalogs: - if (sqo_file.srv4_file.registered - and cat.osrel == sqo_osrel - and cat.arch == sqo_arch - and cat.catrel == sqo_catrel): - pkgs.append(sqo_file.srv4_file.pkginst.pkgname) - self.pkgs_by_path_cache[key] = frozenset(pkgs) - return self.pkgs_by_path_cache[key] - - def CommonArchByString(self, s): - return sharedlib_utils.ArchByString(s) - - def Srv4MatchesCatalog(self, sqo_srv4, sqo_arch): - cat_arch = self.CommonArchByString(sqo_arch.name) - pkg_arch = self.CommonArchByString(sqo_srv4.arch.name) - ans = (cat_arch == pkg_arch) or (pkg_arch == common_constants.ARCH_ALL) - if not ans: - logging.debug("Srv4MatchesCatalog(): mismatch: %s / %s and %s / %s", - cat_arch, pkg_arch, pkg_arch, common_constants.ARCH_ALL) - # Some packages have the architecture in the file saying 'all', but pkginfo - # says 'i386'. - filename_arch = self.CommonArchByString(sqo_srv4.filename_arch.name) - if filename_arch == common_constants.ARCH_ALL: - ans = True - if filename_arch != pkg_arch: - logging.warning( - "Package %s declares %s in pkginfo and %s in the filename.", - sqo_srv4, repr(pkg_arch), repr(filename_arch)) - return ans - - def AddSrv4ToCatalog(self, sqo_srv4, osrel, arch, catrel): - """Registers a srv4 file in a catalog.""" - logging.debug("AddSrv4ToCatalog(%s, %s, %s, %s)", - sqo_srv4, osrel, arch, catrel) - sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( - osrel, arch, catrel) - if not self.Srv4MatchesCatalog(sqo_srv4, sqo_arch): - raise CatalogDatabaseError( - "Specified package does not match the catalog. " - "Package: %s, catalog: %s %s %s" - % (sqo_srv4, osrel, arch, catrel)) - if not sqo_srv4.registered: - raise CatalogDatabaseError( - "Package %s (%s) is not registered for releases." - % (sqo_srv4.basename, sqo_srv4.md5_sum)) - # Checking for presence of a different srv4 with the same pkginst in the - # same catalog - pkginst = sqo_srv4.pkginst - res = m.Srv4FileStats.select( - m.Srv4FileStats.q.pkginst==pkginst).throughTo.in_catalogs.filter( - sqlobject.AND( - m.Srv4FileInCatalog.q.osrel==sqo_osrel, - m.Srv4FileInCatalog.q.arch==sqo_arch, - m.Srv4FileInCatalog.q.catrel==sqo_catrel, - m.Srv4FileInCatalog.q.srv4file!=sqo_srv4)) - if len(list(res)): - raise CatalogDatabaseError( - "There already is a package with that pkgname: %s" % pkginst) - # Checking for presence of the same srv4 already in the catalog. - res = m.Srv4FileInCatalog.select( - sqlobject.AND( - m.Srv4FileInCatalog.q.osrel==sqo_osrel, - m.Srv4FileInCatalog.q.arch==sqo_arch, - m.Srv4FileInCatalog.q.catrel==sqo_catrel, - m.Srv4FileInCatalog.q.srv4file==sqo_srv4)) - if len(list(res)): - logging.debug("%s is already part of %s %s %s", - sqo_srv4, osrel, arch, catrel) - # Our srv4 is already part of that catalog. - return - obj = m.Srv4FileInCatalog( - arch=sqo_arch, - osrel=sqo_osrel, - catrel=sqo_catrel, - srv4file=sqo_srv4) - - def RemoveSrv4(self, sqo_srv4, osrel, arch, catrel): - sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( - osrel, arch, catrel) - sqo_srv4_in_cat = m.Srv4FileInCatalog.select( - sqlobject.AND( - m.Srv4FileInCatalog.q.arch==sqo_arch, - m.Srv4FileInCatalog.q.osrel==sqo_osrel, - m.Srv4FileInCatalog.q.catrel==sqo_catrel, - m.Srv4FileInCatalog.q.srv4file==sqo_srv4)).getOne() - sqo_srv4_in_cat.registered = False - # TODO(maciej): Remove all files belonging to that one - for cat_file in sqo_srv4_in_cat.srv4file.files: - cat_file.destroySelf() - - -class Catalog(CatalogMixin): - pass Deleted: csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-10 16:48:58 UTC (rev 11879) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-10 20:55:58 UTC (rev 11880) @@ -1,74 +0,0 @@ -#!/usr/bin/env python2.6 - -import copy -import unittest -import checkpkg_lib -import tag -import package_stats -import database -import sqlobject -import models -import package_stats -import inspective_package -import mox -import test_base - -from testdata.neon_stats import pkgstats as neon_stats - - -class CheckpkgManager2UnitTest(unittest.TestCase): - - def setUp(self): - super(CheckpkgManager2UnitTest, self).setUp() - self.mox = mox.Mox() - - def testSingleTag(self): - m = checkpkg_lib.CheckpkgManager2( - "testname", [], "5.9", "sparc", "unstable") - tags = { - "CSWfoo": [ - tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), - ], - } - screen_report, tags_report = m.FormatReports(tags, [], []) - expected = u'# Tags reported by testname module\nCSWfoo: foo-tag foo-info\n' - self.assertEqual(expected, unicode(tags_report)) - - def testThreeTags(self): - m = checkpkg_lib.CheckpkgManager2( - "testname", [], "5.9", "sparc", "unstable") - tags = { - "CSWfoo": [ - tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), - tag.CheckpkgTag("CSWfoo", "bar-tag", "bar-info"), - tag.CheckpkgTag("CSWfoo", "baz-tag"), - ], - } - screen_report, tags_report = m.FormatReports(tags, [], []) - expected = (u'# Tags reported by testname module\n' - u'CSWfoo: foo-tag foo-info\n' - u'CSWfoo: bar-tag bar-info\n' - u'CSWfoo: baz-tag\n') - self.assertEqual(expected, unicode(tags_report)) - - -class CheckpkgManager2DatabaseIntegrationTest( - test_base.SqlObjectTestMixin, unittest.TestCase): - - def setUp(self): - super(CheckpkgManager2DatabaseIntegrationTest, self).setUp() - self.mox = mox.Mox() - - def testInsertNeon(self): - self.dbc.InitialDataImport() - sqo_pkg = package_stats.PackageStats.SaveStats(neon_stats[0], True) - cm = checkpkg_lib.CheckpkgManager2( - "testname", [sqo_pkg], "SunOS5.9", "sparc", "unstable", - show_progress=False) - cm.Run() - # Verifying that there are some reported error tags. - self.assertTrue(list(models.CheckpkgErrorTag.select())) - - -if __name__ == '__main__': - unittest.main() Modified: csw/mgar/gar/v2/lib/python/checkpkg_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_test.py 2010-12-10 16:48:58 UTC (rev 11879) +++ csw/mgar/gar/v2/lib/python/checkpkg_test.py 2010-12-10 20:55:58 UTC (rev 11880) @@ -1,24 +1,16 @@ -#!/usr/bin/env python2.6 +#!/opt/csw/bin/python2.6 # $Id$ -import copy import re import unittest import mox import difflib import checkpkg -import checkpkg_lib -import database -import models as m import tag -import package_stats -import sqlite3 -import sqlobject -import test_base +import testdata.dump_output_1 as dump_1 +import testdata.dump_output_2 as dump_2 +import testdata.dump_output_3 as dump_3 -from testdata.tree_stats import pkgstats as tree_stats -from testdata.neon_stats import pkgstats as neon_stats - """A set of unit tests for the library checking code. A bunch of lines to test in the interactive Python shell. @@ -31,6 +23,250 @@ SELECT * FROM systempkgmap WHERE basename = 'libncursesw.so.5'; """ +class GetLinesBySonameUnitTest(unittest.TestCase): + + def setUp(self): + self.pkgmap_mocker = mox.Mox() + self.e = checkpkg.LddEmulator() + + def testExpandRunpath_1(self): + isalist = ["foo", "bar"] + runpath = "/opt/csw/lib/$ISALIST" + expected = ["/opt/csw/lib", "/opt/csw/lib/foo", "/opt/csw/lib/bar"] + bin_path = "opt/csw/lib" + self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) + + def testExpandRunpath_2(self): + isalist = ["foo", "bar"] + runpath = "/opt/csw/mysql5/lib/$ISALIST/mysql" + expected = ["/opt/csw/mysql5/lib/mysql", + "/opt/csw/mysql5/lib/foo/mysql", + "/opt/csw/mysql5/lib/bar/mysql"] + bin_path = "opt/csw/lib" + self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) + + def testExpandRunpath_OriginSimple(self): + isalist = () + runpath = "$ORIGIN" + expected = ["/opt/csw/lib"] + bin_path = "opt/csw/lib" + self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) + + def testExpandRunpath_OriginDots(self): + isalist = () + runpath = "$ORIGIN/.." + expected = ["/opt/csw/lib"] + bin_path = "opt/csw/lib/subdir" + self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) + + def testExpandRunpath_Caching(self): + """Make sure that the cache doesn't mess it up. + + Two invocations, where the only difference is the binary path. + """ + isalist = () + runpath = "/opt/csw/lib/foo" + expected = ["/opt/csw/lib/foo"] + bin_path = "opt/csw/lib" + self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) + expected = ["/opt/csw/lib/foo"] + bin_path = "/opt/csw/lib/foo" + self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) + + def testExpandRunpath_OriginCaching(self): + """Make sure that the cache doesn't mess it up. + + Two invocations, where the only difference is the binary path. + """ + isalist = () + runpath = "$ORIGIN" + expected = ["/opt/csw/lib"] + bin_path = "opt/csw/lib" + self.assertEquals(expected, + self.e.ExpandRunpath(runpath, isalist, bin_path)) + expected = ["/opt/csw/foo/lib"] + bin_path = "/opt/csw/foo/lib" + self.assertEquals(expected, + self.e.ExpandRunpath(runpath, isalist, bin_path)) + + def testExpandRunpath_OnlyIsalist(self): + """Make sure that the cache doesn't mess it up. + + Two invocations, where the only difference is the binary path. + """ + isalist = ("bar",) + runpath = "/opt/csw/lib/$ISALIST" + expected = ["/opt/csw/lib", "/opt/csw/lib/bar"] + bin_path = "opt/csw/lib" + self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) + + def testEmulate64BitSymlinks_1(self): + runpath_list = ["/opt/csw/mysql5/lib/foo/mysql/64"] + expected = "/opt/csw/mysql5/lib/foo/mysql/amd64" + self.assertTrue(expected in self.e.Emulate64BitSymlinks(runpath_list)) + + def testEmulate64BitSymlinks_2(self): + runpath_list = ["/opt/csw/mysql5/lib/64/mysql/foo"] + expected = "/opt/csw/mysql5/lib/amd64/mysql/foo" + result = self.e.Emulate64BitSymlinks(runpath_list) + self.assertTrue(expected in result, "%s not in %s" % (expected, result)) + + def testEmulate64BitSymlinks_3(self): + runpath_list = ["/opt/csw/mysql5/lib/64/mysql/foo"] + expected = "/opt/csw/mysql5/lib/sparcv9/mysql/foo" + result = self.e.Emulate64BitSymlinks(runpath_list) + self.assertTrue(expected in result, "%s not in %s" % (expected, result)) + + def testEmulate64BitSymlinks_4(self): + """No repeated paths because of symlink expansion""" + runpath_list = ["/opt/csw/lib"] + expected = "/opt/csw/lib" + result = self.e.Emulate64BitSymlinks(runpath_list) + self.assertEquals(1, len(result), "len(%s) != %s" % (result, 1)) + + def testEmulateSymlinks_3(self): + runpath_list = ["/opt/csw/bdb4"] + expected = "/opt/csw/bdb42" + result = self.e.Emulate64BitSymlinks(runpath_list) + self.assertTrue(expected in result, "%s not in %s" % (expected, result)) + + def testEmulateSymlinks_4(self): + runpath_list = ["/opt/csw/bdb42"] + expected = "/opt/csw/bdb42" + not_expected = "/opt/csw/bdb422" + result = self.e.Emulate64BitSymlinks(runpath_list) + self.assertTrue(expected in result, + "%s not in %s" % (expected, result)) + self.assertFalse(not_expected in result, + "%s is in %s" % (not_expected, result)) + + def testEmulateSymlinks_5(self): + """Install time symlink expansion.""" + runpath_list = ["/opt/csw/lib/i386"] + expected = "/opt/csw/lib" + result = self.e.Emulate64BitSymlinks(runpath_list) + self.assertTrue(expected in result, "%s not in %s" % (expected, result)) + + def testEmulateSymlinks_6(self): + """ExpandSymlink for /opt/csw/lib/i386.""" + runpath_list = ["/opt/csw/lib/i386"] + expected = "/opt/csw/lib" + not_expected = "/opt/csw/lib/i386" + result = self.e.ExpandSymlink("/opt/csw/lib/i386", + "/opt/csw/lib", + "/opt/csw/lib/i386") + self.assertTrue(expected in result, "%s not in %s" % (expected, result)) + self.assertFalse(not_expected in result, + "%s is in %s" % (not_expected, result)) + + def testSanitizeRunpath_1(self): + self.assertEqual("/opt/csw/lib", + self.e.SanitizeRunpath("/opt/csw/lib/")) + + def testSanitizeRunpath_2(self): + self.assertEqual("/opt/csw/lib", + self.e.SanitizeRunpath("/opt//csw////lib/")) + + + +class ParseDumpOutputUnitTest(unittest.TestCase): + + def test_1(self): + expected = { + 'RPATH set': True, + 'RUNPATH RPATH the same': True, + 'RUNPATH set': True, + 'needed sonames': ('librt.so.1', + 'libresolv.so.2', + 'libc.so.1', + 'libgen.so.1', + 'libsocket.so.1', + 'libnsl.so.1', + 'libm.so.1', + 'libz.so.1'), + 'runpath': ('/opt/csw/lib/$ISALIST', + '/opt/csw/lib', + '/opt/csw/mysql5/lib/$ISALIST', + '/opt/csw/mysql5/lib', + '/opt/csw/mysql5/lib/$ISALIST/mysql'), + 'soname': 'libmysqlclient.so.15', + } + self.assertEqual(expected, + checkpkg.ParseDumpOutput(dump_1.DATA_DUMP_OUTPUT)) + + def testEmpty(self): + expected_runpath = () + self.assertEqual( + expected_runpath, + checkpkg.ParseDumpOutput(dump_2.DATA_DUMP_OUTPUT)["runpath"]) + + def testRpathOnly(self): + expected = { + 'RPATH set': True, + 'RUNPATH RPATH the same': False, + 'RUNPATH set': False, + 'needed sonames': ('librt.so.1', + 'libresolv.so.2', + 'libc.so.1', + 'libgen.so.1', + 'libsocket.so.1', + 'libnsl.so.1', + 'libm.so.1', + 'libz.so.1'), + 'runpath': ('/opt/csw/lib/$ISALIST', + '/opt/csw/lib', + '/opt/csw/mysql5/lib/$ISALIST', + '/opt/csw/mysql5/lib', + '/opt/csw/mysql5/lib/$ISALIST/mysql'), + 'soname': 'libmysqlclient.so.15', + } + self.assertEqual( + expected, + checkpkg.ParseDumpOutput(dump_3.DATA_DUMP_OUTPUT)) + + +class SystemPkgmapUnitTest(unittest.TestCase): + + def testParsePkginfoLine(self): + line = ('application CSWcswclassutils ' + 'cswclassutils - CSW class action utilities') + expected = ('CSWcswclassutils', + 'cswclassutils - CSW class action utilities') + spkgmap = checkpkg.SystemPkgmap() + self.assertEqual(expected, spkgmap._ParsePkginfoLine(line)) + + def test_InferPackagesFromPkgmapLine(self): + line = ("/opt/csw/sbin d none 0755 root bin CSWfping CSWbonobo2 " + "CSWkrb5libdev CSWsasl CSWschilybase CSWschilyutils CSWstar " + "CSWcommon CSWcacertificates CSWfacter") + expected = ["CSWfping", "CSWbonobo2", "CSWkrb5libdev", "CSWsasl", + "CSWschilybase", "CSWschilyutils", "CSWstar", "CSWcommon", + "CSWcacertificates", "CSWfacter"] + spkgmap = checkpkg.SystemPkgmap() + self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) + + def test_InferPackagesFromPkgmapLine_2(self): + line = ("/usr/lib/sparcv9/libpthread.so.1 f none 0755 root bin 41296 28258 " + "1018129099 SUNWcslx") + expected = ["SUNWcslx"] + spkgmap = checkpkg.SystemPkgmap() + self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) + + def test_InferPackagesFromPkgmapLine_3(self): + line = ("/usr/lib/libCrun.so.1 f none 0755 root bin 63588 " + "6287 1256043984 SUNWlibC") + expected = ["SUNWlibC"] + spkgmap = checkpkg.SystemPkgmap() + self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) + + def test_InferPackagesFromPkgmapLine_4(self): + line = ("/opt/csw/apache2/lib/libapr-1.so.0=libapr-1.so.0.3.8 s none " + "CSWapache2rt") + expected = ["CSWapache2rt"] + spkgmap = checkpkg.SystemPkgmap() + self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) + + class ExtractorsUnitTest(unittest.TestCase): def testExtractDescriptionFromGoodData(self): @@ -60,67 +296,68 @@ self.assertEqual(expected, re.match(checkpkg.PSTAMP_RE, pstamp).groupdict()) +class CheckpkgManager2UnitTest(unittest.TestCase): + + def test_1(self): + m = checkpkg.CheckpkgManager2("testname", "/tmp", ["CSWfoo"]) + tags = { + "CSWfoo": [ + tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), + ], + } + screen_report, tags_report = m.FormatReports(tags, [], []) + expected = u'# Tags reported by testname module\nCSWfoo: foo-tag foo-info\n' + self.assertEqual(expected, unicode(tags_report)) + + def test_2(self): + m = checkpkg.CheckpkgManager2("testname", "/tmp", ["CSWfoo"]) + tags = { + "CSWfoo": [ + tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), + tag.CheckpkgTag("CSWfoo", "bar-tag", "bar-info"), + tag.CheckpkgTag("CSWfoo", "baz-tag"), + ], + } + screen_report, tags_report = m.FormatReports(tags, [], []) + expected = (u'# Tags reported by testname module\n' + u'CSWfoo: foo-tag foo-info\n' + u'CSWfoo: bar-tag bar-info\n' + u'CSWfoo: baz-tag\n') + self.assertEqual(expected, unicode(tags_report)) + + class SliceListUnitTest(unittest.TestCase): def testOne(self): l = [1, 2, 3, 4, 5] s = 1 expected = [[1], [2], [3], [4], [5]] - self.assertTrue(expected, checkpkg_lib.SliceList(l, s)) + self.assertTrue(expected, checkpkg.SliceList(l, s)) def testTwo(self): l = [1, 2, 3, 4, 5] s = 2 expected = [[1, 2], [3, 4], [5]] - self.assertTrue(expected, checkpkg_lib.SliceList(l, s)) + self.assertTrue(expected, checkpkg.SliceList(l, s)) -class SqliteUnitTest(unittest.TestCase): +class LddEmulartorUnitTest(unittest.TestCase): - "Makes sure that we can lose state between tests." - def setUp(self): - self.conn = sqlite3.connect(":memory:") - self.c = self.conn.cursor() + self.pkgmap_mocker = mox.Mox() + self.e = checkpkg.LddEmulator() - def tearDown(self): - self.conn = None + def testResolveSoname_1(self): + # runpath_list, soname, isalist, path_list, binary_path + runpath_list = ["/opt/csw/bdb47/lib", "/opt/csw/lib"] + soname = "foo.so.1" + path_list = ["/opt/csw/lib", "/opt/csw/bdb47/lib", "/usr/lib"] + binary_path = "unused" + isalist = ["amd64"] + result = self.e.ResolveSoname(runpath_list, soname, isalist, + path_list, binary_path) + self.assertEqual("/opt/csw/bdb47/lib", result) - def testCannotCreateTwoTables(self): - self.c.execute("CREATE TABLE foo (INT bar);") - self.assertRaises( - sqlite3.OperationalError, - self.c.execute, "CREATE TABLE foo (INT bar);") - def testOne(self): - self.c.execute("CREATE TABLE foo (INT bar);") - - def testTwo(self): - self.c.execute("CREATE TABLE foo (INT bar);") - - -class SqlobjectUnitTest(test_base.SqlObjectTestMixin, unittest.TestCase): - - "Makes sure that we can lose state between methods." - - class TestModel(sqlobject.SQLObject): - name = sqlobject.UnicodeCol(length=255, unique=True, notNone=True) - - # This does not work. Why? - # def testCannotCreateTwoTables(self): - # self.TestModel.createTable() - # self.assertRaises( - # sqlite3.OperationalError, - # self.TestModel.createTable) - - def testOne(self): - self.TestModel.createTable() - - def testTwo(self): @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Sat Dec 11 01:26:22 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Sat, 11 Dec 2010 00:26:22 +0000 Subject: [csw-devel] SF.net SVN: gar:[11881] csw/mgar/pkg/freeradius/trunk Message-ID: Revision: 11881 http://gar.svn.sourceforge.net/gar/?rev=11881&view=rev Author: gadavis Date: 2010-12-11 00:26:22 +0000 (Sat, 11 Dec 2010) Log Message: ----------- Include some ssl keys Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/freeradius/trunk/files/ca.pem csw/mgar/pkg/freeradius/trunk/files/server.pem Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-10 20:55:58 UTC (rev 11880) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-11 00:26:22 UTC (rev 11881) @@ -10,6 +10,8 @@ MASTER_SITES = ftp://ftp.freeradius.org:/pub/freeradius/ DISTFILES = $(GARNAME)-server-$(GARVERSION).tar.gz DISTFILES += cswfreeradius +DISTFILES += server.pem +DISTFILES += ca.pem DISTNAME = $(GARNAME)-server-$(GARVERSION) UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz @@ -194,16 +196,17 @@ PATH := /opt/csw/gnu:$(PATH) -post-install-modulated: copy-local-files - -# Copy in specialized templates -copy-local-files: +post-install-modulated: + ### Copy init script + @echo "Installing init script..." @ginstall -d $(DESTDIR)/etc/opt/csw/init.d @ginstall $(WORKDIR)/cswfreeradius $(DESTDIR)/etc/opt/csw/init.d/cswfreeradius + + # Copy self-signed sample cert + @echo "Installing sample certificate files..." + @ginstall -m 600 $(WORKDIR)/ca.pem $(DESTDIR)/$(raddbdir)/certs/ + @ginstall -m 600 $(WORKDIR)/server.pem $(DESTDIR)/$(raddbdir)/certs/ + + # Set the Make cookie @$(MAKECOOKIE) -clean-local: nuke-local-cookie - -nuke-local-cookie: - @echo Removing all copy-local-files build cookies - rm -f work/*/cookies/*/copy-local-files Added: csw/mgar/pkg/freeradius/trunk/files/ca.pem =================================================================== --- csw/mgar/pkg/freeradius/trunk/files/ca.pem (rev 0) +++ csw/mgar/pkg/freeradius/trunk/files/ca.pem 2010-12-11 00:26:22 UTC (rev 11881) @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIIEpzCCA4+gAwIBAgIJAKRbTh2VuAVRMA0GCSqGSIb3DQEBBQUAMIGTMQswCQYD +VQQGEwJGUjEPMA0GA1UECBMGUmFkaXVzMRIwEAYDVQQHEwlTb21ld2hlcmUxFTAT +BgNVBAoTDEV4YW1wbGUgSW5jLjEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBs +ZS5jb20xJjAkBgNVBAMTHUV4YW1wbGUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4X +DTEwMTIxMDAxMzgxM1oXDTExMTIxMDAxMzgxM1owgZMxCzAJBgNVBAYTAkZSMQ8w +DQYDVQQIEwZSYWRpdXMxEjAQBgNVBAcTCVNvbWV3aGVyZTEVMBMGA1UEChMMRXhh +bXBsZSBJbmMuMSAwHgYJKoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLmNvbTEmMCQG +A1UEAxMdRXhhbXBsZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDOmW+x1hkGgKVuBvxvVQJsip0hidJElWXPa/XJ +fiCHHrpgNIfNQQBKSAMpGnQEUtcdNbmwRFiyE0hzfI1pD7W5Bt4jagJbOA/iZjl3 +0suaOo/5fX66GxqlRtIH3NMQg+ts5w5JTgtuJAO/lfF76a8gZYBYJKkxEapySyvI +H6TPZYrfMSRvCxK2m/X3EAB8ut8G8r6PJXCY4SoTHwp4wQR5X1RPqrVslSluG/P4 +wYCDLD9pHinBO5TCLFvZf7g1IQgt4LbLbf9/l0eYbgoMpjQUO2FhDvOXt2OdVPCv +W9TmcVgQ6eZgxJMakN+kEJlzs6JW8qHCW7jvLDKY5HYP1McfAgMBAAGjgfswgfgw +HQYDVR0OBBYEFPt9P1VSqli9ZZdw7VFI5fH0s22sMIHIBgNVHSMEgcAwgb2AFPt9 +P1VSqli9ZZdw7VFI5fH0s22soYGZpIGWMIGTMQswCQYDVQQGEwJGUjEPMA0GA1UE +CBMGUmFkaXVzMRIwEAYDVQQHEwlTb21ld2hlcmUxFTATBgNVBAoTDEV4YW1wbGUg +SW5jLjEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5jb20xJjAkBgNVBAMT +HUV4YW1wbGUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5ggkApFtOHZW4BVEwDAYDVR0T +BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAhtCpvNy4GmqYAdMWjHzPiJ550x3H +DNmwSc+HsS+05cNoZyezVJW2OBx8N71kQYUnXJe7dVl6piF6m1FLwennFtObAsh6 +p8PjTTKEWMsPu/4fO6x39jJncoMEeYnAUq77iSwEoJoynnp6DLH+tWxbTjlnQ5bA +/NTMXVvAXeL2Izr9IneehQsTCdtjoKE10vGQa/gtDG7zlsJNvhlpU6VQEdtcrMsI +Ay1ttoaf/yaNIHCp1JSXb5IQOa5MrhQ5n7wmi1+7kEG+VER0KYFuuE9ycbax/T+R +uxFHUHpfGfdVsMvFQhDqX/O44ISqVreicuQwYr9J9iZb7n9oXeeiCMN0qw== +-----END CERTIFICATE----- Added: csw/mgar/pkg/freeradius/trunk/files/server.pem =================================================================== --- csw/mgar/pkg/freeradius/trunk/files/server.pem (rev 0) +++ csw/mgar/pkg/freeradius/trunk/files/server.pem 2010-12-11 00:26:22 UTC (rev 11881) @@ -0,0 +1,59 @@ +Bag Attributes + localKeyID: C9 79 88 27 08 0F F8 C8 01 F0 3F F9 13 BA E4 42 41 8B E8 59 +subject=/C=FR/ST=Radius/O=Example Inc./CN=Example Server Certificate/emailAddress=admin at example.com +issuer=/C=FR/ST=Radius/L=Somewhere/O=Example Inc./emailAddress=admin at example.com/CN=Example Certificate Authority +-----BEGIN CERTIFICATE----- +MIIDojCCAoqgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBkzELMAkGA1UEBhMCRlIx +DzANBgNVBAgTBlJhZGl1czESMBAGA1UEBxMJU29tZXdoZXJlMRUwEwYDVQQKEwxF +eGFtcGxlIEluYy4xIDAeBgkqhkiG9w0BCQEWEWFkbWluQGV4YW1wbGUuY29tMSYw +JAYDVQQDEx1FeGFtcGxlIENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xMDEyMTAw +MTM4MTNaFw0xMTEyMTAwMTM4MTNaMHwxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZS +YWRpdXMxFTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaRXhhbXBsZSBT +ZXJ2ZXIgQ2VydGlmaWNhdGUxIDAeBgkqhkiG9w0BCQEWEWFkbWluQGV4YW1wbGUu +Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnVoXklU4/lJN+suv +7RPfNt7Jkat7Gn32YY4VC9hDBcBXqTOi2sK2VvwcGEWFZl2xp22Jdwf08O8iqPW2 +inPfi1UfKDxV1ENrhsaIzTNcmYvEZIYkO2E82b9mBRCbhTKYTq4sCicQG7yoomB8 +foYze0pDnlILBvE3K6RU8FaFOHQGPVWBiZznrILDNhGxYDvNCMD8MUG0fETNmFKM +mQIEUahj4C1BNEBTjKNqfG+Tj7XLk92TBTOmB2AphErIBCk2xtQiDjJyI3l4W1rF +qL6IvjTpRwFiheo+IRiOvCziLw1IveVFnKKpVm67NPA2dFiioAYsV2pY6ZmwCMI6 +RQoHCQIDAQABoxcwFTATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQQF +AAOCAQEAMZx2LX+t+JiQKx+g8z0HzfhCxWpqvPpnnzeQ979GiB3tJ7ab27Tm4nqy +7pdzEKAr8zv42VBY3M1wEjY0Pjzn7ZPcNCjB7j8E0AuYRBTTkDY0NN0qVqXeMuuY +lTU81LuHKBAJ2Yy9/guwCcXihEDkeKSu0ZkWzh19WDJYuSMD8rgtGifj7X9a86Jq +SuUVrjGVVqhV0iBg3GDxLDf9cEp95T51SFh8MxglHRO6iP804bQ2DNfJFvqJcH6H +tsmcyF/4Q2x3mvertesqzM47D7Z8SeXjAlvpMg2PfkKpGJdFo7G0VwLuKmYv3lkK +oHPQfwp3/1BLeiu49A+B8cKJty/88A== +-----END CERTIFICATE----- +Bag Attributes + localKeyID: C9 79 88 27 08 0F F8 C8 01 F0 3F F9 13 BA E4 42 41 8B E8 59 +Key Attributes: +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,B37278D82DEC375F + +VGpQOzPZJKwS0nKlq1ewFyfwSS9sZ/FaS+47xtJZu7fyZZlOl1OlkPxkD9Vr0AIP +fzh/bziv6GXB+y8qgRy5OkGTnqBIYgF1dJXci/+DdUNsiEDcJxYgODQ5/APYRIRF +z88uZst2rzTiPtPVzDKqqi+Gosr7JXYzifeKEu7EcFCAF40nE/QChU+GpKRg/uD3 +qS+4OVEJ+G2WgzZkn5MZGG7zkQ4EJEqKh0s84i3OI0u9KU1WR7+fTkQZQvbAFqcb +MdYLK/hL0sO7eep/NZMuJXGSJaN4PsSM79PlbrX+dUZmVwIx7UXRnH40rCukMhUg ++LMxHY7CipwBkRwNHeAonKEJt/QvUAm28kHVysbPJn9CRG8OZlf53llFMtjpwHog +FotrfENhlLvWeVWGf7S54cW5rTu1TjA1kBeP5mitiE8Z2HmALfAA97je/6q0s9qt +6qGkpBoIo8mWs2ITppHl5OFxdvHnZuUDNcbfM8n0CUVDvYn3HoWPdcbnmf27j33q +f3kPdG51haDYUwtjt3ySYmJG7aNeLp9xlOizv4MtwS7SD6Pl3N6nzrInv2Mrqt43 +iTocwVKdZfxg/VcxgydkBDvtoIkfDTBI3dEOpjJSIY8O1KYFMIRQNgkrW9NzZIyn ++NHpev+9wtBKLDYrd0KMUgE3MvyqLj/1QMphfLSzX6eVKubODwE7bOvrbehDztCZ +RssbZQFdoJ1vB2tB0Uz5WoP3F5rHClkbb7r0M7GoZ5/5H/FMZQm1hsC2TfpNn/c8 +ZwSu08eovXG+ecGxII1tDAnxYJ0xVRK5TOs1kTKGrqWp0FORuj2UTLbUGLTxwDbt +7I/gCJfIexTmt/mjhuzdLVA2RH6+FcgX9UqjRbAqIw0gHrvezJcAcLryG7+FCOOr +ZjpXx1OutXXoOqLl+PiMeTbwhjxlp8cYEaTukzF0Mvt83aXnWkYa3UOG0BQrK5Pz +DLv5csVpis222KZYZIVdYhHZ7O8Y14pWKUpkD9qhiwHA0rXt5BgQBA2FQrBKqvzQ +8MLaHd2bPMy8I1NwoR5c555uXALQtLEstdT8toO2VqaA8JvuW+E/dizlZVmlD3jR +VHp3ysYu0P/MifU79DvG4fGOiGJK1HjmtBV41rO0NVrzX4Dr5waFCNwbPenf9j4k +iM6T9+b7ASIetlcjpz3BCxRmXnYTstjB69pVZNemvOr3osoD4H7JYADoYzsjtJUb +bmKmSlSG9jqmB2E/7LyauYmyyC6eQd6y5eDJxhlFjr1b4ICgs04jUIHH4KB8CG6d +Vo2MXU2uKnXdJMNdKDRd4571DU2yy/0+KiRbfPTpofMzi3ggomMfktjRp971/obx +RQJMmBUSrdOF525PiSvxXve/cnZ3cJgrgYbgEQYFc6H0zhijGgKmwvFSYKqUoDzl +rJS04oikyPPOOqhdBkS8Ys3CDe44dU5wNf61oVZvZv3dwqtK/pT+rJ3KkseQyAyw +MgSf0mLPDHwZMlz0hTlK3r7fleOU2QZ0FD9FTQZcfUMC3bRokewVDEsGg6w3Xtl7 +vjSOecwTFmkZ91PNzr1KeYqcX8HS6Z7V0FjP1hhi5aFiKIkeGdjUhuGsFQ//fDBY +-----END RSA PRIVATE KEY----- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Sat Dec 11 19:01:58 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Sat, 11 Dec 2010 18:01:58 +0000 Subject: [csw-devel] SF.net SVN: gar:[11882] csw/mgar/gar/v2 Message-ID: Revision: 11882 http://gar.svn.sourceforge.net/gar/?rev=11882&view=rev Author: wahwah Date: 2010-12-11 18:01:58 +0000 (Sat, 11 Dec 2010) Log Message: ----------- Merge branch 'collisions' into svn-merge Modified Paths: -------------- csw/mgar/gar/v2/bin/checkpkg csw/mgar/gar/v2/bin/mkpackage csw/mgar/gar/v2/gar.pkg.mk csw/mgar/gar/v2/lib/python/README csw/mgar/gar/v2/lib/python/catalog.py csw/mgar/gar/v2/lib/python/checkpkg.py csw/mgar/gar/v2/lib/python/checkpkg_test.py csw/mgar/gar/v2/lib/python/configuration.py csw/mgar/gar/v2/lib/python/database.py csw/mgar/gar/v2/lib/python/dependency_checks.py csw/mgar/gar/v2/lib/python/dependency_checks_test.py csw/mgar/gar/v2/lib/python/inspective_package.py csw/mgar/gar/v2/lib/python/models.py csw/mgar/gar/v2/lib/python/opencsw.py csw/mgar/gar/v2/lib/python/package.py csw/mgar/gar/v2/lib/python/package_checks.py csw/mgar/gar/v2/lib/python/package_checks_test.py csw/mgar/gar/v2/lib/python/package_stats.py csw/mgar/gar/v2/lib/python/package_stats_test.py csw/mgar/gar/v2/lib/python/pkgdb.py csw/mgar/gar/v2/lib/python/sharedlib_utils.py csw/mgar/gar/v2/lib/python/sharedlib_utils_test.py csw/mgar/gar/v2/lib/python/tag.py csw/mgar/gar/v2/lib/python/tag_test.py csw/mgar/gar/v2/lib/python/testdata/neon_stats.py csw/mgar/gar/v2/lib/python/testdata/tree_stats.py csw/mgar/gar/v2/tests/run_tests.py Added Paths: ----------- csw/mgar/gar/v2/lib/python/checkpkg2.py csw/mgar/gar/v2/lib/python/checkpkg_defaults.ini csw/mgar/gar/v2/lib/python/checkpkg_lib.py csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py csw/mgar/gar/v2/lib/python/common_constants.py csw/mgar/gar/v2/lib/python/ldd_emul.py csw/mgar/gar/v2/lib/python/ldd_emul_test.py csw/mgar/gar/v2/lib/python/models_test.py csw/mgar/gar/v2/lib/python/mute_progressbar.py csw/mgar/gar/v2/lib/python/pkgdb_test.py csw/mgar/gar/v2/lib/python/shell.py csw/mgar/gar/v2/lib/python/system_pkgmap.py csw/mgar/gar/v2/lib/python/system_pkgmap_test.py csw/mgar/gar/v2/lib/python/test_base.py Removed Paths: ------------- csw/mgar/gar/v2/bin/analyze_module_results.py csw/mgar/gar/v2/bin/checkpkg_collect_stats.py csw/mgar/gar/v2/bin/checkpkg_run_modules.py Property Changed: ---------------- csw/mgar/gar/v2/bin/checkpkg csw/mgar/gar/v2/lib/python/package_stats_test.py Deleted: csw/mgar/gar/v2/bin/analyze_module_results.py =================================================================== --- csw/mgar/gar/v2/bin/analyze_module_results.py 2010-12-11 00:26:22 UTC (rev 11881) +++ csw/mgar/gar/v2/bin/analyze_module_results.py 2010-12-11 18:01:58 UTC (rev 11882) @@ -1,73 +0,0 @@ -#!/opt/csw/bin/python2.6 -# $Id$ - -import itertools -import operator -import optparse -import os -import pprint -import progressbar -import sys -import textwrap - -# The following bit of code sets the correct path to Python libraries -# distributed with GAR. -path_list = [os.path.dirname(__file__), - "..", "lib", "python"] -sys.path.append(os.path.join(*path_list)) -import checkpkg -import overrides -import package_stats - -BEFORE_OVERRIDES = """If any of the reported errors were false positives, you -can override them pasting the lines below to the GAR recipe.""" - -AFTER_OVERRIDES = """Please note that checkpkg isn't suggesting you should -simply add these overrides do the Makefile. It only informs what the overrides -could look like. You need to understand what are the reported issues about and -use your best judgement to decide whether to fix the underlying problems or -override them. For more information, scroll up and read the detailed -messages.""" - -UNAPPLIED_OVERRIDES = """WARNING: Some overrides did not match any errors. -They can be removed, as they don't take any effect anyway. If you're getting -errors at the same time, maybe you didn't specify the overrides correctly.""" - -def main(): - parser = optparse.OptionParser() - parser.add_option("-c", "--catalog_file", dest="catalog", - help="Optional catalog file") - parser.add_option("-q", "--quiet", dest="quiet", - default=False, action="store_true", - help=("Display less messages")) - options, args = parser.parse_args() - filenames = args - - # This might be bottleneck. Perhaps a list of md5 sums can be given to this - # script instead. - - # It might be a good idea to store the error tags in the database and - # eliminate the need to access the directory with the error tag files. - - pkgstats = package_stats.StatsListFromCatalog(filenames, options.catalog) - overrides_list = [pkg.GetSavedOverrides() for pkg in pkgstats] - override_list = reduce(operator.add, overrides_list) - error_tags = reduce(operator.add, [stat.GetSavedErrorTags() for stat in pkgstats]) - (tags_after_overrides, - unapplied_overrides) = overrides.ApplyOverrides(error_tags, override_list) - if not options.quiet: - if tags_after_overrides: - print textwrap.fill(BEFORE_OVERRIDES, 80) - for checkpkg_tag in tags_after_overrides: - print checkpkg_tag.ToGarSyntax() - print textwrap.fill(AFTER_OVERRIDES, 80) - if unapplied_overrides: - print textwrap.fill(UNAPPLIED_OVERRIDES, 80) - for override in unapplied_overrides: - print "* Unused %s" % override - exit_code = bool(tags_after_overrides) - sys.exit(exit_code) - - -if __name__ == '__main__': - main() Modified: csw/mgar/gar/v2/bin/checkpkg =================================================================== --- csw/mgar/gar/v2/bin/checkpkg 2010-12-11 00:26:22 UTC (rev 11881) +++ csw/mgar/gar/v2/bin/checkpkg 2010-12-11 18:01:58 UTC (rev 11882) @@ -1,322 +1 @@ -#!/bin/ksh -p -# -# $Id$ -# -# checkpkg 1.51 -# -# diff to 1.46a -# - check multiple package files -# - checkpkg.d plugin support -# - getopts support for command line options -# - colors -# - modular architecture + unit tests -# - reliable shared library checking -# -# This script examines a package that has been put together -# for submittal to the CSW archive at opencsw.org -# -# It examines it for compliance with the packaging standards at -# http://www.opencsw.org/standards/ -# It DOES NOT CATCH EVERYTHING. However, the package will be -# tested with this script before acceptance, so you may as well -# save yourself some time, and run the script yourself! -# -# Be sure to occasionally do a "pkg-get update cswutils" so that -# you know you are tracking the most current version. -# -# TODO: -# - add message handlig to the CheckInterface class. -# - -PATH=$PATH:/usr/sbin -readonly NAME_MAX_LENGTH=${NAME_MAX_LENGTH:-20} - -command_basename=`basename $0` -command_basedir="${0%/${command_basename}}" -libshdir="${command_basedir}/../lib/sh" -readonly command_basename command_basedir libshdir -. "${libshdir}/libcheckpkg.sh" - -LOCAL_ARCH=`uname -p` -CHECKPKG_TMPDIR=${CHECKPKG_TMPDIR:-/var/tmp} -readonly CHECKPKG_TMPDIR - -# Colors only when running interactively -if [[ -t 1 ]]; then - GREEN="\\033[0;32;40m" - RED="\\033[1;31;40m" - BOLD="\\033[1m" - COLOR_RESET="\\033[00m" -else - GREEN="" - RED="" - BOLD="" - COLOR_RESET="" -fi -readonly GREEN RED BOLD COLOR_RESET - -readonly selfpath="$0" -readonly selfargs="$@" - -cleanup(){ - if [[ -d "$EXTRACTDIR" ]] ; then - rm -rf $EXTRACTDIR - fi - cleantmparchives -} - -cleantmparchives() { - for TMPARCHIVE in $tmparchives; do - if [[ "$TMPARCHIVE" != "" ]]; then - [ -f "$TMPARCHIVE" ] && rm $TMPARCHIVE - fi - done -} - -cleanupset(){ - if [ "`echo $SETINF*`" != "$SETINF*" ]; then - rm $SETINF* - fi -} - -# Print error message, and quit program. -errmsg(){ - print ERROR: $* >/dev/fd/2 - cleanup - cleanupset - print "To run checkpkg in the debug mode, add the '-d' flag, for example:" - # selfargs can be very, very long. Find a way to truncate it. - # print "${selfpath} -d ${selfargs}" - print "After you modify any overrides, you need to do gmake remerge repackage" - print "or gmake platforms-remerge platforms-repackage." - exit 1 -} - -debugmsg() { - if [[ "${DEBUG}" != "" ]]; then - print "DEBUG: $*" > /dev/fd/2 - fi -} - -# TODO: Options to add: -# - Use an pre-cached (from a catalog file?) list of md5 sums -# - Don't use the data from /var/sadm/install/contents -display_help=0 -SKIP_STATS_COLLECTION=0 -MD5_SUMS_CATALOG_FILE="" -INSTALL_CONTENTS_FILES="/var/sadm/install/contents" -ANALYZE=1 -PROFILE=0 -QUIET=0 - -while getopts hsdNM:o:c:Apq opt; do - case "${opt}" in - c) - INSTALL_CONTENTS_FILES="${INSTALL_CONTENTS_FILES} ${OPTARG}" - ;; - d) - DEBUG=1 - ;; - h) - display_help=1 - ;; - N) - SKIP_STATS_COLLECTION=1 - ;; - M) - MD5_SUMS_CATALOG_FILE="${OPTARG}" - ;; - A) - ANALYZE=0 - ;; - p) - PROFILE=1 - ;; - q) QUIET=1 - ;; - *) - echo "Unknown option '${opt}'" - ;; - esac -done -shift $(( $OPTIND -1 )) - -readonly INSTALL_CONTENTS_FILES -readonly MD5_SUMS_CATALOG_FILE -readonly SKIP_STATS_COLLECTION -readonly ANALYZE -readonly PROFILE -readonly QUIET - -if [[ "${display_help}" -eq 1 ]] ; then - print 'Usage: checkpkg [options] pkg1 [pkg2 ....]' - print 'Options:' - print ' -c use an additional install/contents file' - print ' -d display debug messages' - print ' -N skip statistics collection' - print ' -M use package md5sums from a catalog file' - print ' -A Do not analyze the results.' - print ' -p Enable profiling' - print ' -q Display less messages' - print '' - print 'Error tags are saved to the sqlite database.' - exit 0 -fi - -# a unique filename for the list of package deps and libs we see in a 'set' -SETINF=$CHECKPKG_TMPDIR/checkpkg.$$.`date +%Y%m%d%H%M%S` -SETLIBS=$SETINF.libs -SETDEPS=$SETINF.deps -pkgnames="" -tmparchives="" - -EXTRACTDIR=$CHECKPKG_TMPDIR/dissect.$$ - -if [ -d $EXTRACTDIR ] ; then - errmsg ERROR: $EXTRACTDIR already exists -fi - -for f in "$@" -do - - if [[ ! -f $f ]] ; then - errmsg ERROR: $f does not exist - fi - - -[ -d ${EXTRACTDIR} ] || mkdir ${EXTRACTDIR} - -######################################## -# Check for some common errors -######################################### - -# TODO: To be ported. -# -# # find all executables and dynamic libs,and list their filenames. -# if [[ "$basedir" != "" ]] ; then -# print -# if [[ -f $EXTRACTDIR/elflist ]] ; then -# print "Checking relocation ability..." -# xargs strings < $EXTRACTDIR/elflist| grep /opt/csw -# if [[ $? -eq 0 ]] ; then -# errmsg package build as relocatable, but binaries have hardcoded /opt/csw paths in them -# else -# print trivial check passed -# fi -# else -# echo No relocation check done for non-binary relocatable package. -# fi -# fi - -tmparchives="$tmparchives $TMPARCHIVE" -done - -# Plugin section. This is here for support for other programming languages -# than Python. As of 2010-03-16 there are no checks in there. If this keeps -# empty, if no checks in other languages get written, it could be removed. -# -# Plugins should live in checkpkg.d subdirectory in the same directory in which -# checkpkg is. Each plugin file name should be an executable and begin with -# "checkpkg-". - -test_suite_ok=1 -checkpkg_module_dir="${command_basedir}/../lib/checkpkg.d" -checkpkg_module_tag="checkpkg-" -checkpkg_stats_basedir="${HOME}/.checkpkg/stats" - -# Cleaning up old *.pyc files which can cause grief. This is because of the -# move of Python libraries. -for pyc_file in ${checkpkg_module_dir}/opencsw.pyc \ - ${checkpkg_module_dir}/checkpkg.pyc; do - if [ -f "${pyc_file}" ]; then - echo "Removing old pyc file: '${pyc_file}'" - rm "${pyc_file}" - fi -done - -if [[ "${DEBUG}" != "" ]]; then - extra_options="--debug" -fi -if [[ "${PROFILE}" -eq 1 ]]; then - extra_options="${extra_options} --profile" -fi -if [[ "${QUIET}" -eq 1 ]]; then - quiet_options="--quiet" -else - quiet_options="" -fi - -if [[ -n "${MD5_SUMS_CATALOG_FILE}" ]]; then - catalog_options="--catalog=${MD5_SUMS_CATALOG_FILE}" -else - catalog_options="" -fi - -# /var/sadm/install/contents cache update -# TODO: Either remove this section or stop the stats collection phase from -# updating the cache. -${command_basedir}/update_contents_cache.py ${extra_options} -if [[ $? -ne 0 ]]; then - errmsg "Updating the contents cache has failed." -fi -if [[ "${SKIP_STATS_COLLECTION}" -eq 0 ]]; then - # Collects package stats to be analyzed later - ${command_basedir}/checkpkg_collect_stats.py \ - ${catalog_options} \ - ${extra_options} \ - "$@" - if [[ "$?" -ne 0 ]]; then - errmsg "Stats collection phase has failed." - fi -fi - -# TODO: A performance problem. The following line means that the md5sums are -# calculated once more. -if [ "${MD5_SUMS_CATALOG_FILE}" ]; then - debugmsg "Reading md5sums from ${MD5_SUMS_CATALOG_FILE}" - md5sums=`cat "${MD5_SUMS_CATALOG_FILE}" \ - | awk '{print $5}' \ - | ggrep -E '[0-9abcdef]{32}'` -else - debugmsg "Calculating md5 sums of all the package files." - md5sums=`gmd5sum "$@" | awk '{print $1}'` -fi -debugmsg "All md5 sums: ${md5sums}" - -# Running the checks. -${command_basedir}/checkpkg_run_modules.py \ - ${extra_options} \ - -b "${checkpkg_stats_basedir}" \ - ${quiet_options} \ - ${md5sums} -if [[ "$?" -ne 0 ]]; then - print "There was a problem analyzing package stats." - test_suite_ok=0 -fi - -if [[ ${test_suite_ok} -ne 1 ]]; then - errmsg "One or more tests have finished with an error." -fi - -if [[ "${ANALYZE}" -eq 1 ]]; then -# Collecting errors and applying the overrides. -# This has to use the original files. - ${command_basedir}/analyze_module_results.py \ - ${catalog_options} \ - ${quiet_options} \ - "$@" - if [[ "$?" -ne 0 ]]; then - errmsg "${RED}Checkpkg has reported errors.${COLOR_RESET}" - else - print "${GREEN}Checkpkg reports no errors.${COLOR_RESET}" - fi -else - echo "Skipping result analysis." -fi - -print "" - -# Cleaning up after all packages -cleanup - -cleanupset +link ../lib/python/checkpkg2.py \ No newline at end of file Property changes on: csw/mgar/gar/v2/bin/checkpkg ___________________________________________________________________ Deleted: svn:executable - * Added: svn:special + * Deleted: csw/mgar/gar/v2/bin/checkpkg_collect_stats.py =================================================================== --- csw/mgar/gar/v2/bin/checkpkg_collect_stats.py 2010-12-11 00:26:22 UTC (rev 11881) +++ csw/mgar/gar/v2/bin/checkpkg_collect_stats.py 2010-12-11 18:01:58 UTC (rev 11882) @@ -1,69 +0,0 @@ -#!/opt/csw/bin/python2.6 -# -# $Id$ -# -# Collects statistics about a package and saves to a directory, for later use -# by checkpkg modules. - -import itertools -import logging -import optparse -import os -import os.path -import subprocess -import sys -import progressbar - -# The following bit of code sets the correct path to Python libraries -# distributed with GAR. -path_list = [os.path.dirname(__file__), - "..", "lib", "python"] -sys.path.append(os.path.join(*path_list)) -import checkpkg -import opencsw -import package_stats - -def main(): - parser = optparse.OptionParser() - parser.add_option("-d", "--debug", dest="debug", - default=False, action="store_true", - help="Turn on debugging messages") - parser.add_option("-c", "--catalog", dest="catalog", - help="Catalog file") - parser.add_option("-p", "--profile", dest="profile", - default=False, action="store_true", - help="A disabled option") - options, args = parser.parse_args() - if options.debug: - logging.basicConfig(level=logging.DEBUG) - else: - logging.basicConfig(level=logging.INFO) - logging.debug("Collecting statistics about given package files.") - args_display = args - if len(args_display) > 5: - args_display = args_display[:5] + ["...more..."] - file_list = args - logging.debug("Processing: %s, please be patient", args_display) - stats_list = package_stats.StatsListFromCatalog( - file_list, options.catalog, options.debug) - # Reversing the item order in the list, so that the pop() method can be used - # to get packages, and the order of processing still matches the one in the - # catalog file. - stats_list.reverse() - total_packages = len(stats_list) - counter = itertools.count(1) - logging.info("Juicing the srv4 package stream files...") - bar = progressbar.ProgressBar() - bar.maxval = total_packages - bar.start() - while stats_list: - # This way objects will get garbage collected as soon as they are removed - # from the list by pop(). The destructor (__del__()) of the srv4 class - # removes the temporary directory from the disk. This allows to process - # the whole catalog. - stats_list.pop().CollectStats() - bar.update(counter.next()) - bar.finish() - -if __name__ == '__main__': - main() Deleted: csw/mgar/gar/v2/bin/checkpkg_run_modules.py =================================================================== --- csw/mgar/gar/v2/bin/checkpkg_run_modules.py 2010-12-11 00:26:22 UTC (rev 11881) +++ csw/mgar/gar/v2/bin/checkpkg_run_modules.py 2010-12-11 18:01:58 UTC (rev 11882) @@ -1,56 +0,0 @@ -#!/opt/csw/bin/python2.6 -# $Id$ - -"""This script runs all the checks written in Python.""" - -import datetime -import logging -import os -import os.path -import sys -import re -import cProfile - -CHECKPKG_MODULE_NAME = "Second checkpkg API version" - -# The following bit of code sets the correct path to Python libraries -# distributed with GAR. -path_list = [os.path.dirname(__file__), - "..", "lib", "python"] -sys.path.append(os.path.join(*path_list)) -import checkpkg -import opencsw - - -def main(): - options, args = checkpkg.GetOptions() - if options.debug: - logging.basicConfig(level=logging.DEBUG) - else: - logging.basicConfig(level=logging.INFO) - md5sums = args - # CheckpkgManager2 class abstracts away things such as the collection of - # results. - check_manager = checkpkg.CheckpkgManager2(CHECKPKG_MODULE_NAME, - options.stats_basedir, - md5sums, - options.debug) - # Running the checks, reporting and exiting. - exit_code, screen_report, tags_report = check_manager.Run() - screen_report = unicode(screen_report) - if not options.quiet and screen_report: - sys.stdout.write(screen_report) - else: - logging.debug("No screen report.") - sys.exit(exit_code) - - -if __name__ == '__main__': - if "--profile" in sys.argv: - t_str = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M") - home = os.environ["HOME"] - cprof_file_name = os.path.join( - home, ".checkpkg", "run-modules-%s.cprof" % t_str) - cProfile.run("main()", sort=1, filename=cprof_file_name) - else: - main() Modified: csw/mgar/gar/v2/bin/mkpackage =================================================================== --- csw/mgar/gar/v2/bin/mkpackage 2010-12-11 00:26:22 UTC (rev 11881) +++ csw/mgar/gar/v2/bin/mkpackage 2010-12-11 18:01:58 UTC (rev 11882) @@ -25,6 +25,9 @@ # Tool Version/Revision Information $TOOLVERSION = "1.4"; ($REVISION) = q/$Revision$/ =~ /(\d+)/; +# This shows a warning: +# "Use of uninitialized value $REVISION in sprintf at +# /home/maciej/src/opencsw/pkg/nspr/trunk/gar/bin/mkpackage line 31." $VERSION = sprintf '%s (r%d)', $TOOLVERSION, $REVISION; # Discover network support Modified: csw/mgar/gar/v2/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2/gar.pkg.mk 2010-12-11 00:26:22 UTC (rev 11881) +++ csw/mgar/gar/v2/gar.pkg.mk 2010-12-11 18:01:58 UTC (rev 11882) @@ -52,6 +52,7 @@ GARPKG_v1 = CSWgar-v1 GARPKG_v2 = CSWgar-v2 RUNTIME_DEP_PKGS_$(SRCPACKAGE) ?= $(or $(GARPKG_$(GARSYSTEMVERSION)),$(error GAR version $(GARSYSTEMVERSION) unknown)) +CATALOG_RELEASE ?= current _PKG_SPECS = $(filter-out $(NOPACKAGE),$(SPKG_SPECS)) @@ -842,7 +843,11 @@ # pkgcheck - check if the package is compliant # pkgcheck: $(foreach SPEC,$(_PKG_SPECS),package-$(SPEC)) - $(_DBG)( LC_ALL=C $(GARBIN)/checkpkg $(foreach SPEC,$(_PKG_SPECS),$(SPKG_EXPORT)/`$(call _PKG_ENV,$(SPEC)) mkpackage --tmpdir $(SPKG_TMPDIR) -qs $(WORKDIR)/$(SPEC).gspec -D pkgfile`.gz ) || exit 2;) + $(_DBG)( LC_ALL=C $(GARBIN)/checkpkg \ + --architecture "$(GARCH)" \ + --os-releases "$(SPKG_OSNAME)" \ + --catalog-release "$(CATALOG_RELEASE)" \ + $(foreach SPEC,$(_PKG_SPECS),$(SPKG_EXPORT)/`$(call _PKG_ENV,$(SPEC)) mkpackage --tmpdir $(SPKG_TMPDIR) -qs $(WORKDIR)/$(SPEC).gspec -D pkgfile`.gz ) || exit 2;) @$(MAKECOOKIE) pkgcheck-p: Modified: csw/mgar/gar/v2/lib/python/README =================================================================== --- csw/mgar/gar/v2/lib/python/README 2010-12-11 00:26:22 UTC (rev 11881) +++ csw/mgar/gar/v2/lib/python/README 2010-12-11 18:01:58 UTC (rev 11882) @@ -21,9 +21,11 @@ tests as means to run various bits of code. Here's the dependency list for Ubuntu. - python-cheetah - python-hachoir-parser - python-magic - python-mox - python-progressbar +sudo aptitude install \ + python-cheetah \ + python-hachoir-parser \ + python-magic \ + python-mox \ + python-progressbar \ + python-sqlobject \ python-yaml Modified: csw/mgar/gar/v2/lib/python/catalog.py =================================================================== --- csw/mgar/gar/v2/lib/python/catalog.py 2010-12-11 00:26:22 UTC (rev 11881) +++ csw/mgar/gar/v2/lib/python/catalog.py 2010-12-11 18:01:58 UTC (rev 11882) @@ -123,6 +123,7 @@ def _GetCatalogData(self, fd): catalog_data = [] for line in fd: + if line.startswith("#"): continue try: parsed = self._ParseCatalogLine(line) catalog_data.append(parsed) Modified: csw/mgar/gar/v2/lib/python/checkpkg.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-11 00:26:22 UTC (rev 11881) +++ csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-11 18:01:58 UTC (rev 11882) @@ -3,44 +3,22 @@ # This is the checkpkg library, common for all checkpkg tests written in # Python. -import copy -import cPickle -import errno import itertools import logging -import operator import optparse -import os import os.path import re import pprint import progressbar -import socket -import sqlite3 import sqlobject -import time -from sqlobject import sqlbuilder import subprocess -import textwrap -from Cheetah import Template import database -import package import inspective_package -import package_checks -import package_stats import models as m -import configuration as c -import tag +import common_constants -DEBUG_BREAK_PKGMAP_AFTER = False -SYSTEM_PKGMAP = "/var/sadm/install/contents" -NEEDED_SONAMES = "needed sonames" -RUNPATH = "runpath" -SONAME = "soname" -CONFIG_MTIME = "mtime" -CONFIG_DB_SCHEMA = "db_schema_version" DO_NOT_REPORT_SURPLUS = set([u"CSWcommon", u"CSWcswclassutils", u"CSWisaexec"]) DO_NOT_REPORT_MISSING = set([]) DO_NOT_REPORT_MISSING_RE = [r"\*?SUNW.*"] @@ -48,17 +26,11 @@ PSTAMP_RE = r"(?P\w+)@(?P[\w\.-]+)-(?P\d+)" DESCRIPTION_RE = r"^([\S]+) - (.*)$" BAD_CONTENT_REGEXES = ( - # Slightly obfuscating these by using the default concatenation of - # strings. + # Slightly obfuscating these by using concatenation of strings. r'/export' r'/medusa', r'/opt' r'/build', ) -SYSTEM_SYMLINKS = ( - ("/opt/csw/bdb4", ["/opt/csw/bdb42"]), - ("/64", ["/amd64", "/sparcv9"]), - ("/opt/csw/lib/i386", ["/opt/csw/lib"]), -) INSTALL_CONTENTS_AVG_LINE_LENGTH = 102.09710677919261 SYS_DEFAULT_RUNPATH = [ "/usr/lib/$ISALIST", @@ -67,8 +39,7 @@ "/lib", ] -CONTENT_PKG_RE = r"^\*?(CSW|SUNW)[0-9a-zA-Z\-]?[0-9a-z\-]+$" -MD5_RE = r"^[0123456789abcdef]{32}$" +MD5_RE = re.compile(r"^[0123456789abcdef]{32}$") REPORT_TMPL = u"""#if $missing_deps or $surplus_deps or $orphan_sonames Dependency issues of $pkgname: @@ -90,57 +61,6 @@ #end if """ -SCREEN_ERROR_REPORT_TMPL = u"""#if $errors -#if $debug -ERROR: One or more errors have been found by $name. -#end if -#for $pkgname in $errors -$pkgname: -#for $error in $errors[$pkgname] -#if $debug - $repr($error) -#elif $error.msg -$textwrap.fill($error.msg, 78, initial_indent="# ", subsequent_indent="# ") -# -> $repr($error) - -#end if -#end for -#end for -#else -#if $debug -OK: $repr($name) module found no problems. -#end if -#end if -#if $messages -#for $msg in $messages -$textwrap.fill($msg, 78, initial_indent=" * ", subsequent_indent=" ") -#end for -#end if -#if $gar_lines - -# Checkpkg suggests adding the following lines to the GAR recipe: -# This is a summary; see above for details. -#for $line in $gar_lines -$line -#end for -#end if -""" - -# http://www.cheetahtemplate.org/docs/users_guide_html_multipage/language.directives.closures.html -TAG_REPORT_TMPL = u"""#if $errors -# Tags reported by $name module -#for $pkgname in $errors -#for $tag in $errors[$pkgname] -#if $tag.msg -$textwrap.fill($tag.msg, 70, initial_indent="# ", subsequent_indent="# ") -#end if -$pkgname: ${tag.tag_name}#if $tag.tag_info# $tag.tag_info#end if# -#end for -#end for -#end if -""" - - class Error(Exception): pass @@ -157,11 +77,12 @@ pass +class SetupError(Error): + pass + + def GetOptions(): parser = optparse.OptionParser() - parser.add_option("-b", "--stats-basedir", dest="stats_basedir", - help=("The base directory with package statistics " - "in yaml format, e.g. ~/.checkpkg/stats")) parser.add_option("-d", "--debug", dest="debug", default=False, action="store_true", help="Turn on debugging messages") @@ -172,8 +93,6 @@ default=False, action="store_true", help=("Print less messages")) (options, args) = parser.parse_args() - if not options.stats_basedir: - raise ConfigurationError("ERROR: the -b option is missing.") # Using set() to make the arguments unique. return options, set(args) @@ -195,859 +114,9 @@ return m.group("username") if m else None -class SystemPkgmap(database.DatabaseClient): - """A class to hold and manipulate the /var/sadm/install/contents file.""" - - STOP_PKGS = ["SUNWbcp", "SUNWowbcp", "SUNWucb"] - - def __init__(self, system_pkgmap_files=None, debug=False): - """There is no need to re-parse it each time. - - Read it slowly the first time and cache it for later.""" - super(SystemPkgmap, self).__init__(debug=debug) - self.cache = {} - self.pkgs_by_path_cache = {} - self.file_mtime = None - self.cache_mtime = None - self.initialized = False - if not system_pkgmap_files: - self.system_pkgmap_files = [SYSTEM_PKGMAP] - else: - self.system_pkgmap_files = system_pkgmap_files - self.csw_pkg_re = re.compile(CONTENT_PKG_RE) - self.digits_re = re.compile(r"^[0-9]+$") - - def _LazyInitializeDatabase(self): - if not self.initialized: - self.InitializeDatabase() - - def InitializeRawDb(self): - """It's necessary for low level operations.""" - if True: - logging.debug("Connecting to sqlite") - self.sqlite_conn = sqlite3.connect(self.GetDatabasePath()) - - def InitializeDatabase(self): - """Established the connection to the database. - - TODO: Refactor this class to first create CswFile with no primary key and - no indexes. - """ - need_to_create_tables = False - db_path = self.GetDatabasePath() - checkpkg_dir = os.path.join(os.environ["HOME"], self.CHECKPKG_DIR) - if not os.path.exists(db_path): - logging.info("Building the cache database %s.", self.system_pkgmap_files) - logging.info("The cache will be kept in %s.", db_path) - if not os.path.exists(checkpkg_dir): - logging.debug("Creating %s", checkpkg_dir) - os.mkdir(checkpkg_dir) - need_to_create_tables = True - self.InitializeRawDb() - self.InitializeSqlobject() - if not self.IsDatabaseGoodSchema(): - logging.info("Old database schema detected.") - self.PurgeDatabase(drop_tables=True) - need_to_create_tables = True - if need_to_create_tables: - self.CreateTables() - self.PerformInitialDataImport() - if not self.IsDatabaseUpToDate(): - logging.debug("Rebuilding the package cache, can take a few minutes.") - self.ClearTablesForUpdates() - self.RefreshDatabase() - self.initialized = True - - def RefreshDatabase(self): - for pkgmap_path in self.system_pkgmap_files: - self._ProcessSystemPkgmap(pkgmap_path) - self.PopulatePackagesTable() - self.SetDatabaseMtime() - - def PerformInitialDataImport(self): - """Imports data into the database. - - Original bit of code from checkpkg: - egrep -v 'SUNWbcp|SUNWowbcp|SUNWucb' /var/sadm/install/contents | - fgrep -f $EXTRACTDIR/liblist >$EXTRACTDIR/shortcatalog - """ - for pkgmap_path in self.system_pkgmap_files: - self._ProcessSystemPkgmap(pkgmap_path) - self.SetDatabaseSchemaVersion() - self.PopulatePackagesTable() - self.SetDatabaseMtime() - - def _ProcessSystemPkgmap(self, pkgmap_path): - """Update the database using data from pkgmap. - - The strategy to only update the necessary bits: - - for each new row - - look it up in the db - - if doesn't exist, create it - - if exists, check the - TODO: continue this description - """ - INSERT_SQL = """ - INSERT INTO csw_file (basename, path, line) - VALUES (?, ?, ?); - """ - sqlite_cursor = self.sqlite_conn.cursor() - break_after = DEBUG_BREAK_PKGMAP_AFTER - contents_length = os.stat(pkgmap_path).st_size - if break_after: - estimated_lines = break_after - else: - estimated_lines = contents_length / INSTALL_CONTENTS_AVG_LINE_LENGTH - # The progressbar library doesn't like handling larger numbers - # It displays up to 99% if we feed it a maxval in the range of hundreds of - # thousands. - progressbar_divisor = int(estimated_lines / 1000) - if progressbar_divisor < 1: - progressbar_divisor = 1 - update_period = 1L - # To help delete old records - system_pkgmap_fd = open(pkgmap_path, "r") - stop_re = re.compile("(%s)" % "|".join(self.STOP_PKGS)) - # Creating a data structure: - # soname - {: , : , ...} - logging.debug("Building database cache db of the %s file", - pkgmap_path) - logging.info("Processing %s, it can take a few minutes", pkgmap_path) - count = itertools.count() - bar = progressbar.ProgressBar() - bar.maxval = estimated_lines / progressbar_divisor - bar.start() - # I tried dropping the csw_file_basename_idx index to speed up operation, - # but after I measured the times, it turned out that it doesn't make any - # difference to the total runnng time. - # logging.info("Dropping csw_file_basename_idx") - # sqlite_cursor.execute("DROP INDEX csw_file_basename_idx;") - for line in system_pkgmap_fd: - i = count.next() - if not i % update_period and (i / progressbar_divisor) <= bar.maxval: - bar.update(i / progressbar_divisor) - if stop_re.search(line): - continue - if line.startswith("#"): - continue - fields = re.split(c.WS_RE, line) - pkgmap_entry_path = fields[0].split("=")[0] - pkgmap_entry_dir, pkgmap_entry_base_name = os.path.split(pkgmap_entry_path) - # The following SQLObject-driven inserts are 60 times slower than the raw - # sqlite API. - # pkgmap_entry = m.CswFile(basename=pkgmap_entry_base_name, - # path=pkgmap_entry_dir, line=line.strip()) - # This page has some hints: - # http://www.mail-archive.com/sqlobject-discuss at lists.sourceforge.net/msg04641.html - # "These are simple straightforward INSERTs without any additional - # high-level burden - no SELECT, no caching, nothing. Fire and forget." - # sql = self.sqo_conn.sqlrepr( - # sqlobject.sqlbuilder.Insert(m.CswFile.sqlmeta.table, values=record)) - # self.sqo_conn.query(sql) - # ...unfortunately, it isn't any faster in practice. - # The fastest way is: - sqlite_cursor.execute(INSERT_SQL, [pkgmap_entry_base_name, - pkgmap_entry_dir, - line.strip()]) - if break_after and i > break_after: - logging.warning("Breaking after %s for debugging purposes.", break_after) - break - bar.finish() - self.sqlite_conn.commit() - logging.debug("All lines of %s were processed.", pkgmap_path) - - def _ParsePkginfoLine(self, line): - fields = re.split(c.WS_RE, line) - pkgname = fields[1] - pkg_desc = u" ".join(fields[2:]) - return pkgname, pkg_desc - - def PopulatePackagesTable(self): - logging.info("Updating the packages table") - args = ["pkginfo"] - pkginfo_proc = subprocess.Popen(args, stdout=subprocess.PIPE) - stdout, stderr = pkginfo_proc.communicate() - ret = pkginfo_proc.wait() - lines = stdout.splitlines() - bar = progressbar.ProgressBar() - bar.maxval = len(lines) - bar.start() - count = itertools.count() - INSERT_SQL = """ - INSERT INTO pkginst (pkgname, pkg_desc) - VALUES (?, ?); - """ - # If self.GetInstalledPackages calls out to the initialization, - # the result is an infinite recursion. - installed_pkgs = self.GetInstalledPackages(initialize=False) - for line in stdout.splitlines(): - pkgname, pkg_desc = self._ParsePkginfoLine(line) - if pkgname not in installed_pkgs: - # This is slow: - # pkg = m.Pkginst(pkgname=pkgname, pkg_desc=pkg_desc) - # This is much faster: - self.sqlite_conn.execute(INSERT_SQL, [pkgname, pkg_desc]) - i = count.next() - bar.update(i) - # Need to commit, otherwise subsequent SQLObject calls will fail. - self.sqlite_conn.commit() - bar.finish() - - def SetDatabaseMtime(self): - mtime = self.GetFileMtime() - res = m.CswConfig.select(m.CswConfig.q.option_key==CONFIG_MTIME) - if res.count() == 0: - logging.debug("Inserting the mtime (%s) into the database.", mtime) - config_record = m.CswConfig(option_key=CONFIG_MTIME, float_value=mtime) - else: - logging.debug("Updating the mtime (%s) in the database.", mtime) - res.getOne().float_value = mtime - - def SetDatabaseSchemaVersion(self): - try: - config_option = m.CswConfig.select( - m.CswConfig.q.option_key==CONFIG_DB_SCHEMA).getOne() - config_option.int_value = database.DB_SCHEMA_VERSION - except sqlobject.main.SQLObjectNotFound, e: - version = m.CswConfig(option_key=CONFIG_DB_SCHEMA, - int_value=database.DB_SCHEMA_VERSION) - - def GetPkgmapLineByBasename(self, filename): - """Returns pkgmap lines by basename: - { - path1: line1, - path2: line2, - } - """ - if filename in self.cache: - return self.cache[filename] - self._LazyInitializeDatabase() - res = m.CswFile.select(m.CswFile.q.basename==filename) - lines = {} - for obj in res: - lines[obj.path] = obj.line - if len(lines) == 0: - logging.debug("Cache doesn't contain filename %s", filename) - self.cache[filename] = lines - return lines - - def _InferPackagesFromPkgmapLine(self, line): - """Given a pkgmap line, return all packages it contains.""" - line = line.strip() - parts = re.split(c.WS_RE, line) - pkgs = [] - if parts[1] == 'd': - parts = parts[6:] - while parts: - part = parts.pop() - if self.digits_re.match(part): - break - elif "none" == part: - break - pkgs.append(part) - # Make the packages appear in the same order as in the install/contents - # file. - pkgs.reverse() - return pkgs - - def GetPathsAndPkgnamesByBasename(self, filename): - """Returns paths and packages by basename. - - e.g. - {"/opt/csw/lib": ["CSWfoo", "CSWbar"], - "/opt/csw/1/lib": ["CSWfoomore"]} - """ - lines = self.GetPkgmapLineByBasename(filename) - pkgs = {} - # Infer packages - for file_path in lines: - pkgs[file_path] = self._InferPackagesFromPkgmapLine(lines[file_path]) - # self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libc.so.1').AndReturn({ - # "/usr/lib": (u"SUNWcsl",)}) - logging.debug("self.error_mgr_mock.GetPathsAndPkgnamesByBasename(%s).AndReturn(%s)", - repr(filename), pprint.pformat(pkgs)) - return pkgs - - def GetPkgByPath(self, full_path): - if full_path not in self.pkgs_by_path_cache: - self._LazyInitializeDatabase() - path, basename = os.path.split(full_path) - try: - obj = m.CswFile.select( - sqlobject.AND( - m.CswFile.q.path==path, - m.CswFile.q.basename==basename)).getOne() - self.pkgs_by_path_cache[full_path] = self._InferPackagesFromPkgmapLine( - obj.line) - except sqlobject.main.SQLObjectNotFound, e: - logging.debug("Couldn't find in the db: %s/%s", path, basename) - logging.debug(e) - self.pkgs_by_path_cache[full_path] = [] - logging.debug("self.error_mgr_mock.GetPkgByPath(%s).AndReturn(%s)", - repr(full_path), pprint.pformat(self.pkgs_by_path_cache[full_path])) - return self.pkgs_by_path_cache[full_path] - - def GetDatabaseMtime(self): - if not self.cache_mtime: - res = m.CswConfig.select(m.CswConfig.q.option_key==CONFIG_MTIME) - if res.count() == 1: - self.cache_mtime = res.getOne().float_value - elif res.count() < 1: - self.cache_mtime = 1 - logging.debug("GetDatabaseMtime() --> %s", self.cache_mtime) - return self.cache_mtime - - def GetFileMtime(self): - if not self.file_mtime: - stat_data = os.stat(SYSTEM_PKGMAP) - self.file_mtime = stat_data.st_mtime - return self.file_mtime - - def GetDatabaseSchemaVersion(self): - schema_on_disk = 1L - if not m.CswConfig.tableExists(): - return schema_on_disk; - res = m.CswConfig.select(m.CswConfig.q.option_key == CONFIG_DB_SCHEMA) - if res.count() < 1: - logging.debug("No db schema value found, assuming %s.", - schema_on_disk) - elif res.count() == 1: - schema_on_disk = res.getOne().int_value - return schema_on_disk - - def IsDatabaseUpToDate(self): - f_mtime_epoch = self.GetFileMtime() - d_mtime_epoch = self.GetDatabaseMtime() - f_mtime = time.gmtime(int(f_mtime_epoch)) - d_mtime = time.gmtime(int(d_mtime_epoch)) - logging.debug("IsDatabaseUpToDate: f_mtime %s, d_time: %s", f_mtime, d_mtime) - # Rounding up to integer seconds. There is a race condition: - # pkgadd finishes at 100.1 - # checkpkg reads /var/sadm/install/contents at 100.2 - # new pkgadd runs and finishes at 100.3 - # subsequent checkpkg runs won't pick up the last change. - # I don't expect pkgadd to run under 1s. - fresh = f_mtime <= d_mtime - good_version = self.GetDatabaseSchemaVersion() >= database.DB_SCHEMA_VERSION - logging.debug("IsDatabaseUpToDate: good_version=%s, fresh=%s", - repr(good_version), repr(fresh)) - return fresh and good_version - - def ClearTablesForUpdates(self): - for table in self.TABLES_THAT_NEED_UPDATES: - table.clearTable() - - def PurgeDatabase(self, drop_tables=False): - if drop_tables: - for table in self.TABLES: - if table.tableExists(): - table.dropTable() - else: - logging.debug("Truncating all tables") - for table in self.TABLES: - table.clearTable() - - def GetInstalledPackages(self, initialize=True): - """Returns a dictionary of all installed packages.""" - if initialize: - self._LazyInitializeDatabase() - res = m.Pkginst.select() - return dict([[str(x.pkgname), str(x.pkg_desc)] for x in res]) - - -class LddEmulator(object): - """A class to emulate ldd(1) - - Used primarily to resolve SONAMEs and detect package dependencies. - """ - def __init__(self): - self.runpath_expand_cache = {} - self.runpath_origin_expand_cache = {} - self.symlink_expand_cache = {} - self.symlink64_cache = {} - self.runpath_sanitize_cache = {} - - def ExpandRunpath(self, runpath, isalist, binary_path): - """Expands a signle runpath element. - - Args: - runpath: e.g. "/opt/csw/lib/$ISALIST" - isalist: isalist elements - binary_path: Necessary to expand $ORIGIN - """ - key = (runpath, tuple(isalist)) - if key not in self.runpath_expand_cache: - origin_present = False - # Emulating $ISALIST and $ORIGIN expansion - if '$ORIGIN' in runpath: - origin_present = True - if origin_present: - key_o = (runpath, tuple(isalist), binary_path) - if key_o in self.runpath_origin_expand_cache: - return self.runpath_origin_expand_cache[key_o] - else: - if not binary_path.startswith("/"): - binary_path = "/" + binary_path - runpath = runpath.replace('$ORIGIN', binary_path) - if '$ISALIST' in runpath: - expanded_list = [runpath.replace('/$ISALIST', '')] - expanded_list += [runpath.replace('$ISALIST', isa) for isa in isalist] - else: - expanded_list = [runpath] - expanded_list = [os.path.abspath(p) for p in expanded_list] - if not origin_present: - self.runpath_expand_cache[key] = expanded_list - else: - self.runpath_origin_expand_cache[key_o] = expanded_list - return self.runpath_origin_expand_cache[key_o] - return self.runpath_expand_cache[key] - - def ExpandSymlink(self, symlink, target, input_path): - key = (symlink, target, input_path) - if key not in self.symlink_expand_cache: - symlink_re = re.compile(r"%s(/|$)" % symlink) - if re.search(symlink_re, input_path): - result = input_path.replace(symlink, target) - else: - result = input_path - self.symlink_expand_cache[key] = result - return self.symlink_expand_cache[key] - - def Emulate64BitSymlinks(self, runpath_list): - """Need to emulate the 64 -> amd64, 64 -> sparcv9 symlink - - Since we don't know the architecture, we are adding both amd64 and - sparcv9. It should be safe - there are other checks that make sure - that right architectures are in the right directories. - """ - key = tuple(runpath_list) - if key not in self.symlink64_cache: - symlinked_list = [] - for runpath in runpath_list: - for symlink, expansion_list in SYSTEM_SYMLINKS: - for target in expansion_list: - expanded = self.ExpandSymlink(symlink, target, runpath) - if expanded not in symlinked_list: - symlinked_list.append(expanded) - self.symlink64_cache[key] = symlinked_list - return self.symlink64_cache[key] - - def SanitizeRunpath(self, runpath): - if runpath not in self.runpath_sanitize_cache: - self.runpath_sanitize_cache[runpath] = os.path.normpath(runpath) - return self.runpath_sanitize_cache[runpath] - - - def ResolveSoname(self, runpath_list, soname, isalist, - path_list, binary_path): - """Emulates ldd behavior, minimal implementation. - - runpath: e.g. ["/opt/csw/lib/$ISALIST", "/usr/lib"] - soname: e.g. "libfoo.so.1" - isalist: e.g. ["sparcv9", "sparcv8"] - path_list: A list of paths where the soname is present, e.g. - ["/opt/csw/lib", "/opt/csw/lib/sparcv9"] - - The function returns the one path. - """ - # Emulating the install time symlinks, for instance, if the prototype contains - # /opt/csw/lib/i386/foo.so.0 and /opt/csw/lib/i386 is a symlink to ".", - # the shared library ends up in /opt/csw/lib/foo.so.0 and should be - # findable even when RPATH does not contain $ISALIST. - original_paths_by_expanded_paths = {} - for p in path_list: - expanded_p_list = self.Emulate64BitSymlinks([p]) - # We can't just expand and return; we need to return one of the paths given - # in the path_list. - for expanded_p in expanded_p_list: - original_paths_by_expanded_paths[expanded_p] = p - logging.debug( - "%s: looking for %s in %s", - soname, runpath_list, original_paths_by_expanded_paths.keys()) - for runpath_expanded in runpath_list: - if runpath_expanded in original_paths_by_expanded_paths: - # logging.debug("Found %s", - # original_paths_by_expanded_paths[runpath_expanded]) - return original_paths_by_expanded_paths[runpath_expanded] - - -def ParseDumpOutput(dump_output): - binary_data = {RUNPATH: [], - NEEDED_SONAMES: []} - runpath = [] - rpath = [] - for line in dump_output.splitlines(): - fields = re.split(c.WS_RE, line) - if len(fields) < 3: - continue - if fields[1] == "NEEDED": - binary_data[NEEDED_SONAMES].append(fields[2]) - elif fields[1] == "RUNPATH": - runpath.extend(fields[2].split(":")) - elif fields[1] == "RPATH": - rpath.extend(fields[2].split(":")) - elif fields[1] == "SONAME": - binary_data[SONAME] = fields[2] - if runpath: - binary_data[RUNPATH].extend(runpath) - elif rpath: - binary_data[RUNPATH].extend(rpath) - - # Converting runpath to a tuple, which is a hashable data type and can act as - # a key in a dict. - binary_data[RUNPATH] = tuple(binary_data[RUNPATH]) - # the NEEDED list must not be modified, converting to a tuple. - binary_data[NEEDED_SONAMES] = tuple(binary_data[NEEDED_SONAMES]) - binary_data["RUNPATH RPATH the same"] = (runpath == rpath) - binary_data["RPATH set"] = bool(rpath) - binary_data["RUNPATH set"] = bool(runpath) - return binary_data - - -class CheckpkgManagerBase(object): - """Common functions between the older and newer calling functions.""" - - def __init__(self, name, stats_basedir, md5sum_list, debug=False): - self.debug = debug - self.name = name - self.md5sum_list = md5sum_list - self.stats_basedir = stats_basedir - self.errors = [] - self.individual_checks = [] - self.set_checks = [] - self.packages = [] - - def GetPackageStatsList(self): - return [package_stats.PackageStats(None, self.stats_basedir, x) - for x in self.md5sum_list] - - def FormatReports(self, errors, messages, gar_lines): - namespace = { - "name": self.name, - "errors": errors, - "debug": self.debug, - "textwrap": textwrap, - "messages": messages, - "gar_lines": gar_lines, - } - screen_t = Template.Template(SCREEN_ERROR_REPORT_TMPL, searchList=[namespace]) - tags_report_t = Template.Template(TAG_REPORT_TMPL, searchList=[namespace]) - return screen_t, tags_report_t - - def SetErrorsToDict(self, set_errors, a_dict): - # These were generated by a set, but are likely to be bound to specific - # packages. We'll try to preserve the package assignments. - errors = copy.copy(a_dict) - for tag in set_errors: - if tag.pkgname: - if not tag.pkgname in errors: - errors[tag.pkgname] = [] - errors[tag.pkgname].append(tag) - else: - if "package-set" not in errors: - errors["package-set"] = [] - errors["package-set"].append(tag) - return errors - - def GetOptimizedAllStats(self, stats_obj_list): - logging.info("Unwrapping candies...") - pkgs_data = [] - counter = itertools.count() - length = len(stats_obj_list) - bar = progressbar.ProgressBar() - bar.maxval = length - bar.start() - for stats_obj in stats_obj_list: - # pkg_data = {} - # This bit is tightly tied to the data structures returned by - # PackageStats. - # - # Python strings are already implementing the flyweight pattern. What's - # left is lists and dictionaries. - i = counter.next() - # logging.debug("Loading stats for %s (%s/%s)", - # stats_obj.md5sum, i, length) - raw_pkg_data = stats_obj.GetAllStats() - pkg_data = raw_pkg_data - pkgs_data.append(pkg_data) - bar.update(i) - bar.finish() - return pkgs_data - - def Run(self): - """Runs all the checks - - Returns a tuple of an exit code and a report. - """ - packages_data = self.GetPackageStatsList() - db_stat_objs_by_pkgname = {} - obj_id_list = [] - for pkg in packages_data: - db_obj = pkg.GetDbObject() - db_stat_objs_by_pkgname[db_obj.pkginst.pkgname] = db_obj - obj_id_list.append(db_obj.id) - logging.debug("Deleting old %s errors from the database.", - db_obj.pkginst.pkgname) - conn = sqlobject.sqlhub.processConnection - # It's the maximum number of ORs in a SQL statement. - # Slicing the long list up into s-sized segments. 1000 is too much. - obj_id_lists = SliceList(obj_id_list, 900) - for obj_id_list in obj_id_lists: - # WARNING: This is raw SQL, potentially breaking during a transition to - # another db. It's here for efficiency. - sql = ("DELETE FROM checkpkg_error_tag WHERE %s;" - % " OR ".join("srv4_file_id = %s" % x for x in obj_id_list)) - conn.query(sql) - # Need to construct the predicate by hand. Otherwise: - # File "/opt/csw/lib/python/site-packages/sqlobject/sqlbuilder.py", - # line 829, in OR - # return SQLOp("OR", op1, OR(*ops)) - # RuntimeError: maximum recursion depth exceeded while calling a Python object - # - # The following also tries to use recursion and fails. - # delete_predicate = sqlobject.OR(False) - # for pred in delete_predicate_list: - # delete_predicate = sqlobject.OR(delete_predicate, pred) - # conn.query( - # conn.sqlrepr(sqlbuilder.Delete(m.CheckpkgErrorTag.sqlmeta.table, - # delete_predicate - # ))) - # res = m.CheckpkgErrorTag.select(m.CheckpkgErrorTag.q.srv4_file==db_obj) - # for obj in res: - # obj.destroySelf() - errors, messages, gar_lines = self.GetAllTags(packages_data) - no_errors = len(errors) + 1 - bar = progressbar.ProgressBar() - bar.maxval = no_errors - count = itertools.count(1) - logging.info("Stuffing the candies under the pillow...") - bar.start() - for pkgname, es in errors.iteritems(): - logging.debug("Saving %s errors to the database.", pkgname) - for e in es: - db_error = m.CheckpkgErrorTag(srv4_file=db_stat_objs_by_pkgname[e.pkgname], - pkgname=e.pkgname, - tag_name=e.tag_name, - tag_info=e.tag_info, - msg=e.msg) - bar.update(count.next()) - bar.finish() - flat_error_list = reduce(operator.add, errors.values(), []) - screen_report, tags_report = self.FormatReports(errors, messages, gar_lines) - exit_code = 0 - return (exit_code, screen_report, tags_report) - - -class CheckInterfaceBase(object): - """Proxies interaction with checking functions. - - It wraps access to the /var/sadm/install/contents cache. - """ - - def __init__(self, system_pkgmap=None, lines_dict=None): - self.system_pkgmap = system_pkgmap - if not self.system_pkgmap: - self.system_pkgmap = SystemPkgmap() - self.common_paths = {} - if lines_dict: - self.lines_dict = lines_dict - else: - self.lines_dict = {} - - def GetPathsAndPkgnamesByBasename(self, basename): - """Proxies calls to self.system_pkgmap.""" - return self.system_pkgmap.GetPathsAndPkgnamesByBasename(basename) - - def GetPkgByPath(self, path): - """Proxies calls to self.system_pkgmap.""" - return self.system_pkgmap.GetPkgByPath(path) - - def GetInstalledPackages(self, initialize=True): - return self.system_pkgmap.GetInstalledPackages(initialize) - - def _GetPathsForArch(self, arch): - if not arch in self.lines_dict: - file_name = os.path.join( - os.path.dirname(__file__), "..", "..", "etc", "commondirs-%s" % arch) - logging.debug("opening %s", file_name) - f = open(file_name, "r") - self.lines_dict[arch] = f.read().splitlines() - f.close() - return self.lines_dict[arch] - - def GetCommonPaths(self, arch): - """Returns a list of paths for architecture, from gar/etc/commondirs*.""" - # TODO: If this was cached, it could save a significant amount of time. - if arch not in ('i386', 'sparc', 'all'): - logging.warn("Wrong arch: %s", repr(arch)) - return [] - if arch == 'all': - archs = ('i386', 'sparc') - else: - archs = [arch] - lines = [] - for arch in archs: - lines.extend(self._GetPathsForArch(arch)) - return lines - - -class IndividualCheckInterface(CheckInterfaceBase): - """To be passed to the checking functions. - - Wraps the creation of tag.CheckpkgTag objects. - """ - - def __init__(self, pkgname, system_pkgmap=None): - super(IndividualCheckInterface, self).__init__(system_pkgmap) - self.pkgname = pkgname - self.errors = [] - - def ReportError(self, tag_name, tag_info=None, msg=None): - logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s)", - repr(tag_name), repr(tag_info), repr(msg)) - checkpkg_tag = tag.CheckpkgTag(self.pkgname, tag_name, tag_info, msg=msg) - self.errors.append(checkpkg_tag) - - -class SetCheckInterface(CheckInterfaceBase): - """To be passed to set checking functions.""" - - def __init__(self, system_pkgmap=None): - super(SetCheckInterface, self).__init__(system_pkgmap) - self.errors = [] - - def ReportError(self, pkgname, tag_name, tag_info=None, msg=None): - logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s, %s)", - repr(pkgname), - repr(tag_name), repr(tag_info), repr(msg)) - checkpkg_tag = tag.CheckpkgTag(pkgname, tag_name, tag_info, msg=msg) - self.errors.append(checkpkg_tag) - - -class CheckpkgMessenger(object): - """Class responsible for passing messages from checks to the user.""" - def __init__(self): - self.messages = [] - self.one_time_messages = {} - self.gar_lines = [] - - def Message(self, m): - logging.debug("self.messenger.Message(%s)", repr(m)) - self.messages.append(m) - - def OneTimeMessage(self, key, m): - logging.debug("self.messenger.OneTimeMessage(%s, %s)", repr(key), repr(m)) - if key not in self.one_time_messages: - self.one_time_messages[key] = m - - def SuggestGarLine(self, m): - logging.debug("self.messenger.SuggestGarLine(%s)", repr(m)) - self.gar_lines.append(m) - - -class CheckpkgManager2(CheckpkgManagerBase): - """The second incarnation of the checkpkg manager. - - Implements the API to be used by checking functions. - - Its purpose is to reduce the amount of boilerplate code and allow for easier - unit test writing. - """ - def _RegisterIndividualCheck(self, function): - self.individual_checks.append(function) - - def _RegisterSetCheck(self, function): - self.set_checks.append(function) - - def _AutoregisterChecks(self): - """Autodetects all defined checks.""" - logging.debug("CheckpkgManager2._AutoregisterChecks()") - checkpkg_module = package_checks - members = dir(checkpkg_module) - for member_name in members: - logging.debug("Examining module member: %s", repr(member_name)) - member = getattr(checkpkg_module, member_name) - if callable(member): - if member_name.startswith("Check"): - logging.debug("Registering individual check %s", repr(member_name)) - self._RegisterIndividualCheck(member) - elif member_name.startswith("SetCheck"): - logging.debug("Registering set check %s", repr(member_name)) - self._RegisterSetCheck(member) - - def GetAllTags(self, stats_obj_list): - errors = {} - pkgmap = SystemPkgmap() - logging.debug("Loading all package statistics.") - pkgs_data = self.GetOptimizedAllStats(stats_obj_list) - logging.debug("All package statistics loaded.") - messenger = CheckpkgMessenger() - # Individual checks - count = itertools.count() - bar = progressbar.ProgressBar() - bar.maxval = len(pkgs_data) * len(self.individual_checks) - logging.info("Tasting candies one by one...") - bar.start() - for pkg_data in pkgs_data: - pkgname = pkg_data["basic_stats"]["pkgname"] - check_interface = IndividualCheckInterface(pkgname, pkgmap) - for function in self.individual_checks: - logger = logging.getLogger("%s-%s" % (pkgname, function.__name__)) - logger.debug("Calling %s", function.__name__) - function(pkg_data, check_interface, logger=logger, messenger=messenger) - if check_interface.errors: - errors[pkgname] = check_interface.errors - bar.update(count.next()) - bar.finish() - # Set checks - logging.info("Tasting them all at once...") - for function in self.set_checks: - logger = logging.getLogger(function.__name__) - check_interface = SetCheckInterface(pkgmap) - logger.debug("Calling %s", function.__name__) - function(pkgs_data, check_interface, logger=logger, messenger=messenger) - if check_interface.errors: - errors = self.SetErrorsToDict(check_interface.errors, errors) - messages = messenger.messages + messenger.one_time_messages.values() - return errors, messages, messenger.gar_lines - - def Run(self): - self._AutoregisterChecks() - return super(CheckpkgManager2, self).Run() - - -def GetIsalist(): - args = ["isalist"] - isalist_proc = subprocess.Popen(args, stdout=subprocess.PIPE) - stdout, stderr = isalist_proc.communicate() - ret = isalist_proc.wait() - if ret: - logging.error("Calling isalist has failed.") - isalist = re.split(r"\s+", stdout.strip()) - return tuple(isalist) - - -def ErrorTagsFromFile(file_name): - fd = open(file_name) - error_tags = [] - for line in fd: - if line.startswith("#"): - continue - pkgname, tag_name, tag_info = tag.ParseTagLine(line) - error_tags.append(tag.CheckpkgTag(pkgname, tag_name, tag_info)) - return error_tags - - -def SliceList(l, size): - """Trasforms a list into a list of lists.""" - idxes = xrange(0, len(l), size) - sliced = [l[i:i+size] for i in idxes] - return sliced - def IsMd5(s): # For optimization, move the compilation elsewhere. - md5_re = re.compile(MD5_RE) - return md5_re.match(s) + return MD5_RE.match(s) def GetPackageStatsByFilenamesOrMd5s(args, debug=False): filenames = [] @@ -1059,15 +128,15 @@ filenames.append(arg) srv4_pkgs = [inspective_package.InspectiveCswSrv4File(x) for x in filenames] pkgstat_objs = [] - bar = progressbar.ProgressBar() - bar.maxval = len(md5s) + len(srv4_pkgs) - bar.start() + pbar = progressbar.ProgressBar() + pbar.maxval = len(md5s) + len(srv4_pkgs) + pbar.start() counter = itertools.count() for pkg in srv4_pkgs: pkgstat_objs.append(package_stats.PackageStats(pkg, debug=debug)) - bar.update(counter.next()) + pbar.update(counter.next()) for md5 in md5s: pkgstat_objs.append(package_stats.PackageStats(None, md5sum=md5, debug=debug)) - bar.update(counter.next()) - bar.finish() + pbar.update(counter.next()) + pbar.finish() return pkgstat_objs Added: csw/mgar/gar/v2/lib/python/checkpkg2.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg2.py (rev 0) +++ csw/mgar/gar/v2/lib/python/checkpkg2.py 2010-12-11 18:01:58 UTC (rev 11882) @@ -0,0 +1,179 @@ +#!/usr/bin/env python2.6 +# +# checkpkg +# + +import logging +import operator +import optparse +import os +import sys +import textwrap +import configuration +import datetime +import database + +import package_stats +import checkpkg +import checkpkg_lib +import overrides +import models +import sqlobject + +USAGE = """%prog [ options ] pkg1 [ pkg2 [ ... ] ]""" +CHECKPKG_MODULE_NAME = "The main checking module." +BEFORE_OVERRIDES = """If any of the reported errors were false positives, you +can override them pasting the lines below to the GAR recipe.""" + +AFTER_OVERRIDES = """Please note that checkpkg isn't suggesting you should +simply add these overrides do the Makefile. It only informs what the overrides +could look like. You need to understand what are the reported issues about and +use your best judgement to decide whether to fix the underlying problems or +override them. For more information, scroll up and read the detailed +messages.""" + +UNAPPLIED_OVERRIDES = """WARNING: Some overrides did not match any errors. +They can be removed, as they don't take any effect anyway. If you're getting +errors at the same time, maybe you didn't specify the overrides correctly.""" + + +class Error(Exception): + """Generic error.""" + + +class UsageError(Error): + """Problem with usage, e.g. command line options.""" + + +def main(): + configuration.SetUpSqlobjectConnection() + parser = optparse.OptionParser(USAGE) + parser.add_option("-d", "--debug", + dest="debug", + action="store_true", + default=False, + help="Switch on debugging messages") + parser.add_option("-q", "--quiet", + dest="quiet", + action="store_true", + default=False, + help="Display less messages") + parser.add_option("--catalog-release", + dest="catrel", + default="unstable", + help="A catalog release: experimental, unstable, testing, stable.") + parser.add_option("-r", "--os-releases", + dest="osrel_commas", + help=("Comma separated list of ['SunOS5.9', 'SunOS5.10'], " + "e.g. 'SunOS5.9,SunOS5.10'.")) + parser.add_option("-a", "--architecture", + dest="arch", + help="Architecture: i386, sparc.") + parser.add_option("--profile", dest="profile", + default=False, action="store_true", + help="Enable profiling (a developer option).") + options, args = parser.parse_args() + assert len(args), "The list of files or md5 sums must be not empty." + logging_level = logging.INFO + if options.quiet: + logging_level = logging.WARNING + elif options.debug: + # If both flags are set, debug wins. + logging_level = logging.DEBUG + logging.basicConfig(level=logging_level) + logging.debug("Starting.") + + dm = database.DatabaseManager() + dm.AutoManage() + + + err_msg_list = [] + if not options.osrel_commas: + err_msg_list.append("Please specify --os-releases.") + if not options.arch: + err_msg_list.append("Please specify --architecture.") + if err_msg_list: + raise UsageError(" ".join(err_msg_list)) + + stats_list = [] + collector = package_stats.StatsCollector( + logger=logging, + debug=options.debug) + # We need to separate files and md5 sums. + md5_sums, file_list = [], [] + for arg in args: + if checkpkg.MD5_RE.match(arg): + md5_sums.append(arg) + else: + file_list.append(arg) + if file_list: + stats_list = collector.CollectStatsFromFiles(file_list, None) + # We need the md5 sums of these files + md5_sums.extend([x["basic_stats"]["md5_sum"] for x in stats_list]) + assert md5_sums, "The list of md5 sums must not be empty." + logging.debug("md5_sums: %s", md5_sums) + osrel_list = options.osrel_commas.split(",") + logging.debug("Reading packages data from the database.") + # This part might need improvements in order to handle a whole + # catalog. On the other hand, if we already have the whole catalog in + # the database, we can do it altogether differently. + # Transforming the result to a list in order to force object + # retrieval. + sqo_pkgs = list(models.Srv4FileStats.select( + sqlobject.IN(models.Srv4FileStats.q.md5_sum, md5_sums))) + tags_for_all_osrels = [] + sqo_arch = models.Architecture.selectBy(name=options.arch).getOne() + sqo_catrel = models.CatalogRelease.selectBy(name=options.catrel).getOne() + for osrel in osrel_list: + sqo_osrel = models.OsRelease.selectBy(short_name=osrel).getOne() + dm.VerifyContents(sqo_osrel, sqo_arch) + check_manager = checkpkg_lib.CheckpkgManager2( + CHECKPKG_MODULE_NAME, + sqo_pkgs, + osrel, + options.arch, + options.catrel, + debug=options.debug, + show_progress=(not options.quiet)) + # Running the checks, reporting and exiting. + exit_code, screen_report, tags_report = check_manager.Run() + screen_report = unicode(screen_report) + if not options.quiet and screen_report: + # TODO: Write this to screen only after overrides are applied. + sys.stdout.write(screen_report) + else: + logging.debug("No screen report.") + + overrides_list = [list(pkg.GetOverridesResult()) for pkg in sqo_pkgs] + override_list = reduce(operator.add, overrides_list) + args = (sqo_osrel, sqo_arch, sqo_catrel) + tag_lists = [list(pkg.GetErrorTagsResult(*args)) for pkg in sqo_pkgs] + error_tags = reduce(operator.add, tag_lists) + # TODO: Set the 'overriden' tag for specific error tags + (tags_after_overrides, + unapplied_overrides) = overrides.ApplyOverrides(error_tags, override_list) + tags_for_all_osrels.extend(tags_after_overrides) + if not options.quiet: + if tags_after_overrides: + print textwrap.fill(BEFORE_OVERRIDES, 80) + for checkpkg_tag in tags_after_overrides: + print checkpkg_tag.ToGarSyntax() + print textwrap.fill(AFTER_OVERRIDES, 80) + if unapplied_overrides: + print textwrap.fill(UNAPPLIED_OVERRIDES, 80) + for override in unapplied_overrides: + print "* Unused %s" % override + exit_code = bool(tags_for_all_osrels) + sys.exit(exit_code) + + +if __name__ == '__main__': + if "--profile" in sys.argv: + import cProfile + t_str = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M") + home = os.environ["HOME"] + cprof_file_name = os.path.join( + home, ".checkpkg", "run-modules-%s.cprof" % t_str) + cProfile.run("main()", sort=1, filename=cprof_file_name) + else: + main() Property changes on: csw/mgar/gar/v2/lib/python/checkpkg2.py ___________________________________________________________________ Added: svn:executable + * Added: csw/mgar/gar/v2/lib/python/checkpkg_defaults.ini =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_defaults.ini (rev 0) +++ csw/mgar/gar/v2/lib/python/checkpkg_defaults.ini 2010-12-11 18:01:58 UTC (rev 11882) @@ -0,0 +1,6 @@ +; The default setting for checkpkg. Without this file, checkpkg creates a new +; config file and starts to populate the database. + +[database] + +auto_manage = no Added: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py (rev 0) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-11 18:01:58 UTC (rev 11882) @@ -0,0 +1,637 @@ +# A collection of checkpkg-specific classes. +# +# This file is supposed to drain the checkpkg.py file until is becomes +# empty and goes away. + +import copy +from Cheetah import Template +import logging +import package_stats +import package_checks +import sqlobject +import itertools +import progressbar +import database +import models as m +import textwrap +import os.path +import tag +import pprint +import operator +import common_constants +import sharedlib_utils +import mute_progressbar +import cPickle +from sqlobject import sqlbuilder + + +class Error(Exception): + pass + + +class CatalogDatabaseError(Error): + pass + + +SCREEN_ERROR_REPORT_TMPL = u"""#if $errors +#if $debug +ERROR: One or more errors have been found by $name. +#end if +#for $pkgname in $errors +$pkgname: +#for $error in $errors[$pkgname] +#if $debug + $repr($error) +#elif $error.msg +$textwrap.fill($error.msg, 78, initial_indent="# ", subsequent_indent="# ") +# -> $repr($error) + +#end if +#end for +#end for +#else +#if $debug +OK: $repr($name) module found no problems. +#end if +#end if +#if $messages +#for $msg in $messages +$textwrap.fill($msg, 78, initial_indent=" * ", subsequent_indent=" ") +#end for +#end if +#if $gar_lines + +# Checkpkg suggests adding the following lines to the GAR recipe: +# This is a summary; see above for details. +#for $line in $gar_lines +$line +#end for +#end if +""" + +# http://www.cheetahtemplate.org/docs/users_guide_html_multipage/language.directives.closures.html +TAG_REPORT_TMPL = u"""#if $errors +# Tags reported by $name module +#for $pkgname in $errors +#for $tag in $errors[$pkgname] +#if $tag.msg +$textwrap.fill($tag.msg, 70, initial_indent="# ", subsequent_indent="# ") +#end if +$pkgname: ${tag.tag_name}#if $tag.tag_info# $tag.tag_info#end if# +#end for +#end for +#end if +""" + + +class SqlobjectHelperMixin(object): + + def __init__(self): + super(SqlobjectHelperMixin, self).__init__() + self.triad_cache = {} + + def GetSqlobjectTriad(self, osrel, arch, catrel): + key = (osrel, arch, catrel) + if key not in self.triad_cache: + logging.debug("GetSqlobjectTriad(%s, %s, %s)", osrel, arch, catrel) + sqo_arch = m.Architecture.select( + m.Architecture.q.name==arch).getOne() + sqo_osrel = m.OsRelease.select( + m.OsRelease.q.short_name==osrel).getOne() + sqo_catrel = m.CatalogRelease.select( + m.CatalogRelease.q.name==catrel).getOne() + self.triad_cache[key] = sqo_osrel, sqo_arch, sqo_catrel + return self.triad_cache[key] + + +class CheckpkgManagerBase(SqlobjectHelperMixin): + """Common functions between the older and newer calling functions.""" + + def __init__(self, name, sqo_pkgs_list, osrel, arch, catrel, debug=False, + show_progress=False): + super(CheckpkgManagerBase, self).__init__() + self.debug = debug + self.name = name + self.sqo_pkgs_list = sqo_pkgs_list + self.errors = [] + self.individual_checks = [] + self.set_checks = [] + self.packages = [] + self.osrel = osrel + self.arch = arch + self.catrel = catrel + self.show_progress = show_progress + + def GetProgressBar(self): + if self.show_progress and not self.debug: + return progressbar.ProgressBar() + else: + return mute_progressbar.MuteProgressBar() + + def GetSqlobjectTriad(self): + return super(CheckpkgManagerBase, self).GetSqlobjectTriad( + self.osrel, self.arch, self.catrel) + + def GetPackageStatsList(self): + raise RuntimeError("Please don't use this function as it violates " + "the Law of Demeter.") + + def FormatReports(self, errors, messages, gar_lines): + namespace = { + "name": self.name, + "errors": errors, + "debug": self.debug, + "textwrap": textwrap, + "messages": messages, + "gar_lines": gar_lines, + } + screen_t = Template.Template(SCREEN_ERROR_REPORT_TMPL, searchList=[namespace]) + tags_report_t = Template.Template(TAG_REPORT_TMPL, searchList=[namespace]) + return screen_t, tags_report_t + + def SetErrorsToDict(self, set_errors, a_dict): + # These were generated by a set, but are likely to be bound to specific + # packages. We'll try to preserve the package assignments. + errors = copy.copy(a_dict) + for tag in set_errors: + if tag.pkgname: + if not tag.pkgname in errors: + errors[tag.pkgname] = [] + errors[tag.pkgname].append(tag) + else: + if "package-set" not in errors: + errors["package-set"] = [] + errors["package-set"].append(tag) + return errors + + def GetOptimizedAllStats(self, stats_obj_list): + logging.info("Unwrapping candies...") + pkgs_data = [] + counter = itertools.count() + length = len(stats_obj_list) + pbar = self.GetProgressBar() + pbar.maxval = length + pbar.start() + for stats_obj in stats_obj_list: + # This bit is tightly tied to the data structures returned by + # PackageStats. + # + # Python strings are already implementing the flyweight pattern. What's + # left is lists and dictionaries. + i = counter.next() + raw_pkg_data = cPickle.loads(stats_obj.data_obj.pickle) + pkg_data = raw_pkg_data + pkgs_data.append(pkg_data) + pbar.update(i) + pbar.finish() + return pkgs_data + + def Run(self): + """Runs all the checks + + Returns a tuple of an exit code and a report. + """ + # packages_data = self.GetPackageStatsList() + assert self.sqo_pkgs_list, "The list of packages must not be empty." + db_stat_objs_by_pkgname = {} + for pkg in self.sqo_pkgs_list: + db_stat_objs_by_pkgname[pkg.pkginst.pkgname] = pkg + logging.debug("Deleting old errors from the database.") + for pkgname, db_obj in db_stat_objs_by_pkgname.iteritems(): + sqo_os_rel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad() + db_obj.RemoveCheckpkgResults( + sqo_os_rel, sqo_arch, sqo_catrel) + errors, messages, gar_lines = self.GetAllTags(self.sqo_pkgs_list) + no_errors = len(errors) + 1 + pbar = self.GetProgressBar() + pbar.maxval = no_errors + count = itertools.count(1) + logging.info("Stuffing the candies under the pillow...") + pbar.start() + for pkgname, es in errors.iteritems(): + logging.debug("Saving errors of %s to the database.", pkgname) + for e in es: + if e.pkgname not in db_stat_objs_by_pkgname: + logging.warning("Not saving an error for %s.", e.pkgname) + continue + db_error = m.CheckpkgErrorTag(srv4_file=db_stat_objs_by_pkgname[e.pkgname], + pkgname=e.pkgname, + tag_name=e.tag_name, + tag_info=e.tag_info, + msg=e.msg, + os_rel=sqo_os_rel, + catrel=sqo_catrel, + arch=sqo_arch) + pbar.update(count.next()) + pbar.finish() + flat_error_list = reduce(operator.add, errors.values(), []) + screen_report, tags_report = self.FormatReports(errors, messages, gar_lines) + exit_code = 0 + return (exit_code, screen_report, tags_report) + + +class CheckInterfaceBase(object): + """Provides an interface for checking functions. + + It wraps access to the catalog database. + """ + + def __init__(self, osrel, arch, catrel, catalog=None, lines_dict=None): + self.osrel = osrel + self.arch = arch + self.catrel = catrel + self.catalog = catalog + if not self.catalog: + self.catalog = Catalog() + self.common_paths = {} + if lines_dict: + self.lines_dict = lines_dict + else: + self.lines_dict = {} + + def GetPathsAndPkgnamesByBasename(self, basename): + """Proxies calls to class member.""" + return self.catalog.GetPathsAndPkgnamesByBasename( + basename, self.osrel, self.arch, self.catrel) + + def GetPkgByPath(self, file_path): + """Proxies calls to self.system_pkgmap.""" + return self.catalog.GetPkgByPath( + file_path, self.osrel, self.arch, self.catrel) + + def GetInstalledPackages(self): + return self.catalog.GetInstalledPackages( + self.osrel, self.arch, self.catrel) + + def _GetPathsForArch(self, arch): + if not arch in self.lines_dict: + file_name = os.path.join( + os.path.dirname(__file__), "..", "..", "etc", "commondirs-%s" % arch) + logging.debug("opening %s", file_name) + f = open(file_name, "r") + self.lines_dict[arch] = f.read().splitlines() + f.close() + return self.lines_dict[arch] + + def GetCommonPaths(self, arch): + """Returns a list of paths for architecture, from gar/etc/commondirs*.""" + # TODO: If this was cached, it could save a significant amount of time. + if arch not in ('i386', 'sparc', 'all'): + logging.warn("Wrong arch: %s", repr(arch)) + return [] + if arch == 'all': + archs = ('i386', 'sparc') + else: + archs = [arch] + lines = [] + for arch in archs: + lines.extend(self._GetPathsForArch(arch)) + return lines + + +class IndividualCheckInterface(CheckInterfaceBase): + """To be passed to the checking functions. + + Wraps the creation of tag.CheckpkgTag objects. + """ + + def __init__(self, pkgname, osrel, arch, catrel, catalog=None): + super(IndividualCheckInterface, self).__init__(osrel, arch, catrel, catalog) + self.pkgname = pkgname + self.errors = [] + + def ReportError(self, tag_name, tag_info=None, msg=None): + logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s)", + repr(tag_name), repr(tag_info), repr(msg)) + checkpkg_tag = tag.CheckpkgTag(self.pkgname, tag_name, tag_info, msg=msg) + self.errors.append(checkpkg_tag) + + +class SetCheckInterface(CheckInterfaceBase): + """To be passed to set checking functions.""" + + def __init__(self, osrel, arch, catrel, catalog=None): + super(SetCheckInterface, self).__init__(osrel, arch, catrel, catalog) + self.errors = [] + + def ReportError(self, pkgname, tag_name, tag_info=None, msg=None): + logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s, %s)", + repr(pkgname), + repr(tag_name), repr(tag_info), repr(msg)) + checkpkg_tag = tag.CheckpkgTag(pkgname, tag_name, tag_info, msg=msg) + self.errors.append(checkpkg_tag) + + +class CheckpkgMessenger(object): + """Class responsible for passing messages from checks to the user.""" + def __init__(self): + self.messages = [] + self.one_time_messages = {} + self.gar_lines = [] + + def Message(self, m): + logging.debug("self.messenger.Message(%s)", repr(m)) + self.messages.append(m) + + def OneTimeMessage(self, key, m): + logging.debug("self.messenger.OneTimeMessage(%s, %s)", repr(key), repr(m)) + if key not in self.one_time_messages: + self.one_time_messages[key] = m + + def SuggestGarLine(self, m): + logging.debug("self.messenger.SuggestGarLine(%s)", repr(m)) + self.gar_lines.append(m) + + +class CheckpkgManager2(CheckpkgManagerBase): + """The second incarnation of the checkpkg manager. + + Implements the API to be used by checking functions. + + Its purpose is to reduce the amount of boilerplate code and allow for easier + unit test writing. + """ + def _RegisterIndividualCheck(self, function): + self.individual_checks.append(function) + + def _RegisterSetCheck(self, function): + self.set_checks.append(function) + + def _AutoregisterChecks(self): + """Autodetects all defined checks.""" + logging.debug("CheckpkgManager2._AutoregisterChecks()") + checkpkg_module = package_checks + members = dir(checkpkg_module) + for member_name in members: + logging.debug("Examining module member: %s", repr(member_name)) + member = getattr(checkpkg_module, member_name) + if callable(member): + if member_name.startswith("Check"): + logging.debug("Registering individual check %s", repr(member_name)) + self._RegisterIndividualCheck(member) + elif member_name.startswith("SetCheck"): + logging.debug("Registering set check %s", repr(member_name)) + self._RegisterSetCheck(member) + + def GetAllTags(self, stats_obj_list): + errors = {} + catalog = Catalog() + logging.debug("Loading all package statistics.") + pkgs_data = self.GetOptimizedAllStats(stats_obj_list) + logging.debug("All package statistics loaded.") + messenger = CheckpkgMessenger() + # Individual checks + count = itertools.count() + pbar = self.GetProgressBar() + pbar.maxval = len(pkgs_data) * len(self.individual_checks) + logging.info("Tasting candies one by one...") + pbar.start() + for pkg_data in pkgs_data: + pkgname = pkg_data["basic_stats"]["pkgname"] + check_interface = IndividualCheckInterface( + pkgname, self.osrel, self.arch, self.catrel, catalog) + for function in self.individual_checks: + logger = logging.getLogger("%s-%s" % (pkgname, function.__name__)) + logger.debug("Calling %s", function.__name__) + function(pkg_data, check_interface, logger=logger, messenger=messenger) + if check_interface.errors: + errors[pkgname] = check_interface.errors + pbar.update(count.next()) + pbar.finish() + # Set checks + logging.info("Tasting them all at once...") + for function in self.set_checks: + logger = logging.getLogger(function.__name__) + check_interface = SetCheckInterface( + self.osrel, self.arch, self.catrel, catalog) + logger.debug("Calling %s", function.__name__) + function(pkgs_data, check_interface, logger=logger, messenger=messenger) + if check_interface.errors: + errors = self.SetErrorsToDict(check_interface.errors, errors) + messages = messenger.messages + messenger.one_time_messages.values() + return errors, messages, messenger.gar_lines + + def Run(self): + self._AutoregisterChecks() + return super(CheckpkgManager2, self).Run() + + +def SliceList(l, size): + """Trasforms a list into a list of lists.""" + idxes = xrange(0, len(l), size) + sliced = [l[i:i+size] for i in idxes] + return sliced + + +class CatalogMixin(SqlobjectHelperMixin): + """Responsible for functionality related to catalog operations. + + These include: + - getting a list of all packages + - getting a list of packages that contain certain files + - getting a list of packages that contain files of certain names + """ + + def __init__(self): + super(CatalogMixin, self).__init__() + self.pkgs_by_path_cache = {} + + def GetInstalledPackages(self, osrel, arch, catrel): + sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( + osrel, arch, catrel) + logging.debug("GetInstalledPackages(%s, %s, %s)" + % (osrel, arch, catrel)) + + # Object defining a filter for our OS release, architecture and catalog + # release. + oac = sqlobject.AND( + m.Srv4FileInCatalog.q.osrel==sqo_osrel, + m.Srv4FileInCatalog.q.arch==sqo_arch, + m.Srv4FileInCatalog.q.catrel==sqo_catrel) + # Join object, responsible for connecting the tables the right way. + join = [ + sqlbuilder.INNERJOINOn(None, + m.Srv4FileStats, + m.Pkginst.q.id==m.Srv4FileStats.q.pkginst), + sqlbuilder.INNERJOINOn(None, + m.Srv4FileInCatalog, + m.Srv4FileStats.q.id==m.Srv4FileInCatalog.q.srv4file), + ] + + res = m.Pkginst.select(oac, join=join) + pkgs = [x.pkgname for x in res] + return pkgs + + def GetPathsAndPkgnamesByBasename(self, basename, osrel, arch, catrel): + """Retrieves pkginst names of packages that have certain files. + + Since it needs to match a specific catalog, a table join is required: + - CswFile (basename) + - related Srv4FileStats + - related Srv4FileInCatalog + + Args: + basename: u'libfoo.so.1' + osrel: u'5.9' + arch: 'sparc', 'x86' + catrel: 'stable' + + Returns: + {"/opt/csw/lib": ["CSWfoo", "CSWbar"], + "/opt/csw/1/lib": ["CSWfoomore"]} + """ + pkgs = {} + sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( + osrel, arch, catrel) + + # Looks like this join is hard to do that way. + # res = m.Srv4FileInCatalog.select( + # sqlobject.AND( + # m.Srv4FileInCatalog.q.osrel==sqo_osrel, + # m.Srv4FileInCatalog.q.arch==sqo_arch, + # m.Srv4FileInCatalog.q.catrel==sqo_catrel)). + # throughTo.srv4file.thoughTo.files + + # We'll implement it on the application level. First, we'll get all + # the files that match the basename, and then filter them based on + # catalog properties. + res = m.CswFile.select(m.CswFile.q.basename==basename) + file_list = [] + for f in res: + # Check whether osrel, arch and catrel are matching. + for cat in f.srv4_file.in_catalogs: + if (f.srv4_file.registered + and cat.osrel == sqo_osrel + and cat.arch == sqo_arch + and cat.catrel == sqo_catrel): + file_list.append(f) + for obj in file_list: + pkgs.setdefault(obj.path, []) + pkgs[obj.path].append(obj.pkginst.pkgname) + logging.debug("self.error_mgr_mock.GetPathsAndPkgnamesByBasename(%s)" + ".AndReturn(%s)", repr(basename), pprint.pformat(pkgs)) + return pkgs + + def GetPkgByPath(self, full_file_path, osrel, arch, catrel): + """Returns a list of packages.""" + # Memoization for performance + + # Memoization won't buy us much. Perhaps we can fetch all the files + # belonging to the same package, so that we quickly prepopulate the cache. + + logging.debug("GetPkgByPath(%s, %s, %s, %s)" + % (full_file_path, osrel, arch, catrel)) + key = (full_file_path, osrel, arch, catrel) + if key not in self.pkgs_by_path_cache: + file_path, basename = os.path.split(full_file_path) + sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( + osrel, arch, catrel) + oac = sqlobject.AND( + m.Srv4FileInCatalog.q.osrel==sqo_osrel, + m.Srv4FileInCatalog.q.arch==sqo_arch, + m.Srv4FileInCatalog.q.catrel==sqo_catrel) + path_filter = sqlobject.AND( + oac, + m.CswFile.q.path==file_path, + m.CswFile.q.basename==basename, + m.Srv4FileStats.q.registered==True) + join = [ + sqlbuilder.INNERJOINOn(None, + m.Srv4FileStats, + m.Pkginst.q.id==m.Srv4FileStats.q.pkginst), + sqlbuilder.INNERJOINOn(None, + m.Srv4FileInCatalog, + m.Srv4FileStats.q.id==m.Srv4FileInCatalog.q.srv4file), + sqlbuilder.INNERJOINOn(None, + m.CswFile, + m.Srv4FileStats.q.id==m.CswFile.q.srv4_file), + ] + res = m.Pkginst.select(path_filter, join=join) + pkgs = [x.pkgname for x in res] + self.pkgs_by_path_cache[key] = frozenset(pkgs) + return self.pkgs_by_path_cache[key] + + def CommonArchByString(self, s): + return sharedlib_utils.ArchByString(s) + + def Srv4MatchesCatalog(self, sqo_srv4, sqo_arch): + cat_arch = self.CommonArchByString(sqo_arch.name) + pkg_arch = self.CommonArchByString(sqo_srv4.arch.name) + ans = (cat_arch == pkg_arch) or (pkg_arch == common_constants.ARCH_ALL) + if not ans: + logging.debug("Srv4MatchesCatalog(): mismatch: %s / %s and %s / %s", + cat_arch, pkg_arch, pkg_arch, common_constants.ARCH_ALL) + # Some packages have the architecture in the file saying 'all', but pkginfo + # says 'i386'. + filename_arch = self.CommonArchByString(sqo_srv4.filename_arch.name) + if filename_arch == common_constants.ARCH_ALL: + ans = True + if filename_arch != pkg_arch: + logging.warning( + "Package %s declares %s in pkginfo and %s in the filename.", + sqo_srv4, repr(pkg_arch), repr(filename_arch)) + return ans + + def AddSrv4ToCatalog(self, sqo_srv4, osrel, arch, catrel): + """Registers a srv4 file in a catalog.""" + logging.debug("AddSrv4ToCatalog(%s, %s, %s, %s)", + sqo_srv4, osrel, arch, catrel) + sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( + osrel, arch, catrel) + if not self.Srv4MatchesCatalog(sqo_srv4, sqo_arch): + raise CatalogDatabaseError( + "Specified package does not match the catalog. " + "Package: %s, catalog: %s %s %s" + % (sqo_srv4, osrel, arch, catrel)) + if not sqo_srv4.registered: + raise CatalogDatabaseError( + "Package %s (%s) is not registered for releases." + % (sqo_srv4.basename, sqo_srv4.md5_sum)) + # Checking for presence of a different srv4 with the same pkginst in the + # same catalog + pkginst = sqo_srv4.pkginst + res = m.Srv4FileStats.select( + m.Srv4FileStats.q.pkginst==pkginst).throughTo.in_catalogs.filter( + sqlobject.AND( + m.Srv4FileInCatalog.q.osrel==sqo_osrel, + m.Srv4FileInCatalog.q.arch==sqo_arch, + m.Srv4FileInCatalog.q.catrel==sqo_catrel, + m.Srv4FileInCatalog.q.srv4file!=sqo_srv4)) + if len(list(res)): + raise CatalogDatabaseError( + "There already is a package with that pkgname: %s" % pkginst) + # Checking for presence of the same srv4 already in the catalog. + res = m.Srv4FileInCatalog.select( + sqlobject.AND( + m.Srv4FileInCatalog.q.osrel==sqo_osrel, + m.Srv4FileInCatalog.q.arch==sqo_arch, + m.Srv4FileInCatalog.q.catrel==sqo_catrel, + m.Srv4FileInCatalog.q.srv4file==sqo_srv4)) + if len(list(res)): + logging.debug("%s is already part of %s %s %s", + sqo_srv4, osrel, arch, catrel) + # Our srv4 is already part of that catalog. + return + obj = m.Srv4FileInCatalog( + arch=sqo_arch, + osrel=sqo_osrel, + catrel=sqo_catrel, + srv4file=sqo_srv4) + + def RemoveSrv4(self, sqo_srv4, osrel, arch, catrel): + sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( + osrel, arch, catrel) + sqo_srv4_in_cat = m.Srv4FileInCatalog.select( + sqlobject.AND( + m.Srv4FileInCatalog.q.arch==sqo_arch, + m.Srv4FileInCatalog.q.osrel==sqo_osrel, + m.Srv4FileInCatalog.q.catrel==sqo_catrel, + m.Srv4FileInCatalog.q.srv4file==sqo_srv4)).getOne() + sqo_srv4_in_cat.registered = False + # TODO(maciej): Remove all files belonging to that one + for cat_file in sqo_srv4_in_cat.srv4file.files: + cat_file.destroySelf() + + +class Catalog(CatalogMixin): + pass Added: csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py (rev 0) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-11 18:01:58 UTC (rev 11882) @@ -0,0 +1,74 @@ +#!/usr/bin/env python2.6 + +import copy +import unittest +import checkpkg_lib +import tag +import package_stats +import database +import sqlobject +import models +import package_stats +import inspective_package +import mox +import test_base + +from testdata.neon_stats import pkgstats as neon_stats + + +class CheckpkgManager2UnitTest(unittest.TestCase): + + def setUp(self): + super(CheckpkgManager2UnitTest, self).setUp() + self.mox = mox.Mox() + + def testSingleTag(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + tags = { + "CSWfoo": [ + tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), + ], + } + screen_report, tags_report = m.FormatReports(tags, [], []) + expected = u'# Tags reported by testname module\nCSWfoo: foo-tag foo-info\n' + self.assertEqual(expected, unicode(tags_report)) + + def testThreeTags(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + tags = { + "CSWfoo": [ + tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), + tag.CheckpkgTag("CSWfoo", "bar-tag", "bar-info"), + tag.CheckpkgTag("CSWfoo", "baz-tag"), + ], + } + screen_report, tags_report = m.FormatReports(tags, [], []) + expected = (u'# Tags reported by testname module\n' + u'CSWfoo: foo-tag foo-info\n' + u'CSWfoo: bar-tag bar-info\n' + u'CSWfoo: baz-tag\n') + self.assertEqual(expected, unicode(tags_report)) + + +class CheckpkgManager2DatabaseIntegrationTest( + test_base.SqlObjectTestMixin, unittest.TestCase): + + def setUp(self): + super(CheckpkgManager2DatabaseIntegrationTest, self).setUp() + self.mox = mox.Mox() + + def testInsertNeon(self): + self.dbc.InitialDataImport() + sqo_pkg = package_stats.PackageStats.SaveStats(neon_stats[0], True) + cm = checkpkg_lib.CheckpkgManager2( + "testname", [sqo_pkg], "SunOS5.9", "sparc", "unstable", + show_progress=False) + cm.Run() + # Verifying that there are some reported error tags. + self.assertTrue(list(models.CheckpkgErrorTag.select())) + + +if __name__ == '__main__': + unittest.main() Property changes on: csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py ___________________________________________________________________ Added: svn:executable + * Modified: csw/mgar/gar/v2/lib/python/checkpkg_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_test.py 2010-12-11 00:26:22 UTC (rev 11881) +++ csw/mgar/gar/v2/lib/python/checkpkg_test.py 2010-12-11 18:01:58 UTC (rev 11882) @@ -1,16 +1,24 @@ -#!/opt/csw/bin/python2.6 +#!/usr/bin/env python2.6 # $Id$ +import copy import re import unittest import mox import difflib import checkpkg +import checkpkg_lib +import database +import models as m import tag -import testdata.dump_output_1 as dump_1 -import testdata.dump_output_2 as dump_2 -import testdata.dump_output_3 as dump_3 +import package_stats +import sqlite3 +import sqlobject +import test_base +from testdata.tree_stats import pkgstats as tree_stats +from testdata.neon_stats import pkgstats as neon_stats + """A set of unit tests for the library checking code. A bunch of lines to test in the interactive Python shell. @@ -23,250 +31,6 @@ SELECT * FROM systempkgmap WHERE basename = 'libncursesw.so.5'; """ -class GetLinesBySonameUnitTest(unittest.TestCase): - - def setUp(self): - self.pkgmap_mocker = mox.Mox() - self.e = checkpkg.LddEmulator() - - def testExpandRunpath_1(self): - isalist = ["foo", "bar"] - runpath = "/opt/csw/lib/$ISALIST" - expected = ["/opt/csw/lib", "/opt/csw/lib/foo", "/opt/csw/lib/bar"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_2(self): - isalist = ["foo", "bar"] - runpath = "/opt/csw/mysql5/lib/$ISALIST/mysql" - expected = ["/opt/csw/mysql5/lib/mysql", - "/opt/csw/mysql5/lib/foo/mysql", - "/opt/csw/mysql5/lib/bar/mysql"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_OriginSimple(self): - isalist = () - runpath = "$ORIGIN" - expected = ["/opt/csw/lib"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_OriginDots(self): - isalist = () - runpath = "$ORIGIN/.." - expected = ["/opt/csw/lib"] - bin_path = "opt/csw/lib/subdir" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_Caching(self): - """Make sure that the cache doesn't mess it up. - - Two invocations, where the only difference is the binary path. - """ - isalist = () - runpath = "/opt/csw/lib/foo" - expected = ["/opt/csw/lib/foo"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - expected = ["/opt/csw/lib/foo"] - bin_path = "/opt/csw/lib/foo" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_OriginCaching(self): - """Make sure that the cache doesn't mess it up. - - Two invocations, where the only difference is the binary path. - """ - isalist = () - runpath = "$ORIGIN" - expected = ["/opt/csw/lib"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, - self.e.ExpandRunpath(runpath, isalist, bin_path)) - expected = ["/opt/csw/foo/lib"] - bin_path = "/opt/csw/foo/lib" - self.assertEquals(expected, - self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testExpandRunpath_OnlyIsalist(self): - """Make sure that the cache doesn't mess it up. - - Two invocations, where the only difference is the binary path. - """ - isalist = ("bar",) - runpath = "/opt/csw/lib/$ISALIST" - expected = ["/opt/csw/lib", "/opt/csw/lib/bar"] - bin_path = "opt/csw/lib" - self.assertEquals(expected, self.e.ExpandRunpath(runpath, isalist, bin_path)) - - def testEmulate64BitSymlinks_1(self): - runpath_list = ["/opt/csw/mysql5/lib/foo/mysql/64"] - expected = "/opt/csw/mysql5/lib/foo/mysql/amd64" - self.assertTrue(expected in self.e.Emulate64BitSymlinks(runpath_list)) - - def testEmulate64BitSymlinks_2(self): - runpath_list = ["/opt/csw/mysql5/lib/64/mysql/foo"] - expected = "/opt/csw/mysql5/lib/amd64/mysql/foo" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertTrue(expected in result, "%s not in %s" % (expected, result)) - - def testEmulate64BitSymlinks_3(self): - runpath_list = ["/opt/csw/mysql5/lib/64/mysql/foo"] - expected = "/opt/csw/mysql5/lib/sparcv9/mysql/foo" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertTrue(expected in result, "%s not in %s" % (expected, result)) - - def testEmulate64BitSymlinks_4(self): - """No repeated paths because of symlink expansion""" - runpath_list = ["/opt/csw/lib"] - expected = "/opt/csw/lib" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertEquals(1, len(result), "len(%s) != %s" % (result, 1)) - - def testEmulateSymlinks_3(self): - runpath_list = ["/opt/csw/bdb4"] - expected = "/opt/csw/bdb42" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertTrue(expected in result, "%s not in %s" % (expected, result)) - - def testEmulateSymlinks_4(self): - runpath_list = ["/opt/csw/bdb42"] - expected = "/opt/csw/bdb42" - not_expected = "/opt/csw/bdb422" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertTrue(expected in result, - "%s not in %s" % (expected, result)) - self.assertFalse(not_expected in result, - "%s is in %s" % (not_expected, result)) - - def testEmulateSymlinks_5(self): - """Install time symlink expansion.""" - runpath_list = ["/opt/csw/lib/i386"] - expected = "/opt/csw/lib" - result = self.e.Emulate64BitSymlinks(runpath_list) - self.assertTrue(expected in result, "%s not in %s" % (expected, result)) - - def testEmulateSymlinks_6(self): - """ExpandSymlink for /opt/csw/lib/i386.""" - runpath_list = ["/opt/csw/lib/i386"] - expected = "/opt/csw/lib" - not_expected = "/opt/csw/lib/i386" - result = self.e.ExpandSymlink("/opt/csw/lib/i386", - "/opt/csw/lib", - "/opt/csw/lib/i386") - self.assertTrue(expected in result, "%s not in %s" % (expected, result)) - self.assertFalse(not_expected in result, - "%s is in %s" % (not_expected, result)) - - def testSanitizeRunpath_1(self): - self.assertEqual("/opt/csw/lib", - self.e.SanitizeRunpath("/opt/csw/lib/")) - - def testSanitizeRunpath_2(self): - self.assertEqual("/opt/csw/lib", - self.e.SanitizeRunpath("/opt//csw////lib/")) - - - -class ParseDumpOutputUnitTest(unittest.TestCase): - - def test_1(self): - expected = { - 'RPATH set': True, - 'RUNPATH RPATH the same': True, - 'RUNPATH set': True, - 'needed sonames': ('librt.so.1', - 'libresolv.so.2', - 'libc.so.1', - 'libgen.so.1', - 'libsocket.so.1', - 'libnsl.so.1', - 'libm.so.1', - 'libz.so.1'), - 'runpath': ('/opt/csw/lib/$ISALIST', - '/opt/csw/lib', - '/opt/csw/mysql5/lib/$ISALIST', - '/opt/csw/mysql5/lib', - '/opt/csw/mysql5/lib/$ISALIST/mysql'), - 'soname': 'libmysqlclient.so.15', - } - self.assertEqual(expected, - checkpkg.ParseDumpOutput(dump_1.DATA_DUMP_OUTPUT)) - - def testEmpty(self): - expected_runpath = () - self.assertEqual( - expected_runpath, - checkpkg.ParseDumpOutput(dump_2.DATA_DUMP_OUTPUT)["runpath"]) - - def testRpathOnly(self): - expected = { - 'RPATH set': True, - 'RUNPATH RPATH the same': False, - 'RUNPATH set': False, - 'needed sonames': ('librt.so.1', - 'libresolv.so.2', - 'libc.so.1', - 'libgen.so.1', - 'libsocket.so.1', - 'libnsl.so.1', - 'libm.so.1', - 'libz.so.1'), - 'runpath': ('/opt/csw/lib/$ISALIST', - '/opt/csw/lib', - '/opt/csw/mysql5/lib/$ISALIST', - '/opt/csw/mysql5/lib', - '/opt/csw/mysql5/lib/$ISALIST/mysql'), - 'soname': 'libmysqlclient.so.15', - } - self.assertEqual( - expected, - checkpkg.ParseDumpOutput(dump_3.DATA_DUMP_OUTPUT)) - - -class SystemPkgmapUnitTest(unittest.TestCase): - - def testParsePkginfoLine(self): - line = ('application CSWcswclassutils ' - 'cswclassutils - CSW class action utilities') - expected = ('CSWcswclassutils', - 'cswclassutils - CSW class action utilities') - spkgmap = checkpkg.SystemPkgmap() - self.assertEqual(expected, spkgmap._ParsePkginfoLine(line)) - - def test_InferPackagesFromPkgmapLine(self): - line = ("/opt/csw/sbin d none 0755 root bin CSWfping CSWbonobo2 " - "CSWkrb5libdev CSWsasl CSWschilybase CSWschilyutils CSWstar " - "CSWcommon CSWcacertificates CSWfacter") - expected = ["CSWfping", "CSWbonobo2", "CSWkrb5libdev", "CSWsasl", - "CSWschilybase", "CSWschilyutils", "CSWstar", "CSWcommon", - "CSWcacertificates", "CSWfacter"] - spkgmap = checkpkg.SystemPkgmap() - self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) - - def test_InferPackagesFromPkgmapLine_2(self): - line = ("/usr/lib/sparcv9/libpthread.so.1 f none 0755 root bin 41296 28258 " - "1018129099 SUNWcslx") - expected = ["SUNWcslx"] - spkgmap = checkpkg.SystemPkgmap() - self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) - - def test_InferPackagesFromPkgmapLine_3(self): - line = ("/usr/lib/libCrun.so.1 f none 0755 root bin 63588 " - "6287 1256043984 SUNWlibC") - expected = ["SUNWlibC"] - spkgmap = checkpkg.SystemPkgmap() - self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) - - def test_InferPackagesFromPkgmapLine_4(self): - line = ("/opt/csw/apache2/lib/libapr-1.so.0=libapr-1.so.0.3.8 s none " - "CSWapache2rt") - expected = ["CSWapache2rt"] - spkgmap = checkpkg.SystemPkgmap() - self.assertEqual(expected, spkgmap._InferPackagesFromPkgmapLine(line)) - - class ExtractorsUnitTest(unittest.TestCase): def testExtractDescriptionFromGoodData(self): @@ -296,68 +60,67 @@ self.assertEqual(expected, re.match(checkpkg.PSTAMP_RE, pstamp).groupdict()) -class CheckpkgManager2UnitTest(unittest.TestCase): - - def test_1(self): - m = checkpkg.CheckpkgManager2("testname", "/tmp", ["CSWfoo"]) - tags = { - "CSWfoo": [ - tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), - ], - } - screen_report, tags_report = m.FormatReports(tags, [], []) - expected = u'# Tags reported by testname module\nCSWfoo: foo-tag foo-info\n' - self.assertEqual(expected, unicode(tags_report)) - - def test_2(self): - m = checkpkg.CheckpkgManager2("testname", "/tmp", ["CSWfoo"]) - tags = { - "CSWfoo": [ - tag.CheckpkgTag("CSWfoo", "foo-tag", "foo-info"), - tag.CheckpkgTag("CSWfoo", "bar-tag", "bar-info"), - tag.CheckpkgTag("CSWfoo", "baz-tag"), - ], - } - screen_report, tags_report = m.FormatReports(tags, [], []) - expected = (u'# Tags reported by testname module\n' - u'CSWfoo: foo-tag foo-info\n' - u'CSWfoo: bar-tag bar-info\n' - u'CSWfoo: baz-tag\n') - self.assertEqual(expected, unicode(tags_report)) - - class SliceListUnitTest(unittest.TestCase): def testOne(self): l = [1, 2, 3, 4, 5] s = 1 expected = [[1], [2], [3], [4], [5]] - self.assertTrue(expected, checkpkg.SliceList(l, s)) + self.assertTrue(expected, checkpkg_lib.SliceList(l, s)) def testTwo(self): l = [1, 2, 3, 4, 5] s = 2 expected = [[1, 2], [3, 4], [5]] - self.assertTrue(expected, checkpkg.SliceList(l, s)) @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 12 00:58:47 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 11 Dec 2010 23:58:47 +0000 Subject: [csw-devel] SF.net SVN: gar:[11883] csw/mgar/pkg/apache2/trunk Message-ID: Revision: 11883 http://gar.svn.sourceforge.net/gar/?rev=11883&view=rev Author: bdwalton Date: 2010-12-11 23:58:46 +0000 (Sat, 11 Dec 2010) Log Message: ----------- apache2: add a postinstall script for CSWap2worker that will handle (re)starting it after install if required. Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/apache2/trunk/files/CSWap2worker.postinstall Modified: csw/mgar/pkg/apache2/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache2/trunk/Makefile 2010-12-11 18:01:58 UTC (rev 11882) +++ csw/mgar/pkg/apache2/trunk/Makefile 2010-12-11 23:58:46 UTC (rev 11883) @@ -37,7 +37,7 @@ # Standard package bits DISTFILES += CSWapache2.killproc cswapache2 -DISTFILES += CSWapache2.preinstall +DISTFILES += CSWapache2.preinstall CSWap2worker.postinstall # Configuration templates DISTFILES += update20to22 Added: csw/mgar/pkg/apache2/trunk/files/CSWap2worker.postinstall =================================================================== --- csw/mgar/pkg/apache2/trunk/files/CSWap2worker.postinstall (rev 0) +++ csw/mgar/pkg/apache2/trunk/files/CSWap2worker.postinstall 2010-12-11 23:58:46 UTC (rev 11883) @@ -0,0 +1,52 @@ +#!/bin/sh + +# this is a special handler for the worker mpm of apache2. As we ship +# the init/smf script with the primary package (which provides the +# default prefork mpm), there is no hook to auto-(re)start apache when +# this package gets installed. Unfortunately, the postinstall script +# is the best way to handle this situation. + +CSW_PREFIX=/opt/csw +AP2_PREFIX=$CSW_PREFIX/apache2 +AP2_BINDIR=$AP2_PREFIX/sbin +AP2_HTTPD=$AP2_BINDIR/httpd +AP2_CTRL=$AP2_BINDIR/apachectl +AP2_CONF=/etc/opt/csw/apache2/httpd.conf +SVCADM=/usr/sbin/svcadm + +# only worry about stop/start if we're not installing via jumpstart or +# similar +if [ -z "$PKG_INSTALL_ROOT" ]; then + [ ! -f "$AP2_CONF" ] && exit 0 + + # Source csw.conf, if it exists + if [ -f /opt/csw/etc/csw.conf ] ; then + . /opt/csw/etc/csw.conf + fi + if [ -f /etc/opt/csw/csw.conf ] ; then + . /etc/opt/csw/csw.conf + fi + + daemon=yes + if [ "$autoenable_daemons" = "no" ]; then + daemon=no + fi + if [ "$autoenable_cswapache2" = "no" ]; then + daemon=no + elif [ "$autoenable_cswapache2" = "yes" ]; then + daemon=yes + fi + + if [ "$daemon" = "yes" -a -x "$AP2_HTTPD" ]; then + if [ -x "$SVCADM" ]; then + $SVCADM disable cswapache2 + $SVCADM enable cswapache2 + elif [ -x "$AP2_CTRL" ]; then + $AP2_CTRL -k stop + $AP2_CTRL -k start + fi + sleep 2 + fi +fi + +exit 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 12 02:30:26 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 12 Dec 2010 01:30:26 +0000 Subject: [csw-devel] SF.net SVN: gar:[11884] csw/mgar/pkg/apache2/trunk Message-ID: Revision: 11884 http://gar.svn.sourceforge.net/gar/?rev=11884&view=rev Author: bdwalton Date: 2010-12-12 01:30:26 +0000 (Sun, 12 Dec 2010) Log Message: ----------- apache2: stop httpd.worker prior to ap2_worker removal Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/apache2/trunk/files/CSWap2worker.preremove Modified: csw/mgar/pkg/apache2/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache2/trunk/Makefile 2010-12-11 23:58:46 UTC (rev 11883) +++ csw/mgar/pkg/apache2/trunk/Makefile 2010-12-12 01:30:26 UTC (rev 11884) @@ -37,7 +37,8 @@ # Standard package bits DISTFILES += CSWapache2.killproc cswapache2 -DISTFILES += CSWapache2.preinstall CSWap2worker.postinstall +DISTFILES += CSWapache2.preinstall +DISTFILES += CSWap2worker.postinstall CSWap2worker.preremove # Configuration templates DISTFILES += update20to22 Added: csw/mgar/pkg/apache2/trunk/files/CSWap2worker.preremove =================================================================== --- csw/mgar/pkg/apache2/trunk/files/CSWap2worker.preremove (rev 0) +++ csw/mgar/pkg/apache2/trunk/files/CSWap2worker.preremove 2010-12-12 01:30:26 UTC (rev 11884) @@ -0,0 +1,26 @@ +#!/bin/sh + +# Stop httpd.worker prior to removal + +CSW_PREFIX=/opt/csw +AP2_PREFIX=$CSW_PREFIX/apache2 +AP2_BINDIR=$AP2_PREFIX/sbin +AP2_HTTPD=$AP2_BINDIR/httpd +AP2_CTRL=$AP2_BINDIR/apachectl +AP2_CONF=/etc/opt/csw/apache2/httpd.conf +SVCADM=/usr/sbin/svcadm + +[ ! -f "$AP2_CONF" ] && exit 0 + +if [ -n "`pgrep -f apache2/sbin/httpd`" ]; then + if [ -x "$AP2_HTTPD" ]; then + if [ -x "$SVCADM" ]; then + $SVCADM disable cswapache2 + elif [ -x "$AP2_CTRL" ]; then + $AP2_CTRL -k stop + fi + sleep 2 + fi +fi + +exit 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 12 04:30:23 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 12 Dec 2010 03:30:23 +0000 Subject: [csw-devel] SF.net SVN: gar:[11885] csw/mgar/pkg/apache2/trunk/files/build_cas_template Message-ID: Revision: 11885 http://gar.svn.sourceforge.net/gar/?rev=11885&view=rev Author: bdwalton Date: 2010-12-12 03:30:23 +0000 (Sun, 12 Dec 2010) Log Message: ----------- apache2: correct the last step in the config migration to avoid re-munging previous translations Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/build_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/build_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-12 01:30:26 UTC (rev 11884) +++ csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-12 03:30:23 UTC (rev 11885) @@ -27,7 +27,7 @@ # handle the new path to default ssl key files. # update various uses of the var/ paths. # ensure we use the config files from the new location - perl -pi -e "s/\/opt\/csw\/apache2\/etc\/server.crt/\/etc\/opt\/csw\/apache2\/server.crt/;" -e "s/\/opt\/csw\/apache2\/etc\/server.key/\/etc\/opt\/csw\/apache2\/server.key/;" -e "s/\/opt\/csw\/apache2\/var\/log\//\/var\/opt\/csw\/log\/apache2\//;" -e "s/\"\/opt\/csw\/apache2\/var\//\"\/var\/opt\/csw\/apache2\//;" -e "s/\"var\/log\//\"\/var\/opt\/csw\/log\/apache2\//;" -e "s/etc\//\/etc\/opt\/csw\/apache2\//;" \$NEW_CONF_FILE + perl -pi -e "s/\/opt\/csw\/apache2\/etc\/server.crt/\/etc\/opt\/csw\/apache2\/server.crt/;" -e "s/\/opt\/csw\/apache2\/etc\/server.key/\/etc\/opt\/csw\/apache2\/server.key/;" -e "s/\/opt\/csw\/apache2\/var\/log\//\/var\/opt\/csw\/log\/apache2\//;" -e "s/\"\/opt\/csw\/apache2\/var\//\"\/var\/opt\/csw\/apache2\//;" -e "s/\"var\/log\//\"\/var\/opt\/csw\/log\/apache2\//;" -e "s/ etc\//\/etc\/opt\/csw\/apache2\//;" \$NEW_CONF_FILE else # so, we're not an existing or 'needs migration' install, we must # install from the templates. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 12 04:49:04 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 12 Dec 2010 03:49:04 +0000 Subject: [csw-devel] SF.net SVN: gar:[11886] csw/mgar/pkg/apache2/trunk/files/build_cas_template Message-ID: Revision: 11886 http://gar.svn.sourceforge.net/gar/?rev=11886&view=rev Author: bdwalton Date: 2010-12-12 03:49:04 +0000 (Sun, 12 Dec 2010) Log Message: ----------- apache2: add missing space in config migration handling Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/files/build_cas_template Modified: csw/mgar/pkg/apache2/trunk/files/build_cas_template =================================================================== --- csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-12 03:30:23 UTC (rev 11885) +++ csw/mgar/pkg/apache2/trunk/files/build_cas_template 2010-12-12 03:49:04 UTC (rev 11886) @@ -27,7 +27,7 @@ # handle the new path to default ssl key files. # update various uses of the var/ paths. # ensure we use the config files from the new location - perl -pi -e "s/\/opt\/csw\/apache2\/etc\/server.crt/\/etc\/opt\/csw\/apache2\/server.crt/;" -e "s/\/opt\/csw\/apache2\/etc\/server.key/\/etc\/opt\/csw\/apache2\/server.key/;" -e "s/\/opt\/csw\/apache2\/var\/log\//\/var\/opt\/csw\/log\/apache2\//;" -e "s/\"\/opt\/csw\/apache2\/var\//\"\/var\/opt\/csw\/apache2\//;" -e "s/\"var\/log\//\"\/var\/opt\/csw\/log\/apache2\//;" -e "s/ etc\//\/etc\/opt\/csw\/apache2\//;" \$NEW_CONF_FILE + perl -pi -e "s/\/opt\/csw\/apache2\/etc\/server.crt/\/etc\/opt\/csw\/apache2\/server.crt/;" -e "s/\/opt\/csw\/apache2\/etc\/server.key/\/etc\/opt\/csw\/apache2\/server.key/;" -e "s/\/opt\/csw\/apache2\/var\/log\//\/var\/opt\/csw\/log\/apache2\//;" -e "s/\"\/opt\/csw\/apache2\/var\//\"\/var\/opt\/csw\/apache2\//;" -e "s/\"var\/log\//\"\/var\/opt\/csw\/log\/apache2\//;" -e "s/ etc\// \/etc\/opt\/csw\/apache2\//;" \$NEW_CONF_FILE else # so, we're not an existing or 'needs migration' install, we must # install from the templates. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Sun Dec 12 12:02:46 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Sun, 12 Dec 2010 11:02:46 +0000 Subject: [csw-devel] SF.net SVN: gar:[11887] csw/mgar/pkg/unrar/trunk Message-ID: Revision: 11887 http://gar.svn.sourceforge.net/gar/?rev=11887&view=rev Author: dmichelsen Date: 2010-12-12 11:02:46 +0000 (Sun, 12 Dec 2010) Log Message: ----------- unrar: Update to 4.0.2 Modified Paths: -------------- csw/mgar/pkg/unrar/trunk/Makefile csw/mgar/pkg/unrar/trunk/checksums Modified: csw/mgar/pkg/unrar/trunk/Makefile =================================================================== --- csw/mgar/pkg/unrar/trunk/Makefile 2010-12-12 03:49:04 UTC (rev 11886) +++ csw/mgar/pkg/unrar/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) @@ -1,5 +1,5 @@ GARNAME = unrar -GARVERSION = 3.9.10 +GARVERSION = 4.0.2 CATEGORIES = utils DESCRIPTION = RAR archive extractor Modified: csw/mgar/pkg/unrar/trunk/checksums =================================================================== --- csw/mgar/pkg/unrar/trunk/checksums 2010-12-12 03:49:04 UTC (rev 11886) +++ csw/mgar/pkg/unrar/trunk/checksums 2010-12-12 11:02:46 UTC (rev 11887) @@ -1,2 +1 @@ -594b777453751ee331ef241160f31499 unrar.1 -3c130ae52ff9fece50af988c343e396d unrarsrc-3.9.10.tar.gz +6dbd55a85368e784c693f42ff327354d unrarsrc-4.0.2.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Sun Dec 12 13:50:05 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Sun, 12 Dec 2010 12:50:05 +0000 Subject: [csw-devel] SF.net SVN: gar:[11889] csw/mgar/gar/v2/gar.mk Message-ID: Revision: 11889 http://gar.svn.sourceforge.net/gar/?rev=11889&view=rev Author: skayser Date: 2010-12-12 12:50:05 +0000 (Sun, 12 Dec 2010) Log Message: ----------- gar/v2: obsolete GARNAME, GARVERSION Modified Paths: -------------- csw/mgar/gar/v2/gar.mk Modified: csw/mgar/gar/v2/gar.mk =================================================================== --- csw/mgar/gar/v2/gar.mk 2010-12-12 12:43:48 UTC (rev 11888) +++ csw/mgar/gar/v2/gar.mk 2010-12-12 12:50:05 UTC (rev 11889) @@ -15,16 +15,9 @@ $(error Your version of 'make' is too old: $(MAKE_VERSION). Please make sure you are using at least 3.81) endif -# Prepare for the GARNAME & GARVERSION to NAME & VERSION migration. While the -# recipes have not been adjusted, we will accept both variables. Once the -# adjustment has been carried out, delete these two lines and uncomment the -# deprecation errors below. -NAME ?= $(GARNAME) -VERSION ?= $(GARVERSION) +$(if $(GARNAME),$(error The deprecated variable 'GARNAME' is defined, please replace it with 'NAME')) +$(if $(GARVERSION),$(error The deprecated variable 'GARVERSION' is defined, please replace it with 'VERSION')) -#$(if $(GARNAME),$(error The deprecated variable 'GARNAME' is defined, please replace it with 'NAME')) -#$(if $(GARVERSION),$(error The deprecated variable 'GARVERSION' is defined, please replace it with 'VERSION')) - # $(GARDIR) is pre-set by the top-level category.mk GARBIN = $(GARDIR)/bin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Sun Dec 12 13:44:24 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Sun, 12 Dec 2010 12:44:24 +0000 Subject: [csw-devel] SF.net SVN: gar:[11888] csw/mgar/pkg Message-ID: Revision: 11888 http://gar.svn.sourceforge.net/gar/?rev=11888&view=rev Author: skayser Date: 2010-12-12 12:43:48 +0000 (Sun, 12 Dec 2010) Log Message: ----------- All trunks and branches: rename GARNAME, GARVERSION to NAME, VERSION Modified Paths: -------------- csw/mgar/pkg/GeoIP/trunk/Makefile csw/mgar/pkg/ImageMagick/branches/64-bit/Makefile csw/mgar/pkg/ImageMagick/branches/package-split/Makefile csw/mgar/pkg/ImageMagick/trunk/Makefile csw/mgar/pkg/MailScanner/trunk/Makefile csw/mgar/pkg/Makefile csw/mgar/pkg/Vispan/trunk/Makefile csw/mgar/pkg/ZSI/trunk/Makefile csw/mgar/pkg/a2ps/trunk/Makefile csw/mgar/pkg/achievo/trunk/Makefile csw/mgar/pkg/adobereader/trunk/Makefile csw/mgar/pkg/aide/trunk/Makefile csw/mgar/pkg/alarm-clock/trunk/Makefile csw/mgar/pkg/alpine/trunk/Makefile csw/mgar/pkg/alternatives/branches/alternatives-gar/Makefile csw/mgar/pkg/amanda/trunk/Makefile csw/mgar/pkg/amarok/trunk/Makefile csw/mgar/pkg/amavisd-new/trunk/Makefile csw/mgar/pkg/apache/trunk/Makefile csw/mgar/pkg/apache2/branches/fs-rework/Makefile csw/mgar/pkg/apache2/trunk/Makefile csw/mgar/pkg/apache2-worker/trunk/Makefile csw/mgar/pkg/apcupsd/trunk/Makefile csw/mgar/pkg/apg/trunk/Makefile csw/mgar/pkg/apr/trunk/Makefile csw/mgar/pkg/apr-iconv/trunk/Makefile csw/mgar/pkg/apr-util/trunk/Makefile csw/mgar/pkg/argtable/trunk/Makefile csw/mgar/pkg/arpwatch/trunk/Makefile csw/mgar/pkg/arts/trunk/Makefile csw/mgar/pkg/asciidoc/trunk/Makefile csw/mgar/pkg/audiofile/trunk/Makefile csw/mgar/pkg/augeas/trunk/Makefile csw/mgar/pkg/authz-tools/trunk/Makefile csw/mgar/pkg/autobench/trunk/Makefile csw/mgar/pkg/autoconf/trunk/Makefile csw/mgar/pkg/automake/trunk/Makefile csw/mgar/pkg/autoproject/trunk/Makefile csw/mgar/pkg/autossh/trunk/Makefile csw/mgar/pkg/autotrace/trunk/Makefile csw/mgar/pkg/avantfax/trunk/Makefile csw/mgar/pkg/avfs/trunk/Makefile csw/mgar/pkg/awesome/trunk/Makefile csw/mgar/pkg/awstats/trunk/Makefile csw/mgar/pkg/axel/trunk/Makefile csw/mgar/pkg/babl/trunk/Makefile csw/mgar/pkg/balance/trunk/Makefile csw/mgar/pkg/bash/trunk/Makefile csw/mgar/pkg/bash_completion/trunk/Makefile csw/mgar/pkg/bashdb/trunk/Makefile csw/mgar/pkg/bazaar/trunk/Makefile csw/mgar/pkg/bdb/trunk/Makefile csw/mgar/pkg/bdb3/trunk/Makefile csw/mgar/pkg/bdb4/trunk/Makefile csw/mgar/pkg/bdb42/trunk/Makefile csw/mgar/pkg/bdb43/trunk/Makefile csw/mgar/pkg/bdb44/trunk/Makefile csw/mgar/pkg/bdb45/trunk/Makefile csw/mgar/pkg/bdb46/trunk/Makefile csw/mgar/pkg/bdb47/trunk/Makefile csw/mgar/pkg/bdb48/trunk/Makefile csw/mgar/pkg/bdb51/trunk/Makefile csw/mgar/pkg/beautifulsoup/trunk/Makefile csw/mgar/pkg/bind/branches/stable/Makefile csw/mgar/pkg/bind/branches/stable-9.4.3p3/Makefile csw/mgar/pkg/bind/trunk/Makefile csw/mgar/pkg/bind2nsd/trunk/Makefile csw/mgar/pkg/binutils/trunk/Makefile csw/mgar/pkg/bison/trunk/Makefile csw/mgar/pkg/bitlbee/trunk/Makefile csw/mgar/pkg/bittwist/trunk/Makefile csw/mgar/pkg/blame/trunk/Makefile csw/mgar/pkg/boost/branches/boost-1.33.0/Makefile csw/mgar/pkg/boost/branches/boost-gcc/Makefile csw/mgar/pkg/boost/trunk/Makefile csw/mgar/pkg/botnet/trunk/Makefile csw/mgar/pkg/bugzilla/trunk/Makefile csw/mgar/pkg/buildbot/trunk/Makefile csw/mgar/pkg/bvi/trunk/Makefile csw/mgar/pkg/bzip2/trunk/Makefile csw/mgar/pkg/c-ares/trunk/Makefile csw/mgar/pkg/ca_certificates/trunk/Makefile csw/mgar/pkg/cabextract/trunk/Makefile csw/mgar/pkg/cacti/trunk/Makefile csw/mgar/pkg/cadaver/trunk/Makefile csw/mgar/pkg/cairomm/trunk/Makefile csw/mgar/pkg/ccache/trunk/Makefile csw/mgar/pkg/cdecl/trunk/Makefile csw/mgar/pkg/centerim/trunk/Makefile csw/mgar/pkg/cfengine/trunk/Makefile csw/mgar/pkg/cfg2html/trunk/Makefile csw/mgar/pkg/cfitsio/trunk/Makefile csw/mgar/pkg/cgit/trunk/Makefile csw/mgar/pkg/cheetah/trunk/Makefile csw/mgar/pkg/chkconfig/trunk/Makefile csw/mgar/pkg/chmlib/trunk/Makefile csw/mgar/pkg/chromium/trunk/Makefile csw/mgar/pkg/chrpath/trunk/Makefile csw/mgar/pkg/clamav/trunk/Makefile csw/mgar/pkg/clamavsigs/trunk/Makefile csw/mgar/pkg/clearsilver/trunk/Makefile csw/mgar/pkg/climm/trunk/Makefile csw/mgar/pkg/clpbar/trunk/Makefile csw/mgar/pkg/clusterit/trunk/Makefile csw/mgar/pkg/clusterssh/trunk/Makefile csw/mgar/pkg/clzip/trunk/Makefile csw/mgar/pkg/cmake/trunk/Makefile csw/mgar/pkg/colordiff/trunk/Makefile csw/mgar/pkg/colormake/trunk/Makefile csw/mgar/pkg/conserver/trunk/Makefile csw/mgar/pkg/convmv/trunk/Makefile csw/mgar/pkg/coreutils/trunk/Makefile csw/mgar/pkg/cpan/Algorithm-Annotate/trunk/Makefile csw/mgar/pkg/cpan/Algorithm-CheckDigits/trunk/Makefile csw/mgar/pkg/cpan/Algorithm-Depedency/trunk/Makefile csw/mgar/pkg/cpan/Algorithm-Diff/trunk/Makefile csw/mgar/pkg/cpan/AnyData/trunk/Makefile csw/mgar/pkg/cpan/Apache-AuthPAM/trunk/Makefile csw/mgar/pkg/cpan/Apache-DBI/trunk/Makefile csw/mgar/pkg/cpan/Apache-PAR/trunk/Makefile csw/mgar/pkg/cpan/Apache-Session/trunk/Makefile csw/mgar/pkg/cpan/Apache-Template/trunk/Makefile csw/mgar/pkg/cpan/Apache-Test/trunk/Makefile csw/mgar/pkg/cpan/Apache2-AuthzNIS/trunk/Makefile csw/mgar/pkg/cpan/App-CLI/trunk/Makefile csw/mgar/pkg/cpan/AppConfig/trunk/Makefile csw/mgar/pkg/cpan/Archive-Extract/trunk/Makefile csw/mgar/pkg/cpan/Archive-SelfExtract/trunk/Makefile csw/mgar/pkg/cpan/Archive-Tar/trunk/Makefile csw/mgar/pkg/cpan/Archive-Zip/trunk/Makefile csw/mgar/pkg/cpan/Array-Compare/trunk/Makefile csw/mgar/pkg/cpan/Array-Window/trunk/Makefile csw/mgar/pkg/cpan/Astro-FITS-Header/trunk/Makefile csw/mgar/pkg/cpan/Attribute-Handlers/trunk/Makefile csw/mgar/pkg/cpan/Audio-TagLib/trunk/Makefile csw/mgar/pkg/cpan/Authen-PAM/trunk/Makefile csw/mgar/pkg/cpan/Authen-SASL/trunk/Makefile csw/mgar/pkg/cpan/AutoXS-Header/trunk/Makefile csw/mgar/pkg/cpan/B-C/trunk/Makefile csw/mgar/pkg/cpan/B-Flags/trunk/Makefile csw/mgar/pkg/cpan/B-Generate/trunk/Makefile csw/mgar/pkg/cpan/B-Keywords/trunk/Makefile csw/mgar/pkg/cpan/B-Utils/trunk/Makefile csw/mgar/pkg/cpan/BSD-Resource/trunk/Makefile csw/mgar/pkg/cpan/Barcode-Code128/trunk/Makefile csw/mgar/pkg/cpan/BerkeleyDB/trunk/Makefile csw/mgar/pkg/cpan/Biblio-EndnoteStyle/trunk/Makefile csw/mgar/pkg/cpan/Bit-Vector/trunk/Makefile csw/mgar/pkg/cpan/C-Scan/trunk/Makefile csw/mgar/pkg/cpan/CGI/trunk/Makefile csw/mgar/pkg/cpan/CGI-Application/trunk/Makefile csw/mgar/pkg/cpan/CGI-Application-Dispatch/trunk/Makefile csw/mgar/pkg/cpan/CGI-Application-Plugin-LogDispatch/trunk/Makefile csw/mgar/pkg/cpan/CGI-Builder/trunk/Makefile csw/mgar/pkg/cpan/CGI-Session/trunk/Makefile csw/mgar/pkg/cpan/CGI-SpeedyCGI/trunk/Makefile csw/mgar/pkg/cpan/CGP-CLI/trunk/Makefile csw/mgar/pkg/cpan/CPANPLUS/trunk/Makefile csw/mgar/pkg/cpan/CSS-DOM/trunk/Makefile csw/mgar/pkg/cpan/Cache/trunk/Makefile csw/mgar/pkg/cpan/Cache-Cache/trunk/Makefile csw/mgar/pkg/cpan/Cache-Memcached/trunk/Makefile csw/mgar/pkg/cpan/Cache-Simple-TimedExpiry/trunk/Makefile csw/mgar/pkg/cpan/Cairo/trunk/Makefile csw/mgar/pkg/cpan/Calendar-CSA/trunk/Makefile csw/mgar/pkg/cpan/Calendar-Simple/trunk/Makefile csw/mgar/pkg/cpan/Capitalization/trunk/Makefile csw/mgar/pkg/cpan/Carp-Clan/trunk/Makefile csw/mgar/pkg/cpan/Catalyst/trunk/Makefile csw/mgar/pkg/cpan/Chart/trunk/Makefile csw/mgar/pkg/cpan/Check-ISA/trunk/Makefile csw/mgar/pkg/cpan/Class-Accessor/trunk/Makefile csw/mgar/pkg/cpan/Class-Adapter/trunk/Makefile csw/mgar/pkg/cpan/Class-Autouse/trunk/Makefile csw/mgar/pkg/cpan/Class-BlackHole/trunk/Makefile csw/mgar/pkg/cpan/Class-Container/trunk/Makefile csw/mgar/pkg/cpan/Class-DBI/trunk/Makefile csw/mgar/pkg/cpan/Class-DBI-Loader/trunk/Makefile csw/mgar/pkg/cpan/Class-DBI-Pg/trunk/Makefile csw/mgar/pkg/cpan/Class-DBI-SQLite/trunk/Makefile csw/mgar/pkg/cpan/Class-DBI-mysql/trunk/Makefile csw/mgar/pkg/cpan/Class-Data-Inheritable/trunk/Makefile csw/mgar/pkg/cpan/Class-Factory-Util/trunk/Makefile csw/mgar/pkg/cpan/Class-ISA/trunk/Makefile csw/mgar/pkg/cpan/Class-Inspector/trunk/Makefile csw/mgar/pkg/cpan/Class-Loader/trunk/Makefile csw/mgar/pkg/cpan/Class-ReturnValue/trunk/Makefile csw/mgar/pkg/cpan/Class-Singleton/trunk/Makefile csw/mgar/pkg/cpan/Class-Std/trunk/Makefile csw/mgar/pkg/cpan/Class-Trigger/trunk/Makefile csw/mgar/pkg/cpan/Class-WhiteHole/trunk/Makefile csw/mgar/pkg/cpan/Class-XSAccessor/trunk/Makefile csw/mgar/pkg/cpan/Clone/trunk/Makefile csw/mgar/pkg/cpan/Compress-Bzip2/trunk/Makefile csw/mgar/pkg/cpan/Compress-Raw-Bzip2/trunk/Makefile csw/mgar/pkg/cpan/Compress-Raw-Zlib/trunk/Makefile csw/mgar/pkg/cpan/Compress-Zlib/trunk/Makefile csw/mgar/pkg/cpan/Config-Augeas/trunk/Makefile csw/mgar/pkg/cpan/Config-General/trunk/Makefile csw/mgar/pkg/cpan/Config-IniFiles/trunk/Makefile csw/mgar/pkg/cpan/Config-Tiny/trunk/Makefile csw/mgar/pkg/cpan/Convert-ASCII-Armour/trunk/Makefile csw/mgar/pkg/cpan/Convert-ASN1/trunk/Makefile csw/mgar/pkg/cpan/Convert-BinHex/trunk/Makefile csw/mgar/pkg/cpan/Convert-EBCDIC/trunk/Makefile csw/mgar/pkg/cpan/Convert-PEM/trunk/Makefile csw/mgar/pkg/cpan/Convert-TNEF/trunk/Makefile csw/mgar/pkg/cpan/Convert-UUlib/trunk/Makefile csw/mgar/pkg/cpan/Crypt-Blowfish/trunk/Makefile csw/mgar/pkg/cpan/Crypt-CAST5/trunk/Makefile csw/mgar/pkg/cpan/Crypt-CBC/trunk/Makefile csw/mgar/pkg/cpan/Crypt-DES/trunk/Makefile csw/mgar/pkg/cpan/Crypt-DES_EDE3/trunk/Makefile csw/mgar/pkg/cpan/Crypt-DH/trunk/Makefile csw/mgar/pkg/cpan/Crypt-DSA/trunk/Makefile csw/mgar/pkg/cpan/Crypt-IDEA/trunk/Makefile csw/mgar/pkg/cpan/Crypt-OpenPGP/trunk/Makefile csw/mgar/pkg/cpan/Crypt-OpenSSL-Bignum/trunk/Makefile csw/mgar/pkg/cpan/Crypt-OpenSSL-DSA/trunk/Makefile csw/mgar/pkg/cpan/Crypt-OpenSSL-PKCS12/trunk/Makefile csw/mgar/pkg/cpan/Crypt-OpenSSL-RSA/trunk/Makefile csw/mgar/pkg/cpan/Crypt-OpenSSL-Random/trunk/Makefile csw/mgar/pkg/cpan/Crypt-OpenSSL-X509/trunk/Makefile csw/mgar/pkg/cpan/Crypt-PasswdMD5/trunk/Makefile csw/mgar/pkg/cpan/Crypt-Primes/trunk/Makefile csw/mgar/pkg/cpan/Crypt-RC4/trunk/Makefile csw/mgar/pkg/cpan/Crypt-RC5/trunk/Makefile csw/mgar/pkg/cpan/Crypt-RIPEMD160/trunk/Makefile csw/mgar/pkg/cpan/Crypt-RSA/trunk/Makefile csw/mgar/pkg/cpan/Crypt-Random/trunk/Makefile csw/mgar/pkg/cpan/Crypt-Rijndael/trunk/Makefile csw/mgar/pkg/cpan/Crypt-SSLeay/trunk/Makefile csw/mgar/pkg/cpan/Crypt-Twofish/trunk/Makefile csw/mgar/pkg/cpan/Curses/trunk/Makefile csw/mgar/pkg/cpan/Curses-UI/trunk/Makefile csw/mgar/pkg/cpan/DBD-AnyData/trunk/Makefile csw/mgar/pkg/cpan/DBD-CSV/trunk/Makefile csw/mgar/pkg/cpan/DBD-DB2/trunk/Makefile csw/mgar/pkg/cpan/DBD-File/trunk/Makefile csw/mgar/pkg/cpan/DBD-Oracle/trunk/Makefile csw/mgar/pkg/cpan/DBD-Pg/trunk/Makefile csw/mgar/pkg/cpan/DBD-SQLite/trunk/Makefile csw/mgar/pkg/cpan/DBD-Sybase/trunk/Makefile csw/mgar/pkg/cpan/DBD-mysql/trunk/Makefile csw/mgar/pkg/cpan/DBD-mysql5/trunk/Makefile csw/mgar/pkg/cpan/DBI/trunk/Makefile csw/mgar/pkg/cpan/DBIx-ContextualFetch/trunk/Makefile csw/mgar/pkg/cpan/DBIx-Password/trunk/Makefile csw/mgar/pkg/cpan/DBIx-SearchBuilder/trunk/Makefile csw/mgar/pkg/cpan/DB_File/trunk/Makefile csw/mgar/pkg/cpan/Data-Buffer/trunk/Makefile csw/mgar/pkg/cpan/Data-Dump/trunk/Makefile csw/mgar/pkg/cpan/Data-Flow/trunk/Makefile csw/mgar/pkg/cpan/Data-Hierarchy/trunk/Makefile csw/mgar/pkg/cpan/Data-ICal/trunk/Makefile csw/mgar/pkg/cpan/Data-OptList/trunk/Makefile csw/mgar/pkg/cpan/Data-Serializer/trunk/Makefile csw/mgar/pkg/cpan/Data-ShowTable/trunk/Makefile csw/mgar/pkg/cpan/Data-TreeDumper/trunk/Makefile csw/mgar/pkg/cpan/Data-UUID/trunk/Makefile csw/mgar/pkg/cpan/Date-Calc/trunk/Makefile csw/mgar/pkg/cpan/Date-ICal/trunk/Makefile csw/mgar/pkg/cpan/Date-Leapyear/trunk/Makefile csw/mgar/pkg/cpan/Date-Manip/trunk/Makefile csw/mgar/pkg/cpan/Date-Simple/trunk/Makefile csw/mgar/pkg/cpan/DateTime/trunk/Makefile csw/mgar/pkg/cpan/DateTime-Format-Mail/trunk/Makefile csw/mgar/pkg/cpan/DateTime-Format-W3CDTF/trunk/Makefile csw/mgar/pkg/cpan/DateTime-Locale/trunk/Makefile csw/mgar/pkg/cpan/DateTime-TimeZone/trunk/Makefile csw/mgar/pkg/cpan/Devel-Caller/trunk/Makefile csw/mgar/pkg/cpan/Devel-Cover/trunk/Makefile csw/mgar/pkg/cpan/Devel-Cycle/trunk/Makefile csw/mgar/pkg/cpan/Devel-LeakTrace/trunk/Makefile csw/mgar/pkg/cpan/Devel-LexAlias/trunk/Makefile csw/mgar/pkg/cpan/Devel-Size/trunk/Makefile csw/mgar/pkg/cpan/Devel-StackTrace/trunk/Makefile csw/mgar/pkg/cpan/Devel-Symdump/trunk/Makefile csw/mgar/pkg/cpan/Devel-Trace/trunk/Makefile csw/mgar/pkg/cpan/Digest/trunk/Makefile csw/mgar/pkg/cpan/Digest-BubbleBabble/trunk/Makefile csw/mgar/pkg/cpan/Digest-HMAC/trunk/Makefile csw/mgar/pkg/cpan/Digest-MD2/trunk/Makefile csw/mgar/pkg/cpan/Digest-Nilsimsa/trunk/Makefile csw/mgar/pkg/cpan/Digest-SHA/trunk/Makefile csw/mgar/pkg/cpan/Digest-SHA1/trunk/Makefile csw/mgar/pkg/cpan/DublinCore-Record/trunk/Makefile csw/mgar/pkg/cpan/Email-Date-Format/trunk/Makefile csw/mgar/pkg/cpan/Email-Simple/trunk/Makefile csw/mgar/pkg/cpan/Email-Valid/trunk/Makefile csw/mgar/pkg/cpan/Env-Path/trunk/Makefile csw/mgar/pkg/cpan/Error/trunk/Makefile csw/mgar/pkg/cpan/Event/trunk/Makefile csw/mgar/pkg/cpan/Event-Lib/trunk/Makefile csw/mgar/pkg/cpan/Exception-Class/trunk/Makefile csw/mgar/pkg/cpan/Exception-Class-DBI/trunk/Makefile csw/mgar/pkg/cpan/ExtUtils-AutoInstall/trunk/Makefile csw/mgar/pkg/cpan/ExtUtils-CBuilder/trunk/Makefile csw/mgar/pkg/cpan/ExtUtils-Depends/trunk/Makefile csw/mgar/pkg/cpan/ExtUtils-F77/trunk/Makefile csw/mgar/pkg/cpan/ExtUtils-Manifest/trunk/Makefile csw/mgar/pkg/cpan/ExtUtils-ParseXS/trunk/Makefile csw/mgar/pkg/cpan/ExtUtils-PkgConfig/trunk/Makefile csw/mgar/pkg/cpan/ExtUtils-XSBuilder/trunk/Makefile csw/mgar/pkg/cpan/FCGI/trunk/Makefile csw/mgar/pkg/cpan/File-Cat/trunk/Makefile csw/mgar/pkg/cpan/File-Copy-Recursive/trunk/Makefile csw/mgar/pkg/cpan/File-Fetch/trunk/Makefile csw/mgar/pkg/cpan/File-Flat/trunk/Makefile csw/mgar/pkg/cpan/File-HomeDir/trunk/Makefile csw/mgar/pkg/cpan/File-LibMagic/trunk/Makefile csw/mgar/pkg/cpan/File-MMagic/trunk/Makefile csw/mgar/pkg/cpan/File-Modified/trunk/Makefile csw/mgar/pkg/cpan/File-NFSLock/trunk/Makefile csw/mgar/pkg/cpan/File-Next/trunk/Makefile csw/mgar/pkg/cpan/File-Remove/trunk/Makefile csw/mgar/pkg/cpan/File-Slurp/trunk/Makefile csw/mgar/pkg/cpan/File-Tail/trunk/Makefile csw/mgar/pkg/cpan/File-Type/trunk/Makefile csw/mgar/pkg/cpan/File-chdir/trunk/Makefile csw/mgar/pkg/cpan/File-chmod/trunk/Makefile csw/mgar/pkg/cpan/Filesys-Df/trunk/Makefile csw/mgar/pkg/cpan/Font-AFM/trunk/Makefile csw/mgar/pkg/cpan/Font-Freetype/trunk/Makefile csw/mgar/pkg/cpan/FreezeThaw/trunk/Makefile csw/mgar/pkg/cpan/Frontier-RPC/trunk/Makefile csw/mgar/pkg/cpan/GD/trunk/Makefile csw/mgar/pkg/cpan/GD-Barcode/trunk/Makefile csw/mgar/pkg/cpan/GDGraph/trunk/Makefile csw/mgar/pkg/cpan/GDGraph3d/trunk/Makefile csw/mgar/pkg/cpan/GDTextUtil/trunk/Makefile csw/mgar/pkg/cpan/GSSAPI/trunk/Makefile csw/mgar/pkg/cpan/Geo-IP-PurePerl/trunk/Makefile csw/mgar/pkg/cpan/Geography-Countries/trunk/Makefile csw/mgar/pkg/cpan/Gimp/trunk/Makefile csw/mgar/pkg/cpan/Glib/trunk/Makefile csw/mgar/pkg/cpan/Gnome2/trunk/Makefile csw/mgar/pkg/cpan/Gnome2-Canvas/trunk/Makefile csw/mgar/pkg/cpan/Gnome2-GConf/trunk/Makefile csw/mgar/pkg/cpan/Gnome2-Print/trunk/Makefile csw/mgar/pkg/cpan/Gnome2-VFS/trunk/Makefile csw/mgar/pkg/cpan/Gnome2-Wnck/trunk/Makefile csw/mgar/pkg/cpan/Graph/trunk/Makefile csw/mgar/pkg/cpan/GraphViz/trunk/Makefile csw/mgar/pkg/cpan/Graphics-ColorNames/trunk/Makefile csw/mgar/pkg/cpan/Graphics-ColorNames-WWW/trunk/Makefile csw/mgar/pkg/cpan/Gtk2/trunk/Makefile csw/mgar/pkg/cpan/Gtk2-GladeXML/trunk/Makefile csw/mgar/pkg/cpan/Gtk2-PodViewer/trunk/Makefile csw/mgar/pkg/cpan/Gtk2-TrayIcon/trunk/Makefile csw/mgar/pkg/cpan/HTML-CalendarMonth/trunk/Makefile csw/mgar/pkg/cpan/HTML-Element-Extended/trunk/Makefile csw/mgar/pkg/cpan/HTML-Format/trunk/Makefile csw/mgar/pkg/cpan/HTML-Mason/trunk/Makefile csw/mgar/pkg/cpan/HTML-Parser/trunk/Makefile csw/mgar/pkg/cpan/HTML-Scrubber/trunk/Makefile csw/mgar/pkg/cpan/HTML-Tagset/trunk/Makefile csw/mgar/pkg/cpan/HTML-Template/trunk/Makefile csw/mgar/pkg/cpan/HTML-Template-Pro/trunk/Makefile csw/mgar/pkg/cpan/HTML-TokeParser/trunk/Makefile csw/mgar/pkg/cpan/HTML-Tree/trunk/Makefile csw/mgar/pkg/cpan/HTTP-Body/trunk/Makefile csw/mgar/pkg/cpan/HTTP-DAV/trunk/Makefile csw/mgar/pkg/cpan/Heap/trunk/Makefile csw/mgar/pkg/cpan/I18N-LangTags/trunk/Makefile csw/mgar/pkg/cpan/IDNA-Punycode/trunk/Makefile csw/mgar/pkg/cpan/IO-Compress/trunk/Makefile csw/mgar/pkg/cpan/IO-Compress-Base/trunk/Makefile csw/mgar/pkg/cpan/IO-Compress-Zlib/trunk/Makefile csw/mgar/pkg/cpan/IO-Digest/trunk/Makefile csw/mgar/pkg/cpan/IO-Multiplex/trunk/Makefile csw/mgar/pkg/cpan/IO-Pager/trunk/Makefile csw/mgar/pkg/cpan/IO-Socket-INET6/trunk/Makefile csw/mgar/pkg/cpan/IO-Socket-SSL/trunk/Makefile csw/mgar/pkg/cpan/IO-String/trunk/Makefile csw/mgar/pkg/cpan/IO-Tty/trunk/Makefile csw/mgar/pkg/cpan/IO-Util/trunk/Makefile csw/mgar/pkg/cpan/IO-Zlib/trunk/Makefile csw/mgar/pkg/cpan/IO-stringy/trunk/Makefile csw/mgar/pkg/cpan/IP-Country/trunk/Makefile csw/mgar/pkg/cpan/IPC-Cmd/trunk/Makefile csw/mgar/pkg/cpan/IPC-Run/trunk/Makefile csw/mgar/pkg/cpan/IPC-Run3/trunk/Makefile csw/mgar/pkg/cpan/IPC-ShareLite/trunk/Makefile csw/mgar/pkg/cpan/Ima-DBI/trunk/Makefile csw/mgar/pkg/cpan/Image-ExifTool/trunk/Makefile csw/mgar/pkg/cpan/Image-Info/trunk/Makefile csw/mgar/pkg/cpan/Image-Size/trunk/Makefile csw/mgar/pkg/cpan/Inline/trunk/Makefile csw/mgar/pkg/cpan/JIRA-Client/trunk/Makefile csw/mgar/pkg/cpan/JSON/trunk/Makefile csw/mgar/pkg/cpan/Jcode/trunk/Makefile csw/mgar/pkg/cpan/Lexical-Persistence/trunk/Makefile csw/mgar/pkg/cpan/Lingua-PT-Stemmer/trunk/Makefile csw/mgar/pkg/cpan/Lingua-Stem/trunk/Makefile csw/mgar/pkg/cpan/Lingua-Stem-Fr/trunk/Makefile csw/mgar/pkg/cpan/Lingua-Stem-It/trunk/Makefile csw/mgar/pkg/cpan/Lingua-Stem-Ru/trunk/Makefile csw/mgar/pkg/cpan/Lingua-Stem-Snowball-Da/trunk/Makefile csw/mgar/pkg/cpan/List-MoreUtils/trunk/Makefile csw/mgar/pkg/cpan/Locale-Gettext/trunk/Makefile csw/mgar/pkg/cpan/Locale-Maketext-Fuzzy/trunk/Makefile csw/mgar/pkg/cpan/Locale-Maketext-Lexicon/trunk/Makefile csw/mgar/pkg/cpan/Locale-Maketext-Simple/trunk/Makefile csw/mgar/pkg/cpan/Log-Any/trunk/Makefile csw/mgar/pkg/cpan/Log-Dispatch/trunk/Makefile csw/mgar/pkg/cpan/Log-Dispatch-Config/trunk/Makefile csw/mgar/pkg/cpan/Log-Log4perl/trunk/Makefile csw/mgar/pkg/cpan/Log-Message/trunk/Makefile csw/mgar/pkg/cpan/Log-Message-Simple/trunk/Makefile csw/mgar/pkg/cpan/MARC-Charset/trunk/Makefile csw/mgar/pkg/cpan/MARC-Crosswalk-DublinCore/trunk/Makefile csw/mgar/pkg/cpan/MARC-Record/trunk/Makefile csw/mgar/pkg/cpan/MARC-XML/trunk/Makefile csw/mgar/pkg/cpan/MIME-Base64/trunk/Makefile csw/mgar/pkg/cpan/MIME-Lite/trunk/Makefile csw/mgar/pkg/cpan/MIME-Types/trunk/Makefile csw/mgar/pkg/cpan/MIME-tools/trunk/Makefile csw/mgar/pkg/cpan/MLDBM/trunk/Makefile csw/mgar/pkg/cpan/MLDBM-Sync/trunk/Makefile csw/mgar/pkg/cpan/MP3-Tag/trunk/Makefile csw/mgar/pkg/cpan/Mail-Box/trunk/Makefile csw/mgar/pkg/cpan/Mail-Box-Parser-C/trunk/Makefile csw/mgar/pkg/cpan/Mail-DKIM/trunk/Makefile csw/mgar/pkg/cpan/Mail-IMAPClient/trunk/Makefile csw/mgar/pkg/cpan/Mail-SPF/trunk/Makefile csw/mgar/pkg/cpan/Mail-SPF-Query/trunk/Makefile csw/mgar/pkg/cpan/Mail-Sender/trunk/Makefile csw/mgar/pkg/cpan/Mail-Sendmail/trunk/Makefile csw/mgar/pkg/cpan/Mail-Tools/trunk/Makefile csw/mgar/pkg/cpan/Makefile csw/mgar/pkg/cpan/Math-Bezier/trunk/Makefile csw/mgar/pkg/cpan/Math-GMP/trunk/Makefile csw/mgar/pkg/cpan/Math-Interpolate/trunk/Makefile csw/mgar/pkg/cpan/Math-Pari/trunk/Makefile csw/mgar/pkg/cpan/Module-Build/trunk/Makefile csw/mgar/pkg/cpan/Module-CoreList/trunk/Makefile csw/mgar/pkg/cpan/Module-Load/trunk/Makefile csw/mgar/pkg/cpan/Module-Load-Conditional/trunk/Makefile csw/mgar/pkg/cpan/Module-Loaded/trunk/Makefile csw/mgar/pkg/cpan/Module-Pluggable/trunk/Makefile csw/mgar/pkg/cpan/Module-Refresh/trunk/Makefile csw/mgar/pkg/cpan/Module-ScanDeps/trunk/Makefile csw/mgar/pkg/cpan/Module-Signature/trunk/Makefile csw/mgar/pkg/cpan/Module-Starter/trunk/Makefile csw/mgar/pkg/cpan/Module-Version/trunk/Makefile csw/mgar/pkg/cpan/Module-Versions-Report/trunk/Makefile csw/mgar/pkg/cpan/Net-Analysis/trunk/Makefile csw/mgar/pkg/cpan/Net-CIDR/trunk/Makefile csw/mgar/pkg/cpan/Net-CIDR-Lite/trunk/Makefile csw/mgar/pkg/cpan/Net-DNS/trunk/Makefile csw/mgar/pkg/cpan/Net-DNS-Resolver-Programmable/trunk/Makefile csw/mgar/pkg/cpan/Net-Daemon/trunk/Makefile csw/mgar/pkg/cpan/Net-IDN-Encode/trunk/Makefile csw/mgar/pkg/cpan/Net-IDN-Nameprep/trunk/Makefile csw/mgar/pkg/cpan/Net-IP/trunk/Makefile csw/mgar/pkg/cpan/Net-Jabber/trunk/Makefile csw/mgar/pkg/cpan/Net-NIS/trunk/Makefile csw/mgar/pkg/cpan/Net-Netmask/trunk/Makefile csw/mgar/pkg/cpan/Net-Patricia/trunk/Makefile csw/mgar/pkg/cpan/Net-Pcap/trunk/Makefile csw/mgar/pkg/cpan/Net-SMTP-SSL/trunk/Makefile csw/mgar/pkg/cpan/Net-SSH/trunk/Makefile csw/mgar/pkg/cpan/Net-SSH-Perl/trunk/Makefile csw/mgar/pkg/cpan/Net-SSH2/trunk/Makefile csw/mgar/pkg/cpan/Net-SSLeay/trunk/Makefile csw/mgar/pkg/cpan/Net-Server/trunk/Makefile csw/mgar/pkg/cpan/Net-Syslog/trunk/Makefile csw/mgar/pkg/cpan/Net-Telnet/trunk/Makefile csw/mgar/pkg/cpan/Net-XMPP/trunk/Makefile csw/mgar/pkg/cpan/Net-Z3950-ZOOM/trunk/Makefile csw/mgar/pkg/cpan/Net-ext/trunk/Makefile csw/mgar/pkg/cpan/NetAddr-IP/trunk/Makefile csw/mgar/pkg/cpan/NetPacket/trunk/Makefile csw/mgar/pkg/cpan/Number-Compare/trunk/Makefile csw/mgar/pkg/cpan/Number-Format/trunk/Makefile csw/mgar/pkg/cpan/OLE-Storage_Lite/trunk/Makefile csw/mgar/pkg/cpan/OOTools/trunk/Makefile csw/mgar/pkg/cpan/Object-Accessor/trunk/Makefile csw/mgar/pkg/cpan/Object-MultiType/trunk/Makefile csw/mgar/pkg/cpan/Object-Realize-Later/trunk/Makefile csw/mgar/pkg/cpan/Opcodes/trunk/Makefile csw/mgar/pkg/cpan/OpenGL/trunk/Makefile csw/mgar/pkg/cpan/PAR/trunk/Makefile csw/mgar/pkg/cpan/PAR-Dist/trunk/Makefile csw/mgar/pkg/cpan/PDF-API2/trunk/Makefile csw/mgar/pkg/cpan/PDF-Reuse/trunk/Makefile csw/mgar/pkg/cpan/PDF-Reuse-Barcode/trunk/Makefile csw/mgar/pkg/cpan/PDL/trunk/Makefile csw/mgar/pkg/cpan/POE/trunk/Makefile csw/mgar/pkg/cpan/POE-Test-Loops/trunk/Makefile csw/mgar/pkg/cpan/Package-Constants/trunk/Makefile csw/mgar/pkg/cpan/PadWalker/trunk/Makefile csw/mgar/pkg/cpan/Pango/trunk/Makefile csw/mgar/pkg/cpan/Params-Check/trunk/Makefile csw/mgar/pkg/cpan/Params-Util/trunk/Makefile csw/mgar/pkg/cpan/Params-Validate/trunk/Makefile csw/mgar/pkg/cpan/Parse-CPAN-Meta/trunk/Makefile csw/mgar/pkg/cpan/Parse-RecDescent/trunk/Makefile csw/mgar/pkg/cpan/Parse-Syslog/trunk/Makefile csw/mgar/pkg/cpan/Passwd-Unix/trunk/Makefile csw/mgar/pkg/cpan/PatchReader/trunk/Makefile csw/mgar/pkg/cpan/Path-Class/trunk/Makefile csw/mgar/pkg/cpan/Perl-Tidy/trunk/Makefile csw/mgar/pkg/cpan/Perl6-Export/trunk/Makefile csw/mgar/pkg/cpan/Perl6-Export-Attrs/trunk/Makefile csw/mgar/pkg/cpan/Perl6-Slurp/trunk/Makefile csw/mgar/pkg/cpan/PerlIO-eol/trunk/Makefile csw/mgar/pkg/cpan/PerlIO-gzip/trunk/Makefile csw/mgar/pkg/cpan/PerlIO-via-Bzip2/trunk/Makefile csw/mgar/pkg/cpan/PerlIO-via-dynamic/trunk/Makefile csw/mgar/pkg/cpan/PerlIO-via-symlink/trunk/Makefile csw/mgar/pkg/cpan/PlRPC/trunk/Makefile csw/mgar/pkg/cpan/Pod-Coverage/trunk/Makefile csw/mgar/pkg/cpan/Pod-Escapes/trunk/Makefile csw/mgar/pkg/cpan/Pod-POM/trunk/Makefile csw/mgar/pkg/cpan/Pod-Readme/trunk/Makefile csw/mgar/pkg/cpan/Pod-Simple/trunk/Makefile csw/mgar/pkg/cpan/Pod-Tests/trunk/Makefile csw/mgar/pkg/cpan/PodToHTML/trunk/Makefile csw/mgar/pkg/cpan/Probe-Perl/trunk/Makefile csw/mgar/pkg/cpan/Proc-ProcessTable/trunk/Makefile csw/mgar/pkg/cpan/RADIUS-UserFile/trunk/Makefile csw/mgar/pkg/cpan/RPC-XML/trunk/Makefile csw/mgar/pkg/cpan/Readonly/trunk/Makefile csw/mgar/pkg/cpan/Regexp-Common/trunk/Makefile csw/mgar/pkg/cpan/Regexp-Shellish/trunk/Makefile csw/mgar/pkg/cpan/SDF/trunk/Makefile csw/mgar/pkg/cpan/SMS-Send/trunk/Makefile csw/mgar/pkg/cpan/SOAP-Lite/trunk/Makefile csw/mgar/pkg/cpan/SOAP-WSDL/trunk/Makefile csw/mgar/pkg/cpan/SQL-Statement/trunk/Makefile csw/mgar/pkg/cpan/SVK/trunk/Makefile csw/mgar/pkg/cpan/SVN-Dump/trunk/Makefile csw/mgar/pkg/cpan/SVN-Mirror/trunk/Makefile csw/mgar/pkg/cpan/SVN-Notify/trunk/Makefile csw/mgar/pkg/cpan/SVN-Simple/trunk/Makefile csw/mgar/pkg/cpan/Scalar-List-Utils/trunk/Makefile csw/mgar/pkg/cpan/Schedule-At/trunk/Makefile csw/mgar/pkg/cpan/Schedule-Cron/trunk/Makefile csw/mgar/pkg/cpan/Scope-Guard/trunk/Makefile csw/mgar/pkg/cpan/Search-Xapian/trunk/Makefile csw/mgar/pkg/cpan/Shout/trunk/Makefile csw/mgar/pkg/cpan/Smart-Comments/trunk/Makefile csw/mgar/pkg/cpan/Snowball-Norwegian/trunk/Makefile csw/mgar/pkg/cpan/Snowball-Swedish/trunk/Makefile csw/mgar/pkg/cpan/Socket6/trunk/Makefile csw/mgar/pkg/cpan/Solaris-DeviceTree/trunk/Makefile csw/mgar/pkg/cpan/Solaris-Sysconf/trunk/Makefile csw/mgar/pkg/cpan/Sort-Naturally/trunk/Makefile csw/mgar/pkg/cpan/Sort-Versions/trunk/Makefile csw/mgar/pkg/cpan/Spiffy/trunk/Makefile csw/mgar/pkg/cpan/Statistics-Descriptive/trunk/Makefile csw/mgar/pkg/cpan/String-Approx/trunk/Makefile csw/mgar/pkg/cpan/String-CRC32/trunk/Makefile csw/mgar/pkg/cpan/String-ShellQuote/trunk/Makefile csw/mgar/pkg/cpan/Struct-Compare/trunk/Makefile csw/mgar/pkg/cpan/Sub-Delete/trunk/Makefile csw/mgar/pkg/cpan/Sub-Exporter/trunk/Makefile csw/mgar/pkg/cpan/Sub-Install/trunk/Makefile csw/mgar/pkg/cpan/Sub-Name/trunk/Makefile csw/mgar/pkg/cpan/Sub-Override/trunk/Makefile csw/mgar/pkg/cpan/Sub-Uplevel/trunk/Makefile csw/mgar/pkg/cpan/Sys-Hostname-Long/trunk/Makefile csw/mgar/pkg/cpan/Sys-SigAction/trunk/Makefile csw/mgar/pkg/cpan/Syslog/trunk/Makefile csw/mgar/pkg/cpan/Task-Weaken/trunk/Makefile csw/mgar/pkg/cpan/Template-Extract/trunk/Makefile csw/mgar/pkg/cpan/Template-TAL/trunk/Makefile csw/mgar/pkg/cpan/Template-Toolkit/trunk/Makefile csw/mgar/pkg/cpan/Term-Cap/trunk/Makefile csw/mgar/pkg/cpan/Term-ReadLine-Gnu/trunk/Makefile csw/mgar/pkg/cpan/Term-Size/trunk/Makefile csw/mgar/pkg/cpan/Term-UI/trunk/Makefile csw/mgar/pkg/cpan/TermReadKey/trunk/Makefile csw/mgar/pkg/cpan/Test-Builder-Tester/trunk/Makefile csw/mgar/pkg/cpan/Test-Class/trunk/Makefile csw/mgar/pkg/cpan/Test-ClassAPI/trunk/Makefile csw/mgar/pkg/cpan/Test-Deep/trunk/Makefile csw/mgar/pkg/cpan/Test-Differences/trunk/Makefile csw/mgar/pkg/cpan/Test-Distribution/trunk/Makefile csw/mgar/pkg/cpan/Test-Exception/trunk/Makefile csw/mgar/pkg/cpan/Test-Inline/trunk/Makefile csw/mgar/pkg/cpan/Test-LongString/trunk/Makefile csw/mgar/pkg/cpan/Test-Manifest/trunk/Makefile csw/mgar/pkg/cpan/Test-Memory-Cycle/trunk/Makefile csw/mgar/pkg/cpan/Test-MockObject/trunk/Makefile csw/mgar/pkg/cpan/Test-NoWarnings/trunk/Makefile csw/mgar/pkg/cpan/Test-Pod/trunk/Makefile csw/mgar/pkg/cpan/Test-Pod-Coverage/trunk/Makefile csw/mgar/pkg/cpan/Test-Script/trunk/Makefile csw/mgar/pkg/cpan/Test-Simple/trunk/Makefile csw/mgar/pkg/cpan/Test-Tester/trunk/Makefile csw/mgar/pkg/cpan/Test-Warn/trunk/Makefile csw/mgar/pkg/cpan/Test-XML/trunk/Makefile csw/mgar/pkg/cpan/Test-use-ok/trunk/Makefile csw/mgar/pkg/cpan/Text-Autoformat/trunk/Makefile csw/mgar/pkg/cpan/Text-CSV/trunk/Makefile csw/mgar/pkg/cpan/Text-CSV_XS/trunk/Makefile csw/mgar/pkg/cpan/Text-Diff/trunk/Makefile csw/mgar/pkg/cpan/Text-DoubleMetaphone/trunk/Makefile csw/mgar/pkg/cpan/Text-Format/trunk/Makefile csw/mgar/pkg/cpan/Text-GenderFromName/trunk/Makefile csw/mgar/pkg/cpan/Text-German/trunk/Makefile csw/mgar/pkg/cpan/Text-Glob/trunk/Makefile csw/mgar/pkg/cpan/Text-Iconv/trunk/Makefile csw/mgar/pkg/cpan/Text-Quoted/trunk/Makefile csw/mgar/pkg/cpan/Text-Reform/trunk/Makefile csw/mgar/pkg/cpan/Text-Scraper/trunk/Makefile csw/mgar/pkg/cpan/Text-Tabs+Wrap/trunk/Makefile csw/mgar/pkg/cpan/Text-Template/trunk/Makefile csw/mgar/pkg/cpan/Text-WikiFormat/trunk/Makefile csw/mgar/pkg/cpan/Text-Wrapper/trunk/Makefile csw/mgar/pkg/cpan/Text-vFile-asData/trunk/Makefile csw/mgar/pkg/cpan/Tie-DBI/trunk/Makefile csw/mgar/pkg/cpan/Tie-EncryptedHash/trunk/Makefile csw/mgar/pkg/cpan/Tie-IxHash/trunk/Makefile csw/mgar/pkg/cpan/Tie-MLDBM/trunk/Makefile csw/mgar/pkg/cpan/Tie-Util/trunk/Makefile csw/mgar/pkg/cpan/Time-Format/trunk/Makefile csw/mgar/pkg/cpan/Time-HiRes/trunk/Makefile csw/mgar/pkg/cpan/Time-Period/trunk/Makefile csw/mgar/pkg/cpan/Time-Progress/trunk/Makefile csw/mgar/pkg/cpan/Time-modules/trunk/Makefile csw/mgar/pkg/cpan/TimeDate/trunk/Makefile csw/mgar/pkg/cpan/Tk/trunk/Makefile csw/mgar/pkg/cpan/Tree-DAG_Node/trunk/Makefile csw/mgar/pkg/cpan/Tree-Simple/trunk/Makefile csw/mgar/pkg/cpan/UNIVERSAL-can/trunk/Makefile csw/mgar/pkg/cpan/UNIVERSAL-isa/trunk/Makefile csw/mgar/pkg/cpan/UNIVERSAL-moniker/trunk/Makefile csw/mgar/pkg/cpan/UNIVERSAL-require/trunk/Makefile csw/mgar/pkg/cpan/URI/trunk/Makefile csw/mgar/pkg/cpan/Unicode-Map/trunk/Makefile csw/mgar/pkg/cpan/Unicode-Map8/trunk/Makefile csw/mgar/pkg/cpan/Unicode-MapUTF8/trunk/Makefile csw/mgar/pkg/cpan/Unicode-String/trunk/Makefile csw/mgar/pkg/cpan/Unicode-Stringprep/trunk/Makefile csw/mgar/pkg/cpan/Unix-Statgrab/trunk/Makefile csw/mgar/pkg/cpan/Unix-Syslog/trunk/Makefile csw/mgar/pkg/cpan/User-Identity/trunk/Makefile csw/mgar/pkg/cpan/VCP/trunk/Makefile csw/mgar/pkg/cpan/VCP-Dest-svk/trunk/Makefile csw/mgar/pkg/cpan/WWW-Curl/trunk/Makefile csw/mgar/pkg/cpan/WWW-Mechanize/trunk/Makefile csw/mgar/pkg/cpan/Want/trunk/Makefile csw/mgar/pkg/cpan/X11-Protocol/trunk/Makefile csw/mgar/pkg/cpan/XML-Atom/trunk/Makefile csw/mgar/pkg/cpan/XML-Atom-SimpleFeed/trunk/Makefile csw/mgar/pkg/cpan/XML-AutoWriter/trunk/Makefile csw/mgar/pkg/cpan/XML-DOM/trunk/Makefile csw/mgar/pkg/cpan/XML-Dumper/trunk/Makefile csw/mgar/pkg/cpan/XML-Encoding/trunk/Makefile csw/mgar/pkg/cpan/XML-GDOME/trunk/Makefile csw/mgar/pkg/cpan/XML-GDOME-XSLT/trunk/Makefile csw/mgar/pkg/cpan/XML-LibXML/trunk/Makefile csw/mgar/pkg/cpan/XML-LibXML-Common/trunk/Makefile csw/mgar/pkg/cpan/XML-LibXSLT/trunk/Makefile csw/mgar/pkg/cpan/XML-NamespaceSupport/trunk/Makefile csw/mgar/pkg/cpan/XML-Parser/trunk/Makefile csw/mgar/pkg/cpan/XML-RSS/trunk/Makefile csw/mgar/pkg/cpan/XML-Records/trunk/Makefile csw/mgar/pkg/cpan/XML-RegExp/trunk/Makefile csw/mgar/pkg/cpan/XML-SAX/trunk/Makefile csw/mgar/pkg/cpan/XML-SemanticDiff/trunk/Makefile csw/mgar/pkg/cpan/XML-Simple/trunk/Makefile csw/mgar/pkg/cpan/XML-Smart/trunk/Makefile csw/mgar/pkg/cpan/XML-Stream/trunk/Makefile csw/mgar/pkg/cpan/XML-TokeParser/trunk/Makefile csw/mgar/pkg/cpan/XML-Twig/trunk/Makefile csw/mgar/pkg/cpan/XML-XPath/trunk/Makefile csw/mgar/pkg/cpan/XML-XSLT/trunk/Makefile csw/mgar/pkg/cpan/YAML/trunk/Makefile csw/mgar/pkg/cpan/YAML-Syck/trunk/Makefile csw/mgar/pkg/cpan/ack/trunk/Makefile csw/mgar/pkg/cpan/common-sense/trunk/Makefile csw/mgar/pkg/cpan/constant-lexical/trunk/Makefile csw/mgar/pkg/cpan/html2text/trunk/Makefile csw/mgar/pkg/cpan/libapreq/trunk/Makefile csw/mgar/pkg/cpan/libapreq2/trunk/Makefile csw/mgar/pkg/cpan/libwww-perl/trunk/Makefile csw/mgar/pkg/cpan/libxml-perl/trunk/Makefile csw/mgar/pkg/cpan/mod_perl/trunk/Makefile csw/mgar/pkg/cpan/mod_perl2/trunk/Makefile csw/mgar/pkg/cpan/perl-ldap/trunk/Makefile csw/mgar/pkg/cpan/perlconsole/trunk/Makefile csw/mgar/pkg/cpan/pmtools/trunk/Makefile csw/mgar/pkg/cpan/prefork/trunk/Makefile csw/mgar/pkg/cpan/psh/trunk/Makefile csw/mgar/pkg/cpan/sol-inst/trunk/Makefile csw/mgar/pkg/cpan/version/trunk/Makefile csw/mgar/pkg/cpptest/trunk/Makefile csw/mgar/pkg/cronolog/trunk/Makefile csw/mgar/pkg/cscope/trunk/Makefile csw/mgar/pkg/csup/trunk/Makefile csw/mgar/pkg/cswclassutils/branches/cswclassutils-usergroup-idrange/Makefile csw/mgar/pkg/cswclassutils/trunk/Makefile csw/mgar/pkg/cswcommon/trunk/Makefile csw/mgar/pkg/cswpkgloghooks/trunk/Makefile csw/mgar/pkg/cswutils/trunk/Makefile csw/mgar/pkg/csync2/trunk/Makefile csw/mgar/pkg/cups/branches/cups-1.3/Makefile csw/mgar/pkg/cups/branches/cups-1.4.0/Makefile csw/mgar/pkg/cups/trunk/Makefile csw/mgar/pkg/curl/trunk/Makefile csw/mgar/pkg/cvs/trunk/Makefile csw/mgar/pkg/cvs2svn/trunk/Makefile csw/mgar/pkg/cvsproxy/trunk/Makefile csw/mgar/pkg/cvsps/trunk/Makefile csw/mgar/pkg/cx-oracle/trunk/Makefile csw/mgar/pkg/cyrus_imapd/trunk/Makefile csw/mgar/pkg/daemontools/trunk/Makefile csw/mgar/pkg/daimonin/trunk/Makefile csw/mgar/pkg/dante/trunk/Makefile csw/mgar/pkg/dbus/trunk/Makefile csw/mgar/pkg/dbus-glib/trunk/Makefile csw/mgar/pkg/dcc/trunk/Makefile csw/mgar/pkg/dcraw/trunk/Makefile csw/mgar/pkg/ddd/trunk/Makefile csw/mgar/pkg/ddrescue/trunk/Makefile csw/mgar/pkg/debian-vote/trunk/Makefile csw/mgar/pkg/dejagnu/trunk/Makefile csw/mgar/pkg/denyhosts/trunk/Makefile csw/mgar/pkg/dhcp/trunk/Makefile csw/mgar/pkg/dhcping/trunk/Makefile csw/mgar/pkg/di/trunk/Makefile csw/mgar/pkg/dia/trunk/Makefile csw/mgar/pkg/dia-shapes/trunk/Makefile csw/mgar/pkg/diffstat/trunk/Makefile csw/mgar/pkg/diffuse/trunk/Makefile csw/mgar/pkg/diffutils/trunk/Makefile csw/mgar/pkg/disktype/trunk/Makefile csw/mgar/pkg/distcc/trunk/Makefile csw/mgar/pkg/djbdns/trunk/Makefile csw/mgar/pkg/djvulibre/trunk/Makefile csw/mgar/pkg/dnstop/trunk/Makefile csw/mgar/pkg/dnstracer/trunk/Makefile csw/mgar/pkg/dnswalk/trunk/Makefile csw/mgar/pkg/docbook/trunk/Makefile csw/mgar/pkg/docbook-dtds/trunk/Makefile csw/mgar/pkg/docbook-style-dsssl/trunk/Makefile csw/mgar/pkg/docbook-style-xsl/trunk/Makefile csw/mgar/pkg/docbook-style-xsl/trunk/files/CSWdocbookxsl.postinstall csw/mgar/pkg/docbook-style-xsl/trunk/files/Makefile csw/mgar/pkg/dovecot/trunk/Makefile csw/mgar/pkg/doxygen/trunk/Makefile csw/mgar/pkg/dpkg/trunk/Makefile csw/mgar/pkg/drill/trunk/Makefile csw/mgar/pkg/drupal/trunk/Makefile csw/mgar/pkg/dsniff/trunk/Makefile csw/mgar/pkg/dtracetoolkit/trunk/Makefile csw/mgar/pkg/duplicity/trunk/Makefile csw/mgar/pkg/easytag/trunk/Makefile csw/mgar/pkg/ectags/trunk/Makefile csw/mgar/pkg/eet/trunk/Makefile csw/mgar/pkg/eina/trunk/Makefile csw/mgar/pkg/elinks/trunk/Makefile csw/mgar/pkg/emacs/trunk/Makefile csw/mgar/pkg/emacs_sitestart/trunk/Makefile csw/mgar/pkg/enchant/trunk/Makefile csw/mgar/pkg/enscript/trunk/Makefile csw/mgar/pkg/erlang/trunk/Makefile csw/mgar/pkg/esound/trunk/Makefile csw/mgar/pkg/esvn/trunk/Makefile csw/mgar/pkg/etckeeper/trunk/Makefile csw/mgar/pkg/eterm/trunk/Makefile csw/mgar/pkg/ethereal/trunk/Makefile csw/mgar/pkg/euler/trunk/Makefile csw/mgar/pkg/eventlog/trunk/Makefile csw/mgar/pkg/evince/trunk/Makefile csw/mgar/pkg/evolution/trunk/Makefile csw/mgar/pkg/evolution-ds/trunk/Makefile csw/mgar/pkg/evolution-exchange/trunk/Makefile csw/mgar/pkg/evolution-mapi/trunk/Makefile csw/mgar/pkg/evolution-webcal/trunk/Makefile csw/mgar/pkg/examples/loose-files/trunk/Makefile csw/mgar/pkg/examples/minimalsmf/trunk/Makefile csw/mgar/pkg/examples/modulations/branches/minimal-version-modulation/Makefile csw/mgar/pkg/examples/modulations/trunk/Makefile csw/mgar/pkg/examples/multiple-versions/trunk/Makefile csw/mgar/pkg/examples/users-and-groups/trunk/Makefile csw/mgar/pkg/exempi/trunk/Makefile csw/mgar/pkg/exiftool/trunk/Makefile csw/mgar/pkg/exim/trunk/Makefile csw/mgar/pkg/exiv2/trunk/Makefile csw/mgar/pkg/expat/trunk/Makefile csw/mgar/pkg/expect/trunk/Makefile csw/mgar/pkg/facter/trunk/Makefile csw/mgar/pkg/fakeroot/trunk/Makefile csw/mgar/pkg/fam/trunk/Makefile csw/mgar/pkg/fastcgi/trunk/Makefile csw/mgar/pkg/fax2png/trunk/Makefile csw/mgar/pkg/fbopenssl/trunk/Makefile csw/mgar/pkg/ffcall/trunk/Makefile csw/mgar/pkg/ffmpeg/trunk/Makefile csw/mgar/pkg/fftw/trunk/Makefile csw/mgar/pkg/figlet/trunk/Makefile csw/mgar/pkg/file/trunk/Makefile csw/mgar/pkg/fileutils/trunk/Makefile csw/mgar/pkg/filezilla/trunk/Makefile csw/mgar/pkg/findutils/trunk/Makefile csw/mgar/pkg/fio/trunk/Makefile csw/mgar/pkg/firefox/branches/firefox2-maintenance/Makefile csw/mgar/pkg/firefox/branches/firefox2-maintenance/files/CSWfirefox.gspec csw/mgar/pkg/firefox/branches/firefox3-packaging/Makefile csw/mgar/pkg/firefox/branches/firefox3.5-packaging/Makefile csw/mgar/pkg/firefox/branches/mwatters/Makefile csw/mgar/pkg/firefox/trunk/Makefile csw/mgar/pkg/firefox-l10n/trunk/Makefile csw/mgar/pkg/flac/trunk/Makefile csw/mgar/pkg/flex-2.5.4a/trunk/Makefile csw/mgar/pkg/flex_new/trunk/Makefile csw/mgar/pkg/flphoto/trunk/Makefile csw/mgar/pkg/fltk/trunk/Makefile csw/mgar/pkg/fontconfig/trunk/Makefile csw/mgar/pkg/fontforge/trunk/Makefile csw/mgar/pkg/formencode/trunk/Makefile csw/mgar/pkg/fortune4all/trunk/Makefile csw/mgar/pkg/fox/trunk/Makefile csw/mgar/pkg/fping/trunk/Makefile csw/mgar/pkg/fprobe/trunk/Makefile csw/mgar/pkg/freeciv/trunk/Makefile csw/mgar/pkg/freedesktop/Makefile csw/mgar/pkg/freedesktop/libxcb/trunk/Makefile csw/mgar/pkg/freedesktop/xcb-util/trunk/Makefile csw/mgar/pkg/freedesktop/xcbproto/trunk/Makefile csw/mgar/pkg/freeglut/trunk/Makefile csw/mgar/pkg/freehdl/trunk/Makefile csw/mgar/pkg/freeradius/trunk/Makefile csw/mgar/pkg/freerdp/trunk/Makefile csw/mgar/pkg/freetds/trunk/Makefile csw/mgar/pkg/freetype/trunk/Makefile csw/mgar/pkg/fribidi/trunk/Makefile csw/mgar/pkg/ftgl/trunk/Makefile csw/mgar/pkg/gaim/trunk/Makefile csw/mgar/pkg/ganglia/branches/ganglia-3.1.3-rc/Makefile csw/mgar/pkg/ganglia/branches/ganglia-3.1.4-rc/Makefile csw/mgar/pkg/ganglia/branches/ganglia-3.1.6-rc/Makefile csw/mgar/pkg/ganglia/branches/ganglia-3.1.7/Makefile csw/mgar/pkg/ganglia/trunk/Makefile csw/mgar/pkg/gar/trunk/Makefile csw/mgar/pkg/gardev/trunk/Makefile csw/mgar/pkg/gcc4/trunk/Makefile csw/mgar/pkg/gcc4/trunk/files/gar_override.mk csw/mgar/pkg/gcc4/trunk/files/package_def.mk csw/mgar/pkg/gccgo/trunk/Makefile csw/mgar/pkg/gcpio/trunk/Makefile csw/mgar/pkg/gd/branches/gd-x11-reloaded/Makefile csw/mgar/pkg/gd/trunk/Makefile csw/mgar/pkg/gdb/trunk/Makefile csw/mgar/pkg/gdbm/trunk/Makefile csw/mgar/pkg/gdmap/trunk/Makefile csw/mgar/pkg/gdome2/trunk/Makefile csw/mgar/pkg/geda/trunk/Makefile csw/mgar/pkg/geeqie/trunk/Makefile csw/mgar/pkg/gem-rake/trunk/Makefile csw/mgar/pkg/gengetopt/trunk/Makefile csw/mgar/pkg/genshi/trunk/Makefile csw/mgar/pkg/geolitedb/trunk/Makefile csw/mgar/pkg/gettext/trunk/Makefile csw/mgar/pkg/gforth/trunk/Makefile csw/mgar/pkg/gftp/trunk/Makefile csw/mgar/pkg/ghc/trunk/Makefile csw/mgar/pkg/ghostscript/trunk/Makefile csw/mgar/pkg/gif2png/trunk/Makefile csw/mgar/pkg/giflib/trunk/Makefile csw/mgar/pkg/gifsicle/trunk/Makefile csw/mgar/pkg/gimp/trunk/Makefile csw/mgar/pkg/git/trunk/Makefile csw/mgar/pkg/git-subtree/trunk/Makefile csw/mgar/pkg/gitosis/trunk/Makefile csw/mgar/pkg/gkrellm/trunk/Makefile csw/mgar/pkg/glew/trunk/Makefile csw/mgar/pkg/glib/trunk/Makefile csw/mgar/pkg/glib2/branches/glib2-2.23.x/Makefile csw/mgar/pkg/glib2/trunk/Makefile csw/mgar/pkg/glibmm/trunk/Makefile csw/mgar/pkg/glpk/trunk/Makefile csw/mgar/pkg/gluezilla/trunk/Makefile csw/mgar/pkg/gmake/trunk/Makefile csw/mgar/pkg/gmt/trunk/Makefile csw/mgar/pkg/gmtcoast/trunk/Makefile csw/mgar/pkg/gnome-base/gail/trunk/Makefile csw/mgar/pkg/gnome-base/gconf-editor/trunk/Makefile csw/mgar/pkg/gnome-base/gconf2/trunk/Makefile csw/mgar/pkg/gnome-base/gnome-icon-theme/trunk/Makefile csw/mgar/pkg/gnome-base/gnome-keyring/trunk/Makefile csw/mgar/pkg/gnome-base/gnome-mime-data/trunk/Makefile csw/mgar/pkg/gnome-base/gnome-terminal/trunk/Makefile csw/mgar/pkg/gnome-base/gnomedesktop/trunk/Makefile csw/mgar/pkg/gnome-base/gnomemedia/trunk/Makefile csw/mgar/pkg/gnome-base/gnomevfs2/trunk/Makefile csw/mgar/pkg/gnome-base/libbonobo2/trunk/Makefile csw/mgar/pkg/gnome-base/libgnomecanvas/trunk/Makefile csw/mgar/pkg/gnome-base/libgnomedb/trunk/Makefile csw/mgar/pkg/gnome-base/libgnomekbd/trunk/Makefile csw/mgar/pkg/gnome-base/libgnomeprint/trunk/Makefile csw/mgar/pkg/gnome-base/libgnomeprintui/trunk/Makefile csw/mgar/pkg/gnome-base/libgnomeui/trunk/Makefile csw/mgar/pkg/gnome-base/orbit2/trunk/Makefile csw/mgar/pkg/gnulinks/trunk/Makefile csw/mgar/pkg/gnumeric/trunk/Makefile csw/mgar/pkg/gnupg/trunk/Makefile csw/mgar/pkg/gnupg2/trunk/Makefile csw/mgar/pkg/gnupg_minimal/trunk/Makefile csw/mgar/pkg/gnuplot/trunk/Makefile csw/mgar/pkg/gnutls/trunk/Makefile csw/mgar/pkg/gobject-introspection/trunk/Makefile csw/mgar/pkg/goocanvas/trunk/Makefile csw/mgar/pkg/google-gflags/trunk/Makefile csw/mgar/pkg/googlemock/trunk/Makefile csw/mgar/pkg/googletest/trunk/Makefile csw/mgar/pkg/gource/trunk/Makefile csw/mgar/pkg/gperf/trunk/Makefile csw/mgar/pkg/gpgme/trunk/Makefile csw/mgar/pkg/gphoto2/trunk/Makefile csw/mgar/pkg/gpicview/trunk/Makefile csw/mgar/pkg/graphviz/trunk/Makefile csw/mgar/pkg/grep/trunk/Makefile csw/mgar/pkg/groff/trunk/Makefile csw/mgar/pkg/gsasl/trunk/Makefile csw/mgar/pkg/gsm/trunk/Makefile csw/mgar/pkg/gstplugins/trunk/Makefile csw/mgar/pkg/gstplugins_bad/trunk/Makefile csw/mgar/pkg/gstplugins_good/trunk/Makefile csw/mgar/pkg/gstplugins_ugly/trunk/Makefile csw/mgar/pkg/gstreamer/trunk/Makefile csw/mgar/pkg/gtar/trunk/Makefile csw/mgar/pkg/gtk-doc/trunk/Makefile csw/mgar/pkg/gtk2/trunk/Makefile csw/mgar/pkg/gtkpod/trunk/Makefile csw/mgar/pkg/gtksourceview/trunk/Makefile csw/mgar/pkg/gtkwave/trunk/Makefile csw/mgar/pkg/gts/trunk/Makefile csw/mgar/pkg/guile/trunk/Makefile csw/mgar/pkg/gvim/trunk/Makefile csw/mgar/pkg/gxmessage/trunk/Makefile csw/mgar/pkg/gzip/trunk/Makefile csw/mgar/pkg/hachoir-core/trunk/Makefile csw/mgar/pkg/hachoir-parser/trunk/Makefile csw/mgar/pkg/handbrake/trunk/Makefile csw/mgar/pkg/haproxy/trunk/Makefile csw/mgar/pkg/hatari/trunk/Makefile csw/mgar/pkg/hdf5/trunk/Makefile csw/mgar/pkg/help2man/trunk/Makefile csw/mgar/pkg/hexdump/trunk/Makefile csw/mgar/pkg/hicolor-icon-theme/trunk/Makefile csw/mgar/pkg/htmldoc/trunk/Makefile csw/mgar/pkg/htmltidy/trunk/Makefile csw/mgar/pkg/httperf/trunk/Makefile csw/mgar/pkg/httping/trunk/Makefile csw/mgar/pkg/hylafax/trunk/Makefile csw/mgar/pkg/hypermail/trunk/Makefile csw/mgar/pkg/icecast/trunk/Makefile csw/mgar/pkg/icinga/trunk/Makefile csw/mgar/pkg/icon-naming-utils/trunk/Makefile csw/mgar/pkg/idzebra/trunk/Makefile csw/mgar/pkg/iftop/trunk/Makefile csw/mgar/pkg/ilmbase/trunk/Makefile csw/mgar/pkg/image-editor/trunk/Makefile csw/mgar/pkg/imap-c-client/trunk/Makefile csw/mgar/pkg/imapfilter/trunk/Makefile csw/mgar/pkg/imapproxy/trunk/Makefile csw/mgar/pkg/imapsync/trunk/Makefile csw/mgar/pkg/imlib/trunk/Makefile csw/mgar/pkg/imlib2/trunk/Makefile csw/mgar/pkg/imlib2_loaders/trunk/Makefile csw/mgar/pkg/indent/trunk/Makefile csw/mgar/pkg/intltool/trunk/Makefile csw/mgar/pkg/iotop/trunk/Makefile csw/mgar/pkg/iozone/trunk/Makefile csw/mgar/pkg/iperf/trunk/Makefile csw/mgar/pkg/irssi/trunk/Makefile csw/mgar/pkg/iso-codes/trunk/Makefile csw/mgar/pkg/jack/trunk/Makefile csw/mgar/pkg/java/Makefile csw/mgar/pkg/java/ajcbeanutils/trunk/Makefile csw/mgar/pkg/java/ajcchain/trunk/Makefile csw/mgar/pkg/java/ajcchain/trunk/files/CSWajcchain.gspec csw/mgar/pkg/java/ajcchain/trunk/files/CSWajcchaindoc.gspec csw/mgar/pkg/java/ajccli/trunk/Makefile csw/mgar/pkg/java/ajccli/trunk/files/CSWajccli.gspec csw/mgar/pkg/java/ajccli/trunk/files/CSWajcclidoc.gspec csw/mgar/pkg/java/ajccodec/trunk/Makefile csw/mgar/pkg/java/ajccodec/trunk/files/CSWajccodec.gspec csw/mgar/pkg/java/ajccodec/trunk/files/CSWajccodecdoc.gspec csw/mgar/pkg/java/ajccollections/trunk/Makefile csw/mgar/pkg/java/ajccollections/trunk/files/CSWajccollect.gspec csw/mgar/pkg/java/ajccollections/trunk/files/CSWajccollectdoc.gspec csw/mgar/pkg/java/ajcconfig/trunk/Makefile csw/mgar/pkg/java/ajcconfig/trunk/files/CSWajcconfig.gspec csw/mgar/pkg/java/ajcconfig/trunk/files/CSWajcconfigdoc.gspec csw/mgar/pkg/java/ajcdigester/trunk/Makefile csw/mgar/pkg/java/ajcdigester/trunk/files/CSWajcdigester.gspec csw/mgar/pkg/java/ajcdigester/trunk/files/CSWajcdigesterdoc.gspec csw/mgar/pkg/java/ajcdiscovery/trunk/Makefile csw/mgar/pkg/java/ajcdiscovery/trunk/files/CSWajcdiscovery.gspec csw/mgar/pkg/java/ajcdiscovery/trunk/files/CSWajcdiscoverydoc.gspec csw/mgar/pkg/java/ajcemail/trunk/Makefile csw/mgar/pkg/java/ajcemail/trunk/files/CSWajcemail.gspec csw/mgar/pkg/java/ajcemail/trunk/files/CSWajcemaildoc.gspec csw/mgar/pkg/java/ajchttpcl/trunk/Makefile csw/mgar/pkg/java/ajchttpcl/trunk/files/CSWajchttpcldoc.gspec csw/mgar/pkg/java/ajchttpcl/trunk/files/CSWajchttpclient.gspec csw/mgar/pkg/java/ajcio/trunk/Makefile csw/mgar/pkg/java/ajcio/trunk/files/CSWajcio.gspec csw/mgar/pkg/java/ajcio/trunk/files/CSWajciodoc.gspec csw/mgar/pkg/java/ajclang/trunk/Makefile csw/mgar/pkg/java/ajclang/trunk/files/CSWajclang.gspec csw/mgar/pkg/java/ajclang/trunk/files/CSWajclangdoc.gspec csw/mgar/pkg/java/ajclogging/trunk/Makefile csw/mgar/pkg/java/ajclogging/trunk/files/CSWajclogging.gspec csw/mgar/pkg/java/ajclogging/trunk/files/CSWajcloggingdoc.gspec csw/mgar/pkg/java/ajcmath/trunk/Makefile csw/mgar/pkg/java/ajcmath/trunk/files/CSWajcmath.gspec csw/mgar/pkg/java/ajcmath/trunk/files/CSWajcmathdoc.gspec csw/mgar/pkg/java/ajcnet/trunk/Makefile csw/mgar/pkg/java/ajcnet/trunk/files/CSWajcnet.gspec csw/mgar/pkg/java/ajcnet/trunk/files/CSWajcnetdoc.gspec csw/mgar/pkg/java/ajcpool/trunk/Makefile csw/mgar/pkg/java/ajcpool/trunk/files/CSWajcpool.gspec csw/mgar/pkg/java/ajcpool/trunk/files/CSWajcpooldoc.gspec csw/mgar/pkg/java/ajcprimitives/trunk/Makefile csw/mgar/pkg/java/ajcprimitives/trunk/files/CSWajcprimitives.gspec csw/mgar/pkg/java/ajcprimitives/trunk/files/CSWajcprimitivesdoc.gspec csw/mgar/pkg/java/ajcupload/trunk/Makefile csw/mgar/pkg/java/ajcupload/trunk/files/CSWajcupload.gspec csw/mgar/pkg/java/ajcupload/trunk/files/CSWajcuploaddoc.gspec csw/mgar/pkg/java/ajcvalidator/trunk/Makefile csw/mgar/pkg/java/ajcvalidator/trunk/files/CSWajcvalidator.gspec csw/mgar/pkg/java/ajcvalidator/trunk/files/CSWajcvalidatordoc.gspec csw/mgar/pkg/java/junit/trunk/Makefile csw/mgar/pkg/java/junit/trunk/files/CSWjunit.gspec csw/mgar/pkg/java/junit/trunk/files/CSWjunitdoc.gspec csw/mgar/pkg/java/log4j/trunk/Makefile csw/mgar/pkg/java/log4j/trunk/files/CSWlog4j.gspec csw/mgar/pkg/java/log4j/trunk/files/CSWlog4jdoc.gspec csw/mgar/pkg/jboss4/trunk/Makefile csw/mgar/pkg/jdk5/trunk/Makefile csw/mgar/pkg/jdk6/trunk/Makefile csw/mgar/pkg/jetty6/trunk/Makefile csw/mgar/pkg/jetty6/trunk/files/CSWjetty6.gspec csw/mgar/pkg/jetty6/trunk/files/CSWjetty6doc.gspec csw/mgar/pkg/jhead/trunk/Makefile csw/mgar/pkg/jicmp/trunk/Makefile csw/mgar/pkg/joe/trunk/Makefile csw/mgar/pkg/jpeg/trunk/Makefile csw/mgar/pkg/jpeginfo/trunk/Makefile csw/mgar/pkg/jpegoptim/trunk/Makefile csw/mgar/pkg/jrrd/trunk/Makefile csw/mgar/pkg/json-glib/trunk/Makefile csw/mgar/pkg/jxplorer/trunk/Makefile csw/mgar/pkg/kawa/trunk/Makefile csw/mgar/pkg/kde/trunk/Makefile csw/mgar/pkg/kde4libs/trunk/Makefile csw/mgar/pkg/kdeaccessibility/trunk/Makefile csw/mgar/pkg/kdeaddons/trunk/Makefile csw/mgar/pkg/kdeadmin/trunk/Makefile csw/mgar/pkg/kdeartwork/trunk/Makefile csw/mgar/pkg/kdebase/trunk/Makefile csw/mgar/pkg/kdebindings/trunk/Makefile csw/mgar/pkg/kdeedu/trunk/Makefile csw/mgar/pkg/kdegames/trunk/Makefile csw/mgar/pkg/kdegraphics/trunk/Makefile csw/mgar/pkg/kdelibs/trunk/Makefile csw/mgar/pkg/kdemultimedia/trunk/Makefile csw/mgar/pkg/kdenetwork/trunk/Makefile csw/mgar/pkg/kdepim/trunk/Makefile csw/mgar/pkg/kdesdk/trunk/Makefile csw/mgar/pkg/kdesvn/trunk/Makefile csw/mgar/pkg/kdetoys/trunk/Makefile csw/mgar/pkg/kdeutils/trunk/Makefile csw/mgar/pkg/kdevelop/trunk/Makefile csw/mgar/pkg/keepassx/trunk/Makefile csw/mgar/pkg/keychain/trunk/Makefile csw/mgar/pkg/kile/trunk/Makefile csw/mgar/pkg/koffice/trunk/Makefile csw/mgar/pkg/koha/trunk/Makefile csw/mgar/pkg/krb5/trunk/Makefile csw/mgar/pkg/krb5-lib/trunk/Makefile csw/mgar/pkg/ksh/trunk/Makefile csw/mgar/pkg/kshdbx/trunk/Makefile csw/mgar/pkg/lame/trunk/Makefile csw/mgar/pkg/lang-python/dbus-python/trunk/Makefile csw/mgar/pkg/lang-python/django/trunk/Makefile csw/mgar/pkg/lang-python/django-auth-ldap/trunk/Makefile csw/mgar/pkg/lang-python/django-filter/trunk/Makefile csw/mgar/pkg/lang-python/django-sorting/trunk/Makefile csw/mgar/pkg/lang-python/gdata-python-client/trunk/Makefile csw/mgar/pkg/lang-python/guppy/trunk/Makefile csw/mgar/pkg/lang-python/ipython/trunk/Makefile csw/mgar/pkg/lang-python/logilab-astng/trunk/Makefile csw/mgar/pkg/lang-python/logilab-common/trunk/Makefile csw/mgar/pkg/lang-python/mod_python/trunk/Makefile csw/mgar/pkg/lang-python/mysql-python/trunk/Makefile csw/mgar/pkg/lang-python/nose/trunk/Makefile csw/mgar/pkg/lang-python/numpy/trunk/Makefile csw/mgar/pkg/lang-python/psycopg2/trunk/Makefile csw/mgar/pkg/lang-python/py_antlr/trunk/Makefile csw/mgar/pkg/lang-python/pyboto/trunk/Makefile csw/mgar/pkg/lang-python/pycairo/trunk/Makefile csw/mgar/pkg/lang-python/pychecker/trunk/Makefile csw/mgar/pkg/lang-python/pycurl/trunk/Makefile csw/mgar/pkg/lang-python/pydes/trunk/Makefile csw/mgar/pkg/lang-python/pydocutils/trunk/Makefile csw/mgar/pkg/lang-python/pyfpconst/trunk/Makefile csw/mgar/pkg/lang-python/pygobject/trunk/Makefile csw/mgar/pkg/lang-python/pygtk/trunk/Makefile csw/mgar/pkg/lang-python/pykstat/trunk/Makefile csw/mgar/pkg/lang-python/pylint/trunk/Makefile csw/mgar/pkg/lang-python/pylxml/trunk/Makefile csw/mgar/pkg/lang-python/pyorbit/trunk/Makefile csw/mgar/pkg/lang-python/pysetuptools/trunk/Makefile csw/mgar/pkg/lang-python/pysoappy/trunk/Makefile csw/mgar/pkg/lang-python/pysqlite/trunk/Makefile csw/mgar/pkg/lang-python/pysqlite2/trunk/Makefile csw/mgar/pkg/lang-python/pysvn/trunk/Makefile csw/mgar/pkg/lang-python/python/branches/libpython2_5_1_0/Makefile csw/mgar/pkg/lang-python/python/branches/python-2.7/Makefile csw/mgar/pkg/lang-python/python/branches/python-3.1/Makefile csw/mgar/pkg/lang-python/python/branches/soname-granularity/Makefile csw/mgar/pkg/lang-python/python/trunk/Makefile csw/mgar/pkg/lang-python/python-augeas/trunk/Makefile csw/mgar/pkg/lang-python/python-dateutil/trunk/Makefile csw/mgar/pkg/lang-python/python-gflags/trunk/Makefile csw/mgar/pkg/lang-python/python-graph/trunk/Makefile csw/mgar/pkg/lang-python/python-ldap/trunk/Makefile csw/mgar/pkg/lang-python/python-magic/trunk/Makefile csw/mgar/pkg/lang-python/python-pexpect/trunk/Makefile csw/mgar/pkg/lang-python/python-suds/trunk/Makefile csw/mgar/pkg/lang-python/python25/trunk/Makefile csw/mgar/pkg/lang-python/python3/trunk/Makefile csw/mgar/pkg/lang-python/pytz/trunk/Makefile csw/mgar/pkg/lang-python/pyyaml/trunk/Makefile csw/mgar/pkg/lang-python/pyzor/trunk/Makefile csw/mgar/pkg/lang-python/shout-python/trunk/Makefile csw/mgar/pkg/lang-python/soappy/trunk/Makefile csw/mgar/pkg/lang-python/supybot/trunk/Makefile csw/mgar/pkg/lang-python/twisted/trunk/Makefile csw/mgar/pkg/lang-python/virtualenv/trunk/Makefile csw/mgar/pkg/lang-python/xlrd/trunk/Makefile csw/mgar/pkg/lastx/trunk/Makefile csw/mgar/pkg/lcms/trunk/Makefile csw/mgar/pkg/ldapvi/trunk/Makefile csw/mgar/pkg/leafnode/trunk/Makefile csw/mgar/pkg/lensfun/trunk/Makefile csw/mgar/pkg/less/trunk/Makefile csw/mgar/pkg/lftp/trunk/Makefile csw/mgar/pkg/lha/trunk/Makefile csw/mgar/pkg/liba52/trunk/Makefile csw/mgar/pkg/libao/trunk/Makefile csw/mgar/pkg/libarchive/trunk/Makefile csw/mgar/pkg/libart/trunk/Makefile csw/mgar/pkg/libassuan/trunk/Makefile csw/mgar/pkg/libast/trunk/Makefile csw/mgar/pkg/libatk/trunk/Makefile csw/mgar/pkg/libatomic_ops/trunk/Makefile csw/mgar/pkg/libcairo/branches/libcairo-x11-reloaded/Makefile csw/mgar/pkg/libcairo/trunk/Makefile csw/mgar/pkg/libcddb/trunk/Makefile csw/mgar/pkg/libcdio/trunk/Makefile csw/mgar/pkg/libconfuse/trunk/Makefile csw/mgar/pkg/libcroco/trunk/Makefile csw/mgar/pkg/libdatrie/trunk/Makefile csw/mgar/pkg/libdnet/trunk/Makefile csw/mgar/pkg/libdvdcss/trunk/Makefile csw/mgar/pkg/libdvdread/trunk/Makefile csw/mgar/pkg/libebml/trunk/Makefile csw/mgar/pkg/libeggdbus/trunk/Makefile csw/mgar/pkg/libemf/trunk/Makefile csw/mgar/pkg/liberation-fonts/trunk/Makefile csw/mgar/pkg/libev/trunk/Makefile csw/mgar/pkg/libevent/branches/libevent-2.0.x/Makefile csw/mgar/pkg/libevent/trunk/Makefile csw/mgar/pkg/libexif/trunk/Makefile csw/mgar/pkg/libfaac/trunk/Makefile csw/mgar/pkg/libfaad2/trunk/Makefile csw/mgar/pkg/libfasttime/trunk/Makefile csw/mgar/pkg/libffi/trunk/Makefile csw/mgar/pkg/libfishsound/trunk/Makefile csw/mgar/pkg/libfpx/trunk/Makefile csw/mgar/pkg/libgadu/trunk/Makefile csw/mgar/pkg/libgc/trunk/Makefile csw/mgar/pkg/libgcrypt/trunk/Makefile csw/mgar/pkg/libgda/trunk/Makefile csw/mgar/pkg/libgdiplus/trunk/Makefile csw/mgar/pkg/libglade/trunk/Makefile csw/mgar/pkg/libglade2/trunk/Makefile csw/mgar/pkg/libgmp/trunk/Makefile csw/mgar/pkg/libgnugetopt/trunk/Makefile csw/mgar/pkg/libgoffice/trunk/Makefile csw/mgar/pkg/libgpg_error/trunk/Makefile csw/mgar/pkg/libgphoto2/trunk/Makefile csw/mgar/pkg/libgpod/trunk/Makefile csw/mgar/pkg/libgsf/trunk/Makefile csw/mgar/pkg/libgss/trunk/Makefile csw/mgar/pkg/libical/trunk/Makefile csw/mgar/pkg/libiconv/branches/sync-pkgname/Makefile csw/mgar/pkg/libiconv/trunk/Makefile csw/mgar/pkg/libicu/trunk/Makefile csw/mgar/pkg/libid3tag/trunk/Makefile csw/mgar/pkg/libidl/trunk/Makefile csw/mgar/pkg/libidn/trunk/Makefile csw/mgar/pkg/libiptcdata/trunk/Makefile csw/mgar/pkg/libksba/trunk/Makefile csw/mgar/pkg/liblasi/trunk/Makefile csw/mgar/pkg/liblcms/trunk/Makefile csw/mgar/pkg/libldns/trunk/Makefile csw/mgar/pkg/liblockfile/trunk/Makefile csw/mgar/pkg/liblqr/trunk/Makefile csw/mgar/pkg/libmad/trunk/Makefile csw/mgar/pkg/libmatio/trunk/Makefile csw/mgar/pkg/libmatroska/trunk/Makefile csw/mgar/pkg/libmcal/trunk/Makefile csw/mgar/pkg/libmcrypt/trunk/Makefile csw/mgar/pkg/libmhash/trunk/Makefile csw/mgar/pkg/libmikmod/trunk/Makefile csw/mgar/pkg/libmkv/trunk/Makefile csw/mgar/pkg/libmm/trunk/Makefile csw/mgar/pkg/libmp4v2/trunk/Makefile csw/mgar/pkg/libmpeg2/trunk/Makefile csw/mgar/pkg/libmpfr/trunk/Makefile csw/mgar/pkg/libneon29/trunk/Makefile csw/mgar/pkg/libnet/branches/1.1.x/Makefile csw/mgar/pkg/libnet/trunk/Makefile csw/mgar/pkg/libnids/trunk/Makefile csw/mgar/pkg/libnotify/trunk/Makefile csw/mgar/pkg/libntlm/trunk/Makefile csw/mgar/pkg/libogg/trunk/Makefile csw/mgar/pkg/liboggz/trunk/Makefile csw/mgar/pkg/liboil/trunk/Makefile csw/mgar/pkg/liborc/trunk/Makefile csw/mgar/pkg/libpaper/trunk/Makefile csw/mgar/pkg/libpcap/trunk/Makefile csw/mgar/pkg/libpopt/trunk/Makefile csw/mgar/pkg/libproxy/trunk/Makefile csw/mgar/pkg/librsvg/trunk/Makefile csw/mgar/pkg/librsync/trunk/Makefile csw/mgar/pkg/libsamplerate/trunk/Makefile csw/mgar/pkg/libschroedinger/trunk/Makefile csw/mgar/pkg/libsdl/branches/libsdl-1.2.14,REV_2009.11.10/Makefile csw/mgar/pkg/libsdl/branches/x11-reloaded/Makefile csw/mgar/pkg/libsdl/trunk/Makefile csw/mgar/pkg/libserf/trunk/Makefile csw/mgar/pkg/libsexy/trunk/Makefile csw/mgar/pkg/libshout/trunk/Makefile csw/mgar/pkg/libsigcpp/trunk/Makefile csw/mgar/pkg/libsigsegv/trunk/Makefile csw/mgar/pkg/libsmi/trunk/Makefile csw/mgar/pkg/libsndfile/branches/libsndfile-1.0.22preX/Makefile csw/mgar/pkg/libsndfile/trunk/Makefile csw/mgar/pkg/libsoup/trunk/Makefile csw/mgar/pkg/libsoup2/trunk/Makefile csw/mgar/pkg/libspectre/trunk/Makefile csw/mgar/pkg/libspf2/trunk/Makefile csw/mgar/pkg/libssh2/trunk/Makefile csw/mgar/pkg/libstatgrab/trunk/Makefile csw/mgar/pkg/libstlport/trunk/Makefile csw/mgar/pkg/libtasn1/trunk/Makefile csw/mgar/pkg/libthai/trunk/Makefile csw/mgar/pkg/libtheora/trunk/Makefile csw/mgar/pkg/libtool/branches/libldtl3/Makefile csw/mgar/pkg/libtool/branches/libtool24/Makefile csw/mgar/pkg/libtool/trunk/Makefile csw/mgar/pkg/libtorrent/trunk/Makefile csw/mgar/pkg/libunique/trunk/Makefile csw/mgar/pkg/liburiparser/trunk/Makefile csw/mgar/pkg/libvanessa-logger/trunk/Makefile csw/mgar/pkg/libvanessa-socket/trunk/Makefile csw/mgar/pkg/libvorbis/trunk/Makefile csw/mgar/pkg/libwnck/trunk/Makefile csw/mgar/pkg/libwww/trunk/Makefile csw/mgar/pkg/libxdg-basedir/trunk/Makefile csw/mgar/pkg/libxine/trunk/Makefile csw/mgar/pkg/libxml++/trunk/Makefile csw/mgar/pkg/libxml2/trunk/Makefile csw/mgar/pkg/libxpm/trunk/Makefile csw/mgar/pkg/libxslt/trunk/Makefile csw/mgar/pkg/libxspf/trunk/Makefile csw/mgar/pkg/libyaml/trunk/Makefile csw/mgar/pkg/libytnef/trunk/Makefile csw/mgar/pkg/liferea/trunk/Makefile csw/mgar/pkg/lighttpd/trunk/Makefile csw/mgar/pkg/listadmin/trunk/Makefile csw/mgar/pkg/log4sh/trunk/Makefile csw/mgar/pkg/logwatch/trunk/Makefile csw/mgar/pkg/loudmouth/trunk/Makefile csw/mgar/pkg/lpc10/trunk/Makefile csw/mgar/pkg/lsof/trunk/Makefile csw/mgar/pkg/lua/trunk/Makefile csw/mgar/pkg/lutefisk/trunk/Makefile csw/mgar/pkg/lynx/trunk/Makefile csw/mgar/pkg/lyx/trunk/Makefile csw/mgar/pkg/lzip/trunk/Makefile csw/mgar/pkg/lzlib/trunk/Makefile csw/mgar/pkg/lzo/trunk/Makefile csw/mgar/pkg/lzop/trunk/Makefile csw/mgar/pkg/m4/trunk/Makefile csw/mgar/pkg/magit/trunk/Makefile csw/mgar/pkg/maildrop/trunk/Makefile csw/mgar/pkg/mailutils/trunk/Makefile csw/mgar/pkg/mailx/trunk/Makefile csw/mgar/pkg/mairix/trunk/Makefile csw/mgar/pkg/man2html/trunk/Makefile csw/mgar/pkg/mantis/trunk/Makefile csw/mgar/pkg/maven2/trunk/Makefile csw/mgar/pkg/maven3/trunk/Makefile csw/mgar/pkg/mawk/trunk/Makefile csw/mgar/pkg/mbuffer/trunk/Makefile csw/mgar/pkg/mc/trunk/Makefile csw/mgar/pkg/mcabber/trunk/Makefile csw/mgar/pkg/mcrypt/trunk/Makefile csw/mgar/pkg/meanwhile/trunk/Makefile csw/mgar/pkg/mediawiki/trunk/Makefile csw/mgar/pkg/memcached/trunk/Makefile csw/mgar/pkg/memconf/trunk/Makefile csw/mgar/pkg/mercurial/trunk/Makefile csw/mgar/pkg/meta/CSWmeta_example/trunk/Makefile csw/mgar/pkg/meta/SAMP/trunk/Makefile csw/mgar/pkg/meta/comand/trunk/Makefile csw/mgar/pkg/meta/toplevel/trunk/Makefile csw/mgar/pkg/mharc/trunk/Makefile csw/mgar/pkg/mhonarc/trunk/Makefile csw/mgar/pkg/mibdump/trunk/Makefile csw/mgar/pkg/micq/trunk/Makefile csw/mgar/pkg/miltergreylist/trunk/Makefile csw/mgar/pkg/mimedefang/trunk/Makefile csw/mgar/pkg/minicom/trunk/Makefile csw/mgar/pkg/mixer/trunk/Makefile csw/mgar/pkg/mkpackage/trunk/Makefile csw/mgar/pkg/mkrdns/trunk/Makefile csw/mgar/pkg/mktemp/trunk/Makefile csw/mgar/pkg/mm/trunk/Makefile csw/mgar/pkg/moc/trunk/Makefile csw/mgar/pkg/mocha/trunk/Makefile csw/mgar/pkg/mod_auth_mysql/trunk/Makefile csw/mgar/pkg/mod_auth_pam/trunk/Makefile csw/mgar/pkg/mod_auth_radius/trunk/Makefile csw/mgar/pkg/mod_evasive/trunk/Makefile csw/mgar/pkg/mod_fastcgi/trunk/Makefile csw/mgar/pkg/mod_fcgid/trunk/Makefile csw/mgar/pkg/mod_geoip/trunk/Makefile csw/mgar/pkg/mod_highlight/trunk/Makefile csw/mgar/pkg/mod_jk/trunk/Makefile csw/mgar/pkg/mod_macro/trunk/Makefile csw/mgar/pkg/mod_proxy_html/trunk/Makefile csw/mgar/pkg/mod_ruby/trunk/Makefile csw/mgar/pkg/mod_svn_view/trunk/Makefile csw/mgar/pkg/mod_transform/trunk/Makefile csw/mgar/pkg/mod_wsgi/trunk/Makefile csw/mgar/pkg/mongodb/trunk/Makefile csw/mgar/pkg/mono/trunk/Makefile csw/mgar/pkg/mono-basic/trunk/Makefile csw/mgar/pkg/mono-debugger/trunk/Makefile csw/mgar/pkg/mono-tools/trunk/Makefile csw/mgar/pkg/moonbuggy/trunk/Makefile csw/mgar/pkg/mox/trunk/Makefile csw/mgar/pkg/mpage/trunk/Makefile csw/mgar/pkg/mpd/trunk/Makefile csw/mgar/pkg/mpeg4ip/trunk/Makefile csw/mgar/pkg/mpg123/trunk/Makefile csw/mgar/pkg/mpg321/trunk/Makefile csw/mgar/pkg/mplayer/trunk/Makefile csw/mgar/pkg/mplex/trunk/Makefile csw/mgar/pkg/mrtg/trunk/Makefile csw/mgar/pkg/msmtp/trunk/Makefile csw/mgar/pkg/msttcorefonts/trunk/Makefile csw/mgar/pkg/mtools/trunk/Makefile csw/mgar/pkg/mtr/trunk/Makefile csw/mgar/pkg/mtwrite/trunk/Makefile csw/mgar/pkg/mtx/trunk/Makefile csw/mgar/pkg/multitail/trunk/Makefile csw/mgar/pkg/munin/trunk/Makefile csw/mgar/pkg/mutt/trunk/Makefile csw/mgar/pkg/myodbc/trunk/Makefile csw/mgar/pkg/mysql-ruby/trunk/Makefile csw/mgar/pkg/mysql4/trunk/Makefile csw/mgar/pkg/mysql5/branches/mysql-5.0.x/Makefile csw/mgar/pkg/mysql5/branches/mysql-5.1.x/Makefile csw/mgar/pkg/mysql5/branches/mysql-5.1.x-optcsw/Makefile csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile csw/mgar/pkg/mysql5/trunk/Makefile csw/mgar/pkg/nagios/trunk/Makefile csw/mgar/pkg/nagios_plugins/trunk/Makefile csw/mgar/pkg/nagvis/trunk/Makefile csw/mgar/pkg/namazu/trunk/Makefile csw/mgar/pkg/namebench/trunk/Makefile csw/mgar/pkg/nano/trunk/Makefile csw/mgar/pkg/nasm/trunk/Makefile csw/mgar/pkg/ncal/trunk/Makefile csw/mgar/pkg/ncdu/trunk/Makefile csw/mgar/pkg/ncftp/trunk/Makefile csw/mgar/pkg/ncmpc/trunk/Makefile csw/mgar/pkg/ncsa-mosaic/trunk/Makefile csw/mgar/pkg/ncurses/trunk/Makefile csw/mgar/pkg/ndiff/trunk/Makefile csw/mgar/pkg/ndoutils/trunk/Makefile csw/mgar/pkg/neon/trunk/Makefile csw/mgar/pkg/netcdf/branches/gar-fortran/Makefile csw/mgar/pkg/netcdf/branches/netcdf-4/Makefile csw/mgar/pkg/netcdf/trunk/Makefile csw/mgar/pkg/netpbm/trunk/Makefile csw/mgar/pkg/netsnmp/branches/netsnmp-5.4.2.1-bug4408/Makefile csw/mgar/pkg/netsnmp/trunk/Makefile csw/mgar/pkg/nfswatch/trunk/Makefile csw/mgar/pkg/nginx/trunk/Makefile csw/mgar/pkg/ngrep/trunk/Makefile csw/mgar/pkg/ngspice/trunk/Makefile csw/mgar/pkg/nicstat/trunk/Makefile csw/mgar/pkg/nmap/trunk/Makefile csw/mgar/pkg/nmh/trunk/Makefile csw/mgar/pkg/notification-daemon/trunk/Makefile csw/mgar/pkg/npadmin/trunk/Makefile csw/mgar/pkg/nrpe/trunk/Makefile csw/mgar/pkg/nsca/trunk/Makefile csw/mgar/pkg/nsd/trunk/Makefile csw/mgar/pkg/nspr/trunk/Makefile csw/mgar/pkg/nss/trunk/Makefile csw/mgar/pkg/ntop/trunk/Makefile csw/mgar/pkg/nxcl/trunk/Makefile csw/mgar/pkg/ocaml/trunk/Makefile csw/mgar/pkg/ocrad/trunk/Makefile csw/mgar/pkg/octave/trunk/Makefile csw/mgar/pkg/ogle/trunk/Makefile csw/mgar/pkg/ogle_gui/trunk/Makefile csw/mgar/pkg/oinkmaster/trunk/Makefile csw/mgar/pkg/oniguruma/trunk/Makefile csw/mgar/pkg/openal/trunk/Makefile csw/mgar/pkg/opendbx/trunk/Makefile csw/mgar/pkg/openexr/trunk/Makefile csw/mgar/pkg/opengrok/trunk/Makefile csw/mgar/pkg/openjade/trunk/Makefile csw/mgar/pkg/openjdk/trunk/Makefile csw/mgar/pkg/openjpeg/trunk/Makefile csw/mgar/pkg/openldap/trunk/Makefile csw/mgar/pkg/openldap24/trunk/Makefile csw/mgar/pkg/openmpi/trunk/Makefile csw/mgar/pkg/opennms/trunk/Makefile csw/mgar/pkg/openoffice/trunk/Makefile csw/mgar/pkg/openssh/branches/openssh-5.4p1+lpk/Makefile csw/mgar/pkg/openssh/branches/openssh-5.6p1+lpk/Makefile csw/mgar/pkg/openssh/trunk/Makefile csw/mgar/pkg/openssl/trunk/Makefile csw/mgar/pkg/openssl1/trunk/Makefile csw/mgar/pkg/openvpn/trunk/Makefile csw/mgar/pkg/opera/trunk/Makefile csw/mgar/pkg/oracle/trunk/Makefile csw/mgar/pkg/oracle-instantclient/trunk/Makefile csw/mgar/pkg/orca/trunk/Makefile csw/mgar/pkg/otr/trunk/Makefile csw/mgar/pkg/p4/trunk/Makefile csw/mgar/pkg/p7zip/trunk/Makefile csw/mgar/pkg/pacparser/trunk/Makefile csw/mgar/pkg/pakchois/trunk/Makefile csw/mgar/pkg/pango/trunk/Makefile csw/mgar/pkg/pango-libthai/trunk/Makefile csw/mgar/pkg/par/trunk/Makefile csw/mgar/pkg/parallel/trunk/Makefile csw/mgar/pkg/parcellite/trunk/Makefile csw/mgar/pkg/pari/trunk/Makefile csw/mgar/pkg/password-gorilla/trunk/Makefile csw/mgar/pkg/patch/trunk/Makefile csw/mgar/pkg/patchutils/trunk/Makefile csw/mgar/pkg/pbzip2/trunk/Makefile csw/mgar/pkg/pca/trunk/Makefile csw/mgar/pkg/pcb/trunk/Makefile csw/mgar/pkg/pcp/trunk/Makefile csw/mgar/pkg/pcre/trunk/Makefile csw/mgar/pkg/pdfjam/trunk/Makefile csw/mgar/pkg/pen/trunk/Makefile csw/mgar/pkg/perdition/trunk/Makefile csw/mgar/pkg/perl/trunk/Makefile csw/mgar/pkg/perl/trunk/files/updatecore.mk csw/mgar/pkg/pgadmin3/trunk/Makefile csw/mgar/pkg/php4/trunk/Makefile csw/mgar/pkg/php4/trunk/legacy/Makefile csw/mgar/pkg/php5/trunk/Makefile csw/mgar/pkg/php5/trunk/Makefile.cswdir csw/mgar/pkg/php5/trunk/Makefile.php5dir csw/mgar/pkg/php5/trunk/legacy/php5-apache/trunk/Makefile csw/mgar/pkg/php5/trunk/legacy/php5-apache2/trunk/Makefile csw/mgar/pkg/php5_apc/trunk/Makefile csw/mgar/pkg/php5_xdebug/trunk/Makefile csw/mgar/pkg/phpMyAdmin/trunk/Makefile csw/mgar/pkg/phpldapadmin/trunk/Makefile csw/mgar/pkg/phpmode/trunk/Makefile csw/mgar/pkg/phpsysinfo/trunk/Makefile csw/mgar/pkg/pidgin/trunk/Makefile csw/mgar/pkg/pidgin_sipe/trunk/Makefile csw/mgar/pkg/pidginotr/trunk/Makefile csw/mgar/pkg/pigz/trunk/Makefile csw/mgar/pkg/pil/trunk/Makefile csw/mgar/pkg/pinentry/trunk/Makefile csw/mgar/pkg/pius/trunk/Makefile csw/mgar/pkg/pixman/branches/latest-upstream/Makefile csw/mgar/pkg/pixman/trunk/Makefile csw/mgar/pkg/pkg_update_watch/trunk/Makefile csw/mgar/pkg/pkgconfig/trunk/Makefile csw/mgar/pkg/pkgutil/trunk/Makefile csw/mgar/pkg/plib/trunk/Makefile csw/mgar/pkg/plzip/trunk/Makefile csw/mgar/pkg/pngwriter/trunk/Makefile csw/mgar/pkg/pnp/trunk/Makefile csw/mgar/pkg/policyd-weight/trunk/Makefile csw/mgar/pkg/polkit/trunk/Makefile csw/mgar/pkg/poppler/branches/0.10.6/Makefile csw/mgar/pkg/poppler/trunk/Makefile csw/mgar/pkg/poppler-data/trunk/Makefile csw/mgar/pkg/poster/trunk/Makefile csw/mgar/pkg/postfix/branches/postfix-2.4/Makefile csw/mgar/pkg/postfix/branches/postfix-2.6/Makefile csw/mgar/pkg/postfix/trunk/Makefile csw/mgar/pkg/postgresql/branches/optcsw/Makefile csw/mgar/pkg/postgresql/branches/postgresql-9.0/Makefile csw/mgar/pkg/postgresql/trunk/Makefile csw/mgar/pkg/postgrey/trunk/Makefile csw/mgar/pkg/pound/trunk/Makefile csw/mgar/pkg/pound2/trunk/Makefile csw/mgar/pkg/powerdns/branches/opendbx/Makefile csw/mgar/pkg/powerdns/branches/oracle/Makefile csw/mgar/pkg/powerdns/trunk/Makefile csw/mgar/pkg/ppkg_get/trunk/Makefile csw/mgar/pkg/privoxy/trunk/Makefile csw/mgar/pkg/proftpd/trunk/Makefile csw/mgar/pkg/progressbar/trunk/Makefile csw/mgar/pkg/protobuf/trunk/Makefile csw/mgar/pkg/proxytunnel/trunk/Makefile csw/mgar/pkg/pth/trunk/Makefile csw/mgar/pkg/pubcookie/trunk/Makefile csw/mgar/pkg/pulseaudio/trunk/Makefile csw/mgar/pkg/puppet/branches/puppet-0.24.x/Makefile csw/mgar/pkg/puppet/branches/puppet-0.25.x/Makefile csw/mgar/pkg/puppet/branches/puppet-2.6.x/Makefile csw/mgar/pkg/puppet/trunk/Makefile csw/mgar/pkg/puppet-dashboard/trunk/Makefile csw/mgar/pkg/pureftpd/trunk/Makefile csw/mgar/pkg/pv/trunk/Makefile csw/mgar/pkg/pwgen/trunk/Makefile csw/mgar/pkg/pwsafe/trunk/Makefile csw/mgar/pkg/pxlib/trunk/Makefile csw/mgar/pkg/pxz/trunk/Makefile csw/mgar/pkg/qhull/trunk/Makefile csw/mgar/pkg/qpopper/trunk/Makefile csw/mgar/pkg/qt-gcc/trunk/Makefile csw/mgar/pkg/qt4/trunk/Makefile csw/mgar/pkg/qt4-gcc/trunk/Makefile csw/mgar/pkg/quanta/trunk/Makefile csw/mgar/pkg/qucs/trunk/Makefile csw/mgar/pkg/quilt/trunk/Makefile csw/mgar/pkg/r/trunk/Makefile csw/mgar/pkg/rails/trunk/Makefile csw/mgar/pkg/rake/trunk/Makefile csw/mgar/pkg/rapidsvn/trunk/Makefile csw/mgar/pkg/razor/trunk/Makefile csw/mgar/pkg/rb-mysql/trunk/Makefile csw/mgar/pkg/rbgems/actionmailer/trunk/Makefile csw/mgar/pkg/rbgems/actionpack/trunk/Makefile csw/mgar/pkg/rbgems/activerecord/trunk/Makefile csw/mgar/pkg/rbgems/activeresource/trunk/Makefile csw/mgar/pkg/rbgems/activesupport/trunk/Makefile csw/mgar/pkg/rbgems/ar-extensions/trunk/Makefile csw/mgar/pkg/rbgems/bacon/trunk/Makefile csw/mgar/pkg/rbgems/bundler/trunk/Makefile csw/mgar/pkg/rbgems/cgi_multipart_eof_fix/trunk/Makefile csw/mgar/pkg/rbgems/curb/trunk/Makefile csw/mgar/pkg/rbgems/daemons/trunk/Makefile csw/mgar/pkg/rbgems/enumerated_attribute/trunk/Makefile csw/mgar/pkg/rbgems/fastthread/trunk/Makefile csw/mgar/pkg/rbgems/formtastic/trunk/Makefile csw/mgar/pkg/rbgems/gem_plugin/trunk/Makefile csw/mgar/pkg/rbgems/haml/trunk/Makefile csw/mgar/pkg/rbgems/hoe/trunk/Makefile csw/mgar/pkg/rbgems/json_pure/trunk/Makefile csw/mgar/pkg/rbgems/meta_programming/trunk/Makefile csw/mgar/pkg/rbgems/mongrel/trunk/Makefile csw/mgar/pkg/rbgems/mongrel_cluster/trunk/Makefile csw/mgar/pkg/rbgems/passenger/trunk/Makefile csw/mgar/pkg/rbgems/pg/trunk/Makefile csw/mgar/pkg/rbgems/prawn/trunk/Makefile csw/mgar/pkg/rbgems/prawn-core/trunk/Makefile csw/mgar/pkg/rbgems/prawn-layout/trunk/Makefile csw/mgar/pkg/rbgems/prawn-security/trunk/Makefile csw/mgar/pkg/rbgems/rack/trunk/Makefile csw/mgar/pkg/rbgems/rails/trunk/Makefile csw/mgar/pkg/rbgems/rake/trunk/Makefile csw/mgar/pkg/rbgems/rake-compiler/trunk/Makefile csw/mgar/pkg/rbgems/rdoc/trunk/Makefile csw/mgar/pkg/rbgems/rdoc-data/trunk/Makefile csw/mgar/pkg/rbgems/redcloth/trunk/Makefile csw/mgar/pkg/rbgems/ruby-net-ldap/trunk/Makefile csw/mgar/pkg/rbgems/rubyforge/trunk/Makefile csw/mgar/pkg/rbgems/sqlite3-ruby/trunk/Makefile csw/mgar/pkg/rbgems/will_paginate/trunk/Makefile csw/mgar/pkg/rbldnsd/trunk/Makefile csw/mgar/pkg/rc/trunk/Makefile csw/mgar/pkg/rcairo/trunk/Makefile csw/mgar/pkg/rcs/trunk/Makefile csw/mgar/pkg/rdesktop/trunk/Makefile csw/mgar/pkg/rdiff-backup/trunk/Makefile csw/mgar/pkg/re2c/Makefile csw/mgar/pkg/readline/trunk/Makefile csw/mgar/pkg/recode/trunk/Makefile csw/mgar/pkg/remake/trunk/Makefile csw/mgar/pkg/reportlab/trunk/Makefile csw/mgar/pkg/resin/trunk/Makefile csw/mgar/pkg/rhythmbox/trunk/Makefile csw/mgar/pkg/rl/trunk/Makefile csw/mgar/pkg/rlwrap/trunk/Makefile csw/mgar/pkg/rox-filer/trunk/Makefile csw/mgar/pkg/rrdtool/branches/benny/Makefile csw/mgar/pkg/rrdtool/branches/ihsan/Makefile csw/mgar/pkg/rrdtool/trunk/Makefile csw/mgar/pkg/rspec/trunk/Makefile csw/mgar/pkg/rssh/trunk/Makefile csw/mgar/pkg/rsync/trunk/Makefile csw/mgar/pkg/rsyslog/trunk/Makefile csw/mgar/pkg/rtorrent/trunk/Makefile csw/mgar/pkg/ruby/trunk/Makefile csw/mgar/pkg/ruby19/trunk/Makefile csw/mgar/pkg/rubygems/trunk/Makefile csw/mgar/pkg/samba/trunk/Makefile csw/mgar/pkg/sar2rrd/trunk/Makefile csw/mgar/pkg/sasl/branches/sasl-2.1.23-mGARv2/Makefile csw/mgar/pkg/sasl/trunk/Makefile csw/mgar/pkg/sauron/trunk/Makefile csw/mgar/pkg/sbt/trunk/Makefile csw/mgar/pkg/scala/trunk/Makefile csw/mgar/pkg/scfdot/trunk/Makefile csw/mgar/pkg/scons/trunk/Makefile csw/mgar/pkg/scponly/trunk/Makefile csw/mgar/pkg/screen/trunk/Makefile csw/mgar/pkg/scrollkeeper/trunk/Makefile csw/mgar/pkg/scummvm/trunk/Makefile csw/mgar/pkg/sdlimage/trunk/Makefile csw/mgar/pkg/sdlmixer/trunk/Makefile csw/mgar/pkg/sdlnet/trunk/Makefile csw/mgar/pkg/sdlsound/trunk/Makefile csw/mgar/pkg/sdlttf/trunk/Makefile csw/mgar/pkg/seamonkey/trunk/Makefile csw/mgar/pkg/sed/trunk/Makefile csw/mgar/pkg/sendmail/branches/benny/Makefile csw/mgar/pkg/sendmail/branches/mwatters/Makefile csw/mgar/pkg/sendmail/trunk/Makefile csw/mgar/pkg/setoolkit/trunk/Makefile csw/mgar/pkg/setxkbmap/trunk/Makefile csw/mgar/pkg/sgml-xml-common/trunk/Makefile csw/mgar/pkg/sh-utils/trunk/Makefile csw/mgar/pkg/shared-mime-info/trunk/Makefile csw/mgar/pkg/sharutils/trunk/Makefile csw/mgar/pkg/shflags/trunk/Makefile csw/mgar/pkg/shmux/trunk/Makefile csw/mgar/pkg/shunit2/trunk/Makefile csw/mgar/pkg/siege/trunk/Makefile csw/mgar/pkg/silctoolkit/trunk/Makefile csw/mgar/pkg/silvercity/trunk/Makefile csw/mgar/pkg/slack/trunk/Makefile csw/mgar/pkg/slang/trunk/Makefile csw/mgar/pkg/slocate/trunk/Makefile csw/mgar/pkg/sloccount/trunk/Makefile csw/mgar/pkg/slrn/trunk/Makefile csw/mgar/pkg/smartmontools/trunk/Makefile csw/mgar/pkg/smbldap-tools/trunk/Makefile csw/mgar/pkg/snmptt/trunk/Makefile csw/mgar/pkg/snort/trunk/Makefile csw/mgar/pkg/snownews/trunk/Makefile csw/mgar/pkg/socat/trunk/Makefile csw/mgar/pkg/sox/trunk/Makefile csw/mgar/pkg/spamass-milter/trunk/Makefile csw/mgar/pkg/spamassassin/trunk/Makefile csw/mgar/pkg/speex/trunk/Makefile csw/mgar/pkg/spider/trunk/Makefile csw/mgar/pkg/spidermonkey/trunk/Makefile csw/mgar/pkg/spine/trunk/Makefile csw/mgar/pkg/sqlalchemy/trunk/Makefile csw/mgar/pkg/sqlite3/trunk/Makefile csw/mgar/pkg/sqlobject/trunk/Makefile csw/mgar/pkg/squid/trunk/Makefile csw/mgar/pkg/squidclamav/trunk/Makefile csw/mgar/pkg/squidguard/trunk/Makefile csw/mgar/pkg/squidpurge/trunk/Makefile csw/mgar/pkg/squirrelmail/trunk/Makefile csw/mgar/pkg/ss12u1f95rt/trunk/Makefile csw/mgar/pkg/ss5/trunk/Makefile csw/mgar/pkg/sshguard/trunk/Makefile csw/mgar/pkg/stalonetray/trunk/Makefile csw/mgar/pkg/startup-notification/trunk/Makefile csw/mgar/pkg/stellarium/trunk/Makefile csw/mgar/pkg/stmpclean/trunk/Makefile csw/mgar/pkg/stress/trunk/Makefile csw/mgar/pkg/stressapptest/trunk/Makefile csw/mgar/pkg/stunnel/trunk/Makefile csw/mgar/pkg/subversion/trunk/Makefile csw/mgar/pkg/sudo/branches/old-symlink-scheme/Makefile csw/mgar/pkg/sudo/branches/sudo-1.7.2x/Makefile csw/mgar/pkg/sudo/trunk/Makefile csw/mgar/pkg/sudo_ldap/trunk/Makefile csw/mgar/pkg/sudosh2/trunk/Makefile csw/mgar/pkg/sunx11_devel/trunk/Makefile.orig csw/mgar/pkg/svclog/trunk/Makefile csw/mgar/pkg/svnmailer/trunk/Makefile csw/mgar/pkg/svnstat/trunk/Makefile csw/mgar/pkg/swaks/trunk/Makefile csw/mgar/pkg/swftools/trunk/Makefile csw/mgar/pkg/swig/trunk/Makefile csw/mgar/pkg/sword/trunk/Makefile csw/mgar/pkg/swtlibs/trunk/Makefile csw/mgar/pkg/synergy/trunk/Makefile csw/mgar/pkg/sysbench/trunk/Makefile csw/mgar/pkg/syslog_ng/trunk/Makefile csw/mgar/pkg/sysstat/trunk/Makefile csw/mgar/pkg/system-tray-applet/trunk/Makefile csw/mgar/pkg/taglib/trunk/Makefile csw/mgar/pkg/taglib_gcc/trunk/Makefile csw/mgar/pkg/tcl/trunk/Makefile csw/mgar/pkg/tcl85/trunk/Makefile csw/mgar/pkg/tcpdrop/trunk/Makefile csw/mgar/pkg/tcpdump/trunk/Makefile csw/mgar/pkg/tcpflow/trunk/Makefile csw/mgar/pkg/tcpreplay/trunk/Makefile csw/mgar/pkg/tcpstat/trunk/Makefile csw/mgar/pkg/tcpwrappers/trunk/Makefile csw/mgar/pkg/tcsh/trunk/Makefile csw/mgar/pkg/template/trunk/Makefile csw/mgar/pkg/texinfo/trunk/Makefile csw/mgar/pkg/textutils/trunk/Makefile csw/mgar/pkg/thrift/trunk/Makefile csw/mgar/pkg/thunderbird/branches/thunderbird3-packaging/Makefile csw/mgar/pkg/thunderbird/trunk/Makefile csw/mgar/pkg/thunderbird-l10n/trunk/Makefile csw/mgar/pkg/tiff/trunk/Makefile csw/mgar/pkg/tig/trunk/Makefile csw/mgar/pkg/tightvnc/branches/tightvnc-1.5/Makefile csw/mgar/pkg/tightvnc/trunk/Makefile csw/mgar/pkg/tin/trunk/Makefile csw/mgar/pkg/tinyca/trunk/Makefile csw/mgar/pkg/tk/trunk/Makefile csw/mgar/pkg/tkcvs/trunk/Makefile csw/mgar/pkg/tkdiff/trunk/Makefile csw/mgar/pkg/tme/trunk/Makefile csw/mgar/pkg/tmpreaper/trunk/Makefile csw/mgar/pkg/tmpwatch/trunk/Makefile csw/mgar/pkg/tmux/branches/tmux-broken-man-location/Makefile csw/mgar/pkg/tmux/trunk/Makefile csw/mgar/pkg/tnef/trunk/Makefile csw/mgar/pkg/tofrodos/trunk/Makefile csw/mgar/pkg/tomcat4/trunk/Makefile csw/mgar/pkg/tomcat5/trunk/Makefile csw/mgar/pkg/tomcat6/branches/ihsan/Makefile csw/mgar/pkg/tomcat6/trunk/Makefile csw/mgar/pkg/tomcat7/trunk/Makefile csw/mgar/pkg/top/trunk/Makefile csw/mgar/pkg/trac/trunk/Makefile csw/mgar/pkg/trafshow/trunk/Makefile csw/mgar/pkg/transmission/trunk/Makefile csw/mgar/pkg/tree/trunk/Makefile csw/mgar/pkg/tsclient/trunk/Makefile csw/mgar/pkg/tunctl/trunk/Makefile csw/mgar/pkg/tuntap/trunk/Makefile csw/mgar/pkg/twolame/trunk/Makefile csw/mgar/pkg/ucarp/trunk/Makefile csw/mgar/pkg/ufraw/trunk/Makefile csw/mgar/pkg/unbound/trunk/Makefile csw/mgar/pkg/unclutter/trunk/Makefile csw/mgar/pkg/unixodbc/trunk/Makefile csw/mgar/pkg/unrar/trunk/Makefile csw/mgar/pkg/unrtf/trunk/Makefile csw/mgar/pkg/unzip/trunk/Makefile csw/mgar/pkg/urt/trunk/Makefile csw/mgar/pkg/urxvt/trunk/Makefile csw/mgar/pkg/v8/trunk/Makefile csw/mgar/pkg/varnish/trunk/Makefile csw/mgar/pkg/vim/trunk/Makefile csw/mgar/pkg/vixiecron/trunk/Makefile csw/mgar/pkg/vorbistools/trunk/Makefile csw/mgar/pkg/vsftpd/trunk/Makefile csw/mgar/pkg/vttest/trunk/Makefile csw/mgar/pkg/w3m/trunk/Makefile csw/mgar/pkg/watch/trunk/Makefile csw/mgar/pkg/wavpack/trunk/Makefile csw/mgar/pkg/wdiff/trunk/Makefile csw/mgar/pkg/webfs/trunk/Makefile csw/mgar/pkg/webkit/trunk/Makefile csw/mgar/pkg/webmin/trunk/Makefile csw/mgar/pkg/websvn/trunk/Makefile csw/mgar/pkg/wesnoth/trunk/Makefile csw/mgar/pkg/wget/trunk/Makefile csw/mgar/pkg/wgetpaste/trunk/Makefile csw/mgar/pkg/which/trunk/Makefile csw/mgar/pkg/wireshark/trunk/Makefile csw/mgar/pkg/wmf/trunk/Makefile csw/mgar/pkg/wput/trunk/Makefile csw/mgar/pkg/wxwidgets/branches/wxwidgets-2.8.10-full-fix-ticket-10660/Makefile csw/mgar/pkg/wxwidgets/trunk/Makefile csw/mgar/pkg/x11/Makefile csw/mgar/pkg/x11/individual/Makefile csw/mgar/pkg/x11/individual/x11_evieextproto/trunk/Makefile csw/mgar/pkg/x11/individual/x11_fontcacheproto/trunk/Makefile csw/mgar/pkg/x11/individual/x11_printproto/trunk/Makefile csw/mgar/pkg/x11/individual/x11_trapproto/trunk/Makefile csw/mgar/pkg/x11/individual/x11_xf86miscproto/trunk/Makefile csw/mgar/pkg/x11/individual/x11_xf86rushproto/trunk/Makefile csw/mgar/pkg/x11/lib/Makefile csw/mgar/pkg/x11/lib/libdmx/trunk/Makefile csw/mgar/pkg/x11/lib/libfontenc/trunk/Makefile csw/mgar/pkg/x11/lib/libfs/trunk/Makefile csw/mgar/pkg/x11/lib/libice/trunk/Makefile csw/mgar/pkg/x11/lib/libpthread-stubs/trunk/Makefile csw/mgar/pkg/x11/lib/libsm/trunk/Makefile csw/mgar/pkg/x11/lib/libx11/trunk/Makefile csw/mgar/pkg/x11/lib/libxau/trunk/Makefile csw/mgar/pkg/x11/lib/libxaw/trunk/Makefile csw/mgar/pkg/x11/lib/libxcomposite/trunk/Makefile csw/mgar/pkg/x11/lib/libxcursor/trunk/Makefile csw/mgar/pkg/x11/lib/libxdamage/trunk/Makefile csw/mgar/pkg/x11/lib/libxdmcp/trunk/Makefile csw/mgar/pkg/x11/lib/libxext/trunk/Makefile csw/mgar/pkg/x11/lib/libxfixes/trunk/Makefile csw/mgar/pkg/x11/lib/libxfont/trunk/Makefile csw/mgar/pkg/x11/lib/libxft/trunk/Makefile csw/mgar/pkg/x11/lib/libxi/trunk/Makefile csw/mgar/pkg/x11/lib/libxinerama/trunk/Makefile csw/mgar/pkg/x11/lib/libxkbfile/trunk/Makefile csw/mgar/pkg/x11/lib/libxklavier/trunk/Makefile csw/mgar/pkg/x11/lib/libxmu/trunk/Makefile csw/mgar/pkg/x11/lib/libxpm/trunk/Makefile csw/mgar/pkg/x11/lib/libxrandr/trunk/Makefile csw/mgar/pkg/x11/lib/libxres/trunk/Makefile csw/mgar/pkg/x11/lib/libxscrnsaver/trunk/Makefile csw/mgar/pkg/x11/lib/libxt/trunk/Makefile csw/mgar/pkg/x11/lib/libxtst/trunk/Makefile csw/mgar/pkg/x11/lib/libxv/trunk/Makefile csw/mgar/pkg/x11/lib/libxvmc/trunk/Makefile csw/mgar/pkg/x11/lib/libxxf86dga/trunk/Makefile csw/mgar/pkg/x11/lib/libxxf86vm/trunk/Makefile csw/mgar/pkg/x11/lib/xrender/trunk/Makefile csw/mgar/pkg/x11/lib/xtrans/trunk/Makefile csw/mgar/pkg/x11/lib-old/Makefile csw/mgar/pkg/x11/lib-old/libxfontcache/trunk/Makefile csw/mgar/pkg/x11/lib-old/libxxf86misc/trunk/Makefile csw/mgar/pkg/x11/liblbxutil/trunk/Makefile csw/mgar/pkg/x11/liboldx/trunk/Makefile csw/mgar/pkg/x11/libwindowswm/trunk/Makefile csw/mgar/pkg/x11/libxevie/trunk/Makefile csw/mgar/pkg/x11/libxkbui/trunk/Makefile csw/mgar/pkg/x11/libxp/trunk/Makefile csw/mgar/pkg/x11/libxprintapputil/trunk/Makefile csw/mgar/pkg/x11/libxprintutil/trunk/Makefile csw/mgar/pkg/x11/libxtrap/trunk/Makefile csw/mgar/pkg/x11/proto/Makefile csw/mgar/pkg/x11/proto/x11_applewmproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_bigreqsproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_compositeproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_damageproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_dmxproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_dri2proto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_fixesproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_fontsproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_glproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_inputproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_kbproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_randrproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_recordproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_renderproto/branches/renderproto-project-x11-reloaded/Makefile csw/mgar/pkg/x11/proto/x11_renderproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_resourceproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_scrnsaverproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_videoproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_windowswmproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_xcmiscproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_xextproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_xf86bigfontproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_xf86dgaproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_xf86driproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_xf86vidmodeproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_xineramaproto/trunk/Makefile csw/mgar/pkg/x11/proto/x11_xproto/trunk/Makefile csw/mgar/pkg/x11/proto-old/Makefile csw/mgar/pkg/x11/x11common/trunk/Makefile csw/mgar/pkg/x11vnc/trunk/Makefile csw/mgar/pkg/x3270/trunk/Makefile csw/mgar/pkg/xapian-bindings/trunk/Makefile csw/mgar/pkg/xapian-core/trunk/Makefile csw/mgar/pkg/xbattle/trunk/Makefile csw/mgar/pkg/xbill/trunk/Makefile csw/mgar/pkg/xboard/trunk/Makefile csw/mgar/pkg/xchat/trunk/Makefile csw/mgar/pkg/xchm/trunk/Makefile csw/mgar/pkg/xearth/trunk/Makefile csw/mgar/pkg/xerces-c/trunk/Makefile csw/mgar/pkg/xfce/Makefile csw/mgar/pkg/xfce/appfinder/trunk/Makefile csw/mgar/pkg/xfce/dbh/trunk/Makefile csw/mgar/pkg/xfce/desktop/trunk/Makefile csw/mgar/pkg/xfce/devtools/trunk/Makefile csw/mgar/pkg/xfce/exo/trunk/Makefile csw/mgar/pkg/xfce/gtk-xfce-engine/trunk/Makefile csw/mgar/pkg/xfce/icon-theme/trunk/Makefile csw/mgar/pkg/xfce/libxfce4mcs/trunk/Makefile csw/mgar/pkg/xfce/libxfce4mcs/trunk/files/CSWlibxfce4mcs.gspec csw/mgar/pkg/xfce/libxfce4mcs/trunk/files/CSWlibxfce4mcsdev.gspec csw/mgar/pkg/xfce/libxfce4mcs/trunk/files/CSWlibxfce4mcsdoc.gspec csw/mgar/pkg/xfce/libxfce4menu/trunk/Makefile csw/mgar/pkg/xfce/libxfce4util/trunk/Makefile csw/mgar/pkg/xfce/libxfcegui4/trunk/Makefile csw/mgar/pkg/xfce/mcs-manager/trunk/Makefile csw/mgar/pkg/xfce/mcs-plugins/trunk/Makefile csw/mgar/pkg/xfce/mixer/trunk/Makefile csw/mgar/pkg/xfce/mousepad/trunk/Makefile csw/mgar/pkg/xfce/orage/trunk/Makefile csw/mgar/pkg/xfce/panel/trunk/Makefile csw/mgar/pkg/xfce/print/trunk/Makefile csw/mgar/pkg/xfce/session/trunk/Makefile csw/mgar/pkg/xfce/terminal/trunk/Makefile csw/mgar/pkg/xfce/thunar/trunk/Makefile csw/mgar/pkg/xfce/utils/trunk/Makefile csw/mgar/pkg/xfce/xfconf/trunk/Makefile csw/mgar/pkg/xfce/xfwm4/trunk/Makefile csw/mgar/pkg/xfce/xfwm4-themes/trunk/Makefile csw/mgar/pkg/xfig/trunk/Makefile csw/mgar/pkg/xine-ui/trunk/Makefile csw/mgar/pkg/xinetd/trunk/Makefile csw/mgar/pkg/xjobs/trunk/Makefile csw/mgar/pkg/xmahjongg/trunk/Makefile csw/mgar/pkg/xmlrpc_c/trunk/Makefile csw/mgar/pkg/xmlstarlet/trunk/Makefile csw/mgar/pkg/xmlto/trunk/Makefile csw/mgar/pkg/xmms/trunk/Makefile csw/mgar/pkg/xpdf/trunk/Makefile csw/mgar/pkg/xpilot/trunk/Makefile csw/mgar/pkg/xrestop/trunk/Makefile csw/mgar/pkg/xsel/trunk/Makefile csw/mgar/pkg/xsnow/trunk/Makefile csw/mgar/pkg/xterm/trunk/Makefile csw/mgar/pkg/xtide/trunk/Makefile csw/mgar/pkg/xtitle/trunk/Makefile csw/mgar/pkg/xz/trunk/Makefile csw/mgar/pkg/yaml-mode/trunk/Makefile csw/mgar/pkg/yasm/trunk/Makefile csw/mgar/pkg/yaz/trunk/Makefile csw/mgar/pkg/z/trunk/Makefile csw/mgar/pkg/zebra/trunk/Makefile csw/mgar/pkg/zlib/trunk/Makefile csw/mgar/pkg/zsh/trunk/Makefile csw/mgar/pkg/zshdb/trunk/Makefile csw/mgar/pkg/zutils/trunk/Makefile Modified: csw/mgar/pkg/GeoIP/trunk/Makefile =================================================================== --- csw/mgar/pkg/GeoIP/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/GeoIP/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = GeoIP -GARVERSION = 1.4.6 +NAME = GeoIP +VERSION = 1.4.6 CATEGORIES = net DESCRIPTION = GeoIP C API @@ -8,7 +8,7 @@ endef MASTER_SITES = http://geolite.maxmind.com/download/geoip/api/c/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz PACKAGES = CSWgeoip CSWgeoipdevel RUNTIME_DEP_PKGS_CSWgeoip = CSWgeolitedb CSWzlib CSWgcc3corert @@ -19,7 +19,7 @@ SPKG_DESC_CSWgeoipdevel = GeoIP C API development support # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz GARCOMPILER = GCC4 TEST_TARGET = check Modified: csw/mgar/pkg/ImageMagick/branches/64-bit/Makefile =================================================================== --- csw/mgar/pkg/ImageMagick/branches/64-bit/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/ImageMagick/branches/64-bit/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = imagemagick -GARVERSION = 6.5.9 +NAME = imagemagick +VERSION = 6.5.9 GARSUBREV = 5 CATEGORIES = lib @@ -12,9 +12,9 @@ endef MASTER_SITES = ftp://ftp.imagemagick.org/pub/ImageMagick/ -DISTFILES = ImageMagick-$(GARVERSION)-$(GARSUBREV).tar.bz2 +DISTFILES = ImageMagick-$(VERSION)-$(GARSUBREV).tar.bz2 -DISTNAME = ImageMagick-$(GARVERSION)-$(GARSUBREV) +DISTNAME = ImageMagick-$(VERSION)-$(GARSUBREV) SPKG_SOURCEURL = http://www.imagemagick.org @@ -337,7 +337,7 @@ @( if [ ! -r $(INSTALLISADIR)$(libdir)/libMagick.so.10.0.4 ] ; then ln -s libMagick.so.10.0.4 $(INSTALLISADIR)$(libdir)/libMagick.so.10 ; fi ) @( if [ ! -r $(INSTALLISADIR)$(libdir)/libWand.so.10.0.4 ] ; then ln -s libWand.so.10.0.4 $(INSTALLISADIR)$(libdir)/libWand.so.10 ; fi ) @( if [ ! -r $(INSTALLISADIR)$(libdir)/libMagick++.so.10.0.4 ] ; then ln -s libMagick++.so.10.0.4 $(INSTALLISADIR)$(libdir)/libMagick++.so.10 ; fi ) - @ln -s ImageMagick-$(GARVERSION) $(INSTALLISADIR)$(docdir)/ImageMagick + @ln -s ImageMagick-$(VERSION) $(INSTALLISADIR)$(docdir)/ImageMagick @( cd $(INSTALLISADIR)$(libdir) ; gzip -dc $(CURDIR)/$(FILEDIR)/lib_6.2.9_s.tar.gz |tar xf -) @mv $(INSTALLISADIR)$(mandir)/man1/compare.1 $(INSTALLISADIR)$(mandir)/man1/compare2.1 @mv $(INSTALLISADIR)$(bindir)/compare $(INSTALLISADIR)$(bindir)/compare2 @@ -350,7 +350,7 @@ @( if [ ! -r $(INSTALLISADIR)$(libdir)/libMagick.so.10.0.4 ] ; then ln -s libMagick.so.10.0.4 $(INSTALLISADIR)$(libdir)/libMagick.so.10 ; fi ) @( if [ ! -r $(INSTALLISADIR)$(libdir)/libWand.so.10.0.4 ] ; then ln -s libWand.so.10.0.4 $(INSTALLISADIR)$(libdir)/libWand.so.10 ; fi ) @( if [ ! -r $(INSTALLISADIR)$(libdir)/libMagick++.so.10.0.4 ] ; then ln -s libMagick++.so.10.0.4 $(INSTALLISADIR)$(libdir)/libMagick++.so.10 ; fi ) - @ln -s ImageMagick-$(GARVERSION) $(INSTALLISADIR)$(docdir)/ImageMagick + @ln -s ImageMagick-$(VERSION) $(INSTALLISADIR)$(docdir)/ImageMagick @( cd $(INSTALLISADIR)$(libdir) ; gzip -dc $(CURDIR)/$(FILEDIR)/lib_6.2.9_i.tar.gz |tar xf -) @mv $(INSTALLISADIR)$(mandir)/man1/compare.1 $(INSTALLISADIR)$(mandir)/man1/compare2.1 @mv $(INSTALLISADIR)$(bindir)/compare $(INSTALLISADIR)$(bindir)/compare2 Modified: csw/mgar/pkg/ImageMagick/branches/package-split/Makefile =================================================================== --- csw/mgar/pkg/ImageMagick/branches/package-split/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/ImageMagick/branches/package-split/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = imagemagick -GARVERSION = 6.6.0 +NAME = imagemagick +VERSION = 6.6.0 GARSUBREV = 5 CATEGORIES = lib @@ -33,9 +33,9 @@ ARCHALL_CSWimagemagickdoc = 1 MASTER_SITES = ftp://ftp.imagemagick.org/pub/ImageMagick/ -DISTFILES = ImageMagick-$(GARVERSION)-$(GARSUBREV).tar.bz2 +DISTFILES = ImageMagick-$(VERSION)-$(GARSUBREV).tar.bz2 -DISTNAME = ImageMagick-$(GARVERSION)-$(GARSUBREV) +DISTNAME = ImageMagick-$(VERSION)-$(GARSUBREV) SPKG_SOURCEURL = http://www.imagemagick.org @@ -148,7 +148,7 @@ SPKG_REVSTAMP := $(SPKG_REVSTAMP)_rev=$(GARSUBREV) post-install-isa-sparcv8: - @ln -s ImageMagick-$(GARVERSION) $(INSTALLISADIR)$(docdir)/ImageMagick + @ln -s ImageMagick-$(VERSION) $(INSTALLISADIR)$(docdir)/ImageMagick @( cd $(INSTALLISADIR)$(libdir) ; bzip2 -dc $(CURDIR)/$(FILEDIR)/6.2.9.s.tar.bz2 |tar xf -) @( cd $(INSTALLISADIR)$(libdir) ; bzip2 -dc $(CURDIR)/$(FILEDIR)/6.5.2.s.tar.bz2 |tar xf -) @mv $(INSTALLISADIR)$(mandir)/man1/compare.1 $(INSTALLISADIR)$(mandir)/man1/compare2.1 @@ -156,7 +156,7 @@ @$(MAKECOOKIE) post-install-isa-i386: - @ln -s ImageMagick-$(GARVERSION) $(INSTALLISADIR)$(docdir)/ImageMagick + @ln -s ImageMagick-$(VERSION) $(INSTALLISADIR)$(docdir)/ImageMagick @( cd $(INSTALLISADIR)$(libdir) ; bzip2 -dc $(CURDIR)/$(FILEDIR)/6.2.9.i.tar.bz2 |tar xf -) @( cd $(INSTALLISADIR)$(libdir) ; bzip2 -dc $(CURDIR)/$(FILEDIR)/6.5.2.i.tar.bz2 |tar xf -) @mv $(INSTALLISADIR)$(mandir)/man1/compare.1 $(INSTALLISADIR)$(mandir)/man1/compare2.1 Modified: csw/mgar/pkg/ImageMagick/trunk/Makefile =================================================================== --- csw/mgar/pkg/ImageMagick/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/ImageMagick/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = imagemagick -GARVERSION = 6.6.0 +NAME = imagemagick +VERSION = 6.6.0 GARSUBREV = 9 CATEGORIES = lib @@ -12,9 +12,9 @@ endef MASTER_SITES = ftp://ftp.imagemagick.org/pub/ImageMagick/ -DISTFILES = ImageMagick-$(GARVERSION)-$(GARSUBREV).tar.bz2 +DISTFILES = ImageMagick-$(VERSION)-$(GARSUBREV).tar.bz2 -DISTNAME = ImageMagick-$(GARVERSION)-$(GARSUBREV) +DISTNAME = ImageMagick-$(VERSION)-$(GARSUBREV) SPKG_SOURCEURL = http://www.imagemagick.org Modified: csw/mgar/pkg/MailScanner/trunk/Makefile =================================================================== --- csw/mgar/pkg/MailScanner/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/MailScanner/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,8 +1,8 @@ -GARNAME = MailScanner -GARVERSION = 4.77.10 +NAME = MailScanner +VERSION = 4.77.10 RELEASE = 1 -DISTVERSION = $(GARVERSION)-$(RELEASE) -#DISTNAME = $(GARNAME)-$(DISTVERSION) +DISTVERSION = $(VERSION)-$(RELEASE) +#DISTNAME = $(NAME)-$(DISTVERSION) #WORKSRC = $(WORKDIR)/$(DISTNAME) CATEGORIES = net @@ -12,7 +12,7 @@ endef MASTER_SITES = http://www.mailscanner.info/files/4/tar/ -DISTFILES = $(GARNAME)-install-$(DISTVERSION).tar.gz +DISTFILES = $(NAME)-install-$(DISTVERSION).tar.gz #LICENSE = COPYRIGHT @@ -24,7 +24,7 @@ #ARCHALL = 1 # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-install-(\d+(?:\.\d+)*)-\d+.tar.gz +UFILES_REGEX = $(NAME)-install-(\d+(?:\.\d+)*)-\d+.tar.gz #CONFIGURE_SCRIPTS = #BUILD_SCRIPTS = @@ -38,14 +38,14 @@ #SPKG_REVSTAMP := $(SPKG_REVSTAMP)_rev=$(RELEASE) #install-custom: -# @echo " ==> Installing $(GARNAME) (custom)" +# @echo " ==> Installing $(NAME) (custom)" # @ginstall -d $(DESTDIR)/etc/opt/csw/init.d # @cp $(FILEDIR)/CSWbind.cswnamed $(DESTDIR)/etc/opt/csw/init.d/cswnamed # @cp $(FILEDIR)/CSWbind.named.conf.CSW $(DESTDIR)/etc/opt/csw/named.conf.CSW # @ginstall -d $(DESTDIR)/opt/csw/etc/CSWbind # @cp $(FILEDIR)/cswusergroup $(DESTDIR)/opt/csw/etc/CSWbind/ -# @ginstall -d $(DESTDIR)$(docdir)/$(GARNAME) -# @$(foreach DOC,$(DOCLIST),cp $(FILEDIR)/$(DOC) $(DESTDIR)$(docdir)/$(GARNAME);) +# @ginstall -d $(DESTDIR)$(docdir)/$(NAME) +# @$(foreach DOC,$(DOCLIST),cp $(FILEDIR)/$(DOC) $(DESTDIR)$(docdir)/$(NAME);) # ( cd $(WORKSRC) ; \ # gmake DESTDIR=$(DESTDIR) install ) # @ginstall -d $(DESTDIR)/var/opt/csw/named Modified: csw/mgar/pkg/Makefile =================================================================== --- csw/mgar/pkg/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -69,8 +69,8 @@ newpkg-%: @svn mkdir $* $*/tags $*/branches $*/trunk $*/trunk/files @(echo '# $$Id$$'; \ - echo "GARNAME = $*"; \ - echo "GARVERSION = 1.0"; \ + echo "NAME = $*"; \ + echo "VERSION = 1.0"; \ echo "CATEGORIES = category"; \ echo ""; \ echo "DESCRIPTION = Brief description"; \ @@ -82,7 +82,7 @@ echo "DISTFILES = $$(DISTNAME).tar.gz"; \ echo ""; \ echo "# File name regex to get notifications about upstream software releases"; \ - echo "UFILES_REGEX = $$(GARNAME)-(\d+(?:\.\d+)*).tar.gz"; \ + echo "UFILES_REGEX = $$(NAME)-(\d+(?:\.\d+)*).tar.gz"; \ echo ""; \ echo "# If the url used to check for software update is different of MASTER_SITES, then "; \ echo "# uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES"; \ Modified: csw/mgar/pkg/Vispan/trunk/Makefile =================================================================== --- csw/mgar/pkg/Vispan/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/Vispan/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = Vispan -GARVERSION = 3.1.1 +NAME = Vispan +VERSION = 3.1.1 CATEGORIES = cpan DESCRIPTION = VIrus and SPam ANalyser @@ -9,11 +9,11 @@ endef MASTER_SITES = http://www.while.org.uk/component/option,com_docman/task,doc_download/gid,3/Itemid,6/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += $(call admfiles,CSWvispan) # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz RUNTIME_DEP_PKGS = CSWpmgeoippureperl CSWpmnetcidr CSWpmnetdns CSWpmgd CSWpmgdgraph CSWpmnumberformat CSWpmmailsendmail Modified: csw/mgar/pkg/ZSI/trunk/Makefile =================================================================== --- csw/mgar/pkg/ZSI/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/ZSI/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,8 +1,8 @@ # BEWARE: # For now this build recipe relies on gar/v2-skayser for the python category # -GARNAME = ZSI -GARVERSION = 2.0 +NAME = ZSI +VERSION = 2.0 CATEGORIES = python DESCRIPTION = Web services for Python programmers, both client and servers. @@ -20,7 +20,7 @@ MASTER_SITES = $(SF_MIRRORS) SF_PROJ = pywebsvcs/$(DISTNAME) -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz SPKG_SOURCEURL = http://pywebsvcs.sf.net/ PACKAGES = CSWpyzsi Modified: csw/mgar/pkg/a2ps/trunk/Makefile =================================================================== --- csw/mgar/pkg/a2ps/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/a2ps/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,6 +1,6 @@ # : Makefile 9089 2010-03-11 08:34:46Z wahwah $ -GARNAME = a2ps -GARVERSION = 4.13 +NAME = a2ps +VERSION = 4.13 SPKG_VERSION = 4.13b CATEGORIES = apps @@ -10,10 +10,10 @@ endef MASTER_SITES = http://ftp.gnu.org/pub/gnu/a2ps/ -DISTFILES = $(GARNAME)-$(GARVERSION)b.tar.gz +DISTFILES = $(NAME)-$(VERSION)b.tar.gz # File name regex to get notifications about upstream software releases -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz # If the url used to check for software update is different of MASTER_SITES, then # uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES Modified: csw/mgar/pkg/achievo/trunk/Makefile =================================================================== --- csw/mgar/pkg/achievo/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/achievo/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = achievo -GARVERSION = 1.4.3 +NAME = achievo +VERSION = 1.4.3 CATEGORIES = apps DESCRIPTION = A flexible web-based resource management tool for business environments @@ -10,10 +10,10 @@ endef MASTER_SITES = http://www.achievo.org/downloads/achievo/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz VENDOR_URL = http://www.achievo.org Modified: csw/mgar/pkg/adobereader/trunk/Makefile =================================================================== --- csw/mgar/pkg/adobereader/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/adobereader/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,21 +1,21 @@ # $Id$ -GARNAME = adobereader -GARVERSION_sparc = 8.1.7 +NAME = adobereader +VERSION_sparc = 8.1.7 FILEVERSION_sparc = 8.1.7 -GARVERSION_i386 = 9.4.1 +VERSION_i386 = 9.4.1 FILEVERSION_i386 = 9.4.1 -GARVERSION = $(GARVERSION_$(GARCH)) +VERSION = $(VERSION_$(GARCH)) CATEGORIES = apps DESCRIPTION = Adobe Acrobat Reader define BLURB endef -MAJORVERSION_sparc = $(shell echo $(GARVERSION_sparc) | cut -d. -f1) -MAJORVERSION_i386 = $(shell echo $(GARVERSION_i386) | cut -d. -f1) +MAJORVERSION_sparc = $(shell echo $(VERSION_sparc) | cut -d. -f1) +MAJORVERSION_i386 = $(shell echo $(VERSION_i386) | cut -d. -f1) -MASTER_SITES_sparc = ftp://ftp.adobe.com/pub/adobe/reader/unix/$(MAJORVERSION_sparc).x/$(GARVERSION_sparc)/enu/ -MASTER_SITES_i386 = ftp://ftp.adobe.com/pub/adobe/reader/unix/$(MAJORVERSION_i386).x/$(GARVERSION_i386)/enu/ +MASTER_SITES_sparc = ftp://ftp.adobe.com/pub/adobe/reader/unix/$(MAJORVERSION_sparc).x/$(VERSION_sparc)/enu/ +MASTER_SITES_i386 = ftp://ftp.adobe.com/pub/adobe/reader/unix/$(MAJORVERSION_i386).x/$(VERSION_i386)/enu/ MASTER_SITES = $(MASTER_SITES_sparc) $(MASTER_SITES_i386) DISTFILES_sparc = AdobeReader_enu-$(FILEVERSION_sparc)-1.sparc.tar.bz2 DISTFILES_i386 = AdbeRdr$(FILEVERSION_i386)-1_i486solaris_enu.tar.bz2 @@ -24,7 +24,7 @@ DISTNAME = AdobeReader # File name regex to get notifications about upstream software releases -# UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +# UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz # If the url used to check for software update is different of MASTER_SITES, then # uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES Modified: csw/mgar/pkg/aide/trunk/Makefile =================================================================== --- csw/mgar/pkg/aide/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/aide/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = aide -GARVERSION = 0.13.1 +NAME = aide +VERSION = 0.13.1 CATEGORIES = utils DESCRIPTION = Advanced Intrusion Detection Environment @@ -10,7 +10,7 @@ endef MASTER_SITES = $(SF_MIRRORS) -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += aide.conf # Disable Sun ACLs for now until bug #2887984 is fixed: @@ -22,7 +22,7 @@ PATCHFILES += 0002-Add-missing-prototypes-for-db_sql.patch # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz RUNTIME_DEP_PKGS = CSWcurlrt CSWgcrypt CSWgpgerr CSWlibidn CSWlibmhash CSWlibpq RUNTIME_DEP_PKGS += CSWoldaprt CSWosslrt CSWzlib Modified: csw/mgar/pkg/alarm-clock/trunk/Makefile =================================================================== --- csw/mgar/pkg/alarm-clock/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/alarm-clock/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = alarm-clock -GARVERSION = 1.4.1 +NAME = alarm-clock +VERSION = 1.4.1 CATEGORIES = gnome DESCRIPTION = A simple interface for reminding about birthdays, appointments and important dates @@ -10,10 +10,10 @@ endef MASTER_SITES = http://alarm-clock.pl/downloads/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.bz2 +DISTFILES = $(NAME)-$(VERSION).tar.bz2 # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.bz2 +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 PACKAGES = CSWalarmclock CATALOGNAME = alarmclock Modified: csw/mgar/pkg/alpine/trunk/Makefile =================================================================== --- csw/mgar/pkg/alpine/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/alpine/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = alpine -GARVERSION = 2.00 +NAME = alpine +VERSION = 2.00 CATEGORIES = apps DESCRIPTION = Alpine Messaging System @@ -14,7 +14,7 @@ MASTER_SITES = ftp://ftp.cac.washington.edu/alpine/ SPKG_SOURCEURL = http://www.washington.edu/alpine/ -DISTFILES = $(GARNAME).tar.bz2 +DISTFILES = $(NAME).tar.bz2 PACKAGES = CSWalpine CATALOGNAME_CSWalpine = alpine @@ -22,7 +22,7 @@ # We define upstream file regex so we can be notifed of new # upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.bz2 +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 ## Needs gcc to compile imap support since ucbcc ## does not work on the buildfarm. GCC 4 does not work Modified: csw/mgar/pkg/alternatives/branches/alternatives-gar/Makefile =================================================================== --- csw/mgar/pkg/alternatives/branches/alternatives-gar/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/alternatives/branches/alternatives-gar/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,6 +1,6 @@ # : Makefile 9089 2010-03-11 08:34:46Z wahwah $ -GARNAME = alternatives -GARVERSION = 1.0 +NAME = alternatives +VERSION = 1.0 CATEGORIES = utils DESCRIPTION = Alternatives implementation specific to OpenCSW @@ -14,7 +14,7 @@ DISTFILES += LICENSE-2.0.txt # File name regex to get notifications about upstream software releases -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz LICENSE = LICENSE-2.0.txt Modified: csw/mgar/pkg/amanda/trunk/Makefile =================================================================== --- csw/mgar/pkg/amanda/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/amanda/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,6 +1,6 @@ # : Makefile 9089 2010-03-11 08:34:46Z wahwah $ -GARNAME = amanda -GARVERSION = 3.2.0 +NAME = amanda +VERSION = 3.2.0 CATEGORIES = apps DESCRIPTION = The Advanced Maryland Automatic Network Disk Archiver @@ -8,10 +8,10 @@ endef MASTER_SITES = $(SF_MIRROR) -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # File name regex to get notifications about upstream software releases -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz DEP_PKGS = CSWperl CSWreadline CSWlibidn CSWglib2 CSWsasl CSWlibcares CSWggettextrt CSWzlib CSWoldaprt DEP_PKGS += CSWcurlrt CSWosslrt CSWlibnet Modified: csw/mgar/pkg/amarok/trunk/Makefile =================================================================== --- csw/mgar/pkg/amarok/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/amarok/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = amarok -GARVERSION = 1.4.8 +NAME = amarok +VERSION = 1.4.8 CATEGORIES = apps DESCRIPTION = Amarok is the music player for Linux and Unix with an intuitive interface @@ -8,12 +8,12 @@ is also widely used on other desktop environments endef -MASTER_SITES = ftp://ftp.kde.org/pub/kde/stable/amarok/$(GARVERSION)/src/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.bz2 +MASTER_SITES = ftp://ftp.kde.org/pub/kde/stable/amarok/$(VERSION)/src/ +DISTFILES = $(NAME)-$(VERSION).tar.bz2 DISTFILES += $(call admfiles,CSWamarok,depend) # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.bz2 +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 PATCHFILES = disable-broken-languages.diff PATCHFILES += gpod-stdint.h.diff Modified: csw/mgar/pkg/amavisd-new/trunk/Makefile =================================================================== --- csw/mgar/pkg/amavisd-new/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/amavisd-new/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = amavisd-new -GARVERSION = 2.6.4 +NAME = amavisd-new +VERSION = 2.6.4 CATEGORIES = server DESCRIPTION = Interface between MTA and content checkers @@ -13,13 +13,13 @@ LICENSE = LICENSE MASTER_SITES = http://www.ijs.si/software/amavisd/#download -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += CSWamavisdnew.cswusergroup DISTFILES += CSWamavisdnew.postinstall DISTFILES += CSWamavisdnew.preinstall # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz RUNTIME_DEP_PKGS += CSWbdb47 RUNTIME_DEP_PKGS += CSWperl @@ -69,7 +69,7 @@ INSTALL_SCRIPTS = custom PCONFDIR = $(DESTDIR)/etc/opt/csw -PVARDIR = $(DESTDIR)/var/opt/csw/$(GARNAME) +PVARDIR = $(DESTDIR)/var/opt/csw/$(NAME) AMAVISBIN = amavisd-agent amavisd-nanny amavisd-release p0f-analyzer.pl AMAVISBIN += amavisd-nanny @@ -86,7 +86,7 @@ AMAVISDOC += amavisd.conf-sample install-custom: - echo " ==> Installing $(GARNAME)" + echo " ==> Installing $(NAME)" ginstall -d $(DESTDIR)$(prefix)/etc ginstall -d $(DESTDIR)$(prefix)/bin ginstall -d $(DESTDIR)$(prefix)/sbin Modified: csw/mgar/pkg/apache/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/apache/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = apache -GARVERSION = 1.3.36 +NAME = apache +VERSION = 1.3.36 CATEGORIES = server DESCRIPTION = A high performance Unix-based HTTP server. @@ -9,10 +9,10 @@ endef MASTER_SITES = http://www.ibiblio.org/pub/mirrors/apache/httpd/ -DISTFILES = $(GARNAME)_$(GARVERSION).tar.gz +DISTFILES = $(NAME)_$(VERSION).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)_(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)_(\d+(?:\.\d+)*).tar.gz CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += --with-apr=$(prefix) Modified: csw/mgar/pkg/apache2/branches/fs-rework/Makefile =================================================================== --- csw/mgar/pkg/apache2/branches/fs-rework/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/apache2/branches/fs-rework/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,7 +1,7 @@ # $Id$ -GARNAME = httpd -GARVERSION = 2.2.17 +NAME = httpd +VERSION = 2.2.17 CATEGORIES = server DESCRIPTION = A high performance HTTP server. @@ -32,7 +32,7 @@ # Visitor information SPKG_SOURCEURL = http://httpd.apache.org/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += config.layout # Standard package bits DISTFILES += CSWapache2.killproc cswapache2 @@ -44,7 +44,7 @@ DISTFILES += README.CSW.apache2 README.CSW.ap2_prefork DISTFILES += README.CSW.apache2rt -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz # The PACKAGES variable tell GAR which packages to build PACKAGES = CSWapache2 CSWapache2-devel CSWapache2-manual CSWap2suexec @@ -208,9 +208,9 @@ FIXCONFIG_RMPATHS = $(DESTDIR) pre-configure-modulated: - (cd $(WORKDIR)/$(GARNAME)-$(GARVERSION); ./buildconf) + (cd $(WORKDIR)/$(NAME)-$(VERSION); ./buildconf) @gsed -e s,INSTALL_PREFIX,$(prefix)/apache2,g \ - $(WORKDIR)/config.layout > $(WORKDIR)/$(GARNAME)-$(GARVERSION)/config.layout + $(WORKDIR)/config.layout > $(WORKDIR)/$(NAME)-$(VERSION)/config.layout @$(MAKECOOKIE) Modified: csw/mgar/pkg/apache2/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache2/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/apache2/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,7 +1,7 @@ # $Id$ -GARNAME = httpd -GARVERSION = 2.2.17 +NAME = httpd +VERSION = 2.2.17 CATEGORIES = server DESCRIPTION = A high performance HTTP server. @@ -32,7 +32,7 @@ # Visitor information SPKG_SOURCEURL = http://httpd.apache.org/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += config.layout # Standard package bits DISTFILES += CSWapache2.killproc cswapache2 @@ -45,7 +45,7 @@ DISTFILES += README.CSW.apache2 README.CSW.ap2_prefork DISTFILES += README.CSW.apache2rt -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz # The PACKAGES variable tell GAR which packages to build PACKAGES = CSWapache2 CSWapache2-devel CSWapache2-manual CSWap2suexec @@ -210,7 +210,7 @@ pre-configure-modulated: @gsed -e s,INSTALL_PREFIX,$(prefix)/apache2,g \ - $(WORKDIR)/config.layout > $(WORKDIR)/$(GARNAME)-$(GARVERSION)/config.layout + $(WORKDIR)/config.layout > $(WORKDIR)/$(NAME)-$(VERSION)/config.layout @$(MAKECOOKIE) post-install-modulated: rename-httpd copy-local-files copy-readmes Modified: csw/mgar/pkg/apache2-worker/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache2-worker/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/apache2-worker/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = httpd -GARVERSION = 2.2.13 +NAME = httpd +VERSION = 2.2.13 CATEGORIES = server DESCRIPTION = A high performance Unix-based HTTP server. @@ -23,7 +23,7 @@ include ../../apache2/trunk/files/rules.mk pre-configure-modulated: - (cd $(WORKDIR)/$(GARNAME)-$(GARVERSION); \ + (cd $(WORKDIR)/$(NAME)-$(VERSION); \ ./buildconf) # Build Configuration Modified: csw/mgar/pkg/apcupsd/trunk/Makefile =================================================================== --- csw/mgar/pkg/apcupsd/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/apcupsd/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = apcupsd -GARVERSION = 3.14.8 +NAME = apcupsd +VERSION = 3.14.8 CATEGORIES = utils GARCOMPILER = GCC3 @@ -13,13 +13,13 @@ endef MASTER_SITES = $(SF_MIRRORS) -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += cswapcupsd LICENSE = COPYING # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz RUNTIME_DEP_PKGS = CSWtcpwrap Modified: csw/mgar/pkg/apg/trunk/Makefile =================================================================== --- csw/mgar/pkg/apg/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/apg/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = apg -GARVERSION = 2.2.3 +NAME = apg +VERSION = 2.2.3 CATEGORIES = utils DESCRIPTION = Automated Password Generator @@ -7,11 +7,11 @@ endef MASTER_SITES = http://www.adel.nursat.kz/apg/download/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += $(call admfiles,CSWapg) # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = download/$(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = download/$(NAME)-(\d+(?:\.\d+)*).tar.gz UPSTREAM_MASTER_SITES = http://www.adel.nursat.kz/apg/download.shtml CONFIGURE_ARGS = $(DIRPATHS) Modified: csw/mgar/pkg/apr/trunk/Makefile =================================================================== --- csw/mgar/pkg/apr/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/apr/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = apr -GARVERSION = 1.4.2 +NAME = apr +VERSION = 1.4.2 CATEGORIES = lib DESCRIPTION = Apache Portable Runtime @@ -10,14 +10,14 @@ endef MASTER_SITES = http://apache.crihan.fr/dist/apr/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz PATCHFILES = 0001-Force-newly-built-libs-in-testsuite.patch LICENSE = LICENSE # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz BUILD64 = 1 Modified: csw/mgar/pkg/apr-iconv/trunk/Makefile =================================================================== --- csw/mgar/pkg/apr-iconv/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/apr-iconv/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = apr-iconv -GARVERSION = 1.2.1 +NAME = apr-iconv +VERSION = 1.2.1 CATEGORIES = lib DESCRIPTION = Apache Portable Runtime Utilities @@ -10,11 +10,11 @@ endef MASTER_SITES = http://apache.crihan.fr/dist/apr/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz LICENSE = LICENSE # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += --with-apr=$(prefix)/bin/apr-1-config Modified: csw/mgar/pkg/apr-util/trunk/Makefile =================================================================== --- csw/mgar/pkg/apr-util/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/apr-util/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = apr-util -GARVERSION = 1.3.10 +NAME = apr-util +VERSION = 1.3.10 CATEGORIES = lib DESCRIPTION = Apache Portable Runtime Utilities @@ -10,7 +10,7 @@ endef MASTER_SITES = http://apache.crihan.fr/dist/apr/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz PATCHFILES = 0001-Make-sure-to-find-newly-built-libs-earlier.patch @@ -23,7 +23,7 @@ RUNTIME_DEP_PKGS += CSWbdb48 CSWoldaprt # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz # We need this to get bdb48/lib into the runpath EXTRA_LIB = $(prefix)/bdb48/lib Modified: csw/mgar/pkg/argtable/trunk/Makefile =================================================================== --- csw/mgar/pkg/argtable/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/argtable/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = argtable -GARVERSION = 2.12 +NAME = argtable +VERSION = 2.12 CATEGORIES = utils DESCRIPTION = Parsing GNU style command line options with a minimum of fuss @@ -14,11 +14,11 @@ endef MASTER_SITES = $(SF_MIRROR) -DISTNAME = $(GARNAME)$(subst .,-,$(GARVERSION)) +DISTNAME = $(NAME)$(subst .,-,$(VERSION)) DISTFILES = $(DISTNAME).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz VENDOR_URL = http://argtable.sourceforge.net/ Modified: csw/mgar/pkg/arpwatch/trunk/Makefile =================================================================== --- csw/mgar/pkg/arpwatch/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/arpwatch/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = arpwatch -GARVERSION = 2.1a15 +NAME = arpwatch +VERSION = 2.1a15 CATEGORIES = server DESCRIPTION = A network monitoring tool for tracking IP/MAC addresses on a network. @@ -8,13 +8,13 @@ endef MASTER_SITES = ftp://ftp.ee.lbl.gov/ -DISTFILES = $(GARNAME).tar.gz +DISTFILES = $(NAME).tar.gz DISTFILES += $(call admfiles,CSWarpwatch,depend prototype) # Smf/init stuffs DISTFILES += cswarpwatch.xml svc-cswarpwatch cswarpwatch arpwatch.conf # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz # This patch add an system header include # in arpwatch.h so u_int32 is defined @@ -56,6 +56,6 @@ post-install: @echo " ==> Running make install-man in $(WORKSRC)" $(INSTALL_ENV) $(MAKE) DESTDIR=$(DESTDIR) $(foreach TTT,$(INSTALL_OVERRIDE_DIRS),$(TTT)="$(DESTDIR)$($(TTT))") -C $(WORKSRC) $(INSTALL_ARGS) install-man - @ginstall -D $(WORKSRC)/ethercodes.dat $(DESTDIR)$(sharedstatedir)/$(GARNAME)/ethercodes.dat + @ginstall -D $(WORKSRC)/ethercodes.dat $(DESTDIR)$(sharedstatedir)/$(NAME)/ethercodes.dat @$(MAKECOOKIE) Modified: csw/mgar/pkg/arts/trunk/Makefile =================================================================== --- csw/mgar/pkg/arts/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/arts/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = arts -GARVERSION = 1.5.2 +NAME = arts +VERSION = 1.5.2 CATEGORIES = kde DESCRIPTION = Analog RealTime Synthesizer for KDE (gcc3) Modified: csw/mgar/pkg/asciidoc/trunk/Makefile =================================================================== --- csw/mgar/pkg/asciidoc/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/asciidoc/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = asciidoc -GARVERSION = 8.6.1 +NAME = asciidoc +VERSION = 8.6.1 CATEGORIES = utils DESCRIPTION = An Documentation Generator @@ -21,7 +21,7 @@ RUNTIME_DEP_PKGS_CSWasciidoc = CSWpython CSWggetopt MASTER_SITES = $(SF_MIRRORS) -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += $(AUTOFILES) PATCHFILES = handle-csw-etc-paths.patch Modified: csw/mgar/pkg/audiofile/trunk/Makefile =================================================================== --- csw/mgar/pkg/audiofile/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/audiofile/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = audiofile -GARVERSION = 0.2.7 +NAME = audiofile +VERSION = 0.2.7 CATEGORIES = lib DESCRIPTION = Silicon Graphics Audio File Library @@ -13,13 +13,13 @@ endef MASTER_SITES = http://www.68k.org/~michael/audiofile/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # Delivered from the Michael Pruett (upstream author) PATCHFILES = 0001-Add-missing-headers-for-C99.patch # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz BUILD64 = 1 Modified: csw/mgar/pkg/augeas/trunk/Makefile =================================================================== --- csw/mgar/pkg/augeas/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/augeas/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = augeas -GARVERSION = 0.7.0 +NAME = augeas +VERSION = 0.7.0 CATEGORIES = lib DESCRIPTION = A configuration editing tool @@ -10,11 +10,11 @@ endef MASTER_SITES = http://augeas.net/download/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz PATCHFILES = 0001-Do-not-use-_N-already-taken-on-Solaris.patch PATCHFILES += 0002-Hack-in-isblank-as-gnutools-dont-seem-to-be-used.patch -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz VENDOR_URL = http://augeas.net Modified: csw/mgar/pkg/authz-tools/trunk/Makefile =================================================================== --- csw/mgar/pkg/authz-tools/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/authz-tools/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = authz-tools -GARVERSION = 0.6.1 +NAME = authz-tools +VERSION = 0.6.1 CATEGORIES = utils DESCRIPTION = tools to manipulate authz files @@ -14,12 +14,12 @@ # Source files MASTER_SITES = http://only.mawhrin.net/~mss/thingies/authz/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz #DISTFILES += $(call admfiles,CSWauthztools,depend,prototype) DISTFILES += $(call admfiles,CSWauthztools,) # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz CONFIGURE_SCRIPTS = BUILD_SCRIPTS = Modified: csw/mgar/pkg/autobench/trunk/Makefile =================================================================== --- csw/mgar/pkg/autobench/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/autobench/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = autobench -GARVERSION = 2.1.2 +NAME = autobench +VERSION = 2.1.2 CATEGORIES = apps DESCRIPTION = Wrapper around httperf which automates the benchmarking process @@ -16,8 +16,8 @@ VENDOR_URL = http://www.xenoclast.org/autobench/ MASTER_SITES = http://www.xenoclast.org/autobench/downloads/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz LICENSE = LICENCE @@ -33,7 +33,7 @@ # to pre-populate a user config, so we move it to examples BINDIR=$(DESTDIR)$(bindir) MANDIR=$(DESTDIR)$(mandir)/man1 -ETCDIR=$(DESTDIR)$(docdir)/$(GARNAME)/examples +ETCDIR=$(DESTDIR)$(docdir)/$(NAME)/examples INSTALL_EXPORTS=BINDIR MANDIR ETCDIR EXTRA_PAX_ARGS = '-s,ChangeLog$$,changelog,p' @@ -47,7 +47,7 @@ $(WORKSRC)/autobench_admin @$(MAKECOOKIE) -post-install-modulated: DOCDEST=$(DESTDIR)$(docdir)/$(GARNAME) +post-install-modulated: DOCDEST=$(DESTDIR)$(docdir)/$(NAME) post-install-modulated: DOCS=ChangeLog post-install-modulated: mkdir -p $(DOCDEST) Modified: csw/mgar/pkg/autoconf/trunk/Makefile =================================================================== --- csw/mgar/pkg/autoconf/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/autoconf/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = autoconf -GARVERSION = 2.68 +NAME = autoconf +VERSION = 2.68 CATEGORIES = devel DESCRIPTION = GNU auto-configuration tool @@ -11,9 +11,9 @@ endef MASTER_SITES = $(GNU_MIRROR) -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz PATCHFILES = 0001-Prefer-CSW-tools.patch Modified: csw/mgar/pkg/automake/trunk/Makefile =================================================================== --- csw/mgar/pkg/automake/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/automake/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,9 +1,9 @@ -GARNAME = automake -GARVERSION = 1.11.1 +NAME = automake +VERSION = 1.11.1 CATEGORIES = devel -EXTRA_MODULATORS = GARVERSION -MODULATIONS_GARVERSION = 1.6.3 1.7.9 1.8.5 1.9.6 1.10.3 1.11.1 +EXTRA_MODULATORS = VERSION +MODULATIONS_VERSION = 1.6.3 1.7.9 1.8.5 1.9.6 1.10.3 1.11.1 DESCRIPTION = A tool for automatically generating Makefiles. define BLURB @@ -19,12 +19,12 @@ endef MASTER_SITES = $(GNU_MIRROR) -SOURCEFILES = $(foreach VERSION,$(MODULATIONS_GARVERSION),$(GARNAME)-$(VERSION).tar.gz) +SOURCEFILES = $(foreach VERSION,$(MODULATIONS_VERSION),$(NAME)-$(VERSION).tar.gz) DISTFILES = $(SOURCEFILES) POSTMSG = $(docdir)/automake/CSWautomake.postmsg DISTFILES += $(notdir $(POSTMSG)) NOCHECKSUM = $(notdir $(POSTMSG)) -NOEXTRACT = $(filter-out $(GARNAME)-$(GARVERSION).tar.gz, $(SOURCEFILES)) +NOEXTRACT = $(filter-out $(NAME)-$(VERSION).tar.gz, $(SOURCEFILES)) SPKG_SOURCEURL = http://www.gnu.org/software/automake/ @@ -40,7 +40,7 @@ ARCHALL = 1 -$(foreach VERSION,$(MODULATIONS_GARVERSION),$(eval MERGE_SCRIPTS_isa-$(ISA)-garversion-$(VERSION) = copy-all)) +$(foreach VERSION,$(MODULATIONS_VERSION),$(eval MERGE_SCRIPTS_isa-$(ISA)-garversion-$(VERSION) = copy-all)) # These are hardlinks to the versioned versions and will confuse the merging EXTRA_MERGE_EXCLUDE_FILES_isa-sparcv8-garversion-1.6.3 = $(bindir)/automake $(bindir)/aclocal $(infodir)/.* @@ -73,7 +73,7 @@ @(exec >$@; \ echo "There are multiple versions of automake on the system installed:"; \ echo; \ - for VERSION in $(MODULATIONS_GARVERSION); do \ + for VERSION in $(MODULATIONS_VERSION); do \ echo " * automake-$$VERSION"; \ done; \ echo; \ Modified: csw/mgar/pkg/autoproject/trunk/Makefile =================================================================== --- csw/mgar/pkg/autoproject/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/autoproject/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -2,8 +2,8 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ -GARNAME = autoproject -GARVERSION = 0.20 +NAME = autoproject +VERSION = 0.20 CATEGORIES = apps DESCRIPTION = A utility for automated configuration of GNU autotools @@ -20,10 +20,10 @@ endef SPKG_SOURCEURL = http://packages.debian.org/unstable/devel/autoproject -MASTER_SITES = http://ftp.de.debian.org/debian/pool/main/a/$(GARNAME)/ -DISTFILES = $(GARNAME)_$(GARVERSION).orig.tar.gz +MASTER_SITES = http://ftp.de.debian.org/debian/pool/main/a/$(NAME)/ +DISTFILES = $(NAME)_$(VERSION).orig.tar.gz PATCHFILES = 0001-gawk-and-ggrep.patch -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz ARCHALL = 1 RUNTIME_DEP_PKGS = CSWautomake CSWbash CSWgawk CSWggrep TEST_SCRIPTS = Modified: csw/mgar/pkg/autossh/trunk/Makefile =================================================================== --- csw/mgar/pkg/autossh/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/autossh/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -7,8 +7,8 @@ # formats properly (for now see install-preformatted-manpage: below). # * DESTDIR and --with-ssh handling could be fixed. See the Debian # patch tracker: http://patch-tracker.debian.org/package/autossh/1.4b-1 -GARNAME = autossh -GARVERSION = 1.4b +NAME = autossh +VERSION = 1.4b CATEGORIES = net DESCRIPTION = Automatically restart SSH sessions and tunnels @@ -20,7 +20,7 @@ VENDOR_URL = http://www.harding.motd.ca/autossh/ MASTER_SITES = http://www.harding.motd.ca/autossh/ -DISTFILES = $(GARNAME)-$(GARVERSION).tgz +DISTFILES = $(NAME)-$(VERSION).tgz TEST_SCRIPTS = INSTALL_SCRIPTS = custom preformatted-manpage @@ -37,7 +37,7 @@ include gar/category.mk # Makefile install target doesn't honor $(DESTDIR) so we install manually -install-custom: DOCDEST=$(DESTDIR)$(docdir)/$(GARNAME) +install-custom: DOCDEST=$(DESTDIR)$(docdir)/$(NAME) install-custom: DOCS=CHANGES README install-custom: ginstall -d $(DESTDIR)$(bindir) Modified: csw/mgar/pkg/autotrace/trunk/Makefile =================================================================== --- csw/mgar/pkg/autotrace/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/autotrace/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = autotrace -GARVERSION = 0.31.1 +NAME = autotrace +VERSION = 0.31.1 CATEGORIES = apps DESCRIPTION = A program for converting bitmap to vector graphics @@ -7,7 +7,7 @@ endef MASTER_SITES = $(SF_MIRRORS) -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz SPKG_SOURCEURL = http://autotrace.sourceforge.net Modified: csw/mgar/pkg/avantfax/trunk/Makefile =================================================================== --- csw/mgar/pkg/avantfax/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/avantfax/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = avantfax -GARVERSION = 3.1.2 +NAME = avantfax +VERSION = 3.1.2 SF_PROJ = avantfax CATEGORIES = apps @@ -13,7 +13,7 @@ endef MASTER_SITES = $(SF_MIRRORS) -DISTFILES = $(GARNAME)-$(GARVERSION).tgz +DISTFILES = $(NAME)-$(VERSION).tgz DISTFILES += $(call admfiles,CSWavantfax,depend preinstall postinstall) # We define upstream file regex so we can be notifed of new upstream software release @@ -31,7 +31,7 @@ include gar/category.mk install-custom: - @echo " ==> Installing $(GARNAME)" + @echo " ==> Installing $(NAME)" @rm -rf $(DESTDIR)$(sharedstatedir)/www/avantfax @ginstall -d $(DESTDIR)$(sharedstatedir)/www/avantfax @cp -rp $(WORKSRC) $(DESTDIR)$(sharedstatedir)/www/avantfax/htdocs Modified: csw/mgar/pkg/avfs/trunk/Makefile =================================================================== --- csw/mgar/pkg/avfs/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/avfs/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -2,8 +2,8 @@ # # ! build state unknown, work in progress, please verify # -GARNAME = avfs -GARVERSION = 0.9.8 +NAME = avfs +VERSION = 0.9.8 CATEGORIES = apps DESCRIPTION = Virtual file system to access archives, disk images, remote locations @@ -14,8 +14,8 @@ VENDOR_URL = http://avf.sourceforge.net/ MASTER_SITES = $(SF_MIRRORS) SF_PROJ = avf -DISTFILES = $(GARNAME)-$(GARVERSION).tar.bz2 -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.bz2 +DISTFILES = $(NAME)-$(VERSION).tar.bz2 +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 CONFIGURE_ARGS = $(DIRPATHS) Modified: csw/mgar/pkg/awesome/trunk/Makefile =================================================================== --- csw/mgar/pkg/awesome/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/awesome/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -4,16 +4,16 @@ GARFLAVOR = DBG -GARNAME = awesome -GARVERSION = 3.4.4 +NAME = awesome +VERSION = 3.4.4 CATEGORIES = apps DESCRIPTION = A tiling window manager for X define BLURB endef SPKG_SOURCEURL = http://awesome.naquadah.org/ MASTER_SITES = http://awesome.naquadah.org/download/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.bz2 -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.bz2 +DISTFILES = $(NAME)-$(VERSION).tar.bz2 +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 CONFIGURE_SCRIPTS = BUILD_SCRIPTS = awesome INSTALL_SCRIPTS = awesome Modified: csw/mgar/pkg/awstats/trunk/Makefile =================================================================== --- csw/mgar/pkg/awstats/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/awstats/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = awstats -GARVERSION = 6.9 +NAME = awstats +VERSION = 6.9 CATEGORIES = apps DESCRIPTION = Featureful tool for web, ftp and mail server statistics @@ -15,13 +15,13 @@ endef MASTER_SITES = $(SF_MIRRORS) -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += CSWawstats.postinstall PATCHFILES = patch-configdir.diff # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz # If the url used to check for software update is different of MASTER_SITES, then # uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES Modified: csw/mgar/pkg/axel/trunk/Makefile =================================================================== --- csw/mgar/pkg/axel/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/axel/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = axel -GARVERSION = 2.4 +NAME = axel +VERSION = 2.4 CATEGORIES = utils DESCRIPTION = Lightweight command-line download accelerator @@ -15,8 +15,8 @@ SPKG_SOURCEURL = http://axel.alioth.debian.org/ MASTER_SITES = http://alioth.debian.org/frs/download.php/$(DOWNLOAD_ID)/ DOWNLOAD_ID = 3015 -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz # upstream_watch currently uses lftp and lftp only lists files when # they are offered via the SAME scheme as the requested page. The @@ -45,7 +45,7 @@ perl -pi -e 's/-Wall//g' $(WORKSRC)/Makefile @$(MAKECOOKIE) -post-install-modulated: DOCDEST=$(DESTDIR)$(docdir)/$(GARNAME) +post-install-modulated: DOCDEST=$(DESTDIR)$(docdir)/$(NAME) post-install-modulated: ginstall -d $(DOCDEST) cp $(FILEDIR)/changelog.CSW $(DOCDEST) Modified: csw/mgar/pkg/babl/trunk/Makefile =================================================================== --- csw/mgar/pkg/babl/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/babl/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = babl -GARVERSION = 0.1.2 +NAME = babl +VERSION = 0.1.2 CATEGORIES = gnome DESCRIPTION = babl is a dynamic, any to any, pixel format translation library @@ -9,10 +9,10 @@ endef MASTER_SITES = http://ftp.gnome.org/pub/gimp/babl/0.1/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.bz2 +DISTFILES = $(NAME)-$(VERSION).tar.bz2 # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.bz2 +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 # If the url used to check for software update is different of MASTER_SITES, then # uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES Modified: csw/mgar/pkg/balance/trunk/Makefile =================================================================== --- csw/mgar/pkg/balance/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/balance/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = balance -GARVERSION = 3.52 +NAME = balance +VERSION = 3.52 CATEGORIES = net DESCRIPTION = A TCP proxy and load balancer @@ -10,11 +10,11 @@ endef MASTER_SITES = http://www.inlab.de/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz PATCHFILES = 0001-Adjust-Makefile-for-Solaris.patch # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz VENDOR_URL = http://www.inlab.de/balance.html Modified: csw/mgar/pkg/bash/trunk/Makefile =================================================================== --- csw/mgar/pkg/bash/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bash/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -12,8 +12,8 @@ ###### Package information ####### -GARNAME = bash -GARVERSION = 4.1.7 +NAME = bash +VERSION = 4.1.7 CATEGORIES = devel DESCRIPTION = A sh-compatible command language interpreter @@ -21,8 +21,8 @@ GNU Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file. Bash also incorporates useful features from the Korn and C shells (ksh and csh). Bash is intended to be a conforming implementation of the IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2). endef -BASH_VERSION = $(shell echo $(GARVERSION)c | cut -d. -f1-2) -BASH_PATCHLEVEL = $(shell echo -n $(GARVERSION) | cut -d. -f3) +BASH_VERSION = $(shell echo $(VERSION)c | cut -d. -f1-2) +BASH_PATCHLEVEL = $(shell echo -n $(VERSION) | cut -d. -f3) PACKAGES = CSWbash @@ -42,8 +42,8 @@ MASTER_SITES = $(GNU_MIRROR)/bash-$(BASH_VERSION)-patches/ # Main archive location MASTER_SITES += $(GNU_MIRROR) -DISTNAME = $(GARNAME)-$(BASH_VERSION) -DISTFILES = $(GARNAME)-$(BASH_VERSION).tar.gz +DISTNAME = $(NAME)-$(BASH_VERSION) +DISTFILES = $(NAME)-$(BASH_VERSION).tar.gz DISTFILES += changelog.CSW # build action script to modify /etc/shells at package installation and removal time @@ -96,9 +96,9 @@ post-merge: @( for FILE in README RBASH NEWS NOTES POSIX AUTHORS doc/FAQ doc/INTRO; do \ - ginstall -D $(WORKSRC_FIRSTMOD)/$$FILE $(PKGROOT)$(docdir)/$(GARNAME)/`basename $$FILE`; \ + ginstall -D $(WORKSRC_FIRSTMOD)/$$FILE $(PKGROOT)$(docdir)/$(NAME)/`basename $$FILE`; \ done ) - ginstall -D $(WORKDIR_FIRSTMOD)/changelog.CSW $(PKGROOT)$(docdir)/$(GARNAME)/changelog.CSW + ginstall -D $(WORKDIR_FIRSTMOD)/changelog.CSW $(PKGROOT)$(docdir)/$(NAME)/changelog.CSW ginstall -D $(WORKDIR_FIRSTMOD)/shells $(PKGROOT)/etc/shells ( cd "$(PKGROOT)/$(bindir)" && rm -f rbash && ln -sf bash rbash ) rm -f $(PKGROOT)/$(infodir)/bash.info Modified: csw/mgar/pkg/bash_completion/trunk/Makefile =================================================================== --- csw/mgar/pkg/bash_completion/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bash_completion/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -12,8 +12,8 @@ ###### Package information ####### -GARNAME = bash_completion -GARVERSION = 1.1 +NAME = bash_completion +VERSION = 1.1 CATEGORIES = xtra DESCRIPTION = Programmable completion for bash @@ -32,9 +32,9 @@ MASTER_SITES = http://bash-completion.alioth.debian.org/files/ # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(shell echo $(GARNAME) | tr '_' '-')-(\d+).tar.gz +UFILES_REGEX = $(shell echo $(NAME) | tr '_' '-')-(\d+).tar.gz -DISTNAME = $(shell echo $(GARNAME) | tr '_' '-')-$(GARVERSION) +DISTNAME = $(shell echo $(NAME) | tr '_' '-')-$(VERSION) DISTFILES = $(DISTNAME).tar.gz # we automatically include all @@ -68,12 +68,12 @@ merge-additional-docs: @( for FILE in AUTHORS README TODO; do \ - ginstall -D "$(WORKSRC_FIRSTMOD)/$$FILE" "$(PKGROOT)$(docdir)/$(GARNAME)/$$FILE"; \ + ginstall -D "$(WORKSRC_FIRSTMOD)/$$FILE" "$(PKGROOT)$(docdir)/$(NAME)/$$FILE"; \ done ) @$(MAKECOOKIE) merge-changelog: - ginstall -D "$(WORKDIR)/changelog.CSW" "$(PKGROOT)$(docdir)/$(GARNAME)/changelog.CSW" + ginstall -D "$(WORKDIR)/changelog.CSW" "$(PKGROOT)$(docdir)/$(NAME)/changelog.CSW" @$(MAKECOOKIE) include gar/category.mk Modified: csw/mgar/pkg/bashdb/trunk/Makefile =================================================================== --- csw/mgar/pkg/bashdb/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bashdb/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = bashdb -GARVERSION = 4.0-0.4 +NAME = bashdb +VERSION = 4.0-0.4 # PATCHLEVEL = 75eadce CATEGORIES = utils @@ -24,7 +24,7 @@ PATCHFILES += 0006-sig-SunOS.right-is-same-as-sig-41.right.patch # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.bz2 +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 RUNTIME_DEP_PKGS = CSWbash Modified: csw/mgar/pkg/bazaar/trunk/Makefile =================================================================== --- csw/mgar/pkg/bazaar/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bazaar/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = bzr -GARVERSION = 1.17 +NAME = bzr +VERSION = 1.17 #PATCHREV = .1 CATEGORIES = devel @@ -11,11 +11,11 @@ to work, and you can try it out in five minutes. endef -MASTER_SITES = http://launchpad.net/bzr/$(GARVERSION)/$(GARVERSION)$(PATHREV)/+download/ -DISTFILES = $(GARNAME)-$(GARVERSION)$(PATHREV).tar.gz +MASTER_SITES = http://launchpad.net/bzr/$(VERSION)/$(VERSION)$(PATHREV)/+download/ +DISTFILES = $(NAME)-$(VERSION)$(PATHREV).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)$(PATHREV)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)$(PATHREV)-(\d+(?:\.\d+)*).tar.gz RUNTIME_DEP_PKGS += CSWcswclassutils Modified: csw/mgar/pkg/bdb/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bdb/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = db -GARVERSION = 4.7.25 +NAME = db +VERSION = 4.7.25 CATEGORIES = lib DESCRIPTION = Stub package as contents moved to CSWbdb47 Modified: csw/mgar/pkg/bdb3/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb3/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bdb3/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = db -GARVERSION = 3.3.11 +NAME = db +VERSION = 3.3.11 CATEGORIES = lib DESCRIPTION = embedded database libraries and utilities @@ -14,17 +14,17 @@ endef MASTER_SITES = http://download.oracle.com/berkeley-db/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -WORKSRC = $(WORKDIR)/$(GARNAME)-$(GARVERSION)/build_unix +WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION)/build_unix PATCHDIR = $(WORKSRC)/.. PATCHDIRLEVEL = 0 PATCHFILES += $(notdir $(wildcard $(FILEDIR)/patch.*)) -RELEASE = p$(words $(filter patch.$(GARVERSION).%,$(PATCHFILES))) +RELEASE = p$(words $(filter patch.$(VERSION).%,$(PATCHFILES))) #BUILD64 = 1 NOISAEXEC = 1 Modified: csw/mgar/pkg/bdb4/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb4/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bdb4/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = db -GARVERSION = 4.2.52 +NAME = db +VERSION = 4.2.52 CATEGORIES = lib DESCRIPTION = Stub package as contents moved to CSWbdb42 Modified: csw/mgar/pkg/bdb42/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb42/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bdb42/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = db -GARVERSION = 4.2.52 +NAME = db +VERSION = 4.2.52 CATEGORIES = lib DESCRIPTION = embedded database libraries and utilities @@ -14,17 +14,17 @@ endef MASTER_SITES = http://download.oracle.com/berkeley-db/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -WORKSRC = $(WORKDIR)/$(GARNAME)-$(GARVERSION)/build_unix +WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION)/build_unix PATCHDIR = $(WORKSRC)/.. PATCHDIRLEVEL = 0 PATCHFILES += $(notdir $(wildcard $(FILEDIR)/patch.*)) -RELEASE = p$(words $(filter patch.$(GARVERSION).%,$(PATCHFILES))) +RELEASE = p$(words $(filter patch.$(VERSION).%,$(PATCHFILES))) BUILD64 = 1 NOISAEXEC = 1 Modified: csw/mgar/pkg/bdb43/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb43/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bdb43/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = db -GARVERSION = 4.3.29 +NAME = db +VERSION = 4.3.29 CATEGORIES = lib DESCRIPTION = BerkeleyDB 4.3 libraries and utilities @@ -14,17 +14,17 @@ endef MASTER_SITES = http://download.oracle.com/berkeley-db/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz PATCHDIR = $(WORKSRC)/.. PATCHDIRLEVEL = 0 PATCHFILES += $(notdir $(wildcard $(FILEDIR)/patch.*)) -RELEASE = p$(words $(filter patch.$(GARVERSION).%,$(PATCHFILES))) +RELEASE = p$(words $(filter patch.$(VERSION).%,$(PATCHFILES))) # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -WORKSRC = $(WORKDIR)/$(GARNAME)-$(GARVERSION)/build_unix +WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION)/build_unix BUILD64 = 1 NOISAEXEC = 1 Modified: csw/mgar/pkg/bdb44/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb44/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bdb44/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = db -GARVERSION = 4.4.20 +NAME = db +VERSION = 4.4.20 CATEGORIES = lib DESCRIPTION = embedded database libraries and utilities @@ -14,17 +14,17 @@ endef MASTER_SITES = http://download.oracle.com/berkeley-db/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -WORKSRC = $(WORKDIR)/$(GARNAME)-$(GARVERSION)/build_unix +WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION)/build_unix PATCHDIR = $(WORKSRC)/.. PATCHDIRLEVEL = 0 PATCHFILES += $(notdir $(wildcard $(FILEDIR)/patch.*)) -RELEASE = p$(words $(filter patch.$(GARVERSION).%,$(PATCHFILES))) +RELEASE = p$(words $(filter patch.$(VERSION).%,$(PATCHFILES))) BUILD64 = 1 NOISAEXEC = 1 Modified: csw/mgar/pkg/bdb45/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb45/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bdb45/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = db -GARVERSION = 4.5.20 +NAME = db +VERSION = 4.5.20 CATEGORIES = lib DESCRIPTION = Berkeley DB 4.5 @@ -14,17 +14,17 @@ endef MASTER_SITES = http://download.oracle.com/berkeley-db/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -WORKSRC = $(WORKDIR)/$(GARNAME)-$(GARVERSION)/build_unix +WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION)/build_unix PATCHDIR = $(WORKSRC)/.. PATCHDIRLEVEL = 0 PATCHFILES += $(notdir $(wildcard $(FILEDIR)/patch.*)) -RELEASE = p$(words $(filter patch.$(GARVERSION).%,$(PATCHFILES))) +RELEASE = p$(words $(filter patch.$(VERSION).%,$(PATCHFILES))) BUILD64 = 1 NOISAEXEC = 1 Modified: csw/mgar/pkg/bdb46/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb46/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bdb46/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = db -GARVERSION = 4.6.21 +NAME = db +VERSION = 4.6.21 CATEGORIES = lib DESCRIPTION = Berkeley DB 4.6 @@ -14,17 +14,17 @@ endef MASTER_SITES = http://download.oracle.com/berkeley-db/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -WORKSRC = $(WORKDIR)/$(GARNAME)-$(GARVERSION)/build_unix +WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION)/build_unix PATCHDIR = $(WORKSRC)/.. PATCHDIRLEVEL = 0 PATCHFILES += $(notdir $(wildcard $(FILEDIR)/patch.*)) -RELEASE = p$(words $(filter patch.$(GARVERSION).%,$(PATCHFILES))) +RELEASE = p$(words $(filter patch.$(VERSION).%,$(PATCHFILES))) BUILD64 = 1 NOISAEXEC = 1 Modified: csw/mgar/pkg/bdb47/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb47/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bdb47/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = db -GARVERSION = 4.7.25 +NAME = db +VERSION = 4.7.25 CATEGORIES = lib DESCRIPTION = Berkeley DB 4.7 @@ -14,17 +14,17 @@ endef MASTER_SITES = http://download.oracle.com/berkeley-db/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -WORKSRC = $(WORKDIR)/$(GARNAME)-$(GARVERSION)/build_unix +WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION)/build_unix PATCHDIR = $(WORKSRC)/.. PATCHDIRLEVEL = 0 PATCHFILES += $(notdir $(wildcard $(FILEDIR)/patch.*)) -RELEASE = p$(words $(filter patch.$(GARVERSION).%,$(PATCHFILES))) +RELEASE = p$(words $(filter patch.$(VERSION).%,$(PATCHFILES))) BUILD64 = 1 NOISAEXEC = 1 Modified: csw/mgar/pkg/bdb48/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb48/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bdb48/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = db -GARVERSION = 4.8.30 +NAME = db +VERSION = 4.8.30 CATEGORIES = lib DESCRIPTION = Berkeley DB 4.8 @@ -14,17 +14,17 @@ endef MASTER_SITES = http://download.oracle.com/berkeley-db/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -WORKSRC = $(WORKDIR)/$(GARNAME)-$(GARVERSION)/build_unix +WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION)/build_unix PATCHDIR = $(WORKSRC)/.. PATCHDIRLEVEL = 0 PATCHFILES += $(notdir $(wildcard $(FILEDIR)/patch.*)) -RELEASE = p$(words $(filter patch.$(GARVERSION).%,$(PATCHFILES))) +RELEASE = p$(words $(filter patch.$(VERSION).%,$(PATCHFILES))) BUILD64 = 1 NOISAEXEC = 1 Modified: csw/mgar/pkg/bdb51/trunk/Makefile =================================================================== --- csw/mgar/pkg/bdb51/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bdb51/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = db -GARVERSION = 5.1.19 +NAME = db +VERSION = 5.1.19 CATEGORIES = lib DESCRIPTION = Berkeley DB 5.1 @@ -14,17 +14,17 @@ endef MASTER_SITES = http://download.oracle.com/berkeley-db/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -WORKSRC = $(WORKDIR)/$(GARNAME)-$(GARVERSION)/build_unix +WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION)/build_unix PATCHDIR = $(WORKSRC)/.. PATCHDIRLEVEL = 0 PATCHFILES += $(notdir $(wildcard $(FILEDIR)/patch.*)) -RELEASE = p$(words $(filter patch.$(GARVERSION).%,$(PATCHFILES))) +RELEASE = p$(words $(filter patch.$(VERSION).%,$(PATCHFILES))) BUILD64 = 1 NOISAEXEC = 1 Modified: csw/mgar/pkg/beautifulsoup/trunk/Makefile =================================================================== --- csw/mgar/pkg/beautifulsoup/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/beautifulsoup/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = beautifulsoup -GARVERSION = 3.1.0.1 +NAME = beautifulsoup +VERSION = 3.1.0.1 CATEGORIES = lib EXT_NAME = BeautifulSoup @@ -24,7 +24,7 @@ MASTER_SITES = http://www.crummy.com/software/$(EXT_NAME)/download/ DISTFILES = $(EXT_NAME).tar.gz -WORKSRC = $(WORKDIR)/$(EXT_NAME)-$(GARVERSION) +WORKSRC = $(WORKDIR)/$(EXT_NAME)-$(VERSION) SPKG_CLASSES = none cswpycompile Modified: csw/mgar/pkg/bind/branches/stable/Makefile =================================================================== --- csw/mgar/pkg/bind/branches/stable/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bind/branches/stable/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,8 +1,8 @@ -GARNAME = bind -GARVERSION = 9.4.3 +NAME = bind +VERSION = 9.4.3 RELEASE = P3 -DISTVERSION = $(GARVERSION)-$(RELEASE) -DISTNAME = $(GARNAME)-$(DISTVERSION) +DISTVERSION = $(VERSION)-$(RELEASE) +DISTNAME = $(NAME)-$(DISTVERSION) WORKSRC = $(WORKDIR)/$(DISTNAME) CATEGORIES = net @@ -14,10 +14,10 @@ high-volume and high-reliability applications. endef -MASTER_SITES = http://ftp.isc.org/isc/bind9/$(GARVERSION)-$(RELEASE)/ -DISTFILES = $(GARNAME)-$(GARVERSION)-$(RELEASE).tar.gz -#MASTER_SITES = http://ftp.isc.org/isc/bind9/$(GARVERSION)/ -#DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +MASTER_SITES = http://ftp.isc.org/isc/bind9/$(VERSION)-$(RELEASE)/ +DISTFILES = $(NAME)-$(VERSION)-$(RELEASE).tar.gz +#MASTER_SITES = http://ftp.isc.org/isc/bind9/$(VERSION)/ +#DISTFILES = $(NAME)-$(VERSION).tar.gz PACKAGES = CSWbind CSWbinddevel CSWlibbind CSWbindutils @@ -78,14 +78,14 @@ DOCLIST = README.CSW db.127.0.0 db.localhost named.conf named.root rndc.key install-custom: - @echo " ==> Installing $(GARNAME) (custom)" + @echo " ==> Installing $(NAME) (custom)" @ginstall -d $(DESTDIR)/etc/opt/csw/init.d @cp $(FILEDIR)/CSWbind.cswnamed $(DESTDIR)/etc/opt/csw/init.d/cswnamed @cp $(FILEDIR)/CSWbind.named.conf.CSW $(DESTDIR)/etc/opt/csw/named.conf.CSW @ginstall -d $(DESTDIR)/opt/csw/etc/CSWbind @cp $(FILEDIR)/cswusergroup $(DESTDIR)/opt/csw/etc/CSWbind/ - @ginstall -d $(DESTDIR)$(docdir)/$(GARNAME) - @$(foreach DOC,$(DOCLIST),cp $(FILEDIR)/$(DOC) $(DESTDIR)$(docdir)/$(GARNAME);) + @ginstall -d $(DESTDIR)$(docdir)/$(NAME) + @$(foreach DOC,$(DOCLIST),cp $(FILEDIR)/$(DOC) $(DESTDIR)$(docdir)/$(NAME);) ( cd $(WORKSRC) ; \ gmake DESTDIR=$(DESTDIR) install ) @ginstall -d $(DESTDIR)/var/opt/csw/named Modified: csw/mgar/pkg/bind/branches/stable-9.4.3p3/Makefile =================================================================== --- csw/mgar/pkg/bind/branches/stable-9.4.3p3/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bind/branches/stable-9.4.3p3/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,8 +1,8 @@ -GARNAME = bind -GARVERSION = 9.4.3 +NAME = bind +VERSION = 9.4.3 RELEASE = P3 -DISTVERSION = $(GARVERSION)-$(RELEASE) -DISTNAME = $(GARNAME)-$(DISTVERSION) +DISTVERSION = $(VERSION)-$(RELEASE) +DISTNAME = $(NAME)-$(DISTVERSION) WORKSRC = $(WORKDIR)/$(DISTNAME) CATEGORIES = net @@ -15,8 +15,8 @@ endef UPSTREAM_MASTER_SITES = http://ftp.isc.org/isc/bind9/ -MASTER_SITES = http://ftp.isc.org/isc/bind9/$(GARVERSION)-$(RELEASE)/ -DISTFILES = $(GARNAME)-$(GARVERSION)-$(RELEASE).tar.gz +MASTER_SITES = http://ftp.isc.org/isc/bind9/$(VERSION)-$(RELEASE)/ +DISTFILES = $(NAME)-$(VERSION)-$(RELEASE).tar.gz DISTFILES += $(call admfiles,CSWbind,preinstall postinstall preremove) LICENSE = COPYRIGHT @@ -42,7 +42,7 @@ #SPKG_CLASSES = none cswinitsmf install-custom: - @echo " ==> Installing $(GARNAME) (custom)" + @echo " ==> Installing $(NAME) (custom)" @rm -rf $(DESTDIR) # @ginstall -d $(DESTDIR)/etc/opt/csw/init.d # @cp $(FILEDIR)/CSWbind.cswnamed $(DESTDIR)/etc/opt/csw/init.d/cswnamed @@ -50,13 +50,13 @@ @cp $(FILEDIR)/CSWbind.cswnamed $(DESTDIR)/etc/init.d/cswnamed @ginstall -d $(DESTDIR)/etc/opt/csw @cp $(FILEDIR)/CSWbind.named.conf.CSW $(DESTDIR)/etc/opt/csw/named.conf.CSW - @ginstall -d $(DESTDIR)$(docdir)/$(GARNAME) - @cp $(FILEDIR)/CSWbind.README.CSW $(DESTDIR)$(docdir)/$(GARNAME)/README.CSW - @cp $(FILEDIR)/CSWbind.db.127.0.0 $(DESTDIR)$(docdir)/$(GARNAME)/db.127.0.0 - @cp $(FILEDIR)/CSWbind.db.localhost $(DESTDIR)$(docdir)/$(GARNAME)/db.localhost - @cp $(FILEDIR)/CSWbind.named.conf $(DESTDIR)$(docdir)/$(GARNAME)/named.conf - @cp $(FILEDIR)/CSWbind.named.root $(DESTDIR)$(docdir)/$(GARNAME)/named.root - @cp $(FILEDIR)/CSWbind.rndc.key $(DESTDIR)$(docdir)/$(GARNAME)/rndc.key + @ginstall -d $(DESTDIR)$(docdir)/$(NAME) + @cp $(FILEDIR)/CSWbind.README.CSW $(DESTDIR)$(docdir)/$(NAME)/README.CSW + @cp $(FILEDIR)/CSWbind.db.127.0.0 $(DESTDIR)$(docdir)/$(NAME)/db.127.0.0 + @cp $(FILEDIR)/CSWbind.db.localhost $(DESTDIR)$(docdir)/$(NAME)/db.localhost + @cp $(FILEDIR)/CSWbind.named.conf $(DESTDIR)$(docdir)/$(NAME)/named.conf + @cp $(FILEDIR)/CSWbind.named.root $(DESTDIR)$(docdir)/$(NAME)/named.root + @cp $(FILEDIR)/CSWbind.rndc.key $(DESTDIR)$(docdir)/$(NAME)/rndc.key ( cd $(WORKSRC) ; \ gmake DESTDIR=$(DESTDIR) install ) @$(MAKECOOKIE) Modified: csw/mgar/pkg/bind/trunk/Makefile =================================================================== --- csw/mgar/pkg/bind/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bind/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,15 +1,15 @@ # readme for chroot pkg? # owner/group for device files? (root:sys) -GARNAME = bind -GARVERSION = 9.7.2 +NAME = bind +VERSION = 9.7.2 CATEGORIES = net # Enable these for Px-releases RELEASE = P3 -DISTVERSION = $(GARVERSION)-$(RELEASE) -SPKG_VERSION = $(GARVERSION)$(RELEASE) -DISTNAME = $(GARNAME)-$(GARVERSION)-$(RELEASE) +DISTVERSION = $(VERSION)-$(RELEASE) +SPKG_VERSION = $(VERSION)$(RELEASE) +DISTNAME = $(NAME)-$(VERSION)-$(RELEASE) WORKSRC = $(WORKDIR)/$(DISTNAME) DESCRIPTION = ISC BIND DNS reference implementation @@ -21,12 +21,12 @@ endef # Enable these for Px-releases -MASTER_SITES = http://ftp.isc.org/isc/bind9/$(GARVERSION)-$(RELEASE)/ +MASTER_SITES = http://ftp.isc.org/isc/bind9/$(VERSION)-$(RELEASE)/ DISTFILES = $(DISTNAME).tar.gz # Disable these for Px-releases -#MASTER_SITES = http://ftp.isc.org/isc/bind9/$(GARVERSION)/ -#DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +#MASTER_SITES = http://ftp.isc.org/isc/bind9/$(VERSION)/ +#DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += CSWbindchroot.postinstall @@ -98,7 +98,7 @@ DOCLIST = README.CSW db.127.0.0 db.localhost named.conf named.root rndc.key install-custom: - @echo " ==> Installing $(GARNAME) (custom)" + @echo " ==> Installing $(NAME) (custom)" @ginstall -m 755 -d $(DESTDIR)/etc/opt/csw/init.d @ginstall -m 755 $(FILEDIR)/CSWbind.cswnamed $(DESTDIR)/etc/opt/csw/init.d/cswnamed # @ginstall -m 755 -d $(DESTDIR)/etc/opt/csw @@ -106,8 +106,8 @@ @ginstall -m 755 -d $(DESTDIR)/etc/opt/csw/pkg/CSWbind @ginstall -m 444 $(FILEDIR)/cswusergroup $(DESTDIR)/etc/opt/csw/pkg/CSWbind/ @ginstall -m 644 $(FILEDIR)/bind.CSW $(DESTDIR)/etc/opt/csw/pkg/CSWbind/bind - @ginstall -m 755 -d $(DESTDIR)$(docdir)/$(GARNAME) - @$(foreach DOC,$(DOCLIST),cp $(FILEDIR)/$(DOC) $(DESTDIR)$(docdir)/$(GARNAME);) + @ginstall -m 755 -d $(DESTDIR)$(docdir)/$(NAME) + @$(foreach DOC,$(DOCLIST),cp $(FILEDIR)/$(DOC) $(DESTDIR)$(docdir)/$(NAME);) ( cd $(WORKSRC) ; \ gmake DESTDIR=$(DESTDIR) install ) @ginstall -m 755 -d $(DESTDIR)/var/opt/csw/named Modified: csw/mgar/pkg/bind2nsd/trunk/Makefile =================================================================== --- csw/mgar/pkg/bind2nsd/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bind2nsd/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = bind2nsd -GARVERSION = 0.7.2 +NAME = bind2nsd +VERSION = 0.7.2 CATEGORIES = utils DESCRIPTION = scripts to translate DNS information in BIND format to NSD format @@ -11,7 +11,7 @@ endef MASTER_SITES = http://bind2nsd.sourceforge.net/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz PATCHFILES = setup.py.diff PATCHFILES += Config.py.diff @@ -20,7 +20,7 @@ PATCHFILES += s64-sync.diff # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz # If the url used to check for software update is different of MASTER_SITES, then # uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES Modified: csw/mgar/pkg/binutils/trunk/Makefile =================================================================== --- csw/mgar/pkg/binutils/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/binutils/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = binutils -GARVERSION = 2.20 +NAME = binutils +VERSION = 2.20 CATEGORIES = utils DESCRIPTION = GNU binary utilities: gas, gld, gprof, and others @@ -7,7 +7,7 @@ endef MASTER_SITES = $(GNU_MIRROR) -DISTFILES = $(GARNAME)-$(GARVERSION).tar.bz2 +DISTFILES = $(NAME)-$(VERSION).tar.bz2 # These have been reported as # @@ -17,7 +17,7 @@ RUNTIME_DEP_PKGS = CSWzlib CSWiconv CSWggettextrt # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz BUILD64 = 1 CONFIGURE_ARGS = $(DIRPATHS) Modified: csw/mgar/pkg/bison/trunk/Makefile =================================================================== --- csw/mgar/pkg/bison/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bison/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,6 +1,6 @@ -GARNAME = bison -# GARVERSION = 2.4.2.8-cb76 -GARVERSION = 2.4.3 +NAME = bison +# VERSION = 2.4.2.8-cb76 +VERSION = 2.4.3 CATEGORIES = devel DESCRIPTION = GNU Project parser generator (yacc replacement) @@ -12,7 +12,7 @@ MASTER_SITES = $(GNU_MIRROR) # MASTER_SITES += http://alpha.gnu.org/gnu/bison/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz BUILD_DEP_PKGS = CSWgnulinks RUNTIME_DEP_PKGS = CSWggettextrt CSWiconv CSWgm4 @@ -20,7 +20,7 @@ SPKG_SOURCEURL = http://www.gnu.org/software/bison/ # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.bz2 +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 CONFIGURE_ARGS = $(DIRPATHS) Modified: csw/mgar/pkg/bitlbee/trunk/Makefile =================================================================== --- csw/mgar/pkg/bitlbee/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bitlbee/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,6 +1,6 @@ # $Id$ -GARNAME = bitlbee -GARVERSION = 1.2.8 +NAME = bitlbee +VERSION = 1.2.8 CATEGORIES = apps DESCRIPTION = An IRC to other chat networks gateway @@ -12,7 +12,7 @@ endef MASTER_SITES = http://get.bitlbee.org/src/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz # Use these patches until this is fixed: # http://bugs.bitlbee.org/bitlbee/ticket/667 @@ -28,7 +28,7 @@ PATCHFILES += 0007-Honour-CPPFLAGS.patch # File name regex to get notifications about upstream software releases -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz BUILD_DEP_PKGS = CSWossldevel CSWlibevent-devel CSWggettext CSWglib2devel RUNTIME_DEP_PKGS = CSWosslrt CSWlibevent CSWggettextrt CSWglib2 Modified: csw/mgar/pkg/bittwist/trunk/Makefile =================================================================== --- csw/mgar/pkg/bittwist/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bittwist/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,8 +1,8 @@ # TODO # ! Doesn't compile as it requires ifaddrs.h which isn't available on Sol 10 # http://www.gnu.org/software/gnulib/manual/html_node/ifaddrs_002eh.html -GARNAME = bittwist -GARVERSION = 1.1 +NAME = bittwist +VERSION = 1.1 CATEGORIES = apps DESCRIPTION = Libpcap-based ethernet packet generator @@ -15,8 +15,8 @@ VENDOR_URL = http://bittwist.sf.net MASTER_SITES = $(SF_MIRRORS) -DISTFILES = $(GARNAME)-linux-$(GARVERSION).tar.gz -UFILES_REGEX = $(GARNAME)-linux-(\d+(?:\.\d+)*).tar.gz +DISTFILES = $(NAME)-linux-$(VERSION).tar.gz +UFILES_REGEX = $(NAME)-linux-(\d+(?:\.\d+)*).tar.gz PATCHFILES += 0001-Makefile-introduce-CPPFLAGS-LDFLAGS-DESTDIR-make-var.patch Modified: csw/mgar/pkg/blame/trunk/Makefile =================================================================== --- csw/mgar/pkg/blame/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/blame/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,6 +1,6 @@ # : Makefile 9089 2010-03-11 08:34:46Z wahwah $ -GARNAME = blame -GARVERSION = 1.3.1 +NAME = blame +VERSION = 1.3.1 CATEGORIES = utils DESCRIPTION = Displays the last modification for each line in an RCS file @@ -8,11 +8,11 @@ endef MASTER_SITES = $(SF_MIRROR) -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz PATCHFILES = 0001-Do-not-force-Wall.patch # File name regex to get notifications about upstream software releases -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz CONFIGURE_ARGS = $(DIRPATHS) Modified: csw/mgar/pkg/boost/branches/boost-1.33.0/Makefile =================================================================== --- csw/mgar/pkg/boost/branches/boost-1.33.0/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/boost/branches/boost-1.33.0/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = boost -GARVERSION = 1.33.0 +NAME = boost +VERSION = 1.33.0 CATEGORIES = lib DESCRIPTION = A collection of C++ libraries @@ -15,9 +15,9 @@ programming style of the Standard Template Library (STL). endef -MASTER_SITES = $(SF_MIRROR)/$(GARNAME)/ -DISTVERSION = $(subst .,_,$(GARVERSION)) -DISTFILES = $(GARNAME)_$(DISTVERSION).tar.bz2 +MASTER_SITES = $(SF_MIRROR)/$(NAME)/ +DISTVERSION = $(subst .,_,$(VERSION)) +DISTFILES = $(NAME)_$(DISTVERSION).tar.bz2 DISTFILES += CSWboost.gspec # We define upstream file regex so we can be notifed of new upstream software release @@ -25,7 +25,7 @@ UPSTREAM_USE_SF = 1 UFILES_REGEX = (\d+(?:\.\d+)*) -WORKSRC = $(WORKDIR)/$(GARNAME)_$(DISTVERSION) +WORKSRC = $(WORKDIR)/$(NAME)_$(DISTVERSION) CONFIGURE_SCRIPTS = BUILD_SCRIPTS = Modified: csw/mgar/pkg/boost/branches/boost-gcc/Makefile =================================================================== --- csw/mgar/pkg/boost/branches/boost-gcc/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/boost/branches/boost-gcc/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = boost -GARVERSION = 1.33.0 +NAME = boost +VERSION = 1.33.0 CATEGORIES = lib DESCRIPTION = A collection of C++ libraries @@ -15,9 +15,9 @@ programming style of the Standard Template Library (STL). endef -MASTER_SITES = $(SF_MIRROR)/$(GARNAME)/ -DISTVERSION = $(subst .,_,$(GARVERSION)) -DISTFILES = $(GARNAME)_$(DISTVERSION).tar.bz2 +MASTER_SITES = $(SF_MIRROR)/$(NAME)/ +DISTVERSION = $(subst .,_,$(VERSION)) +DISTFILES = $(NAME)_$(DISTVERSION).tar.bz2 DISTFILES += CSWboost.gspec # We define upstream file regex so we can be notifed of new upstream software release @@ -25,7 +25,7 @@ UPSTREAM_USE_SF = 1 UFILES_REGEX = (\d+(?:\.\d+)*) -WORKSRC = $(WORKDIR)/$(GARNAME)_$(DISTVERSION) +WORKSRC = $(WORKDIR)/$(NAME)_$(DISTVERSION) CONFIGURE_SCRIPTS = BUILD_SCRIPTS = Modified: csw/mgar/pkg/boost/trunk/Makefile =================================================================== --- csw/mgar/pkg/boost/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/boost/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = boost -GARVERSION = 1.44.0 +NAME = boost +VERSION = 1.44.0 CATEGORIES = lib DESCRIPTION = A collection of C++ libraries @@ -15,9 +15,9 @@ programming style of the Standard Template Library (STL). endef -MASTER_SITES = $(SF_MIRROR)/$(GARNAME)/ -DISTVERSION = $(subst .,_,$(GARVERSION)) -DISTNAME = $(GARNAME)_$(DISTVERSION) +MASTER_SITES = $(SF_MIRROR)/$(NAME)/ +DISTVERSION = $(subst .,_,$(VERSION)) +DISTNAME = $(NAME)_$(DISTVERSION) DISTFILES = $(DISTNAME).tar.bz2 # We define upstream file regex so we can be notifed of new upstream software release Modified: csw/mgar/pkg/botnet/trunk/Makefile =================================================================== --- csw/mgar/pkg/botnet/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/botnet/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = botnet -GARVERSION = 0.8 +NAME = botnet +VERSION = 0.8 CATEGORIES = net DESCRIPTION = Botnet detector plugin for SpamAssassin @@ -11,7 +11,7 @@ endef MASTER_SITES = http://people.ucsc.edu/~jrudd/spamassassin/ -DISTFILES = Botnet-$(GARVERSION).tar +DISTFILES = Botnet-$(VERSION).tar RUNTIME_DEP_PKGS = CSWspamassassin CSWperl @@ -37,13 +37,13 @@ DOCFILES = Botnet.api.txt Botnet.credits.txt Botnet.txt Botnet.variants.txt INSTALL install-custom: - @echo " ==> Installing $(GARNAME) (custom)" + @echo " ==> Installing $(NAME) (custom)" @rm -rf $(DESTDIR) @ginstall -d $(DESTDIR)$(bindir) @cp $(WORKSRC)/Botnet.pl $(DESTDIR)$(bindir) @ginstall -d $(DESTDIR)/etc/opt/csw/spamassassin @$(foreach FILE, $(MAINFILES), cp $(WORKSRC)/$(FILE) $(DESTDIR)/etc/opt/csw/spamassassin ;) @chmod 644 $(DESTDIR)/etc/opt/csw/spamassassin/Botnet.cf - @ginstall -d $(DESTDIR)$(docdir)/$(GARNAME) - @$(foreach FILE, $(DOCFILES), cp $(WORKSRC)/$(FILE) $(DESTDIR)$(docdir)/$(GARNAME) ;) + @ginstall -d $(DESTDIR)$(docdir)/$(NAME) + @$(foreach FILE, $(DOCFILES), cp $(WORKSRC)/$(FILE) $(DESTDIR)$(docdir)/$(NAME) ;) @$(MAKECOOKIE) Modified: csw/mgar/pkg/bugzilla/trunk/Makefile =================================================================== --- csw/mgar/pkg/bugzilla/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bugzilla/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = bugzilla -GARVERSION = 2.22 +NAME = bugzilla +VERSION = 2.22 CATEGORIES = apps DESCRIPTION = Bugzilla defect tracking system. @@ -8,11 +8,11 @@ endef MASTER_SITES = ftp://ftp.mozilla.org/pub/mozilla.org/webtools/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += $(call admfiles,CSWbugzilla,prototype depend) # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz # Adjust the shebang path for all scripts PATCHFILES += perlpath.diff Modified: csw/mgar/pkg/buildbot/trunk/Makefile =================================================================== --- csw/mgar/pkg/buildbot/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/buildbot/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -2,8 +2,8 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ -GARNAME = buildbot -GARVERSION = 0.7.12 +NAME = buildbot +VERSION = 0.7.12 PATCHLEVEL = CATEGORIES = python @@ -25,9 +25,9 @@ MASTER_SITES = $(SF_MIRROR) PATCHFILES = buildbot-tail.patch PATCHFILES += buildbot-debug.patch -DISTFILES = $(GARNAME)-$(GARVERSION)$(PATCHLEVEL).tar.gz $(PATCHFILES) +DISTFILES = $(NAME)-$(VERSION)$(PATCHLEVEL).tar.gz $(PATCHFILES) -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz PYCOMPILE = 1 @@ -41,7 +41,7 @@ TEST_SCRIPTS = INSTALL_SCRIPTS = buildbot -WORKSRC = $(WORKDIR)/$(GARNAME)-$(GARVERSION)$(PATCHLEVEL) +WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION)$(PATCHLEVEL) CHECKPKG_OVERRIDES_CSWbuildbot += unidentified-dependency|CSWcoreutils CHECKPKG_OVERRIDES_CSWbuildbot += surplus-dependency|CSWtwisted Modified: csw/mgar/pkg/bvi/trunk/Makefile =================================================================== --- csw/mgar/pkg/bvi/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bvi/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = bvi -GARVERSION = 1.3.2 +NAME = bvi +VERSION = 1.3.2 CATEGORIES = utils DESCRIPTION = A vi-like binary file (hex) editor @@ -12,22 +12,22 @@ VENDOR_URL = http://bvi.sourceforge.net/ MASTER_SITES = $(SF_MIRRORS) -DISTFILES = $(GARNAME)-$(GARVERSION).src.tar.gz -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).src.tar.gz +DISTFILES = $(NAME)-$(VERSION).src.tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).src.tar.gz UPSTREAM_MASTER_SITES = http://sourceforge.net/projects/bvi/files/ TEST_SCRIPTS = # bvi uses --libdir to store a help file CONFIGURE_ARGS = $(filter-out --libdir%, $(DIRPATHS)) -CONFIGURE_ARGS += --libdir=$(datadir)/$(GARNAME) +CONFIGURE_ARGS += --libdir=$(datadir)/$(NAME) NORUNPATH = 1 include gar/category.mk post-install-modulated: DOCS=CHANGES CREDITS -post-install-modulated: DOCDEST=$(DESTDIR)$(docdir)/$(GARNAME) +post-install-modulated: DOCDEST=$(DESTDIR)$(docdir)/$(NAME) post-install-modulated: ginstall -d $(DOCDEST) cp $(FILEDIR)/changelog.CSW $(DOCDEST) Modified: csw/mgar/pkg/bzip2/trunk/Makefile =================================================================== --- csw/mgar/pkg/bzip2/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/bzip2/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = bzip2 -GARVERSION = 1.0.5 +NAME = bzip2 +VERSION = 1.0.5 CATEGORIES = utils DESCRIPTION = bzip2 Compression Utility @@ -10,15 +10,15 @@ times faster at decompression. endef -MASTER_SITES = http://www.bzip.org/$(GARVERSION)/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +MASTER_SITES = http://www.bzip.org/$(VERSION)/ +DISTFILES = $(NAME)-$(VERSION).tar.gz PATCHFILES = 0001-CFLAGS-LDFLAGS-for-SOS12-shared-lib.patch PATCHFILES += 0002-test-should-depend-on-bzip2.patch PATCHFILES += 0003-generate-bzip2recover.patch # We define upstream file regex so we can be notifed of new upstream # software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz PACKAGES = CSWbzip2 CATALOGNAME = bzip2 @@ -67,7 +67,7 @@ @ginstall -d $(DESTDIR)$(includedir) @ginstall -d $(DESTDIR)$(libdir) @ginstall -d $(DESTDIR)$(bindir) - @ginstall -d $(DESTDIR)$(docdir)/$(GARNAME) + @ginstall -d $(DESTDIR)$(docdir)/$(NAME) @# install the libraries @( for file in $(LIBFILES) ; do \ ginstall -c -m 755 $(WORKSRC)/$$file $(DESTDIR)$(libdir) ; \ @@ -90,6 +90,6 @@ done ) @# install the doc files @( for file in $(DOCFILES) ; do \ - ginstall -m 644 $(WORKSRC)/$$file $(DESTDIR)$(docdir)/$(GARNAME) ; \ + ginstall -m 644 $(WORKSRC)/$$file $(DESTDIR)$(docdir)/$(NAME) ; \ done ) @$(MAKECOOKIE) Modified: csw/mgar/pkg/c-ares/trunk/Makefile =================================================================== --- csw/mgar/pkg/c-ares/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/c-ares/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = c-ares -GARVERSION = 1.7.0 +NAME = c-ares +VERSION = 1.7.0 CATEGORIES = lib DESCRIPTION = c-ares library to perform DNS requests and name resolves asynchronously @@ -7,11 +7,11 @@ endef MASTER_SITES = http://c-ares.haxx.se/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += ares_build.h # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz PACKAGES = CSWlibcares CSWlibcaresdevel Modified: csw/mgar/pkg/ca_certificates/trunk/Makefile =================================================================== --- csw/mgar/pkg/ca_certificates/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/ca_certificates/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = ca-certificates -GARVERSION = $(shell date '+%Y%m%d') +NAME = ca-certificates +VERSION = $(shell date '+%Y%m%d') CATEGORIES = xtra DESCRIPTION = CA certificates Modified: csw/mgar/pkg/cabextract/trunk/Makefile =================================================================== --- csw/mgar/pkg/cabextract/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/cabextract/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = cabextract -GARVERSION = 1.2 +NAME = cabextract +VERSION = 1.2 CATEGORIES = utils DESCRIPTION = Extract Microsoft cabinet files @@ -13,11 +13,11 @@ MASTER_SITES = http://www.kyz.uklinux.net/downloads/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += $(call admfiles,CSWcabextract,prototype depend) # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz CONFIGURE_ARGS = $(DIRPATHS) Modified: csw/mgar/pkg/cacti/trunk/Makefile =================================================================== --- csw/mgar/pkg/cacti/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/cacti/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = cacti -GARVERSION = 0.8.7e +NAME = cacti +VERSION = 0.8.7e CATEGORIES = apps DESCRIPTION = a network graphing solution based on RRDtool @@ -8,7 +8,7 @@ endef MASTER_SITES = http://www.cacti.net/downloads/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz #DISTFILES += CSWcacti.prototype CSWcacti.preinstall DISTFILES += CSWcacti.prototype CSWcacti.postinstall Modified: csw/mgar/pkg/cadaver/trunk/Makefile =================================================================== --- csw/mgar/pkg/cadaver/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/cadaver/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -12,8 +12,8 @@ ###### Package information ####### -GARNAME = cadaver -GARVERSION = 0.23.3 +NAME = cadaver +VERSION = 0.23.3 CATEGORIES = net DESCRIPTION = WebDAV commandline tool @@ -35,14 +35,14 @@ UPSTREAM_MASTER_SITES = http://www.webdav.org/cadaver/ # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += CSWcadav.prototype DISTFILES += changelog.CSW # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz ##### Build and installation information ##### @@ -55,5 +55,5 @@ include gar/category.mk post-merge: - @ginstall -D $(DOWNLOADDIR)/changelog.CSW $(PKGROOT)$(docdir)/$(GARNAME)/changelog.CSW + @ginstall -D $(DOWNLOADDIR)/changelog.CSW $(PKGROOT)$(docdir)/$(NAME)/changelog.CSW Modified: csw/mgar/pkg/cairomm/trunk/Makefile =================================================================== --- csw/mgar/pkg/cairomm/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/cairomm/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = cairomm -GARVERSION = 1.8.0 +NAME = cairomm +VERSION = 1.8.0 CATEGORIES = lib DESCRIPTION = C++ bindings for Cairo @@ -7,12 +7,12 @@ endef MASTER_SITES = http://www.cairographics.org/releases/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz -PKGDIST = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz +PKGDIST = $(NAME)-$(VERSION).tar.gz # We define upstream file regex so we can be notifed of # new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz PACKAGES = CSWcairomm CSWcairomm-devel SPKG_DESC_CSWcairomm = $(DESCRIPTION) Modified: csw/mgar/pkg/ccache/trunk/Makefile =================================================================== --- csw/mgar/pkg/ccache/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/ccache/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,6 +1,6 @@ # $Id$ -GARNAME = ccache -GARVERSION = 3.0pre1 +NAME = ccache +VERSION = 3.0pre1 CATEGORIES = utils DESCRIPTION = Brief description @@ -9,11 +9,11 @@ endef MASTER_SITES = http://samba.org/ftp/ccache/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz -SPKG_VERSION = $(subst p,,$(GARVERSION)) +DISTFILES = $(NAME)-$(VERSION).tar.gz +SPKG_VERSION = $(subst p,,$(VERSION)) # File name regex to get notifications about upstream software releases -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz # If the url used to check for software update is different of MASTER_SITES, then # uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES Modified: csw/mgar/pkg/cdecl/trunk/Makefile =================================================================== --- csw/mgar/pkg/cdecl/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/cdecl/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = cdecl -GARVERSION = 2.5 +NAME = cdecl +VERSION = 2.5 CATEGORIES = utils DESCRIPTION = C declaration guide/tool @@ -7,12 +7,12 @@ endef MASTER_SITES = http://www.cdecl.org/files/ -DISTNAME = cdecl-blocks-$(GARVERSION) +DISTNAME = cdecl-blocks-$(VERSION) DISTFILES = $(DISTNAME).tar.gz PATCHFILES = 0001-Remove-keyword-for-Sun-Studio.patch # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-blocks-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-blocks-(\d+(?:\.\d+)*).tar.gz SPKG_SOURCEURL = http://www.cdecl.org/ @@ -33,8 +33,8 @@ include gar/category.mk install-custom: - ginstall -d $(DESTDIR)$(docdir)/$(GARNAME) - ginstall $(WORKSRC)/README $(DESTDIR)$(docdir)/$(GARNAME) + ginstall -d $(DESTDIR)$(docdir)/$(NAME) + ginstall $(WORKSRC)/README $(DESTDIR)$(docdir)/$(NAME) ginstall -d $(DESTDIR)$(bindir) ginstall $(WORKSRC)/cdecl $(DESTDIR)$(bindir)/cdecl gln -s cdecl $(DESTDIR)$(bindir)/c++decl Modified: csw/mgar/pkg/centerim/trunk/Makefile =================================================================== --- csw/mgar/pkg/centerim/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/centerim/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = centerim -GARVERSION = 4.22.7 +NAME = centerim +VERSION = 4.22.7 CATEGORIES = utils DESCRIPTION = Text mode menu- and window-driven IM interface @@ -10,11 +10,11 @@ endef MASTER_SITES = http://www.centerim.org/download/releases/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.bz2 +DISTFILES = $(NAME)-$(VERSION).tar.bz2 SPKG_SOURCEURL = http://www.centerim.org/ -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += --with-openssl=/opt/csw/ssl Modified: csw/mgar/pkg/cfengine/trunk/Makefile =================================================================== --- csw/mgar/pkg/cfengine/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/cfengine/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = cfengine -GARVERSION = 2.2.10 +NAME = cfengine +VERSION = 2.2.10 CATEGORIES = utils DESCRIPTION = A tool for administering Networks of Diverse Machines @@ -14,7 +14,7 @@ endef MASTER_SITES = http://www.cfengine.org/tarballs/ -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz PACKAGES = CSWcfengine CSWcfenginedoc PKGFILES_CSWcfenginedoc = .*/share/info/.* @@ -29,7 +29,7 @@ ARCHALL_CSWcfenginedoc = 1 # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += --enable-DCE Modified: csw/mgar/pkg/cfg2html/trunk/Makefile =================================================================== --- csw/mgar/pkg/cfg2html/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/cfg2html/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -2,8 +2,8 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ -GARNAME = cfg2html -GARVERSION = 1.14 +NAME = cfg2html +VERSION = 1.14 PATCHLEVEL = r1.8 CATEGORIES = utils DESCRIPTION = Configuration documentation generator @@ -11,24 +11,24 @@ endef SPKG_SOURCEURL = http://tech.groups.yahoo.com/group/cfg2html/ MASTER_SITES = http://tech.groups.yahoo.com/group/cfg2html/files/sun/ -DISTFILES = $(GARNAME)-sun_$(GARVERSION)$(PATCHLEVEL).tar.gz -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +DISTFILES = $(NAME)-sun_$(VERSION)$(PATCHLEVEL).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz CONFIGURE_SCRIPTS = BUILD_SCRIPTS = INSTALL_SCRIPTS = cfg2html TEST_SCRIPTS = -WORKSRC = $(WORKDIR)/$(GARNAME) +WORKSRC = $(WORKDIR)/$(NAME) ARCHALL = 1 install-cfg2html: - ginstall -d $(DESTDIR)$(datadir)/$(GARNAME)/plugins - ginstall -d $(DESTDIR)$(datadir)/$(GARNAME)/doc + ginstall -d $(DESTDIR)$(datadir)/$(NAME)/plugins + ginstall -d $(DESTDIR)$(datadir)/$(NAME)/doc (\ cd $(WORKSRC); \ for d in plugins doc html; do \ - ginstall -d $(DESTDIR)$(datadir)/$(GARNAME)/$${d}; \ + ginstall -d $(DESTDIR)$(datadir)/$(NAME)/$${d}; \ for f in plugins/*; do \ - ginstall $${f} $(DESTDIR)$(datadir)/$(GARNAME)/$${d}; \ + ginstall $${f} $(DESTDIR)$(datadir)/$(NAME)/$${d}; \ done; \ done; \ ) Modified: csw/mgar/pkg/cfitsio/trunk/Makefile =================================================================== --- csw/mgar/pkg/cfitsio/trunk/Makefile 2010-12-12 11:02:46 UTC (rev 11887) +++ csw/mgar/pkg/cfitsio/trunk/Makefile 2010-12-12 12:43:48 UTC (rev 11888) @@ -1,5 +1,5 @@ -GARNAME = cfitsio -GARVERSION = 3.24 +NAME = cfitsio +VERSION = 3.24 CATEGORIES = lib DESCRIPTION = A library of C and Fortran subroutines for reading and writing data files in FITS @@ -11,12 +11,12 @@ endef MASTER_SITES = ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/ -DISTFILES = $(GARNAME)3240.tar.gz +DISTFILES = $(NAME)3240.tar.gz -DISTNAME = $(GARNAME) +DISTNAME = $(NAME) # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz SPKG_SOURCEURL = http://heasarc.gsfc.nasa.gov/fitsio/ @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Sun Dec 12 16:56:56 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Sun, 12 Dec 2010 15:56:56 +0000 Subject: [csw-devel] SF.net SVN: gar:[11890] csw/mgar/gar/v2/lib/python/system_pkgmap.py Message-ID: Revision: 11890 http://gar.svn.sourceforge.net/gar/?rev=11890&view=rev Author: wahwah Date: 2010-12-12 15:56:56 +0000 (Sun, 12 Dec 2010) Log Message: ----------- checkpkg: Using ORM for importing files It's not possible to use the same SQL template with sqlite and MySQL. Using the slow ORM - it takes ages to import, but it at least works. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/system_pkgmap.py Modified: csw/mgar/gar/v2/lib/python/system_pkgmap.py =================================================================== --- csw/mgar/gar/v2/lib/python/system_pkgmap.py 2010-12-12 12:50:05 UTC (rev 11889) +++ csw/mgar/gar/v2/lib/python/system_pkgmap.py 2010-12-12 15:56:56 UTC (rev 11890) @@ -426,15 +426,6 @@ pbar.maxval = len(contents) / progressbar_divisor pbar.start() cleaned_pkgs = set() - INSERT_SQL = """ - INSERT INTO csw_file - (basename, path, line, pkginst_id, srv4_file_id) - VALUES - (?, ?, ?, ?, ?); - """ - conn = m.CswFile._connection.getConnection() - cur = conn.cursor() - params_list = [] for d in contents: i = count.next() if not i % update_period and (i / progressbar_divisor) <= pbar.maxval: @@ -468,21 +459,18 @@ cleaned_pkgs.add(sqo_srv4) sqo_pkginst = self._GetPkginst(pkgname) f_path, f_basename = os.path.split(d["path"]) - # This is really slow. - # csw_file = m.CswFile(pkginst=sqo_pkginst, - # line=d["line"], path=f_path, basename=f_basename, - # srv4_file=sqo_srv4) - params_list.append( - (f_basename, f_path, d["line"], sqo_pkginst.id, sqo_srv4.id)) - - # It's quicker to collect the set first, and then run queries - # against the database only once, at the end of the function. + # This is really slow (one run ~1h), but works. + # To speed it up, raw SQL + cursor.executemany() could be used, but + # there's a incompatibility between MySQL and sqlite drivers: + # MySQL: INSERT ... VALUES (%s, %s, %s); + # sqlite: INSERT ... VALUES (?, ?, ?); + # For now, using the sqlobject ORM which is slow, but at least + # handles compatibility issues. + csw_file = m.CswFile(pkginst=sqo_pkginst, + line=d["line"], path=f_path, basename=f_basename, + srv4_file=sqo_srv4) srv4_files_to_catalog.add(sqo_srv4) pbar.finish() - logging.info( - "Inserting all files using one cursor.executemany() call. " - "There's no progressbar for this operation.") - cur.executemany(INSERT_SQL, params_list) logging.debug( "Registering all the fake srv4 files in all catalogs.") for sqo_srv4 in srv4_files_to_catalog: @@ -492,7 +480,7 @@ def ComposeFakeSrv4Md5(self, pkgname, osrel, arch): """Returns a fake md5 sum of a fake srv4 package. - + For the purposes of fake srv4 packages for SUNW stuff. """ key = pkgname + osrel + arch This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 12 21:29:44 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 12 Dec 2010 20:29:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[11891] csw/mgar/pkg/exim/trunk Message-ID: Revision: 11891 http://gar.svn.sourceforge.net/gar/?rev=11891&view=rev Author: bdwalton Date: 2010-12-12 20:29:44 +0000 (Sun, 12 Dec 2010) Log Message: ----------- exim: convert old manual depend file to automatic gar one Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Removed Paths: ------------- csw/mgar/pkg/exim/trunk/files/CSWexim.depend Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-12 15:56:56 UTC (rev 11890) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-12 20:29:44 UTC (rev 11891) @@ -16,11 +16,14 @@ MASTER_SITES = ftp://ftp.exim.org/pub/exim/exim4/ DISTFILES = $(NAME)-$(VERSION).tar.bz2 -DISTFILES += $(call admfiles,CSWexim,depend prototype postinstall postremove \ +DISTFILES += $(call admfiles,CSWexim prototype postinstall postremove \ preinstall preremove request space checkinstall) DISTFILES += Makefile.patch exim_install.patch spf2.patch DISTFILES += i.smfyes i.smfno +RUNTIME_DEP_PKGS_CSWexim = CSWiconv CSWoldaprt CSWosslrt CSWsasl +RUNTIME_DEP_PKGS_CSWexim = CSWmysql5rt CSWlibpq CSWlibspf2 CSWggettext + # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 Deleted: csw/mgar/pkg/exim/trunk/files/CSWexim.depend =================================================================== --- csw/mgar/pkg/exim/trunk/files/CSWexim.depend 2010-12-12 15:56:56 UTC (rev 11890) +++ csw/mgar/pkg/exim/trunk/files/CSWexim.depend 2010-12-12 20:29:44 UTC (rev 11891) @@ -1,8 +0,0 @@ -P CSWiconv libiconv - GNU iconv library -P CSWoldaprt openldap_rt - ldap runtime libraries -P CSWosslrt openssl_rt - OpenSSL runtime libraries -P CSWsasl sasl - Simple Authentication and Security Layer -P CSWmysql5rt mysql5rt - run-time libs for mysql5 -P CSWlibpq libpq - libraries needed by PostgreSQL server and clients -P CSWlibspf2 libspf2 - Library that implements Sender Policy Framework -P CSWggettext ggettext - GNU gettext This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 12 21:31:24 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 12 Dec 2010 20:31:24 +0000 Subject: [csw-devel] SF.net SVN: gar:[11892] csw/mgar/pkg/exim/trunk Message-ID: Revision: 11892 http://gar.svn.sourceforge.net/gar/?rev=11892&view=rev Author: bdwalton Date: 2010-12-12 20:31:24 +0000 (Sun, 12 Dec 2010) Log Message: ----------- exim: drop useless space file Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Removed Paths: ------------- csw/mgar/pkg/exim/trunk/files/CSWexim.space Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-12 20:29:44 UTC (rev 11891) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-12 20:31:24 UTC (rev 11892) @@ -17,7 +17,7 @@ MASTER_SITES = ftp://ftp.exim.org/pub/exim/exim4/ DISTFILES = $(NAME)-$(VERSION).tar.bz2 DISTFILES += $(call admfiles,CSWexim prototype postinstall postremove \ - preinstall preremove request space checkinstall) + preinstall preremove request checkinstall) DISTFILES += Makefile.patch exim_install.patch spf2.patch DISTFILES += i.smfyes i.smfno Deleted: csw/mgar/pkg/exim/trunk/files/CSWexim.space =================================================================== --- csw/mgar/pkg/exim/trunk/files/CSWexim.space 2010-12-12 20:29:44 UTC (rev 11891) +++ csw/mgar/pkg/exim/trunk/files/CSWexim.space 2010-12-12 20:31:24 UTC (rev 11892) @@ -1,3 +0,0 @@ -# No additional space is actually needed. -# In fact, only one set of the Solaris release specific files are installed. -# So the space required for this package is less than what is in pkgmap. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 12 21:49:03 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 12 Dec 2010 20:49:03 +0000 Subject: [csw-devel] SF.net SVN: gar:[11893] csw/mgar/pkg/exim/trunk Message-ID: Revision: 11893 http://gar.svn.sourceforge.net/gar/?rev=11893&view=rev Author: bdwalton Date: 2010-12-12 20:49:03 +0000 (Sun, 12 Dec 2010) Log Message: ----------- exim: drop preinstall script and user/group CAS Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Removed Paths: ------------- csw/mgar/pkg/exim/trunk/files/CSWexim.preinstall Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-12 20:31:24 UTC (rev 11892) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-12 20:49:03 UTC (rev 11893) @@ -17,7 +17,7 @@ MASTER_SITES = ftp://ftp.exim.org/pub/exim/exim4/ DISTFILES = $(NAME)-$(VERSION).tar.bz2 DISTFILES += $(call admfiles,CSWexim prototype postinstall postremove \ - preinstall preremove request checkinstall) + preremove request checkinstall) DISTFILES += Makefile.patch exim_install.patch spf2.patch DISTFILES += i.smfyes i.smfno @@ -57,6 +57,10 @@ BINS = exim exim_dbmbuild exim_dumpdb exim_fixdb exim_lock exim_tidydb BINS += eximon.bin +UGPATH=/etc/opt/csw/pkg/CSWexim +UGENTRY = "exim:exim:CSW Exim User:/var/opt/csw/spool/exim:/bin/false:::NP" +USERGROUP = $(UGPATH)/cswusergroup + include gar/category.mk pre-patch: @@ -97,3 +101,7 @@ cp -p $(DOC_LIST) $(DESTDIR)$(prefix)/share/doc/exim) gzip -f $(DESTDIR)$(prefix)/share/doc/exim/ChangeLog gzip -f $(DESTDIR)$(prefix)/share/doc/exim/spec.txt + +post-merge: + @( cd $(PKGROOT); mkdir -p ./$(UGPATH); \ + echo "$(UGENTRY)" > ./$(UGPATH)/cswusergroup" ) Deleted: csw/mgar/pkg/exim/trunk/files/CSWexim.preinstall =================================================================== --- csw/mgar/pkg/exim/trunk/files/CSWexim.preinstall 2010-12-12 20:31:24 UTC (rev 11892) +++ csw/mgar/pkg/exim/trunk/files/CSWexim.preinstall 2010-12-12 20:49:03 UTC (rev 11893) @@ -1,47 +0,0 @@ -#!/bin/sh - -# This script exists for the sole purpose of making sure the required -# account and group "exim" exist already. -# It also replaces the existing default sendmail installation - -EXIMHOME=/opt/csw/sbin -EXIMUSER=exim -EXIMGROUP=exim - -if [ "$PKG_ROOT_DIR" = "" ]; then - PKG_ROOT_DIR="/" -fi - -#First check target machines password file, THEN check -#NIS/NIS+/whatever - -grep "^$EXIMUSER:" $PKG_ROOT_DIR/etc/passwd >/dev/null -if [ $? -ne 0 ]; then - getent passwd $EXIMUSER >/dev/null - if [ $? -ne 0 ]; then - NEEDUSER=1 - fi -fi - -grep "^$EXIMGROUP:" $PKG_ROOT_DIR/etc/group >/dev/null -if [ $? -ne 0 ]; then - getent group $EXIMGROUP >/dev/null - if [ $? -ne 0 ]; then - NEEDGROUP=1 - fi -fi - -if [ "$NEEDGROUP" = 1 ]; then - echo adding group $EXIMGROUP - chroot $PKG_ROOT_DIR /usr/sbin/groupadd $EXIMGROUP -else - echo group $EXIMGROUP detected -fi - -if [ "$NEEDUSER" = 1 ]; then - echo adding user $EXIMUSER - chroot $PKG_ROOT_DIR /usr/sbin/useradd -g $EXIMGROUP $EXIMUSER - chroot $PKG_ROOT_DIR /usr/sbin/usermod -s /bin/false -d $EXIMHOME $EXIMUSER -else - echo user $EXIMUSER detected -fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 13 00:55:19 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Sun, 12 Dec 2010 23:55:19 +0000 Subject: [csw-devel] SF.net SVN: gar:[11894] csw/mgar/pkg/cups/trunk Message-ID: Revision: 11894 http://gar.svn.sourceforge.net/gar/?rev=11894&view=rev Author: wahwah Date: 2010-12-12 23:55:19 +0000 (Sun, 12 Dec 2010) Log Message: ----------- cups: Version bump to 1.4.5, and a patch Also, killing the cupslinks package. Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/cups/trunk/files/0009-giving-precedence-to-statvfs-in-printers.c.patch Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2010-12-12 20:49:03 UTC (rev 11893) +++ csw/mgar/pkg/cups/trunk/Makefile 2010-12-12 23:55:19 UTC (rev 11894) @@ -57,6 +57,7 @@ PATCHFILES += CFLAGS-leaking-to-C++-compiler.patch PATCHFILES += 0008-Adding-CFLAGS-and-CXXFLAGS-to-linker-calls.patch PATCHFILES += 0009-Add-workaround-for-krb5-config-outputting-CFLAGS.patch +PATCHFILES += 0009-giving-precedence-to-statvfs-in-printers.c.patch BUILD_DEP_PKGS = CSWggettext BUILD_DEP_PKGS += CSWjpeg @@ -77,12 +78,19 @@ PACKAGES += CSWcupsdoc PACKAGES += CSWcupsdev PACKAGES += CSWcups -PACKAGES += CSWcupslinks -INCOMPATIBLE_PKGS_CSWcupslinks = SUNWpcr SUNWpcu -CATALOGNAME_CSWcupslinks = cups_links + +# The problematic cupslinks package +# PACKAGES += CSWcupslinks +# INCOMPATIBLE_PKGS_CSWcupslinks = SUNWpcr SUNWpcu +# CATALOGNAME_CSWcupslinks = cups_links +# ARCHALL_CSWcupslinks = 1 +# PKGFILES_CSWcupslinks = /usr/sbin/.* +# PKGFILES_CSWcupslinks += /usr/bin/.* +# SPKG_DESC_CSWcupslinks = Drop-in replacement for SUNWpcu and SUNWpcr +# CUPSLINKS_TARGET = cupslinks + ARCHALL_CSWcups = 1 -ARCHALL_CSWcupslinks = 1 ARCHALL_CSWcupsdoc = 1 RUNTIME_DEP_PKGS_CSWcups += CSWcupsd @@ -91,6 +99,7 @@ RUNTIME_DEP_PKGS_CSWcupsd += CSWkrb5lib RUNTIME_DEP_PKGS_CSWcupsd += CSWlibdbus RUNTIME_DEP_PKGS_CSWcupsd += CSWzlib +RUNTIME_DEP_PKGS_CSWcupsd += CSWoldaprt RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcups @@ -151,8 +160,6 @@ PKGFILES_CSWcupsclient += $(mandir)/man5/ppdcfile\.5 PKGFILES_CSWcupsclient += $(mandir)/man7/(drv|notifier)\.7 PKGFILES_CSWcupsclient += $(sysconfdir)/cups/client\.conf\.CSW -PKGFILES_CSWcupslinks = /usr/sbin/.* -PKGFILES_CSWcupslinks += /usr/bin/.* SPKG_DESC_CSWcups = Common Unix Printing System SPKG_DESC_CSWlibcups = Empty transitional package (was: CUPS libraries) @@ -160,7 +167,6 @@ SPKG_DESC_CSWcupsclient = CUPS client binaries SPKG_DESC_CSWcupsdoc = CUPS documentation SPKG_DESC_CSWcupsdev = CUPS header files -SPKG_DESC_CSWcupslinks = Drop-in replacement for SUNWpcu and SUNWpcr # Packages compliant with the shared library policy. PACKAGES += CSWlibcups2 @@ -255,6 +261,9 @@ CHECKPKG_OVERRIDES_CSWcupsdev += surplus-dependency|CSWlibcupsimage2 CHECKPKG_OVERRIDES_CSWcupsdev += surplus-dependency|CSWlibcupscgi1 +CHECKPKG_OVERRIDES_CSWcups += surplus-dependency|CSWcupsclient +CHECKPKG_OVERRIDES_CSWcups += surplus-dependency|CSWcupsd + # http://lists.opencsw.org/pipermail/maintainers/2009-September/004249.html SAMPLECONF_CSWcupsd = $(sysconfdir)/cups/cupsd\.conf\.CSW SAMPLECONF_CSWcupsclient += $(sysconfdir)/cups/client\.conf\.CSW @@ -312,12 +321,12 @@ # The following overrides are necessary because of a bug in krb5-config, please # see bug http://www.opencsw.org/bugtrack/view.php?id=4384 -CHECKPKG_OVERRIDES_CSWcupsd += bad-rpath-entry|/opt/csw/lib/|opt/csw/sbin/cupsd -CHECKPKG_OVERRIDES_CSWlibcups2 += bad-rpath-entry|/opt/csw/lib/|opt/csw/lib/libcups.so.2 +CHECKPKG_OVERRIDES_CSWcupsd += bad-rpath-entry +CHECKPKG_OVERRIDES_CSWlibcups2 += bad-rpath-entry include gar/category.mk -post-install-modulated: +post-install-modulated: $(CUPSLINKS_TARGET) (cd $(DESTDIR)$(sysconfdir)/cups; \ echo "Making .CSW configs in $(DESTDIR)$(sysconfdir)/cups"; \ for i in cupsd.conf; do \ @@ -330,6 +339,13 @@ ginstall -m 644 \ $(FILEDIR)/client.conf.CSW \ $(DESTDIR)$(sysconfdir)/cups/client.conf.CSW + for f in $(DESTDIR)$(libdir)/cups/backend/*; do \ + chmod 0700 $${f}; \ + done + @$(MAKECOOKIE) + +cupslinks: + # https://www.opencsw.org/mantis/view.php?id=2924 ginstall -d -m 755 $(DESTDIR)/usr/bin for f in cancel lp lpoptions lppassd lpq lpr lprm lpstat; do \ ln -s ../../opt/csw/bin/$$f $(DESTDIR)/usr/bin/$$f; \ @@ -338,7 +354,3 @@ for f in accept lpadmin lpc lpinfo lpmove reject; do \ ln -s ../../opt/csw/sbin/$$f $(DESTDIR)/usr/sbin/$$f; \ done - for f in $(DESTDIR)$(libdir)/cups/backend/*; do \ - chmod 0700 $${f}; \ - done - @$(MAKECOOKIE) Added: csw/mgar/pkg/cups/trunk/files/0009-giving-precedence-to-statvfs-in-printers.c.patch =================================================================== --- csw/mgar/pkg/cups/trunk/files/0009-giving-precedence-to-statvfs-in-printers.c.patch (rev 0) +++ csw/mgar/pkg/cups/trunk/files/0009-giving-precedence-to-statvfs-in-printers.c.patch 2010-12-12 23:55:19 UTC (rev 11894) @@ -0,0 +1,42 @@ +From 6773ba8aafda87c8f4a5ebee4fd919037cd24f35 Mon Sep 17 00:00:00 2001 +From: Maciej Blizinski +Date: Sun, 12 Dec 2010 03:24:12 +0100 +Subject: [PATCH] giving precedence to statvfs in printers.c + +--- + scheduler/printers.c | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/scheduler/printers.c b/scheduler/printers.c +index 0b8aff1..31bcbc4 100644 +--- a/scheduler/printers.c ++++ b/scheduler/printers.c +@@ -490,19 +490,19 @@ cupsdCreateCommonData(void) + * or the filesystem is larger than 2TiB, always report INT_MAX. + */ + +-#ifdef HAVE_STATFS +- if (statfs(RequestRoot, &spoolinfo)) ++#ifdef HAVE_STATVFS ++ if (statvfs(RequestRoot, &spoolinfo)) + k_supported = INT_MAX; +- else if ((spoolsize = (double)spoolinfo.f_bsize * spoolinfo.f_blocks / 1024) > ++ else if ((spoolsize = (double)spoolinfo.f_frsize * spoolinfo.f_blocks / 1024) > + INT_MAX) + k_supported = INT_MAX; + else + k_supported = (int)spoolsize; + +-#elif defined(HAVE_STATVFS) +- if (statvfs(RequestRoot, &spoolinfo)) ++#elif defined(HAVE_STATFS) ++ if (statfs(RequestRoot, &spoolinfo)) + k_supported = INT_MAX; +- else if ((spoolsize = (double)spoolinfo.f_frsize * spoolinfo.f_blocks / 1024) > ++ else if ((spoolsize = (double)spoolinfo.f_bsize * spoolinfo.f_blocks / 1024) > + INT_MAX) + k_supported = INT_MAX; + else +-- +1.7.3.2 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 13 01:45:40 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 13 Dec 2010 00:45:40 +0000 Subject: [csw-devel] SF.net SVN: gar:[11895] csw/mgar/gar/v2/lib/python/package_checks.py Message-ID: Revision: 11895 http://gar.svn.sourceforge.net/gar/?rev=11895&view=rev Author: wahwah Date: 2010-12-13 00:45:40 +0000 (Mon, 13 Dec 2010) Log Message: ----------- checkpkg: CSWlibcups is now a deprecated library Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-12 23:55:19 UTC (rev 11894) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-13 00:45:40 UTC (rev 11895) @@ -55,6 +55,11 @@ "hint": "CSWpython-rt is deprecated, use CSWpython instead.", "url": "http://www.opencsw.org/bugtrack/view.php?id=4031" }, + "CSWlibcups": { + "hint": "CSWlibcups is deprecated, please depend on specific " + "shared library packages.", + "url": "http://wiki.opencsw.org/packaging-shared-libraries", + } } ARCH_RE = re.compile(r"(sparcv(8|9)|i386|amd64)") EMAIL_RE = re.compile(r"^.*@opencsw.org$") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 13 01:46:22 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 13 Dec 2010 00:46:22 +0000 Subject: [csw-devel] SF.net SVN: gar:[11896] csw/mgar/gar/v2/lib/python/package_stats_test.py Message-ID: Revision: 11896 http://gar.svn.sourceforge.net/gar/?rev=11896&view=rev Author: wahwah Date: 2010-12-13 00:46:22 +0000 (Mon, 13 Dec 2010) Log Message: ----------- checkpkg: Override insertion test Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_stats_test.py Modified: csw/mgar/gar/v2/lib/python/package_stats_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-13 00:45:40 UTC (rev 11895) +++ csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-13 00:46:22 UTC (rev 11896) @@ -223,6 +223,19 @@ new_data = new_pkgstats.GetAllStats() self.assertEqual(md5_sum, new_data["basic_stats"]["md5_sum"]) + def testImportOverrides(self): + md5_sum = tree_stats[0]["basic_stats"]["md5_sum"] + self.assertEqual(u'1e43fa1c7e637b25d9356ad516ae0403', md5_sum) + new_stats = copy.deepcopy(tree_stats[0]) + new_stats["overrides"].append( + {'pkgname': 'CSWtree', + 'tag_info': None, + 'tag_name': 'bad-rpath-entry'}) + self.TestPackageStats.SaveStats(new_stats) + o = m.CheckpkgOverride.select().getOne() + self.assertEquals("CSWtree", o.pkgname) + self.assertEquals("bad-rpath-entry", o.tag_name) + def testImportPkg(self): """Registers the package in the database.""" package_stats.PackageStats.ImportPkg(neon_stats[0]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 13 01:46:45 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 13 Dec 2010 00:46:45 +0000 Subject: [csw-devel] SF.net SVN: gar:[11897] csw/mgar/gar/v2/lib/python/models.py Message-ID: Revision: 11897 http://gar.svn.sourceforge.net/gar/?rev=11897&view=rev Author: wahwah Date: 2010-12-13 00:46:45 +0000 (Mon, 13 Dec 2010) Log Message: ----------- checkpkg: Don't remove overrides when cleaning When re-running checkpkg against a package that was already in the database, don't remove the overrides from the db. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/models.py Modified: csw/mgar/gar/v2/lib/python/models.py =================================================================== --- csw/mgar/gar/v2/lib/python/models.py 2010-12-13 00:46:22 UTC (rev 11896) +++ csw/mgar/gar/v2/lib/python/models.py 2010-12-13 00:46:45 UTC (rev 11897) @@ -151,10 +151,6 @@ CheckpkgErrorTag.q.os_rel==os_rel, CheckpkgErrorTag.q.arch==arch, CheckpkgErrorTag.q.catrel==catrel)))) - sqlobject.sqlhub.processConnection.query( - sqlobject.sqlhub.processConnection.sqlrepr(sqlbuilder.Delete( - CheckpkgOverride.sqlmeta.table, - CheckpkgOverride.q.srv4_file==self))) class CheckpkgErrorTagMixin(object): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 13 01:47:18 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 13 Dec 2010 00:47:18 +0000 Subject: [csw-devel] SF.net SVN: gar:[11898] csw/mgar/gar/v2 Message-ID: Revision: 11898 http://gar.svn.sourceforge.net/gar/?rev=11898&view=rev Author: wahwah Date: 2010-12-13 00:47:18 +0000 (Mon, 13 Dec 2010) Log Message: ----------- checkpkg_inspect_stats: Adding a missing import Also, adding a line which establishes a connection to the database. Modified Paths: -------------- csw/mgar/gar/v2/bin/checkpkg_inspect_stats.py csw/mgar/gar/v2/lib/python/checkpkg.py Modified: csw/mgar/gar/v2/bin/checkpkg_inspect_stats.py =================================================================== --- csw/mgar/gar/v2/bin/checkpkg_inspect_stats.py 2010-12-13 00:46:45 UTC (rev 11897) +++ csw/mgar/gar/v2/bin/checkpkg_inspect_stats.py 2010-12-13 00:47:18 UTC (rev 11898) @@ -18,8 +18,10 @@ sys.path.append(os.path.join(*path_list)) import checkpkg import opencsw +import configuration def main(): + configuration.SetUpSqlobjectConnection() usage = "Usage: %prog [ options ] file | md5 [ file | md5 [ ... ] ]" parser = optparse.OptionParser(usage) parser.add_option("-d", "--debug", dest="debug", Modified: csw/mgar/gar/v2/lib/python/checkpkg.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-13 00:46:45 UTC (rev 11897) +++ csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-13 00:47:18 UTC (rev 11898) @@ -17,6 +17,7 @@ import inspective_package import models as m import common_constants +import package_stats DO_NOT_REPORT_SURPLUS = set([u"CSWcommon", u"CSWcswclassutils", u"CSWisaexec"]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 01:51:42 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 00:51:42 +0000 Subject: [csw-devel] SF.net SVN: gar:[11899] csw/mgar/pkg/exim/trunk/files Message-ID: Revision: 11899 http://gar.svn.sourceforge.net/gar/?rev=11899&view=rev Author: bdwalton Date: 2010-12-13 00:51:42 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: a few s/blastwave/opencsw/ modifications Modified Paths: -------------- csw/mgar/pkg/exim/trunk/files/cswexim csw/mgar/pkg/exim/trunk/files/exim-env.sh Modified: csw/mgar/pkg/exim/trunk/files/cswexim =================================================================== --- csw/mgar/pkg/exim/trunk/files/cswexim 2010-12-13 00:47:18 UTC (rev 11898) +++ csw/mgar/pkg/exim/trunk/files/cswexim 2010-12-13 00:51:42 UTC (rev 11899) @@ -5,6 +5,7 @@ # Modified for Debian GNU/Linux by Ian Murdock . # Modified for exim by Tim Cutts # Modified for Blastwave by Markus Mayer +# Modified for OpenCSW by Ben Walton # Exit if exim (or another MTA) runs from /etc/inetd.conf if [ -f /etc/inetd.conf ] && grep "^ *\([0-9.]\+:\)\?smtp" /etc/inetd.conf >/dev/null; then Modified: csw/mgar/pkg/exim/trunk/files/exim-env.sh =================================================================== --- csw/mgar/pkg/exim/trunk/files/exim-env.sh 2010-12-13 00:47:18 UTC (rev 11898) +++ csw/mgar/pkg/exim/trunk/files/exim-env.sh 2010-12-13 00:51:42 UTC (rev 11899) @@ -1,5 +1,5 @@ # -# This file is part of Blastwave's Exim distribution. +# This file is part of OpenCSW's Exim distribution. # # Environment variables and the command-line arguments used to run Exim can be # modified here. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 01:55:12 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 00:55:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[11900] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11900 http://gar.svn.sourceforge.net/gar/?rev=11900&view=rev Author: bdwalton Date: 2010-12-13 00:55:11 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: add libspf2 as a build dep Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 00:51:42 UTC (rev 11899) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 00:55:11 UTC (rev 11900) @@ -21,6 +21,8 @@ DISTFILES += Makefile.patch exim_install.patch spf2.patch DISTFILES += i.smfyes i.smfno +BUILD_DEP_PKGS = CSWlibspf2 + RUNTIME_DEP_PKGS_CSWexim = CSWiconv CSWoldaprt CSWosslrt CSWsasl RUNTIME_DEP_PKGS_CSWexim = CSWmysql5rt CSWlibpq CSWlibspf2 CSWggettext This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 01:56:06 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 00:56:06 +0000 Subject: [csw-devel] SF.net SVN: gar:[11901] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11901 http://gar.svn.sourceforge.net/gar/?rev=11901&view=rev Author: bdwalton Date: 2010-12-13 00:56:05 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: use -modulated for pre-patch and post-install targets for gar modernization Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 00:55:11 UTC (rev 11900) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 00:56:05 UTC (rev 11901) @@ -65,7 +65,7 @@ include gar/category.mk -pre-patch: +pre-patch-modulated: (cd $(WORKSRC); \ test -r Local/Makefile || cp -p src/EDITME Local/Makefile; \ test -r Local/eximon.conf || cp -p exim_monitor/EDITME Local/eximon.conf; \ @@ -78,7 +78,7 @@ DOC_LIST += README README.SIEVE dbm.discuss.txt filter.txt pcrepattern.txt DOC_LIST += pcretest.txt spec.txt -post-install: +post-install-modulated: (cd $(DESTDIR)$(prefix)/sbin; \ mv exim-$(VERSION) exim; \ /usr/ccs/bin/strip $(BINS); \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 13 01:56:41 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 13 Dec 2010 00:56:41 +0000 Subject: [csw-devel] SF.net SVN: gar:[11902] csw/mgar/gar/v2/lib/python Message-ID: Revision: 11902 http://gar.svn.sourceforge.net/gar/?rev=11902&view=rev Author: wahwah Date: 2010-12-13 00:56:41 +0000 (Mon, 13 Dec 2010) Log Message: ----------- checkpkg: Override application bugfix Moving the DoesApply function to models. It now works with the SQLObject type of overrides. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/models.py csw/mgar/gar/v2/lib/python/overrides.py Modified: csw/mgar/gar/v2/lib/python/models.py =================================================================== --- csw/mgar/gar/v2/lib/python/models.py 2010-12-13 00:56:05 UTC (rev 11901) +++ csw/mgar/gar/v2/lib/python/models.py 2010-12-13 00:56:41 UTC (rev 11902) @@ -198,6 +198,21 @@ tag_name = sqlobject.UnicodeCol(notNone=True) tag_info = sqlobject.UnicodeCol(default=None) + def DoesApply(self, tag): + """Figures out if this override applies to the given tag.""" + basket_a = {} + basket_b = {} + if self.pkgname: + basket_a["pkgname"] = self.pkgname + basket_b["pkgname"] = tag.pkgname + if self.tag_info: + basket_a["tag_info"] = self.tag_info + basket_b["tag_info"] = tag.tag_info + basket_a["tag_name"] = self.tag_name + basket_b["tag_name"] = tag.tag_name + return basket_a == basket_b + + class Srv4FileInCatalog(sqlobject.SQLObject): """Assignment of a particular srv4 file to a specific catalog. Modified: csw/mgar/gar/v2/lib/python/overrides.py =================================================================== --- csw/mgar/gar/v2/lib/python/overrides.py 2010-12-13 00:56:05 UTC (rev 11901) +++ csw/mgar/gar/v2/lib/python/overrides.py 2010-12-13 00:56:41 UTC (rev 11902) @@ -38,21 +38,7 @@ return (u"Override(%s, %s, %s)" % (repr(self.pkgname), repr(self.tag_name), repr(self.tag_info))) - def DoesApply(self, tag): - """Figures out if this override applies to the given tag.""" - basket_a = {} - basket_b = {} - if self.pkgname: - basket_a["pkgname"] = self.pkgname - basket_b["pkgname"] = tag.pkgname - if self.tag_info: - basket_a["tag_info"] = self.tag_info - basket_b["tag_info"] = tag.tag_info - basket_a["tag_name"] = self.tag_name - basket_b["tag_name"] = tag.tag_name - return basket_a == basket_b - def ApplyOverrides(error_tags, override_list): """Filters out all the error tags that overrides apply to. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 02:48:23 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 01:48:23 +0000 Subject: [csw-devel] SF.net SVN: gar:[11903] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11903 http://gar.svn.sourceforge.net/gar/?rev=11903&view=rev Author: bdwalton Date: 2010-12-13 01:48:23 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: change admfiles to explicit list (still needs weaning) Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 00:56:41 UTC (rev 11902) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 01:48:23 UTC (rev 11903) @@ -16,8 +16,8 @@ MASTER_SITES = ftp://ftp.exim.org/pub/exim/exim4/ DISTFILES = $(NAME)-$(VERSION).tar.bz2 -DISTFILES += $(call admfiles,CSWexim prototype postinstall postremove \ - preremove request checkinstall) +DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.preremove +DISTFILES += CSWexim.request CSWexim.checkinstall DISTFILES += Makefile.patch exim_install.patch spf2.patch DISTFILES += i.smfyes i.smfno This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 02:49:09 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 01:49:09 +0000 Subject: [csw-devel] SF.net SVN: gar:[11904] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11904 http://gar.svn.sourceforge.net/gar/?rev=11904&view=rev Author: bdwalton Date: 2010-12-13 01:49:09 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: drop local CAS scripts from list as functionality will move to cswinitsmf anyway (keep files for now) Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 01:48:23 UTC (rev 11903) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 01:49:09 UTC (rev 11904) @@ -19,7 +19,6 @@ DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.preremove DISTFILES += CSWexim.request CSWexim.checkinstall DISTFILES += Makefile.patch exim_install.patch spf2.patch -DISTFILES += i.smfyes i.smfno BUILD_DEP_PKGS = CSWlibspf2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 02:53:30 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 01:53:30 +0000 Subject: [csw-devel] SF.net SVN: gar:[11905] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11905 http://gar.svn.sourceforge.net/gar/?rev=11905&view=rev Author: bdwalton Date: 2010-12-13 01:53:29 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: correct another patch hook target to trigger on modulated Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 01:49:09 UTC (rev 11904) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 01:53:29 UTC (rev 11905) @@ -70,7 +70,7 @@ test -r Local/eximon.conf || cp -p exim_monitor/EDITME Local/eximon.conf; \ test -d spf2 || cp -pr /opt/csw/include/spf2 .) -post-patch: +post-patch-modulated: (cd $(WORKSRC); make makefile) DOC_LIST = ChangeLog Exim3.upgrade Exim4.upgrade NewStuff OptionLists.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 02:55:10 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 01:55:10 +0000 Subject: [csw-devel] SF.net SVN: gar:[11906] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11906 http://gar.svn.sourceforge.net/gar/?rev=11906&view=rev Author: bdwalton Date: 2010-12-13 01:55:10 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: drop redundant list of patches from DISTFILES Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 01:53:29 UTC (rev 11905) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 01:55:10 UTC (rev 11906) @@ -18,7 +18,6 @@ DISTFILES = $(NAME)-$(VERSION).tar.bz2 DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.preremove DISTFILES += CSWexim.request CSWexim.checkinstall -DISTFILES += Makefile.patch exim_install.patch spf2.patch BUILD_DEP_PKGS = CSWlibspf2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 02:57:32 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 01:57:32 +0000 Subject: [csw-devel] SF.net SVN: gar:[11907] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11907 http://gar.svn.sourceforge.net/gar/?rev=11907&view=rev Author: bdwalton Date: 2010-12-13 01:57:31 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: move post-patch hook code to pre-build so git patching will be cleaner Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 01:55:10 UTC (rev 11906) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 01:57:31 UTC (rev 11907) @@ -69,7 +69,7 @@ test -r Local/eximon.conf || cp -p exim_monitor/EDITME Local/eximon.conf; \ test -d spf2 || cp -pr /opt/csw/include/spf2 .) -post-patch-modulated: +pre-build-modulated: (cd $(WORKSRC); make makefile) DOC_LIST = ChangeLog Exim3.upgrade Exim4.upgrade NewStuff OptionLists.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 03:36:09 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 02:36:09 +0000 Subject: [csw-devel] SF.net SVN: gar:[11908] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11908 http://gar.svn.sourceforge.net/gar/?rev=11908&view=rev Author: bdwalton Date: 2010-12-13 02:36:09 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: depend on gzip and zcat as per pending config options Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 01:57:31 UTC (rev 11907) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 02:36:09 UTC (rev 11908) @@ -23,6 +23,7 @@ RUNTIME_DEP_PKGS_CSWexim = CSWiconv CSWoldaprt CSWosslrt CSWsasl RUNTIME_DEP_PKGS_CSWexim = CSWmysql5rt CSWlibpq CSWlibspf2 CSWggettext +RUNTIME_DEP_PKGS_CSWexim = CSWgzip CSWgzipextras # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 03:37:21 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 02:37:21 +0000 Subject: [csw-devel] SF.net SVN: gar:[11909] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11909 http://gar.svn.sourceforge.net/gar/?rev=11909&view=rev Author: bdwalton Date: 2010-12-13 02:37:21 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: tweak pre-patch hook to play nice with git patching Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 02:36:09 UTC (rev 11908) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 02:37:21 UTC (rev 11909) @@ -68,7 +68,9 @@ (cd $(WORKSRC); \ test -r Local/Makefile || cp -p src/EDITME Local/Makefile; \ test -r Local/eximon.conf || cp -p exim_monitor/EDITME Local/eximon.conf; \ - test -d spf2 || cp -pr /opt/csw/include/spf2 .) + git add Local/; git ci -m 'Setup Local build default files'; \ + test -d spf2 || cp -pr /opt/csw/include/spf2 .; \ + git add spf2; git ci -m 'import spf2 header files' ) pre-build-modulated: (cd $(WORKSRC); make makefile) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 04:29:37 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 03:29:37 +0000 Subject: [csw-devel] SF.net SVN: gar:[11910] csw/mgar/pkg/exim/trunk Message-ID: Revision: 11910 http://gar.svn.sourceforge.net/gar/?rev=11910&view=rev Author: bdwalton Date: 2010-12-13 03:29:36 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: update patch files (new build config, reuse spf2). more required, potentially Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/exim/trunk/files/0003-Set-build-options-in-Local-Makefile.patch Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 02:37:21 UTC (rev 11909) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 03:29:36 UTC (rev 11910) @@ -19,6 +19,9 @@ DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.preremove DISTFILES += CSWexim.request CSWexim.checkinstall +PATCHFILES += 0003-Set-build-options-in-Local-Makefile.patch +PATCHFILES += spf2.patch + BUILD_DEP_PKGS = CSWlibspf2 RUNTIME_DEP_PKGS_CSWexim = CSWiconv CSWoldaprt CSWosslrt CSWsasl @@ -28,7 +31,6 @@ # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 -PATCHFILES = Makefile.patch exim_install.patch spf2.patch LD_OPTIONS = -R/opt/csw/lib/\$$ISALIST -R/opt/csw/lib Added: csw/mgar/pkg/exim/trunk/files/0003-Set-build-options-in-Local-Makefile.patch =================================================================== --- csw/mgar/pkg/exim/trunk/files/0003-Set-build-options-in-Local-Makefile.patch (rev 0) +++ csw/mgar/pkg/exim/trunk/files/0003-Set-build-options-in-Local-Makefile.patch 2010-12-13 03:29:36 UTC (rev 11910) @@ -0,0 +1,317 @@ +From 80af317076aa950fcbd941619fac281e26825310 Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Mon, 13 Dec 2010 04:24:32 +0100 +Subject: [PATCH] Set build options in Local/Makefile + +This file specifies the build options for Exim instead of a traditional +configure script. + +Signed-off-by: Ben Walton +--- + Local/Makefile | 90 ++++++++++++++++++++++++++++---------------------------- + 1 files changed, 45 insertions(+), 45 deletions(-) + +diff --git a/Local/Makefile b/Local/Makefile +index 9869eb1..57bf30b 100644 +--- a/Local/Makefile ++++ b/Local/Makefile +@@ -100,7 +100,7 @@ + # /usr/local/sbin. The installation script will try to create this directory, + # and any superior directories, if they do not exist. + +-BIN_DIRECTORY=/usr/exim/bin ++BIN_DIRECTORY=/opt/csw/sbin + + + #------------------------------------------------------------------------------ +@@ -116,7 +116,7 @@ BIN_DIRECTORY=/usr/exim/bin + # don't exist. It will also install a default runtime configuration if this + # file does not exist. + +-CONFIGURE_FILE=/usr/exim/configure ++CONFIGURE_FILE=/etc/opt/csw/exim/exim.conf + + # It is possible to specify a colon-separated list of files for CONFIGURE_FILE. + # In this case, Exim will use the first of them that exists when it is run. +@@ -134,7 +134,7 @@ CONFIGURE_FILE=/usr/exim/configure + # owner of a local mailbox.) Specifying these values as root is very strongly + # discouraged. + +-EXIM_USER= ++EXIM_USER=ref:exim + + # If you specify EXIM_USER as a name, this is looked up at build time, and the + # uid number is built into the binary. However, you can specify that this +@@ -176,7 +176,7 @@ EXIM_USER= + + # Almost all installations choose this: + +-SPOOL_DIRECTORY=/var/spool/exim ++SPOOL_DIRECTORY=/var/opt/csw/spool/exim + + + +@@ -214,7 +214,7 @@ ROUTER_REDIRECT=yes + + # This one is very special-purpose, so is not included by default. + +-# ROUTER_IPLOOKUP=yes ++ROUTER_IPLOOKUP=yes + + + #------------------------------------------------------------------------------ +@@ -235,7 +235,7 @@ TRANSPORT_SMTP=yes + # This one is special-purpose, and commonly not required, so it is not + # included by default. + +-# TRANSPORT_LMTP=yes ++TRANSPORT_LMTP=yes + + + #------------------------------------------------------------------------------ +@@ -244,9 +244,9 @@ TRANSPORT_SMTP=yes + # MBX, is included only when requested. If you do not know what this is about, + # leave these settings commented out. + +-# SUPPORT_MAILDIR=yes +-# SUPPORT_MAILSTORE=yes +-# SUPPORT_MBX=yes ++SUPPORT_MAILDIR=yes ++SUPPORT_MAILSTORE=yes ++SUPPORT_MBX=yes + + + #------------------------------------------------------------------------------ +@@ -262,16 +262,16 @@ LOOKUP_DBM=yes + LOOKUP_LSEARCH=yes + LOOKUP_DNSDB=yes + +-# LOOKUP_CDB=yes +-# LOOKUP_DSEARCH=yes ++LOOKUP_CDB=yes ++LOOKUP_DSEARCH=yes + # LOOKUP_IBASE=yes +-# LOOKUP_LDAP=yes +-# LOOKUP_MYSQL=yes +-# LOOKUP_NIS=yes +-# LOOKUP_NISPLUS=yes ++LOOKUP_LDAP=yes ++LOOKUP_MYSQL=yes ++LOOKUP_NIS=yes ++LOOKUP_NISPLUS=yes + # LOOKUP_ORACLE=yes +-# LOOKUP_PASSWD=yes +-# LOOKUP_PGSQL=yes ++LOOKUP_PASSWD=yes ++LOOKUP_PGSQL=yes + # LOOKUP_SQLITE=yes + # LOOKUP_WHOSON=yes + +@@ -292,7 +292,7 @@ LOOKUP_DNSDB=yes + # with Solaris 7 onwards. Uncomment whichever of these you are using. + + # LDAP_LIB_TYPE=OPENLDAP1 +-# LDAP_LIB_TYPE=OPENLDAP2 ++LDAP_LIB_TYPE=OPENLDAP2 + # LDAP_LIB_TYPE=NETSCAPE + # LDAP_LIB_TYPE=SOLARIS + +@@ -321,8 +321,8 @@ PCRE_LIBS=-lpcre + # specified in INCLUDE. The settings below are just examples; -lpq is for + # PostgreSQL, -lgds is for Interbase, -lsqlite3 is for SQLite. + +-# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include +-# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq -lgds -lsqlite3 ++LOOKUP_INCLUDE=-I /opt/csw/mysql/include/mysql -I /opt/csw/postgresql/include ++LOOKUP_LIBS=-L/opt/csw/mysql5/lib/mysql -L/opt/csw/postgresql/lib -lldap -llber -lmysqlclient -lpq + + + #------------------------------------------------------------------------------ +@@ -343,14 +343,14 @@ EXIM_MONITOR=eximon.bin + # and the MIME ACL. Please read the documentation to learn more about these + # features. + +-# WITH_CONTENT_SCAN=yes ++WITH_CONTENT_SCAN=yes + + # If you want to use the deprecated "demime" condition in the DATA ACL, + # uncomment the line below. Doing so will also explicitly turn on the + # WITH_CONTENT_SCAN option. If possible, use the MIME ACL instead of + # the "demime" condition. + +-# WITH_OLD_DEMIME=yes ++WITH_OLD_DEMIME=yes + + #------------------------------------------------------------------------------ + # Compiling Exim with experimental features. These are documented in +@@ -361,9 +361,9 @@ EXIM_MONITOR=eximon.bin + # installed on your system (www.libspf2.org). Depending on where it is installed + # you may have to edit the CFLAGS and LDFLAGS lines. + +-# EXPERIMENTAL_SPF=yes ++EXPERIMENTAL_SPF=yes + # CFLAGS += -I/usr/local/include +-# LDFLAGS += -lspf2 ++LDFLAGS += -lspf2 + + # Uncomment the following lines to add SRS (Sender rewriting scheme) support. + # You need to have libsrs_alt installed on your system (srs.mirtol.com). +@@ -451,7 +451,7 @@ FIXED_NEVER_USERS=root + # used. The prefix can be more restrictive than just a directory (the second + # example). + +-# ALT_CONFIG_PREFIX=/some/directory/ ++ALT_CONFIG_PREFIX=/etc/opt/csw/exim/ + # ALT_CONFIG_PREFIX=/some/directory/exim.conf- + + +@@ -486,11 +486,11 @@ FIXED_NEVER_USERS=root + # included in the Exim binary. You will then need to set up the run time + # configuration to make use of the mechanism(s) selected. + +-# AUTH_CRAM_MD5=yes +-# AUTH_CYRUS_SASL=yes +-# AUTH_DOVECOT=yes +-# AUTH_PLAINTEXT=yes +-# AUTH_SPA=yes ++AUTH_CRAM_MD5=yes ++AUTH_CYRUS_SASL=yes ++AUTH_DOVECOT=yes ++AUTH_PLAINTEXT=yes ++AUTH_SPA=yes + + + #------------------------------------------------------------------------------ +@@ -498,7 +498,7 @@ FIXED_NEVER_USERS=root + # Cyrus SASL library installed before trying to build Exim, and you probably + # want to uncomment the following line: + +-# AUTH_LIBS=-lsasl2 ++AUTH_LIBS=-lsasl2 + + + #------------------------------------------------------------------------------ +@@ -527,7 +527,7 @@ HEADERS_CHARSET="ISO-8859-1" + # the Sieve filter support. For those OS where iconv() is known to be installed + # as standard, the file in OS/Makefile-xxxx contains + # +-# HAVE_ICONV=yes ++HAVE_ICONV=yes + # + # If you are not using one of those systems, but have installed iconv(), you + # need to uncomment that line above. In some cases, you may find that iconv() +@@ -536,7 +536,7 @@ HEADERS_CHARSET="ISO-8859-1" + # + # HAVE_ICONV=yes + # CFLAGS=-O -I/usr/local/include +-# EXTRALIBS_EXIM=-L/usr/local/lib -liconv ++EXTRALIBS_EXIM=-L/opt/csw/lib -liconv -lpam -ldl + # + # but of course there may need to be other things in CFLAGS and EXTRALIBS_EXIM + # as well. +@@ -589,10 +589,10 @@ HEADERS_CHARSET="ISO-8859-1" + # leave these settings commented out. + + # This setting is required for any TLS support (either OpenSSL or GnuTLS) +-# SUPPORT_TLS=yes ++SUPPORT_TLS=yes + + # Uncomment this setting if you are using OpenSSL +-# TLS_LIBS=-lssl -lcrypto ++TLS_LIBS=-lssl -lcrypto + + # Uncomment these settings if you are using GnuTLS + # USE_GNUTLS=yes +@@ -611,7 +611,7 @@ HEADERS_CHARSET="ISO-8859-1" + # with all your other libraries. If they are in a special directory, you may + # need something like + +-# TLS_LIBS=-L/usr/local/openssl/lib -lssl -lcrypto ++TLS_LIBS=-L/opt/csw/lib/ -lssl -lcrypto + # or + # TLS_LIBS=-L/opt/gnu/lib -lgnutls -ltasn1 -lgcrypt + +@@ -619,7 +619,7 @@ HEADERS_CHARSET="ISO-8859-1" + # auxiliary programs. If the include files are not in a standard place, you can + # set TLS_INCLUDE to specify where they are, for example: + +-# TLS_INCLUDE=-I/usr/local/openssl/include/ ++TLS_INCLUDE=-I/opt/csw/include/openssl + # or + # TLS_INCLUDE=-I/opt/gnu/include + +@@ -643,7 +643,7 @@ HEADERS_CHARSET="ISO-8859-1" + # Once you have done this, "make install" will build the info files and + # install them in the directory you have defined. + +-# INFO_DIRECTORY=/usr/share/info ++INFO_DIRECTORY=/opt/csw/share/info + + + #------------------------------------------------------------------------------ +@@ -656,7 +656,7 @@ HEADERS_CHARSET="ISO-8859-1" + # %s. This will be replaced by one of the strings "main", "panic", or "reject" + # to form the final file names. Some installations may want something like this: + +-# LOG_FILE_PATH=/var/log/exim_%slog ++LOG_FILE_PATH=/var/opt/csw/log/exim_%slog + + # which results in files with names /var/log/exim_mainlog, etc. The directory + # in which the log files are placed must exist; Exim does not try to create +@@ -705,7 +705,7 @@ EXICYCLOG_MAX=10 + # files. Both the name of the command and the suffix that it adds to files + # need to be defined here. See also the EXICYCLOG_MAX configuration. + +-COMPRESS_COMMAND=/usr/bin/gzip ++COMPRESS_COMMAND=/opt/csw/bin/gzip + COMPRESS_SUFFIX=gz + + +@@ -713,7 +713,7 @@ COMPRESS_SUFFIX=gz + # If the exigrep utility is fed compressed log files, it tries to uncompress + # them using this command. + +-ZCAT_COMMAND=/usr/bin/zcat ++ZCAT_COMMAND=/opt/csw/bin/zcat + + + #------------------------------------------------------------------------------ +@@ -732,7 +732,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # that the local_scan API is made available by the linker. You may also need + # to add -ldl to EXTRALIBS so that dlopen() is available to Exim. + +-# EXPAND_DLFUNC=yes ++EXPAND_DLFUNC=yes + + + #------------------------------------------------------------------------------ +@@ -742,7 +742,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # support, which is intended for use in conjunction with the SMTP AUTH + # facilities, is included only when requested by the following setting: + +-# SUPPORT_PAM=yes ++SUPPORT_PAM=yes + + # You probably need to add -lpam to EXTRALIBS, and in some releases of + # GNU/Linux -ldl is also needed. +@@ -839,7 +839,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # (the value doesn't matter), the symbolic link is not created or moved. You + # will then have to "turn Exim on" by setting up the link manually. + +-# NO_SYMLINK=yes ++NO_SYMLINK=yes + + + #------------------------------------------------------------------------------ +@@ -851,7 +851,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # aliases). The following setting can be changed to specify a different + # location for the system alias file. + +-SYSTEM_ALIASES_FILE=/etc/aliases ++SYSTEM_ALIASES_FILE=/etc/opt/csw/exim/aliases + + + #------------------------------------------------------------------------------ +-- +1.7.3.2 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 04:33:21 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 03:33:21 +0000 Subject: [csw-devel] SF.net SVN: gar:[11911] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11911 http://gar.svn.sourceforge.net/gar/?rev=11911&view=rev Author: bdwalton Date: 2010-12-13 03:33:21 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: looks like the spf2 patch may not be required either (it has been refreshed more recently than exim) Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 03:29:36 UTC (rev 11910) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 03:33:21 UTC (rev 11911) @@ -20,7 +20,6 @@ DISTFILES += CSWexim.request CSWexim.checkinstall PATCHFILES += 0003-Set-build-options-in-Local-Makefile.patch -PATCHFILES += spf2.patch BUILD_DEP_PKGS = CSWlibspf2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 13 04:35:51 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 13 Dec 2010 03:35:51 +0000 Subject: [csw-devel] SF.net SVN: gar:[11912] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11912 http://gar.svn.sourceforge.net/gar/?rev=11912&view=rev Author: bdwalton Date: 2010-12-13 03:35:50 +0000 (Mon, 13 Dec 2010) Log Message: ----------- exim: add missing MAKECOOKIE statements to pre/post hooks calls Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 03:33:21 UTC (rev 11911) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 03:35:50 UTC (rev 11912) @@ -72,9 +72,11 @@ git add Local/; git ci -m 'Setup Local build default files'; \ test -d spf2 || cp -pr /opt/csw/include/spf2 .; \ git add spf2; git ci -m 'import spf2 header files' ) + @$(MAKECOOKIE) pre-build-modulated: (cd $(WORKSRC); make makefile) + @$(MAKECOOKIE) DOC_LIST = ChangeLog Exim3.upgrade Exim4.upgrade NewStuff OptionLists.txt DOC_LIST += README README.SIEVE dbm.discuss.txt filter.txt pcrepattern.txt @@ -105,7 +107,9 @@ cp -p $(DOC_LIST) $(DESTDIR)$(prefix)/share/doc/exim) gzip -f $(DESTDIR)$(prefix)/share/doc/exim/ChangeLog gzip -f $(DESTDIR)$(prefix)/share/doc/exim/spec.txt + @$(MAKECOOKIE) post-merge: @( cd $(PKGROOT); mkdir -p ./$(UGPATH); \ echo "$(UGENTRY)" > ./$(UGPATH)/cswusergroup" ) + @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 13 11:32:29 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 13 Dec 2010 10:32:29 +0000 Subject: [csw-devel] SF.net SVN: gar:[11913] csw/mgar/pkg/cups/trunk/Makefile Message-ID: Revision: 11913 http://gar.svn.sourceforge.net/gar/?rev=11913&view=rev Author: wahwah Date: 2010-12-13 10:32:29 +0000 (Mon, 13 Dec 2010) Log Message: ----------- cups: Removing unused overrides. Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2010-12-13 03:35:50 UTC (rev 11912) +++ csw/mgar/pkg/cups/trunk/Makefile 2010-12-13 10:32:29 UTC (rev 11913) @@ -253,14 +253,6 @@ RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcupsimage2 RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcupscgi1 -# ...and the overrides: -CHECKPKG_OVERRIDES_CSWcupsdev += surplus-dependency|CSWlibcupsppdc1 -CHECKPKG_OVERRIDES_CSWcupsdev += surplus-dependency|CSWlibcupsdriver1 -CHECKPKG_OVERRIDES_CSWcupsdev += surplus-dependency|CSWlibcups2 -CHECKPKG_OVERRIDES_CSWcupsdev += surplus-dependency|CSWlibcupsmime1 -CHECKPKG_OVERRIDES_CSWcupsdev += surplus-dependency|CSWlibcupsimage2 -CHECKPKG_OVERRIDES_CSWcupsdev += surplus-dependency|CSWlibcupscgi1 - CHECKPKG_OVERRIDES_CSWcups += surplus-dependency|CSWcupsclient CHECKPKG_OVERRIDES_CSWcups += surplus-dependency|CSWcupsd @@ -315,10 +307,6 @@ LICENSE = LICENSE.txt -CHECKPKG_OVERRIDES_CSWcupsdev += surplus-dependency|CSWlibcups -CHECKPKG_OVERRIDES_CSWcups += surplus-dependency|CSWcupsclient -CHECKPKG_OVERRIDES_CSWcups += surplus-dependency|CSWcupsd - # The following overrides are necessary because of a bug in krb5-config, please # see bug http://www.opencsw.org/bugtrack/view.php?id=4384 CHECKPKG_OVERRIDES_CSWcupsd += bad-rpath-entry This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 13 11:49:34 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 13 Dec 2010 10:49:34 +0000 Subject: [csw-devel] SF.net SVN: gar:[11914] csw/mgar/gar/v2/lib/python/package_checks_test.py Message-ID: Revision: 11914 http://gar.svn.sourceforge.net/gar/?rev=11914&view=rev Author: wahwah Date: 2010-12-13 10:49:33 +0000 (Mon, 13 Dec 2010) Log Message: ----------- checkpkg: Adjective for Mars is 'martian' Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-13 10:32:29 UTC (rev 11913) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-13 10:49:33 UTC (rev 11914) @@ -176,11 +176,11 @@ def CheckpkgTest(self): self.pkg_data_single = self.pkg_data self.pkg_data = [self.pkg_data_single] - self.pkg_data[0]["depends"].append(["CSWmarsian", "A package from Mars."]) + self.pkg_data[0]["depends"].append(["CSWmartian", "A package from Mars."]) installed = ["CSWcommon", "CSWisaexec", "CSWiconv", "CSWlibpopt"] self.error_mgr_mock.GetInstalledPackages().AndReturn(installed) self.error_mgr_mock.ReportError( - 'CSWrsync', 'unidentified-dependency', 'CSWmarsian') + 'CSWrsync', 'unidentified-dependency', 'CSWmartian') class TestSetCheckDependenciesGood(CheckpkgUnitTestHelper, unittest.TestCase): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 13 11:50:13 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 13 Dec 2010 10:50:13 +0000 Subject: [csw-devel] SF.net SVN: gar:[11915] csw/mgar/gar/v2/lib/python Message-ID: Revision: 11915 http://gar.svn.sourceforge.net/gar/?rev=11915&view=rev Author: wahwah Date: 2010-12-13 10:50:13 +0000 (Mon, 13 Dec 2010) Log Message: ----------- checkpkg: A bugfix for CheckObsoleteDeps Dependencies are now represented as sequences, which have to be unpacked to get package names. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-13 10:49:33 UTC (rev 11914) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-13 10:50:13 UTC (rev 11915) @@ -501,7 +501,7 @@ def CheckObsoleteDeps(pkg_data, error_mgr, logger, messenger): """Checks for obsolete dependencies.""" - deps = set(pkg_data["depends"]) + deps = frozenset([x for x, y in pkg_data["depends"]]) obsolete_pkg_deps = deps.intersection(set(OBSOLETE_DEPS)) if obsolete_pkg_deps: for obsolete_pkg in obsolete_pkg_deps: Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-13 10:49:33 UTC (rev 11914) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-13 10:50:13 UTC (rev 11915) @@ -1477,5 +1477,14 @@ }) +class TestCheckObsoleteDepsCups(CheckpkgUnitTestHelper, unittest.TestCase): + "A random file should not trigger the message; only license files." + FUNCTION_NAME = 'CheckObsoleteDeps' + def CheckpkgTest(self): + self.pkg_data = copy.deepcopy(neon_stats[0]) + self.pkg_data["depends"].append(("CSWlibcups", None)) + self.error_mgr_mock.ReportError('obsolete-dependency', 'CSWlibcups') + + if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 13 12:25:38 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 13 Dec 2010 11:25:38 +0000 Subject: [csw-devel] SF.net SVN: gar:[11916] csw/mgar/pkg/cups/trunk/Makefile Message-ID: Revision: 11916 http://gar.svn.sourceforge.net/gar/?rev=11916&view=rev Author: wahwah Date: 2010-12-13 11:25:38 +0000 (Mon, 13 Dec 2010) Log Message: ----------- cups: Removing a dependency on CSWlibcups Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2010-12-13 10:50:13 UTC (rev 11915) +++ csw/mgar/pkg/cups/trunk/Makefile 2010-12-13 11:25:38 UTC (rev 11916) @@ -100,7 +100,6 @@ RUNTIME_DEP_PKGS_CSWcupsd += CSWlibdbus RUNTIME_DEP_PKGS_CSWcupsd += CSWzlib RUNTIME_DEP_PKGS_CSWcupsd += CSWoldaprt -RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcups PKGFILES_CSWlibcups = NONE This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 13 12:54:31 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 13 Dec 2010 11:54:31 +0000 Subject: [csw-devel] SF.net SVN: gar:[11917] csw/mgar/pkg/pca/trunk/checksums Message-ID: Revision: 11917 http://gar.svn.sourceforge.net/gar/?rev=11917&view=rev Author: dmichelsen Date: 2010-12-13 11:54:31 +0000 (Mon, 13 Dec 2010) Log Message: ----------- pca: Update to 20101213-01 Modified Paths: -------------- csw/mgar/pkg/pca/trunk/checksums Modified: csw/mgar/pkg/pca/trunk/checksums =================================================================== --- csw/mgar/pkg/pca/trunk/checksums 2010-12-13 11:25:38 UTC (rev 11916) +++ csw/mgar/pkg/pca/trunk/checksums 2010-12-13 11:54:31 UTC (rev 11917) @@ -1 +1 @@ -9e19a91b241fa9be475dc8c010c61fa5 pca-20100910-01 +403d3340251787641fc4c6703a3b629b pca-20101213-01 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 13 12:55:57 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 13 Dec 2010 11:55:57 +0000 Subject: [csw-devel] SF.net SVN: gar:[11918] csw/mgar/pkg/pca/trunk/Makefile Message-ID: Revision: 11918 http://gar.svn.sourceforge.net/gar/?rev=11918&view=rev Author: dmichelsen Date: 2010-12-13 11:55:56 +0000 (Mon, 13 Dec 2010) Log Message: ----------- pca: Update to 20101213-01 Modified Paths: -------------- csw/mgar/pkg/pca/trunk/Makefile Modified: csw/mgar/pkg/pca/trunk/Makefile =================================================================== --- csw/mgar/pkg/pca/trunk/Makefile 2010-12-13 11:54:31 UTC (rev 11917) +++ csw/mgar/pkg/pca/trunk/Makefile 2010-12-13 11:55:56 UTC (rev 11918) @@ -1,5 +1,5 @@ NAME = pca -VERSION = 20100910-01 +VERSION = 20101213-01 CATEGORIES = utils DESCRIPTION = Patch Check Advanced This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bonivart at users.sourceforge.net Mon Dec 13 13:44:43 2010 From: bonivart at users.sourceforge.net (bonivart at users.sourceforge.net) Date: Mon, 13 Dec 2010 12:44:43 +0000 Subject: [csw-devel] SF.net SVN: gar:[11919] csw/mgar/pkg/postgrey/trunk Message-ID: Revision: 11919 http://gar.svn.sourceforge.net/gar/?rev=11919&view=rev Author: bonivart Date: 2010-12-13 12:44:43 +0000 (Mon, 13 Dec 2010) Log Message: ----------- postgrey: update to 1.33 Modified Paths: -------------- csw/mgar/pkg/postgrey/trunk/Makefile csw/mgar/pkg/postgrey/trunk/checksums Modified: csw/mgar/pkg/postgrey/trunk/Makefile =================================================================== --- csw/mgar/pkg/postgrey/trunk/Makefile 2010-12-13 11:55:56 UTC (rev 11918) +++ csw/mgar/pkg/postgrey/trunk/Makefile 2010-12-13 12:44:43 UTC (rev 11919) @@ -1,5 +1,5 @@ NAME = postgrey -VERSION = 1.32 +VERSION = 1.33 CATEGORIES = net DESCRIPTION = Postfix policy server implementing greylisting @@ -22,19 +22,26 @@ TEST_SCRIPTS = INSTALL_SCRIPTS = custom -INITSMF = /opt/csw/etc/init.d/cswpostgrey +INITSMF = /etc/opt/csw/init.d/cswpostgrey USERGROUP = /etc/opt/csw/pkg/CSWpostgrey/cswusergroup SAMPLECONF = /etc/opt/csw/postfix/postgrey_whitelist_clients /etc/opt/csw/postfix/postgrey_whitelist_recipients SAMPLECONF += /etc/opt/csw/postgrey PATCHFILES = postgrey.p +CHECKPKG_OVERRIDES_CSWpostgrey += surplus-dependency|CSWperl +CHECKPKG_OVERRIDES_CSWpostgrey += surplus-dependency|CSWpmnetserver +CHECKPKG_OVERRIDES_CSWpostgrey += surplus-dependency|CSWpmiomultiplex +CHECKPKG_OVERRIDES_CSWpostgrey += surplus-dependency|CSWpostfix +CHECKPKG_OVERRIDES_CSWpostgrey += surplus-dependency|CSWbdb48 +CHECKPKG_OVERRIDES_CSWpostgrey += surplus-dependency|CSWpmberkeleydb + include gar/category.mk install-custom: @echo " ==> Installing $(NAME) (custom)" - @ginstall -m 755 -d $(DESTDIR)/opt/csw/etc/init.d - @ginstall -m 755 $(FILEDIR)/CSWpostgrey.init $(DESTDIR)/opt/csw/etc/init.d/cswpostgrey + @ginstall -m 755 -d $(DESTDIR)/etc/opt/csw/init.d + @ginstall -m 755 $(FILEDIR)/CSWpostgrey.init $(DESTDIR)/etc/opt/csw/init.d/cswpostgrey @ginstall -m 755 -d $(DESTDIR)/etc/opt/csw/postfix @ginstall -m 644 $(WORKSRC)/postgrey_whitelist_clients $(DESTDIR)/etc/opt/csw/postfix @ginstall -m 644 $(WORKSRC)/postgrey_whitelist_recipients $(DESTDIR)/etc/opt/csw/postfix Modified: csw/mgar/pkg/postgrey/trunk/checksums =================================================================== --- csw/mgar/pkg/postgrey/trunk/checksums 2010-12-13 11:55:56 UTC (rev 11918) +++ csw/mgar/pkg/postgrey/trunk/checksums 2010-12-13 12:44:43 UTC (rev 11919) @@ -1,2 +1 @@ -524a4e165bf997996f3bccade394712f postgrey-1.32.tar.gz -108ad95e20c54d4512f65a19103e2b16 postgrey.p +334c908bb9d34e9b87790d4b0b6db87e postgrey-1.33.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Tue Dec 14 03:34:42 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Tue, 14 Dec 2010 02:34:42 +0000 Subject: [csw-devel] SF.net SVN: gar:[11920] csw/mgar/pkg/exim/trunk Message-ID: Revision: 11920 http://gar.svn.sourceforge.net/gar/?rev=11920&view=rev Author: bdwalton Date: 2010-12-14 02:34:41 +0000 (Tue, 14 Dec 2010) Log Message: ----------- exim: redo the makefile config to use traditional paths (save changes for later) Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch Removed Paths: ------------- csw/mgar/pkg/exim/trunk/files/0003-Set-build-options-in-Local-Makefile.patch Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-13 12:44:43 UTC (rev 11919) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-14 02:34:41 UTC (rev 11920) @@ -19,7 +19,7 @@ DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.preremove DISTFILES += CSWexim.request CSWexim.checkinstall -PATCHFILES += 0003-Set-build-options-in-Local-Makefile.patch +PATCHFILES += 0003-Set-OpenCSW-build-options.patch BUILD_DEP_PKGS = CSWlibspf2 Added: csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch =================================================================== --- csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch (rev 0) +++ csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch 2010-12-14 02:34:41 UTC (rev 11920) @@ -0,0 +1,317 @@ +From 201fcd8e99e4f99f75c60a5fc7c69bb2d8796c43 Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Tue, 14 Dec 2010 03:31:46 +0100 +Subject: [PATCH] Set OpenCSW build options + +Modify the template Local/Makefile to set the options for the csw +environment. + +Signed-off-by: Ben Walton +--- + Local/Makefile | 90 ++++++++++++++++++++++++++++---------------------------- + 1 files changed, 45 insertions(+), 45 deletions(-) + +diff --git a/Local/Makefile b/Local/Makefile +index 9869eb1..810b984 100644 +--- a/Local/Makefile ++++ b/Local/Makefile +@@ -100,7 +100,7 @@ + # /usr/local/sbin. The installation script will try to create this directory, + # and any superior directories, if they do not exist. + +-BIN_DIRECTORY=/usr/exim/bin ++BIN_DIRECTORY=/opt/csw/sbin + + + #------------------------------------------------------------------------------ +@@ -116,7 +116,7 @@ BIN_DIRECTORY=/usr/exim/bin + # don't exist. It will also install a default runtime configuration if this + # file does not exist. + +-CONFIGURE_FILE=/usr/exim/configure ++CONFIGURE_FILE=/opt/csw/etc/exim/exim.conf + + # It is possible to specify a colon-separated list of files for CONFIGURE_FILE. + # In this case, Exim will use the first of them that exists when it is run. +@@ -134,7 +134,7 @@ CONFIGURE_FILE=/usr/exim/configure + # owner of a local mailbox.) Specifying these values as root is very strongly + # discouraged. + +-EXIM_USER= ++EXIM_USER=ref:exim + + # If you specify EXIM_USER as a name, this is looked up at build time, and the + # uid number is built into the binary. However, you can specify that this +@@ -176,7 +176,7 @@ EXIM_USER= + + # Almost all installations choose this: + +-SPOOL_DIRECTORY=/var/spool/exim ++SPOOL_DIRECTORY=/opt/csw/var/spool/exim + + + +@@ -214,7 +214,7 @@ ROUTER_REDIRECT=yes + + # This one is very special-purpose, so is not included by default. + +-# ROUTER_IPLOOKUP=yes ++ROUTER_IPLOOKUP=yes + + + #------------------------------------------------------------------------------ +@@ -235,7 +235,7 @@ TRANSPORT_SMTP=yes + # This one is special-purpose, and commonly not required, so it is not + # included by default. + +-# TRANSPORT_LMTP=yes ++TRANSPORT_LMTP=yes + + + #------------------------------------------------------------------------------ +@@ -244,9 +244,9 @@ TRANSPORT_SMTP=yes + # MBX, is included only when requested. If you do not know what this is about, + # leave these settings commented out. + +-# SUPPORT_MAILDIR=yes +-# SUPPORT_MAILSTORE=yes +-# SUPPORT_MBX=yes ++SUPPORT_MAILDIR=yes ++SUPPORT_MAILSTORE=yes ++SUPPORT_MBX=yes + + + #------------------------------------------------------------------------------ +@@ -262,16 +262,16 @@ LOOKUP_DBM=yes + LOOKUP_LSEARCH=yes + LOOKUP_DNSDB=yes + +-# LOOKUP_CDB=yes +-# LOOKUP_DSEARCH=yes ++LOOKUP_CDB=yes ++LOOKUP_DSEARCH=yes + # LOOKUP_IBASE=yes +-# LOOKUP_LDAP=yes +-# LOOKUP_MYSQL=yes +-# LOOKUP_NIS=yes +-# LOOKUP_NISPLUS=yes ++LOOKUP_LDAP=yes ++LOOKUP_MYSQL=yes ++LOOKUP_NIS=yes ++LOOKUP_NISPLUS=yes + # LOOKUP_ORACLE=yes +-# LOOKUP_PASSWD=yes +-# LOOKUP_PGSQL=yes ++LOOKUP_PASSWD=yes ++LOOKUP_PGSQL=yes + # LOOKUP_SQLITE=yes + # LOOKUP_WHOSON=yes + +@@ -292,7 +292,7 @@ LOOKUP_DNSDB=yes + # with Solaris 7 onwards. Uncomment whichever of these you are using. + + # LDAP_LIB_TYPE=OPENLDAP1 +-# LDAP_LIB_TYPE=OPENLDAP2 ++LDAP_LIB_TYPE=OPENLDAP2 + # LDAP_LIB_TYPE=NETSCAPE + # LDAP_LIB_TYPE=SOLARIS + +@@ -321,8 +321,8 @@ PCRE_LIBS=-lpcre + # specified in INCLUDE. The settings below are just examples; -lpq is for + # PostgreSQL, -lgds is for Interbase, -lsqlite3 is for SQLite. + +-# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include +-# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq -lgds -lsqlite3 ++LOOKUP_INCLUDE=-I /opt/csw/mysql/include/mysql -I /opt/csw/postgresql/include ++LOOKUP_LIBS=-L/opt/csw/mysql5/lib/mysql -L/opt/csw/postgresql/lib -lldap -llber -lmysqlclient -lpq + + + #------------------------------------------------------------------------------ +@@ -343,14 +343,14 @@ EXIM_MONITOR=eximon.bin + # and the MIME ACL. Please read the documentation to learn more about these + # features. + +-# WITH_CONTENT_SCAN=yes ++WITH_CONTENT_SCAN=yes + + # If you want to use the deprecated "demime" condition in the DATA ACL, + # uncomment the line below. Doing so will also explicitly turn on the + # WITH_CONTENT_SCAN option. If possible, use the MIME ACL instead of + # the "demime" condition. + +-# WITH_OLD_DEMIME=yes ++WITH_OLD_DEMIME=yes + + #------------------------------------------------------------------------------ + # Compiling Exim with experimental features. These are documented in +@@ -361,9 +361,9 @@ EXIM_MONITOR=eximon.bin + # installed on your system (www.libspf2.org). Depending on where it is installed + # you may have to edit the CFLAGS and LDFLAGS lines. + +-# EXPERIMENTAL_SPF=yes ++EXPERIMENTAL_SPF=yes + # CFLAGS += -I/usr/local/include +-# LDFLAGS += -lspf2 ++LDFLAGS += -lspf2 + + # Uncomment the following lines to add SRS (Sender rewriting scheme) support. + # You need to have libsrs_alt installed on your system (srs.mirtol.com). +@@ -451,7 +451,7 @@ FIXED_NEVER_USERS=root + # used. The prefix can be more restrictive than just a directory (the second + # example). + +-# ALT_CONFIG_PREFIX=/some/directory/ ++ALT_CONFIG_PREFIX=/opt/csw/etc/exim/ + # ALT_CONFIG_PREFIX=/some/directory/exim.conf- + + +@@ -486,11 +486,11 @@ FIXED_NEVER_USERS=root + # included in the Exim binary. You will then need to set up the run time + # configuration to make use of the mechanism(s) selected. + +-# AUTH_CRAM_MD5=yes +-# AUTH_CYRUS_SASL=yes +-# AUTH_DOVECOT=yes +-# AUTH_PLAINTEXT=yes +-# AUTH_SPA=yes ++AUTH_CRAM_MD5=yes ++AUTH_CYRUS_SASL=yes ++AUTH_DOVECOT=yes ++AUTH_PLAINTEXT=yes ++AUTH_SPA=yes + + + #------------------------------------------------------------------------------ +@@ -498,7 +498,7 @@ FIXED_NEVER_USERS=root + # Cyrus SASL library installed before trying to build Exim, and you probably + # want to uncomment the following line: + +-# AUTH_LIBS=-lsasl2 ++AUTH_LIBS=-lsasl2 + + + #------------------------------------------------------------------------------ +@@ -527,7 +527,7 @@ HEADERS_CHARSET="ISO-8859-1" + # the Sieve filter support. For those OS where iconv() is known to be installed + # as standard, the file in OS/Makefile-xxxx contains + # +-# HAVE_ICONV=yes ++HAVE_ICONV=yes + # + # If you are not using one of those systems, but have installed iconv(), you + # need to uncomment that line above. In some cases, you may find that iconv() +@@ -536,7 +536,7 @@ HEADERS_CHARSET="ISO-8859-1" + # + # HAVE_ICONV=yes + # CFLAGS=-O -I/usr/local/include +-# EXTRALIBS_EXIM=-L/usr/local/lib -liconv ++EXTRALIBS_EXIM=-L/opt/csw/lib -liconv -lpam -ldl + # + # but of course there may need to be other things in CFLAGS and EXTRALIBS_EXIM + # as well. +@@ -589,10 +589,10 @@ HEADERS_CHARSET="ISO-8859-1" + # leave these settings commented out. + + # This setting is required for any TLS support (either OpenSSL or GnuTLS) +-# SUPPORT_TLS=yes ++SUPPORT_TLS=yes + + # Uncomment this setting if you are using OpenSSL +-# TLS_LIBS=-lssl -lcrypto ++TLS_LIBS=-lssl -lcrypto + + # Uncomment these settings if you are using GnuTLS + # USE_GNUTLS=yes +@@ -611,7 +611,7 @@ HEADERS_CHARSET="ISO-8859-1" + # with all your other libraries. If they are in a special directory, you may + # need something like + +-# TLS_LIBS=-L/usr/local/openssl/lib -lssl -lcrypto ++TLS_LIBS=-L/opt/csw/lib/ -lssl -lcrypto + # or + # TLS_LIBS=-L/opt/gnu/lib -lgnutls -ltasn1 -lgcrypt + +@@ -619,7 +619,7 @@ HEADERS_CHARSET="ISO-8859-1" + # auxiliary programs. If the include files are not in a standard place, you can + # set TLS_INCLUDE to specify where they are, for example: + +-# TLS_INCLUDE=-I/usr/local/openssl/include/ ++TLS_INCLUDE=-I/opt/csw/include/openssl + # or + # TLS_INCLUDE=-I/opt/gnu/include + +@@ -643,7 +643,7 @@ HEADERS_CHARSET="ISO-8859-1" + # Once you have done this, "make install" will build the info files and + # install them in the directory you have defined. + +-# INFO_DIRECTORY=/usr/share/info ++INFO_DIRECTORY=/opt/csw/share/info + + + #------------------------------------------------------------------------------ +@@ -656,7 +656,7 @@ HEADERS_CHARSET="ISO-8859-1" + # %s. This will be replaced by one of the strings "main", "panic", or "reject" + # to form the final file names. Some installations may want something like this: + +-# LOG_FILE_PATH=/var/log/exim_%slog ++LOG_FILE_PATH=/opt/csw/var/log/%slog + + # which results in files with names /var/log/exim_mainlog, etc. The directory + # in which the log files are placed must exist; Exim does not try to create +@@ -705,7 +705,7 @@ EXICYCLOG_MAX=10 + # files. Both the name of the command and the suffix that it adds to files + # need to be defined here. See also the EXICYCLOG_MAX configuration. + +-COMPRESS_COMMAND=/usr/bin/gzip ++COMPRESS_COMMAND=/opt/csw/bin/gzip + COMPRESS_SUFFIX=gz + + +@@ -713,7 +713,7 @@ COMPRESS_SUFFIX=gz + # If the exigrep utility is fed compressed log files, it tries to uncompress + # them using this command. + +-ZCAT_COMMAND=/usr/bin/zcat ++ZCAT_COMMAND=/opt/csw/bin/zcat + + + #------------------------------------------------------------------------------ +@@ -732,7 +732,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # that the local_scan API is made available by the linker. You may also need + # to add -ldl to EXTRALIBS so that dlopen() is available to Exim. + +-# EXPAND_DLFUNC=yes ++EXPAND_DLFUNC=yes + + + #------------------------------------------------------------------------------ +@@ -742,7 +742,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # support, which is intended for use in conjunction with the SMTP AUTH + # facilities, is included only when requested by the following setting: + +-# SUPPORT_PAM=yes ++SUPPORT_PAM=yes + + # You probably need to add -lpam to EXTRALIBS, and in some releases of + # GNU/Linux -ldl is also needed. +@@ -839,7 +839,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # (the value doesn't matter), the symbolic link is not created or moved. You + # will then have to "turn Exim on" by setting up the link manually. + +-# NO_SYMLINK=yes ++NO_SYMLINK=yes + + + #------------------------------------------------------------------------------ +@@ -851,7 +851,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # aliases). The following setting can be changed to specify a different + # location for the system alias file. + +-SYSTEM_ALIASES_FILE=/etc/aliases ++SYSTEM_ALIASES_FILE=/opt/csw/etc/exim/aliases + + + #------------------------------------------------------------------------------ +-- +1.7.3.2 + Deleted: csw/mgar/pkg/exim/trunk/files/0003-Set-build-options-in-Local-Makefile.patch =================================================================== --- csw/mgar/pkg/exim/trunk/files/0003-Set-build-options-in-Local-Makefile.patch 2010-12-13 12:44:43 UTC (rev 11919) +++ csw/mgar/pkg/exim/trunk/files/0003-Set-build-options-in-Local-Makefile.patch 2010-12-14 02:34:41 UTC (rev 11920) @@ -1,317 +0,0 @@ -From 80af317076aa950fcbd941619fac281e26825310 Mon Sep 17 00:00:00 2001 -From: Ben Walton -Date: Mon, 13 Dec 2010 04:24:32 +0100 -Subject: [PATCH] Set build options in Local/Makefile - -This file specifies the build options for Exim instead of a traditional -configure script. - -Signed-off-by: Ben Walton ---- - Local/Makefile | 90 ++++++++++++++++++++++++++++---------------------------- - 1 files changed, 45 insertions(+), 45 deletions(-) - -diff --git a/Local/Makefile b/Local/Makefile -index 9869eb1..57bf30b 100644 ---- a/Local/Makefile -+++ b/Local/Makefile -@@ -100,7 +100,7 @@ - # /usr/local/sbin. The installation script will try to create this directory, - # and any superior directories, if they do not exist. - --BIN_DIRECTORY=/usr/exim/bin -+BIN_DIRECTORY=/opt/csw/sbin - - - #------------------------------------------------------------------------------ -@@ -116,7 +116,7 @@ BIN_DIRECTORY=/usr/exim/bin - # don't exist. It will also install a default runtime configuration if this - # file does not exist. - --CONFIGURE_FILE=/usr/exim/configure -+CONFIGURE_FILE=/etc/opt/csw/exim/exim.conf - - # It is possible to specify a colon-separated list of files for CONFIGURE_FILE. - # In this case, Exim will use the first of them that exists when it is run. -@@ -134,7 +134,7 @@ CONFIGURE_FILE=/usr/exim/configure - # owner of a local mailbox.) Specifying these values as root is very strongly - # discouraged. - --EXIM_USER= -+EXIM_USER=ref:exim - - # If you specify EXIM_USER as a name, this is looked up at build time, and the - # uid number is built into the binary. However, you can specify that this -@@ -176,7 +176,7 @@ EXIM_USER= - - # Almost all installations choose this: - --SPOOL_DIRECTORY=/var/spool/exim -+SPOOL_DIRECTORY=/var/opt/csw/spool/exim - - - -@@ -214,7 +214,7 @@ ROUTER_REDIRECT=yes - - # This one is very special-purpose, so is not included by default. - --# ROUTER_IPLOOKUP=yes -+ROUTER_IPLOOKUP=yes - - - #------------------------------------------------------------------------------ -@@ -235,7 +235,7 @@ TRANSPORT_SMTP=yes - # This one is special-purpose, and commonly not required, so it is not - # included by default. - --# TRANSPORT_LMTP=yes -+TRANSPORT_LMTP=yes - - - #------------------------------------------------------------------------------ -@@ -244,9 +244,9 @@ TRANSPORT_SMTP=yes - # MBX, is included only when requested. If you do not know what this is about, - # leave these settings commented out. - --# SUPPORT_MAILDIR=yes --# SUPPORT_MAILSTORE=yes --# SUPPORT_MBX=yes -+SUPPORT_MAILDIR=yes -+SUPPORT_MAILSTORE=yes -+SUPPORT_MBX=yes - - - #------------------------------------------------------------------------------ -@@ -262,16 +262,16 @@ LOOKUP_DBM=yes - LOOKUP_LSEARCH=yes - LOOKUP_DNSDB=yes - --# LOOKUP_CDB=yes --# LOOKUP_DSEARCH=yes -+LOOKUP_CDB=yes -+LOOKUP_DSEARCH=yes - # LOOKUP_IBASE=yes --# LOOKUP_LDAP=yes --# LOOKUP_MYSQL=yes --# LOOKUP_NIS=yes --# LOOKUP_NISPLUS=yes -+LOOKUP_LDAP=yes -+LOOKUP_MYSQL=yes -+LOOKUP_NIS=yes -+LOOKUP_NISPLUS=yes - # LOOKUP_ORACLE=yes --# LOOKUP_PASSWD=yes --# LOOKUP_PGSQL=yes -+LOOKUP_PASSWD=yes -+LOOKUP_PGSQL=yes - # LOOKUP_SQLITE=yes - # LOOKUP_WHOSON=yes - -@@ -292,7 +292,7 @@ LOOKUP_DNSDB=yes - # with Solaris 7 onwards. Uncomment whichever of these you are using. - - # LDAP_LIB_TYPE=OPENLDAP1 --# LDAP_LIB_TYPE=OPENLDAP2 -+LDAP_LIB_TYPE=OPENLDAP2 - # LDAP_LIB_TYPE=NETSCAPE - # LDAP_LIB_TYPE=SOLARIS - -@@ -321,8 +321,8 @@ PCRE_LIBS=-lpcre - # specified in INCLUDE. The settings below are just examples; -lpq is for - # PostgreSQL, -lgds is for Interbase, -lsqlite3 is for SQLite. - --# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include --# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq -lgds -lsqlite3 -+LOOKUP_INCLUDE=-I /opt/csw/mysql/include/mysql -I /opt/csw/postgresql/include -+LOOKUP_LIBS=-L/opt/csw/mysql5/lib/mysql -L/opt/csw/postgresql/lib -lldap -llber -lmysqlclient -lpq - - - #------------------------------------------------------------------------------ -@@ -343,14 +343,14 @@ EXIM_MONITOR=eximon.bin - # and the MIME ACL. Please read the documentation to learn more about these - # features. - --# WITH_CONTENT_SCAN=yes -+WITH_CONTENT_SCAN=yes - - # If you want to use the deprecated "demime" condition in the DATA ACL, - # uncomment the line below. Doing so will also explicitly turn on the - # WITH_CONTENT_SCAN option. If possible, use the MIME ACL instead of - # the "demime" condition. - --# WITH_OLD_DEMIME=yes -+WITH_OLD_DEMIME=yes - - #------------------------------------------------------------------------------ - # Compiling Exim with experimental features. These are documented in -@@ -361,9 +361,9 @@ EXIM_MONITOR=eximon.bin - # installed on your system (www.libspf2.org). Depending on where it is installed - # you may have to edit the CFLAGS and LDFLAGS lines. - --# EXPERIMENTAL_SPF=yes -+EXPERIMENTAL_SPF=yes - # CFLAGS += -I/usr/local/include --# LDFLAGS += -lspf2 -+LDFLAGS += -lspf2 - - # Uncomment the following lines to add SRS (Sender rewriting scheme) support. - # You need to have libsrs_alt installed on your system (srs.mirtol.com). -@@ -451,7 +451,7 @@ FIXED_NEVER_USERS=root - # used. The prefix can be more restrictive than just a directory (the second - # example). - --# ALT_CONFIG_PREFIX=/some/directory/ -+ALT_CONFIG_PREFIX=/etc/opt/csw/exim/ - # ALT_CONFIG_PREFIX=/some/directory/exim.conf- - - -@@ -486,11 +486,11 @@ FIXED_NEVER_USERS=root - # included in the Exim binary. You will then need to set up the run time - # configuration to make use of the mechanism(s) selected. - --# AUTH_CRAM_MD5=yes --# AUTH_CYRUS_SASL=yes --# AUTH_DOVECOT=yes --# AUTH_PLAINTEXT=yes --# AUTH_SPA=yes -+AUTH_CRAM_MD5=yes -+AUTH_CYRUS_SASL=yes -+AUTH_DOVECOT=yes -+AUTH_PLAINTEXT=yes -+AUTH_SPA=yes - - - #------------------------------------------------------------------------------ -@@ -498,7 +498,7 @@ FIXED_NEVER_USERS=root - # Cyrus SASL library installed before trying to build Exim, and you probably - # want to uncomment the following line: - --# AUTH_LIBS=-lsasl2 -+AUTH_LIBS=-lsasl2 - - - #------------------------------------------------------------------------------ -@@ -527,7 +527,7 @@ HEADERS_CHARSET="ISO-8859-1" - # the Sieve filter support. For those OS where iconv() is known to be installed - # as standard, the file in OS/Makefile-xxxx contains - # --# HAVE_ICONV=yes -+HAVE_ICONV=yes - # - # If you are not using one of those systems, but have installed iconv(), you - # need to uncomment that line above. In some cases, you may find that iconv() -@@ -536,7 +536,7 @@ HEADERS_CHARSET="ISO-8859-1" - # - # HAVE_ICONV=yes - # CFLAGS=-O -I/usr/local/include --# EXTRALIBS_EXIM=-L/usr/local/lib -liconv -+EXTRALIBS_EXIM=-L/opt/csw/lib -liconv -lpam -ldl - # - # but of course there may need to be other things in CFLAGS and EXTRALIBS_EXIM - # as well. -@@ -589,10 +589,10 @@ HEADERS_CHARSET="ISO-8859-1" - # leave these settings commented out. - - # This setting is required for any TLS support (either OpenSSL or GnuTLS) --# SUPPORT_TLS=yes -+SUPPORT_TLS=yes - - # Uncomment this setting if you are using OpenSSL --# TLS_LIBS=-lssl -lcrypto -+TLS_LIBS=-lssl -lcrypto - - # Uncomment these settings if you are using GnuTLS - # USE_GNUTLS=yes -@@ -611,7 +611,7 @@ HEADERS_CHARSET="ISO-8859-1" - # with all your other libraries. If they are in a special directory, you may - # need something like - --# TLS_LIBS=-L/usr/local/openssl/lib -lssl -lcrypto -+TLS_LIBS=-L/opt/csw/lib/ -lssl -lcrypto - # or - # TLS_LIBS=-L/opt/gnu/lib -lgnutls -ltasn1 -lgcrypt - -@@ -619,7 +619,7 @@ HEADERS_CHARSET="ISO-8859-1" - # auxiliary programs. If the include files are not in a standard place, you can - # set TLS_INCLUDE to specify where they are, for example: - --# TLS_INCLUDE=-I/usr/local/openssl/include/ -+TLS_INCLUDE=-I/opt/csw/include/openssl - # or - # TLS_INCLUDE=-I/opt/gnu/include - -@@ -643,7 +643,7 @@ HEADERS_CHARSET="ISO-8859-1" - # Once you have done this, "make install" will build the info files and - # install them in the directory you have defined. - --# INFO_DIRECTORY=/usr/share/info -+INFO_DIRECTORY=/opt/csw/share/info - - - #------------------------------------------------------------------------------ -@@ -656,7 +656,7 @@ HEADERS_CHARSET="ISO-8859-1" - # %s. This will be replaced by one of the strings "main", "panic", or "reject" - # to form the final file names. Some installations may want something like this: - --# LOG_FILE_PATH=/var/log/exim_%slog -+LOG_FILE_PATH=/var/opt/csw/log/exim_%slog - - # which results in files with names /var/log/exim_mainlog, etc. The directory - # in which the log files are placed must exist; Exim does not try to create -@@ -705,7 +705,7 @@ EXICYCLOG_MAX=10 - # files. Both the name of the command and the suffix that it adds to files - # need to be defined here. See also the EXICYCLOG_MAX configuration. - --COMPRESS_COMMAND=/usr/bin/gzip -+COMPRESS_COMMAND=/opt/csw/bin/gzip - COMPRESS_SUFFIX=gz - - -@@ -713,7 +713,7 @@ COMPRESS_SUFFIX=gz - # If the exigrep utility is fed compressed log files, it tries to uncompress - # them using this command. - --ZCAT_COMMAND=/usr/bin/zcat -+ZCAT_COMMAND=/opt/csw/bin/zcat - - - #------------------------------------------------------------------------------ -@@ -732,7 +732,7 @@ ZCAT_COMMAND=/usr/bin/zcat - # that the local_scan API is made available by the linker. You may also need - # to add -ldl to EXTRALIBS so that dlopen() is available to Exim. - --# EXPAND_DLFUNC=yes -+EXPAND_DLFUNC=yes - - - #------------------------------------------------------------------------------ -@@ -742,7 +742,7 @@ ZCAT_COMMAND=/usr/bin/zcat - # support, which is intended for use in conjunction with the SMTP AUTH - # facilities, is included only when requested by the following setting: - --# SUPPORT_PAM=yes -+SUPPORT_PAM=yes - - # You probably need to add -lpam to EXTRALIBS, and in some releases of - # GNU/Linux -ldl is also needed. -@@ -839,7 +839,7 @@ ZCAT_COMMAND=/usr/bin/zcat - # (the value doesn't matter), the symbolic link is not created or moved. You - # will then have to "turn Exim on" by setting up the link manually. - --# NO_SYMLINK=yes -+NO_SYMLINK=yes - - - #------------------------------------------------------------------------------ -@@ -851,7 +851,7 @@ ZCAT_COMMAND=/usr/bin/zcat - # aliases). The following setting can be changed to specify a different - # location for the system alias file. - --SYSTEM_ALIASES_FILE=/etc/aliases -+SYSTEM_ALIASES_FILE=/etc/opt/csw/exim/aliases - - - #------------------------------------------------------------------------------ --- -1.7.3.2 - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Tue Dec 14 03:56:44 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Tue, 14 Dec 2010 02:56:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[11921] csw/mgar/pkg/exim/trunk Message-ID: Revision: 11921 http://gar.svn.sourceforge.net/gar/?rev=11921&view=rev Author: bdwalton Date: 2010-12-14 02:56:43 +0000 (Tue, 14 Dec 2010) Log Message: ----------- exim: add a separate patch to bash the CC/CFLAGS, etc into the build Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/exim/trunk/files/0004-Force-Compiler-and-a-few-compilation-options.patch Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-14 02:34:41 UTC (rev 11920) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-14 02:56:43 UTC (rev 11921) @@ -20,6 +20,7 @@ DISTFILES += CSWexim.request CSWexim.checkinstall PATCHFILES += 0003-Set-OpenCSW-build-options.patch +PATCHFILES += 0004-Force-Compiler-and-a-few-compilation-options.patch BUILD_DEP_PKGS = CSWlibspf2 Added: csw/mgar/pkg/exim/trunk/files/0004-Force-Compiler-and-a-few-compilation-options.patch =================================================================== --- csw/mgar/pkg/exim/trunk/files/0004-Force-Compiler-and-a-few-compilation-options.patch (rev 0) +++ csw/mgar/pkg/exim/trunk/files/0004-Force-Compiler-and-a-few-compilation-options.patch 2010-12-14 02:56:43 UTC (rev 11921) @@ -0,0 +1,33 @@ +From 81cf6c60a61512eed7f35af6d0b8797074f9d6bb Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Tue, 14 Dec 2010 03:39:25 +0100 +Subject: [PATCH] Force Compiler and a few compilation options + +We need to force the use of compiler and add a few extra CFLAGS and +LDFLAGS. + +Signed-off-by: Ben Walton +--- + Local/Makefile | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +diff --git a/Local/Makefile b/Local/Makefile +index 810b984..f7ec083 100644 +--- a/Local/Makefile ++++ b/Local/Makefile +@@ -1,5 +1,12 @@ + # $Cambridge: exim/exim-src/src/EDITME,v 1.23 2009/11/20 12:18:19 nm4 Exp $ + ++# -I (CSW_WORKSRC).. is needed for the SPF2 hack (to pick up patched SPF2 ++# headers locally) ++ ++CC=$(CSW_CC) ++CFLAGS=-DHAVE_NS_TYPE -I$(CSW_WORKSRC) -I/opt/csw/include $(CSW_OPT) ++LDFLAGS=-R/opt/csw/mysql5/lib/mysql -R/opt/csw/postgresql/lib ++ + ################################################## + # The Exim mail transport agent # + ################################################## +-- +1.7.3.2 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Tue Dec 14 03:57:42 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Tue, 14 Dec 2010 02:57:42 +0000 Subject: [csw-devel] SF.net SVN: gar:[11922] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11922 http://gar.svn.sourceforge.net/gar/?rev=11922&view=rev Author: bdwalton Date: 2010-12-14 02:57:41 +0000 (Tue, 14 Dec 2010) Log Message: ----------- exim: use GARCOMPILER to set CC values for the build Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-14 02:56:43 UTC (rev 11921) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-14 02:57:41 UTC (rev 11922) @@ -42,8 +42,8 @@ PWD = $(shell pwd) # Local/Makefile has been patched to use these: -CSW_CC = $(SUN_CC) -CSW_OPT = $(SUN_CC_OPT) +CSW_CC = $($(GARCOMPILER)_CC) +CSW_OPT = $($(GARCOMPILER)_CC_OPT) CSW_WORKSRC = $(PWD)/$(WORKSRC) export CSW_CC CSW_OPT CSW_WORKSRC This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From jake_goerzen at users.sourceforge.net Tue Dec 14 04:04:39 2010 From: jake_goerzen at users.sourceforge.net (jake_goerzen at users.sourceforge.net) Date: Tue, 14 Dec 2010 03:04:39 +0000 Subject: [csw-devel] SF.net SVN: gar:[11923] csw/mgar/pkg/dovecot/trunk/Makefile Message-ID: Revision: 11923 http://gar.svn.sourceforge.net/gar/?rev=11923&view=rev Author: jake_goerzen Date: 2010-12-14 03:04:39 +0000 (Tue, 14 Dec 2010) Log Message: ----------- search & replace /usr/local with /opt/csw in .conf .txt files Modified Paths: -------------- csw/mgar/pkg/dovecot/trunk/Makefile Modified: csw/mgar/pkg/dovecot/trunk/Makefile =================================================================== --- csw/mgar/pkg/dovecot/trunk/Makefile 2010-12-14 02:57:41 UTC (rev 11922) +++ csw/mgar/pkg/dovecot/trunk/Makefile 2010-12-14 03:04:39 UTC (rev 11923) @@ -102,8 +102,12 @@ s| /var/run| /var/opt/csw/run|; \ s| /etc/ssl| /opt/csw/ssl|; \ s| /usr/libexec| /opt/csw/libexec|; \ - s| /usr/lib/dovecot| /opt/csw/lib/dovecot|;' \ - $(WORKSRC)/dovecot-example.conf + s| /usr/lib/dovecot| /opt/csw/lib/dovecot|; \ + s| /usr/local| /opt/csw/|;' \ + $(WORKSRC)/*-example.conf +# replace bad paths with /opt/csw in doc/wiki/*.txt + perl -pi -e 's|/usr/share|/opt/csw/share|' $(WORKSRC)/doc/wiki/*.txt + perl -pi -e 's|/usr/local|/opt/csw|' $(WORKSRC)/doc/wiki/*.txt @$(MAKECOOKIE) post-install-modulated: DOCDEST = $(DESTDIR)$(docdir)/$(NAME) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Tue Dec 14 04:48:21 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Tue, 14 Dec 2010 03:48:21 +0000 Subject: [csw-devel] SF.net SVN: gar:[11924] csw/mgar/pkg/exim/trunk/files/ 0003-Set-OpenCSW-build-options.patch Message-ID: Revision: 11924 http://gar.svn.sourceforge.net/gar/?rev=11924&view=rev Author: bdwalton Date: 2010-12-14 03:48:20 +0000 (Tue, 14 Dec 2010) Log Message: ----------- exim: correct a few mysql build options Modified Paths: -------------- csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch Modified: csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch =================================================================== --- csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch 2010-12-14 03:04:39 UTC (rev 11923) +++ csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch 2010-12-14 03:48:20 UTC (rev 11924) @@ -1,4 +1,4 @@ -From 201fcd8e99e4f99f75c60a5fc7c69bb2d8796c43 Mon Sep 17 00:00:00 2001 +From daef4dfcacd6da541006c4d54f67e384ba862475 Mon Sep 17 00:00:00 2001 From: Ben Walton Date: Tue, 14 Dec 2010 03:31:46 +0100 Subject: [PATCH] Set OpenCSW build options This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Tue Dec 14 04:49:59 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Tue, 14 Dec 2010 03:49:59 +0000 Subject: [csw-devel] SF.net SVN: gar:[11925] csw/mgar/pkg/exim/trunk/files/ 0003-Set-OpenCSW-build-options.patch Message-ID: Revision: 11925 http://gar.svn.sourceforge.net/gar/?rev=11925&view=rev Author: bdwalton Date: 2010-12-14 03:49:59 +0000 (Tue, 14 Dec 2010) Log Message: ----------- exim: _really_ correct mysql build options Modified Paths: -------------- csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch Modified: csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch =================================================================== --- csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch 2010-12-14 03:48:20 UTC (rev 11924) +++ csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch 2010-12-14 03:49:59 UTC (rev 11925) @@ -1,4 +1,4 @@ -From daef4dfcacd6da541006c4d54f67e384ba862475 Mon Sep 17 00:00:00 2001 +From 5c1f33d87884e0c66ace1fd36e290cbe28d5c0de Mon Sep 17 00:00:00 2001 From: Ben Walton Date: Tue, 14 Dec 2010 03:31:46 +0100 Subject: [PATCH] Set OpenCSW build options @@ -12,7 +12,7 @@ 1 files changed, 45 insertions(+), 45 deletions(-) diff --git a/Local/Makefile b/Local/Makefile -index 9869eb1..810b984 100644 +index 9869eb1..6ba1bf8 100644 --- a/Local/Makefile +++ b/Local/Makefile @@ -100,7 +100,7 @@ @@ -122,7 +122,7 @@ -# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include -# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq -lgds -lsqlite3 -+LOOKUP_INCLUDE=-I /opt/csw/mysql/include/mysql -I /opt/csw/postgresql/include ++LOOKUP_INCLUDE=-I /opt/csw/mysql5/include/mysql -I /opt/csw/postgresql/include +LOOKUP_LIBS=-L/opt/csw/mysql5/lib/mysql -L/opt/csw/postgresql/lib -lldap -llber -lmysqlclient -lpq This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Tue Dec 14 04:53:03 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Tue, 14 Dec 2010 03:53:03 +0000 Subject: [csw-devel] SF.net SVN: gar:[11926] csw/mgar/pkg/exim/trunk/files/ 0004-Force-Compiler-and-a-few-compilation-options.patch Message-ID: Revision: 11926 http://gar.svn.sourceforge.net/gar/?rev=11926&view=rev Author: bdwalton Date: 2010-12-14 03:53:02 +0000 (Tue, 14 Dec 2010) Log Message: ----------- exim: force a few more build flags to influence mysql/postgres options Modified Paths: -------------- csw/mgar/pkg/exim/trunk/files/0004-Force-Compiler-and-a-few-compilation-options.patch Modified: csw/mgar/pkg/exim/trunk/files/0004-Force-Compiler-and-a-few-compilation-options.patch =================================================================== --- csw/mgar/pkg/exim/trunk/files/0004-Force-Compiler-and-a-few-compilation-options.patch 2010-12-14 03:49:59 UTC (rev 11925) +++ csw/mgar/pkg/exim/trunk/files/0004-Force-Compiler-and-a-few-compilation-options.patch 2010-12-14 03:53:02 UTC (rev 11926) @@ -1,6 +1,6 @@ -From 81cf6c60a61512eed7f35af6d0b8797074f9d6bb Mon Sep 17 00:00:00 2001 +From 3cc753695b92fae90252d3beb8f83dfd1133f6aa Mon Sep 17 00:00:00 2001 From: Ben Walton -Date: Tue, 14 Dec 2010 03:39:25 +0100 +Date: Tue, 14 Dec 2010 04:37:19 +0100 Subject: [PATCH] Force Compiler and a few compilation options We need to force the use of compiler and add a few extra CFLAGS and @@ -8,23 +8,27 @@ Signed-off-by: Ben Walton --- - Local/Makefile | 7 +++++++ - 1 files changed, 7 insertions(+), 0 deletions(-) + Local/Makefile | 11 +++++++++++ + 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/Local/Makefile b/Local/Makefile -index 810b984..f7ec083 100644 +index 6ba1bf8..60f0199 100644 --- a/Local/Makefile +++ b/Local/Makefile -@@ -1,5 +1,12 @@ +@@ -1,5 +1,16 @@ # $Cambridge: exim/exim-src/src/EDITME,v 1.23 2009/11/20 12:18:19 nm4 Exp $ -+# -I (CSW_WORKSRC).. is needed for the SPF2 hack (to pick up patched SPF2 -+# headers locally) ++# -I (CSW_WORKSRC).. is needed for the SPF2 hack (to pick up patched ++# SPF2 headers locally) + +CC=$(CSW_CC) +CFLAGS=-DHAVE_NS_TYPE -I$(CSW_WORKSRC) -I/opt/csw/include $(CSW_OPT) -+LDFLAGS=-R/opt/csw/mysql5/lib/mysql -R/opt/csw/postgresql/lib ++LDFLAGS=-L/opt/csw/mysql5/lib/mysql -L/opt/csw/postgresql/lib -L/opt/csw/lib -R/opt/csw/mysql5/lib/mysql -R/opt/csw/postgresql/lib + ++# This build system is a bit odd. They use LFLAGS where you'd normally ++# expect to see LDFLAGS. I don't see where it gets set though...? Typo? ++LFLAGS += $(LDFLAGS) ++ ################################################## # The Exim mail transport agent # ################################################## This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 14 10:15:11 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 14 Dec 2010 09:15:11 +0000 Subject: [csw-devel] SF.net SVN: gar:[11927] csw/mgar/pkg/libtasn1/trunk Message-ID: Revision: 11927 http://gar.svn.sourceforge.net/gar/?rev=11927&view=rev Author: dmichelsen Date: 2010-12-14 09:15:11 +0000 (Tue, 14 Dec 2010) Log Message: ----------- libtasn1: Update to 2.9 and split off so-package Modified Paths: -------------- csw/mgar/pkg/libtasn1/trunk/Makefile csw/mgar/pkg/libtasn1/trunk/checksums Modified: csw/mgar/pkg/libtasn1/trunk/Makefile =================================================================== --- csw/mgar/pkg/libtasn1/trunk/Makefile 2010-12-14 03:53:02 UTC (rev 11926) +++ csw/mgar/pkg/libtasn1/trunk/Makefile 2010-12-14 09:15:11 UTC (rev 11927) @@ -1,8 +1,8 @@ NAME = libtasn1 -VERSION = 2.7 +VERSION = 2.9 CATEGORIES = lib -DESCRIPTION = GNU ASN1 library +DESCRIPTION = GNU ASN1 Library define BLURB Libtasn1 is the ASN.1 library used by GnuTLS, GNU Shishi and some other packages. It was written by Fabio Fiorina, and has been shipped as part of GnuTLS for some @@ -12,15 +12,18 @@ MASTER_SITES = $(GNU_MIRROR) DISTFILES = $(NAME)-$(VERSION).tar.gz -PACKAGES = CSWlibtasn1 CSWlibtasn1devel +PACKAGES = CSWlibtasn1 CSWlibtasn1-3 CSWlibtasn1devel CATALOGNAME_CSWlibtasn1 = libtasn1 +CATALOGNAME_CSWlibtasn1-3 = libtasn1_3 CATALOGNAME_CSWlibtasn1devel = libtasn1_devel SPKG_DESC_CSWlibtasn1 = $(DESCRIPTION) +SPKG_DESC_CSWlibtasn1-3 = GNU ASN 1 Library libtasn1.so.3 SPKG_DESC_CSWlibtasn1devel = Development files for libtasn1 -RUNTIME_DEP_PKGS_CSWlibtasn1devel = CSWlibtasn1 +RUNTIME_DEP_PKGS_CSWlibtasn1 = CSWlibtasn1-3 +RUNTIME_DEP_PKGS_CSWlibtasn1devel = CSWlibtasn1-3 SPKG_SOURCEURL = http://www.gnu.org/software/gnutls/ @@ -40,9 +43,10 @@ MERGE_DIRS_isa-extra = $(libdir) +PKGFILES_CSWlibtasn1-3 = $(PKGFILES_RT) PKGFILES_CSWlibtasn1devel = $(PKGFILES_DEVEL) -CHECKPKG_OVERRIDES_CSWlibtasn1devel += surplus-dependency|CSWlibtasn1 +CHECKPKG_OVERRIDES_CSWlibtasn1devel += surplus-dependency|CSWlibtasn1-3 include gar/category.mk Modified: csw/mgar/pkg/libtasn1/trunk/checksums =================================================================== --- csw/mgar/pkg/libtasn1/trunk/checksums 2010-12-14 03:53:02 UTC (rev 11926) +++ csw/mgar/pkg/libtasn1/trunk/checksums 2010-12-14 09:15:11 UTC (rev 11927) @@ -1 +1 @@ -fade9f961ec7084dd91a9ba409ba7ab1 libtasn1-2.7.tar.gz +f4f4035b84550100ffeb8ad4b261dea9 libtasn1-2.9.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Tue Dec 14 10:53:22 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 14 Dec 2010 09:53:22 +0000 Subject: [csw-devel] SF.net SVN: gar:[11928] csw/mgar/pkg/protobuf/trunk Message-ID: Revision: 11928 http://gar.svn.sourceforge.net/gar/?rev=11928&view=rev Author: wahwah Date: 2010-12-14 09:53:22 +0000 (Tue, 14 Dec 2010) Log Message: ----------- protobuf: Split off shared libraries Also, experiment with grouping descriptions by package. It's a different way from the way most of the package descriptions are written. It looks slightly uglier, because gar's variable naming is designed for grouping by variable type. However, I found myself often thinking in a by-package manner, and grouping these by package helps me review the build description. Modified Paths: -------------- csw/mgar/pkg/protobuf/trunk/Makefile csw/mgar/pkg/protobuf/trunk/checksums Modified: csw/mgar/pkg/protobuf/trunk/Makefile =================================================================== --- csw/mgar/pkg/protobuf/trunk/Makefile 2010-12-14 09:15:11 UTC (rev 11927) +++ csw/mgar/pkg/protobuf/trunk/Makefile 2010-12-14 09:53:22 UTC (rev 11928) @@ -16,6 +16,7 @@ internal RPC protocols and file formats. endef SPKG_SOURCEURL = http://code.google.com/p/protobuf/ +DESCRIPTION = Google Protocol buffers MASTER_SITES = $(GOOGLE_MIRROR) DISTFILES = $(NAME)-$(VERSION).tar.gz UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz @@ -33,31 +34,67 @@ PYCOMPILE = 1 PACKAGES = CSWprotobuf -PACKAGES += CSWprotobuf-rt -PACKAGES += CSWprotobuf-devel -PACKAGES += CSWpy-protobuf -SPKG_DESC_CSWprotobuf = Google Protocol buffers -SPKG_DESC_CSWprotobuf-rt = $(SPKG_DESC_CSWprotobuf), shared libraries -SPKG_DESC_CSWprotobuf-devel = $(SPKG_DESC_CSWprotobuf), header files -SPKG_DESC_CSWpy-protobuf= $(SPKG_DESC_CSWprotobuf), Python support -CATALOGNAME_CSWprotobuf-rt = protobuf_rt -CATALOGNAME_CSWprotobuf-devel = protobuf_devel -CATALOGNAME_CSWpy-protobuf = py_protobuf -PKGFILES_CSWprotobuf += $(bindir).*protoc.* -PKGFILES_CSWprotobuf += $(libdir).*protoc.* -PKGFILES_CSWprotobuf-devel = $(PKGFILES_DEVEL) -PKGFILES_CSWprotobuf-rt = $(libdir).*libprotobuf.* -PKGFILES_CSWpy-protobuf = $(libdir)/python.* +SPKG_DESC_CSWprotobuf = $(DESCRIPTION) -ARCHALL_CSWpy-protobuf = 1 -RUNTIME_DEP_PKGS_CSWprotobuf += CSWprotobuf-rt RUNTIME_DEP_PKGS_CSWprotobuf += CSWstlport RUNTIME_DEP_PKGS_CSWprotobuf += CSWzlib +RUNTIME_DEP_PKGS_CSWprotobuf += CSWlibprotoc6 +RUNTIME_DEP_PKGS_CSWprotobuf += CSWlibprotobuf6 + +# Libraries +PACKAGES += CSWlibprotobuf-lite6 +CATALOGNAME_CSWlibprotobuf-lite6 = libprotobuf_lite6 +SPKG_DESC_CSWlibprotobuf-lite6 = $(DESCRIPTION), libprotobuf-lite.so.6 +RUNTIME_DEP_PKGS_CSWlibprotobuf-lite6 += CSWzlib +RUNTIME_DEP_PKGS_CSWlibprotobuf-lite6 += CSWstlport +PKGFILES_CSWlibprotobuf-lite6 = .*libprotobuf-lite\.so\..* +CHECKPKG_OVERRIDES_CSWlibprotobuf-lite6 += bad-rpath-entry + +PACKAGES += CSWlibprotobuf6 +CATALOGNAME_CSWlibprotobuf6 = libprotobuf6 +SPKG_DESC_CSWlibprotobuf6 = $(DESCRIPTION), libprotobuf.so.6 +RUNTIME_DEP_PKGS_CSWlibprotobuf6 += CSWstlport +RUNTIME_DEP_PKGS_CSWlibprotobuf6 += CSWzlib +PKGFILES_CSWlibprotobuf6 = .*libprotobuf\.so\..* +CHECKPKG_OVERRIDES_CSWlibprotobuf6 += bad-rpath-entry + +PACKAGES += CSWlibprotoc6 +CATALOGNAME_CSWlibprotoc6 = libprotoc6 +SPKG_DESC_CSWlibprotoc6 = $(DESCRIPTION), libprotoc.so.6 +RUNTIME_DEP_PKGS_CSWlibprotoc6 += CSWstlport +RUNTIME_DEP_PKGS_CSWlibprotoc6 += CSWzlib +PKGFILES_CSWlibprotoc6 = .*libprotoc\.so\..* +RUNTIME_DEP_PKGS_CSWlibprotoc6 += CSWlibprotobuf6 +CHECKPKG_OVERRIDES_CSWlibprotoc6 += bad-rpath-entry + +# Devel package +PACKAGES += CSWprotobuf-devel +CATALOGNAME_CSWprotobuf-devel = protobuf_devel +SPKG_DESC_CSWprotobuf-devel = $(DESCRIPTION), header files RUNTIME_DEP_PKGS_CSWprotobuf-devel += CSWprotobuf -RUNTIME_DEP_PKGS_CSWprotobuf-rt += CSWstlport -RUNTIME_DEP_PKGS_CSWprotobuf-rt += CSWzlib +RUNTIME_DEP_PKGS_CSWprotobuf-devel += CSWpy-protobuf +RUNTIME_DEP_PKGS_CSWprotobuf-devel += CSWlibprotobuf-lite6 +RUNTIME_DEP_PKGS_CSWprotobuf-devel += CSWlibprotobuf6 +RUNTIME_DEP_PKGS_CSWprotobuf-devel += CSWlibprotoc6 +PKGFILES_CSWprotobuf-devel = $(PKGFILES_DEVEL) + +# Python support +PACKAGES += CSWpy-protobuf +CATALOGNAME_CSWpy-protobuf = py_protobuf +SPKG_DESC_CSWpy-protobuf= $(DESCRIPTION), Python support RUNTIME_DEP_PKGS_CSWpy-protobuf += CSWprotobuf +RUNTIME_DEP_PKGS_CSWpy-protobuf += CSWpython +PKGFILES_CSWpy-protobuf = $(libdir)/python.* +ARCHALL_CSWpy-protobuf = 1 +CHECKPKG_OVERRIDES_CSWpy-protobuf += surplus-dependency|CSWprotobuf +# Empty transitional package +PACKAGES += CSWprotobuf-rt +CATALOGNAME_CSWprotobuf-rt = protobuf_rt +SPKG_DESC_CSWprotobuf-rt = An empty transitional package +PKGFILES_CSWprotobuf-rt = an-empty-package +ARCHALL_CSWprotobuf-rt = 1 + include gar/category.mk post-build-modulated: Modified: csw/mgar/pkg/protobuf/trunk/checksums =================================================================== --- csw/mgar/pkg/protobuf/trunk/checksums 2010-12-14 09:15:11 UTC (rev 11927) +++ csw/mgar/pkg/protobuf/trunk/checksums 2010-12-14 09:53:22 UTC (rev 11928) @@ -1,5 +1 @@ -9dbbdcb35c7f44b3d53405021c388c3d 0001-Patches-from-GAR.patch -3412715e07bdb891951c8e72cfd937af 0002-std-map-in-two-more-files.patch -f6c3466d20a54b9d57c4806494816eb8 OutputDirectoryIsFileError-unittest.patch 65dba2c04923595b6f0a6a44d8106f0a protobuf-2.3.0.tar.gz -b069aefd7e63a625ae1663529f251aef trailing-slash-test-fails-on-solaris-8-x86.patch This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 14 12:05:25 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 14 Dec 2010 11:05:25 +0000 Subject: [csw-devel] SF.net SVN: gar:[11929] csw/mgar/pkg/xchm/trunk Message-ID: Revision: 11929 http://gar.svn.sourceforge.net/gar/?rev=11929&view=rev Author: dmichelsen Date: 2010-12-14 11:05:24 +0000 (Tue, 14 Dec 2010) Log Message: ----------- xchm: Update to 1.18 and rework patches Modified Paths: -------------- csw/mgar/pkg/xchm/trunk/Makefile csw/mgar/pkg/xchm/trunk/checksums csw/mgar/pkg/xchm/trunk/files/0001-Fix-extra-comma-at-end-of-enum.patch csw/mgar/pkg/xchm/trunk/files/0002-Remove-W-Wall-for-Sun-Studio.patch Added Paths: ----------- csw/mgar/pkg/xchm/trunk/files/0003-Use-inttypes-instead-of-stdint.patch Removed Paths: ------------- csw/mgar/pkg/xchm/trunk/files/0003-Use-inttypes.h-instead-of-stdint.h.patch Modified: csw/mgar/pkg/xchm/trunk/Makefile =================================================================== --- csw/mgar/pkg/xchm/trunk/Makefile 2010-12-14 09:53:22 UTC (rev 11928) +++ csw/mgar/pkg/xchm/trunk/Makefile 2010-12-14 11:05:24 UTC (rev 11929) @@ -1,5 +1,5 @@ NAME = xchm -VERSION = 1.17 +VERSION = 1.18 CATEGORIES = utils DESCRIPTION = Cross-platform GUI front-end to chmlib (.chm reader) @@ -13,12 +13,17 @@ DISTFILES = $(NAME)-$(VERSION).tar.gz PATCHFILES = 0001-Fix-extra-comma-at-end-of-enum.patch PATCHFILES += 0002-Remove-W-Wall-for-Sun-Studio.patch -PATCHFILES += 0003-Use-inttypes.h-instead-of-stdint.h.patch +PATCHFILES += 0003-Use-inttypes-instead-of-stdint.patch # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -RUNTIME_DEP_PKGS = CSWchmlib CSWwxwidgetscommon CSWwxwidgetsgtk2 +RUNTIME_DEP_PKGS_CSWxchm = CSWchmlib +RUNTIME_DEP_PKGS_CSWxchm += CSWwxwidgetscommon +RUNTIME_DEP_PKGS_CSWxchm += CSWwxwidgetsgtk2 +RUNTIME_DEP_PKGS_CSWxchm += CSWsunmath +RUNTIME_DEP_PKGS_CSWxchm += CSWncurses + BUILD_DEP_PKGS = $(REQUIRED_PGKS) CSWwxwidgetsdevel CONFIGURE_ARGS = $(DIRPATHS) Modified: csw/mgar/pkg/xchm/trunk/checksums =================================================================== --- csw/mgar/pkg/xchm/trunk/checksums 2010-12-14 09:53:22 UTC (rev 11928) +++ csw/mgar/pkg/xchm/trunk/checksums 2010-12-14 11:05:24 UTC (rev 11929) @@ -1,4 +1 @@ -3dd1f6628a7ecfd1d65f0b93451fad48 0001-Fix-extra-comma-at-end-of-enum.patch -c9e7de423f7a79f280aee0ed3dc3e0f7 0002-Remove-W-Wall-for-Sun-Studio.patch -6b248d3b57a9b479be69a7c8475bdc66 0003-Use-inttypes.h-instead-of-stdint.h.patch -4f34bc046fcc59f1af590d8eb1e08934 xchm-1.17.tar.gz +07d7a910b3216301a002be5630c71866 xchm-1.18.tar.gz Modified: csw/mgar/pkg/xchm/trunk/files/0001-Fix-extra-comma-at-end-of-enum.patch =================================================================== --- csw/mgar/pkg/xchm/trunk/files/0001-Fix-extra-comma-at-end-of-enum.patch 2010-12-14 09:53:22 UTC (rev 11928) +++ csw/mgar/pkg/xchm/trunk/files/0001-Fix-extra-comma-at-end-of-enum.patch 2010-12-14 11:05:24 UTC (rev 11929) @@ -1,4 +1,4 @@ -From f327a8fe2df06b49bb7ad3dcec2f75108bea1e3c Mon Sep 17 00:00:00 2001 +From cde99f93f893fa6bbce5e0fb438ade41751b5bba Mon Sep 17 00:00:00 2001 From: Dagobert Michelsen Date: Thu, 12 Nov 2009 10:39:08 +0100 Subject: [PATCH 1/3] Fix extra comma at end of enum @@ -8,7 +8,7 @@ 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/chmframe.h b/src/chmframe.h -index 62a3f52..1dc59a1 100644 +index 7f00b9a..243eae7 100644 --- a/src/chmframe.h +++ b/src/chmframe.h @@ -79,7 +79,7 @@ enum @@ -21,5 +21,5 @@ -- -1.6.5 +1.7.3.2 Modified: csw/mgar/pkg/xchm/trunk/files/0002-Remove-W-Wall-for-Sun-Studio.patch =================================================================== --- csw/mgar/pkg/xchm/trunk/files/0002-Remove-W-Wall-for-Sun-Studio.patch 2010-12-14 09:53:22 UTC (rev 11928) +++ csw/mgar/pkg/xchm/trunk/files/0002-Remove-W-Wall-for-Sun-Studio.patch 2010-12-14 11:05:24 UTC (rev 11929) @@ -1,18 +1,17 @@ -From 042ab4f6497309a3488d73538f816e9a88c851de Mon Sep 17 00:00:00 2001 +From b72c0a81f12d65bf31cc6bb1f0b041c0911489c9 Mon Sep 17 00:00:00 2001 From: Dagobert Michelsen Date: Thu, 12 Nov 2009 10:41:55 +0100 Subject: [PATCH 2/3] Remove -W -Wall for Sun Studio --- - configure | 2 +- - configure.in | 2 +- - 6 files changed, 6 insertions(+), 6 deletions(-) + configure | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/configure b/configure -index 50a3330..c5da2c9 100755 +index d77ba5b..eff7ff6 100755 --- a/configure +++ b/configure -@@ -5385,7 +5385,7 @@ wx_config_minor_version=`echo $WX_VERSION | \ +@@ -5475,7 +5475,7 @@ wx_config_minor_version=`echo $WX_VERSION | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" @@ -21,19 +20,6 @@ CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" -diff --git a/configure.in b/configure.in -index 82e4125..6b108d3 100644 ---- a/configure.in -+++ b/configure.in -@@ -34,7 +34,7 @@ wx_config_minor_version=`echo $WX_VERSION | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - - CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" --CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY -W -Wall" -+CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" - CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" - - -- -1.6.5 +1.7.3.2 Added: csw/mgar/pkg/xchm/trunk/files/0003-Use-inttypes-instead-of-stdint.patch =================================================================== --- csw/mgar/pkg/xchm/trunk/files/0003-Use-inttypes-instead-of-stdint.patch (rev 0) +++ csw/mgar/pkg/xchm/trunk/files/0003-Use-inttypes-instead-of-stdint.patch 2010-12-14 11:05:24 UTC (rev 11929) @@ -0,0 +1,39 @@ +From f1eb5eeb4ad88dbc14b72c1e0d8483abec42013b Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Tue, 14 Dec 2010 11:52:45 +0100 +Subject: [PATCH 3/3] Use inttypes instead of stdint + +--- + src/bitfiddle.inl | 2 +- + src/chmfile.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/bitfiddle.inl b/src/bitfiddle.inl +index 3edd779..6bbb2ae 100644 +--- a/src/bitfiddle.inl ++++ b/src/bitfiddle.inl +@@ -23,7 +23,7 @@ + + + #include +-#include ++#include + + + #define FIXENDIAN16(x) (x = wxUINT16_SWAP_ON_BE(x)) +diff --git a/src/chmfile.h b/src/chmfile.h +index 4f57290..838f8ec 100644 +--- a/src/chmfile.h ++++ b/src/chmfile.h +@@ -28,7 +28,7 @@ + # include + #endif + +-#include ++#include + #include + #include + #include +-- +1.7.3.2 + Deleted: csw/mgar/pkg/xchm/trunk/files/0003-Use-inttypes.h-instead-of-stdint.h.patch =================================================================== --- csw/mgar/pkg/xchm/trunk/files/0003-Use-inttypes.h-instead-of-stdint.h.patch 2010-12-14 09:53:22 UTC (rev 11928) +++ csw/mgar/pkg/xchm/trunk/files/0003-Use-inttypes.h-instead-of-stdint.h.patch 2010-12-14 11:05:24 UTC (rev 11929) @@ -1,39 +0,0 @@ -From 514f5e2682428b392fb5027b04f4557a837dbb64 Mon Sep 17 00:00:00 2001 -From: Dagobert Michelsen -Date: Thu, 12 Nov 2009 10:42:32 +0100 -Subject: [PATCH 3/3] Use inttypes.h instead of stdint.h - ---- - src/bitfiddle.inl | 2 +- - src/chmfile.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/bitfiddle.inl b/src/bitfiddle.inl -index 3edd779..6bbb2ae 100644 ---- a/src/bitfiddle.inl -+++ b/src/bitfiddle.inl -@@ -23,7 +23,7 @@ - - - #include --#include -+#include - - - #define FIXENDIAN16(x) (x = wxUINT16_SWAP_ON_BE(x)) -diff --git a/src/chmfile.h b/src/chmfile.h -index dc00013..d740d20 100644 ---- a/src/chmfile.h -+++ b/src/chmfile.h -@@ -24,7 +24,7 @@ - #define __CHMFILE_H_ - - #include --#include -+#include - #include - #include - #include --- -1.6.5 - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 14 12:16:07 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 14 Dec 2010 11:16:07 +0000 Subject: [csw-devel] SF.net SVN: gar:[11931] csw/mgar/pkg/wdiff/trunk Message-ID: Revision: 11931 http://gar.svn.sourceforge.net/gar/?rev=11931&view=rev Author: dmichelsen Date: 2010-12-14 11:16:07 +0000 (Tue, 14 Dec 2010) Log Message: ----------- wdiff: Update to 0.6.5 Modified Paths: -------------- csw/mgar/pkg/wdiff/trunk/Makefile csw/mgar/pkg/wdiff/trunk/checksums Modified: csw/mgar/pkg/wdiff/trunk/Makefile =================================================================== --- csw/mgar/pkg/wdiff/trunk/Makefile 2010-12-14 11:14:51 UTC (rev 11930) +++ csw/mgar/pkg/wdiff/trunk/Makefile 2010-12-14 11:16:07 UTC (rev 11931) @@ -1,6 +1,6 @@ # : Makefile 9089 2010-03-11 08:34:46Z wahwah $ NAME = wdiff -VERSION = 0.6.2 +VERSION = 0.6.5 CATEGORIES = utils DESCRIPTION = A front end to diff for comparing files on a word per word basis Modified: csw/mgar/pkg/wdiff/trunk/checksums =================================================================== --- csw/mgar/pkg/wdiff/trunk/checksums 2010-12-14 11:14:51 UTC (rev 11930) +++ csw/mgar/pkg/wdiff/trunk/checksums 2010-12-14 11:16:07 UTC (rev 11931) @@ -1 +1 @@ -bf8474129a47b3a002af969a77612593 wdiff-0.6.2.tar.gz +1828209a14d01ad38c7267985f365cbf wdiff-0.6.5.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Tue Dec 14 12:31:50 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 14 Dec 2010 11:31:50 +0000 Subject: [csw-devel] SF.net SVN: gar:[11932] csw/mgar/pkg/mongodb/trunk Message-ID: Revision: 11932 http://gar.svn.sourceforge.net/gar/?rev=11932&view=rev Author: wahwah Date: 2010-12-14 11:31:49 +0000 (Tue, 14 Dec 2010) Log Message: ----------- mongodb: Shrinking the patch so it applies better in the future. Modified Paths: -------------- csw/mgar/pkg/mongodb/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/mongodb/trunk/files/0002-library-checking-by-locating-.so-files.patch Removed Paths: ------------- csw/mgar/pkg/mongodb/trunk/files/0002-Looking-for-.so-files-not-.a-files.patch Modified: csw/mgar/pkg/mongodb/trunk/Makefile =================================================================== --- csw/mgar/pkg/mongodb/trunk/Makefile 2010-12-14 11:16:07 UTC (rev 11931) +++ csw/mgar/pkg/mongodb/trunk/Makefile 2010-12-14 11:31:49 UTC (rev 11932) @@ -22,7 +22,7 @@ CONFIGURE_ARGS = $(DIRPATHS) # GARCOMPILER = GNU PATCHFILES += 0001-Disabling-the-libstdc-check.patch -PATCHFILES += 0002-Looking-for-.so-files-not-.a-files.patch +PATCHFILES += 0002-library-checking-by-locating-.so-files.patch BUILD_DEP_PKGS = CSWboostdevel Deleted: csw/mgar/pkg/mongodb/trunk/files/0002-Looking-for-.so-files-not-.a-files.patch =================================================================== --- csw/mgar/pkg/mongodb/trunk/files/0002-Looking-for-.so-files-not-.a-files.patch 2010-12-14 11:16:07 UTC (rev 11931) +++ csw/mgar/pkg/mongodb/trunk/files/0002-Looking-for-.so-files-not-.a-files.patch 2010-12-14 11:31:49 UTC (rev 11932) @@ -1,73 +0,0 @@ -From bcd6e14ea7572a69dddb10baae82036accfc05a5 Mon Sep 17 00:00:00 2001 -From: Maciej Blizinski -Date: Tue, 14 Dec 2010 12:05:24 +0100 -Subject: [PATCH] Looking for .so files, not .a files - ---- - SConstruct | 26 ++++++++++++++------------ - 1 files changed, 14 insertions(+), 12 deletions(-) - -diff --git a/SConstruct b/SConstruct -index 0feedc0..10769c9 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -594,27 +594,27 @@ elif "win32" == os.sys.platform: - # release = True - - for pathdir in env['ENV']['PATH'].split(os.pathsep): -- if os.path.exists(os.path.join(pathdir, 'cl.exe')): -+ if os.path.exists(os.path.join(pathdir, 'cl.exe')): - print( "found visual studio at " + pathdir ) -- break -+ break - else: -- #use current environment -- env['ENV'] = dict(os.environ) -+ #use current environment -+ env['ENV'] = dict(os.environ) - - def find_boost(): -- for x in ('', ' (x86)'): -+ for x in ('', ' (x86)'): - boostDir = "C:/Program Files" + x + "/boost/latest" - if os.path.exists( boostDir ): - return boostDir - for bv in reversed( range(33,50) ): -- for extra in ('', '_0', '_1'): -- boostDir = "C:/Program Files" + x + "/Boost/boost_1_" + str(bv) + extra -- if os.path.exists( boostDir ): -- return boostDir -+ for extra in ('', '_0', '_1'): -+ boostDir = "C:/Program Files" + x + "/Boost/boost_1_" + str(bv) + extra -+ if os.path.exists( boostDir ): -+ return boostDir - if os.path.exists( "C:/boost" ): -- return "C:/boost" -+ return "C:/boost" - if os.path.exists( "/boost" ): -- return "/boost" -+ return "/boost" - return None - - boostDir = find_boost() -@@ -867,6 +867,7 @@ def doConfigure( myenv , needPcre=True , shell=False ): - - def myCheckLib( poss , failIfNotFound=False , staticOnly=False): - -+ print("myCheckLib(%s, %s, %s)" % (poss, failIfNotFound, staticOnly)) - if type( poss ) != types.ListType : - poss = [poss] - -@@ -879,7 +880,8 @@ def doConfigure( myenv , needPcre=True , shell=False ): - - for p in poss: - for loc in allPlaces: -- fullPath = loc + "/lib" + p + ".a" -+ fullPath = loc + "/lib" + p + ".so" -+ print("Checking for %s" % fullPath) - if os.path.exists( fullPath ): - myenv['_LIBFLAGS']='${_stripixes(LIBLINKPREFIX, LIBS, LIBLINKSUFFIX, LIBPREFIXES, LIBSUFFIXES, __env__)} $SLIBS' - myenv.Append( SLIBS=" " + fullPath + " " ) --- -1.7.3.2 - Added: csw/mgar/pkg/mongodb/trunk/files/0002-library-checking-by-locating-.so-files.patch =================================================================== --- csw/mgar/pkg/mongodb/trunk/files/0002-library-checking-by-locating-.so-files.patch (rev 0) +++ csw/mgar/pkg/mongodb/trunk/files/0002-library-checking-by-locating-.so-files.patch 2010-12-14 11:31:49 UTC (rev 11932) @@ -0,0 +1,37 @@ +From 53a89a29c07b6a140ddb5cbb80ec3df4c6994273 Mon Sep 17 00:00:00 2001 +From: Maciej Blizinski +Date: Tue, 14 Dec 2010 12:26:39 +0100 +Subject: [PATCH] library checking by locating .so files + +Doing this by checking for .a files doesn't make sense on Solaris, as it's +impossible to create static binaries, and there are no static libraries in the +system. +--- + SConstruct | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/SConstruct b/SConstruct +index e3046ff..154f46f 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -865,6 +865,7 @@ def doConfigure( myenv , needPcre=True , shell=False ): + + def myCheckLib( poss , failIfNotFound=False , staticOnly=False): + ++ print("myCheckLib(%s, %s, %s)" % (poss, failIfNotFound, staticOnly)) + if type( poss ) != types.ListType : + poss = [poss] + +@@ -877,7 +878,8 @@ def doConfigure( myenv , needPcre=True , shell=False ): + + for p in poss: + for loc in allPlaces: +- fullPath = loc + "/lib" + p + ".a" ++ fullPath = loc + "/lib" + p + ".so" ++ print("Checking for %s" % fullPath) + if os.path.exists( fullPath ): + myenv['_LIBFLAGS']='${_stripixes(LIBLINKPREFIX, LIBS, LIBLINKSUFFIX, LIBPREFIXES, LIBSUFFIXES, __env__)} $SLIBS' + myenv.Append( SLIBS=" " + fullPath + " " ) +-- +1.7.3.2 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Tue Dec 14 12:14:51 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 14 Dec 2010 11:14:51 +0000 Subject: [csw-devel] SF.net SVN: gar:[11930] csw/mgar/pkg/mongodb/trunk Message-ID: Revision: 11930 http://gar.svn.sourceforge.net/gar/?rev=11930&view=rev Author: wahwah Date: 2010-12-14 11:14:51 +0000 (Tue, 14 Dec 2010) Log Message: ----------- mongodb: Looking for .so files, not -a files Can I vent at scons now? - checking for .a files as the determining factor for libraries is wrong, on Solaris there never any .a files - mixing tabs and spaces in Python code Modified Paths: -------------- csw/mgar/pkg/mongodb/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/mongodb/trunk/files/0002-Looking-for-.so-files-not-.a-files.patch Modified: csw/mgar/pkg/mongodb/trunk/Makefile =================================================================== --- csw/mgar/pkg/mongodb/trunk/Makefile 2010-12-14 11:05:24 UTC (rev 11929) +++ csw/mgar/pkg/mongodb/trunk/Makefile 2010-12-14 11:14:51 UTC (rev 11930) @@ -20,8 +20,9 @@ INSTALL_SCRIPTS = mongo TEST_SCRIPTS = CONFIGURE_ARGS = $(DIRPATHS) -GARCOMPILER = GNU +# GARCOMPILER = GNU PATCHFILES += 0001-Disabling-the-libstdc-check.patch +PATCHFILES += 0002-Looking-for-.so-files-not-.a-files.patch BUILD_DEP_PKGS = CSWboostdevel @@ -33,7 +34,8 @@ # scons libboost-dev libpcre++-dev xulrunner-1.9.1-dev build-mongo: - (cd $(WORKSRC); $(BUILD_ENV) scons --extrapathdyn=/opt/csw,/opt/csw/gcc4 --cxx /opt/csw/gcc4/bin/g++ --usev8 all) + # (cd $(WORKSRC); $(BUILD_ENV) scons --extrapathdyn=/opt/csw,/opt/csw/gcc4 --cxx /opt/csw/gcc4/bin/g++ --usev8 all) + (cd $(WORKSRC); $(BUILD_ENV) scons --libpath=/opt/csw/lib --extrapathdyn=/opt/csw,/opt/SUNWspro/bin --cxx /opt/SUNWspro/bin/CC --release all) @$(MAKECOOKIE) install-mongo: Added: csw/mgar/pkg/mongodb/trunk/files/0002-Looking-for-.so-files-not-.a-files.patch =================================================================== --- csw/mgar/pkg/mongodb/trunk/files/0002-Looking-for-.so-files-not-.a-files.patch (rev 0) +++ csw/mgar/pkg/mongodb/trunk/files/0002-Looking-for-.so-files-not-.a-files.patch 2010-12-14 11:14:51 UTC (rev 11930) @@ -0,0 +1,73 @@ +From bcd6e14ea7572a69dddb10baae82036accfc05a5 Mon Sep 17 00:00:00 2001 +From: Maciej Blizinski +Date: Tue, 14 Dec 2010 12:05:24 +0100 +Subject: [PATCH] Looking for .so files, not .a files + +--- + SConstruct | 26 ++++++++++++++------------ + 1 files changed, 14 insertions(+), 12 deletions(-) + +diff --git a/SConstruct b/SConstruct +index 0feedc0..10769c9 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -594,27 +594,27 @@ elif "win32" == os.sys.platform: + # release = True + + for pathdir in env['ENV']['PATH'].split(os.pathsep): +- if os.path.exists(os.path.join(pathdir, 'cl.exe')): ++ if os.path.exists(os.path.join(pathdir, 'cl.exe')): + print( "found visual studio at " + pathdir ) +- break ++ break + else: +- #use current environment +- env['ENV'] = dict(os.environ) ++ #use current environment ++ env['ENV'] = dict(os.environ) + + def find_boost(): +- for x in ('', ' (x86)'): ++ for x in ('', ' (x86)'): + boostDir = "C:/Program Files" + x + "/boost/latest" + if os.path.exists( boostDir ): + return boostDir + for bv in reversed( range(33,50) ): +- for extra in ('', '_0', '_1'): +- boostDir = "C:/Program Files" + x + "/Boost/boost_1_" + str(bv) + extra +- if os.path.exists( boostDir ): +- return boostDir ++ for extra in ('', '_0', '_1'): ++ boostDir = "C:/Program Files" + x + "/Boost/boost_1_" + str(bv) + extra ++ if os.path.exists( boostDir ): ++ return boostDir + if os.path.exists( "C:/boost" ): +- return "C:/boost" ++ return "C:/boost" + if os.path.exists( "/boost" ): +- return "/boost" ++ return "/boost" + return None + + boostDir = find_boost() +@@ -867,6 +867,7 @@ def doConfigure( myenv , needPcre=True , shell=False ): + + def myCheckLib( poss , failIfNotFound=False , staticOnly=False): + ++ print("myCheckLib(%s, %s, %s)" % (poss, failIfNotFound, staticOnly)) + if type( poss ) != types.ListType : + poss = [poss] + +@@ -879,7 +880,8 @@ def doConfigure( myenv , needPcre=True , shell=False ): + + for p in poss: + for loc in allPlaces: +- fullPath = loc + "/lib" + p + ".a" ++ fullPath = loc + "/lib" + p + ".so" ++ print("Checking for %s" % fullPath) + if os.path.exists( fullPath ): + myenv['_LIBFLAGS']='${_stripixes(LIBLINKPREFIX, LIBS, LIBLINKSUFFIX, LIBPREFIXES, LIBSUFFIXES, __env__)} $SLIBS' + myenv.Append( SLIBS=" " + fullPath + " " ) +-- +1.7.3.2 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From aigoshin at users.sourceforge.net Tue Dec 14 18:00:33 2010 From: aigoshin at users.sourceforge.net (aigoshin at users.sourceforge.net) Date: Tue, 14 Dec 2010 17:00:33 +0000 Subject: [csw-devel] SF.net SVN: gar:[11933] csw/mgar/pkg/nginx/trunk Message-ID: Revision: 11933 http://gar.svn.sourceforge.net/gar/?rev=11933&view=rev Author: aigoshin Date: 2010-12-14 17:00:32 +0000 (Tue, 14 Dec 2010) Log Message: ----------- nginx: release 20101214 Modified Paths: -------------- csw/mgar/pkg/nginx/trunk/Makefile csw/mgar/pkg/nginx/trunk/checksums Modified: csw/mgar/pkg/nginx/trunk/Makefile =================================================================== --- csw/mgar/pkg/nginx/trunk/Makefile 2010-12-14 11:31:49 UTC (rev 11932) +++ csw/mgar/pkg/nginx/trunk/Makefile 2010-12-14 17:00:32 UTC (rev 11933) @@ -1,5 +1,5 @@ -NAME = nginx -VERSION = 0.8.53 +NAME = nginx +VERSION = 0.8.54 CATEGORIES = server GARCOMPILER = SOS11 Modified: csw/mgar/pkg/nginx/trunk/checksums =================================================================== --- csw/mgar/pkg/nginx/trunk/checksums 2010-12-14 11:31:49 UTC (rev 11932) +++ csw/mgar/pkg/nginx/trunk/checksums 2010-12-14 17:00:32 UTC (rev 11933) @@ -1 +1 @@ -717eaea1b34e8663849f64b9aa05a9da nginx-0.8.53.tar.gz +44df4eb6a22d725021288c570789046f nginx-0.8.54.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at opencsw.org Tue Dec 14 18:03:51 2010 From: skayser at opencsw.org (Sebastian Kayser) Date: Tue, 14 Dec 2010 18:03:51 +0100 Subject: [csw-devel] SF.net SVN: gar:[11928] csw/mgar/pkg/protobuf/trunk In-Reply-To: References: Message-ID: <20101214170351.GN30288@sebastiankayser.de> * wahwah at users.sourceforge.net wrote: > Revision: 11928 > http://gar.svn.sourceforge.net/gar/?rev=11928&view=rev > Author: wahwah > Date: 2010-12-14 09:53:22 +0000 (Tue, 14 Dec 2010) > > Log Message: > ----------- > protobuf: Split off shared libraries > > Also, experiment with grouping descriptions by package. It's a different way > from the way most of the package descriptions are written. It looks slightly > uglier, because gar's variable naming is designed for grouping by variable > type. However, I found myself often thinking in a by-package manner, and > grouping these by package helps me review the build description. That's IMHO a very sensible approach and one that I also follow for bigger build descriptions. Otherwise, I found myself doing adjustments in one place and missing out on related adjustments elsewhere in the description way too often. Examples are * Subversion [1] (although your approach is even more consequent as it also relocates PACKAGES) * Postfix [2] (when it comes to FEATURES) Just some feedback. Sebastian [1]https://gar.svn.sf.net/svnroot/gar/csw/mgar/pkg/subversion/trunk/Makefile [2]https://gar.svn.sf.net/svnroot/gar/csw/mgar/pkg/postfix/trunk/Makefile From wahwah at users.sourceforge.net Wed Dec 15 00:20:00 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 14 Dec 2010 23:20:00 +0000 Subject: [csw-devel] SF.net SVN: gar:[11934] csw/mgar/gar/v2/lib/python/package.py Message-ID: Revision: 11934 http://gar.svn.sourceforge.net/gar/?rev=11934&view=rev Author: wahwah Date: 2010-12-14 23:19:59 +0000 (Tue, 14 Dec 2010) Log Message: ----------- checkpkg: Calling CswSrv4File's superclass Calling the constructor in case the superclass develops one. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package.py Modified: csw/mgar/gar/v2/lib/python/package.py =================================================================== --- csw/mgar/gar/v2/lib/python/package.py 2010-12-14 17:00:32 UTC (rev 11933) +++ csw/mgar/gar/v2/lib/python/package.py 2010-12-14 23:19:59 UTC (rev 11934) @@ -46,6 +46,7 @@ """Represents a package in the srv4 format (pkg).""" def __init__(self, pkg_path, debug=False): + super(CswSrv4File, self).__init__() self.pkg_path = pkg_path self.workdir = None self.gunzipped_path = None This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 15 00:20:31 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 14 Dec 2010 23:20:31 +0000 Subject: [csw-devel] SF.net SVN: gar:[11935] csw/mgar/gar/v2/lib/python/README Message-ID: Revision: 11935 http://gar.svn.sourceforge.net/gar/?rev=11935&view=rev Author: wahwah Date: 2010-12-14 23:20:31 +0000 (Tue, 14 Dec 2010) Log Message: ----------- checkpkg: Update for the README file Modified Paths: -------------- csw/mgar/gar/v2/lib/python/README Modified: csw/mgar/gar/v2/lib/python/README =================================================================== --- csw/mgar/gar/v2/lib/python/README 2010-12-14 23:19:59 UTC (rev 11934) +++ csw/mgar/gar/v2/lib/python/README 2010-12-14 23:20:31 UTC (rev 11935) @@ -1,22 +1,30 @@ -Python libraries, mostly related to checkpkg. +This directory contains Python libraries, mostly related to checkpkg. +==Checkpkg== + Development plan for checkpkg: - -- Move the 'data' field of the srv4_file table to a separate table (should - speed up checking if stats are already collected) -- Store run history and display stats from each run +- Generalize dependency checking by adding NeedFile(file_list, reason) to + error_mgr. It's possible to need one of the listed files only, so files are + given as alternatives, but the reason is common. +- Display stats from each run - Shorten the on-screen output, add commands to display override lines - Move the set check stats outside of checking functions, remove the special - status of dependency checking functions; add a progress bar for it. + status of dependency checking functions; add a progress bar for it. - Restructure the error reporting, group them by errors. +Also, see ticket list on trac: http://sourceforge.net/apps/trac/gar/report/1 +Items done: +- Move the 'data' field of the srv4_file table to a separate table (should + speed up checking if stats are already collected) +- Store run history + Known problems: - libmagic fails sometimes when processing the whole catalog +- hachoir_parser fails sometimes on i386 packages when examining them on sparc +Package dependencies: -Dependencies: - It's possible to develop checkpkg on a non-Solaris platform, using unit tests as means to run various bits of code. Here's the dependency list for Ubuntu. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 15 00:21:06 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 14 Dec 2010 23:21:06 +0000 Subject: [csw-devel] SF.net SVN: gar:[11936] csw/mgar/gar/v2/lib/python/README Message-ID: Revision: 11936 http://gar.svn.sourceforge.net/gar/?rev=11936&view=rev Author: wahwah Date: 2010-12-14 23:21:06 +0000 (Tue, 14 Dec 2010) Log Message: ----------- Add sorting issues to the readme file. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/README Modified: csw/mgar/gar/v2/lib/python/README =================================================================== --- csw/mgar/gar/v2/lib/python/README 2010-12-14 23:20:31 UTC (rev 11935) +++ csw/mgar/gar/v2/lib/python/README 2010-12-14 23:21:06 UTC (rev 11936) @@ -11,6 +11,9 @@ - Move the set check stats outside of checking functions, remove the special status of dependency checking functions; add a progress bar for it. - Restructure the error reporting, group them by errors. +- Sort all list data structures so that it's possible to diff the results of + pprint.pprint() and see meaningful results. This will be the new + implementation for comparepkg. Also, see ticket list on trac: http://sourceforge.net/apps/trac/gar/report/1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 15 00:21:55 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 14 Dec 2010 23:21:55 +0000 Subject: [csw-devel] SF.net SVN: gar:[11937] csw/mgar/gar/v2/lib/python Message-ID: Revision: 11937 http://gar.svn.sourceforge.net/gar/?rev=11937&view=rev Author: wahwah Date: 2010-12-14 23:21:55 +0000 (Tue, 14 Dec 2010) Log Message: ----------- checkpkg: A bugfix for package mtime Also a unit test for the CswSrv4File class. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package.py csw/mgar/gar/v2/lib/python/package_test.py Property Changed: ---------------- csw/mgar/gar/v2/lib/python/package_test.py Modified: csw/mgar/gar/v2/lib/python/package.py =================================================================== --- csw/mgar/gar/v2/lib/python/package.py 2010-12-14 23:21:06 UTC (rev 11936) +++ csw/mgar/gar/v2/lib/python/package.py 2010-12-14 23:21:55 UTC (rev 11937) @@ -135,9 +135,11 @@ return self.stat def GetMtime(self): - s = self._Stat() - t = time.gmtime(s.st_mtime) - self.mtime = datetime.datetime(*t[:6]) + if not self.mtime: + s = self._Stat() + t = time.gmtime(s.st_mtime) + self.mtime = datetime.datetime(*t[:6]) + return self.mtime def GetSize(self): s = self._Stat() Modified: csw/mgar/gar/v2/lib/python/package_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_test.py 2010-12-14 23:21:06 UTC (rev 11936) +++ csw/mgar/gar/v2/lib/python/package_test.py 2010-12-14 23:21:55 UTC (rev 11937) @@ -1,6 +1,25 @@ #!/usr/bin/env python2.6 import unittest +import package +import mox +import os +import posix +import datetime +class CswSrv4FileUnitTest(mox.MoxTestBase): + + def testGetMtime(self): + p = package.CswSrv4File("/fake/path") + self.mox.StubOutWithMock(os, 'stat') + stat_result_mock = self.mox.CreateMock(posix.stat_result) + stat_result_mock.st_mtime = 1292318507.0 + os.stat("/fake/path").AndReturn(stat_result_mock) + self.mox.ReplayAll() + self.assertEquals( + datetime.datetime(2010, 12, 14, 9, 21, 47), + p.GetMtime()) + + if __name__ == '__main__': unittest.main() Property changes on: csw/mgar/gar/v2/lib/python/package_test.py ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 15 00:22:27 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 14 Dec 2010 23:22:27 +0000 Subject: [csw-devel] SF.net SVN: gar:[11938] csw/mgar/gar/v2/lib/python Message-ID: Revision: 11938 http://gar.svn.sourceforge.net/gar/?rev=11938&view=rev Author: wahwah Date: 2010-12-14 23:22:27 +0000 (Tue, 14 Dec 2010) Log Message: ----------- checkpkg: Keep pkgmap in order sorted by path This should make it easier to compare two packages by looking at their pretty-printed stats data structures. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/opencsw.py csw/mgar/gar/v2/lib/python/opencsw_test.py Modified: csw/mgar/gar/v2/lib/python/opencsw.py =================================================================== --- csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-14 23:21:55 UTC (rev 11937) +++ csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-14 23:22:27 UTC (rev 11938) @@ -569,6 +569,7 @@ self.entries_by_type = IndexDictsBy(self.entries, "type") self.entries_by_class = IndexDictsBy(self.entries, "class") self.entries_by_path = IndexDictsBy(self.entries, "path") + self.entries = sorted(self.entries, key=lambda x: x["path"]) def GetClasses(self): """The assumtion is that the set of classes never changes.""" Modified: csw/mgar/gar/v2/lib/python/opencsw_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/opencsw_test.py 2010-12-14 23:21:55 UTC (rev 11937) +++ csw/mgar/gar/v2/lib/python/opencsw_test.py 2010-12-14 23:22:27 UTC (rev 11938) @@ -413,6 +413,11 @@ pkgmap = opencsw.Pkgmap(PKGMAP_3.splitlines()) self.assertTrue("build" in pkgmap.entries_by_class) + def testPkgmapSortedByPaths(self): + pkgmap = opencsw.Pkgmap(PKGMAP_2.splitlines()) + paths = [x["path"] for x in pkgmap.entries] + self.assertEquals(paths, sorted(paths)) + class IndexByUnitTest(unittest.TestCase): def testIndexDictsBy_1(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 15 01:13:54 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 15 Dec 2010 00:13:54 +0000 Subject: [csw-devel] SF.net SVN: gar:[11939] csw/mgar/pkg/boost Message-ID: Revision: 11939 http://gar.svn.sourceforge.net/gar/?rev=11939&view=rev Author: wahwah Date: 2010-12-15 00:13:53 +0000 (Wed, 15 Dec 2010) Log Message: ----------- boost: Work towards 1.45.0 There are compilation error, and I found a flag to make bjam stop on the first error, so it'll be easier to locate failures. Modified Paths: -------------- csw/mgar/pkg/boost/branches/boost-gcc/Makefile csw/mgar/pkg/boost/branches/boost-gcc/checksums csw/mgar/pkg/boost/trunk/Makefile csw/mgar/pkg/boost/trunk/checksums Property Changed: ---------------- csw/mgar/pkg/boost/trunk/Makefile Modified: csw/mgar/pkg/boost/branches/boost-gcc/Makefile =================================================================== --- csw/mgar/pkg/boost/branches/boost-gcc/Makefile 2010-12-14 23:22:27 UTC (rev 11938) +++ csw/mgar/pkg/boost/branches/boost-gcc/Makefile 2010-12-15 00:13:53 UTC (rev 11939) @@ -1,8 +1,9 @@ +# $Id$ + NAME = boost -VERSION = 1.33.0 +VERSION = 1.45.0 CATEGORIES = lib -DESCRIPTION = A collection of C++ libraries define BLURB Boost was begun by members of the C++ standards committee Library Working Group to provide free peer-reviewed portable libraries to the C++ community. @@ -17,39 +18,96 @@ MASTER_SITES = $(SF_MIRROR)/$(NAME)/ DISTVERSION = $(subst .,_,$(VERSION)) -DISTFILES = $(NAME)_$(DISTVERSION).tar.bz2 -DISTFILES += CSWboost.gspec +DISTNAME = $(NAME)_$(DISTVERSION) +DISTFILES = $(DISTNAME).tar.bz2 +prefix = /opt/csw/boost-gcc + # We define upstream file regex so we can be notifed of new upstream software release UPSTREAM_MASTER_SITES = $(SF_PROJECT_SHOWFILE)=7586 UPSTREAM_USE_SF = 1 UFILES_REGEX = (\d+(?:\.\d+)*) -WORKSRC = $(WORKDIR)/$(NAME)_$(DISTVERSION) +GARCOMPILER = GNU +TOOLSET = gcc +COMPILER_SUFFIX_PKG = -gcc +COMPILER_SUFFIX_CAT = _gcc +PACKAGES += CSWboost$(COMPILER_SUFFIX_PKG) +CATALOGNAME_CSWboost$(COMPILER_SUFFIX_PKG) += boost +SPKG_DESC_CSWboost$(COMPILER_SUFFIX_PKG) = Boost libraries +# The boost build system is hard to harness. +CHECKPKG_OVERRIDES_CSWboost$(COMPILER_SUFFIX_PKG) += bad-rpath-entry + +PACKAGES += CSWboost$(COMPILER_SUFFIX_PKG)devel +CATALOGNAME_CSWboost$(COMPILER_SUFFIX_PKG)devel = boost_devel +SPKG_DESC_CSWboost$(COMPILER_SUFFIX_PKG)devel = Boost libraries, development files +PKGFILES_CSWboost$(COMPILER_SUFFIX_PKG)devel = $(PKGFILES_DEVEL) + + +LICENSE = LICENSE_1_0.txt + +BUILD_DEP_PKGS += CSWstar + CONFIGURE_SCRIPTS = -BUILD_SCRIPTS = +BUILD_SCRIPTS = bjam INSTALL_SCRIPTS = bjam -BUILD_ARGS = --prefix=$(DESTDIR)$(prefix) -BUILD_ARGS += -sTOOLS=sunpro -BUILD_ARGS += --with-python-root=$(prefix) +BUILD_ARGS += toolset=$(TOOLSET) +BUILD_ARGS += --prefix=$(DESTDIR)$(prefix) +BUILD_ARGS += link=shared +BUILD_ARGS += cflags="$(CFLAGS)" +BUILD_ARGS += cxxflags="$(CXXFLAGS)" +BUILD_ARGS += linkflags="$(LDFLAGS) $(LD_OPTIONS)" +# Stop on the first error +BUILD_ARGS += -q +BUILD_ARGS += include="/opt/csw/boost-gcc/include" TEST_SCRIPTS = +JAMDIR_sparc = solarissparc +JAMDIR_i386 = solarisx86 +JAMDIR = $(JAMDIR_$(GARCH)) + +# BUILD64 = 1 + +# These can't be just passed from Make's PARALLELMFLAGS because of the -l flag. +BJAM_PARALLELMFLAGS_current9s = -j 32 +BJAM_PARALLELMFLAGS_current9x = -j 5 +BJAM_PARALLELMFLAGS = $(BJAM_PARALLELMFLAGS_$(call modulation2host)) + include gar/category.mk PYTHON_ROOT = $(prefix) -PYTHON_VERSION = 2.3 +PYTHON_VERSION = 2.6 export PYTHON_ROOT PYTHON_VERSION -pre-configure: - ( cd $(WORKSRC)/tools/build/jam_src ; \ - ./build.sh sunpro ; \ - mkdir -p $(DESTDIR)$(bindir) ; \ - mv bin.solaris/bjam $(DESTDIR)$(bindir) ) +# Boost is not extractable with SUNW tar nor GNU tar :-( +tar-bz-extract-%: + @echo " ==> Extracting $(DOWNLOADDIR)/$*" + /opt/csw/bin/star -bz -x -C $(EXTRACTDIR) -f $(DOWNLOADDIR)/$* @$(MAKECOOKIE) +pre-configure-modulated: + ( cd $(WORKSRC)/tools/jam/src && \ + ./build.sh $(TOOLSET) && \ + mkdir -p $(DESTDIR)$(bindir) && \ + cp bin.$(JAMDIR)/bjam $(DESTDIR)$(bindir) ) + @$(MAKECOOKIE) + +build-bjam: + cd $(WORKSRC) && \ + $(DESTDIR)$(bindir)/bjam \ + -d+2 \ + $(BJAM_PARALLELMFLAGS) \ + $(BUILD_ARGS) + @$(MAKECOOKIE) + install-bjam: - ( cd $(WORKSRC) ; bjam $(BUILD_ARGS) install ) || exit 1 + cd $(WORKSRC) && \ + $(DESTDIR)$(bindir)/bjam \ + -d+2 \ + $(BJAM_PARALLELMFLAGS) \ + $(BUILD_ARGS) \ + install @$(MAKECOOKIE) Modified: csw/mgar/pkg/boost/branches/boost-gcc/checksums =================================================================== --- csw/mgar/pkg/boost/branches/boost-gcc/checksums 2010-12-14 23:22:27 UTC (rev 11938) +++ csw/mgar/pkg/boost/branches/boost-gcc/checksums 2010-12-15 00:13:53 UTC (rev 11939) @@ -1,2 +1 @@ -43d87bbd827a8299f408df5efe5f0fd8 download/boost_1_33_0.tar.bz2 -a00cee53babcf663a51e117741f777d0 download/CSWboost.gspec +f02578f5218f217a9f20e9c30e119c6a boost_1_44_0.tar.bz2 Modified: csw/mgar/pkg/boost/trunk/Makefile =================================================================== --- csw/mgar/pkg/boost/trunk/Makefile 2010-12-14 23:22:27 UTC (rev 11938) +++ csw/mgar/pkg/boost/trunk/Makefile 2010-12-15 00:13:53 UTC (rev 11939) @@ -1,8 +1,9 @@ +# $Id$ + NAME = boost -VERSION = 1.44.0 +VERSION = 1.45.0 CATEGORIES = lib -DESCRIPTION = A collection of C++ libraries define BLURB Boost was begun by members of the C++ standards committee Library Working Group to provide free peer-reviewed portable libraries to the C++ community. @@ -25,20 +26,45 @@ UPSTREAM_USE_SF = 1 UFILES_REGEX = (\d+(?:\.\d+)*) -PACKAGES = CSWboost -CATALOGNAME_CSWboost = boost +# GARCOMPILER = GNU +TOOLSET = sunpro +COMPILER_SUFFIX_PKG = +COMPILER_SUFFIX_CAT = +PACKAGES += CSWboost$(COMPILER_SUFFIX_PKG) +CATALOGNAME_CSWboost$(COMPILER_SUFFIX_PKG) += boost +SPKG_DESC_CSWboost$(COMPILER_SUFFIX_PKG) = Boost libraries +# The boost build system is hard to harness. +CHECKPKG_OVERRIDES_CSWboost$(COMPILER_SUFFIX_PKG) += bad-rpath-entry + +PACKAGES += CSWboost$(COMPILER_SUFFIX_PKG)devel +CATALOGNAME_CSWboost$(COMPILER_SUFFIX_PKG)devel = boost_devel +SPKG_DESC_CSWboost$(COMPILER_SUFFIX_PKG)devel = Boost libraries, development files +PKGFILES_CSWboost$(COMPILER_SUFFIX_PKG)devel = $(PKGFILES_DEVEL) + +# Empty transitional package +PACKAGES += CSWboostrt +CATALOGNAME_CSWboostrt = boost_rt +SPKG_DESC_CSWboostrt = Empty transitional package +PKGFILES_CSWboostrt = no-files-here +ARCHALL_CSWboostrt = 1 + LICENSE = LICENSE_1_0.txt BUILD_DEP_PKGS += CSWstar CONFIGURE_SCRIPTS = -BUILD_SCRIPTS = +BUILD_SCRIPTS = bjam INSTALL_SCRIPTS = bjam -BUILD_ARGS = --prefix=$(DESTDIR)$(prefix) -BUILD_ARGS += toolset=sun -#BUILD_ARGS += --with-python-root=$(prefix) +BUILD_ARGS += toolset=$(TOOLSET) +BUILD_ARGS += --prefix=$(DESTDIR)$(prefix) +BUILD_ARGS += link=shared +BUILD_ARGS += cflags="$(CFLAGS)" +BUILD_ARGS += cxxflags="$(CXXFLAGS)" +BUILD_ARGS += linkflags="$(LDFLAGS) $(LD_OPTIONS)" +# Stop on the first error +BUILD_ARGS += -q TEST_SCRIPTS = @@ -46,10 +72,17 @@ JAMDIR_i386 = solarisx86 JAMDIR = $(JAMDIR_$(GARCH)) +# BUILD64 = 1 + +# These can't be just passed from Make's PARALLELMFLAGS because of the -l flag. +BJAM_PARALLELMFLAGS_current9s = -j 32 +BJAM_PARALLELMFLAGS_current9x = -j 5 +BJAM_PARALLELMFLAGS = $(BJAM_PARALLELMFLAGS_$(call modulation2host)) + include gar/category.mk PYTHON_ROOT = $(prefix) -PYTHON_VERSION = 2.3 +PYTHON_VERSION = 2.6 export PYTHON_ROOT PYTHON_VERSION # Boost is not extractable with SUNW tar nor GNU tar :-( @@ -59,12 +92,25 @@ @$(MAKECOOKIE) pre-configure-modulated: - ( cd $(WORKSRC)/tools/jam/src ; \ - ./build.sh sunpro ; \ - mkdir -p $(DESTDIR)$(bindir) ; \ - mv bin.$(JAMDIR)/bjam $(DESTDIR)$(bindir) ) + ( cd $(WORKSRC)/tools/jam/src && \ + ./build.sh $(TOOLSET) && \ + mkdir -p $(DESTDIR)$(bindir) && \ + cp bin.$(JAMDIR)/bjam $(DESTDIR)$(bindir) ) @$(MAKECOOKIE) +build-bjam: + cd $(WORKSRC) && \ + $(DESTDIR)$(bindir)/bjam \ + -d+2 \ + $(BJAM_PARALLELMFLAGS) \ + $(BUILD_ARGS) + @$(MAKECOOKIE) + install-bjam: - ( cd $(WORKSRC) ; which bjam; bjam $(BUILD_ARGS) install ) || exit 1 + cd $(WORKSRC) && \ + $(DESTDIR)$(bindir)/bjam \ + -d+2 \ + $(BJAM_PARALLELMFLAGS) \ + $(BUILD_ARGS) \ + install @$(MAKECOOKIE) Property changes on: csw/mgar/pkg/boost/trunk/Makefile ___________________________________________________________________ Added: svn:keywords + Id Modified: csw/mgar/pkg/boost/trunk/checksums =================================================================== --- csw/mgar/pkg/boost/trunk/checksums 2010-12-14 23:22:27 UTC (rev 11938) +++ csw/mgar/pkg/boost/trunk/checksums 2010-12-15 00:13:53 UTC (rev 11939) @@ -1 +1 @@ -f02578f5218f217a9f20e9c30e119c6a boost_1_44_0.tar.bz2 +d405c606354789d0426bc07bea617e58 boost_1_45_0.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 02:01:56 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 01:01:56 +0000 Subject: [csw-devel] SF.net SVN: gar:[11940] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11940 http://gar.svn.sourceforge.net/gar/?rev=11940&view=rev Author: bdwalton Date: 2010-12-15 01:01:55 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: tweak post-install routine Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 00:13:53 UTC (rev 11939) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:01:55 UTC (rev 11940) @@ -85,7 +85,7 @@ post-install-modulated: (cd $(DESTDIR)$(prefix)/sbin; \ - mv exim-$(VERSION) exim; \ + mv exim-$(VERSION)-1 exim; \ /usr/ccs/bin/strip $(BINS); \ /usr/ccs/bin/mcs -d $(BINS)) (cd $(DESTDIR)$(prefix)/etc/exim; \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 02:10:36 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 01:10:36 +0000 Subject: [csw-devel] SF.net SVN: gar:[11941] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11941 http://gar.svn.sourceforge.net/gar/?rev=11941&view=rev Author: bdwalton Date: 2010-12-15 01:10:35 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: post install hook changes to reflect pending cswinitsmf changes Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:01:55 UTC (rev 11940) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:10:35 UTC (rev 11941) @@ -95,12 +95,10 @@ mv "$$i" "$$i.CSW"; \ fi \ done) - files/create_rc.d.sh $(DESTDIR) + (cd $(DESTDIR)/opt/csw; mkdir -p etc/init.d; \ + cp $(abspath $(FILEDIR)/cswexim) etc/init.d ) mkdir -p $(DESTDIR)$(prefix)/var/svc/manifest/network cp -p files/exim.xml $(DESTDIR)$(prefix)/var/svc/manifest/network - mkdir -p $(DESTDIR)$(prefix)/lib/svc/method - cp -p $(DESTDIR)/etc/init.d/cswexim \ - $(DESTDIR)$(prefix)/lib/svc/method/svc-exim mkdir -p $(DESTDIR)$(prefix)/share/doc/exim cp -p files/README.CSW $(DESTDIR)$(prefix)/share/doc/exim/README.CSW cp -p files/exim-env.sh $(DESTDIR)$(prefix)/etc/exim/exim-env.sh.CSW This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 02:11:40 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 01:11:40 +0000 Subject: [csw-devel] SF.net SVN: gar:[11942] csw/mgar/pkg/exim/trunk/files/CSWexim.gspec Message-ID: Revision: 11942 http://gar.svn.sourceforge.net/gar/?rev=11942&view=rev Author: bdwalton Date: 2010-12-15 01:11:40 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: drop old manual gspec file Removed Paths: ------------- csw/mgar/pkg/exim/trunk/files/CSWexim.gspec Deleted: csw/mgar/pkg/exim/trunk/files/CSWexim.gspec =================================================================== --- csw/mgar/pkg/exim/trunk/files/CSWexim.gspec 2010-12-15 01:10:35 UTC (rev 11941) +++ csw/mgar/pkg/exim/trunk/files/CSWexim.gspec 2010-12-15 01:11:40 UTC (rev 11942) @@ -1,4 +0,0 @@ -%var bitname exim -%var pkgname CSWexim -%include url file://%{PKGLIB}/csw_dyndepend.gspec -%copyright url file://%{WORKSRC}/LICENCE This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 02:16:31 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 01:16:31 +0000 Subject: [csw-devel] SF.net SVN: gar:[11943] csw/mgar/pkg/exim/trunk/files/cswexim Message-ID: Revision: 11943 http://gar.svn.sourceforge.net/gar/?rev=11943&view=rev Author: bdwalton Date: 2010-12-15 01:16:31 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: add a MANIFEST line to the init script for use by cswinitsmf Modified Paths: -------------- csw/mgar/pkg/exim/trunk/files/cswexim Modified: csw/mgar/pkg/exim/trunk/files/cswexim =================================================================== --- csw/mgar/pkg/exim/trunk/files/cswexim 2010-12-15 01:11:40 UTC (rev 11942) +++ csw/mgar/pkg/exim/trunk/files/cswexim 2010-12-15 01:16:31 UTC (rev 11943) @@ -7,6 +7,9 @@ # Modified for Blastwave by Markus Mayer # Modified for OpenCSW by Ben Walton +# These are consumed by the i.cswinitsmf class action script +#MANIFEST /opt/csw/var/svc/manifest/network/exim.xml + # Exit if exim (or another MTA) runs from /etc/inetd.conf if [ -f /etc/inetd.conf ] && grep "^ *\([0-9.]\+:\)\?smtp" /etc/inetd.conf >/dev/null; then exit 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 02:17:35 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 01:17:35 +0000 Subject: [csw-devel] SF.net SVN: gar:[11944] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11944 http://gar.svn.sourceforge.net/gar/?rev=11944&view=rev Author: bdwalton Date: 2010-12-15 01:17:35 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: add comment about a patch file and future updates Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:16:31 UTC (rev 11943) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:17:35 UTC (rev 11944) @@ -19,6 +19,9 @@ DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.preremove DISTFILES += CSWexim.request CSWexim.checkinstall +# NOTE TO FUTURE MAINTAINERS: +# This patch should be thoroughly reviewed for each update so as not to +# miss any new config options of interest... PATCHFILES += 0003-Set-OpenCSW-build-options.patch PATCHFILES += 0004-Force-Compiler-and-a-few-compilation-options.patch This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 02:27:49 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 01:27:49 +0000 Subject: [csw-devel] SF.net SVN: gar:[11945] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11945 http://gar.svn.sourceforge.net/gar/?rev=11945&view=rev Author: bdwalton Date: 2010-12-15 01:27:49 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: fix the post-merge cswusergroup file install Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:17:35 UTC (rev 11944) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:27:49 UTC (rev 11945) @@ -64,7 +64,7 @@ BINS += eximon.bin UGPATH=/etc/opt/csw/pkg/CSWexim -UGENTRY = "exim:exim:CSW Exim User:/var/opt/csw/spool/exim:/bin/false:::NP" +UGENTRY = exim:exim:CSW Exim User:/var/opt/csw/spool/exim:/bin/false:::NP USERGROUP = $(UGPATH)/cswusergroup include gar/category.mk @@ -112,6 +112,6 @@ @$(MAKECOOKIE) post-merge: - @( cd $(PKGROOT); mkdir -p ./$(UGPATH); \ - echo "$(UGENTRY)" > ./$(UGPATH)/cswusergroup" ) + ( cd $(PKGROOT); mkdir -p ./$(UGPATH); \ + echo "$(UGENTRY)" > ./$(UGPATH)/cswusergroup ) @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 02:31:40 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 01:31:40 +0000 Subject: [csw-devel] SF.net SVN: gar:[11946] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11946 http://gar.svn.sourceforge.net/gar/?rev=11946&view=rev Author: bdwalton Date: 2010-12-15 01:31:40 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: correct runtime dep setup and add a missing one (pcre_rt) Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:27:49 UTC (rev 11945) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:31:40 UTC (rev 11946) @@ -27,9 +27,10 @@ BUILD_DEP_PKGS = CSWlibspf2 -RUNTIME_DEP_PKGS_CSWexim = CSWiconv CSWoldaprt CSWosslrt CSWsasl -RUNTIME_DEP_PKGS_CSWexim = CSWmysql5rt CSWlibpq CSWlibspf2 CSWggettext -RUNTIME_DEP_PKGS_CSWexim = CSWgzip CSWgzipextras +RUNTIME_DEP_PKGS_CSWexim = CSWiconv CSWoldaprt CSWosslrt CSWsasl +RUNTIME_DEP_PKGS_CSWexim += CSWmysql5rt CSWlibpq CSWlibspf2 CSWggettext +RUNTIME_DEP_PKGS_CSWexim += CSWgzip CSWgzipextras +RUNTIME_DEP_PKGS_CSWexim += CSWpcrert # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 02:33:02 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 01:33:02 +0000 Subject: [csw-devel] SF.net SVN: gar:[11947] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11947 http://gar.svn.sourceforge.net/gar/?rev=11947&view=rev Author: bdwalton Date: 2010-12-15 01:33:02 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: activate use of cswinitsmf Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:31:40 UTC (rev 11946) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:33:02 UTC (rev 11947) @@ -38,6 +38,8 @@ LD_OPTIONS = -R/opt/csw/lib/\$$ISALIST -R/opt/csw/lib +INITSMF = /opt/csw/etc/init.d/cswexim + # scripts/exim_install has been patched to use this variable EXIM_VERSION = $(VERSION) export EXIM_VERSION This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 02:36:21 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 01:36:21 +0000 Subject: [csw-devel] SF.net SVN: gar:[11948] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11948 http://gar.svn.sourceforge.net/gar/?rev=11948&view=rev Author: bdwalton Date: 2010-12-15 01:36:21 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: correct location of init script for cswinitsmf Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:33:02 UTC (rev 11947) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:36:21 UTC (rev 11948) @@ -38,7 +38,7 @@ LD_OPTIONS = -R/opt/csw/lib/\$$ISALIST -R/opt/csw/lib -INITSMF = /opt/csw/etc/init.d/cswexim +INITSMF = /etc/opt/csw/init.d/cswexim # scripts/exim_install has been patched to use this variable EXIM_VERSION = $(VERSION) @@ -101,8 +101,8 @@ mv "$$i" "$$i.CSW"; \ fi \ done) - (cd $(DESTDIR)/opt/csw; mkdir -p etc/init.d; \ - cp $(abspath $(FILEDIR)/cswexim) etc/init.d ) + (cd $(DESTDIR); mkdir -p etc/opt/csw/init.d; \ + cp $(abspath $(FILEDIR)/cswexim) etc/opt/csw/init.d ) mkdir -p $(DESTDIR)$(prefix)/var/svc/manifest/network cp -p files/exim.xml $(DESTDIR)$(prefix)/var/svc/manifest/network mkdir -p $(DESTDIR)$(prefix)/share/doc/exim This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 04:19:41 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 03:19:41 +0000 Subject: [csw-devel] SF.net SVN: gar:[11949] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11949 http://gar.svn.sourceforge.net/gar/?rev=11949&view=rev Author: bdwalton Date: 2010-12-15 03:19:41 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: no longer depend on CSWggettext Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 01:36:21 UTC (rev 11948) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 03:19:41 UTC (rev 11949) @@ -28,7 +28,7 @@ BUILD_DEP_PKGS = CSWlibspf2 RUNTIME_DEP_PKGS_CSWexim = CSWiconv CSWoldaprt CSWosslrt CSWsasl -RUNTIME_DEP_PKGS_CSWexim += CSWmysql5rt CSWlibpq CSWlibspf2 CSWggettext +RUNTIME_DEP_PKGS_CSWexim += CSWmysql5rt CSWlibpq CSWlibspf2 RUNTIME_DEP_PKGS_CSWexim += CSWgzip CSWgzipextras RUNTIME_DEP_PKGS_CSWexim += CSWpcrert This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 04:21:43 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 03:21:43 +0000 Subject: [csw-devel] SF.net SVN: gar:[11950] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11950 http://gar.svn.sourceforge.net/gar/?rev=11950&view=rev Author: bdwalton Date: 2010-12-15 03:21:42 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: checkpkg overrides for gzip* deps Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 03:19:41 UTC (rev 11949) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 03:21:42 UTC (rev 11950) @@ -70,6 +70,9 @@ UGENTRY = exim:exim:CSW Exim User:/var/opt/csw/spool/exim:/bin/false:::NP USERGROUP = $(UGPATH)/cswusergroup +CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzipextras +CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzip + include gar/category.mk pre-patch-modulated: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 05:27:06 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 04:27:06 +0000 Subject: [csw-devel] SF.net SVN: gar:[11951] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11951 http://gar.svn.sourceforge.net/gar/?rev=11951&view=rev Author: bdwalton Date: 2010-12-15 04:27:05 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: set explicity license file Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 03:21:42 UTC (rev 11950) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 04:27:05 UTC (rev 11951) @@ -35,6 +35,8 @@ # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 +# They supply the GPL in a non-standard file. +LICENSE = LICENCE LD_OPTIONS = -R/opt/csw/lib/\$$ISALIST -R/opt/csw/lib This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 15 09:46:03 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 15 Dec 2010 08:46:03 +0000 Subject: [csw-devel] SF.net SVN: gar:[11953] csw/mgar/gar/v2/lib/python/sharedlib_utils.py Message-ID: Revision: 11953 http://gar.svn.sourceforge.net/gar/?rev=11953&view=rev Author: wahwah Date: 2010-12-15 08:46:03 +0000 (Wed, 15 Dec 2010) Log Message: ----------- checkpkg: Quote unknown architecture name This way it stands out more in the error message. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/sharedlib_utils.py Modified: csw/mgar/gar/v2/lib/python/sharedlib_utils.py =================================================================== --- csw/mgar/gar/v2/lib/python/sharedlib_utils.py 2010-12-15 08:45:27 UTC (rev 11952) +++ csw/mgar/gar/v2/lib/python/sharedlib_utils.py 2010-12-15 08:46:03 UTC (rev 11953) @@ -266,7 +266,7 @@ return common_constants.ARCH_ALL else: raise ArchitectureError( - "Cannot map architecture %s to a constant." % s) + "Cannot map architecture %s to a constant." % repr(s)) def GetIsalist(str_arch): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 15 09:45:27 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 15 Dec 2010 08:45:27 +0000 Subject: [csw-devel] SF.net SVN: gar:[11952] csw/mgar/gar/v2/lib/python Message-ID: Revision: 11952 http://gar.svn.sourceforge.net/gar/?rev=11952&view=rev Author: wahwah Date: 2010-12-15 08:45:27 +0000 (Wed, 15 Dec 2010) Log Message: ----------- checkpkg: Cope with dashes in catalognames If there are dashes in catalognames, don't misalign all fields. If the number of fields in a package name exceeds 6, assume all extra fields belong to the catalog name. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/opencsw.py csw/mgar/gar/v2/lib/python/opencsw_test.py Modified: csw/mgar/gar/v2/lib/python/opencsw.py =================================================================== --- csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-15 04:27:05 UTC (rev 11951) +++ csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-15 08:45:27 UTC (rev 11952) @@ -76,7 +76,11 @@ if p.endswith(".pkg"): p = p[:-4] bits = p.split("-") - catalogname = bits[0] + if len(bits) >= 6: + catalogname = "-".join(bits[:len(bits) - 4]) + bits = [catalogname] + bits[len(bits) - 4:] + else: + catalogname = bits[0] if len(bits) < 2: version, version_info, revision_info = None, None, None full_version_string = None Modified: csw/mgar/gar/v2/lib/python/opencsw_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/opencsw_test.py 2010-12-15 04:27:05 UTC (rev 11951) +++ csw/mgar/gar/v2/lib/python/opencsw_test.py 2010-12-15 08:45:27 UTC (rev 11952) @@ -132,6 +132,13 @@ self.assertEqual(parsed["osrel"], "unspecified") self.assertEqual(parsed["catalogname"], "RICHPse") + def testParsePackageFileName_OneDashTooMany(self): + file_name = ("boost-jam-3.1.18,REV=2010.12.15-" + "SunOS5.9-sparc-UNCOMMITTED.pkg.gz") + parsed = opencsw.ParsePackageFileName(file_name) + self.assertEqual(parsed["arch"], "sparc") + self.assertEqual(parsed["catalogname"], "boost-jam") + def testParsePackageFileName_Nonsense(self): """Checks if the function can sustain a non-conformant string.""" file_name = "What if I wrote a letter to my grandma here?" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 15 09:52:49 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 15 Dec 2010 08:52:49 +0000 Subject: [csw-devel] SF.net SVN: gar:[11954] csw/mgar/pkg Message-ID: Revision: 11954 http://gar.svn.sourceforge.net/gar/?rev=11954&view=rev Author: wahwah Date: 2010-12-15 08:52:49 +0000 (Wed, 15 Dec 2010) Log Message: ----------- boost-jam: Initial commit. Modified Paths: -------------- csw/mgar/pkg/boost-jam/trunk/Makefile csw/mgar/pkg/boost-jam/trunk/checksums Added Paths: ----------- csw/mgar/pkg/boost-jam/ Modified: csw/mgar/pkg/boost-jam/trunk/Makefile =================================================================== --- csw/mgar/pkg/template/trunk/Makefile 2010-12-15 04:27:05 UTC (rev 11951) +++ csw/mgar/pkg/boost-jam/trunk/Makefile 2010-12-15 08:52:49 UTC (rev 11954) @@ -2,184 +2,39 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ -## This file contains comments to guide you through various GAR settings. -## Please remove unnecessary comments before committing your code to the code -## repository. The comments to remove are marked with double hashes. -## If you want to remove them all in-place, use: -## gsed -i -e '/^##/d' Makefile -## -## For more information about GAR variables, please see: -## https://sourceforge.net/apps/trac/gar/wiki/GAR%20Variable%20Reference -## -NAME = mypkg -VERSION = 1.0 -## -## The category that your software fits in. This is not a descriptive field, but -## influences the build process. Depending on the CATEGORIES setting, different -## Makefiles are included from gar/categories/ in your trunk directory, which -## adjust the build settings for the respective category. -## -## Possible settings are: -## apps, cpan, devel, gnome, java, kde, lang, lib, meta, net, python, server, -## utils, x11, xfce, xorg, xtra -CATEGORIES = lib -## -## A one-line description of the package, which will appear in the pkginfo. -DESCRIPTION = -## -## A longer description of the package. This is only for descriptive purposes -## inside the Makefile and is not used elsewhere. +NAME = boost-jam +VERSION = 3.1.18 +CATEGORIES = utils +DESCRIPTION = Build tool from the Boost C++ libraries define BLURB - endef -## -## Upstream URL that should show up in the VENDOR field as well as on -## http://opencsw.org/packages/. -SPKG_SOURCEURL = -## -## Whitespace-separated list of URLs to download the source package from. -## There are presets: $(SF_MIRRORS), $(GNU_MIRRORS) and $(GOOGLE_MIRROR). -MASTER_SITES = -## -## SF_PROJ is required if you set $(MASTER_SITES) to $(SF_MIRRORS) and the -## Sourceforge project name differs from $(NAME). Specifies the Sourceforge -## project name of the software you wish to download. -## SF_PROJ = -## -## A list of space separated patch filenames from files/ that are to be applied -## to the extracted software before the ./configure stage. Patches need to be -## included in the DISTFILES variable as well. -## PATCHFILES = -## -## Whitespace-separated list of files which comprise this build. mGAR will look -## for the files in the $(FILEDIR) (trunk/files) directory and on the -## $(MASTER_SITES). -DISTFILES = $(NAME)-$(VERSION).tar.gz -## -## We define upstream file regex so we can be notifed of new upstream software release +SPKG_SOURCEURL = http://www.boost.org/ +MASTER_SITES = $(SF_MIRRORS) +SF_PROJ = boost +DISTFILES = $(NAME)-$(VERSION).tgz UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -## -## Catalog name is the name to be used with pkg{-get,util} -i . -## It is different from the system package name, which by convention is CSWpkgname. -## CATALOGNAME = -## -## Set to 1 to mark the package as architecture-independent. -## ARCHALL = 0 -## -## A list of files / patterns that should be excluded from the package. Amends -## the default list of excluded filenames $(MERGE_EXCLUDE_DEFAULT), which -## contains things like libtool .la files and files with a leading ~. -## EXTRA_MERGE_EXCLUDE_FILES = -## -## A list of space separated package names that should be marked as -## incompatible with the current package. This will go into the depend file. -## When a user has one of the incompatible packages installed and installs -## your package, he will be prompted that the incompatible package must be -## removed. He will however not be prevented to install your package without -## removing the conflicting package first. -## INCOMPATIBLE_PKGS = -## -## The name of the license file that should be included in your package. Defaults -## to COPYING. See http://sourceforge.net/apps/trac/gar/wiki/CopyRightfor details -## on including and displaying licenses. -## LICENSE = -## -## A list of space separated package names that should be produced from your -## Makefile. This is used when a software has different components that can be -## packaged and used individually (think runtime libraries, client tools, server -## files, development headers). You don't need to set this when you just want to -## produce one package. -## -## When you set this variable to include more than one package, you also need to -## set PKGFILES_CSWpkgname for each package (except for the first one in your -## $(PACKAGES) list) to define which files go into each package. The first -## package from $(PACKAGES) one will hold all files that are not matched by -## PKGFILES_ for other packages. -## PACKAGES = -## -## If specified, GAR feeds the almost-final package prototype file to -## $(PROTOTYPE_FILTER) and reads the final package prototype file from it. -## $(PROTOTYPE_FILTER) is usually a sed/awk/perl one-liner, which was mostly used -## to prepare the prototype file for use with cswclassutils (see -## $(SPKG_CLASSES)). Now that there are convenience variables for cswclassutils, -## you will rarely have to use this. A still valid use case would be to change -## the file permissions of a file to be set-UID. -## See http://wiki.opencsw.org/cswclassutils-package for common usage information -## PROTOTYPE_FILTER = -## -## cswclassutils settings -## -## A list of action classes. Possible values are: -## none cswpreserveconf cswcpsampleconf cswpycompile cswusergroup cswinitsmf -## cswinetd cswetcservices -## The class 'cswinitsmf' must be the last class listed. When you use cswclassutils, -## you need to add CSWcswclassutils to RUNTIME_DEP_PKGS. -## SPKG_CLASSES = none -## Simplified settings for classes: -## PRESERVECONF = -## SAMPLECONF = -## INITSMF = -## USERGROUP = -## ETCSERVICES = -## INETDCONF = -## A list of runtime package dependencies in the form of CSWfoo. -## RUNTIME_DEP_PKGS = -## -## A list of packages necessary to build this package -## BUILD_DEP_PKGS = $(RUNTIME_DEP_PKGS) -## -## When using non-empty $(PACKAGES): -## RUNTIME_DEP_PKGS_CSWpkgname = -## SPKG_DESC_CSWpkgname = -## PKGFILES_CSWpkgname = -## CATALOGNAME_CSWpkgname = -## -## A list of space separated directories where objects should be stripped in -## addition to the bin/ and sbin/ directories. -## STRIP_DIRS = -## -## Define a custom target for the configure phase. When you set this, the target -## that will be used instead of configure: target, is named -## configure-$(CONFIGURE_SCRIPTS) and you will need to define it in your Makefile -## after including gar/gar.include.mk. If you want to skip the configure phase -## completely (for example when your software doesn't need to be compiled) assign -## this variable an empty value. The procedure works for configure, build, -## install and test steps. -## CONFIGURE_SCRIPTS = -## BUILD_SCRIPTS = -## INSTALL_SCRIPTS = -## TEST_SCRIPTS = -## -## Compilation settings -## -## The build directory. -## WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION) -## -## BUILD_ARGS is passed as an argument to gmake during the build phase. Use this -## for example, if you need to override Makefile variables. -## BUILD_ARGS = -## -## Arguments passed to the ./configure script. +CATALOGNAME = boost_jam +CONFIGURE_SCRIPTS = +BUILD_SCRIPTS = bjam +INSTALL_SCRIPTS = bjam +TEST_SCRIPTS = CONFIGURE_ARGS = $(DIRPATHS) -## -## BUILD64 = -## CONFIGURE_ENV = -## EXTRA_CFLAGS = -## EXTRA_LDFLAGS = -## EXTRA_INC = -## EXTRA_LIB = -## GARFLAVOR = -## INSTALL_ARGS = -## OPT_FLAGS_SOS = -xO3 -## OPT_FLAGS_GCC = -O2 -pipe -## -## The compiler to use. Defaults to SOS11, can be also: SOS12, GCC3, GCC4. -## GARCOMPILER = SOS11 -## -# Remove the following rules and uncomment the -# include before building. -all: .DEFAULT -.DEFAULT: - @true +LICENSE = LICENSE_1_0.txt +JAMDIR_sparc = solarissparc +JAMDIR_i386 = solarisx86 +JAMDIR = $(JAMDIR_$(GARCH)) -#include gar/category.mk +# boost-jam has also the 'sunpro' toolset, but the problem with it is that it +# ignores CFLAGS, while 'cc' honors them. +TOOLSET = cc +include gar/category.mk + +build-bjam: + ( cd $(WORKSRC) && \ + $(BUILD_ENV) ./build.sh $(TOOLSE)) + @$(MAKECOOKIE) + +install-bjam: + mkdir -p $(DESTDIR)$(bindir) + cp $(WORKSRC)/bin.$(JAMDIR)/bjam $(DESTDIR)$(bindir) + @$(MAKECOOKIE) Modified: csw/mgar/pkg/boost-jam/trunk/checksums =================================================================== --- csw/mgar/pkg/template/trunk/checksums 2010-12-15 04:27:05 UTC (rev 11951) +++ csw/mgar/pkg/boost-jam/trunk/checksums 2010-12-15 08:52:49 UTC (rev 11954) @@ -0,0 +1 @@ +f790e022d658db38db5cc4aeeccad3f1 boost-jam-3.1.18.tgz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 15 10:20:39 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 15 Dec 2010 09:20:39 +0000 Subject: [csw-devel] SF.net SVN: gar:[11955] csw/mgar/pkg/boost-jam/trunk/Makefile Message-ID: Revision: 11955 http://gar.svn.sourceforge.net/gar/?rev=11955&view=rev Author: wahwah Date: 2010-12-15 09:20:39 +0000 (Wed, 15 Dec 2010) Log Message: ----------- boost-jam: Fix a typo Modified Paths: -------------- csw/mgar/pkg/boost-jam/trunk/Makefile Modified: csw/mgar/pkg/boost-jam/trunk/Makefile =================================================================== --- csw/mgar/pkg/boost-jam/trunk/Makefile 2010-12-15 08:52:49 UTC (rev 11954) +++ csw/mgar/pkg/boost-jam/trunk/Makefile 2010-12-15 09:20:39 UTC (rev 11955) @@ -31,7 +31,7 @@ build-bjam: ( cd $(WORKSRC) && \ - $(BUILD_ENV) ./build.sh $(TOOLSE)) + $(BUILD_ENV) ./build.sh $(TOOLSET)) @$(MAKECOOKIE) install-bjam: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 15 10:49:46 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 15 Dec 2010 09:49:46 +0000 Subject: [csw-devel] SF.net SVN: gar:[11956] csw/mgar/pkg/unixodbc/trunk/Makefile Message-ID: Revision: 11956 http://gar.svn.sourceforge.net/gar/?rev=11956&view=rev Author: wahwah Date: 2010-12-15 09:49:46 +0000 (Wed, 15 Dec 2010) Log Message: ----------- unixodbc: Split off shared libraries. Modified Paths: -------------- csw/mgar/pkg/unixodbc/trunk/Makefile Modified: csw/mgar/pkg/unixodbc/trunk/Makefile =================================================================== --- csw/mgar/pkg/unixodbc/trunk/Makefile 2010-12-15 09:20:39 UTC (rev 11955) +++ csw/mgar/pkg/unixodbc/trunk/Makefile 2010-12-15 09:49:46 UTC (rev 11956) @@ -17,7 +17,9 @@ UFILES_REGEX = $(DL_NAME)-(\d+(?:\.\d+)*).tar.gz RUNTIME_DEP_PKGS_CSWunixodbc = CSWiconv RUNTIME_DEP_PKGS_CSWunixodbc += CSWreadline -RUNTIME_DEP_PKGS_CSWunixodbc += CSWlibtoolrt +RUNTIME_DEP_PKGS_CSWunixodbc += CSWlibltdl7 +RUNTIME_DEP_PKGS_CSWunixodbc += CSWlibodbcinst1 +RUNTIME_DEP_PKGS_CSWunixodbc += CSWlibodbc1 sysconfdir = /etc$(prefix) localstatedir = /var$(prefix) CONFIGURE_ARGS = $(DIRPATHS) --enable-gui=no @@ -27,6 +29,30 @@ TEST_SCRIPTS = LICENSE = COPYING +PACKAGES += CSWunixodbc +SPKG_DESC_CSWunixodbc = $(DESCRIPTION) + + +PACKAGES += CSWunixodbc-devel +CATALOGNAME_CSWunixodbc-devel = unixodbc_devel +SPKG_DESC_CSWunixodbc-devel = $(DESCRIPTION), development files +PKGFILES_CSWunixodbc-devel = $(PKGFILES_DEVEL) + +PACKAGES += CSWlibodbc1 +SPKG_DESC_CSWlibodbc1 = $(DESCRIPTION), libodbc.so.1 +PKGFILES_CSWlibodbc1 = .*libodbc\.so\.1.* +RUNTIME_DEP_PKGS_CSWlibodbc1 += CSWlibltdl7 +RUNTIME_DEP_PKGS_CSWlibodbc1 += CSWiconv + +PACKAGES += CSWlibodbccr1 +SPKG_DESC_CSWlibodbccr1 = $(DESCRIPTION), libodbccr.so.1 +PKGFILES_CSWlibodbccr1 = .*libodbccr\.so\.1.* + +PACKAGES += CSWlibodbcinst1 +SPKG_DESC_CSWlibodbcinst1 = $(DESCRIPTION), libodbcinst.so.1 +PKGFILES_CSWlibodbcinst1 = .*libodbcinst\.so\.1.* +RUNTIME_DEP_PKGS_CSWlibodbcinst1 += CSWlibltdl7 + include gar/category.mk post-install-modulated: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 14:10:37 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 13:10:37 +0000 Subject: [csw-devel] SF.net SVN: gar:[11957] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11957 http://gar.svn.sourceforge.net/gar/?rev=11957&view=rev Author: bdwalton Date: 2010-12-15 13:10:37 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: place custom manifest file in /var/opt/csw/svc instead of /opt/csw/var/svc Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 09:49:46 UTC (rev 11956) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 13:10:37 UTC (rev 11957) @@ -108,8 +108,8 @@ done) (cd $(DESTDIR); mkdir -p etc/opt/csw/init.d; \ cp $(abspath $(FILEDIR)/cswexim) etc/opt/csw/init.d ) - mkdir -p $(DESTDIR)$(prefix)/var/svc/manifest/network - cp -p files/exim.xml $(DESTDIR)$(prefix)/var/svc/manifest/network + mkdir -p $(DESTDIR)/var/opt/csw/svc/manifest/network + cp -p files/exim.xml $(DESTDIR)/var/opt/csw/svc/manifest/network mkdir -p $(DESTDIR)$(prefix)/share/doc/exim cp -p files/README.CSW $(DESTDIR)$(prefix)/share/doc/exim/README.CSW cp -p files/exim-env.sh $(DESTDIR)$(prefix)/etc/exim/exim-env.sh.CSW This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 15 15:58:11 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 15 Dec 2010 14:58:11 +0000 Subject: [csw-devel] SF.net SVN: gar:[11958] csw/mgar/pkg/gsasl/trunk Message-ID: Revision: 11958 http://gar.svn.sourceforge.net/gar/?rev=11958&view=rev Author: dmichelsen Date: 2010-12-15 14:58:11 +0000 (Wed, 15 Dec 2010) Log Message: ----------- gsasl: Update to 1.6.0 and adjust to new library naming Modified Paths: -------------- csw/mgar/pkg/gsasl/trunk/Makefile csw/mgar/pkg/gsasl/trunk/checksums Modified: csw/mgar/pkg/gsasl/trunk/Makefile =================================================================== --- csw/mgar/pkg/gsasl/trunk/Makefile 2010-12-15 13:10:37 UTC (rev 11957) +++ csw/mgar/pkg/gsasl/trunk/Makefile 2010-12-15 14:58:11 UTC (rev 11958) @@ -1,5 +1,5 @@ NAME = gsasl -VERSION = 1.4.4 +VERSION = 1.6.0 CATEGORIES = apps DESCRIPTION = GNU SASL binary @@ -17,21 +17,24 @@ # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -PACKAGES = CSWlibgsasl CSWlibgsasldevel CSWgsasl +PACKAGES = CSWlibgsasl CSWlibgsasl7 CSWlibgsasldevel CSWgsasl CATALOGNAME_CSWlibgsasl = libgsasl +CATALOGNAME_CSWlibgsasl7 = libgsasl7 CATALOGNAME_CSWlibgsasldevel = libgsasl_devel CATALOGNAME_CSWgsasl = gsasl BUILD_DEP_PKGS = CSWkrb5libdev CSWgnulinks -RUNTIME_DEP_PKGS_CSWlibgsasl = CSWggettextrt CSWkrb5lib CSWlibidn CSWlibntlm -RUNTIME_DEP_PKGS_CSWlibgsasl += CSWgcrypt CSWgpgerr -RUNTIME_DEP_PKGS_CSWgsasl = CSWlibgsasl CSWgnutls CSWggettextrt CSWiconv CSWkrb5lib CSWlibidn CSWlibntlm CSWreadline +RUNTIME_DEP_PKGS_CSWlibgsasl7 = CSWggettextrt CSWkrb5lib CSWlibidn CSWlibntlm +RUNTIME_DEP_PKGS_CSWlibgsasl7 += CSWgcrypt CSWgpgerr +RUNTIME_DEP_PKGS_CSWlibgsasl = CSWlibgsasl7 +RUNTIME_DEP_PKGS_CSWgsasl = CSWlibgsasl7 CSWgnutls CSWggettextrt CSWiconv CSWkrb5lib CSWlibidn CSWlibntlm CSWreadline RUNTIME_DEP_PKGS_CSWgsasl += CSWgcrypt CSWgpgerr -RUNTIME_DEP_PKGS_CSWlibgsasldevel = CSWlibgsasl CSWkrb5libdev +RUNTIME_DEP_PKGS_CSWlibgsasldevel = CSWlibgsasl7 CSWkrb5libdev -SPKG_DESC_CSWlibgsasl = GNU SASL Library -SPKG_DESC_CSWlibgsasl = GNU SASL Development Files +SPKG_DESC_CSWlibgsasl = Stub for legacy dependencies to CSWlibgsasl7 +SPKG_DESC_CSWlibgsasl7 = GNU SASL Library providing libgsasl.so.7 +SPKG_DESC_CSWlibgsasldevel = GNU SASL Development Files SPKG_DESC_CSWgsasl = GNU SASL SPKG_SOURCEURL = http://www.gnu.org/software/$(GNU_PROJ) @@ -40,6 +43,8 @@ LD_OPTIONS = EXTRA_LINKER_FLAGS = $(RUNPATH_LINKER_FLAGS) +# Disable 64 bit until krb5 is available in 64 bit +# BUILD64 = 1 CONFIGURE_ARGS = $(DIRPATHS) TEST_TARGET = check @@ -50,17 +55,19 @@ EXTRA_MERGE_EXCLUDE_FILES = $(libdir)/charset.alias +ARCHALL_CSWlibgsasl = 1 + # Make sure we do NOT add here /opt/csw/include/gsasl.h PKGFILES_CSWgsasl = $(bindir)/.* PKGFILES_CSWgsasl += $(infodir)/gsasl\..* PKGFILES_CSWgsasl += $(sharedstatedir)/.*/gsasl\..* PKGFILES_CSWgsasl += $(mandir)/.*/gsasl\..* +PKGFILES_CSWlibgsasl = NOFILES + PKGFILES_CSWlibgsasldevel = $(PKGFILES_DEVEL) -CHECKPKG_OVERRIDES_CSWlibgsasl += bad-rpath-entry|/opt/csw/lib/ -CHECKPKG_OVERRIDES_CSWlibgsasldevel += surplus-dependency|CSWlibgsasl -CHECKPKG_OVERRIDES_CSWlibgsasldevel += surplus-dependency|CSWkrb5libdev +CHECKPKG_OVERRIDES_CSWlibgsasl += surplus-dependency|CSWlibgsasl7 include gar/category.mk Modified: csw/mgar/pkg/gsasl/trunk/checksums =================================================================== --- csw/mgar/pkg/gsasl/trunk/checksums 2010-12-15 13:10:37 UTC (rev 11957) +++ csw/mgar/pkg/gsasl/trunk/checksums 2010-12-15 14:58:11 UTC (rev 11958) @@ -1 +1 @@ -ab3e343717c0f67614e1398cfbab83b6 gsasl-1.4.4.tar.gz +5a4cc39af4ba8dbd8b66380baf3c3c7d gsasl-1.6.0.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 15 16:25:20 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 15 Dec 2010 15:25:20 +0000 Subject: [csw-devel] SF.net SVN: gar:[11959] csw/mgar/gar/v2/lib/python/pkgdb.py Message-ID: Revision: 11959 http://gar.svn.sourceforge.net/gar/?rev=11959&view=rev Author: wahwah Date: 2010-12-15 15:25:20 +0000 (Wed, 15 Dec 2010) Log Message: ----------- pkgdb: Allow to search for multiple catalog names Extend 'pkgdb pkg search' format to allow multiple arguments. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgdb.py Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-15 14:58:11 UTC (rev 11958) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-15 15:25:20 UTC (rev 11959) @@ -406,17 +406,17 @@ importer.ImportFromFile(infile_fd, show_progress=True) elif (command, subcommand) == ('pkg', 'search'): logging.debug("Searching for %s", args) - if len(args) != 1: + if len(args) < 1: logging.fatal("Wrong number of arguments: %s", len(args)) raise SystemExit - catalogname = args[0] - res = m.Srv4FileStats.select( - sqlobject.AND( - m.Srv4FileStats.q.catalogname.contains(catalogname), - m.Srv4FileStats.q.use_to_generate_catalogs==True) - ).orderBy("catalogname") - for sqo_srv4 in res: - print "%s %s" % (sqo_srv4.basename, sqo_srv4.md5_sum) + for catalogname in args: + res = m.Srv4FileStats.select( + sqlobject.AND( + m.Srv4FileStats.q.catalogname.contains(catalogname), + m.Srv4FileStats.q.use_to_generate_catalogs==True) + ).orderBy("catalogname") + for sqo_srv4 in res: + print "%s %s" % (sqo_srv4.basename, sqo_srv4.md5_sum) elif command == 'sync-cat-from-file': if len(args) != 4: raise UsageError("Wrong number of arguments, see usage.") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Wed Dec 15 20:51:35 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Wed, 15 Dec 2010 19:51:35 +0000 Subject: [csw-devel] SF.net SVN: gar:[11960] csw/mgar/pkg/freeradius/trunk Message-ID: Revision: 11960 http://gar.svn.sourceforge.net/gar/?rev=11960&view=rev Author: gadavis Date: 2010-12-15 19:51:35 +0000 (Wed, 15 Dec 2010) Log Message: ----------- Add radius user Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/freeradius/trunk/files/cswusergroup Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-15 15:25:20 UTC (rev 11959) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-15 19:51:35 UTC (rev 11960) @@ -12,6 +12,7 @@ DISTFILES += cswfreeradius DISTFILES += server.pem DISTFILES += ca.pem +DISTFILES += cswusergroup DISTNAME = $(NAME)-server-$(VERSION) UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz @@ -21,6 +22,8 @@ LICENSE = LICENSE GARCOMPILER = GCC4 +USERGROUP = $(sysconfdir)/pkg/CSW$(NAME)/cswusergroup + # Stripping libtool breaks the build in versions <=2.1.7 #STRIP_LIBTOOL = 1 @@ -199,14 +202,20 @@ post-install-modulated: ### Copy init script @echo "Installing init script..." - @ginstall -d $(DESTDIR)/etc/opt/csw/init.d - @ginstall $(WORKDIR)/cswfreeradius $(DESTDIR)/etc/opt/csw/init.d/cswfreeradius + ginstall -d $(DESTDIR)/etc/opt/csw/init.d + ginstall $(WORKDIR)/cswfreeradius \ + $(DESTDIR)/etc/opt/csw/init.d/cswfreeradius # Copy self-signed sample cert @echo "Installing sample certificate files..." - @ginstall -m 600 $(WORKDIR)/ca.pem $(DESTDIR)/$(raddbdir)/certs/ - @ginstall -m 600 $(WORKDIR)/server.pem $(DESTDIR)/$(raddbdir)/certs/ + ginstall -m 600 $(FILEDIR)/ca.pem $(DESTDIR)/$(raddbdir)/certs/ + ginstall -m 600 $(FILEDIR)/server.pem $(DESTDIR)/$(raddbdir)/certs/ + # Copy cswusergroup + @echo "Installing cswusergroup support file..." + ginstall -D $(FILEDIR)/cswusergroup \ + $(DESTDIR)$(sysconfdir)/pkg/CSW$(NAME)/cswusergroup + # Set the Make cookie @$(MAKECOOKIE) Added: csw/mgar/pkg/freeradius/trunk/files/cswusergroup =================================================================== --- csw/mgar/pkg/freeradius/trunk/files/cswusergroup (rev 0) +++ csw/mgar/pkg/freeradius/trunk/files/cswusergroup 2010-12-15 19:51:35 UTC (rev 11960) @@ -0,0 +1 @@ +radius:radius:FreeRADIUS:/var/opt/csw/freeradius:/bin/false:: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 15 22:40:38 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 15 Dec 2010 21:40:38 +0000 Subject: [csw-devel] SF.net SVN: gar:[11961] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11961 http://gar.svn.sourceforge.net/gar/?rev=11961&view=rev Author: bdwalton Date: 2010-12-15 21:40:37 +0000 (Wed, 15 Dec 2010) Log Message: ----------- exim: pass in CFLAGS directly, allowing possible leverage of EXTRA_CFLAGS, etc Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 19:51:35 UTC (rev 11960) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-15 21:40:37 UTC (rev 11961) @@ -51,7 +51,7 @@ # Local/Makefile has been patched to use these: CSW_CC = $($(GARCOMPILER)_CC) -CSW_OPT = $($(GARCOMPILER)_CC_OPT) +CSW_OPT = $(CFLAGS) CSW_WORKSRC = $(PWD)/$(WORKSRC) export CSW_CC CSW_OPT CSW_WORKSRC This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From gadavis at users.sourceforge.net Thu Dec 16 00:29:19 2010 From: gadavis at users.sourceforge.net (gadavis at users.sourceforge.net) Date: Wed, 15 Dec 2010 23:29:19 +0000 Subject: [csw-devel] SF.net SVN: gar:[11962] csw/mgar/pkg/freeradius/trunk/Makefile Message-ID: Revision: 11962 http://gar.svn.sourceforge.net/gar/?rev=11962&view=rev Author: gadavis Date: 2010-12-15 23:29:18 +0000 (Wed, 15 Dec 2010) Log Message: ----------- Disable the usergroup functionality Relax perms on dictionary file for radclient since it contains no secrets Modified Paths: -------------- csw/mgar/pkg/freeradius/trunk/Makefile Modified: csw/mgar/pkg/freeradius/trunk/Makefile =================================================================== --- csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-15 21:40:37 UTC (rev 11961) +++ csw/mgar/pkg/freeradius/trunk/Makefile 2010-12-15 23:29:18 UTC (rev 11962) @@ -22,7 +22,9 @@ LICENSE = LICENSE GARCOMPILER = GCC4 -USERGROUP = $(sysconfdir)/pkg/CSW$(NAME)/cswusergroup +# Disable USERGROUP until we can work out a way to get PRESERVECONF to play +# nicely with PROTOTYPE_GROUP +#USERGROUP = $(sysconfdir)/pkg/CSW$(NAME)/cswusergroup # Stripping libtool breaks the build in versions <=2.1.7 #STRIP_LIBTOOL = 1 @@ -36,10 +38,12 @@ # Put the config in the recommended /etc/opt/csw tree sysconfdir = /etc$(prefix) -raddbdir = $(sysconfdir)/raddb +raddbdir = $(sysconfdir)/freeradius # move all of the var stuff to /var/opt/csw localstatedir = /var$(prefix) +# This should match the variable run_dir in radiusd.conf +radius_run_dir = $(localstatedir)/run/radius ## Configuration directory PRESERVECONF += $(raddbdir)/.*\.conf @@ -195,6 +199,20 @@ INITSMF = /etc/opt/csw/init.d/cswfreeradius +# Fix permissions on the radiusd rundir (disabled for now) +#PROTOTYPE_MODIFIERS += rundir +#PROTOTYPE_FILES_rundir = $(radius_run_dir) +#PROTOTYPE_USER_rundir = radius +#PROTOTYPE_GROUP_rundir = radius +#PROTOTYPE_CLASS_rundir = ugfiles + +# Fix permissions on the configuration directory +#PROTOTYPE_MODIFIERS += raddb +#PROTOTYPE_FILES_raddb = $(raddbdir) +#PROTOTYPE_FILES_raddb += $(raddbdir)/.* +#PROTOTYPE_USER_raddb = radius +#PROTOTYPE_GROUP_raddb = radius + include gar/category.mk PATH := /opt/csw/gnu:$(PATH) @@ -208,14 +226,23 @@ # Copy self-signed sample cert @echo "Installing sample certificate files..." - ginstall -m 600 $(FILEDIR)/ca.pem $(DESTDIR)/$(raddbdir)/certs/ - ginstall -m 600 $(FILEDIR)/server.pem $(DESTDIR)/$(raddbdir)/certs/ + ginstall -m 640 $(FILEDIR)/ca.pem $(DESTDIR)/$(raddbdir)/certs/ + ginstall -m 640 $(FILEDIR)/server.pem $(DESTDIR)/$(raddbdir)/certs/ - # Copy cswusergroup - @echo "Installing cswusergroup support file..." - ginstall -D $(FILEDIR)/cswusergroup \ - $(DESTDIR)$(sysconfdir)/pkg/CSW$(NAME)/cswusergroup + # Copy cswusergroup - disabled, see comments near USERGROUP line + #@echo "Installing cswusergroup support file..." + #ginstall -D $(FILEDIR)/cswusergroup \ + # $(DESTDIR)$(sysconfdir)/pkg/CSW$(NAME)/cswusergroup + # Create PID dir + @echo "Creating PID file directory" + ginstall -D $(DESTDIR)$(radius_run_dir) + + # Relax the permissions on the dictionary file since it contains no + # secrets and radclient needs it + @echo "Relaxing permissions on dictionary file" + chmod 644 $(DESTDIR)$(raddbdir)/dictionary + # Set the Make cookie @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 16 11:32:52 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 16 Dec 2010 10:32:52 +0000 Subject: [csw-devel] SF.net SVN: gar:[11963] csw/mgar/gar/v2/lib/python Message-ID: Revision: 11963 http://gar.svn.sourceforge.net/gar/?rev=11963&view=rev Author: wahwah Date: 2010-12-16 10:32:52 +0000 (Thu, 16 Dec 2010) Log Message: ----------- checkpkg: Use baseisadirs when suggesting splits Fixes #42: checkpkg should suggest using 'baseisadirs' There is a still, in my opinion, unresolved issue, of what to do in cases where libraries aren't in /opt/csw/lib. I'll leave it for now and make improvements later. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/dependency_checks.py csw/mgar/gar/v2/lib/python/dependency_checks_test.py csw/mgar/gar/v2/lib/python/package_checks.py csw/mgar/gar/v2/lib/python/sharedlib_utils.py Modified: csw/mgar/gar/v2/lib/python/dependency_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-15 23:29:18 UTC (rev 11962) +++ csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-16 10:32:52 UTC (rev 11963) @@ -4,6 +4,7 @@ import os.path import re import ldd_emul +import sharedlib_utils # This shared library is present on Solaris 10 on amd64, but it's missing on # Solaris 8 on i386. It's okay if it's missing. @@ -254,3 +255,34 @@ if not dependency_fulfilled: missing_dep_groups.append(pkgnames) return missing_dep_groups + +def SuggestLibraryPackage(error_mgr, messenger, + pkgname, catalogname, + description, + lib_path, lib_basename, soname): + escaped_soname = sharedlib_utils.EscapeRegex(soname) + escaped_basename = sharedlib_utils.EscapeRegex(lib_basename) + messenger.SuggestGarLine("# The following lines define a new package: " + "%s" % pkgname) + messenger.SuggestGarLine("PACKAGES += %s" % pkgname) + messenger.SuggestGarLine( + "CATALOGNAME_%s = %s" + % (pkgname, catalogname)) + # The exact library file (which can be different from what soname suggests) + messenger.SuggestGarLine( + r'PKGFILES_%s += ' + r'$(call baseisadirs,$(libdir),%s)' + % (pkgname, escaped_basename)) + # Name regex based on the soname, plus potential symlinks + messenger.SuggestGarLine( + r'PKGFILES_%s += ' + r'$(call baseisadirs,$(libdir),%s(\.\d+)*)' + % (pkgname, escaped_soname)) + messenger.SuggestGarLine( + "SPKG_DESC_%s += %s, %s" + % (pkgname, description, soname)) + messenger.SuggestGarLine( + "RUNTIME_DEP_PKGS_%s += %s" + % (pkgname, pkgname)) + messenger.SuggestGarLine( + "# The end of %s definition" % pkgname) Modified: csw/mgar/gar/v2/lib/python/dependency_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-15 23:29:18 UTC (rev 11962) +++ csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-16 10:32:52 UTC (rev 11963) @@ -354,5 +354,47 @@ "e.g. '/opt/csw/apache2/bin/foo'")]] self.assertEqual(expected, result) + +class SuggestLibraryPackage(mox.MoxTestBase): + + def testBasic(self): + error_mgr_mock = self.mox.CreateMock( + checkpkg_lib.IndividualCheckInterface) + messenger_mock = self.mox.CreateMock( + checkpkg_lib.CheckpkgMessenger) + pkgname = "CSWfoo-bar" + catalogname = "foo_bar" + description = "A foo bar package" + # TODO: What if the path is different? + lib_path = "opt/csw/lib" + lib_basename = "libfoo.so.1.2.3" + lib_soname = "libfoo.so.1" + messenger_mock.SuggestGarLine( + r'# The following lines define a new package: CSWfoo-bar') + messenger_mock.SuggestGarLine( + r'PACKAGES += CSWfoo-bar') + messenger_mock.SuggestGarLine( + r'CATALOGNAME_CSWfoo-bar = foo_bar') + messenger_mock.SuggestGarLine( + r'PKGFILES_CSWfoo-bar += ' + r'$(call baseisadirs,$(libdir),libfoo\.so\.1\.2\.3)') + messenger_mock.SuggestGarLine( + r'PKGFILES_CSWfoo-bar += ' + r'$(call baseisadirs,$(libdir),libfoo\.so\.1(\.\d+)*)') + messenger_mock.SuggestGarLine( + 'SPKG_DESC_CSWfoo-bar += A foo bar package, libfoo.so.1') + messenger_mock.SuggestGarLine( + r'RUNTIME_DEP_PKGS_CSWfoo-bar += CSWfoo-bar') + messenger_mock.SuggestGarLine( + r'# The end of CSWfoo-bar definition') + self.mox.ReplayAll() + dependency_checks.SuggestLibraryPackage( + error_mgr_mock, + messenger_mock, + pkgname, catalogname, + description, + lib_path, lib_basename, lib_soname) + + if __name__ == '__main__': unittest.main() Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-15 23:29:18 UTC (rev 11962) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-16 10:32:52 UTC (rev 11963) @@ -1083,28 +1083,13 @@ lib_path, lib_basename = os.path.split(binary_info["path"]) tmp = su.MakePackageNameBySoname(soname) policy_pkgname_list, policy_catalogname_list = tmp - messenger.SuggestGarLine("# The following lines define a new package: " - "%s" % policy_pkgname_list[0]) - messenger.SuggestGarLine("PACKAGES += %s" % policy_pkgname_list[0]) - messenger.SuggestGarLine( - "CATALOGNAME_%s = %s" - % (policy_pkgname_list[0], policy_catalogname_list[0])) - messenger.SuggestGarLine( - "PKGFILES_%s += /%s" - % (policy_pkgname_list[0], os.path.join(lib_path, lib_basename))) - messenger.SuggestGarLine( - "PKGFILES_%s += /%s\.[0-9\.]+" - % (policy_pkgname_list[0], os.path.join(lib_path, soname))) pkginfo = pkg_data["pkginfo"] description = " ".join(pkginfo["NAME"].split(" ")[2:]) - messenger.SuggestGarLine( - "SPKG_DESC_%s += %s, %s" - % (policy_pkgname_list[0], description, soname)) - messenger.SuggestGarLine( - "RUNTIME_DEP_PKGS_%s += %s" - % (pkgname, policy_pkgname_list[0])) - messenger.SuggestGarLine( - "# The end of %s definition" % policy_pkgname_list[0]) + depchecks.SuggestLibraryPackage(error_mgr, messenger, + policy_pkgname_list[0], + policy_catalogname_list[0], + description, + lib_path, lib_basename, soname) check_names = False else: @@ -1137,17 +1122,17 @@ % (binary_info["path"], soname, pkgname, ",".join(policy_pkgname_list))) + suggested_pkgname = policy_pkgname_list[0] - messenger.SuggestGarLine( - "PACKAGES += %s" % suggested_pkgname) - messenger.SuggestGarLine( - "CATALOGNAME_%s = %s" - % (suggested_pkgname, policy_catalogname_list[0])) - messenger.SuggestGarLine( - "PKGFILES_%s += /%s" % (suggested_pkgname, binary_info["path"])) - lib_basename, lib_filename = os.path.split(binary_info["path"]) - messenger.SuggestGarLine( - "PKGFILES_%s += /%s/%s.*" % (suggested_pkgname, lib_basename, soname)) + lib_path, lib_basename = os.path.split(binary_info["path"]) + pkginfo = pkg_data["pkginfo"] + description = " ".join(pkginfo["NAME"].split(" ")[2:]) + depchecks.SuggestLibraryPackage(error_mgr, messenger, + suggested_pkgname, + policy_catalogname_list[0], + description, + lib_path, lib_basename, soname) + messenger.OneTimeMessage( soname, "This shared library (%s) is in a directory indicating that it " Modified: csw/mgar/gar/v2/lib/python/sharedlib_utils.py =================================================================== --- csw/mgar/gar/v2/lib/python/sharedlib_utils.py 2010-12-15 23:29:18 UTC (rev 11962) +++ csw/mgar/gar/v2/lib/python/sharedlib_utils.py 2010-12-16 10:32:52 UTC (rev 11963) @@ -272,3 +272,9 @@ def GetIsalist(str_arch): arch = ArchByString(str_arch) return common_constants.ISALISTS_BY_ARCH[arch] + + +def EscapeRegex(s): + """Needs to be improved to escape more characters.""" + s = s.replace(r'.', r'\.') + return s This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 16 11:33:24 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 16 Dec 2010 10:33:24 +0000 Subject: [csw-devel] SF.net SVN: gar:[11964] csw/mgar/gar/v2/lib/python/dependency_checks.py Message-ID: Revision: 11964 http://gar.svn.sourceforge.net/gar/?rev=11964&view=rev Author: wahwah Date: 2010-12-16 10:33:24 +0000 (Thu, 16 Dec 2010) Log Message: ----------- checkpkg: Add a comment about directory check The check is disabled because of false positives. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/dependency_checks.py Modified: csw/mgar/gar/v2/lib/python/dependency_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-16 10:32:52 UTC (rev 11963) +++ csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-16 10:33:24 UTC (rev 11964) @@ -176,6 +176,9 @@ 1. For each directory 1.1. Find the parent 1.2. Add the parent to the list of packages to depend on. + + This check is currently disabled, because of false positives that it + generates. """ pkgname = pkg_data["basic_stats"]["pkgname"] req_pkgs_reasons = [] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 16 11:33:49 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 16 Dec 2010 10:33:49 +0000 Subject: [csw-devel] SF.net SVN: gar:[11965] csw/mgar/pkg/cups/trunk/Makefile Message-ID: Revision: 11965 http://gar.svn.sourceforge.net/gar/?rev=11965&view=rev Author: wahwah Date: 2010-12-16 10:33:49 +0000 (Thu, 16 Dec 2010) Log Message: ----------- cups: Use baseisadirs to include libraries. Used for testing. It will come in handy when compiling cups in 64 bits. Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2010-12-16 10:33:24 UTC (rev 11964) +++ csw/mgar/pkg/cups/trunk/Makefile 2010-12-16 10:33:49 UTC (rev 11965) @@ -72,12 +72,79 @@ UFILES_REGEX = cups-(\d+(?:\.\d+)*)-source.tar.bz2 -PACKAGES += CSWlibcups +# The main metapackage +PACKAGES += CSWcups +SPKG_DESC_CSWcups = Common Unix Printing System +ARCHALL_CSWcups = 1 +RUNTIME_DEP_PKGS_CSWcups += CSWcupsd +RUNTIME_DEP_PKGS_CSWcups += CSWcupsclient +CHECKPKG_OVERRIDES_CSWcups += surplus-dependency|CSWcupsclient +CHECKPKG_OVERRIDES_CSWcups += surplus-dependency|CSWcupsd + +# Empty transitional package +PACKAGES += CSWlibcups +SPKG_DESC_CSWlibcups = Empty transitional package (was: CUPS libraries) +PKGFILES_CSWlibcups = NONE +RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcups2 +RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcupscgi1 +RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcupsdriver1 +RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcupsimage2 +RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcupsmime1 +RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcupsppdc1 +CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcupsppdc1 +CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcupsdriver1 +CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcups2 +CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcupsmime1 +CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcupsimage2 +CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcupscgi1 +ARCHALL_CSWlibcups = 1 + +# The daemon PACKAGES += CSWcupsd +SPKG_DESC_CSWcupsd = CUPS daemon +PKGFILES_CSWcupsd += $(bindir)/ppd(c|html|i|merge|po) +PKGFILES_CSWcupsd += $(datadir)/applications/.* +PKGFILES_CSWcupsd += $(datadir)/cups +PKGFILES_CSWcupsd += $(datadir)/cups/(banners|data|profiles|charsets).* +PKGFILES_CSWcupsd += $(datadir)/cups/(fonts|templates|charmaps|model).* +PKGFILES_CSWcupsd += $(datadir)/cups/mime.* +PKGFILES_CSWcupsd += $(datadir)/icons.* +PKGFILES_CSWcupsd += $(datadir)/locale/.* +PKGFILES_CSWcupsd += $(libdir)/cups/.* +PKGFILES_CSWcupsd += $(libdir)/svc/.* +PKGFILES_CSWcupsd += $(localstatedir)/.* +PKGFILES_CSWcupsd += $(mandir)/man1m +PKGFILES_CSWcupsd += $(mandir)/man1m/cups(filter|d|-polld|-deviced|-driverd|-lpd)\.1m +PKGFILES_CSWcupsd += $(mandir)/man5/(cups-snmp.conf|subscriptions.conf).5 +PKGFILES_CSWcupsd += $(mandir)/man5/(mime.convs|classes.conf|cupsd.conf).5 +PKGFILES_CSWcupsd += $(mandir)/man5/(mime.types|printers.conf|mailto.conf).5 +PKGFILES_CSWcupsd += $(mandir)/man7/(backend|filter).7 +PKGFILES_CSWcupsd += $(sbindir)/(cupsfilter|cupsd) +PKGFILES_CSWcupsd += $(sysconfdir)/cups/cupsd.* +PKGFILES_CSWcupsd += $(sysconfdir)/cups/interfaces.* +PKGFILES_CSWcupsd += $(sysconfdir)/cups/ppd.* +PKGFILES_CSWcupsd += $(sysconfdir)/cups/snmp.* +PKGFILES_CSWcupsd += $(sysconfdir)/cups/ssl.* +PKGFILES_CSWcupsd += $(sysconfdir)/init\.d/.* +PKGFILES_CSWcupsd += $(sysconfdir)/rc.* +RUNTIME_DEP_PKGS_CSWcupsd += CSWkrb5lib +RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcups2 +RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupscgi1 +RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupsdriver1 +RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupsimage2 +RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupsmime1 +RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupsppdc1 +RUNTIME_DEP_PKGS_CSWcupsd += CSWlibdbus +RUNTIME_DEP_PKGS_CSWcupsd += CSWoldaprt +RUNTIME_DEP_PKGS_CSWcupsd += CSWosslrt +RUNTIME_DEP_PKGS_CSWcupsd += CSWzlib + +# http://lists.opencsw.org/pipermail/maintainers/2009-September/004249.html +SAMPLECONF_CSWcupsd = $(sysconfdir)/cups/cupsd\.conf\.CSW + PACKAGES += CSWcupsclient PACKAGES += CSWcupsdoc PACKAGES += CSWcupsdev -PACKAGES += CSWcups # The problematic cupslinks package @@ -90,19 +157,11 @@ # SPKG_DESC_CSWcupslinks = Drop-in replacement for SUNWpcu and SUNWpcr # CUPSLINKS_TARGET = cupslinks -ARCHALL_CSWcups = 1 ARCHALL_CSWcupsdoc = 1 -RUNTIME_DEP_PKGS_CSWcups += CSWcupsd -RUNTIME_DEP_PKGS_CSWcups += CSWcupsclient RUNTIME_DEP_PKGS_CSWcupsclient += CSWzlib -RUNTIME_DEP_PKGS_CSWcupsd += CSWkrb5lib -RUNTIME_DEP_PKGS_CSWcupsd += CSWlibdbus -RUNTIME_DEP_PKGS_CSWcupsd += CSWzlib -RUNTIME_DEP_PKGS_CSWcupsd += CSWoldaprt -PKGFILES_CSWlibcups = NONE PKGFILES_CSWcupsdoc = $(datadir)/doc PKGFILES_CSWcupsdoc += $(datadir)/doc/.* PKGFILES_CSWcupsdoc += $(datadir)/cups/examples.* @@ -117,31 +176,6 @@ PKGFILES_CSWcupsdev += $(libdir)/libcupsimage.so PKGFILES_CSWcupsdev += $(libdir)/libcupsmime.so PKGFILES_CSWcupsdev += $(libdir)/libcupsppdc.so -PKGFILES_CSWcupsd += $(sysconfdir)/init\.d/.* -PKGFILES_CSWcupsd += $(sysconfdir)/rc.* -PKGFILES_CSWcupsd += $(sysconfdir)/cups/cupsd.* -PKGFILES_CSWcupsd += $(sysconfdir)/cups/interfaces.* -PKGFILES_CSWcupsd += $(sysconfdir)/cups/ppd.* -PKGFILES_CSWcupsd += $(sysconfdir)/cups/snmp.* -PKGFILES_CSWcupsd += $(sysconfdir)/cups/ssl.* -PKGFILES_CSWcupsd += $(mandir)/man1m -PKGFILES_CSWcupsd += $(mandir)/man1m/cups(filter|d|-polld|-deviced|-driverd|-lpd)\.1m -PKGFILES_CSWcupsd += $(mandir)/man7/(backend|filter).7 -PKGFILES_CSWcupsd += $(mandir)/man5/(cups-snmp.conf|subscriptions.conf).5 -PKGFILES_CSWcupsd += $(mandir)/man5/(mime.convs|classes.conf|cupsd.conf).5 -PKGFILES_CSWcupsd += $(mandir)/man5/(mime.types|printers.conf|mailto.conf).5 -PKGFILES_CSWcupsd += $(datadir)/cups -PKGFILES_CSWcupsd += $(datadir)/cups/(fonts|templates|charmaps|model).* -PKGFILES_CSWcupsd += $(datadir)/cups/(banners|data|profiles|charsets).* -PKGFILES_CSWcupsd += $(datadir)/locale/.* -PKGFILES_CSWcupsd += $(datadir)/applications/.* -PKGFILES_CSWcupsd += $(datadir)/cups/mime.* -PKGFILES_CSWcupsd += $(datadir)/icons.* -PKGFILES_CSWcupsd += $(libdir)/cups/.* -PKGFILES_CSWcupsd += $(libdir)/svc/.* -PKGFILES_CSWcupsd += $(bindir)/ppd(c|html|i|merge|po) -PKGFILES_CSWcupsd += $(sbindir)/(cupsfilter|cupsd) -PKGFILES_CSWcupsd += $(localstatedir)/.* PKGFILES_CSWcupsclient = $(sbindir)/(accept|reject|cups(addsmb|ctl|(en|dis)able)) PKGFILES_CSWcupsclient += $(sbindir)/cups(accept|reject) PKGFILES_CSWcupsclient += $(sbindir)/(lp(admin|p|c|info|move)) @@ -160,9 +194,6 @@ PKGFILES_CSWcupsclient += $(mandir)/man7/(drv|notifier)\.7 PKGFILES_CSWcupsclient += $(sysconfdir)/cups/client\.conf\.CSW -SPKG_DESC_CSWcups = Common Unix Printing System -SPKG_DESC_CSWlibcups = Empty transitional package (was: CUPS libraries) -SPKG_DESC_CSWcupsd = CUPS daemon SPKG_DESC_CSWcupsclient = CUPS client binaries SPKG_DESC_CSWcupsdoc = CUPS documentation SPKG_DESC_CSWcupsdev = CUPS header files @@ -170,54 +201,38 @@ # Packages compliant with the shared library policy. PACKAGES += CSWlibcups2 CATALOGNAME_CSWlibcups2 = libcups2 -PKGFILES_CSWlibcups2 += /opt/csw/lib/libcups.so.2 -PKGFILES_CSWlibcups2 += /opt/csw/lib/libcups.so.2\.[0-9\.]+ +PKGFILES_CSWlibcups2 += $(call baseisadirs,$(libdir),libcups\.so\.2(\.\d+)*) SPKG_DESC_CSWlibcups2 += CUPS libraries, libcups.so.2 -RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcups2 + PACKAGES += CSWlibcupscgi1 CATALOGNAME_CSWlibcupscgi1 = libcupscgi1 -PKGFILES_CSWlibcupscgi1 += /opt/csw/lib/libcupscgi.so.1 -PKGFILES_CSWlibcupscgi1 += /opt/csw/lib/libcupscgi.so.1\.[0-9\.]+ +PKGFILES_CSWlibcupscgi1 += $(call baseisadirs,$(libdir),libcupscgi\.so\.1(\.\d+)*) SPKG_DESC_CSWlibcupscgi1 += CUPS libraries, libcupscgi.so.1 -RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcupscgi1 + PACKAGES += CSWlibcupsdriver1 CATALOGNAME_CSWlibcupsdriver1 = libcupsdriver1 -PKGFILES_CSWlibcupsdriver1 += /opt/csw/lib/libcupsdriver.so.1 -PKGFILES_CSWlibcupsdriver1 += /opt/csw/lib/libcupsdriver.so.1\.[0-9\.]+ +PKGFILES_CSWlibcupsdriver1 += $(call baseisadirs,$(libdir),libcupsdriver\.so\.1(\.\d+)*) SPKG_DESC_CSWlibcupsdriver1 += CUPS libraries, libcupsdriver.so.1 -RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcupsdriver1 + PACKAGES += CSWlibcupsimage2 CATALOGNAME_CSWlibcupsimage2 = libcupsimage2 -PKGFILES_CSWlibcupsimage2 += /opt/csw/lib/libcupsimage.so.2 -PKGFILES_CSWlibcupsimage2 += /opt/csw/lib/libcupsimage.so.2\.[0-9\.]+ +PKGFILES_CSWlibcupsimage2 += $(call baseisadirs,$(libdir),libcupsimage\.so\.2(\.\d+)*) SPKG_DESC_CSWlibcupsimage2 += CUPS libraries, libcupsimage.so.2 -RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcupsimage2 + PACKAGES += CSWlibcupsmime1 CATALOGNAME_CSWlibcupsmime1 = libcupsmime1 -PKGFILES_CSWlibcupsmime1 += /opt/csw/lib/libcupsmime.so.1 -PKGFILES_CSWlibcupsmime1 += /opt/csw/lib/libcupsmime.so.1\.[0-9\.]+ +PKGFILES_CSWlibcupsmime1 += $(call baseisadirs,$(libdir),libcupsmime\.so\.1(\.\d+)*) SPKG_DESC_CSWlibcupsmime1 += CUPS libraries, libcupsmime.so.1 -RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcupsmime1 + PACKAGES += CSWlibcupsppdc1 CATALOGNAME_CSWlibcupsppdc1 = libcupsppdc1 -PKGFILES_CSWlibcupsppdc1 += /opt/csw/lib/libcupsppdc.so.1 -PKGFILES_CSWlibcupsppdc1 += /opt/csw/lib/libcupsppdc.so.1\.[0-9\.]+ +PKGFILES_CSWlibcupsppdc1 += $(call baseisadirs,$(libdir),libcupsppdc\.so\.1(\.\d+)*) SPKG_DESC_CSWlibcupsppdc1 += CUPS libraries, libcupsppdc.so.1 -RUNTIME_DEP_PKGS_CSWlibcups += CSWlibcupsppdc1 -RUNTIME_DEP_PKGS_CSWlibcups += CSWosslrt -RUNTIME_DEP_PKGS_CSWcupsd += CSWosslrt RUNTIME_DEP_PKGS_CSWcupsclient += CSWosslrt RUNTIME_DEP_PKGS_CSWcupsclient += CSWlibcups2 RUNTIME_DEP_PKGS_CSWcupsclient += CSWlibcupsimage2 -ARCHALL_CSWlibcups = 1 -RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupsppdc1 -RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcups2 -RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupscgi1 -RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupsdriver1 -RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupsmime1 -RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupsimage2 RUNTIME_DEP_PKGS_CSWlibcups2 += CSWosslrt RUNTIME_DEP_PKGS_CSWlibcups2 += CSWzlib RUNTIME_DEP_PKGS_CSWlibcupsmime1 += CSWosslrt @@ -235,15 +250,6 @@ RUNTIME_DEP_PKGS_CSWlibcupsppdc1 += CSWosslrt RUNTIME_DEP_PKGS_CSWlibcupsppdc1 += CSWlibcups2 -# Since CSWlibcups is an empty transitional package -CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcupsppdc1 -CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcupsdriver1 -CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcups2 -CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcupsmime1 -CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcupsimage2 -CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWosslrt -CHECKPKG_OVERRIDES_CSWlibcups += surplus-dependency|CSWlibcupscgi1 - # The development package needs all the libraries RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcupsppdc1 RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcupsdriver1 @@ -252,11 +258,7 @@ RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcupsimage2 RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcupscgi1 -CHECKPKG_OVERRIDES_CSWcups += surplus-dependency|CSWcupsclient -CHECKPKG_OVERRIDES_CSWcups += surplus-dependency|CSWcupsd - # http://lists.opencsw.org/pipermail/maintainers/2009-September/004249.html -SAMPLECONF_CSWcupsd = $(sysconfdir)/cups/cupsd\.conf\.CSW SAMPLECONF_CSWcupsclient += $(sysconfdir)/cups/client\.conf\.CSW INITSMF = $(sysconfdir)/init\.d/cswcups This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Thu Dec 16 11:44:42 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Thu, 16 Dec 2010 10:44:42 +0000 Subject: [csw-devel] SF.net SVN: gar:[11966] csw/mgar/gar/v2 Message-ID: Revision: 11966 http://gar.svn.sourceforge.net/gar/?rev=11966&view=rev Author: dmichelsen Date: 2010-12-16 10:44:42 +0000 (Thu, 16 Dec 2010) Log Message: ----------- mGAR v2: Add META.yml for cpan packages as cswpm-meta.yml to package Modified Paths: -------------- csw/mgar/gar/v2/categories/cpan/category.mk csw/mgar/gar/v2/gar.pkg.mk Modified: csw/mgar/gar/v2/categories/cpan/category.mk =================================================================== --- csw/mgar/gar/v2/categories/cpan/category.mk 2010-12-16 10:33:49 UTC (rev 11965) +++ csw/mgar/gar/v2/categories/cpan/category.mk 2010-12-16 10:44:42 UTC (rev 11966) @@ -48,6 +48,9 @@ # upstream chose uppercase or not as case must match. _CATEGORY_CHECKPKG_OVERRIDES += pkginfo-description-not-starting-with-uppercase +# Copy in META.yml if it exists so checkpkg can check Perl dependencies +_CATEGORY_FILTER = | ( cat; if test -f "$(WORKDIR_GLOBAL)/META.yml";then echo "i cswpm-meta.yml=META.yml"; fi) + include gar/gar.mk CONFIGURE_ENV += PERL5LIB=$(PERL5LIB) @@ -89,6 +92,9 @@ ( cd $* ; $(INSTALL_ENV) ./Build install $(PERLBUILD_INSTALL_ARGS) ) @$(MAKECOOKIE) +pre-package: + test -f $(WORKSRC_FIRSTMOD)/META.yml && cp $(WORKSRC_FIRSTMOD)/META.yml $(WORKDIR_GLOBAL) + # Check for a CPAN module version update update-check: @echo " ==> Update Check: $(NAME) $(VERSION)" Modified: csw/mgar/gar/v2/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2/gar.pkg.mk 2010-12-16 10:33:49 UTC (rev 11965) +++ csw/mgar/gar/v2/gar.pkg.mk 2010-12-16 10:44:42 UTC (rev 11966) @@ -432,9 +432,9 @@ ) \ <$(PROTOTYPE); \ if [ -n "$(EXTRA_PKGFILES_$*)" ]; then echo "$(EXTRA_PKGFILES_$*)"; fi \ - ) $(call checkpkg_override_filter,$*) $(_CSWCLASS_FILTER) $(_PROTOTYPE_MODIFIERS) $(_PROTOTYPE_FILTER_$*) >$@; \ + ) $(call checkpkg_override_filter,$*) $(_CSWCLASS_FILTER) $(_CATEGORY_FILTER) $(_PROTOTYPE_MODIFIERS) $(_PROTOTYPE_FILTER_$*) >$@; \ else \ - cat $(PROTOTYPE) $(call checkpkg_override_filter,$*) $(_CSWCLASS_FILTER) $(_PROTOTYPE_MODIFIERS) $(_PROTOTYPE_FILTER_$*) >$@; \ + cat $(PROTOTYPE) $(call checkpkg_override_filter,$*) $(_CSWCLASS_FILTER) $(_CATEGORY_FILTER) $(_PROTOTYPE_MODIFIERS) $(_PROTOTYPE_FILTER_$*) >$@; \ fi $(if $(ALLOW_RELOCATE),$(call dontrelocate,opt,$(PROTOTYPE))) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at opencsw.org Thu Dec 16 11:42:15 2010 From: skayser at opencsw.org (Sebastian Kayser) Date: Thu, 16 Dec 2010 11:42:15 +0100 Subject: [csw-devel] SF.net SVN: gar:[11966] csw/mgar/gar/v2 In-Reply-To: References: Message-ID: <20101216104215.GR30288@sebastiankayser.de> * dmichelsen at users.sourceforge.net wrote: > Revision: 11966 > http://gar.svn.sourceforge.net/gar/?rev=11966&view=rev > Author: dmichelsen > Date: 2010-12-16 10:44:42 +0000 (Thu, 16 Dec 2010) > > Log Message: > ----------- > mGAR v2: Add META.yml for cpan packages as cswpm-meta.yml to package While you are adding automagic file handling, any chance that you could look at http://sourceforge.net/apps/trac/gar/ticket/27 ("Integrated handling for extra doc/ files")? Sebastian From wahwah at users.sourceforge.net Thu Dec 16 14:43:43 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 16 Dec 2010 13:43:43 +0000 Subject: [csw-devel] SF.net SVN: gar:[11967] csw/mgar/pkg/mox/trunk Message-ID: Revision: 11967 http://gar.svn.sourceforge.net/gar/?rev=11967&view=rev Author: wahwah Date: 2010-12-16 13:43:43 +0000 (Thu, 16 Dec 2010) Log Message: ----------- mox: Update to 5.0.3 Modified Paths: -------------- csw/mgar/pkg/mox/trunk/Makefile csw/mgar/pkg/mox/trunk/checksums Modified: csw/mgar/pkg/mox/trunk/Makefile =================================================================== --- csw/mgar/pkg/mox/trunk/Makefile 2010-12-16 10:44:42 UTC (rev 11966) +++ csw/mgar/pkg/mox/trunk/Makefile 2010-12-16 13:43:43 UTC (rev 11967) @@ -3,9 +3,9 @@ # $Id$ NAME = mox -VERSION = 0.5.0 +VERSION = 0.5.3 CATEGORIES = python -DESCRIPTION = a mock object framework for Python +DESCRIPTION = Mock object framework for Python ARCHALL = 1 define BLURB endef Modified: csw/mgar/pkg/mox/trunk/checksums =================================================================== --- csw/mgar/pkg/mox/trunk/checksums 2010-12-16 10:44:42 UTC (rev 11966) +++ csw/mgar/pkg/mox/trunk/checksums 2010-12-16 13:43:43 UTC (rev 11967) @@ -1 +1 @@ -4203ea4f03c7dcec0a1ceb1290a8b615 mox-0.5.0.tar.gz +2c43da56ed1bbbbf7805e81c76a924cc mox-0.5.3.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 16 14:44:39 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 16 Dec 2010 13:44:39 +0000 Subject: [csw-devel] SF.net SVN: gar:[11968] csw/mgar/pkg Message-ID: Revision: 11968 http://gar.svn.sourceforge.net/gar/?rev=11968&view=rev Author: wahwah Date: 2010-12-16 13:44:39 +0000 (Thu, 16 Dec 2010) Log Message: ----------- mox: Move to lang-python Added Paths: ----------- csw/mgar/pkg/lang-python/mox/ Removed Paths: ------------- csw/mgar/pkg/mox/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 16 16:33:10 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 16 Dec 2010 15:33:10 +0000 Subject: [csw-devel] SF.net SVN: gar:[11969] csw/mgar/gar/v2/lib/python/compare_pkgs.py Message-ID: Revision: 11969 http://gar.svn.sourceforge.net/gar/?rev=11969&view=rev Author: wahwah Date: 2010-12-16 15:33:10 +0000 (Thu, 16 Dec 2010) Log Message: ----------- comparepkg: Using /usr/bin/env for compatibility Modified Paths: -------------- csw/mgar/gar/v2/lib/python/compare_pkgs.py Modified: csw/mgar/gar/v2/lib/python/compare_pkgs.py =================================================================== --- csw/mgar/gar/v2/lib/python/compare_pkgs.py 2010-12-16 13:44:39 UTC (rev 11968) +++ csw/mgar/gar/v2/lib/python/compare_pkgs.py 2010-12-16 15:33:10 UTC (rev 11969) @@ -1,4 +1,4 @@ -#!/opt/csw/bin/python2.6 +#!/usr/bin/env python2.6 # coding=utf-8 # vim:set sw=2 ts=2 sts=2 expandtab: # This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 16 16:33:35 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 16 Dec 2010 15:33:35 +0000 Subject: [csw-devel] SF.net SVN: gar:[11970] csw/mgar/gar/v2/lib/python/README Message-ID: Revision: 11970 http://gar.svn.sourceforge.net/gar/?rev=11970&view=rev Author: wahwah Date: 2010-12-16 15:33:35 +0000 (Thu, 16 Dec 2010) Log Message: ----------- checkpkg: README update Modified Paths: -------------- csw/mgar/gar/v2/lib/python/README Modified: csw/mgar/gar/v2/lib/python/README =================================================================== --- csw/mgar/gar/v2/lib/python/README 2010-12-16 15:33:10 UTC (rev 11969) +++ csw/mgar/gar/v2/lib/python/README 2010-12-16 15:33:35 UTC (rev 11970) @@ -14,6 +14,7 @@ - Sort all list data structures so that it's possible to diff the results of pprint.pprint() and see meaningful results. This will be the new implementation for comparepkg. +- Don't suggest two packages for the same soname. Also, see ticket list on trac: http://sourceforge.net/apps/trac/gar/report/1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 16 17:19:16 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 16 Dec 2010 16:19:16 +0000 Subject: [csw-devel] SF.net SVN: gar:[11971] csw/mgar/gar/v2/lib/python Message-ID: Revision: 11971 http://gar.svn.sourceforge.net/gar/?rev=11971&view=rev Author: wahwah Date: 2010-12-16 16:19:16 +0000 (Thu, 16 Dec 2010) Log Message: ----------- checkpkg: Better error message for system files This error message should be more helpful. It mentions shared and private db setups, and says what commands to run to import system files to the database. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/database.py Added Paths: ----------- csw/mgar/gar/v2/lib/python/database_test.py Modified: csw/mgar/gar/v2/lib/python/database.py =================================================================== --- csw/mgar/gar/v2/lib/python/database.py 2010-12-16 15:33:35 UTC (rev 11970) +++ csw/mgar/gar/v2/lib/python/database.py 2010-12-16 16:19:16 UTC (rev 11971) @@ -111,17 +111,21 @@ logging.debug("VerifyContents(%s, %s): %s", sqo_osrel, sqo_arch, system_pkgs) if system_pkgs < 10: raise DatabaseError( - "Your database does not have information about " - "system files for %s %s. " - "If you don't have a central database, " + "Checkpkg can't find system files for %s %s in the cache database. " + "These are files such as /usr/lib/libc.so.1. " + "Private DB setup: " "you can only check packages built for the same Solaris version " "you're running on this machine. " "For instance, you can't check a SunOS5.9 package on SunOS5.10. " - "OpenCSW maintainers: " + "Shared DB setup (e.g. OpenCSW maintainers): " "If you have one home directory on multiple hosts, make sure you " - "run checkpkg on the host you intended to. " + "run checkpkg on the host you intended to. " + "To fix, go to a %s %s host and execute: pkgdb system-files-to-file; " + "pkgdb import-system-file install-contents-%s-%s.pickle; " "See http://wiki.opencsw.org/checkpkg for more information." - % (sqo_osrel.short_name, sqo_arch.name)) + % (sqo_osrel.short_name, sqo_arch.name, + sqo_arch.name, sqo_osrel.short_name, + sqo_osrel.short_name, sqo_arch.name)) class CheckpkgDatabaseMixin(object): Added: csw/mgar/gar/v2/lib/python/database_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/database_test.py (rev 0) +++ csw/mgar/gar/v2/lib/python/database_test.py 2010-12-16 16:19:16 UTC (rev 11971) @@ -0,0 +1,41 @@ +#!/usr/bin/env python2.6 + +import unittest +import database +import mox +import models + + +class DatabaseManagerUnitTest(mox.MoxTestBase): + + def testNoSystemFiles(self): + # This test shows that stubbing out sqlite classes is quite laborious. + saved_s = database.m.Srv4FileStats + srv4_file_stats_mock_factory = self.mox.CreateMockAnything() + database.m.Srv4FileStats = srv4_file_stats_mock_factory + q_mock = self.mox.CreateMockAnything() + q_mock.use_to_generate_catalogs = self.mox.CreateMockAnything() + database.m.Srv4FileStats.q = q_mock + # We would prefer to use self.mox.CreateMock(models.OsRelease). The + # reason why it doesn't work, is that mox tries to inspect the class, and + # sqlobject overrides the __get__ method of that class, where it tries to + # verify that a connection to a database exists. In our tests we don't + # have a connection, and sqlobject throws an exception. + osrel_mock = self.mox.CreateMockAnything() + arch_mock = self.mox.CreateMockAnything() + osrel_mock.short_name = 'AlienOS5.3' + arch_mock.name = 'amd65' + dm = database.DatabaseManager() + result_mock = self.mox.CreateMockAnything() + srv4_file_stats_mock_factory.select(0).AndReturn(result_mock) + # This is where we return the number of system files (0) + result_mock.count().AndReturn(0) + self.mox.ReplayAll() + self.assertRaises( + database.DatabaseError, + dm.VerifyContents, osrel_mock, arch_mock) + database.m.Srv4FileStats = saved_s + + +if __name__ == '__main__': + unittest.main() Property changes on: csw/mgar/gar/v2/lib/python/database_test.py ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 16 19:50:31 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 16 Dec 2010 18:50:31 +0000 Subject: [csw-devel] SF.net SVN: gar:[11972] csw/mgar/pkg/cups/trunk/Makefile Message-ID: Revision: 11972 http://gar.svn.sourceforge.net/gar/?rev=11972&view=rev Author: wahwah Date: 2010-12-16 18:50:31 +0000 (Thu, 16 Dec 2010) Log Message: ----------- cups: Removing rc.* files from CSWcupsd Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2010-12-16 16:19:16 UTC (rev 11971) +++ csw/mgar/pkg/cups/trunk/Makefile 2010-12-16 18:50:31 UTC (rev 11972) @@ -126,7 +126,6 @@ PKGFILES_CSWcupsd += $(sysconfdir)/cups/snmp.* PKGFILES_CSWcupsd += $(sysconfdir)/cups/ssl.* PKGFILES_CSWcupsd += $(sysconfdir)/init\.d/.* -PKGFILES_CSWcupsd += $(sysconfdir)/rc.* RUNTIME_DEP_PKGS_CSWcupsd += CSWkrb5lib RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcups2 RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupscgi1 @@ -138,6 +137,7 @@ RUNTIME_DEP_PKGS_CSWcupsd += CSWoldaprt RUNTIME_DEP_PKGS_CSWcupsd += CSWosslrt RUNTIME_DEP_PKGS_CSWcupsd += CSWzlib +EXTRA_MERGE_EXCLUDE_FILES += $(sysconfdir)/rc.* # http://lists.opencsw.org/pipermail/maintainers/2009-September/004249.html SAMPLECONF_CSWcupsd = $(sysconfdir)/cups/cupsd\.conf\.CSW This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Thu Dec 16 20:46:00 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Thu, 16 Dec 2010 19:46:00 +0000 Subject: [csw-devel] SF.net SVN: gar:[11973] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 11973 http://gar.svn.sourceforge.net/gar/?rev=11973&view=rev Author: bdwalton Date: 2010-12-16 19:46:00 +0000 (Thu, 16 Dec 2010) Log Message: ----------- exim: drop the checkinstall script as it mucks with CLASSES at install time (and will no longer be needed anyway) Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-16 18:50:31 UTC (rev 11972) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-16 19:46:00 UTC (rev 11973) @@ -17,7 +17,7 @@ MASTER_SITES = ftp://ftp.exim.org/pub/exim/exim4/ DISTFILES = $(NAME)-$(VERSION).tar.bz2 DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.preremove -DISTFILES += CSWexim.request CSWexim.checkinstall +DISTFILES += CSWexim.request # NOTE TO FUTURE MAINTAINERS: # This patch should be thoroughly reviewed for each update so as not to This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Thu Dec 16 21:08:05 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Thu, 16 Dec 2010 20:08:05 +0000 Subject: [csw-devel] SF.net SVN: gar:[11974] csw/mgar/pkg/exim/trunk/files/cswexim Message-ID: Revision: 11974 http://gar.svn.sourceforge.net/gar/?rev=11974&view=rev Author: bdwalton Date: 2010-12-16 20:08:05 +0000 (Thu, 16 Dec 2010) Log Message: ----------- exim: tweak manual MANIFEST entry in exim init script Modified Paths: -------------- csw/mgar/pkg/exim/trunk/files/cswexim Modified: csw/mgar/pkg/exim/trunk/files/cswexim =================================================================== --- csw/mgar/pkg/exim/trunk/files/cswexim 2010-12-16 19:46:00 UTC (rev 11973) +++ csw/mgar/pkg/exim/trunk/files/cswexim 2010-12-16 20:08:05 UTC (rev 11974) @@ -8,7 +8,7 @@ # Modified for OpenCSW by Ben Walton # These are consumed by the i.cswinitsmf class action script -#MANIFEST /opt/csw/var/svc/manifest/network/exim.xml +#MANIFEST /var/opt/csw/svc/manifest/network/exim.xml # Exit if exim (or another MTA) runs from /etc/inetd.conf if [ -f /etc/inetd.conf ] && grep "^ *\([0-9.]\+:\)\?smtp" /etc/inetd.conf >/dev/null; then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Thu Dec 16 22:15:53 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Thu, 16 Dec 2010 21:15:53 +0000 Subject: [csw-devel] SF.net SVN: gar:[11975] csw/mgar/pkg/exim/trunk/files/CSWexim.postinstall Message-ID: Revision: 11975 http://gar.svn.sourceforge.net/gar/?rev=11975&view=rev Author: bdwalton Date: 2010-12-16 21:15:53 +0000 (Thu, 16 Dec 2010) Log Message: ----------- exim: update the postinstall script to not do smf/service stuff Modified Paths: -------------- csw/mgar/pkg/exim/trunk/files/CSWexim.postinstall Modified: csw/mgar/pkg/exim/trunk/files/CSWexim.postinstall =================================================================== --- csw/mgar/pkg/exim/trunk/files/CSWexim.postinstall 2010-12-16 20:08:05 UTC (rev 11974) +++ csw/mgar/pkg/exim/trunk/files/CSWexim.postinstall 2010-12-16 21:15:53 UTC (rev 11975) @@ -9,50 +9,19 @@ mount | grep '^/usr ' | grep 'read only' >/dev/null } -class=smfno -test -f $PKG_INSTALL_ROOT/usr/sbin/svccfg -a -f $PKG_INSTALL_ROOT/usr/sbin/svcadm && class=smfyes - -enable_exim=1 -test -r $PKG_INSTALL_ROOT/opt/csw/etc/csw.conf && \ - . $PKG_INSTALL_ROOT/opt/csw/etc/csw.conf -test -r $PKG_INSTALL_ROOT/etc/opt/csw/csw.conf && \ - . $PKG_INSTALL_ROOT/etc/opt/csw/csw.conf - -if [ "$autoenable_daemons" = "no" -o "$autoenable_exim" = "no" ]; then - enable_exim=0 -fi - -# stop exim, but ONLY if we are doing a "direct" -# install, rather than a jumpstart install or something. -case "$PKG_ROOT_DIR" in - ""|"/") - if [ "$smf" = "yes" ]; then - /usr/sbin/svcadm disable -s svc:network/cswexim:default - /usr/sbin/svccfg delete svc:network/cswexim:default - else - test -x $PKG_INSTALL_ROOT/etc/init.d/cswexim && \ - $PKG_INSTALL_ROOT/etc/init.d/cswexim stop - fi - ;; - -esac - ### Set up config-file related stuff -if [ "$autoenable_daemons" != "no" ]; then - echo "" - echo "Setting up config-files..." - for file in $CONFFILES; do +echo "" +echo "Setting up config-files..." +for file in $CONFFILES; do confpath="$CONFDIR/$file" if [ -r "$confpath" ]; then - echo "Not touching existing $confpath" + echo "Not touching existing $confpath" else - echo "Copying $confpath.CSW to $confpath" - cp -p "$confpath.CSW" "$confpath" + echo "Copying $confpath.CSW to $confpath" + cp -p "$confpath.CSW" "$confpath" fi - done -fi - +done echo "" is_usr_readonly @@ -113,28 +82,6 @@ fi fi -if [ "$enable_exim" = "1" ]; then - case "$PKG_ROOT_DIR" in - ""|"/") - if [ "$class" = "smfno" ]; then - if [ -f $PKG_INSTALL_ROOT/etc/init.d/cswexim ]; then - $PKG_INSTALL_ROOT/etc/init.d/cswexim start - fi - else - echo "Registering Exim with SMF..." - /usr/sbin/svccfg import $PKG_INSTALL_ROOT/opt/csw/var/svc/manifest/network/exim.xml - /usr/sbin/svcadm enable svc:network/cswexim - fi - ;; - esac - - cat < Revision: 11976 http://gar.svn.sourceforge.net/gar/?rev=11976&view=rev Author: bdwalton Date: 2010-12-16 21:17:34 +0000 (Thu, 16 Dec 2010) Log Message: ----------- exim: remove smf/service handling for preremove script Modified Paths: -------------- csw/mgar/pkg/exim/trunk/files/CSWexim.preremove Modified: csw/mgar/pkg/exim/trunk/files/CSWexim.preremove =================================================================== --- csw/mgar/pkg/exim/trunk/files/CSWexim.preremove 2010-12-16 21:15:53 UTC (rev 11975) +++ csw/mgar/pkg/exim/trunk/files/CSWexim.preremove 2010-12-16 21:17:34 UTC (rev 11976) @@ -5,24 +5,6 @@ PATH=/bin:/usr/bin:"$PATH" export PATH -smf=no -test -f $PKG_INSTALL_ROOT/usr/sbin/svccfg -a -f $PKG_INSTALL_ROOT/usr/sbin/svcadm && smf=yes - -# stop exim, but ONLY if we are doing a "direct" -# install, rather than a jumpstart install or something. -case "$PKG_ROOT_DIR" in - ""|"/") - if [ "$smf" = "yes" ]; then - echo "Stopping and deregistering Exim..." - /usr/sbin/svcadm disable -s svc:network/cswexim:default - /usr/sbin/svccfg delete svc:network/cswexim:default - else - echo "Stopping Exim..." - test -x $PKG_INSTALL_ROOT/etc/init.d/cswexim && $PKG_INSTALL_ROOT/etc/init.d/cswexim stop - fi - ;; -esac - for file in $CONFFILES; do confpath="$CONFDIR/$file" diff "$confpath" "$confpath.CSW" >/dev/null 2>&1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 16 22:27:52 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 16 Dec 2010 21:27:52 +0000 Subject: [csw-devel] SF.net SVN: gar:[11977] csw/mgar/gar/v2/lib/python/package_checks.py Message-ID: Revision: 11977 http://gar.svn.sourceforge.net/gar/?rev=11977&view=rev Author: wahwah Date: 2010-12-16 21:27:52 +0000 (Thu, 16 Dec 2010) Log Message: ----------- checkpkg: CSWcswclassutils is deprecated Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-16 21:17:34 UTC (rev 11976) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-16 21:27:52 UTC (rev 11977) @@ -60,6 +60,12 @@ "shared library packages.", "url": "http://wiki.opencsw.org/packaging-shared-libraries", } + "CSWcswclassutils": { + "hint": "CSWcswclassutils is deprecated, please depend on specific " + "CSWcas-* packages.", + "url": ("http://lists.opencsw.org/pipermail/maintainers/" + "2010-October/012862.html"), + } } ARCH_RE = re.compile(r"(sparcv(8|9)|i386|amd64)") EMAIL_RE = re.compile(r"^.*@opencsw.org$") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Fri Dec 17 10:00:49 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Fri, 17 Dec 2010 09:00:49 +0000 Subject: [csw-devel] SF.net SVN: gar:[11978] csw/mgar/gar/v2/lib/python/package_checks.py Message-ID: Revision: 11978 http://gar.svn.sourceforge.net/gar/?rev=11978&view=rev Author: wahwah Date: 2010-12-17 09:00:49 +0000 (Fri, 17 Dec 2010) Log Message: ----------- checkpkg: Fix a syntax error Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-16 21:27:52 UTC (rev 11977) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-17 09:00:49 UTC (rev 11978) @@ -59,13 +59,13 @@ "hint": "CSWlibcups is deprecated, please depend on specific " "shared library packages.", "url": "http://wiki.opencsw.org/packaging-shared-libraries", - } + }, "CSWcswclassutils": { "hint": "CSWcswclassutils is deprecated, please depend on specific " "CSWcas-* packages.", "url": ("http://lists.opencsw.org/pipermail/maintainers/" "2010-October/012862.html"), - } + }, } ARCH_RE = re.compile(r"(sparcv(8|9)|i386|amd64)") EMAIL_RE = re.compile(r"^.*@opencsw.org$") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Fri Dec 17 10:41:33 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Fri, 17 Dec 2010 09:41:33 +0000 Subject: [csw-devel] SF.net SVN: gar:[11979] csw/mgar/gar/v2/lib/python Message-ID: Revision: 11979 http://gar.svn.sourceforge.net/gar/?rev=11979&view=rev Author: wahwah Date: 2010-12-17 09:41:32 +0000 (Fri, 17 Dec 2010) Log Message: ----------- checkpkg: Strip exclamation marks from pkgnames When a package installation fails, it's marked !CSWfoo in /var/sadm/install/contents. The exclamation mark has to be stripped before querying the database with the pkgname. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/system_pkgmap.py csw/mgar/gar/v2/lib/python/system_pkgmap_test.py Modified: csw/mgar/gar/v2/lib/python/system_pkgmap.py =================================================================== --- csw/mgar/gar/v2/lib/python/system_pkgmap.py 2010-12-17 09:00:49 UTC (rev 11978) +++ csw/mgar/gar/v2/lib/python/system_pkgmap.py 2010-12-17 09:41:32 UTC (rev 11979) @@ -496,7 +496,7 @@ # SUNWjhrt:j3link pkgname_orig = pkgname pkgname = pkgname.split(":")[0] - pkgname = pkgname.lstrip("*") - pkgname = pkgname.lstrip("~") + for c in ('*', '~', '!'): + pkgname = pkgname.lstrip(c) # logging.debug("d['pkgnames']: %s ? %s", pkgname_orig, pkgname) return pkgname Modified: csw/mgar/gar/v2/lib/python/system_pkgmap_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/system_pkgmap_test.py 2010-12-17 09:00:49 UTC (rev 11978) +++ csw/mgar/gar/v2/lib/python/system_pkgmap_test.py 2010-12-17 09:41:32 UTC (rev 11979) @@ -288,7 +288,13 @@ "SUNWjai", importer.SanitizeInstallContentsPkgname("SUNWjai:j5link")) + def testSanitizeInstallContentsPkgnameInstallError(self): + importer = system_pkgmap.InstallContentsImporter() + self.assertEquals( + "CSWmozilla", + importer.SanitizeInstallContentsPkgname("!CSWmozilla")) + if __name__ == '__main__': logging.basicConfig(level=logging.CRITICAL) unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Fri Dec 17 10:42:20 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Fri, 17 Dec 2010 09:42:20 +0000 Subject: [csw-devel] SF.net SVN: gar:[11980] csw/mgar/gar/v2/lib/python/system_pkgmap_test.py Message-ID: Revision: 11980 http://gar.svn.sourceforge.net/gar/?rev=11980&view=rev Author: wahwah Date: 2010-12-17 09:42:20 +0000 (Fri, 17 Dec 2010) Log Message: ----------- checkpkg: Retain the exclamation mark when parsing When parsing install/contents, return the exclamation mark. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/system_pkgmap_test.py Modified: csw/mgar/gar/v2/lib/python/system_pkgmap_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/system_pkgmap_test.py 2010-12-17 09:41:32 UTC (rev 11979) +++ csw/mgar/gar/v2/lib/python/system_pkgmap_test.py 2010-12-17 09:42:20 UTC (rev 11980) @@ -24,6 +24,8 @@ "? none CSWgcc3g77 CSWgcc3core") PKGMAP_LINE_6 = ("/usr/lib/libc.so.1 f none 0755 root bin 867444 58567 " "1250803966 SUNWcsl") +PKGMAP_LINE_7 = ("/opt/csw/include/mozilla/accessibility/nsAccessNode.h " + "f none 0644 root bin 5557 10685 1068611657 !CSWmozilla") class IndexerUnitTest(unittest.TestCase): @@ -104,6 +106,12 @@ } self.assertEqual(expected, spi._ParsePkgmapLine(PKGMAP_LINE_6)) + def test_ParsePkgmapExclamationMark(self): + spi = system_pkgmap.Indexer() + self.assertEqual( + ["!CSWmozilla"], + spi._ParsePkgmapLine(PKGMAP_LINE_7)["pkgnames"]) + def test_ParsePkgmapLineTypeWrongSyntax(self): spi = system_pkgmap.Indexer() self.assertRaises( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Fri Dec 17 10:42:52 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Fri, 17 Dec 2010 09:42:52 +0000 Subject: [csw-devel] SF.net SVN: gar:[11981] csw/mgar/gar/v2/lib/python/system_pkgmap_test.py Message-ID: Revision: 11981 http://gar.svn.sourceforge.net/gar/?rev=11981&view=rev Author: wahwah Date: 2010-12-17 09:42:52 +0000 (Fri, 17 Dec 2010) Log Message: ----------- checkpkg: Remove tabs that have sneaked in Modified Paths: -------------- csw/mgar/gar/v2/lib/python/system_pkgmap_test.py Modified: csw/mgar/gar/v2/lib/python/system_pkgmap_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/system_pkgmap_test.py 2010-12-17 09:42:20 UTC (rev 11980) +++ csw/mgar/gar/v2/lib/python/system_pkgmap_test.py 2010-12-17 09:42:52 UTC (rev 11981) @@ -89,20 +89,20 @@ """A question mark is not a valid type, but we have to cope with it.""" spi = system_pkgmap.Indexer() expected = { - 'modtime': '1250803966', - 'major': None, - 'pkgnames': ['SUNWcsl'], - 'cksum': '58567', - 'owner': 'root', - 'path': '/usr/lib/libc.so.1', - 'line': '/usr/lib/libc.so.1 f none 0755 root bin 867444 58567 1250803966 SUNWcsl', - 'class': 'none', - 'size': '867444', - 'group': 'bin', - 'target': None, - 'mode': '0755', - 'type': 'f', - 'minor': None, + 'modtime': '1250803966', + 'major': None, + 'pkgnames': ['SUNWcsl'], + 'cksum': '58567', + 'owner': 'root', + 'path': '/usr/lib/libc.so.1', + 'line': '/usr/lib/libc.so.1 f none 0755 root bin 867444 58567 1250803966 SUNWcsl', + 'class': 'none', + 'size': '867444', + 'group': 'bin', + 'target': None, + 'mode': '0755', + 'type': 'f', + 'minor': None, } self.assertEqual(expected, spi._ParsePkgmapLine(PKGMAP_LINE_6)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Dec 17 10:57:30 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 17 Dec 2010 09:57:30 +0000 Subject: [csw-devel] SF.net SVN: gar:[11982] csw/mgar/pkg/openldap/trunk/Makefile Message-ID: Revision: 11982 http://gar.svn.sourceforge.net/gar/?rev=11982&view=rev Author: dmichelsen Date: 2010-12-17 09:57:30 +0000 (Fri, 17 Dec 2010) Log Message: ----------- openldap: Update modulations to reflect change of GARVERSION to VERSION Modified Paths: -------------- csw/mgar/pkg/openldap/trunk/Makefile Modified: csw/mgar/pkg/openldap/trunk/Makefile =================================================================== --- csw/mgar/pkg/openldap/trunk/Makefile 2010-12-17 09:42:52 UTC (rev 11981) +++ csw/mgar/pkg/openldap/trunk/Makefile 2010-12-17 09:57:30 UTC (rev 11982) @@ -23,10 +23,10 @@ EXPANDVARS = cswopenldap EXPANDVARS += CSWoldap.postinstall -PATCHFILES_isa-sparcv8-garversion-2.4.23 = patch-oldap-2.4.16-ntlm.diff -PATCHFILES_isa-sparcv9-garversion-2.4.23 = patch-oldap-2.4.16-ntlm.diff -PATCHFILES_isa-i386-garversion-2.4.23 = patch-oldap-2.4.16-ntlm.diff -PATCHFILES_isa-amd64-garversion-2.4.23 = patch-oldap-2.4.16-ntlm.diff +PATCHFILES_isa-sparcv8-version-2.4.23 = patch-oldap-2.4.16-ntlm.diff +PATCHFILES_isa-sparcv9-version-2.4.23 = patch-oldap-2.4.16-ntlm.diff +PATCHFILES_isa-i386-version-2.4.23 = patch-oldap-2.4.16-ntlm.diff +PATCHFILES_isa-amd64-version-2.4.23 = patch-oldap-2.4.16-ntlm.diff PATCHFILES += patch-libtool-64bit.diff DISTFILES += patch-oldap-2.4.16-ntlm.diff @@ -52,7 +52,8 @@ SPKG_DESC_CSWoldapdevel = OpenLDAP development support SPKG_DESC_CSWoldaprt = OpenLDAP runtime libraries -RUNTIME_DEP_PKGS_CSWoldap = CSWbdb48 CSWlibnet CSWlibtoolrt +RUNTIME_DEP_PKGS_CSWoldap = CSWbdb48 CSWlibnet +RUNTIME_DEP_PKGS_CSWoldap += CSWlibltdl7 RUNTIME_DEP_PKGS_CSWoldap += CSWosslrt CSWsasl CSWtcpwrap CSWunixodbc RUNTIME_DEP_PKGS_CSWoldap += CSWlibicu CSWperl RUNTIME_DEP_PKGS_CSWoldap += CSWoldaprt @@ -68,15 +69,15 @@ EXTRA_DOCS = README.CSW $(PATCHFILES) openldaprc # This is old, stick to BerkeleyDB 4.4 -EXTRA_LIB_garversion-2.3.43 = $(prefix)/bdb44/lib -EXTRA_INC_garversion-2.3.43 = $(prefix)/bdb44/include +EXTRA_LIB_version-2.3.43 = $(prefix)/bdb44/lib +EXTRA_INC_version-2.3.43 = $(prefix)/bdb44/include # This is also used during EXPANDVARS bdbdir = $(prefix)/bdb48 -EXTRA_LIB_garversion-2.4.23 = $(bdbdir)/lib -EXTRA_INC_garversion-2.4.23 = $(bdbdir)/include -EXTRA_LIB = $(EXTRA_LIB_garversion-$(VERSION)) -EXTRA_INC = $(EXTRA_INC_garversion-$(VERSION)) +EXTRA_LIB_version-2.4.23 = $(bdbdir)/lib +EXTRA_INC_version-2.4.23 = $(bdbdir)/include +EXTRA_LIB = $(EXTRA_LIB_version-$(VERSION)) +EXTRA_INC = $(EXTRA_INC_version-$(VERSION)) # Not released yet. #EXTRA_LDFLAGS = -L$(libdir)/libnet-new @@ -131,24 +132,24 @@ SKIPTEST ?= 1 TEST_TARGET = check -MERGE_SCRIPTS_isa-default-garversion-2.3.43 = copy-only -MERGE_DIRS_isa-default-garversion-2.3.43 = $(libdir) -MERGE_SCRIPTS_isa-default64-garversion-2.3.43 = copy-relocated-only -MERGE_DIRS_isa-default64-garversion-2.3.43 = $(libdir) +MERGE_SCRIPTS_isa-default-version-2.3.43 = copy-only +MERGE_DIRS_isa-default-version-2.3.43 = $(libdir) +MERGE_SCRIPTS_isa-default64-version-2.3.43 = copy-relocated-only +MERGE_DIRS_isa-default64-version-2.3.43 = $(libdir) -MERGE_SCRIPTS_isa-default-garversion-2.4.23 = copy-all -MERGE_SCRIPTS_isa-default64-garversion-2.4.23 = copy-relocated-only -MERGE_DIRS_isa-default64-garversion-2.4.23 = $(bindir) $(sbindir) $(libexecdir) $(libdir) +MERGE_SCRIPTS_isa-default-version-2.4.23 = copy-all +MERGE_SCRIPTS_isa-default64-version-2.4.23 = copy-relocated-only +MERGE_DIRS_isa-default64-version-2.4.23 = $(bindir) $(sbindir) $(libexecdir) $(libdir) # Perl backend is built, although it has been told not to. EXTRA_PAX_ARGS = -s,.*/opt/csw/libexec/sparcv9/openldap/back_perl.*,, EXTRA_PAX_ARGS = -s,.*/opt/csw/libexec/amd64/openldap/back_perl.*,, # Make sure we do not use the 2.3 .so-links in any case -EXTRA_MERGE_EXCLUDE_FILES_isa-i386-garversion-2.3.43 = .*\.so -EXTRA_MERGE_EXCLUDE_FILES_isa-amd64-garversion-2.3.43 = .*\.so -EXTRA_MERGE_EXCLUDE_FILES_isa-sparcv8-garversion-2.3.43 = .*\.so -EXTRA_MERGE_EXCLUDE_FILES_isa-sparcv9-garversion-2.3.43 = .*\.so +EXTRA_MERGE_EXCLUDE_FILES_isa-i386-version-2.3.43 = .*\.so +EXTRA_MERGE_EXCLUDE_FILES_isa-amd64-version-2.3.43 = .*\.so +EXTRA_MERGE_EXCLUDE_FILES_isa-sparcv8-version-2.3.43 = .*\.so +EXTRA_MERGE_EXCLUDE_FILES_isa-sparcv9-version-2.3.43 = .*\.so PKGFILES_CSWoldapclient = $(bindir)/.* PKGFILES_CSWoldapclient += $(mandir)/man1/.* @@ -171,6 +172,27 @@ # Split libraries later CHECKPKG_OVERRIDES_CSWoldaprt += non-uniform-lib-versions-in-package +# These are all overrides because the new libnet is not in place yet. +CHECKPKG_OVERRIDES_CSWoldapclient += soname-not-found|libnet.so|is|needed|by|opt/csw/bin/ldapdelete +CHECKPKG_OVERRIDES_CSWoldapclient += soname-not-found|libnet.so|is|needed|by|opt/csw/bin/ldappasswd +CHECKPKG_OVERRIDES_CSWoldapclient += soname-not-found|libnet.so|is|needed|by|opt/csw/bin/ldapmodrdn +CHECKPKG_OVERRIDES_CSWoldapclient += soname-not-found|libnet.so|is|needed|by|opt/csw/bin/ldapmodify +CHECKPKG_OVERRIDES_CSWoldapclient += soname-not-found|libnet.so|is|needed|by|opt/csw/bin/ldapwhoami +CHECKPKG_OVERRIDES_CSWoldapclient += soname-not-found|libnet.so|is|needed|by|opt/csw/bin/ldapexop +CHECKPKG_OVERRIDES_CSWoldapclient += soname-not-found|libnet.so|is|needed|by|opt/csw/bin/ldapcompare +CHECKPKG_OVERRIDES_CSWoldapclient += soname-not-found|libnet.so|is|needed|by|opt/csw/bin/ldapsearch +CHECKPKG_OVERRIDES_CSWoldapclient += soname-not-found|libnet.so|is|needed|by|opt/csw/bin/ldapurl +CHECKPKG_OVERRIDES_CSWoldapclient += surplus-dependency|CSWlibnet +CHECKPKG_OVERRIDES_CSWoldaprt += soname-not-found|libnet.so|is|needed|by|opt/csw/lib/libldap_r-2.3.so.0.2.31 +CHECKPKG_OVERRIDES_CSWoldaprt += soname-not-found|libnet.so|is|needed|by|opt/csw/lib/liblber-2.4.so.2.5.6 +CHECKPKG_OVERRIDES_CSWoldaprt += soname-not-found|libnet.so|is|needed|by|opt/csw/lib/libldap-2.3.so.0.2.31 +CHECKPKG_OVERRIDES_CSWoldaprt += soname-not-found|libnet.so|is|needed|by|opt/csw/lib/libldap_r-2.4.so.2.5.6 +CHECKPKG_OVERRIDES_CSWoldaprt += soname-not-found|libnet.so|is|needed|by|opt/csw/lib/libldap-2.4.so.2.5.6 +CHECKPKG_OVERRIDES_CSWoldaprt += surplus-dependency|CSWlibnet +CHECKPKG_OVERRIDES_CSWoldap += soname-not-found|libnet.so|is|needed|by|opt/csw/libexec/slapd +CHECKPKG_OVERRIDES_CSWoldap += surplus-dependency|CSWlibnet + + include gar/category.mk CFLAGS := $(filter-out -I%,$(CFLAGS)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Fri Dec 17 11:54:59 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Fri, 17 Dec 2010 10:54:59 +0000 Subject: [csw-devel] SF.net SVN: gar:[11983] csw/mgar/gar/v2/lib/python/pkgdb.py Message-ID: Revision: 11983 http://gar.svn.sourceforge.net/gar/?rev=11983&view=rev Author: wahwah Date: 2010-12-17 10:54:59 +0000 (Fri, 17 Dec 2010) Log Message: ----------- pkgdb: show basename libfoo.so.1 support Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgdb.py Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-17 09:57:30 UTC (rev 11982) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-17 10:54:59 UTC (rev 11983) @@ -44,6 +44,7 @@ %prog show pkg [ ... ] %prog gen-html [ ... ] %prog pkg search + %prog show basename [options] Examples: @@ -294,6 +295,15 @@ help="Turn on debugging messages") parser.add_option("-t", "--pkg-review-template", dest="pkg_review_template", help="A Cheetah template used for package review reports.") + parser.add_option("-r", "--os-release", dest="osrel", + default="SunOS5.9", + help="E.g. SunOS5.9") + parser.add_option("-a", "--arch", dest="arch", + default="sparc", + help="'i386' or 'sparc'") + parser.add_option("-c", "--catalog-release", dest="catrel", + default="current", + help="E.g. current, unstable, testing, stable") options, args = parser.parse_args() if options.debug: logging.basicConfig(level=logging.DEBUG) @@ -429,6 +439,13 @@ ci = CatalogImporter(debug=options.debug) catrel, base_dir = args ci.SyncFromCatalogTree(catrel, base_dir) + elif (command, subcommand) == ('show', 'basename'): + db_catalog = checkpkg_lib.Catalog() + for arg in args: + pkgs_by_path = db_catalog.GetPathsAndPkgnamesByBasename( + arg, options.osrel, options.arch, options.catrel) + for file_path in pkgs_by_path: + print os.path.join(file_path, arg), ", ".join(pkgs_by_path[file_path]) else: raise UsageError("Command unrecognized: %s" % command) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Fri Dec 17 11:55:26 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Fri, 17 Dec 2010 10:55:26 +0000 Subject: [csw-devel] SF.net SVN: gar:[11984] csw/mgar/gar/v2/lib/python/README Message-ID: Revision: 11984 http://gar.svn.sourceforge.net/gar/?rev=11984&view=rev Author: wahwah Date: 2010-12-17 10:55:26 +0000 (Fri, 17 Dec 2010) Log Message: ----------- checkpkg: Add a few ideas for new checks Modified Paths: -------------- csw/mgar/gar/v2/lib/python/README Modified: csw/mgar/gar/v2/lib/python/README =================================================================== --- csw/mgar/gar/v2/lib/python/README 2010-12-17 10:54:59 UTC (rev 11983) +++ csw/mgar/gar/v2/lib/python/README 2010-12-17 10:55:26 UTC (rev 11984) @@ -2,6 +2,17 @@ ==Checkpkg== +Checks to implement: + - foo_bar != CSWfoo-bar -> error + - *dev(el)? -> error, suggest *-devel + - *-?rt -> error, suggest specific library packages + - empty package without 'transitional' in the name --> error, suggest + 'transitional' + - CSWpmfoo --> error, suggest CSWpm-foo + - Dependency on a transitional package --> error + ('transitional', 'stub', 'legacy') + + Development plan for checkpkg: - Generalize dependency checking by adding NeedFile(file_list, reason) to error_mgr. It's possible to need one of the listed files only, so files are This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Dec 17 17:06:59 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 17 Dec 2010 16:06:59 +0000 Subject: [csw-devel] SF.net SVN: gar:[11986] csw/mgar/pkg Message-ID: Revision: 11986 http://gar.svn.sourceforge.net/gar/?rev=11986&view=rev Author: dmichelsen Date: 2010-12-17 16:06:59 +0000 (Fri, 17 Dec 2010) Log Message: ----------- libdbi: Initial commit Added Paths: ----------- csw/mgar/pkg/libdbi/ csw/mgar/pkg/libdbi/branches/ csw/mgar/pkg/libdbi/tags/ csw/mgar/pkg/libdbi/trunk/ csw/mgar/pkg/libdbi/trunk/Makefile csw/mgar/pkg/libdbi/trunk/checksums csw/mgar/pkg/libdbi/trunk/files/ Property changes on: csw/mgar/pkg/libdbi/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/libdbi/trunk/Makefile =================================================================== --- csw/mgar/pkg/libdbi/trunk/Makefile (rev 0) +++ csw/mgar/pkg/libdbi/trunk/Makefile 2010-12-17 16:06:59 UTC (rev 11986) @@ -0,0 +1,48 @@ +# $Id$ +NAME = libdbi +VERSION = 0.8.4 +CATEGORIES = lib + +DESCRIPTION = A database-independent abstraction layer +define BLURB + libdbi implements a database-independent abstraction layer in C, similar to the DBI/DBD layer in Perl. + Writing one generic set of code, programmers can leverage the power of multiple databases and multiple + simultaneous database connections by using this framework. +endef + +MASTER_SITES = $(SF_MIRROR) +DISTFILES = $(DISTNAME).tar.gz + +# File name regex to get notifications about upstream software releases +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz + +PACKAGES = CSWlibdbi1 CSWlibdbi-devel + +CATALOGNAME_CSWlibdbi1 = libdbi1 +CATALOGNAME_CSWlibdbi-devel = libdbi_devel + +SPKG_DESC_CSWlibdbi1 = $(DESCRIPTION) containing libdbi.so.1 +SPKG_DESC_CSWlibdbi-devel = Development files for libdbi + +RUNTIME_DEP_PKGS_CSWlibdbi-devel = CSWlibdbi1 + +BUILD64 = 1 +CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += --docdir=$(docdir)/libdbi + +# Hardcoded CFLAGS are 'xO4 -fast -w -fsimple -native -xcg92' +# We must override them to at least add 32/64 functionality. +# We must not use -fast and -native as it provides v8+ binaries while we are stuck at pure v8. +# -xcg92 is obsoleted. +EXTRA_CFLAGS = -w -fsimple +BUILD_OVERRIDE_VARS = CFLAGS +BUILD_OVERRIDE_VAR_CFLAGS = $(CFLAGS) + +TEST_TARGET = check + +INSTALL_OVERRIDE_VARS = docdir +INSTALL_OVERRIDE_VAR_docdir = $(docdir)/libdbi-devel + +PKGFILES_CSWlibdbi1 = $(PKGFILES_RT) + +include gar/category.mk Property changes on: csw/mgar/pkg/libdbi/trunk/Makefile ___________________________________________________________________ Added: svn:keywords + Id Added: csw/mgar/pkg/libdbi/trunk/checksums =================================================================== --- csw/mgar/pkg/libdbi/trunk/checksums (rev 0) +++ csw/mgar/pkg/libdbi/trunk/checksums 2010-12-17 16:06:59 UTC (rev 11986) @@ -0,0 +1 @@ +c5f15407ef7b07ba854cd8c9b15b88ff libdbi-0.8.4.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Dec 17 17:06:56 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 17 Dec 2010 16:06:56 +0000 Subject: [csw-devel] SF.net SVN: gar:[11985] csw/mgar/pkg/rrdtool/trunk Message-ID: Revision: 11985 http://gar.svn.sourceforge.net/gar/?rev=11985&view=rev Author: dmichelsen Date: 2010-12-17 16:06:56 +0000 (Fri, 17 Dec 2010) Log Message: ----------- rrdtool: Lots of cleanup towards package split, some minor tweaks missing Modified Paths: -------------- csw/mgar/pkg/rrdtool/trunk/Makefile csw/mgar/pkg/rrdtool/trunk/checksums csw/mgar/pkg/rrdtool/trunk/gar Removed Paths: ------------- csw/mgar/pkg/rrdtool/trunk/files/0001-Fix-isinf.patch csw/mgar/pkg/rrdtool/trunk/files/patch-64-Makefile.in csw/mgar/pkg/rrdtool/trunk/files/patch-64-bindings-Makefile.in csw/mgar/pkg/rrdtool/trunk/files/patch-src-rrd_open.c csw/mgar/pkg/rrdtool/trunk/files/s_round.c csw/mgar/pkg/rrdtool/trunk/files/s_round.h Modified: csw/mgar/pkg/rrdtool/trunk/Makefile =================================================================== --- csw/mgar/pkg/rrdtool/trunk/Makefile 2010-12-17 10:55:26 UTC (rev 11984) +++ csw/mgar/pkg/rrdtool/trunk/Makefile 2010-12-17 16:06:56 UTC (rev 11985) @@ -1,5 +1,5 @@ NAME = rrdtool -VERSION = 1.4.3 +VERSION = 1.4.4 CATEGORIES = utils DESCRIPTION = Time-series data logging and graphing @@ -12,41 +12,53 @@ MASTER_SITES = http://oss.oetiker.ch/$(NAME)/pub/ DISTFILES = $(NAME)-$(VERSION).tar.gz -PATCHFILES += patch-src-Makefile.in -PATCHFILES += patch-src-rrd_open.c -PATCHFILES += patch-bindings-Makefile.in +# PATCHFILES += patch-src-Makefile.in + +# PATCHFILES += patch-bindings-Makefile.in + +# Use patch until this is fixed: +# http://oss.oetiker.ch/rrdtool-trac/ticket/284 PATCHFILES += patch-bindings-ruby-extconf.rb + +# Make sure to link against libperl.so to make shared libraries self-contained. PATCHFILES += patch-bindings-perl-piped-Makefile.PL PATCHFILES += patch-bindings-perl-shared-Makefile.PL -PATCHFILES += 0001-Fix-isinf.patch - # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -# PACKAGES = CSWrrd CSWrrdrt CSWpmrrd CSWpy-rrdtool CSWrbrrd -PACKAGES = CSWrrd +PACKAGES = CSWrrd CSWrrdtool CSWrrdtool-devel CSWlibrrd4 CSWpm-rrdtool CSWpy-rrdtool CSWrb-rrdtool -CATALOGNAME_CSWrrd = rrdtool -CATALOGNAME_CSWrrdrt = rrdtool_rt -CATALOGNAME_CSWpmrrd = pm_rrd +CATALOGNAME_CSWrrd = rrd +CATALOGNAME_CSWrrdtool = rrdtool +CATALOGNAME_CSWrrdtool-devel = rrdtool_devel +CATALOGNAME_CSWlibrrd4 = librrd4 +CATALOGNAME_CSWpm-rrdtool = pm_rrdtool CATALOGNAME_CSWpy-rrdtool = py_rrdtool -CATALOGNAME_CSWrbrrd = rb_rrd +CATALOGNAME_CSWrb-rrdtool = rb_rrdtool -SPKG_DESC_CSWrrd = $(DESCRIPTION) -SPKG_DESC_CSWrrdrt = Runtime libraries for RRDtool -SPKG_DESC_CSWpmrrd = RRDs: Access RRDtool as a shared module (part of RRDtool) +SPKG_DESC_CSWrrd = Stub package as contents now moved to CSWrrdtool +SPKG_DESC_CSWrrdtool = $(DESCRIPTION) +SPKG_DESC_CSWrrdtool-devel = Development Files for RRDTool +SPKG_DESC_CSWlibrrd4 = Runtime libraries for RRDtool providing librrd_th.so.4 +SPKG_DESC_CSWpm-rrdtool = RRDs: Access RRDtool as a shared module (part of RRDtool) SPKG_DESC_CSWpy-rrdtool = Python egg for RRD access (part of RRDtool) -SPKG_DESC_CSWrbrrd = Ruby binding for RRD access (part of RRDtool) +SPKG_DESC_CSWrb-rrdtool = Ruby binding for RRD access (part of RRDtool) -RUNTIME_DEP_PKGS_CSWrrd = CSWglib2 CSWpango CSWggettextrt CSWlibxml2 CSWlibcairo -# RUNTIME_DEP_PKGS_CSWrrd += CSWrrdrt -RUNTIME_DEP_PKGS_CSWrrdrt += CSWggettextrt CSWglib2 CSWlibcairo CSWpango CSWlibxml2 -RUNTIME_DEP_PKGS_CSWpmrrd = CSWperl CSWrrdrt -RUNTIME_DEP_PKGS_CSWpy-rrdtool = CSWpython CSWrrdrt -RUNTIME_DEP_PKGS_CSWrbrrd = CSWruby CSWrrdrt +RUNTIME_DEP_PKGS_CSWrrd = CSWrrdtool CSWpm-rrdtool CSWpy-rrdtool CSWrb-rrdtool +RUNTIME_DEP_PKGS_CSWrrdtool = CSWglib2 CSWpango CSWggettextrt CSWlibxml2 CSWlibcairo +RUNTIME_DEP_PKGS_CSWrrdtool += CSWlibrrd4 +RUNTIME_DEP_PKGS_CSWrrdtool-devel = CSWlibrrd4 +RUNTIME_DEP_PKGS_CSWlibrrd4 += CSWggettextrt CSWglib2 CSWlibcairo CSWpango CSWlibxml2 +RUNTIME_DEP_PKGS_CSWpm-rrdtool += CSWperl +RUNTIME_DEP_PKGS_CSWpm-rrdtool += CSWlibrrd4 +RUNTIME_DEP_PKGS_CSWpy-rrdtool += CSWlibpython2-6-1-0 +RUNTIME_DEP_PKGS_CSWpy-rrdtool += CSWlibrrd4 +RUNTIME_DEP_PKGS_CSWpy-rrdtool += CSWggettextrt +RUNTIME_DEP_PKGS_CSWrb-rrdtool += CSWlibruby1 +RUNTIME_DEP_PKGS_CSWrb-rrdtool += CSWlibrrd4 -BUILD_DEP_PKGS += $(RUNTIME_DEP_PKGS_CSWrrdrt) +BUILD_DEP_PKGS += $(RUNTIME_DEP_PKGS_CSWlibrrd4) BUILD_DEP_PKGS += CSWpangodevel CSWlibcairodevel CSWglib2devel BUILD_DEP_PKGS += CSWperl BUILD_DEP_PKGS += CSWpython-devel @@ -55,6 +67,8 @@ EXTRA_INC = $(prefix)/include/cairo EXTRA_INC += $(prefix)/include/libxml2 +EXTRA_LINKER_FLAGS = -lintl + BUILD64 = 1 NOISAEXEC = 1 STRIP_LIBTOOL = 1 @@ -75,31 +89,34 @@ EXTRA_MERGE_EXCLUDE_FILES = .*~ .*perllocal\.pod .*/\.packlist EXTRA_PAX_ARGS += -s ',^\.$(docdir)/$(NAME)-$(VERSION),.$(BUILD_PREFIX)/share/doc/$(CATALOGNAME),' -PKGFILES_CSWrrdrt = $(PKGFILES_RT) -PKGFILES_CSWpmrrd = $(libdir)/perl/.* $(sharedstatedir)/perl/.* .*\.3perl +ARCHALL_CSWrrd = 1 + +PKGFILES_CSWrrd = NOFILES +PKGFILES_CSWrrdtool-devel = $(PKGFILES_DEVEL) +PKGFILES_CSWlibrrd4 = $(PKGFILES_RT) +PKGFILES_CSWpm-rrdtool += $(libdir)/perl/.* +PKGFILES_CSWpm-rrdtool += $(sharedstatedir)/perl/.* +PKGFILES_CSWpm-rrdtool += .*\.3perl PKGFILES_CSWpy-rrdtool = $(libdir)/python/.* -PKGFILES_CSWrbrrd = $(libdir)/ruby/.* +PKGFILES_CSWrb-rrdtool = $(libdir)/ruby/.* -CHECKPKG_OVERRIDES_CSWrrd += soname-not-found +# Make legacy package depend on all new ones +CHECKPKG_OVERRIDES_CSWrrd += surplus-dependency|CSWpm-rrdtool +CHECKPKG_OVERRIDES_CSWrrd += surplus-dependency|CSWpy-rrdtool +CHECKPKG_OVERRIDES_CSWrrd += surplus-dependency|CSWrb-rrdtool +CHECKPKG_OVERRIDES_CSWrrd += surplus-dependency|CSWrrdtool -CHECKPKG_OVERRIDES_CSWrrd += missing-dependency|CSWperl +# These is an example which requires Perl +CHECKPKG_OVERRIDES_CSWrrdtool += missing-dependency|CSWperl -CHECKPKG_OVERRIDES_CSWrbrrd += bad-rpath-entry -CHECKPKG_OVERRIDES_CSWrbrrd += bad-rpath-entry +# TBD: +CHECKPKG_OVERRIDES_CSWrb-rrdtool += binary-architecture-does-not-match-placement|file=opt/csw/lib/ruby/site_ruby/1.8/sparc-solaris2.9/RRD.so|arch_id=18|arch_name=sparcv8+ +CHECKPKG_OVERRIDES_CSWrb-rrdtool += bad-rpath-entry|/home/dam/mgar/pkg/rrdtool/trunk/work/solaris9-sparc/install-isa-sparcv8/opt/csw/lib|opt/csw/lib/ruby/site_ruby/1.8/sparc-solaris2.9/RRD.so -# Take these out when the package are split again -CHECKPKG_OVERRIDES_CSWrrd += binary-architecture-does-not-match-placement|file=opt/csw/lib/ruby/site_ruby/1.8/sparc-solaris2.8/RRD.so|arch_id=18|arch_name=sparcv8+ -CHECKPKG_OVERRIDES_CSWrrd += pkgname-does-not-start-with-CSWpy- -CHECKPKG_OVERRIDES_CSWrrd += catalogname-does-not-start-with-py_ -CHECKPKG_OVERRIDES_CSWrrd += bad-rpath-entry|/home/dam/mgar/pkg/rrdtool/branches/x11-reloaded/work/solaris9-sparc/install-isa-sparcv8/opt/csw/lib|opt/csw/lib/ruby/site_ruby/1.8/sparc-solaris2.8/RRD.so -CHECKPKG_OVERRIDES_CSWrrd += bad-rpath-entry|/home/dam/mgar/pkg/rrdtool/branches/x11-reloaded/work/solaris9-i386/install-isa-i386/opt/csw/lib|opt/csw/lib/ruby/site_ruby/1.8/i386-solaris2.8/RRD.so -CHECKPKG_OVERRIDES_CSWrrd += missing-dependency|CSWruby -CHECKPKG_OVERRIDES_CSWrrd += missing-dependency|CSWpython - include gar/category.mk -pre-build-modulated: - echo " ==> Adding math function round()" - cp $(FILEDIR)/s_round.c $(WORKSRC)/src - cp $(FILEDIR)/s_round.h $(WORKSRC)/src - @$(MAKECOOKIE) +#pre-build-modulated: +# echo " ==> Adding math function round()" +# cp $(FILEDIR)/s_round.c $(WORKSRC)/src +# cp $(FILEDIR)/s_round.h $(WORKSRC)/src +# @$(MAKECOOKIE) Modified: csw/mgar/pkg/rrdtool/trunk/checksums =================================================================== --- csw/mgar/pkg/rrdtool/trunk/checksums 2010-12-17 10:55:26 UTC (rev 11984) +++ csw/mgar/pkg/rrdtool/trunk/checksums 2010-12-17 16:06:56 UTC (rev 11985) @@ -1,8 +1 @@ -04c50cb4ab2c34aebf0413130776bfdd 0001-Fix-isinf.patch -c6bc2f9c3d88e0488f0332a9d288dc39 patch-bindings-Makefile.in -0d068a4648f3a52c79c00374fa0ef486 patch-bindings-perl-piped-Makefile.PL -4fd31144a5e2799db7440d97430d3ab6 patch-bindings-perl-shared-Makefile.PL -072482090287b462c8c092b2ead132da patch-bindings-ruby-extconf.rb -20e58c7facf2687037288c157c32df1a patch-src-Makefile.in -47709778545eec2e8c5c3b38f9c94fcd patch-src-rrd_open.c -492cf946c72f85987238faa2c311b7bb rrdtool-1.4.3.tar.gz +93ad2fc2e9ddcd7d99c611fe30284a54 rrdtool-1.4.4.tar.gz Deleted: csw/mgar/pkg/rrdtool/trunk/files/0001-Fix-isinf.patch =================================================================== --- csw/mgar/pkg/rrdtool/trunk/files/0001-Fix-isinf.patch 2010-12-17 10:55:26 UTC (rev 11984) +++ csw/mgar/pkg/rrdtool/trunk/files/0001-Fix-isinf.patch 2010-12-17 16:06:56 UTC (rev 11985) @@ -1,26 +0,0 @@ -From b8063983295ef5629a106b61c735a90edd842412 Mon Sep 17 00:00:00 2001 -From: Dagobert Michelsen -Date: Fri, 25 Jun 2010 16:00:27 +0200 -Subject: [PATCH] Fix isinf - ---- - src/rrd_config_bottom.h | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/src/rrd_config_bottom.h b/src/rrd_config_bottom.h -index a569197..0a05a40 100644 ---- a/src/rrd_config_bottom.h -+++ b/src/rrd_config_bottom.h -@@ -175,7 +175,8 @@ char *strchr (), *strrchr (); - # ifdef isinf - # undef isinf - # endif --# define isinf(a) (!!(fpclass(a) & (FP_SNAN|FP_QNAN))) -+/* define isinf(a) (!!(fpclass(a) & (FP_SNAN|FP_QNAN))) */ -+#define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF) - - #endif - --- -1.7.1 - Deleted: csw/mgar/pkg/rrdtool/trunk/files/patch-64-Makefile.in =================================================================== --- csw/mgar/pkg/rrdtool/trunk/files/patch-64-Makefile.in 2010-12-17 10:55:26 UTC (rev 11984) +++ csw/mgar/pkg/rrdtool/trunk/files/patch-64-Makefile.in 2010-12-17 16:06:56 UTC (rev 11985) @@ -1,75 +0,0 @@ ---- rrdtool-1.4.2.orig/Makefile.in 2009-11-15 12:55:05.000000000 +0100 -+++ rrdtool-1.4.2/Makefile.in 2010-02-26 19:19:42.923524958 +0100 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.11 from Makefile.am. -+# Makefile.in generated by automake 1.11.1 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -222,6 +222,7 @@ - PACKAGE_NAME = @PACKAGE_NAME@ - PACKAGE_STRING = @PACKAGE_STRING@ - PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_URL = @PACKAGE_URL@ - PACKAGE_VERSION = @PACKAGE_VERSION@ - PATH_SEPARATOR = @PATH_SEPARATOR@ - PERL = @PERL@ -@@ -427,7 +428,7 @@ - # (which will cause the Makefiles to be regenerated when you run `make'); - # (2) otherwise, pass the desired values on the `make' command line. - $(RECURSIVE_TARGETS): -- @failcom='exit 1'; \ -+ @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ -@@ -452,7 +453,7 @@ - fi; test -z "$$fail" - - $(RECURSIVE_CLEAN_TARGETS): -- @failcom='exit 1'; \ -+ @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ -@@ -616,7 +617,8 @@ - fi; \ - done - -test -n "$(am__skip_mode_fix)" \ -- || find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ -+ || find "$(distdir)" -type d ! -perm -755 \ -+ -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ -@@ -660,17 +662,17 @@ - distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ -- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ -+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ -- bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ -+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ -- unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ -+ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ -- GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ -+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac -@@ -867,7 +869,7 @@ - - # $(RSYNC) CHANGES archive/$(PACKAGE)-$(VERSION).tar.gz tobi at ipn.caida.org:/ipn/web/Tools/RRDtool/pub/ - --site-perl-inst: site-perl-install -+site-perl-inst: echo skipping 64bit perl module install - - site-perl-install: all bindings/perl-piped/Makefile bindings/perl-shared/Makefile - cd bindings/perl-piped && $(MAKE) install Deleted: csw/mgar/pkg/rrdtool/trunk/files/patch-64-bindings-Makefile.in =================================================================== --- csw/mgar/pkg/rrdtool/trunk/files/patch-64-bindings-Makefile.in 2010-12-17 10:55:26 UTC (rev 11984) +++ csw/mgar/pkg/rrdtool/trunk/files/patch-64-bindings-Makefile.in 2010-12-17 16:06:56 UTC (rev 11985) @@ -1,43 +0,0 @@ ---- rrdtool-1.4.2.orig/bindings/Makefile.in 2009-11-15 12:55:04.000000000 +0100 -+++ rrdtool-1.4.2/bindings/Makefile.in 2010-02-26 19:19:41.514583447 +0100 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.11 from Makefile.am. -+# Makefile.in generated by automake 1.11.1 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -205,6 +205,7 @@ - PACKAGE_NAME = @PACKAGE_NAME@ - PACKAGE_STRING = @PACKAGE_STRING@ - PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_URL = @PACKAGE_URL@ - PACKAGE_VERSION = @PACKAGE_VERSION@ - PATH_SEPARATOR = @PATH_SEPARATOR@ - PERL = @PERL@ -@@ -374,7 +375,7 @@ - # (which will cause the Makefiles to be regenerated when you run `make'); - # (2) otherwise, pass the desired values on the `make' command line. - $(RECURSIVE_TARGETS): -- @failcom='exit 1'; \ -+ @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ -@@ -399,7 +400,7 @@ - fi; test -z "$$fail" - - $(RECURSIVE_CLEAN_TARGETS): -- @failcom='exit 1'; \ -+ @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ -@@ -676,7 +677,7 @@ - .PHONY: python ruby - - # add the following to the all target --all-local: @COMP_PERL@ @COMP_RUBY@ @COMP_PYTHON@ -+all-local: @COMP_RUBY@ - - install-data-local: - $(AM_V_GEN)test -f perl-piped/Makefile && cd perl-piped && $(MAKE) install || true Deleted: csw/mgar/pkg/rrdtool/trunk/files/patch-src-rrd_open.c =================================================================== --- csw/mgar/pkg/rrdtool/trunk/files/patch-src-rrd_open.c 2010-12-17 10:55:26 UTC (rev 11984) +++ csw/mgar/pkg/rrdtool/trunk/files/patch-src-rrd_open.c 2010-12-17 16:06:56 UTC (rev 11985) @@ -1,37 +0,0 @@ ---- rrdtool-1.4.2.orig/src/rrd_open.c 2009-11-15 12:54:23.000000000 +0100 -+++ rrdtool-1.4.2/src/rrd_open.c 2010-02-26 15:18:37.546048288 +0100 -@@ -683,7 +683,7 @@ - /* this is a leftover from the old days, it serves no purpose - and is therefore turned into a no-op */ - void rrd_flush( -- rrd_file_t *rrd_file __attribute__((unused))) -+ rrd_file_t *rrd_file) - { - } - -@@ -745,10 +745,10 @@ - * aligning RRAs within stripes, or other performance enhancements - */ - void rrd_notify_row( -- rrd_file_t *rrd_file __attribute__((unused)), -- int rra_idx __attribute__((unused)), -- unsigned long rra_row __attribute__((unused)), -- time_t rra_time __attribute__((unused))) -+ rrd_file_t *rrd_file, -+ int rra_idx, -+ unsigned long rra_row, -+ time_t rra_time) - { - } - -@@ -760,8 +760,8 @@ - * don't change to a new disk block at the same time - */ - unsigned long rrd_select_initial_row( -- rrd_file_t *rrd_file __attribute__((unused)), -- int rra_idx __attribute__((unused)), -+ rrd_file_t *rrd_file, -+ int rra_idx, - rra_def_t *rra - ) - { Deleted: csw/mgar/pkg/rrdtool/trunk/files/s_round.c =================================================================== --- csw/mgar/pkg/rrdtool/trunk/files/s_round.c 2010-12-17 10:55:26 UTC (rev 11984) +++ csw/mgar/pkg/rrdtool/trunk/files/s_round.c 2010-12-17 16:06:56 UTC (rev 11985) @@ -1,46 +0,0 @@ -/*- - * Copyright (c) 2003, Steven G. Kargl - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice unmodified, this list of conditions, and the following - * disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include "s_round.h" - -double -round(double x) -{ - double t; - - if (x >= 0.0) { - t = floor(x); - if (t - x <= -0.5) - t += 1.0; - return (t); - } else { - t = floor(-x); - if (t + x <= -0.5) - t += 1.0; - return (-t); - } -} Deleted: csw/mgar/pkg/rrdtool/trunk/files/s_round.h =================================================================== --- csw/mgar/pkg/rrdtool/trunk/files/s_round.h 2010-12-17 10:55:26 UTC (rev 11984) +++ csw/mgar/pkg/rrdtool/trunk/files/s_round.h 2010-12-17 16:06:56 UTC (rev 11985) @@ -1,27 +0,0 @@ -/*- - * Copyright (c) 2003, Steven G. Kargl - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice unmodified, this list of conditions, and the following - * disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -double round(double); Modified: csw/mgar/pkg/rrdtool/trunk/gar =================================================================== --- csw/mgar/pkg/rrdtool/trunk/gar 2010-12-17 10:55:26 UTC (rev 11984) +++ csw/mgar/pkg/rrdtool/trunk/gar 2010-12-17 16:06:56 UTC (rev 11985) @@ -1 +1 @@ -link ../../../../gar/v2 \ No newline at end of file +link ../../../gar/v2 \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Dec 17 17:54:13 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 17 Dec 2010 16:54:13 +0000 Subject: [csw-devel] SF.net SVN: gar:[11987] csw/mgar/pkg Message-ID: Revision: 11987 http://gar.svn.sourceforge.net/gar/?rev=11987&view=rev Author: dmichelsen Date: 2010-12-17 16:54:13 +0000 (Fri, 17 Dec 2010) Log Message: ----------- libdbi-drivers: Initial commit, wait for release of libdbi as prerequisite for further work Added Paths: ----------- csw/mgar/pkg/libdbi-drivers/ csw/mgar/pkg/libdbi-drivers/branches/ csw/mgar/pkg/libdbi-drivers/tags/ csw/mgar/pkg/libdbi-drivers/trunk/ csw/mgar/pkg/libdbi-drivers/trunk/Makefile csw/mgar/pkg/libdbi-drivers/trunk/checksums csw/mgar/pkg/libdbi-drivers/trunk/files/ Property changes on: csw/mgar/pkg/libdbi-drivers/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/libdbi-drivers/trunk/Makefile =================================================================== --- csw/mgar/pkg/libdbi-drivers/trunk/Makefile (rev 0) +++ csw/mgar/pkg/libdbi-drivers/trunk/Makefile 2010-12-17 16:54:13 UTC (rev 11987) @@ -0,0 +1,19 @@ +# $Id$ +NAME = libdbi-drivers +VERSION = 0.8.3 +CATEGORIES = lib + +DESCRIPTION = Drivers for the libdbi database abstraction layer +define BLURB +endef + +MASTER_SITES = $(SF_MIRROR) +DISTFILES = $(DISTNAME).tar.gz + +# File name regex to get notifications about upstream software releases +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz + +BUILD64 = 1 +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk Property changes on: csw/mgar/pkg/libdbi-drivers/trunk/Makefile ___________________________________________________________________ Added: svn:keywords + Id Added: csw/mgar/pkg/libdbi-drivers/trunk/checksums =================================================================== --- csw/mgar/pkg/libdbi-drivers/trunk/checksums (rev 0) +++ csw/mgar/pkg/libdbi-drivers/trunk/checksums 2010-12-17 16:54:13 UTC (rev 11987) @@ -0,0 +1 @@ +7dce44bbda0c85eee94977b19c50831e libdbi-drivers-0.8.3.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Fri Dec 17 20:49:21 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Fri, 17 Dec 2010 19:49:21 +0000 Subject: [csw-devel] SF.net SVN: gar:[11988] csw/mgar/pkg/boost/trunk/Makefile Message-ID: Revision: 11988 http://gar.svn.sourceforge.net/gar/?rev=11988&view=rev Author: wahwah Date: 2010-12-17 19:49:20 +0000 (Fri, 17 Dec 2010) Log Message: ----------- boost: Updated bjam bootstrapping, added a reference to a bug Modified Paths: -------------- csw/mgar/pkg/boost/trunk/Makefile Modified: csw/mgar/pkg/boost/trunk/Makefile =================================================================== --- csw/mgar/pkg/boost/trunk/Makefile 2010-12-17 16:54:13 UTC (rev 11987) +++ csw/mgar/pkg/boost/trunk/Makefile 2010-12-17 19:49:20 UTC (rev 11988) @@ -21,24 +21,29 @@ DISTNAME = $(NAME)_$(DISTVERSION) DISTFILES = $(DISTNAME).tar.bz2 +# Known problems: +# https://svn.boost.org/trac/boost/ticket/4757 +# Proposed fix: +# https://svn.boost.org/trac/boost/changeset/66651 + # We define upstream file regex so we can be notifed of new upstream software release UPSTREAM_MASTER_SITES = $(SF_PROJECT_SHOWFILE)=7586 UPSTREAM_USE_SF = 1 UFILES_REGEX = (\d+(?:\.\d+)*) # GARCOMPILER = GNU -TOOLSET = sunpro +TOOLSET = sun COMPILER_SUFFIX_PKG = COMPILER_SUFFIX_CAT = PACKAGES += CSWboost$(COMPILER_SUFFIX_PKG) -CATALOGNAME_CSWboost$(COMPILER_SUFFIX_PKG) += boost +CATALOGNAME_CSWboost$(COMPILER_SUFFIX_PKG) += boost$(COMPILER_SUFFIX_CAT) SPKG_DESC_CSWboost$(COMPILER_SUFFIX_PKG) = Boost libraries # The boost build system is hard to harness. CHECKPKG_OVERRIDES_CSWboost$(COMPILER_SUFFIX_PKG) += bad-rpath-entry PACKAGES += CSWboost$(COMPILER_SUFFIX_PKG)devel -CATALOGNAME_CSWboost$(COMPILER_SUFFIX_PKG)devel = boost_devel +CATALOGNAME_CSWboost$(COMPILER_SUFFIX_PKG)devel = boost$(COMPILER_SUFFIX_CAT)_devel SPKG_DESC_CSWboost$(COMPILER_SUFFIX_PKG)devel = Boost libraries, development files PKGFILES_CSWboost$(COMPILER_SUFFIX_PKG)devel = $(PKGFILES_DEVEL) @@ -52,9 +57,10 @@ LICENSE = LICENSE_1_0.txt BUILD_DEP_PKGS += CSWstar +BUILD_DEP_PKGS += CSWboost-jam -CONFIGURE_SCRIPTS = -BUILD_SCRIPTS = bjam +CONFIGURE_SCRIPTS = boost +BUILD_SCRIPTS = boost INSTALL_SCRIPTS = bjam BUILD_ARGS += toolset=$(TOOLSET) @@ -65,6 +71,8 @@ BUILD_ARGS += linkflags="$(LDFLAGS) $(LD_OPTIONS)" # Stop on the first error BUILD_ARGS += -q +# Display commands as you run them, I want to know what you are doing there +BUILD_ARGS += -d+2 TEST_SCRIPTS = @@ -91,25 +99,20 @@ /opt/csw/bin/star -bz -x -C $(EXTRACTDIR) -f $(DOWNLOADDIR)/$* @$(MAKECOOKIE) -pre-configure-modulated: - ( cd $(WORKSRC)/tools/jam/src && \ - ./build.sh $(TOOLSET) && \ - mkdir -p $(DESTDIR)$(bindir) && \ - cp bin.$(JAMDIR)/bjam $(DESTDIR)$(bindir) ) +configure-boost: + cd $(WORKSRC) && ./bootstrap.sh @$(MAKECOOKIE) -build-bjam: +build-boost: cd $(WORKSRC) && \ - $(DESTDIR)$(bindir)/bjam \ - -d+2 \ + ./bjam \ $(BJAM_PARALLELMFLAGS) \ $(BUILD_ARGS) @$(MAKECOOKIE) install-bjam: cd $(WORKSRC) && \ - $(DESTDIR)$(bindir)/bjam \ - -d+2 \ + ./bjam \ $(BJAM_PARALLELMFLAGS) \ $(BUILD_ARGS) \ install This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Fri Dec 17 21:06:41 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Fri, 17 Dec 2010 20:06:41 +0000 Subject: [csw-devel] SF.net SVN: gar:[11989] csw/mgar/gar/v2/bin/update-commondirs Message-ID: Revision: 11989 http://gar.svn.sourceforge.net/gar/?rev=11989&view=rev Author: bdwalton Date: 2010-12-17 20:06:41 +0000 (Fri, 17 Dec 2010) Log Message: ----------- gar/v2: update the update-commondirs to reflect current version of CSWcommon Modified Paths: -------------- csw/mgar/gar/v2/bin/update-commondirs Modified: csw/mgar/gar/v2/bin/update-commondirs =================================================================== --- csw/mgar/gar/v2/bin/update-commondirs 2010-12-17 19:49:20 UTC (rev 11988) +++ csw/mgar/gar/v2/bin/update-commondirs 2010-12-17 20:06:41 UTC (rev 11989) @@ -19,7 +19,7 @@ mkdir $TMPDIR ( cd $TMPDIR - wget http://mirror.opencsw.org/opencsw/current/$1/5.8/common-1.4.7,REV=2009.09.20-SunOS5.8-$1-CSW.pkg + wget http://mirror.opencsw.org/opencsw/current/$1/5.9/common-1.5,REV=2010.12.11-SunOS5.8-$1-CSW.pkg cat common-* | pkgtrans /dev/fd/0 $TMPDIR all ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Fri Dec 17 21:22:16 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Fri, 17 Dec 2010 20:22:16 +0000 Subject: [csw-devel] SF.net SVN: gar:[11990] csw/mgar/gar/v2/etc Message-ID: Revision: 11990 http://gar.svn.sourceforge.net/gar/?rev=11990&view=rev Author: bdwalton Date: 2010-12-17 20:22:15 +0000 (Fri, 17 Dec 2010) Log Message: ----------- gar/v2: update commondirs to reflect the removed LC_TIME dirs in CSWcommon Modified Paths: -------------- csw/mgar/gar/v2/etc/commondirs-i386 csw/mgar/gar/v2/etc/commondirs-sparc Modified: csw/mgar/gar/v2/etc/commondirs-i386 =================================================================== --- csw/mgar/gar/v2/etc/commondirs-i386 2010-12-17 20:06:41 UTC (rev 11989) +++ csw/mgar/gar/v2/etc/commondirs-i386 2010-12-17 20:22:15 UTC (rev 11990) @@ -42,28 +42,22 @@ /opt/csw/share/locale/be/LC_MESSAGES /opt/csw/share/locale/bg /opt/csw/share/locale/bg/LC_MESSAGES -/opt/csw/share/locale/bg/LC_TIME /opt/csw/share/locale/ca /opt/csw/share/locale/ca/LC_MESSAGES /opt/csw/share/locale/cs /opt/csw/share/locale/cs/LC_MESSAGES -/opt/csw/share/locale/cs/LC_TIME /opt/csw/share/locale/da /opt/csw/share/locale/da/LC_MESSAGES -/opt/csw/share/locale/da/LC_TIME /opt/csw/share/locale/de /opt/csw/share/locale/de/LC_MESSAGES -/opt/csw/share/locale/de/LC_TIME /opt/csw/share/locale/el /opt/csw/share/locale/el/LC_MESSAGES -/opt/csw/share/locale/el/LC_TIME /opt/csw/share/locale/en at boldquot /opt/csw/share/locale/en at boldquot/LC_MESSAGES /opt/csw/share/locale/en at quot /opt/csw/share/locale/en at quot/LC_MESSAGES /opt/csw/share/locale/es /opt/csw/share/locale/es/LC_MESSAGES -/opt/csw/share/locale/es/LC_TIME /opt/csw/share/locale/et /opt/csw/share/locale/et/LC_MESSAGES /opt/csw/share/locale/eu @@ -72,12 +66,10 @@ /opt/csw/share/locale/fi/LC_MESSAGES /opt/csw/share/locale/fr /opt/csw/share/locale/fr/LC_MESSAGES -/opt/csw/share/locale/fr/LC_TIME /opt/csw/share/locale/ga /opt/csw/share/locale/ga/LC_MESSAGES /opt/csw/share/locale/gl /opt/csw/share/locale/gl/LC_MESSAGES -/opt/csw/share/locale/gl/LC_TIME /opt/csw/share/locale/he /opt/csw/share/locale/he/LC_MESSAGES /opt/csw/share/locale/hr @@ -88,50 +80,38 @@ /opt/csw/share/locale/id/LC_MESSAGES /opt/csw/share/locale/it /opt/csw/share/locale/it/LC_MESSAGES -/opt/csw/share/locale/it/LC_TIME /opt/csw/share/locale/ja /opt/csw/share/locale/ja/LC_MESSAGES -/opt/csw/share/locale/ja/LC_TIME /opt/csw/share/locale/ko /opt/csw/share/locale/ko/LC_MESSAGES -/opt/csw/share/locale/ko/LC_TIME /opt/csw/share/locale/lt /opt/csw/share/locale/lt/LC_MESSAGES /opt/csw/share/locale/nl /opt/csw/share/locale/nl/LC_MESSAGES -/opt/csw/share/locale/nl/LC_TIME /opt/csw/share/locale/nn /opt/csw/share/locale/nn/LC_MESSAGES /opt/csw/share/locale/no /opt/csw/share/locale/no/LC_MESSAGES -/opt/csw/share/locale/no/LC_TIME /opt/csw/share/locale/pl /opt/csw/share/locale/pl/LC_MESSAGES -/opt/csw/share/locale/pl/LC_TIME /opt/csw/share/locale/pt /opt/csw/share/locale/pt/LC_MESSAGES -/opt/csw/share/locale/pt/LC_TIME /opt/csw/share/locale/pt_BR /opt/csw/share/locale/pt_BR/LC_MESSAGES -/opt/csw/share/locale/pt_BR/LC_TIME /opt/csw/share/locale/ro /opt/csw/share/locale/ro/LC_MESSAGES /opt/csw/share/locale/ru /opt/csw/share/locale/ru/LC_MESSAGES -/opt/csw/share/locale/ru/LC_TIME /opt/csw/share/locale/sk /opt/csw/share/locale/sk/LC_MESSAGES -/opt/csw/share/locale/sk/LC_TIME /opt/csw/share/locale/sl /opt/csw/share/locale/sl/LC_MESSAGES -/opt/csw/share/locale/sl/LC_TIME /opt/csw/share/locale/sp /opt/csw/share/locale/sp/LC_MESSAGES /opt/csw/share/locale/sr /opt/csw/share/locale/sr/LC_MESSAGES /opt/csw/share/locale/sv /opt/csw/share/locale/sv/LC_MESSAGES -/opt/csw/share/locale/sv/LC_TIME /opt/csw/share/locale/tr /opt/csw/share/locale/tr/LC_MESSAGES /opt/csw/share/locale/uk @@ -142,7 +122,6 @@ /opt/csw/share/locale/wa/LC_MESSAGES /opt/csw/share/locale/zh /opt/csw/share/locale/zh/LC_MESSAGES -/opt/csw/share/locale/zh/LC_TIME /opt/csw/share/locale/zh_CN /opt/csw/share/locale/zh_CN.GB2312 /opt/csw/share/locale/zh_CN.GB2312/LC_MESSAGES Modified: csw/mgar/gar/v2/etc/commondirs-sparc =================================================================== --- csw/mgar/gar/v2/etc/commondirs-sparc 2010-12-17 20:06:41 UTC (rev 11989) +++ csw/mgar/gar/v2/etc/commondirs-sparc 2010-12-17 20:22:15 UTC (rev 11990) @@ -46,28 +46,22 @@ /opt/csw/share/locale/be/LC_MESSAGES /opt/csw/share/locale/bg /opt/csw/share/locale/bg/LC_MESSAGES -/opt/csw/share/locale/bg/LC_TIME /opt/csw/share/locale/ca /opt/csw/share/locale/ca/LC_MESSAGES /opt/csw/share/locale/cs /opt/csw/share/locale/cs/LC_MESSAGES -/opt/csw/share/locale/cs/LC_TIME /opt/csw/share/locale/da /opt/csw/share/locale/da/LC_MESSAGES -/opt/csw/share/locale/da/LC_TIME /opt/csw/share/locale/de /opt/csw/share/locale/de/LC_MESSAGES -/opt/csw/share/locale/de/LC_TIME /opt/csw/share/locale/el /opt/csw/share/locale/el/LC_MESSAGES -/opt/csw/share/locale/el/LC_TIME /opt/csw/share/locale/en at boldquot /opt/csw/share/locale/en at boldquot/LC_MESSAGES /opt/csw/share/locale/en at quot /opt/csw/share/locale/en at quot/LC_MESSAGES /opt/csw/share/locale/es /opt/csw/share/locale/es/LC_MESSAGES -/opt/csw/share/locale/es/LC_TIME /opt/csw/share/locale/et /opt/csw/share/locale/et/LC_MESSAGES /opt/csw/share/locale/eu @@ -76,12 +70,10 @@ /opt/csw/share/locale/fi/LC_MESSAGES /opt/csw/share/locale/fr /opt/csw/share/locale/fr/LC_MESSAGES -/opt/csw/share/locale/fr/LC_TIME /opt/csw/share/locale/ga /opt/csw/share/locale/ga/LC_MESSAGES /opt/csw/share/locale/gl /opt/csw/share/locale/gl/LC_MESSAGES -/opt/csw/share/locale/gl/LC_TIME /opt/csw/share/locale/he /opt/csw/share/locale/he/LC_MESSAGES /opt/csw/share/locale/hr @@ -92,50 +84,38 @@ /opt/csw/share/locale/id/LC_MESSAGES /opt/csw/share/locale/it /opt/csw/share/locale/it/LC_MESSAGES -/opt/csw/share/locale/it/LC_TIME /opt/csw/share/locale/ja /opt/csw/share/locale/ja/LC_MESSAGES -/opt/csw/share/locale/ja/LC_TIME /opt/csw/share/locale/ko /opt/csw/share/locale/ko/LC_MESSAGES -/opt/csw/share/locale/ko/LC_TIME /opt/csw/share/locale/lt /opt/csw/share/locale/lt/LC_MESSAGES /opt/csw/share/locale/nl /opt/csw/share/locale/nl/LC_MESSAGES -/opt/csw/share/locale/nl/LC_TIME /opt/csw/share/locale/nn /opt/csw/share/locale/nn/LC_MESSAGES /opt/csw/share/locale/no /opt/csw/share/locale/no/LC_MESSAGES -/opt/csw/share/locale/no/LC_TIME /opt/csw/share/locale/pl /opt/csw/share/locale/pl/LC_MESSAGES -/opt/csw/share/locale/pl/LC_TIME /opt/csw/share/locale/pt /opt/csw/share/locale/pt/LC_MESSAGES -/opt/csw/share/locale/pt/LC_TIME /opt/csw/share/locale/pt_BR /opt/csw/share/locale/pt_BR/LC_MESSAGES -/opt/csw/share/locale/pt_BR/LC_TIME /opt/csw/share/locale/ro /opt/csw/share/locale/ro/LC_MESSAGES /opt/csw/share/locale/ru /opt/csw/share/locale/ru/LC_MESSAGES -/opt/csw/share/locale/ru/LC_TIME /opt/csw/share/locale/sk /opt/csw/share/locale/sk/LC_MESSAGES -/opt/csw/share/locale/sk/LC_TIME /opt/csw/share/locale/sl /opt/csw/share/locale/sl/LC_MESSAGES -/opt/csw/share/locale/sl/LC_TIME /opt/csw/share/locale/sp /opt/csw/share/locale/sp/LC_MESSAGES /opt/csw/share/locale/sr /opt/csw/share/locale/sr/LC_MESSAGES /opt/csw/share/locale/sv /opt/csw/share/locale/sv/LC_MESSAGES -/opt/csw/share/locale/sv/LC_TIME /opt/csw/share/locale/tr /opt/csw/share/locale/tr/LC_MESSAGES /opt/csw/share/locale/uk @@ -146,7 +126,6 @@ /opt/csw/share/locale/wa/LC_MESSAGES /opt/csw/share/locale/zh /opt/csw/share/locale/zh/LC_MESSAGES -/opt/csw/share/locale/zh/LC_TIME /opt/csw/share/locale/zh_CN /opt/csw/share/locale/zh_CN.GB2312 /opt/csw/share/locale/zh_CN.GB2312/LC_MESSAGES This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Fri Dec 17 21:47:57 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Fri, 17 Dec 2010 20:47:57 +0000 Subject: [csw-devel] SF.net SVN: gar:[11991] csw/mgar/pkg/coreutils/trunk/checksums Message-ID: Revision: 11991 http://gar.svn.sourceforge.net/gar/?rev=11991&view=rev Author: bdwalton Date: 2010-12-17 20:47:57 +0000 (Fri, 17 Dec 2010) Log Message: ----------- coreutils: update makesums for 8.7 Modified Paths: -------------- csw/mgar/pkg/coreutils/trunk/checksums Modified: csw/mgar/pkg/coreutils/trunk/checksums =================================================================== --- csw/mgar/pkg/coreutils/trunk/checksums 2010-12-17 20:22:15 UTC (rev 11990) +++ csw/mgar/pkg/coreutils/trunk/checksums 2010-12-17 20:47:57 UTC (rev 11991) @@ -1 +1 @@ -164b3fd0dfc4fb65174f34aadc1de5fb coreutils-8.6.tar.gz +3c1ae9531159447083ae8f25ae554b81 coreutils-8.7.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Fri Dec 17 23:26:17 2010 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Fri, 17 Dec 2010 22:26:17 +0000 Subject: [csw-devel] SF.net SVN: gar:[11992] csw/mgar/pkg/cyrus_imapd/trunk Message-ID: Revision: 11992 http://gar.svn.sourceforge.net/gar/?rev=11992&view=rev Author: chninkel Date: 2010-12-17 22:26:17 +0000 (Fri, 17 Dec 2010) Log Message: ----------- cyrus_imapd: fixed manifest file with new configuration file path Modified Paths: -------------- csw/mgar/pkg/cyrus_imapd/trunk/Makefile csw/mgar/pkg/cyrus_imapd/trunk/files/cswcyrus.xml Modified: csw/mgar/pkg/cyrus_imapd/trunk/Makefile =================================================================== --- csw/mgar/pkg/cyrus_imapd/trunk/Makefile 2010-12-17 20:47:57 UTC (rev 11991) +++ csw/mgar/pkg/cyrus_imapd/trunk/Makefile 2010-12-17 22:26:17 UTC (rev 11992) @@ -55,7 +55,7 @@ PKGFILES_CSWcyrusimapd += $(sysconfdir)/cyrus/imapd.conf.CSW PKGFILES_CSWcyrusimapd += $(sysconfdir)/cyrus/cyrus.conf.CSW PKGFILES_CSWcyrusimapd += /etc$(prefix)/init.d/cswcyrus -PKGFILES_CSWcyrusimapd += /var/$(prefix)/svc/manifest/network/cswcyrus.xml +PKGFILES_CSWcyrusimapd += /var$(prefix)/svc/manifest/network/cswcyrus\.xml PKGFILES_CSWcyrusimapd += $(localstatedir)/cyrus.* PROTOTYPE_MODIFIERS = cyrusdir @@ -101,8 +101,12 @@ DISTFILES += pm_cyrus.changelog.CSW # We move from /opt/csw/{etc,var} to /{etc,var}/opt/csw -MIGRATE_FILES_CSWcyrusimapd = cyrus +MIGRATE_FILES_CSWcyrusimapd = cyrus.conf imapd.conf +MIGRATE_SOURCE_DIR = $(prefix)/etc/cyrus +MIGRATE_DEST_DIR = $(sysconfdir)/cyrus + + # compile_et is not provided by krb5lib_dev so we must provide our own version # taken from the krb5 source. DISTFILES += compile_et et_c.awk et_h.awk @@ -264,6 +268,6 @@ # let's remove pod files gfind $(PKGROOT)$(perllib) -name "perllocal.pod" -exec rm '{}' ';' # and CVS directories - gfind $(PKGROOT) -type d -depth -name "CVS" -exec rm -rf '{}' ';' + gfind $(PKGROOT) -depth -type d -name "CVS" -exec rm -rf '{}' ';' @$(MAKECOOKIE) Modified: csw/mgar/pkg/cyrus_imapd/trunk/files/cswcyrus.xml =================================================================== --- csw/mgar/pkg/cyrus_imapd/trunk/files/cswcyrus.xml 2010-12-17 20:47:57 UTC (rev 11991) +++ csw/mgar/pkg/cyrus_imapd/trunk/files/cswcyrus.xml 2010-12-17 22:26:17 UTC (rev 11992) @@ -45,7 +45,7 @@ restart_on='refresh' type='path'> + value='file://localhost/etc/opt/csw/cyrus/cyrus.conf' /> Revision: 11993 http://gar.svn.sourceforge.net/gar/?rev=11993&view=rev Author: bdwalton Date: 2010-12-18 04:27:23 +0000 (Sat, 18 Dec 2010) Log Message: ----------- cswpkgloghooks: convert to perl to ease the name/version splitting issue correction Modified Paths: -------------- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-preupgrade Modified: csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade =================================================================== --- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-17 22:26:17 UTC (rev 11992) +++ csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 04:27:23 UTC (rev 11993) @@ -1,62 +1,80 @@ -#!/usr/bin/env bash +#!/usr/bin/env perl -script=$0 +use strict; +use warnings; -set -- ${1/-/ } -PKG=$1 -VER=$2 +my ($script, $pkg, $ver, $oldver, $sysver, $statefile); -function logdie() { - logger -t "cswpkgloghooks" "$1" +$script = $0; +$ARGV[0] =~ /(.+)-(.+)/; +$pkg = $1; +$ver = $2; + +$sysver = `pkgparam $pkg VERSION`; +$statefile = "/var/opt/csw/pkg-hooks/CSWpkgloghooks.upgrade.$pkg"; + +open(STATEFILE, ">$statefile") or die "Couldn't open $statefile."; +print STATEFILE "$sysver"; +close(STATEFILE) + +sub logdie() { + my $arg = shift; + system('logger', '-t', 'cswpkgloghooks', $arg); exit 0 } -function success() { - case ${script} in - *install) MSG="installed ${PKG} ${VER}";; - *upgrade) MSG="upgraded ${PKG} to ${VER} (from: $1)";; - *remove) MSG="removed ${PKG} ${VER}";; - esac +sub success() { + my $old = shift; + my $msg = ''; + if ($script =~ /install$/) { + $msg = "installed $pkg $ver"; + } elsif ($script =~ /upgrade$/) { + $msg = "upgraded $pkg to $ver (from: $old)"; + } elsif ($script =~ /remove$/) { + $msg = "removed $pkg $ver"; + } - logdie "${MSG}" + logdie $msg; } function failure() { - case ${script} in - *install) MSG="Failed to install ${PKG} ${VER}";; - *upgrade) MSG="Failed to upgrade ${PKG} ${VER} (current: $1)";; - *remove) MSG="Failed to remove ${PKG} ${VER}";; - esac + my $old = shift; + my $msg = ''; + if ($script =~ /install$/) { + $msg = "Failed to install $pkg $ver"; + } elsif ($script =~ /upgrade$/) { + $msg = "Failed to upgrade $pkg to $ver (current: $old)"; + } elsif ($script =~ /remove$/) { + $msg = "Failed to remove $pkg $ver"; + } - logdie "${MSG}" + logdie $msg; } -if [ -d /var/sadm/pkg/${PKG} ]; then - SYSTEMVER=$(pkgparam ${PKG} VERSION 2>/dev/null) - pf=/var/opt/csw/pkg-hooks/CSWcswpkgloghooks.upgrade.${PKG} - if [ -f ${pf} ]; then - PREVVER=$(cat ${pf} 2>/dev/null) - rm -f ${pf} - fi - case ${script} in - *remove) - failure - ;; - *install|*upgrade) - case "${VER}" in - ${SYSTEMVER}) success ${PREVVER};; - *) failure ${SYSTEMVER};; - esac - ;; - esac -else - case ${script} in - *remove) - success - ;; - *install|*upgrade) - failure - ;; - esac -fi +if ( -d "/var/sadm/pkg/$pkg" ) { + $sysver = system('pkgparam', $pkg, 'VERSION'); + + if ( -f "$statefile" ) { + open (STATEFILE, "<$statefile") or die "Couldn't open $statefile."; + $oldver = ; + close(STATEFILE); + unlink($statefile); + } + + if ($script =~ /remove$/) { + failure; + } else { + if ("$ver" eq "$sysver") { + success($oldver); + } else { + failure($sysver); + } + } +} else { + if ($script =~ /remove$/) { + success(); + } else { + failure(); + } +} Modified: csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-preupgrade =================================================================== --- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-preupgrade 2010-12-17 22:26:17 UTC (rev 11992) +++ csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-preupgrade 2010-12-18 04:27:23 UTC (rev 11993) @@ -1,11 +1,17 @@ -#!/usr/bin/env bash +#!/usr/bin/env perl -set -- ${1/-/ } +use strict; +use warnings; -PKG=$1 -VER=$2 +my ($pkg, $ver, $sysver, $statefile); -SYSTEMVER=$(pkgparam ${PKG} VERSION) +$ARGV[0] =~ /(.+)-(.+)/; +$pkg = $1; +$ver = $2; -# store previous version so we can log smarter things if upgrade fails. -echo ${SYSTEMVER} > /var/opt/csw/pkg-hooks/CSWcswpkgloghooks.upgrade.${PKG} +$sysver = `pkgparam $pkg VERSION`; +$statefile = "/var/opt/csw/pkg-hooks/CSWpkgloghooks.upgrade.$pkg"; + +open(STATEFILE, ">$statefile") or die "Couldn't open $statefile."; +print STATEFILE "$sysver"; +close(STATEFILE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Sat Dec 18 08:50:06 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Sat, 18 Dec 2010 07:50:06 +0000 Subject: [csw-devel] SF.net SVN: gar:[11994] csw/mgar/pkg/cups/trunk/Makefile Message-ID: Revision: 11994 http://gar.svn.sourceforge.net/gar/?rev=11994&view=rev Author: wahwah Date: 2010-12-18 07:50:06 +0000 (Sat, 18 Dec 2010) Log Message: ----------- cups: Rename CSWcupsdev to CSWcups-devel Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2010-12-18 04:27:23 UTC (rev 11993) +++ csw/mgar/pkg/cups/trunk/Makefile 2010-12-18 07:50:06 UTC (rev 11994) @@ -144,9 +144,35 @@ PACKAGES += CSWcupsclient PACKAGES += CSWcupsdoc + +# Devel package +PACKAGES += CSWcups-devel +SPKG_DESC_CSWcups-devel = CUPS header files +CATALOGNAME_CSWcups-devel = cups_devel +PKGFILES_CSWcups-devel = $(includedir)/cups/?.* +PKGFILES_CSWcups-devel += $(mandir)/man1/cups-config.1 +PKGFILES_CSWcups-devel += $(bindir)/cups-config +PKGFILES_CSWcups-devel += $(datadir)/cups/ppdc.* +PKGFILES_CSWcups-devel += $(datadir)/cups/drv.* +PKGFILES_CSWcups-devel += $(libdir)/libcups.so +PKGFILES_CSWcups-devel += $(libdir)/libcupscgi.so +PKGFILES_CSWcups-devel += $(libdir)/libcupsdriver.so +PKGFILES_CSWcups-devel += $(libdir)/libcupsimage.so +PKGFILES_CSWcups-devel += $(libdir)/libcupsmime.so +PKGFILES_CSWcups-devel += $(libdir)/libcupsppdc.so +# The development package needs all the libraries +RUNTIME_DEP_PKGS_CSWcups-devel += CSWlibcupsppdc1 +RUNTIME_DEP_PKGS_CSWcups-devel += CSWlibcupsdriver1 +RUNTIME_DEP_PKGS_CSWcups-devel += CSWlibcups2 +RUNTIME_DEP_PKGS_CSWcups-devel += CSWlibcupsmime1 +RUNTIME_DEP_PKGS_CSWcups-devel += CSWlibcupsimage2 +RUNTIME_DEP_PKGS_CSWcups-devel += CSWlibcupscgi1 + +# Former devel package PACKAGES += CSWcupsdev +SPKG_DESC_CSWcupsdev = Empty transitional package +PKGFILES_CSWcupsdev = None - # The problematic cupslinks package # PACKAGES += CSWcupslinks # INCOMPATIBLE_PKGS_CSWcupslinks = SUNWpcr SUNWpcu @@ -165,17 +191,6 @@ PKGFILES_CSWcupsdoc = $(datadir)/doc PKGFILES_CSWcupsdoc += $(datadir)/doc/.* PKGFILES_CSWcupsdoc += $(datadir)/cups/examples.* -PKGFILES_CSWcupsdev = $(includedir)/cups/?.* -PKGFILES_CSWcupsdev += $(mandir)/man1/cups-config.1 -PKGFILES_CSWcupsdev += $(bindir)/cups-config -PKGFILES_CSWcupsdev += $(datadir)/cups/ppdc.* -PKGFILES_CSWcupsdev += $(datadir)/cups/drv.* -PKGFILES_CSWcupsdev += $(libdir)/libcups.so -PKGFILES_CSWcupsdev += $(libdir)/libcupscgi.so -PKGFILES_CSWcupsdev += $(libdir)/libcupsdriver.so -PKGFILES_CSWcupsdev += $(libdir)/libcupsimage.so -PKGFILES_CSWcupsdev += $(libdir)/libcupsmime.so -PKGFILES_CSWcupsdev += $(libdir)/libcupsppdc.so PKGFILES_CSWcupsclient = $(sbindir)/(accept|reject|cups(addsmb|ctl|(en|dis)able)) PKGFILES_CSWcupsclient += $(sbindir)/cups(accept|reject) PKGFILES_CSWcupsclient += $(sbindir)/(lp(admin|p|c|info|move)) @@ -196,7 +211,6 @@ SPKG_DESC_CSWcupsclient = CUPS client binaries SPKG_DESC_CSWcupsdoc = CUPS documentation -SPKG_DESC_CSWcupsdev = CUPS header files # Packages compliant with the shared library policy. PACKAGES += CSWlibcups2 @@ -250,14 +264,6 @@ RUNTIME_DEP_PKGS_CSWlibcupsppdc1 += CSWosslrt RUNTIME_DEP_PKGS_CSWlibcupsppdc1 += CSWlibcups2 -# The development package needs all the libraries -RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcupsppdc1 -RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcupsdriver1 -RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcups2 -RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcupsmime1 -RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcupsimage2 -RUNTIME_DEP_PKGS_CSWcupsdev += CSWlibcupscgi1 - # http://lists.opencsw.org/pipermail/maintainers/2009-September/004249.html SAMPLECONF_CSWcupsclient += $(sysconfdir)/cups/client\.conf\.CSW INITSMF = $(sysconfdir)/init\.d/cswcups This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 14:36:01 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 13:36:01 +0000 Subject: [csw-devel] SF.net SVN: gar:[11995] csw/mgar/pkg/coreutils/branches/8.4-respin/ Message-ID: Revision: 11995 http://gar.svn.sourceforge.net/gar/?rev=11995&view=rev Author: bdwalton Date: 2010-12-18 13:36:00 +0000 (Sat, 18 Dec 2010) Log Message: ----------- branch coreutils at the point where 8.4 was released Added Paths: ----------- csw/mgar/pkg/coreutils/branches/8.4-respin/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 14:37:46 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 13:37:46 +0000 Subject: [csw-devel] SF.net SVN: gar:[11996] csw/mgar/pkg/coreutils/branches/8.4-respin/Makefile Message-ID: Revision: 11996 http://gar.svn.sourceforge.net/gar/?rev=11996&view=rev Author: bdwalton Date: 2010-12-18 13:37:46 +0000 (Sat, 18 Dec 2010) Log Message: ----------- coreutils/8.4: update GARNAME/GARVERSION for changes in gar Modified Paths: -------------- csw/mgar/pkg/coreutils/branches/8.4-respin/Makefile Modified: csw/mgar/pkg/coreutils/branches/8.4-respin/Makefile =================================================================== --- csw/mgar/pkg/coreutils/branches/8.4-respin/Makefile 2010-12-18 13:36:00 UTC (rev 11995) +++ csw/mgar/pkg/coreutils/branches/8.4-respin/Makefile 2010-12-18 13:37:46 UTC (rev 11996) @@ -1,5 +1,5 @@ -GARNAME = coreutils -GARVERSION = 8.4 +NAME = coreutils +VERSION = 8.4 CATEGORIES = utils # seq has issues related to the handling of long double's with -O2. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 14:50:20 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 13:50:20 +0000 Subject: [csw-devel] SF.net SVN: gar:[11997] csw/mgar/pkg/coreutils/branches/8.4-respin/Makefile Message-ID: Revision: 11997 http://gar.svn.sourceforge.net/gar/?rev=11997&view=rev Author: bdwalton Date: 2010-12-18 13:50:20 +0000 (Sat, 18 Dec 2010) Log Message: ----------- coreutils/8.4: update a few other uses of GARNAME/GARVERSION to new standard Modified Paths: -------------- csw/mgar/pkg/coreutils/branches/8.4-respin/Makefile Modified: csw/mgar/pkg/coreutils/branches/8.4-respin/Makefile =================================================================== --- csw/mgar/pkg/coreutils/branches/8.4-respin/Makefile 2010-12-18 13:37:46 UTC (rev 11996) +++ csw/mgar/pkg/coreutils/branches/8.4-respin/Makefile 2010-12-18 13:50:20 UTC (rev 11997) @@ -27,12 +27,12 @@ endef MASTER_SITES = $(GNU_MIRROR) -DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz +DISTFILES = $(NAME)-$(VERSION).tar.gz PATCHFILES = 0001-Enhance-Solaris-ACL-error-handling.patch # We define upstream file regex so we can be notifed of new upstream # software release -UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz sysconfdir = /etc/opt/csw localstatedir = /var/opt/csw @@ -50,7 +50,7 @@ PROTOTYPE_FILTER = awk '$$$$3 == "/opt/csw/bin/gsu" { $$$$4 = "4555" }; { print }' -ifneq ($(GARVERSION), 8.4) +ifneq ($(VERSION), 8.4) TEST_TARGET = check else TEST_SCRIPTS = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 15:00:44 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 14:00:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[11998] csw/mgar/pkg/cswpkgloghooks/trunk/files Message-ID: Revision: 11998 http://gar.svn.sourceforge.net/gar/?rev=11998&view=rev Author: bdwalton Date: 2010-12-18 14:00:44 +0000 (Sat, 18 Dec 2010) Log Message: ----------- cswpkgloghooks: a few perl cleanups in the hook scripts Modified Paths: -------------- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-preupgrade Modified: csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade =================================================================== --- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 13:50:20 UTC (rev 11997) +++ csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 14:00:44 UTC (rev 11998) @@ -17,15 +17,15 @@ print STATEFILE "$sysver"; close(STATEFILE) -sub logdie() { - my $arg = shift; +sub logdie { + local $arg = shift; system('logger', '-t', 'cswpkgloghooks', $arg); exit 0 } -sub success() { - my $old = shift; - my $msg = ''; +sub success { + local $old = shift; + local $msg = ''; if ($script =~ /install$/) { $msg = "installed $pkg $ver"; } elsif ($script =~ /upgrade$/) { @@ -37,9 +37,9 @@ logdie $msg; } -function failure() { - my $old = shift; - my $msg = ''; +sub failure { + local $old = shift; + local $msg = ''; if ($script =~ /install$/) { $msg = "Failed to install $pkg $ver"; } elsif ($script =~ /upgrade$/) { Modified: csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-preupgrade =================================================================== --- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-preupgrade 2010-12-18 13:50:20 UTC (rev 11997) +++ csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-preupgrade 2010-12-18 14:00:44 UTC (rev 11998) @@ -14,4 +14,4 @@ open(STATEFILE, ">$statefile") or die "Couldn't open $statefile."; print STATEFILE "$sysver"; -close(STATEFILE) +close(STATEFILE); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 15:04:12 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 14:04:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[11999] csw/mgar/pkg/cswpkgloghooks/trunk/Makefile Message-ID: Revision: 11999 http://gar.svn.sourceforge.net/gar/?rev=11999&view=rev Author: bdwalton Date: 2010-12-18 14:04:11 +0000 (Sat, 18 Dec 2010) Log Message: ----------- cswpkgloghooks: a rewrite in perl warrants a major version bump Modified Paths: -------------- csw/mgar/pkg/cswpkgloghooks/trunk/Makefile Modified: csw/mgar/pkg/cswpkgloghooks/trunk/Makefile =================================================================== --- csw/mgar/pkg/cswpkgloghooks/trunk/Makefile 2010-12-18 14:00:44 UTC (rev 11998) +++ csw/mgar/pkg/cswpkgloghooks/trunk/Makefile 2010-12-18 14:04:11 UTC (rev 11999) @@ -1,5 +1,5 @@ NAME = cswpkgloghooks -VERSION = 1.1.1 +VERSION = 2.0 CATEGORIES = utils VENDOR_URL = http://opencsw.org This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 15:06:36 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 14:06:36 +0000 Subject: [csw-devel] SF.net SVN: gar:[12000] csw/mgar/pkg/exim/trunk Message-ID: Revision: 12000 http://gar.svn.sourceforge.net/gar/?rev=12000&view=rev Author: bdwalton Date: 2010-12-18 14:06:35 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim: drop custom manifest and let initsmf generate it Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile csw/mgar/pkg/exim/trunk/files/cswexim Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-18 14:04:11 UTC (rev 11999) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-18 14:06:35 UTC (rev 12000) @@ -108,8 +108,6 @@ done) (cd $(DESTDIR); mkdir -p etc/opt/csw/init.d; \ cp $(abspath $(FILEDIR)/cswexim) etc/opt/csw/init.d ) - mkdir -p $(DESTDIR)/var/opt/csw/svc/manifest/network - cp -p files/exim.xml $(DESTDIR)/var/opt/csw/svc/manifest/network mkdir -p $(DESTDIR)$(prefix)/share/doc/exim cp -p files/README.CSW $(DESTDIR)$(prefix)/share/doc/exim/README.CSW cp -p files/exim-env.sh $(DESTDIR)$(prefix)/etc/exim/exim-env.sh.CSW Modified: csw/mgar/pkg/exim/trunk/files/cswexim =================================================================== --- csw/mgar/pkg/exim/trunk/files/cswexim 2010-12-18 14:04:11 UTC (rev 11999) +++ csw/mgar/pkg/exim/trunk/files/cswexim 2010-12-18 14:06:35 UTC (rev 12000) @@ -7,9 +7,6 @@ # Modified for Blastwave by Markus Mayer # Modified for OpenCSW by Ben Walton -# These are consumed by the i.cswinitsmf class action script -#MANIFEST /var/opt/csw/svc/manifest/network/exim.xml - # Exit if exim (or another MTA) runs from /etc/inetd.conf if [ -f /etc/inetd.conf ] && grep "^ *\([0-9.]\+:\)\?smtp" /etc/inetd.conf >/dev/null; then exit 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 15:14:53 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 14:14:53 +0000 Subject: [csw-devel] SF.net SVN: gar:[12001] csw/mgar/pkg/cswpkgloghooks/trunk/files/ 01-CSWcswpkgloghooks-postupgrade Message-ID: Revision: 12001 http://gar.svn.sourceforge.net/gar/?rev=12001&view=rev Author: bdwalton Date: 2010-12-18 14:14:52 +0000 (Sat, 18 Dec 2010) Log Message: ----------- cswpkgloghooks: add missing semicolon in postupgrade hook script Modified Paths: -------------- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade Modified: csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade =================================================================== --- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 14:06:35 UTC (rev 12000) +++ csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 14:14:52 UTC (rev 12001) @@ -15,7 +15,7 @@ open(STATEFILE, ">$statefile") or die "Couldn't open $statefile."; print STATEFILE "$sysver"; -close(STATEFILE) +close(STATEFILE); sub logdie { local $arg = shift; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 15:23:22 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 14:23:22 +0000 Subject: [csw-devel] SF.net SVN: gar:[12002] csw/mgar/pkg/cswpkgloghooks/trunk/files/ 01-CSWcswpkgloghooks-postupgrade Message-ID: Revision: 12002 http://gar.svn.sourceforge.net/gar/?rev=12002&view=rev Author: bdwalton Date: 2010-12-18 14:23:22 +0000 (Sat, 18 Dec 2010) Log Message: ----------- cswpkgloghooks: more perl cleanups...sooo rusty Modified Paths: -------------- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade Modified: csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade =================================================================== --- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 14:14:52 UTC (rev 12001) +++ csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 14:23:22 UTC (rev 12002) @@ -18,14 +18,13 @@ close(STATEFILE); sub logdie { - local $arg = shift; + my ($arg) = (shift); system('logger', '-t', 'cswpkgloghooks', $arg); exit 0 } sub success { - local $old = shift; - local $msg = ''; + my ($old, $msg) = (shift, ''); if ($script =~ /install$/) { $msg = "installed $pkg $ver"; } elsif ($script =~ /upgrade$/) { @@ -38,8 +37,7 @@ } sub failure { - local $old = shift; - local $msg = ''; + my ($old, $msg) = (shift, ''); if ($script =~ /install$/) { $msg = "Failed to install $pkg $ver"; } elsif ($script =~ /upgrade$/) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 15:57:47 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 14:57:47 +0000 Subject: [csw-devel] SF.net SVN: gar:[12003] csw/mgar/pkg/cswpkgloghooks/trunk/files/ 01-CSWcswpkgloghooks-postupgrade Message-ID: Revision: 12003 http://gar.svn.sourceforge.net/gar/?rev=12003&view=rev Author: bdwalton Date: 2010-12-18 14:57:47 +0000 (Sat, 18 Dec 2010) Log Message: ----------- cswpkgloghooks: major cleanup of the post hook script Modified Paths: -------------- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade Modified: csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade =================================================================== --- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 14:23:22 UTC (rev 12002) +++ csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 14:57:47 UTC (rev 12003) @@ -10,15 +10,10 @@ $pkg = $1; $ver = $2; -$sysver = `pkgparam $pkg VERSION`; $statefile = "/var/opt/csw/pkg-hooks/CSWpkgloghooks.upgrade.$pkg"; -open(STATEFILE, ">$statefile") or die "Couldn't open $statefile."; -print STATEFILE "$sysver"; -close(STATEFILE); - sub logdie { - my ($arg) = (shift); + my($arg) = (shift); system('logger', '-t', 'cswpkgloghooks', $arg); exit 0 } @@ -51,7 +46,8 @@ if ( -d "/var/sadm/pkg/$pkg" ) { - $sysver = system('pkgparam', $pkg, 'VERSION'); + $sysver = `pkgparam $pkg VERSION 2>/dev/null`; + chomp($sysver); if ( -f "$statefile" ) { open (STATEFILE, "<$statefile") or die "Couldn't open $statefile."; @@ -61,9 +57,10 @@ } if ($script =~ /remove$/) { - failure; + failure(); } else { - if ("$ver" eq "$sysver") { + print "VER: $ver; SYSVER: $sysver\n"; + if ($ver eq $sysver) { success($oldver); } else { failure($sysver); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 16:05:20 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 15:05:20 +0000 Subject: [csw-devel] SF.net SVN: gar:[12004] csw/mgar/pkg/cswpkgloghooks/trunk/files/ 01-CSWcswpkgloghooks-postupgrade Message-ID: Revision: 12004 http://gar.svn.sourceforge.net/gar/?rev=12004&view=rev Author: bdwalton Date: 2010-12-18 15:05:20 +0000 (Sat, 18 Dec 2010) Log Message: ----------- cswpkgloghooks: remove remaining debug statement from post hook script Modified Paths: -------------- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade Modified: csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade =================================================================== --- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 14:57:47 UTC (rev 12003) +++ csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 15:05:20 UTC (rev 12004) @@ -59,7 +59,6 @@ if ($script =~ /remove$/) { failure(); } else { - print "VER: $ver; SYSVER: $sysver\n"; if ($ver eq $sysver) { success($oldver); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 16:19:09 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 15:19:09 +0000 Subject: [csw-devel] SF.net SVN: gar:[12005] csw/mgar/pkg/cswpkgloghooks/trunk/files/ 01-CSWcswpkgloghooks-postupgrade Message-ID: Revision: 12005 http://gar.svn.sourceforge.net/gar/?rev=12005&view=rev Author: bdwalton Date: 2010-12-18 15:19:09 +0000 (Sat, 18 Dec 2010) Log Message: ----------- cswpkgloghooks: strip any newline in oldver as pull from state file in post hook Modified Paths: -------------- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade Modified: csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade =================================================================== --- csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 15:05:20 UTC (rev 12004) +++ csw/mgar/pkg/cswpkgloghooks/trunk/files/01-CSWcswpkgloghooks-postupgrade 2010-12-18 15:19:09 UTC (rev 12005) @@ -54,6 +54,7 @@ $oldver = ; close(STATEFILE); unlink($statefile); + chomp($oldver); } if ($script =~ /remove$/) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Sat Dec 18 17:17:52 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Sat, 18 Dec 2010 16:17:52 +0000 Subject: [csw-devel] SF.net SVN: gar:[12006] csw/mgar/pkg/cups/trunk/Makefile Message-ID: Revision: 12006 http://gar.svn.sourceforge.net/gar/?rev=12006&view=rev Author: wahwah Date: 2010-12-18 16:17:51 +0000 (Sat, 18 Dec 2010) Log Message: ----------- cups: Add a comment about building with symbols. Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2010-12-18 15:19:09 UTC (rev 12005) +++ csw/mgar/pkg/cups/trunk/Makefile 2010-12-18 16:17:51 UTC (rev 12006) @@ -28,6 +28,8 @@ # debugging symbols. The debugging options is turned on for this package, in # order to be able to debug the binary if it ever shows the problem. +# This build file support setting GARFLAVOR to DBG in order to build binaries +# with debugging symbols. # GARFLAVOR = DBG # These are the source mirrors published on the CUPS home-page. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 19:50:05 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 18:50:05 +0000 Subject: [csw-devel] SF.net SVN: gar:[12007] csw/mgar/pkg/exim/trunk/files/ 0003-Set-OpenCSW-build-options.patch Message-ID: Revision: 12007 http://gar.svn.sourceforge.net/gar/?rev=12007&view=rev Author: bdwalton Date: 2010-12-18 18:50:04 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim: use log/exim as log dir, not log/ directly Modified Paths: -------------- csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch Modified: csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch =================================================================== --- csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch 2010-12-18 16:17:51 UTC (rev 12006) +++ csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch 2010-12-18 18:50:04 UTC (rev 12007) @@ -254,7 +254,7 @@ # to form the final file names. Some installations may want something like this: -# LOG_FILE_PATH=/var/log/exim_%slog -+LOG_FILE_PATH=/opt/csw/var/log/%slog ++LOG_FILE_PATH=/opt/csw/var/log/exim/%slog # which results in files with names /var/log/exim_mainlog, etc. The directory # in which the log files are placed must exist; Exim does not try to create This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 20:28:44 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 19:28:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[12008] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 12008 http://gar.svn.sourceforge.net/gar/?rev=12008&view=rev Author: bdwalton Date: 2010-12-18 19:28:44 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim: ensure exim binary is setuid Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-18 18:50:04 UTC (rev 12007) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-18 19:28:44 UTC (rev 12008) @@ -75,6 +75,10 @@ CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzipextras CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzip +PROTOTYPE_MODIFIERS = eximsuid +PROTOTYPE_PERMS_eximsuid = 4755 +PROTOTYPE_FILES_eximsuid = $(sbindir)/exim + include gar/category.mk pre-patch-modulated: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 20:47:28 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 19:47:28 +0000 Subject: [csw-devel] SF.net SVN: gar:[12009] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 12009 http://gar.svn.sourceforge.net/gar/?rev=12009&view=rev Author: bdwalton Date: 2010-12-18 19:47:28 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim: ensure we package the logs directory and set proper owner/group/perms on it Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-18 19:28:44 UTC (rev 12008) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-18 19:47:28 UTC (rev 12009) @@ -75,9 +75,13 @@ CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzipextras CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzip -PROTOTYPE_MODIFIERS = eximsuid +PROTOTYPE_MODIFIERS = eximsuid eximlogs PROTOTYPE_PERMS_eximsuid = 4755 PROTOTYPE_FILES_eximsuid = $(sbindir)/exim +PROTOTYPE_USER_eximlogs = exim +PROTOTYPE_GROUP_eximlogs = exim +PROTOTYPE_PERMS_eximlogs = 750 +PROTOTYPE_FILES_eximlogs = $(prefix)/var/log/exim include gar/category.mk @@ -124,4 +128,5 @@ post-merge: ( cd $(PKGROOT); mkdir -p ./$(UGPATH); \ echo "$(UGENTRY)" > ./$(UGPATH)/cswusergroup ) + ( cd $(PKGROOT); mkdir -p opt/csw/var/log/exim ) @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 20:48:12 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 19:48:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[12010] csw/mgar/pkg/exim/trunk/Makefile Message-ID: Revision: 12010 http://gar.svn.sourceforge.net/gar/?rev=12010&view=rev Author: bdwalton Date: 2010-12-18 19:48:12 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim: override discouraged path warnings from exim (fix when security issue is properly resolved) Modified Paths: -------------- csw/mgar/pkg/exim/trunk/Makefile Modified: csw/mgar/pkg/exim/trunk/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-18 19:47:28 UTC (rev 12009) +++ csw/mgar/pkg/exim/trunk/Makefile 2010-12-18 19:48:12 UTC (rev 12010) @@ -74,6 +74,8 @@ CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzipextras CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzip +CHECKPKG_OVERRIDES_CSWexim += discouraged-path-in-pkgmap|/opt/csw/var/log +CHECKPKG_OVERRIDES_CSWexim += discouraged-path-in-pkgmap|/opt/csw/var/log/exim PROTOTYPE_MODIFIERS = eximsuid eximlogs PROTOTYPE_PERMS_eximsuid = 4755 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 21:39:34 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 20:39:34 +0000 Subject: [csw-devel] SF.net SVN: gar:[12011] csw/mgar/pkg/exim/branches Message-ID: Revision: 12011 http://gar.svn.sourceforge.net/gar/?rev=12011&view=rev Author: bdwalton Date: 2010-12-18 20:39:34 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim: branch to work on relocating spool and log directories, etc Added Paths: ----------- csw/mgar/pkg/exim/branches/dir-loc-fixes/ csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch csw/mgar/pkg/exim/branches/dir-loc-fixes/files/cswexim Removed Paths: ------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch csw/mgar/pkg/exim/branches/dir-loc-fixes/files/cswexim Deleted: csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile =================================================================== --- csw/mgar/pkg/exim/trunk/Makefile 2010-12-17 20:22:15 UTC (rev 11990) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-18 20:39:34 UTC (rev 12011) @@ -1,125 +0,0 @@ -NAME = exim -VERSION = 4.72 -CATEGORIES = server - -DESCRIPTION = The Exim Mail Transfer Agent -define BLURB - Exim is a message transfer agent (MTA) developed at the University of - Cambridge for use on Unix systems connected to the Internet. It is freely - available under the terms of the GNU General Public Licence. In style it - is similar to Smail 3, but its facilities are more general. There is a - great deal of flexibility in the way mail can be routed, and there are - extensive facilities for checking incoming mail. Exim can be installed in - place of sendmail, although the configuration of exim is quite different - to that of sendmail. -endef - -MASTER_SITES = ftp://ftp.exim.org/pub/exim/exim4/ -DISTFILES = $(NAME)-$(VERSION).tar.bz2 -DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.preremove -DISTFILES += CSWexim.request - -# NOTE TO FUTURE MAINTAINERS: -# This patch should be thoroughly reviewed for each update so as not to -# miss any new config options of interest... -PATCHFILES += 0003-Set-OpenCSW-build-options.patch -PATCHFILES += 0004-Force-Compiler-and-a-few-compilation-options.patch - -BUILD_DEP_PKGS = CSWlibspf2 - -RUNTIME_DEP_PKGS_CSWexim = CSWiconv CSWoldaprt CSWosslrt CSWsasl -RUNTIME_DEP_PKGS_CSWexim += CSWmysql5rt CSWlibpq CSWlibspf2 -RUNTIME_DEP_PKGS_CSWexim += CSWgzip CSWgzipextras -RUNTIME_DEP_PKGS_CSWexim += CSWpcrert - -# We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 - -# They supply the GPL in a non-standard file. -LICENSE = LICENCE - -LD_OPTIONS = -R/opt/csw/lib/\$$ISALIST -R/opt/csw/lib - -INITSMF = /etc/opt/csw/init.d/cswexim - -# scripts/exim_install has been patched to use this variable -EXIM_VERSION = $(VERSION) -export EXIM_VERSION - -# This is needed for the SPF2 workaround: -PWD = $(shell pwd) - -# Local/Makefile has been patched to use these: -CSW_CC = $($(GARCOMPILER)_CC) -CSW_OPT = $(CFLAGS) -CSW_WORKSRC = $(PWD)/$(WORKSRC) -export CSW_CC CSW_OPT CSW_WORKSRC - -# exim doesn't use configure -CONFIGURE_SCRIPTS = - -# We don't want exim_install to create the exim symlink or run chown -INSTALL_ARGS = "INSTALL_ARG=-no_symlink -no_chown" - -# exim doesn't have a test target -TEST_TARGET = - -# We use this to strip binaries after we're done building -BINS = exim exim_dbmbuild exim_dumpdb exim_fixdb exim_lock exim_tidydb -BINS += eximon.bin - -UGPATH=/etc/opt/csw/pkg/CSWexim -UGENTRY = exim:exim:CSW Exim User:/var/opt/csw/spool/exim:/bin/false:::NP -USERGROUP = $(UGPATH)/cswusergroup - -CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzipextras -CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzip - -include gar/category.mk - -pre-patch-modulated: - (cd $(WORKSRC); \ - test -r Local/Makefile || cp -p src/EDITME Local/Makefile; \ - test -r Local/eximon.conf || cp -p exim_monitor/EDITME Local/eximon.conf; \ - git add Local/; git ci -m 'Setup Local build default files'; \ - test -d spf2 || cp -pr /opt/csw/include/spf2 .; \ - git add spf2; git ci -m 'import spf2 header files' ) - @$(MAKECOOKIE) - -pre-build-modulated: - (cd $(WORKSRC); make makefile) - @$(MAKECOOKIE) - -DOC_LIST = ChangeLog Exim3.upgrade Exim4.upgrade NewStuff OptionLists.txt -DOC_LIST += README README.SIEVE dbm.discuss.txt filter.txt pcrepattern.txt -DOC_LIST += pcretest.txt spec.txt - -post-install-modulated: - (cd $(DESTDIR)$(prefix)/sbin; \ - mv exim-$(VERSION)-1 exim; \ - /usr/ccs/bin/strip $(BINS); \ - /usr/ccs/bin/mcs -d $(BINS)) - (cd $(DESTDIR)$(prefix)/etc/exim; \ - for i in aliases exim.conf; do \ - if [ -r "$$i" ]; then \ - echo "$$i -> $$i.CSW"; \ - mv "$$i" "$$i.CSW"; \ - fi \ - done) - (cd $(DESTDIR); mkdir -p etc/opt/csw/init.d; \ - cp $(abspath $(FILEDIR)/cswexim) etc/opt/csw/init.d ) - mkdir -p $(DESTDIR)/var/opt/csw/svc/manifest/network - cp -p files/exim.xml $(DESTDIR)/var/opt/csw/svc/manifest/network - mkdir -p $(DESTDIR)$(prefix)/share/doc/exim - cp -p files/README.CSW $(DESTDIR)$(prefix)/share/doc/exim/README.CSW - cp -p files/exim-env.sh $(DESTDIR)$(prefix)/etc/exim/exim-env.sh.CSW - (cd $(WORKSRC)/doc; \ - cp -p $(DOC_LIST) $(DESTDIR)$(prefix)/share/doc/exim) - gzip -f $(DESTDIR)$(prefix)/share/doc/exim/ChangeLog - gzip -f $(DESTDIR)$(prefix)/share/doc/exim/spec.txt - @$(MAKECOOKIE) - -post-merge: - ( cd $(PKGROOT); mkdir -p ./$(UGPATH); \ - echo "$(UGENTRY)" > ./$(UGPATH)/cswusergroup ) - @$(MAKECOOKIE) Copied: csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile (from rev 12010, csw/mgar/pkg/exim/trunk/Makefile) =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile (rev 0) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-18 20:39:34 UTC (rev 12011) @@ -0,0 +1,134 @@ +NAME = exim +VERSION = 4.72 +CATEGORIES = server + +DESCRIPTION = The Exim Mail Transfer Agent +define BLURB + Exim is a message transfer agent (MTA) developed at the University of + Cambridge for use on Unix systems connected to the Internet. It is freely + available under the terms of the GNU General Public Licence. In style it + is similar to Smail 3, but its facilities are more general. There is a + great deal of flexibility in the way mail can be routed, and there are + extensive facilities for checking incoming mail. Exim can be installed in + place of sendmail, although the configuration of exim is quite different + to that of sendmail. +endef + +MASTER_SITES = ftp://ftp.exim.org/pub/exim/exim4/ +DISTFILES = $(NAME)-$(VERSION).tar.bz2 +DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.preremove +DISTFILES += CSWexim.request + +# NOTE TO FUTURE MAINTAINERS: +# This patch should be thoroughly reviewed for each update so as not to +# miss any new config options of interest... +PATCHFILES += 0003-Set-OpenCSW-build-options.patch +PATCHFILES += 0004-Force-Compiler-and-a-few-compilation-options.patch + +BUILD_DEP_PKGS = CSWlibspf2 + +RUNTIME_DEP_PKGS_CSWexim = CSWiconv CSWoldaprt CSWosslrt CSWsasl +RUNTIME_DEP_PKGS_CSWexim += CSWmysql5rt CSWlibpq CSWlibspf2 +RUNTIME_DEP_PKGS_CSWexim += CSWgzip CSWgzipextras +RUNTIME_DEP_PKGS_CSWexim += CSWpcrert + +# We define upstream file regex so we can be notifed of new upstream software release +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 + +# They supply the GPL in a non-standard file. +LICENSE = LICENCE + +LD_OPTIONS = -R/opt/csw/lib/\$$ISALIST -R/opt/csw/lib + +INITSMF = /etc/opt/csw/init.d/cswexim + +# scripts/exim_install has been patched to use this variable +EXIM_VERSION = $(VERSION) +export EXIM_VERSION + +# This is needed for the SPF2 workaround: +PWD = $(shell pwd) + +# Local/Makefile has been patched to use these: +CSW_CC = $($(GARCOMPILER)_CC) +CSW_OPT = $(CFLAGS) +CSW_WORKSRC = $(PWD)/$(WORKSRC) +export CSW_CC CSW_OPT CSW_WORKSRC + +# exim doesn't use configure +CONFIGURE_SCRIPTS = + +# We don't want exim_install to create the exim symlink or run chown +INSTALL_ARGS = "INSTALL_ARG=-no_symlink -no_chown" + +# exim doesn't have a test target +TEST_TARGET = + +# We use this to strip binaries after we're done building +BINS = exim exim_dbmbuild exim_dumpdb exim_fixdb exim_lock exim_tidydb +BINS += eximon.bin + +UGPATH=/etc/opt/csw/pkg/CSWexim +UGENTRY = exim:exim:CSW Exim User:/var/opt/csw/spool/exim:/bin/false:::NP +USERGROUP = $(UGPATH)/cswusergroup + +CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzipextras +CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzip +CHECKPKG_OVERRIDES_CSWexim += discouraged-path-in-pkgmap|/opt/csw/var/log +CHECKPKG_OVERRIDES_CSWexim += discouraged-path-in-pkgmap|/opt/csw/var/log/exim + +PROTOTYPE_MODIFIERS = eximsuid eximlogs +PROTOTYPE_PERMS_eximsuid = 4755 +PROTOTYPE_FILES_eximsuid = $(sbindir)/exim +PROTOTYPE_USER_eximlogs = exim +PROTOTYPE_GROUP_eximlogs = exim +PROTOTYPE_PERMS_eximlogs = 750 +PROTOTYPE_FILES_eximlogs = $(prefix)/var/log/exim + +include gar/category.mk + +pre-patch-modulated: + (cd $(WORKSRC); \ + test -r Local/Makefile || cp -p src/EDITME Local/Makefile; \ + test -r Local/eximon.conf || cp -p exim_monitor/EDITME Local/eximon.conf; \ + git add Local/; git ci -m 'Setup Local build default files'; \ + test -d spf2 || cp -pr /opt/csw/include/spf2 .; \ + git add spf2; git ci -m 'import spf2 header files' ) + @$(MAKECOOKIE) + +pre-build-modulated: + (cd $(WORKSRC); make makefile) + @$(MAKECOOKIE) + +DOC_LIST = ChangeLog Exim3.upgrade Exim4.upgrade NewStuff OptionLists.txt +DOC_LIST += README README.SIEVE dbm.discuss.txt filter.txt pcrepattern.txt +DOC_LIST += pcretest.txt spec.txt + +post-install-modulated: + (cd $(DESTDIR)$(prefix)/sbin; \ + mv exim-$(VERSION)-1 exim; \ + /usr/ccs/bin/strip $(BINS); \ + /usr/ccs/bin/mcs -d $(BINS)) + (cd $(DESTDIR)$(prefix)/etc/exim; \ + for i in aliases exim.conf; do \ + if [ -r "$$i" ]; then \ + echo "$$i -> $$i.CSW"; \ + mv "$$i" "$$i.CSW"; \ + fi \ + done) + (cd $(DESTDIR); mkdir -p etc/opt/csw/init.d; \ + cp $(abspath $(FILEDIR)/cswexim) etc/opt/csw/init.d ) + mkdir -p $(DESTDIR)$(prefix)/share/doc/exim + cp -p files/README.CSW $(DESTDIR)$(prefix)/share/doc/exim/README.CSW + cp -p files/exim-env.sh $(DESTDIR)$(prefix)/etc/exim/exim-env.sh.CSW + (cd $(WORKSRC)/doc; \ + cp -p $(DOC_LIST) $(DESTDIR)$(prefix)/share/doc/exim) + gzip -f $(DESTDIR)$(prefix)/share/doc/exim/ChangeLog + gzip -f $(DESTDIR)$(prefix)/share/doc/exim/spec.txt + @$(MAKECOOKIE) + +post-merge: + ( cd $(PKGROOT); mkdir -p ./$(UGPATH); \ + echo "$(UGENTRY)" > ./$(UGPATH)/cswusergroup ) + ( cd $(PKGROOT); mkdir -p opt/csw/var/log/exim ) + @$(MAKECOOKIE) Deleted: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch =================================================================== --- csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch 2010-12-17 20:22:15 UTC (rev 11990) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch 2010-12-18 20:39:34 UTC (rev 12011) @@ -1,317 +0,0 @@ -From 5c1f33d87884e0c66ace1fd36e290cbe28d5c0de Mon Sep 17 00:00:00 2001 -From: Ben Walton -Date: Tue, 14 Dec 2010 03:31:46 +0100 -Subject: [PATCH] Set OpenCSW build options - -Modify the template Local/Makefile to set the options for the csw -environment. - -Signed-off-by: Ben Walton ---- - Local/Makefile | 90 ++++++++++++++++++++++++++++---------------------------- - 1 files changed, 45 insertions(+), 45 deletions(-) - -diff --git a/Local/Makefile b/Local/Makefile -index 9869eb1..6ba1bf8 100644 ---- a/Local/Makefile -+++ b/Local/Makefile -@@ -100,7 +100,7 @@ - # /usr/local/sbin. The installation script will try to create this directory, - # and any superior directories, if they do not exist. - --BIN_DIRECTORY=/usr/exim/bin -+BIN_DIRECTORY=/opt/csw/sbin - - - #------------------------------------------------------------------------------ -@@ -116,7 +116,7 @@ BIN_DIRECTORY=/usr/exim/bin - # don't exist. It will also install a default runtime configuration if this - # file does not exist. - --CONFIGURE_FILE=/usr/exim/configure -+CONFIGURE_FILE=/opt/csw/etc/exim/exim.conf - - # It is possible to specify a colon-separated list of files for CONFIGURE_FILE. - # In this case, Exim will use the first of them that exists when it is run. -@@ -134,7 +134,7 @@ CONFIGURE_FILE=/usr/exim/configure - # owner of a local mailbox.) Specifying these values as root is very strongly - # discouraged. - --EXIM_USER= -+EXIM_USER=ref:exim - - # If you specify EXIM_USER as a name, this is looked up at build time, and the - # uid number is built into the binary. However, you can specify that this -@@ -176,7 +176,7 @@ EXIM_USER= - - # Almost all installations choose this: - --SPOOL_DIRECTORY=/var/spool/exim -+SPOOL_DIRECTORY=/opt/csw/var/spool/exim - - - -@@ -214,7 +214,7 @@ ROUTER_REDIRECT=yes - - # This one is very special-purpose, so is not included by default. - --# ROUTER_IPLOOKUP=yes -+ROUTER_IPLOOKUP=yes - - - #------------------------------------------------------------------------------ -@@ -235,7 +235,7 @@ TRANSPORT_SMTP=yes - # This one is special-purpose, and commonly not required, so it is not - # included by default. - --# TRANSPORT_LMTP=yes -+TRANSPORT_LMTP=yes - - - #------------------------------------------------------------------------------ -@@ -244,9 +244,9 @@ TRANSPORT_SMTP=yes - # MBX, is included only when requested. If you do not know what this is about, - # leave these settings commented out. - --# SUPPORT_MAILDIR=yes --# SUPPORT_MAILSTORE=yes --# SUPPORT_MBX=yes -+SUPPORT_MAILDIR=yes -+SUPPORT_MAILSTORE=yes -+SUPPORT_MBX=yes - - - #------------------------------------------------------------------------------ -@@ -262,16 +262,16 @@ LOOKUP_DBM=yes - LOOKUP_LSEARCH=yes - LOOKUP_DNSDB=yes - --# LOOKUP_CDB=yes --# LOOKUP_DSEARCH=yes -+LOOKUP_CDB=yes -+LOOKUP_DSEARCH=yes - # LOOKUP_IBASE=yes --# LOOKUP_LDAP=yes --# LOOKUP_MYSQL=yes --# LOOKUP_NIS=yes --# LOOKUP_NISPLUS=yes -+LOOKUP_LDAP=yes -+LOOKUP_MYSQL=yes -+LOOKUP_NIS=yes -+LOOKUP_NISPLUS=yes - # LOOKUP_ORACLE=yes --# LOOKUP_PASSWD=yes --# LOOKUP_PGSQL=yes -+LOOKUP_PASSWD=yes -+LOOKUP_PGSQL=yes - # LOOKUP_SQLITE=yes - # LOOKUP_WHOSON=yes - -@@ -292,7 +292,7 @@ LOOKUP_DNSDB=yes - # with Solaris 7 onwards. Uncomment whichever of these you are using. - - # LDAP_LIB_TYPE=OPENLDAP1 --# LDAP_LIB_TYPE=OPENLDAP2 -+LDAP_LIB_TYPE=OPENLDAP2 - # LDAP_LIB_TYPE=NETSCAPE - # LDAP_LIB_TYPE=SOLARIS - -@@ -321,8 +321,8 @@ PCRE_LIBS=-lpcre - # specified in INCLUDE. The settings below are just examples; -lpq is for - # PostgreSQL, -lgds is for Interbase, -lsqlite3 is for SQLite. - --# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include --# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq -lgds -lsqlite3 -+LOOKUP_INCLUDE=-I /opt/csw/mysql5/include/mysql -I /opt/csw/postgresql/include -+LOOKUP_LIBS=-L/opt/csw/mysql5/lib/mysql -L/opt/csw/postgresql/lib -lldap -llber -lmysqlclient -lpq - - - #------------------------------------------------------------------------------ -@@ -343,14 +343,14 @@ EXIM_MONITOR=eximon.bin - # and the MIME ACL. Please read the documentation to learn more about these - # features. - --# WITH_CONTENT_SCAN=yes -+WITH_CONTENT_SCAN=yes - - # If you want to use the deprecated "demime" condition in the DATA ACL, - # uncomment the line below. Doing so will also explicitly turn on the - # WITH_CONTENT_SCAN option. If possible, use the MIME ACL instead of - # the "demime" condition. - --# WITH_OLD_DEMIME=yes -+WITH_OLD_DEMIME=yes - - #------------------------------------------------------------------------------ - # Compiling Exim with experimental features. These are documented in -@@ -361,9 +361,9 @@ EXIM_MONITOR=eximon.bin - # installed on your system (www.libspf2.org). Depending on where it is installed - # you may have to edit the CFLAGS and LDFLAGS lines. - --# EXPERIMENTAL_SPF=yes -+EXPERIMENTAL_SPF=yes - # CFLAGS += -I/usr/local/include --# LDFLAGS += -lspf2 -+LDFLAGS += -lspf2 - - # Uncomment the following lines to add SRS (Sender rewriting scheme) support. - # You need to have libsrs_alt installed on your system (srs.mirtol.com). -@@ -451,7 +451,7 @@ FIXED_NEVER_USERS=root - # used. The prefix can be more restrictive than just a directory (the second - # example). - --# ALT_CONFIG_PREFIX=/some/directory/ -+ALT_CONFIG_PREFIX=/opt/csw/etc/exim/ - # ALT_CONFIG_PREFIX=/some/directory/exim.conf- - - -@@ -486,11 +486,11 @@ FIXED_NEVER_USERS=root - # included in the Exim binary. You will then need to set up the run time - # configuration to make use of the mechanism(s) selected. - --# AUTH_CRAM_MD5=yes --# AUTH_CYRUS_SASL=yes --# AUTH_DOVECOT=yes --# AUTH_PLAINTEXT=yes --# AUTH_SPA=yes -+AUTH_CRAM_MD5=yes -+AUTH_CYRUS_SASL=yes -+AUTH_DOVECOT=yes -+AUTH_PLAINTEXT=yes -+AUTH_SPA=yes - - - #------------------------------------------------------------------------------ -@@ -498,7 +498,7 @@ FIXED_NEVER_USERS=root - # Cyrus SASL library installed before trying to build Exim, and you probably - # want to uncomment the following line: - --# AUTH_LIBS=-lsasl2 -+AUTH_LIBS=-lsasl2 - - - #------------------------------------------------------------------------------ -@@ -527,7 +527,7 @@ HEADERS_CHARSET="ISO-8859-1" - # the Sieve filter support. For those OS where iconv() is known to be installed - # as standard, the file in OS/Makefile-xxxx contains - # --# HAVE_ICONV=yes -+HAVE_ICONV=yes - # - # If you are not using one of those systems, but have installed iconv(), you - # need to uncomment that line above. In some cases, you may find that iconv() -@@ -536,7 +536,7 @@ HEADERS_CHARSET="ISO-8859-1" - # - # HAVE_ICONV=yes - # CFLAGS=-O -I/usr/local/include --# EXTRALIBS_EXIM=-L/usr/local/lib -liconv -+EXTRALIBS_EXIM=-L/opt/csw/lib -liconv -lpam -ldl - # - # but of course there may need to be other things in CFLAGS and EXTRALIBS_EXIM - # as well. -@@ -589,10 +589,10 @@ HEADERS_CHARSET="ISO-8859-1" - # leave these settings commented out. - - # This setting is required for any TLS support (either OpenSSL or GnuTLS) --# SUPPORT_TLS=yes -+SUPPORT_TLS=yes - - # Uncomment this setting if you are using OpenSSL --# TLS_LIBS=-lssl -lcrypto -+TLS_LIBS=-lssl -lcrypto - - # Uncomment these settings if you are using GnuTLS - # USE_GNUTLS=yes -@@ -611,7 +611,7 @@ HEADERS_CHARSET="ISO-8859-1" - # with all your other libraries. If they are in a special directory, you may - # need something like - --# TLS_LIBS=-L/usr/local/openssl/lib -lssl -lcrypto -+TLS_LIBS=-L/opt/csw/lib/ -lssl -lcrypto - # or - # TLS_LIBS=-L/opt/gnu/lib -lgnutls -ltasn1 -lgcrypt - -@@ -619,7 +619,7 @@ HEADERS_CHARSET="ISO-8859-1" - # auxiliary programs. If the include files are not in a standard place, you can - # set TLS_INCLUDE to specify where they are, for example: - --# TLS_INCLUDE=-I/usr/local/openssl/include/ -+TLS_INCLUDE=-I/opt/csw/include/openssl - # or - # TLS_INCLUDE=-I/opt/gnu/include - -@@ -643,7 +643,7 @@ HEADERS_CHARSET="ISO-8859-1" - # Once you have done this, "make install" will build the info files and - # install them in the directory you have defined. - --# INFO_DIRECTORY=/usr/share/info -+INFO_DIRECTORY=/opt/csw/share/info - - - #------------------------------------------------------------------------------ -@@ -656,7 +656,7 @@ HEADERS_CHARSET="ISO-8859-1" - # %s. This will be replaced by one of the strings "main", "panic", or "reject" - # to form the final file names. Some installations may want something like this: - --# LOG_FILE_PATH=/var/log/exim_%slog -+LOG_FILE_PATH=/opt/csw/var/log/%slog - - # which results in files with names /var/log/exim_mainlog, etc. The directory - # in which the log files are placed must exist; Exim does not try to create -@@ -705,7 +705,7 @@ EXICYCLOG_MAX=10 - # files. Both the name of the command and the suffix that it adds to files - # need to be defined here. See also the EXICYCLOG_MAX configuration. - --COMPRESS_COMMAND=/usr/bin/gzip -+COMPRESS_COMMAND=/opt/csw/bin/gzip - COMPRESS_SUFFIX=gz - - -@@ -713,7 +713,7 @@ COMPRESS_SUFFIX=gz - # If the exigrep utility is fed compressed log files, it tries to uncompress - # them using this command. - --ZCAT_COMMAND=/usr/bin/zcat -+ZCAT_COMMAND=/opt/csw/bin/zcat - - - #------------------------------------------------------------------------------ -@@ -732,7 +732,7 @@ ZCAT_COMMAND=/usr/bin/zcat - # that the local_scan API is made available by the linker. You may also need - # to add -ldl to EXTRALIBS so that dlopen() is available to Exim. - --# EXPAND_DLFUNC=yes -+EXPAND_DLFUNC=yes - - - #------------------------------------------------------------------------------ -@@ -742,7 +742,7 @@ ZCAT_COMMAND=/usr/bin/zcat - # support, which is intended for use in conjunction with the SMTP AUTH - # facilities, is included only when requested by the following setting: - --# SUPPORT_PAM=yes -+SUPPORT_PAM=yes - - # You probably need to add -lpam to EXTRALIBS, and in some releases of - # GNU/Linux -ldl is also needed. -@@ -839,7 +839,7 @@ ZCAT_COMMAND=/usr/bin/zcat - # (the value doesn't matter), the symbolic link is not created or moved. You - # will then have to "turn Exim on" by setting up the link manually. - --# NO_SYMLINK=yes -+NO_SYMLINK=yes - - - #------------------------------------------------------------------------------ -@@ -851,7 +851,7 @@ ZCAT_COMMAND=/usr/bin/zcat - # aliases). The following setting can be changed to specify a different - # location for the system alias file. - --SYSTEM_ALIASES_FILE=/etc/aliases -+SYSTEM_ALIASES_FILE=/opt/csw/etc/exim/aliases - - - #------------------------------------------------------------------------------ --- -1.7.3.2 - Copied: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch (from rev 12007, csw/mgar/pkg/exim/trunk/files/0003-Set-OpenCSW-build-options.patch) =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch (rev 0) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch 2010-12-18 20:39:34 UTC (rev 12011) @@ -0,0 +1,317 @@ +From 5c1f33d87884e0c66ace1fd36e290cbe28d5c0de Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Tue, 14 Dec 2010 03:31:46 +0100 +Subject: [PATCH] Set OpenCSW build options + +Modify the template Local/Makefile to set the options for the csw +environment. + +Signed-off-by: Ben Walton +--- + Local/Makefile | 90 ++++++++++++++++++++++++++++---------------------------- + 1 files changed, 45 insertions(+), 45 deletions(-) + +diff --git a/Local/Makefile b/Local/Makefile +index 9869eb1..6ba1bf8 100644 +--- a/Local/Makefile ++++ b/Local/Makefile +@@ -100,7 +100,7 @@ + # /usr/local/sbin. The installation script will try to create this directory, + # and any superior directories, if they do not exist. + +-BIN_DIRECTORY=/usr/exim/bin ++BIN_DIRECTORY=/opt/csw/sbin + + + #------------------------------------------------------------------------------ +@@ -116,7 +116,7 @@ BIN_DIRECTORY=/usr/exim/bin + # don't exist. It will also install a default runtime configuration if this + # file does not exist. + +-CONFIGURE_FILE=/usr/exim/configure ++CONFIGURE_FILE=/opt/csw/etc/exim/exim.conf + + # It is possible to specify a colon-separated list of files for CONFIGURE_FILE. + # In this case, Exim will use the first of them that exists when it is run. +@@ -134,7 +134,7 @@ CONFIGURE_FILE=/usr/exim/configure + # owner of a local mailbox.) Specifying these values as root is very strongly + # discouraged. + +-EXIM_USER= ++EXIM_USER=ref:exim + + # If you specify EXIM_USER as a name, this is looked up at build time, and the + # uid number is built into the binary. However, you can specify that this +@@ -176,7 +176,7 @@ EXIM_USER= + + # Almost all installations choose this: + +-SPOOL_DIRECTORY=/var/spool/exim ++SPOOL_DIRECTORY=/opt/csw/var/spool/exim + + + +@@ -214,7 +214,7 @@ ROUTER_REDIRECT=yes + + # This one is very special-purpose, so is not included by default. + +-# ROUTER_IPLOOKUP=yes ++ROUTER_IPLOOKUP=yes + + + #------------------------------------------------------------------------------ +@@ -235,7 +235,7 @@ TRANSPORT_SMTP=yes + # This one is special-purpose, and commonly not required, so it is not + # included by default. + +-# TRANSPORT_LMTP=yes ++TRANSPORT_LMTP=yes + + + #------------------------------------------------------------------------------ +@@ -244,9 +244,9 @@ TRANSPORT_SMTP=yes + # MBX, is included only when requested. If you do not know what this is about, + # leave these settings commented out. + +-# SUPPORT_MAILDIR=yes +-# SUPPORT_MAILSTORE=yes +-# SUPPORT_MBX=yes ++SUPPORT_MAILDIR=yes ++SUPPORT_MAILSTORE=yes ++SUPPORT_MBX=yes + + + #------------------------------------------------------------------------------ +@@ -262,16 +262,16 @@ LOOKUP_DBM=yes + LOOKUP_LSEARCH=yes + LOOKUP_DNSDB=yes + +-# LOOKUP_CDB=yes +-# LOOKUP_DSEARCH=yes ++LOOKUP_CDB=yes ++LOOKUP_DSEARCH=yes + # LOOKUP_IBASE=yes +-# LOOKUP_LDAP=yes +-# LOOKUP_MYSQL=yes +-# LOOKUP_NIS=yes +-# LOOKUP_NISPLUS=yes ++LOOKUP_LDAP=yes ++LOOKUP_MYSQL=yes ++LOOKUP_NIS=yes ++LOOKUP_NISPLUS=yes + # LOOKUP_ORACLE=yes +-# LOOKUP_PASSWD=yes +-# LOOKUP_PGSQL=yes ++LOOKUP_PASSWD=yes ++LOOKUP_PGSQL=yes + # LOOKUP_SQLITE=yes + # LOOKUP_WHOSON=yes + +@@ -292,7 +292,7 @@ LOOKUP_DNSDB=yes + # with Solaris 7 onwards. Uncomment whichever of these you are using. + + # LDAP_LIB_TYPE=OPENLDAP1 +-# LDAP_LIB_TYPE=OPENLDAP2 ++LDAP_LIB_TYPE=OPENLDAP2 + # LDAP_LIB_TYPE=NETSCAPE + # LDAP_LIB_TYPE=SOLARIS + +@@ -321,8 +321,8 @@ PCRE_LIBS=-lpcre + # specified in INCLUDE. The settings below are just examples; -lpq is for + # PostgreSQL, -lgds is for Interbase, -lsqlite3 is for SQLite. + +-# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include +-# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq -lgds -lsqlite3 ++LOOKUP_INCLUDE=-I /opt/csw/mysql5/include/mysql -I /opt/csw/postgresql/include ++LOOKUP_LIBS=-L/opt/csw/mysql5/lib/mysql -L/opt/csw/postgresql/lib -lldap -llber -lmysqlclient -lpq + + + #------------------------------------------------------------------------------ +@@ -343,14 +343,14 @@ EXIM_MONITOR=eximon.bin + # and the MIME ACL. Please read the documentation to learn more about these + # features. + +-# WITH_CONTENT_SCAN=yes ++WITH_CONTENT_SCAN=yes + + # If you want to use the deprecated "demime" condition in the DATA ACL, + # uncomment the line below. Doing so will also explicitly turn on the + # WITH_CONTENT_SCAN option. If possible, use the MIME ACL instead of + # the "demime" condition. + +-# WITH_OLD_DEMIME=yes ++WITH_OLD_DEMIME=yes + + #------------------------------------------------------------------------------ + # Compiling Exim with experimental features. These are documented in +@@ -361,9 +361,9 @@ EXIM_MONITOR=eximon.bin + # installed on your system (www.libspf2.org). Depending on where it is installed + # you may have to edit the CFLAGS and LDFLAGS lines. + +-# EXPERIMENTAL_SPF=yes ++EXPERIMENTAL_SPF=yes + # CFLAGS += -I/usr/local/include +-# LDFLAGS += -lspf2 ++LDFLAGS += -lspf2 + + # Uncomment the following lines to add SRS (Sender rewriting scheme) support. + # You need to have libsrs_alt installed on your system (srs.mirtol.com). +@@ -451,7 +451,7 @@ FIXED_NEVER_USERS=root + # used. The prefix can be more restrictive than just a directory (the second + # example). + +-# ALT_CONFIG_PREFIX=/some/directory/ ++ALT_CONFIG_PREFIX=/opt/csw/etc/exim/ + # ALT_CONFIG_PREFIX=/some/directory/exim.conf- + + +@@ -486,11 +486,11 @@ FIXED_NEVER_USERS=root + # included in the Exim binary. You will then need to set up the run time + # configuration to make use of the mechanism(s) selected. + +-# AUTH_CRAM_MD5=yes +-# AUTH_CYRUS_SASL=yes +-# AUTH_DOVECOT=yes +-# AUTH_PLAINTEXT=yes +-# AUTH_SPA=yes ++AUTH_CRAM_MD5=yes ++AUTH_CYRUS_SASL=yes ++AUTH_DOVECOT=yes ++AUTH_PLAINTEXT=yes ++AUTH_SPA=yes + + + #------------------------------------------------------------------------------ +@@ -498,7 +498,7 @@ FIXED_NEVER_USERS=root + # Cyrus SASL library installed before trying to build Exim, and you probably + # want to uncomment the following line: + +-# AUTH_LIBS=-lsasl2 ++AUTH_LIBS=-lsasl2 + + + #------------------------------------------------------------------------------ +@@ -527,7 +527,7 @@ HEADERS_CHARSET="ISO-8859-1" + # the Sieve filter support. For those OS where iconv() is known to be installed + # as standard, the file in OS/Makefile-xxxx contains + # +-# HAVE_ICONV=yes ++HAVE_ICONV=yes + # + # If you are not using one of those systems, but have installed iconv(), you + # need to uncomment that line above. In some cases, you may find that iconv() +@@ -536,7 +536,7 @@ HEADERS_CHARSET="ISO-8859-1" + # + # HAVE_ICONV=yes + # CFLAGS=-O -I/usr/local/include +-# EXTRALIBS_EXIM=-L/usr/local/lib -liconv ++EXTRALIBS_EXIM=-L/opt/csw/lib -liconv -lpam -ldl + # + # but of course there may need to be other things in CFLAGS and EXTRALIBS_EXIM + # as well. +@@ -589,10 +589,10 @@ HEADERS_CHARSET="ISO-8859-1" + # leave these settings commented out. + + # This setting is required for any TLS support (either OpenSSL or GnuTLS) +-# SUPPORT_TLS=yes ++SUPPORT_TLS=yes + + # Uncomment this setting if you are using OpenSSL +-# TLS_LIBS=-lssl -lcrypto ++TLS_LIBS=-lssl -lcrypto + + # Uncomment these settings if you are using GnuTLS + # USE_GNUTLS=yes +@@ -611,7 +611,7 @@ HEADERS_CHARSET="ISO-8859-1" + # with all your other libraries. If they are in a special directory, you may + # need something like + +-# TLS_LIBS=-L/usr/local/openssl/lib -lssl -lcrypto ++TLS_LIBS=-L/opt/csw/lib/ -lssl -lcrypto + # or + # TLS_LIBS=-L/opt/gnu/lib -lgnutls -ltasn1 -lgcrypt + +@@ -619,7 +619,7 @@ HEADERS_CHARSET="ISO-8859-1" + # auxiliary programs. If the include files are not in a standard place, you can + # set TLS_INCLUDE to specify where they are, for example: + +-# TLS_INCLUDE=-I/usr/local/openssl/include/ ++TLS_INCLUDE=-I/opt/csw/include/openssl + # or + # TLS_INCLUDE=-I/opt/gnu/include + +@@ -643,7 +643,7 @@ HEADERS_CHARSET="ISO-8859-1" + # Once you have done this, "make install" will build the info files and + # install them in the directory you have defined. + +-# INFO_DIRECTORY=/usr/share/info ++INFO_DIRECTORY=/opt/csw/share/info + + + #------------------------------------------------------------------------------ +@@ -656,7 +656,7 @@ HEADERS_CHARSET="ISO-8859-1" + # %s. This will be replaced by one of the strings "main", "panic", or "reject" + # to form the final file names. Some installations may want something like this: + +-# LOG_FILE_PATH=/var/log/exim_%slog ++LOG_FILE_PATH=/opt/csw/var/log/exim/%slog + + # which results in files with names /var/log/exim_mainlog, etc. The directory + # in which the log files are placed must exist; Exim does not try to create +@@ -705,7 +705,7 @@ EXICYCLOG_MAX=10 + # files. Both the name of the command and the suffix that it adds to files + # need to be defined here. See also the EXICYCLOG_MAX configuration. + +-COMPRESS_COMMAND=/usr/bin/gzip ++COMPRESS_COMMAND=/opt/csw/bin/gzip + COMPRESS_SUFFIX=gz + + +@@ -713,7 +713,7 @@ COMPRESS_SUFFIX=gz + # If the exigrep utility is fed compressed log files, it tries to uncompress + # them using this command. + +-ZCAT_COMMAND=/usr/bin/zcat ++ZCAT_COMMAND=/opt/csw/bin/zcat + + + #------------------------------------------------------------------------------ +@@ -732,7 +732,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # that the local_scan API is made available by the linker. You may also need + # to add -ldl to EXTRALIBS so that dlopen() is available to Exim. + +-# EXPAND_DLFUNC=yes ++EXPAND_DLFUNC=yes + + + #------------------------------------------------------------------------------ +@@ -742,7 +742,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # support, which is intended for use in conjunction with the SMTP AUTH + # facilities, is included only when requested by the following setting: + +-# SUPPORT_PAM=yes ++SUPPORT_PAM=yes + + # You probably need to add -lpam to EXTRALIBS, and in some releases of + # GNU/Linux -ldl is also needed. +@@ -839,7 +839,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # (the value doesn't matter), the symbolic link is not created or moved. You + # will then have to "turn Exim on" by setting up the link manually. + +-# NO_SYMLINK=yes ++NO_SYMLINK=yes + + + #------------------------------------------------------------------------------ +@@ -851,7 +851,7 @@ ZCAT_COMMAND=/usr/bin/zcat + # aliases). The following setting can be changed to specify a different + # location for the system alias file. + +-SYSTEM_ALIASES_FILE=/etc/aliases ++SYSTEM_ALIASES_FILE=/opt/csw/etc/exim/aliases + + + #------------------------------------------------------------------------------ +-- +1.7.3.2 + Deleted: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/cswexim =================================================================== --- csw/mgar/pkg/exim/trunk/files/cswexim 2010-12-17 20:22:15 UTC (rev 11990) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/cswexim 2010-12-18 20:39:34 UTC (rev 12011) @@ -1,62 +0,0 @@ -#! /bin/sh -# /etc/init.d/exim -# -# Written by Miquel van Smoorenburg . -# Modified for Debian GNU/Linux by Ian Murdock . -# Modified for exim by Tim Cutts -# Modified for Blastwave by Markus Mayer -# Modified for OpenCSW by Ben Walton - -# These are consumed by the i.cswinitsmf class action script -#MANIFEST /var/opt/csw/svc/manifest/network/exim.xml - -# Exit if exim (or another MTA) runs from /etc/inetd.conf -if [ -f /etc/inetd.conf ] && grep "^ *\([0-9.]\+:\)\?smtp" /etc/inetd.conf >/dev/null; then - exit 0 -fi - -DAEMON=/opt/csw/sbin/exim -PIDFILE=/var/run/exim.pid -CONFFILE=/opt/csw/etc/exim/exim.conf -ENVFILE=/opt/csw/etc/exim/exim-env.sh - -# Exit if there's no exim binary -test -x "$DAEMON" || exit 0 - -# Make sure we have exim.conf -test -r "$CONFFILE" || exit 0 - -# Read customizable environment if it exists -test -r "$ENVFILE" && . "$ENVFILE" - -# Use default parameters if $ENVFILE doesn't set $EXIM_PARAMS -test -z "$EXIM_PARAMS" && EXIM_PARAMS="-bd -q30m" - -case "$1" in - start) - echo "Starting MTA: \c" - $DAEMON $EXIM_PARAMS - echo "exim." - ;; - stop) - echo "Stopping MTA: \c" - kill `cat "$PIDFILE"` - echo "exim." - ;; - restart) - echo "Restarting MTA: \c" - kill `cat "$PIDFILE"` - $DAEMON $EXIM_PARAMS - echo "exim." - ;; - reload|refresh|force-reload) - echo "Reloading exim configuration files" - kill -1 `cat "$PIDFILE"` - ;; - *) - echo "Usage: $0 {start|stop|restart|reload}" - exit 1 - ;; -esac - -exit 0 Copied: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/cswexim (from rev 12000, csw/mgar/pkg/exim/trunk/files/cswexim) =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/cswexim (rev 0) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/cswexim 2010-12-18 20:39:34 UTC (rev 12011) @@ -0,0 +1,59 @@ +#! /bin/sh +# /etc/init.d/exim +# +# Written by Miquel van Smoorenburg . +# Modified for Debian GNU/Linux by Ian Murdock . +# Modified for exim by Tim Cutts +# Modified for Blastwave by Markus Mayer +# Modified for OpenCSW by Ben Walton + +# Exit if exim (or another MTA) runs from /etc/inetd.conf +if [ -f /etc/inetd.conf ] && grep "^ *\([0-9.]\+:\)\?smtp" /etc/inetd.conf >/dev/null; then + exit 0 +fi + +DAEMON=/opt/csw/sbin/exim +PIDFILE=/var/run/exim.pid +CONFFILE=/opt/csw/etc/exim/exim.conf +ENVFILE=/opt/csw/etc/exim/exim-env.sh + +# Exit if there's no exim binary +test -x "$DAEMON" || exit 0 + +# Make sure we have exim.conf +test -r "$CONFFILE" || exit 0 + +# Read customizable environment if it exists +test -r "$ENVFILE" && . "$ENVFILE" + +# Use default parameters if $ENVFILE doesn't set $EXIM_PARAMS +test -z "$EXIM_PARAMS" && EXIM_PARAMS="-bd -q30m" + +case "$1" in + start) + echo "Starting MTA: \c" + $DAEMON $EXIM_PARAMS + echo "exim." + ;; + stop) + echo "Stopping MTA: \c" + kill `cat "$PIDFILE"` + echo "exim." + ;; + restart) + echo "Restarting MTA: \c" + kill `cat "$PIDFILE"` + $DAEMON $EXIM_PARAMS + echo "exim." + ;; + reload|refresh|force-reload) + echo "Reloading exim configuration files" + kill -1 `cat "$PIDFILE"` + ;; + *) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 + ;; +esac + +exit 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 21:50:40 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 20:50:40 +0000 Subject: [csw-devel] SF.net SVN: gar:[12012] csw/mgar/pkg/exim/branches/dir-loc-fixes/files Message-ID: Revision: 12012 http://gar.svn.sourceforge.net/gar/?rev=12012&view=rev Author: bdwalton Date: 2010-12-18 20:50:40 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: drop a bunch of unnecessary files from old package Removed Paths: ------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.checkinstall csw/mgar/pkg/exim/branches/dir-loc-fixes/files/create_rc.d.sh csw/mgar/pkg/exim/branches/dir-loc-fixes/files/exim.xml csw/mgar/pkg/exim/branches/dir-loc-fixes/files/exim_install.patch csw/mgar/pkg/exim/branches/dir-loc-fixes/files/i.smfno csw/mgar/pkg/exim/branches/dir-loc-fixes/files/i.smfyes csw/mgar/pkg/exim/branches/dir-loc-fixes/files/spf2.patch Deleted: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.checkinstall =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.checkinstall 2010-12-18 20:39:34 UTC (rev 12011) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.checkinstall 2010-12-18 20:50:40 UTC (rev 12012) @@ -1,21 +0,0 @@ -#!/sbin/sh -trap `exit 3` 15 -# Assign Solaris release class to install release specific files -smf=no -test -f $PKG_INSTALL_ROOT/usr/sbin/svccfg -a -f $PKG_INSTALL_ROOT/usr/sbin/svcadm && smf=yes - -if [ $smf = yes ] -then - CLASSES='none smfyes' -else - CLASSES='none smfno' -fi - -# Make env variables available to other packaging scripts - -cat >>$1 <" 1>&2 - exit 1 -fi - -echo "Checking for $destdir/etc/init.d..." -test -d "$destdir/etc/init.d" || mkdir -p "$destdir/etc/init.d" - -echo "Copying init script..." -cp -p "files/$init_script" "$destdir/etc/init.d" - -for d in $runlevel_dirs; do - echo "Processing runlevel directory $d..." - if [ "$d" = "rc3.d" ]; then - linkname="S$startlevel$init_script" - else - linkname="K$stoplevel$init_script" - fi - test -d "$destdir/etc/$d" || mkdir "$destdir/etc/$d" -# echo "cd $destdir/etc/$d; ln -s ../init.d/$init_script $linkname" - (cd "$destdir/etc/$d"; \ - test -h "$linkname" || ln -s "../init.d/$init_script" "$linkname") -done Deleted: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/exim.xml =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/exim.xml 2010-12-18 20:39:34 UTC (rev 12011) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/exim.xml 2010-12-18 20:50:40 UTC (rev 12012) @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/exim_install.patch =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/exim_install.patch 2010-12-18 20:39:34 UTC (rev 12011) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/exim_install.patch 2010-12-18 20:50:40 UTC (rev 12012) @@ -1,12 +0,0 @@ ---- exim-4.62.orig/scripts/exim_install.orig 2006-04-28 03:32:21.000000000 -0700 -+++ exim-4.62/scripts/exim_install 2006-06-19 20:07:38.699034000 -0700 -@@ -218,8 +218,7 @@ - # The exim binary is handled specially - - if [ $name = exim${EXE} ]; then -- version=exim-`./exim -bV -C /dev/null | \ -- awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE} -+ version=exim-$EXIM_VERSION${EXE} - - if [ "${version}" = "exim-${EXE}" ]; then - echo $com "" Deleted: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/i.smfno =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/i.smfno 2010-12-18 20:39:34 UTC (rev 12011) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/i.smfno 2010-12-18 20:50:40 UTC (rev 12012) @@ -1,7 +0,0 @@ -#!/sbin/sh -echo "Installing class ." -while read src dest; do - /bin/cp -p "$src" "$dest" || exit 2 - echo "$dest" -done -exit 0 Deleted: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/i.smfyes =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/i.smfyes 2010-12-18 20:39:34 UTC (rev 12011) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/i.smfyes 2010-12-18 20:50:40 UTC (rev 12012) @@ -1,7 +0,0 @@ -#!/sbin/sh -echo "Installing class ." -while read src dest; do - /bin/cp -p "$src" "$dest" || exit 2 - echo "$dest" -done -exit 0 Deleted: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/spf2.patch =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/spf2.patch 2010-12-18 20:39:34 UTC (rev 12011) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/spf2.patch 2010-12-18 20:50:40 UTC (rev 12012) @@ -1,20 +0,0 @@ -diff -ru exim-4.63/spf2.orig/spf_server.h exim-4.63/spf2/spf_server.h ---- exim-4.63/spf2.orig/spf_server.h 2005-04-09 04:58:25.000000000 -0700 -+++ exim-4.63/spf2/spf_server.h 2006-09-01 13:09:03.329136000 -0700 -@@ -20,7 +20,6 @@ - - #include "spf_record.h" - #include "spf_dns.h" --#include "spf_dns_internal.h" - - #ifndef SPF_MAX_DNS_MECH - /* It is a bad idea to change this for two reasons. -@@ -96,8 +95,4 @@ - int \ - SPF_server_get_max_dns_mech(SPF_server_t *spf_server); - --SPF_DECL_ACCESS_INT(max_dns_mech); --SPF_DECL_ACCESS_INT(max_dns_ptr); --SPF_DECL_ACCESS_INT(max_dns_mx); -- - #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 21:55:51 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 20:55:51 +0000 Subject: [csw-devel] SF.net SVN: gar:[12013] csw/mgar/pkg/exim/branches/dir-loc-fixes/files/ CSWexim.postremove Message-ID: Revision: 12013 http://gar.svn.sourceforge.net/gar/?rev=12013&view=rev Author: bdwalton Date: 2010-12-18 20:55:51 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: small streamline of postremove script Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postremove Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postremove =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postremove 2010-12-18 20:50:40 UTC (rev 12012) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postremove 2010-12-18 20:55:51 UTC (rev 12013) @@ -8,12 +8,7 @@ mount | grep '^/usr ' | grep 'read only' >/dev/null } -# in Solaris 8 it's in /usr/bin; in Solaris 9 in /usr/sbin -if [ -r "$PKG_INSTALL_ROOT/usr/bin/newaliases" ]; then - NEWALIASES="$PKG_INSTALL_ROOT/usr/bin/newaliases" -elif [ -r "$PKG_INSTALL_ROOT/usr/sbin/newaliases" ]; then - NEWALIASES="$PKG_INSTALL_ROOT/usr/sbin/newaliases" -fi +NEWALIASES="$PKG_INSTALL_ROOT/usr/sbin/newaliases" if [ "$SENDMAIL_ACTION" = "replace" ]; then is_usr_readonly This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 22:12:47 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 21:12:47 +0000 Subject: [csw-devel] SF.net SVN: gar:[12014] csw/mgar/pkg/exim/branches/dir-loc-fixes/files/ 0003-Set-OpenCSW-build-options.patch Message-ID: Revision: 12014 http://gar.svn.sourceforge.net/gar/?rev=12014&view=rev Author: bdwalton Date: 2010-12-18 21:12:47 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: update Makefile options to use /var/opt/csw and /etc/opt/csw where appropriate Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch 2010-12-18 20:55:51 UTC (rev 12013) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch 2010-12-18 21:12:47 UTC (rev 12014) @@ -1,6 +1,6 @@ -From 5c1f33d87884e0c66ace1fd36e290cbe28d5c0de Mon Sep 17 00:00:00 2001 +From 818e0bc342d55830d7dee8d34506795d8a730879 Mon Sep 17 00:00:00 2001 From: Ben Walton -Date: Tue, 14 Dec 2010 03:31:46 +0100 +Date: Sat, 18 Dec 2010 22:10:08 +0100 Subject: [PATCH] Set OpenCSW build options Modify the template Local/Makefile to set the options for the csw @@ -12,7 +12,7 @@ 1 files changed, 45 insertions(+), 45 deletions(-) diff --git a/Local/Makefile b/Local/Makefile -index 9869eb1..6ba1bf8 100644 +index 9869eb1..0b60f94 100644 --- a/Local/Makefile +++ b/Local/Makefile @@ -100,7 +100,7 @@ @@ -29,7 +29,7 @@ # file does not exist. -CONFIGURE_FILE=/usr/exim/configure -+CONFIGURE_FILE=/opt/csw/etc/exim/exim.conf ++CONFIGURE_FILE=/etc/op/csw/exim/exim.conf # It is possible to specify a colon-separated list of files for CONFIGURE_FILE. # In this case, Exim will use the first of them that exists when it is run. @@ -47,7 +47,7 @@ # Almost all installations choose this: -SPOOL_DIRECTORY=/var/spool/exim -+SPOOL_DIRECTORY=/opt/csw/var/spool/exim ++SPOOL_DIRECTORY=/var/opt/csw/spool/exim @@ -161,7 +161,7 @@ # example). -# ALT_CONFIG_PREFIX=/some/directory/ -+ALT_CONFIG_PREFIX=/opt/csw/etc/exim/ ++ALT_CONFIG_PREFIX=/etc/opt/csw/exim/ # ALT_CONFIG_PREFIX=/some/directory/exim.conf- @@ -254,7 +254,7 @@ # to form the final file names. Some installations may want something like this: -# LOG_FILE_PATH=/var/log/exim_%slog -+LOG_FILE_PATH=/opt/csw/var/log/exim/%slog ++LOG_FILE_PATH=/var/opt/csw/log/exim/%slog # which results in files with names /var/log/exim_mainlog, etc. The directory # in which the log files are placed must exist; Exim does not try to create @@ -308,7 +308,7 @@ # location for the system alias file. -SYSTEM_ALIASES_FILE=/etc/aliases -+SYSTEM_ALIASES_FILE=/opt/csw/etc/exim/aliases ++SYSTEM_ALIASES_FILE=/etc/opt/csw/exim/aliases #------------------------------------------------------------------------------ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 22:18:02 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 21:18:02 +0000 Subject: [csw-devel] SF.net SVN: gar:[12015] csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile Message-ID: Revision: 12015 http://gar.svn.sourceforge.net/gar/?rev=12015&view=rev Author: bdwalton Date: 2010-12-18 21:18:02 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: move logs to /var/opt/csw Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-18 21:12:47 UTC (rev 12014) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-18 21:18:02 UTC (rev 12015) @@ -83,7 +83,7 @@ PROTOTYPE_USER_eximlogs = exim PROTOTYPE_GROUP_eximlogs = exim PROTOTYPE_PERMS_eximlogs = 750 -PROTOTYPE_FILES_eximlogs = $(prefix)/var/log/exim +PROTOTYPE_FILES_eximlogs = /var/opt/csw/log/exim include gar/category.mk @@ -130,5 +130,5 @@ post-merge: ( cd $(PKGROOT); mkdir -p ./$(UGPATH); \ echo "$(UGENTRY)" > ./$(UGPATH)/cswusergroup ) - ( cd $(PKGROOT); mkdir -p opt/csw/var/log/exim ) + ( cd $(PKGROOT); mkdir -p var/opt/csw/log/exim ) @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 22:26:43 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 21:26:43 +0000 Subject: [csw-devel] SF.net SVN: gar:[12016] csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile Message-ID: Revision: 12016 http://gar.svn.sourceforge.net/gar/?rev=12016&view=rev Author: bdwalton Date: 2010-12-18 21:26:43 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: tweak postinstall hook actions for new etc/ location Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-18 21:18:02 UTC (rev 12015) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-18 21:26:43 UTC (rev 12016) @@ -109,7 +109,7 @@ mv exim-$(VERSION)-1 exim; \ /usr/ccs/bin/strip $(BINS); \ /usr/ccs/bin/mcs -d $(BINS)) - (cd $(DESTDIR)$(prefix)/etc/exim; \ + (cd $(DESTDIR)/etc/opt/csw/exim; \ for i in aliases exim.conf; do \ if [ -r "$$i" ]; then \ echo "$$i -> $$i.CSW"; \ @@ -120,7 +120,7 @@ cp $(abspath $(FILEDIR)/cswexim) etc/opt/csw/init.d ) mkdir -p $(DESTDIR)$(prefix)/share/doc/exim cp -p files/README.CSW $(DESTDIR)$(prefix)/share/doc/exim/README.CSW - cp -p files/exim-env.sh $(DESTDIR)$(prefix)/etc/exim/exim-env.sh.CSW + cp -p files/exim-env.sh $(DESTDIR)/etc/opt/csw/exim/exim-env.sh.CSW (cd $(WORKSRC)/doc; \ cp -p $(DOC_LIST) $(DESTDIR)$(prefix)/share/doc/exim) gzip -f $(DESTDIR)$(prefix)/share/doc/exim/ChangeLog This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Dec 18 22:30:50 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 21:30:50 +0000 Subject: [csw-devel] SF.net SVN: gar:[12017] csw/mgar/pkg/exim/branches/dir-loc-fixes/files/ 0003-Set-OpenCSW-build-options.patch Message-ID: Revision: 12017 http://gar.svn.sourceforge.net/gar/?rev=12017&view=rev Author: bdwalton Date: 2010-12-18 21:30:50 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: fix typo in Makefile option setting patch Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch 2010-12-18 21:26:43 UTC (rev 12016) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/0003-Set-OpenCSW-build-options.patch 2010-12-18 21:30:50 UTC (rev 12017) @@ -29,7 +29,7 @@ # file does not exist. -CONFIGURE_FILE=/usr/exim/configure -+CONFIGURE_FILE=/etc/op/csw/exim/exim.conf ++CONFIGURE_FILE=/etc/opt/csw/exim/exim.conf # It is possible to specify a colon-separated list of files for CONFIGURE_FILE. # In this case, Exim will use the first of them that exists when it is run. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From maciej at opencsw.org Sat Dec 18 22:38:35 2010 From: maciej at opencsw.org (Maciej (Matchek) Blizinski) Date: Sat, 18 Dec 2010 21:38:35 +0000 Subject: [csw-devel] SF.net SVN: gar:[12017] csw/mgar/pkg/exim/branches/dir-loc-fixes/files/ 0003-Set-OpenCSW-build-options.patch In-Reply-To: References: Message-ID: No dia 18 de Dezembro de 2010 21:30, escreveu: > ?-CONFIGURE_FILE=/usr/exim/configure > -+CONFIGURE_FILE=/etc/op/csw/exim/exim.conf > ++CONFIGURE_FILE=/etc/opt/csw/exim/exim.conf sysconfdir = /etc$(prefix) CONFIGURE_FILE = $(sysconfdir)/exim/exim.conf From bdwalton at users.sourceforge.net Sat Dec 18 22:48:21 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 18 Dec 2010 21:48:21 +0000 Subject: [csw-devel] SF.net SVN: gar:[12018] csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile Message-ID: Revision: 12018 http://gar.svn.sourceforge.net/gar/?rev=12018&view=rev Author: bdwalton Date: 2010-12-18 21:48:21 +0000 (Sat, 18 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: drop overrides that are no longer needed Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-18 21:30:50 UTC (rev 12017) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-18 21:48:21 UTC (rev 12018) @@ -74,8 +74,6 @@ CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzipextras CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzip -CHECKPKG_OVERRIDES_CSWexim += discouraged-path-in-pkgmap|/opt/csw/var/log -CHECKPKG_OVERRIDES_CSWexim += discouraged-path-in-pkgmap|/opt/csw/var/log/exim PROTOTYPE_MODIFIERS = eximsuid eximlogs PROTOTYPE_PERMS_eximsuid = 4755 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bwalton at opencsw.org Sat Dec 18 22:49:36 2010 From: bwalton at opencsw.org (Ben Walton) Date: Sat, 18 Dec 2010 16:49:36 -0500 Subject: [csw-devel] SF.net SVN: gar:[12017] csw/mgar/pkg/exim/branches/dir-loc-fixes/files/ 0003-Set-OpenCSW-build-options.patch In-Reply-To: References: Message-ID: <1292708921-sup-8129@pinkfloyd.chass.utoronto.ca> Excerpts from Maciej (Matchek) Blizinski's message of Sat Dec 18 16:38:35 -0500 2010: > No dia 18 de Dezembro de 2010 21:30, escreveu: > > ?-CONFIGURE_FILE=/usr/exim/configure > > -+CONFIGURE_FILE=/etc/op/csw/exim/exim.conf > > ++CONFIGURE_FILE=/etc/opt/csw/exim/exim.conf > > sysconfdir = /etc$(prefix) > CONFIGURE_FILE = $(sysconfdir)/exim/exim.conf That would work too. Thanks -Ben -- Ben Walton Systems Programmer - CHASS University of Toronto C:416.407.5610 | W:416.978.4302 From bdwalton at users.sourceforge.net Sun Dec 19 02:35:24 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 19 Dec 2010 01:35:24 +0000 Subject: [csw-devel] SF.net SVN: gar:[12019] csw/mgar/pkg/exim/branches/dir-loc-fixes Message-ID: Revision: 12019 http://gar.svn.sourceforge.net/gar/?rev=12019&view=rev Author: bdwalton Date: 2010-12-19 01:35:23 +0000 (Sun, 19 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: use cswpreserveconf for config file handling Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall Removed Paths: ------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preremove Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-18 21:48:21 UTC (rev 12018) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-19 01:35:23 UTC (rev 12019) @@ -16,8 +16,7 @@ MASTER_SITES = ftp://ftp.exim.org/pub/exim/exim4/ DISTFILES = $(NAME)-$(VERSION).tar.bz2 -DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.preremove -DISTFILES += CSWexim.request +DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.request # NOTE TO FUTURE MAINTAINERS: # This patch should be thoroughly reviewed for each update so as not to @@ -75,6 +74,9 @@ CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzipextras CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzip +PRESERVECONF = /etc/opt/csw/exim/exim.conf /etc/opt/csw/exim/aliases +PRESERVECONF += /etc/opt/csw/exim/exim-env.sh + PROTOTYPE_MODIFIERS = eximsuid eximlogs PROTOTYPE_PERMS_eximsuid = 4755 PROTOTYPE_FILES_eximsuid = $(sbindir)/exim @@ -107,18 +109,11 @@ mv exim-$(VERSION)-1 exim; \ /usr/ccs/bin/strip $(BINS); \ /usr/ccs/bin/mcs -d $(BINS)) - (cd $(DESTDIR)/etc/opt/csw/exim; \ - for i in aliases exim.conf; do \ - if [ -r "$$i" ]; then \ - echo "$$i -> $$i.CSW"; \ - mv "$$i" "$$i.CSW"; \ - fi \ - done) (cd $(DESTDIR); mkdir -p etc/opt/csw/init.d; \ cp $(abspath $(FILEDIR)/cswexim) etc/opt/csw/init.d ) mkdir -p $(DESTDIR)$(prefix)/share/doc/exim cp -p files/README.CSW $(DESTDIR)$(prefix)/share/doc/exim/README.CSW - cp -p files/exim-env.sh $(DESTDIR)/etc/opt/csw/exim/exim-env.sh.CSW + cp -p files/exim-env.sh $(DESTDIR)/etc/opt/csw/exim/exim-env.sh (cd $(WORKSRC)/doc; \ cp -p $(DOC_LIST) $(DESTDIR)$(prefix)/share/doc/exim) gzip -f $(DESTDIR)$(prefix)/share/doc/exim/ChangeLog Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall 2010-12-18 21:48:21 UTC (rev 12018) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall 2010-12-19 01:35:23 UTC (rev 12019) @@ -9,21 +9,6 @@ mount | grep '^/usr ' | grep 'read only' >/dev/null } -### Set up config-file related stuff - -echo "" -echo "Setting up config-files..." -for file in $CONFFILES; do - confpath="$CONFDIR/$file" - if [ -r "$confpath" ]; then - echo "Not touching existing $confpath" - else - echo "Copying $confpath.CSW to $confpath" - cp -p "$confpath.CSW" "$confpath" - fi -done -echo "" - is_usr_readonly if [ $? -eq 0 -a "$SENDMAIL_ACTION" != "leave" ]; then Deleted: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preremove =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preremove 2010-12-18 21:48:21 UTC (rev 12018) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preremove 2010-12-19 01:35:23 UTC (rev 12019) @@ -1,17 +0,0 @@ -#!/sbin/sh - -CONFDIR=$PKG_INSTALL_ROOT/opt/csw/etc/exim -CONFFILES="aliases exim.conf exim-env.sh" -PATH=/bin:/usr/bin:"$PATH" -export PATH - -for file in $CONFFILES; do - confpath="$CONFDIR/$file" - diff "$confpath" "$confpath.CSW" >/dev/null 2>&1 - if [ $? != 0 ]; then - echo "Not touching modified $confpath" - else - echo "Removing unmodified $confpath" - rm -f "$confpath" - fi -done This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Dec 19 05:02:12 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 19 Dec 2010 04:02:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[12020] csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile Message-ID: Revision: 12020 http://gar.svn.sourceforge.net/gar/?rev=12020&view=rev Author: bdwalton Date: 2010-12-19 04:02:12 +0000 (Sun, 19 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: add some migrateconf support Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-19 01:35:23 UTC (rev 12019) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-19 04:02:12 UTC (rev 12020) @@ -74,6 +74,10 @@ CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzipextras CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzip +MIGRATE_FILES = exim.conf aliases exim-env.sh +MIGRATE_SOURCE_DIR = /opt/csw/etc/exim +MIGRATE_DEST_DIR = /etc/opt/csw/exim + PRESERVECONF = /etc/opt/csw/exim/exim.conf /etc/opt/csw/exim/aliases PRESERVECONF += /etc/opt/csw/exim/exim-env.sh This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Sun Dec 19 18:36:38 2010 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Sun, 19 Dec 2010 17:36:38 +0000 Subject: [csw-devel] SF.net SVN: gar:[12021] csw/mgar/pkg/openssh/trunk Message-ID: Revision: 12021 http://gar.svn.sourceforge.net/gar/?rev=12021&view=rev Author: chninkel Date: 2010-12-19 17:36:37 +0000 (Sun, 19 Dec 2010) Log Message: ----------- openssh: several bug fixes (#4398 and #4494) Modified Paths: -------------- csw/mgar/pkg/openssh/trunk/Makefile csw/mgar/pkg/openssh/trunk/files/changelog.CSW csw/mgar/pkg/openssh/trunk/files/don_t_use_TIOCSCTTY.patch Added Paths: ----------- csw/mgar/pkg/openssh/trunk/files/0004-no-lastlog-file.patch Modified: csw/mgar/pkg/openssh/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssh/trunk/Makefile 2010-12-19 04:02:12 UTC (rev 12020) +++ csw/mgar/pkg/openssh/trunk/Makefile 2010-12-19 17:36:37 UTC (rev 12021) @@ -118,6 +118,11 @@ # see https://bugzilla.mindrot.org/show_bug.cgi?id=1457 PATCHFILES += no_x_forwarding_bug.patch +# Force openssh to not use /var/adm/lastlog but still prints last log information +# Workaround to fix https://www.opencsw.org/mantis/view.php?id=4494 +# Bug filled upstream: https://bugzilla.mindrot.org/show_bug.cgi?id=87 +PATCHFILES += 0004-no-lastlog-file.patch + # documentation files to install (not a gar variable) DOCFILES = CREDITS ChangeLog ChangeLog.gssapi INSTALL LICENCE OVERVIEW README README.dns DOCFILES += README.platform README.privsep README.tun TODO WARNING.RNG @@ -143,6 +148,7 @@ CONFIGURE_ARGS += --with-pam CONFIGURE_ARGS += --with-tcp-wrappers=$(prefix) CONFIGURE_ARGS += --with-privsep-path=$(localstatedir)/empty +CONFIGURE_ARGS += --with-pid-dir=$(localstatedir)/run TEST_SCRIPTS = @@ -214,4 +220,5 @@ merge-special-directories: ginstall -d $(PKGROOT)$(localstatedir)/empty + ginstall -d $(PKGROOT)$(localstatedir)/run ginstall -d $(PKGROOT)$(sysconfdir)/pkg/CSWossh Added: csw/mgar/pkg/openssh/trunk/files/0004-no-lastlog-file.patch =================================================================== --- csw/mgar/pkg/openssh/trunk/files/0004-no-lastlog-file.patch (rev 0) +++ csw/mgar/pkg/openssh/trunk/files/0004-no-lastlog-file.patch 2010-12-19 17:36:37 UTC (rev 12021) @@ -0,0 +1,27 @@ +From a942b6c3d50bbdb7cf1a3940b247c26b1ba18383 Mon Sep 17 00:00:00 2001 +From: Yann Rouillard +Date: Sun, 19 Dec 2010 18:15:22 +0100 +Subject: [PATCH] Do not use /var/adm/lastlog to retrieve last log information as + it has already been updated during the ssh login process, so it always + returns the current logging time + +--- + defines.h | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/defines.h b/defines.h +index fe25170..6709314 100644 +--- a/defines.h ++++ b/defines.h +@@ -663,6 +663,8 @@ struct winsize { + # endif + #endif + ++#undef LASTLOG_FILE ++ + #if defined(HAVE_SHADOW_H) && !defined(DISABLE_SHADOW) + # define USE_SHADOW + #endif +-- +1.7.3.2 + Modified: csw/mgar/pkg/openssh/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/openssh/trunk/files/changelog.CSW 2010-12-19 04:02:12 UTC (rev 12020) +++ csw/mgar/pkg/openssh/trunk/files/changelog.CSW 2010-12-19 17:36:37 UTC (rev 12021) @@ -1,15 +1,18 @@ -openssh (5.6p1,REV=2010.09.02) unstable +openssh (5.6p1,REV=2010.12.19) unstable * New upstream release. * Removed patch applied upstream (derelativise_path_bugfix.patch and dont_derelativise_authorizedkeysfile_option.patch). * Moved conf from /opt/csw/etc to /etc/opt/csw. - * Moved privilege separation directory from /var/empty to - /var/opt/csw/var/empty. + * Moved privilege separation directory from /var/empty to /var/opt/csw/empty. + * Added 0004-no-lastlog-file.patch patch to workaround a bug with + Lastlog information printed at login time (see bug #4494). + * Moved pid file location from /var/run to /var/opt/csw/run to avoid a + conflict with sun native ssh (Closes: #4398). * [Build system] Switched to dynamic prototype. * [Build system] Switched to cswclassutils for user/group creation. - -- Yann Rouillard Wed, 02 Sep 2010 23:25:24 +0200 + -- Yann Rouillard Wed, 19 Dec 2010 23:25:24 +0200 openssh (5.4p1,REV=2010.03.25) unstable Modified: csw/mgar/pkg/openssh/trunk/files/don_t_use_TIOCSCTTY.patch =================================================================== --- csw/mgar/pkg/openssh/trunk/files/don_t_use_TIOCSCTTY.patch 2010-12-19 04:02:12 UTC (rev 12020) +++ csw/mgar/pkg/openssh/trunk/files/don_t_use_TIOCSCTTY.patch 2010-12-19 17:36:37 UTC (rev 12021) @@ -6,10 +6,10 @@ } /* Make it our controlling tty. */ -#ifdef TIOCSCTTY -+/* Blastwave package modification: TIOCSCTTY doesn't exist under solaris 10 ++/* Opencsw package modification: TIOCSCTTY doesn't exist under solaris 10 + although it is defined in /usr/include/sys/termios.h (??), so we make + sure it is not used. */ -+#ifdef 0 ++#if 0 debug("Setting controlling tty using TIOCSCTTY."); if (ioctl(*ttyfd, TIOCSCTTY, NULL) < 0) error("ioctl(TIOCSCTTY): %.100s", strerror(errno)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 20 04:20:47 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 20 Dec 2010 03:20:47 +0000 Subject: [csw-devel] SF.net SVN: gar:[12022] csw/mgar/pkg/exim/branches/dir-loc-fixes Message-ID: Revision: 12022 http://gar.svn.sourceforge.net/gar/?rev=12022&view=rev Author: bdwalton Date: 2010-12-20 03:20:47 +0000 (Mon, 20 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: depend on rsync, use it during preinstall script to move spool and log files Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile Added Paths: ----------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-19 17:36:37 UTC (rev 12021) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-20 03:20:47 UTC (rev 12022) @@ -17,6 +17,7 @@ MASTER_SITES = ftp://ftp.exim.org/pub/exim/exim4/ DISTFILES = $(NAME)-$(VERSION).tar.bz2 DISTFILES += CSWexim.postinstall CSWexim.postremove CSWexim.request +DISTFILES += CSWexim.preinstall # NOTE TO FUTURE MAINTAINERS: # This patch should be thoroughly reviewed for each update so as not to @@ -29,7 +30,7 @@ RUNTIME_DEP_PKGS_CSWexim = CSWiconv CSWoldaprt CSWosslrt CSWsasl RUNTIME_DEP_PKGS_CSWexim += CSWmysql5rt CSWlibpq CSWlibspf2 RUNTIME_DEP_PKGS_CSWexim += CSWgzip CSWgzipextras -RUNTIME_DEP_PKGS_CSWexim += CSWpcrert +RUNTIME_DEP_PKGS_CSWexim += CSWpcrert CSWrsync # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 Added: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall (rev 0) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-20 03:20:47 UTC (rev 12022) @@ -0,0 +1,33 @@ +#!/bin/sh + +PIR={$PKG_INSTALL_ROOT:-} +SPOOLOLD=${PIR}/opt/csw/var/spool +SPOOLNEW=${PIR}/var/opt/csw/spool +LOGOLD=${PIR}/opt/csw/var/log +LOGNEW=${PIR}/var/opt/csw/log +RSYNC=${PIR}/opt/csw/bin/rsync + +if [ -x ${RSYNC} ]; then + if [ -d "${SPOOLOLD}/exim" -a ! -d "${SPOOLNEW}/exim" ]; then + echo "Transferring existing spool files to new location..." + $RSYNC -a --numeric-uids "${SPOOLOLD}/exim" "${SPOOLNEW}/" + else + echo "New spool directory exists already. Not touching anything." + fi + + if [ -d "${LOGOLD}/exim" -a ! -d "${LOGNEW}/exim" ]; then + echo "Transferring existing log files to new location..." + $RSYNC -a --numeric-uids "${LOGOLD}/exim" "${LOGNEW}/" + else + echo "New log directory exists already. Not touching anything." + fi +else + echo "" + echo "" + echo "********************************************************" + echo "No rsync binary available at ${RSYNC}." + echo "NOT MOVING your exim spool directory or log files!!!" + echo "********************************************************" + echo "" + echo "" +fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 11:37:08 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 10:37:08 +0000 Subject: [csw-devel] SF.net SVN: gar:[12023] csw/mgar/gar/v2/lib/python/database.py Message-ID: Revision: 12023 http://gar.svn.sourceforge.net/gar/?rev=12023&view=rev Author: wahwah Date: 2010-12-20 10:37:07 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Better error message for DB schema When there's a DB<-->application schema mismatch, offer a better error message, suggest updating application sources. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/database.py Modified: csw/mgar/gar/v2/lib/python/database.py =================================================================== --- csw/mgar/gar/v2/lib/python/database.py 2010-12-20 03:20:47 UTC (rev 12022) +++ csw/mgar/gar/v2/lib/python/database.py 2010-12-20 10:37:07 UTC (rev 12023) @@ -80,7 +80,10 @@ else: raise DatabaseError( "Database schema does not match the application. " - "Check the csw_config table and database.py.") + "Database contains: %s, " + "the application expects: %s. " + "Make sure your application sources are up to date." + % (ldm.GetDatabaseSchemaVersion(), DB_SCHEMA_VERSION)) def _CheckAndMaybeFixFreshness(self, auto_fix): ldm = LocalDatabaseManager() @@ -181,7 +184,12 @@ table.clearTable() def IsDatabaseGoodSchema(self): - good_version = self.GetDatabaseSchemaVersion() >= DB_SCHEMA_VERSION + good_version = self.GetDatabaseSchemaVersion() == DB_SCHEMA_VERSION + if not good_version: + logging.fatal("Database schema version: %s, " + "Application expects version: %s", + self.GetDatabaseSchemaVersion(), + DB_SCHEMA_VERSION) return good_version def GetDatabaseSchemaVersion(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 11:37:48 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 10:37:48 +0000 Subject: [csw-devel] SF.net SVN: gar:[12024] csw/mgar/gar/v2/lib/python/pkgdb.py Message-ID: Revision: 12024 http://gar.svn.sourceforge.net/gar/?rev=12024&view=rev Author: wahwah Date: 2010-12-20 10:37:47 +0000 (Mon, 20 Dec 2010) Log Message: ----------- pkgdb: Verify that the database has the right schema Reuse the DB schema validation code. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgdb.py Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 10:37:07 UTC (rev 12023) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 10:37:47 UTC (rev 12024) @@ -324,6 +324,9 @@ md5_sums = args + dm = database.DatabaseManager() + dm.AutoManage() + if (command, subcommand) == ('show', 'errors'): for md5_sum in md5_sums: srv4 = GetPkg(md5_sum) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:43:17 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:43:17 +0000 Subject: [csw-devel] SF.net SVN: gar:[12025] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12025 http://gar.svn.sourceforge.net/gar/?rev=12025&view=rev Author: wahwah Date: 2010-12-20 11:43:16 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Log user name and database name The database initialization line needs to be moved below the code that processes command line options, because that's where the logging level is set. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg2.py csw/mgar/gar/v2/lib/python/configuration.py Modified: csw/mgar/gar/v2/lib/python/checkpkg2.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg2.py 2010-12-20 10:37:47 UTC (rev 12024) +++ csw/mgar/gar/v2/lib/python/checkpkg2.py 2010-12-20 11:43:16 UTC (rev 12025) @@ -46,7 +46,6 @@ def main(): - configuration.SetUpSqlobjectConnection() parser = optparse.OptionParser(USAGE) parser.add_option("-d", "--debug", dest="debug", @@ -83,6 +82,7 @@ logging.basicConfig(level=logging_level) logging.debug("Starting.") + configuration.SetUpSqlobjectConnection() dm = database.DatabaseManager() dm.AutoManage() Modified: csw/mgar/gar/v2/lib/python/configuration.py =================================================================== --- csw/mgar/gar/v2/lib/python/configuration.py 2010-12-20 10:37:47 UTC (rev 12024) +++ csw/mgar/gar/v2/lib/python/configuration.py 2010-12-20 11:43:16 UTC (rev 12025) @@ -104,6 +104,7 @@ 'db_host': config.get("database", "host"), 'db_user': config.get("database", "user"), 'db_password': config.get("database", "password")} + logging.debug("db_name: %(db_name)s, db_user: %(db_user)s" % db_data) if db_data["db_type"] == "mysql": db_uri_tmpl = "%(db_type)s://%(db_user)s:%(db_password)s@%(db_host)s/%(db_name)s" elif db_data["db_type"] == "sqlite": This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:46:35 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:46:35 +0000 Subject: [csw-devel] SF.net SVN: gar:[12026] csw/mgar/gar/v2/lib/python/database.py Message-ID: Revision: 12026 http://gar.svn.sourceforge.net/gar/?rev=12026&view=rev Author: wahwah Date: 2010-12-20 11:46:35 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Log database schema number in the debug mode Modified Paths: -------------- csw/mgar/gar/v2/lib/python/database.py Modified: csw/mgar/gar/v2/lib/python/database.py =================================================================== --- csw/mgar/gar/v2/lib/python/database.py 2010-12-20 11:43:16 UTC (rev 12025) +++ csw/mgar/gar/v2/lib/python/database.py 2010-12-20 11:46:35 UTC (rev 12026) @@ -69,6 +69,9 @@ def _CheckAndMaybeFixSchema(self, auto_fix): ldm = LocalDatabaseManager() + logging.debug("Database schema version: %s, application expects: %s", + ldm.GetDatabaseSchemaVersion(), + DB_SCHEMA_VERSION) if not ldm.IsDatabaseGoodSchema(): if auto_fix: logging.warning("Old database schema detected.") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:53:45 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:53:45 +0000 Subject: [csw-devel] SF.net SVN: gar:[12027] csw/mgar/gar/v2/lib/python/README Message-ID: Revision: 12027 http://gar.svn.sourceforge.net/gar/?rev=12027&view=rev Author: wahwah Date: 2010-12-20 11:53:45 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Add a check idea to the README Modified Paths: -------------- csw/mgar/gar/v2/lib/python/README Modified: csw/mgar/gar/v2/lib/python/README =================================================================== --- csw/mgar/gar/v2/lib/python/README 2010-12-20 11:46:35 UTC (rev 12026) +++ csw/mgar/gar/v2/lib/python/README 2010-12-20 11:53:45 UTC (rev 12027) @@ -11,6 +11,7 @@ - CSWpmfoo --> error, suggest CSWpm-foo - Dependency on a transitional package --> error ('transitional', 'stub', 'legacy') + - Dependency on CSWcas-initsmf + rc* files --> error Development plan for checkpkg: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:54:16 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:54:16 +0000 Subject: [csw-devel] SF.net SVN: gar:[12028] csw/mgar/gar/v2/lib/python/dependency_checks_test. py Message-ID: Revision: 12028 http://gar.svn.sourceforge.net/gar/?rev=12028&view=rev Author: wahwah Date: 2010-12-20 11:54:16 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Use /usr/bin/env python2.6 for depchecks Modified Paths: -------------- csw/mgar/gar/v2/lib/python/dependency_checks_test.py Modified: csw/mgar/gar/v2/lib/python/dependency_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-20 11:53:45 UTC (rev 12027) +++ csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-20 11:54:16 UTC (rev 12028) @@ -1,4 +1,4 @@ -#!/opt/csw/bin/python2.6 +#!/usr/bin/env python2.6 import checkpkg_lib import copy This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:54:47 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:54:47 +0000 Subject: [csw-devel] SF.net SVN: gar:[12029] csw/mgar/gar/v2/lib/python/dependency_checks_test. py Message-ID: Revision: 12029 http://gar.svn.sourceforge.net/gar/?rev=12029&view=rev Author: wahwah Date: 2010-12-20 11:54:47 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Move unit tests to the right class Library checks were in a wrong class. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/dependency_checks_test.py Modified: csw/mgar/gar/v2/lib/python/dependency_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-20 11:54:16 UTC (rev 12028) +++ csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-20 11:54:47 UTC (rev 12029) @@ -200,7 +200,63 @@ u"[u'CSWcommon'] provides directory /opt/csw/share/man is needed by the package CSWtree")]] self.assertEquals(expected, result) + +class TestMissingDepsFromReasonGroups(unittest.TestCase): + + def testOne(self): + reason_groups = [ + [(u"CSWfoo1", ""), + (u"CSWfoo2", "")], + [(u"CSWbar", "")], + ] + declared_deps = set([u"CSWfoo2"]) + expected = [[u"CSWbar"]] + result = dependency_checks.MissingDepsFromReasonGroups( + reason_groups, declared_deps) + self.assertEqual(result, expected) + + +class TestLibraries(unittest.TestCase): + + def setUp(self): + self.mocker = mox.Mox() + self.logger_stub = stubs.LoggerStub() + self.messenger_stub = stubs.MessengerStub() + self.error_mgr_mock = self.mocker.CreateMock( + checkpkg_lib.SetCheckInterface) + self.pkg_data = copy.deepcopy(sudo_stats[0]) + + def testLibrariesRpathOrder(self): + # pkg_data, error_mgr, logger, messenger, path_and_pkg_by_basename, + # pkg_by_path + pass + + def testByFilename(self): + self.pkg_data = tree_stats[0] + self.pkg_data["pkgmap"] = [ + {'class': 'none', + 'line': 'not important', + 'mode': '0755', + 'path': '/opt/csw/apache2/bin/foo', + 'type': 'f', + 'group': 'bin', + 'user': 'root'}] + self.mocker.ReplayAll() + result = dependency_checks.ByFilename( + self.pkg_data, + self.error_mgr_mock, + self.logger_stub, + self.messenger_stub, + None, None) + self.mocker.VerifyAll() + expected = [[ + (u'CSWapache2', + "found file(s) matching /opt/csw/apache2/, " + "e.g. '/opt/csw/apache2/bin/foo'")]] + self.assertEqual(expected, result) + def testLibraries_1(self): + self.pkg_data = copy.deepcopy(tree_stats[0]) path_and_pkg_by_basename = { 'libc.so.1': {u'/usr/lib': [u'SUNWcsl'], u'/usr/lib/libp/sparcv9': [u'SUNWdplx'], @@ -300,61 +356,6 @@ self.assertEqual(expected, result) -class TestMissingDepsFromReasonGroups(unittest.TestCase): - - def testOne(self): - reason_groups = [ - [(u"CSWfoo1", ""), - (u"CSWfoo2", "")], - [(u"CSWbar", "")], - ] - declared_deps = set([u"CSWfoo2"]) - expected = [[u"CSWbar"]] - result = dependency_checks.MissingDepsFromReasonGroups( - reason_groups, declared_deps) - self.assertEqual(result, expected) - - -class TestLibraries(unittest.TestCase): - - def setUp(self): - self.mocker = mox.Mox() - self.logger_stub = stubs.LoggerStub() - self.messenger_stub = stubs.MessengerStub() - self.error_mgr_mock = self.mocker.CreateMock( - checkpkg_lib.SetCheckInterface) - self.pkg_data = copy.deepcopy(sudo_stats) - - def testLibrariesRpathOrder(self): - # pkg_data, error_mgr, logger, messenger, path_and_pkg_by_basename, - # pkg_by_path - pass - - def testByFilename(self): - self.pkg_data = tree_stats[0] - self.pkg_data["pkgmap"] = [ - {'class': 'none', - 'line': 'not important', - 'mode': '0755', - 'path': '/opt/csw/apache2/bin/foo', - 'type': 'f', - 'group': 'bin', - 'user': 'root'}] - self.mocker.ReplayAll() - result = dependency_checks.ByFilename( - self.pkg_data, - self.error_mgr_mock, - self.logger_stub, - self.messenger_stub, - None, None) - self.mocker.VerifyAll() - expected = [[ - (u'CSWapache2', - "found file(s) matching /opt/csw/apache2/, " - "e.g. '/opt/csw/apache2/bin/foo'")]] - self.assertEqual(expected, result) - - class SuggestLibraryPackage(mox.MoxTestBase): def testBasic(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:55:18 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:55:18 +0000 Subject: [csw-devel] SF.net SVN: gar:[12030] csw/mgar/gar/v2/lib/python/opencsw.py Message-ID: Revision: 12030 http://gar.svn.sourceforge.net/gar/?rev=12030&view=rev Author: wahwah Date: 2010-12-20 11:55:17 +0000 (Mon, 20 Dec 2010) Log Message: ----------- comparepkg: Display also user and group When using the -p option, display not only file permissions, but also the user and the group. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/opencsw.py Modified: csw/mgar/gar/v2/lib/python/opencsw.py =================================================================== --- csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-20 11:54:47 UTC (rev 12029) +++ csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-20 11:55:17 UTC (rev 12030) @@ -544,7 +544,7 @@ installed_path = fields[3] prototype_class = fields[2] if self.analyze_permissions: - line_to_add += " %s" % fields[4] + line_to_add += " %s %s %s" % tuple(fields[4:7]) mode, user, group = fields[4:7] elif line_type in ('e'): # Editable files This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:55:48 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:55:48 +0000 Subject: [csw-devel] SF.net SVN: gar:[12031] csw/mgar/gar/v2/lib/python/package.py Message-ID: Revision: 12031 http://gar.svn.sourceforge.net/gar/?rev=12031&view=rev Author: wahwah Date: 2010-12-20 11:55:48 +0000 (Mon, 20 Dec 2010) Log Message: ----------- comparepkg: Don't display extra newlines Difflib returns some lines with return characters, let's strip them off. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package.py Modified: csw/mgar/gar/v2/lib/python/package.py =================================================================== --- csw/mgar/gar/v2/lib/python/package.py 2010-12-20 11:55:17 UTC (rev 12030) +++ csw/mgar/gar/v2/lib/python/package.py 2010-12-20 11:55:48 UTC (rev 12031) @@ -458,7 +458,7 @@ sorted(pkgmap_b.paths), fromfile=self.pkg_a.pkg_path, tofile=self.pkg_b.pkg_path) - diff_text = "\n".join(diff_ab) + diff_text = "\n".join(x.strip() for x in diff_ab) if diff_text: less_proc = subprocess.Popen(["less"], stdin=subprocess.PIPE) less_stdout, less_stderr = less_proc.communicate(input=diff_text) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:56:27 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:56:27 +0000 Subject: [csw-devel] SF.net SVN: gar:[12032] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12032 http://gar.svn.sourceforge.net/gar/?rev=12032&view=rev Author: wahwah Date: 2010-12-20 11:56:26 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Support for NeedFile() A new style of dependency declaration. Any check can simply call NeedFile(filename, reason) which will cause checkpkg to look up owners of these files and require them as dependencies. If multiple files are listed with the same reason, any of the owners will be sufficient. When declaring reasons, it's important to include some specific information (such as soname) in the reason. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py csw/mgar/gar/v2/lib/python/common_constants.py csw/mgar/gar/v2/lib/python/dependency_checks.py csw/mgar/gar/v2/lib/python/package_checks.py csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-20 11:55:48 UTC (rev 12031) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-20 11:56:26 UTC (rev 12032) @@ -9,6 +9,7 @@ import package_stats import package_checks import sqlobject +import collections import itertools import progressbar import database @@ -22,6 +23,7 @@ import sharedlib_utils import mute_progressbar import cPickle +import dependency_checks from sqlobject import sqlbuilder @@ -230,6 +232,9 @@ return (exit_code, screen_report, tags_report) +NeededFile = collections.namedtuple('NeededFile', 'pkgname full_path reason') + + class CheckInterfaceBase(object): """Provides an interface for checking functions. @@ -248,7 +253,17 @@ self.lines_dict = lines_dict else: self.lines_dict = {} + self.needed_files = [] + self.__errors = [] + def GetErrors(self): + return self.__errors + + errors = property(GetErrors) + + def AddError(self, error): + self.__errors.append(error) + def GetPathsAndPkgnamesByBasename(self, basename): """Proxies calls to class member.""" return self.catalog.GetPathsAndPkgnamesByBasename( @@ -288,7 +303,23 @@ lines.extend(self._GetPathsForArch(arch)) return lines + def _NeedFile(self, pkgname, full_path, reason): + """Declares that a package requires one of the files for a reason. + Special attention needs to be paid to reasons. If multiple files + are needed for the same reason, it's understood that any of them + satisfies the dependency. Reasons passed to this function have to + be specific, e.g. "provides libfoo.so.1". A good example of a bad + reason would be "a shared library" - it doesn't provide any + specifics. + """ + self.needed_files.append(NeededFile(pkgname, full_path, reason)) + + def ReportErrorForPkgname(self, pkgname, tag_name, tag_info=None, msg=None): + checkpkg_tag = tag.CheckpkgTag(pkgname, tag_name, tag_info, msg=msg) + self.AddError(checkpkg_tag) + + class IndividualCheckInterface(CheckInterfaceBase): """To be passed to the checking functions. @@ -298,30 +329,34 @@ def __init__(self, pkgname, osrel, arch, catrel, catalog=None): super(IndividualCheckInterface, self).__init__(osrel, arch, catrel, catalog) self.pkgname = pkgname - self.errors = [] def ReportError(self, tag_name, tag_info=None, msg=None): logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s)", repr(tag_name), repr(tag_info), repr(msg)) - checkpkg_tag = tag.CheckpkgTag(self.pkgname, tag_name, tag_info, msg=msg) - self.errors.append(checkpkg_tag) + self.ReportErrorForPkgname( + self.pkgname, tag_name, tag_info, msg=msg) + def NeedFile(self, full_path, reason): + "See base class _NeedFile." + self._NeedFile(self.pkgname, full_path, reason) + class SetCheckInterface(CheckInterfaceBase): """To be passed to set checking functions.""" def __init__(self, osrel, arch, catrel, catalog=None): super(SetCheckInterface, self).__init__(osrel, arch, catrel, catalog) - self.errors = [] + def NeedFile(self, pkgname, full_path, reason): + "See base class _NeedFile." + self._NeedFile(pkgname, full_path, reason) + def ReportError(self, pkgname, tag_name, tag_info=None, msg=None): logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s, %s)", repr(pkgname), repr(tag_name), repr(tag_info), repr(msg)) - checkpkg_tag = tag.CheckpkgTag(pkgname, tag_name, tag_info, msg=msg) - self.errors.append(checkpkg_tag) + self.ReportErrorForPkgname(pkgname, tag_name, tag_info, msg) - class CheckpkgMessenger(object): """Class responsible for passing messages from checks to the user.""" def __init__(self): @@ -373,6 +408,45 @@ logging.debug("Registering set check %s", repr(member_name)) self._RegisterSetCheck(member) + def _ReportDependencies(self, checkpkg_interface, messenger, pkgname, + declared_deps): + """Creates error tags based on needed files. + + Needed files are extracted from the Interface objects. + """ + # The idea behind reasons is that if two packages are necessary for + # the same reason, any of them would be satisfactory. + # For example: + # (CSWfoo, /opt/csw/bin/foo, "provides foo support"), + # (CSWbar, /opt/csw/bin/bar, "provides foo support"), + # In such case, either of CSWfoo or CSWbar is satisfactory. + # + # If the package under examination already depends on any of + # packages for a single reason, the dependency is considered + # satisfied. + reasons_by_pkg = {} + pkgs_by_reasons = {} + for pkgname, full_path, reason in checkpkg_interface.needed_files: + needed_pkgs = checkpkg_interface.GetPkgByPath(full_path) + for needed_pkgname in needed_pkgs: + reasons_by_pkg.setdefault(needed_pkgname, []) + reasons_by_pkg[needed_pkgname].append(reason) + pkgs_by_reasons.setdefault(reason, []) + pkgs_by_reasons[reason].append(needed_pkgname) + # We'll reuse ReportMissingDependencies from dependency_checks, but + # we have to adapt the data structure. + req_pkgs_reasons = [] + for reason in pkgs_by_reasons: + reason_group = [] + for needed_pkg in pkgs_by_reasons[reason]: + reason_group.append((needed_pkg, reason)) + req_pkgs_reasons.append(reason_group) + dependency_checks.ReportMissingDependencies(checkpkg_interface, + pkgname, + declared_deps, + req_pkgs_reasons) + + def GetAllTags(self, stats_obj_list): errors = {} catalog = Catalog() @@ -397,6 +471,11 @@ if check_interface.errors: errors[pkgname] = check_interface.errors pbar.update(count.next()) + # Ideally, this class wouldn't know anything about these data + # structures, but I don't see a better place for it at the moment. + declared_deps = frozenset(x[0] for x in pkg_data["depends"]) + self._ReportDependencies( + check_interface, messenger, pkgname, declared_deps) pbar.finish() # Set checks logging.info("Tasting them all at once...") Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-20 11:55:48 UTC (rev 12031) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-20 11:56:26 UTC (rev 12032) @@ -12,16 +12,13 @@ import inspective_package import mox import test_base +import cPickle from testdata.neon_stats import pkgstats as neon_stats -class CheckpkgManager2UnitTest(unittest.TestCase): +class CheckpkgManager2UnitTest(mox.MoxTestBase): - def setUp(self): - super(CheckpkgManager2UnitTest, self).setUp() - self.mox = mox.Mox() - def testSingleTag(self): m = checkpkg_lib.CheckpkgManager2( "testname", [], "5.9", "sparc", "unstable") @@ -51,7 +48,44 @@ u'CSWfoo: baz-tag\n') self.assertEqual(expected, unicode(tags_report)) + def testGetAllTags(self): + # Does not run any checks, because they are unregistered. + self.mox.StubOutWithMock(checkpkg_lib, 'IndividualCheckInterface', + use_mock_anything=True) + catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) + # checkpkg_interface_mock = self.mox.CreateMock( + # checkpkg_lib.IndividualCheckInterface) + # Throws: + # UnknownMethodCallError: Method called is not a member of the + # object: GetPkgByPath + checkpkg_interface_mock = self.mox.CreateMockAnything() + checkpkg_interface_mock.needed_files = [ + checkpkg_lib.NeededFile("CSWfoo", "/opt/csw/bin/foo", "Because!"), + ] + checkpkg_interface_mock.GetPkgByPath("/opt/csw/bin/foo").AndReturn( + ["CSWbar", "CSWbaz"]) + self.mox.StubOutWithMock(checkpkg_lib, 'Catalog', + use_mock_anything=True) + checkpkg_lib.Catalog().AndReturn(catalog_mock) + checkpkg_lib.IndividualCheckInterface( + 'CSWneon', '5.9', 'sparc', 'unstable', catalog_mock).AndReturn( + checkpkg_interface_mock) + stat_obj = self.mox.CreateMockAnything() + data_obj = self.mox.CreateMockAnything() + stat_obj.data_obj = data_obj + pkg_stats = copy.deepcopy(neon_stats[0]) + # Resetting the dependencies so that it doesn't report surplus deps. + pkg_stats["depends"] = [] + data_obj.pickle = cPickle.dumps(pkg_stats) + checkpkg_interface_mock.ReportErrorForPkgname( + 'CSWfoo', 'missing-dependency', 'CSWbar or CSWbaz') + self.mox.ReplayAll() + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + # m._AutoregisterChecks() + self.assertEquals(({}, [], []), m.GetAllTags([stat_obj])) + class CheckpkgManager2DatabaseIntegrationTest( test_base.SqlObjectTestMixin, unittest.TestCase): @@ -70,5 +104,47 @@ self.assertTrue(list(models.CheckpkgErrorTag.select())) +class IndividualCheckInterfaceUnitTest(mox.MoxTestBase): + + def testNeededFile(self): + catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) + self.mox.StubOutWithMock(checkpkg_lib, 'Catalog', use_mock_anything=True) + # Test that when you declare a file is needed, the right error + # functions are called. + checkpkg_lib.Catalog().AndReturn(catalog_mock) + self.mox.ReplayAll() + ici = checkpkg_lib.IndividualCheckInterface( + 'CSWfoo', 'AlienOS5.1', 'amd65', 'calcified') + ici.NeedFile("/opt/csw/bin/foo", "Because.") + # This might look like encapsulation violation, but I think this is + # a reasonable interface to that class. + self.assertEqual(1, len(ici.needed_files)) + needed_file = ici.needed_files[0] + self.assertEqual("CSWfoo", needed_file.pkgname) + self.assertEqual("/opt/csw/bin/foo", needed_file.full_path) + self.assertEqual("Because.", needed_file.reason) + + +class SetCheckInterfaceUnitTest(mox.MoxTestBase): + + def testNeededFile(self): + catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) + self.mox.StubOutWithMock(checkpkg_lib, 'Catalog', use_mock_anything=True) + # Test that when you declare a file is needed, the right error + # functions are called. + checkpkg_lib.Catalog().AndReturn(catalog_mock) + self.mox.ReplayAll() + sci = checkpkg_lib.SetCheckInterface( + 'AlienOS5.1', 'amd65', 'calcified') + sci.NeedFile("CSWfoo", "/opt/csw/bin/foo", "Because.") + # This might look like encapsulation violation, but I think this is + # a reasonable interface to that class. + self.assertEqual(1, len(sci.needed_files)) + needed_file = sci.needed_files[0] + self.assertEqual("CSWfoo", needed_file.pkgname) + self.assertEqual("/opt/csw/bin/foo", needed_file.full_path) + self.assertEqual("Because.", needed_file.reason) + + if __name__ == '__main__': unittest.main() Modified: csw/mgar/gar/v2/lib/python/common_constants.py =================================================================== --- csw/mgar/gar/v2/lib/python/common_constants.py 2010-12-20 11:55:48 UTC (rev 12031) +++ csw/mgar/gar/v2/lib/python/common_constants.py 2010-12-20 11:56:26 UTC (rev 12032) @@ -57,3 +57,11 @@ 'stable', ]) +# At some point, it was used to prevent people from linking against +# libX11.so.4, but due to issues with 3D acceleration. +DO_NOT_LINK_AGAINST_THESE_SONAMES = set([]) + +# Regarding surplus libraries reports +DO_NOT_REPORT_SURPLUS = [r"^CSWcommon$", r"^CSWcswclassutils$", r"^CSWcas-", r"^CSWisaexec$"] +DO_NOT_REPORT_SURPLUS_FOR = [r"CSW[a-z\-]+dev(el)?"] +DO_NOT_REPORT_MISSING_RE = [r"\*?SUNW.*"] Modified: csw/mgar/gar/v2/lib/python/dependency_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-20 11:55:48 UTC (rev 12031) +++ csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-20 11:56:26 UTC (rev 12032) @@ -5,6 +5,9 @@ import re import ldd_emul import sharedlib_utils +import common_constants +import operator +import logging # This shared library is present on Solaris 10 on amd64, but it's missing on # Solaris 8 on i386. It's okay if it's missing. @@ -289,3 +292,80 @@ % (pkgname, pkgname)) messenger.SuggestGarLine( "# The end of %s definition" % pkgname) + + +def ReportMissingDependencies(error_mgr, pkgname, declared_deps, req_pkgs_reasons): + """Processes data structures with dependency data and reports errors. + + Args: + error_mgr: SetCheckInterface + pkgname: pkgname, a string + declared_deps: An iterable with declared dependencies + req_pkgs_reasons: Groups of reasons + + data structure: + [ + [ + ("CSWfoo1", "reason"), + ("CSWfoo2", "reason"), + ], + [ + ( ... ), + ] + ] + """ + missing_reasons_by_pkg = {} + for reason_group in req_pkgs_reasons: + for pkg, reason in reason_group: + missing_reasons_by_pkg.setdefault(pkg, []) + if len(missing_reasons_by_pkg[pkg]) < 4: + missing_reasons_by_pkg[pkg].append(reason) + elif len(missing_reasons_by_pkg[pkg]) == 4: + missing_reasons_by_pkg[pkg].append("...and more.") + missing_dep_groups = MissingDepsFromReasonGroups( + req_pkgs_reasons, declared_deps) + pkgs_to_remove = set() + for regex_str in common_constants.DO_NOT_REPORT_MISSING_RE: + regex = re.compile(regex_str) + for dep_pkgname in reduce(operator.add, missing_dep_groups, []): + if re.match(regex, dep_pkgname): + pkgs_to_remove.add(dep_pkgname) + if pkgname in reduce(operator.add, missing_dep_groups, []): + pkgs_to_remove.add(pkgname) + logging.debug("Removing %s from the list of missing pkgs.", pkgs_to_remove) + new_missing_dep_groups = set() + for missing_deps in missing_dep_groups: + new_missing_deps = set() + for dep in missing_deps: + if dep not in pkgs_to_remove: + new_missing_deps.add(dep) + if new_missing_deps: + new_missing_dep_groups.add(tuple(new_missing_deps)) + potential_req_pkgs = set( + (x for x, y in reduce(operator.add, req_pkgs_reasons, []))) + missing_dep_groups = new_missing_dep_groups + surplus_deps = declared_deps.difference(potential_req_pkgs) + no_report_surplus = set() + for sp_regex in common_constants.DO_NOT_REPORT_SURPLUS: + for maybe_surplus in surplus_deps: + if re.match(sp_regex, maybe_surplus): + no_report_surplus.add(maybe_surplus) + surplus_deps = surplus_deps.difference(no_report_surplus) + for regex_str in common_constants.DO_NOT_REPORT_SURPLUS_FOR: + if surplus_deps and re.match(regex_str, pkgname): + surplus_deps = set() + # Using an index to avoid duplicated reasons. + missing_deps_reasons_by_pkg = [] + missing_deps_idx = set() + for missing_deps in missing_dep_groups: + error_mgr.ReportErrorForPkgname( + pkgname, "missing-dependency", " or ".join(missing_deps)) + for missing_dep in missing_deps: + item = (missing_dep, tuple(missing_reasons_by_pkg[missing_dep])) + if item not in missing_deps_idx: + missing_deps_reasons_by_pkg.append(item) + missing_deps_idx.add(item) + for surplus_dep in surplus_deps: + error_mgr.ReportErrorForPkgname(pkgname, "surplus-dependency", surplus_dep) + return missing_deps_reasons_by_pkg, surplus_deps, missing_dep_groups + Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-20 11:55:48 UTC (rev 12031) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-20 11:56:26 UTC (rev 12032) @@ -78,16 +78,6 @@ re.compile(r".*dev(el)?$"), ] -# At some point, it was used to prevent people from linking against -# libX11.so.4, but due to issues with 3D acceleration. -DO_NOT_LINK_AGAINST_THESE_SONAMES = set([]) - -# Regarding surplus libraries reports -DO_NOT_REPORT_SURPLUS = [r"^CSWcommon$", r"^CSWcswclassutils$", r"^CSWcas-", r"^CSWisaexec$"] -DO_NOT_REPORT_SURPLUS_FOR = [r"CSW[a-z\-]+dev(el)?"] -DO_NOT_REPORT_MISSING = set([]) -DO_NOT_REPORT_MISSING_RE = [r"\*?SUNW.*"] - DISCOURAGED_FILE_PATTERNS = ( (r"\.py[co]$", ("Python compiled files are supposed to be compiled using" "the cswpycompile class action script. For more " @@ -347,70 +337,18 @@ # Resolving sonames for each binary for pkg_data in pkgs_data: pkgname = pkg_data["basic_stats"]["pkgname"] + declared_deps = frozenset(x[0] for x in pkg_data["depends"]) check_args = (pkg_data, error_mgr, logger, messenger, path_and_pkg_by_basename, pkg_by_path) req_pkgs_reasons = depchecks.Libraries(*check_args) req_pkgs_reasons.extend(depchecks.ByFilename(*check_args)) # This test needs more work, or potentially, architectural changes. - # by_directory_reasons = depchecks.ByDirectory(*check_args) + # by_directory_reasons = ByDirectory(*check_args) # req_pkgs_reasons.extend(by_directory_reasons) - missing_reasons_by_pkg = {} - for reason_group in req_pkgs_reasons: - for pkg, reason in reason_group: - if pkg not in missing_reasons_by_pkg: - missing_reasons_by_pkg[pkg] = [] - if len(missing_reasons_by_pkg[pkg]) < 4: - missing_reasons_by_pkg[pkg].append(reason) - elif len(missing_reasons_by_pkg[pkg]) == 4: - missing_reasons_by_pkg[pkg].append("...and more.") - declared_deps = pkg_data["depends"] - declared_deps_set = set([x[0] for x in declared_deps]) - missing_dep_groups = depchecks.MissingDepsFromReasonGroups( - req_pkgs_reasons, declared_deps_set) - pkgs_to_remove = set() - for regex_str in DO_NOT_REPORT_MISSING_RE: - regex = re.compile(regex_str) - for dep_pkgname in reduce(operator.add, missing_dep_groups, []): - if re.match(regex, dep_pkgname): - pkgs_to_remove.add(dep_pkgname) - if pkgname in reduce(operator.add, missing_dep_groups, []): - pkgs_to_remove.add(pkgname) - logger.debug("Removing %s from the list of missing pkgs.", pkgs_to_remove) - new_missing_dep_groups = set() - for missing_deps in missing_dep_groups: - new_missing_deps = set() - for dep in missing_deps: - if dep not in pkgs_to_remove: - new_missing_deps.add(dep) - if new_missing_deps: - new_missing_dep_groups.add(tuple(new_missing_deps)) - potential_req_pkgs = set( - (x for x, y in reduce(operator.add, req_pkgs_reasons, []))) - missing_dep_groups = new_missing_dep_groups - surplus_deps = declared_deps_set.difference(potential_req_pkgs) - no_report_surplus = set() - for sp_regex in DO_NOT_REPORT_SURPLUS: - for maybe_surplus in surplus_deps: - if re.match(sp_regex, maybe_surplus): - no_report_surplus.add(maybe_surplus) - surplus_deps = surplus_deps.difference(no_report_surplus) - for regex_str in DO_NOT_REPORT_SURPLUS_FOR: - if surplus_deps and re.match(regex_str, pkgname): - surplus_deps = set() - # Using an index to avoid duplicated reasons. - missing_deps_reasons_by_pkg = [] - missing_deps_idx = set() - for missing_deps in missing_dep_groups: - error_mgr.ReportError(pkgname, - "missing-dependency", - " or ".join(missing_deps)) - for missing_dep in missing_deps: - item = (missing_dep, tuple(missing_reasons_by_pkg[missing_dep])) - if item not in missing_deps_idx: - missing_deps_reasons_by_pkg.append(item) - missing_deps_idx.add(item) - for surplus_dep in surplus_deps: - error_mgr.ReportError(pkgname, "surplus-dependency", surplus_dep) + (missing_deps_reasons_by_pkg, + surplus_deps, + missing_dep_groups) = depchecks.ReportMissingDependencies( + error_mgr, pkgname, declared_deps, req_pkgs_reasons) namespace = { "pkgname": pkgname, "missing_deps": missing_deps_reasons_by_pkg, @@ -777,7 +715,7 @@ for soname in binary_info["needed sonames"]: if (binary_info["path"] in shared_libs and - soname in DO_NOT_LINK_AGAINST_THESE_SONAMES): + soname in common_constants.DO_NOT_LINK_AGAINST_THESE_SONAMES): error_mgr.ReportError("linked-against-discouraged-library", "%s %s" % (binary_info["base_name"], soname)) Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-20 11:55:48 UTC (rev 12031) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-20 11:56:26 UTC (rev 12032) @@ -405,7 +405,7 @@ '/opt/csw/share/doc').AndReturn([u"CSWcommon"]) self.error_mgr_mock.GetPkgByPath( '/opt/csw/lib/sparcv9').AndReturn([u"CSWcommon"]) - self.error_mgr_mock.ReportError( + self.error_mgr_mock.ReportErrorForPkgname( 'CSWdjvulibrert', 'missing-dependency', u'CSWiconv') @@ -707,7 +707,7 @@ 'CSWbar', 'soname-not-found', 'libfoo.so.1 is needed by opt/csw/bin/bar') - self.error_mgr_mock.ReportError('CSWbar', 'surplus-dependency', 'CSWlibfoo') + self.error_mgr_mock.ReportErrorForPkgname('CSWbar', 'surplus-dependency', 'CSWlibfoo') self.pkg_data = [self.CSWbar_DATA, self.CSWlibfoo_DATA] @@ -1041,7 +1041,7 @@ self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libComUnidraw.so').AndReturn({}) self.error_mgr_mock.GetPkgByPath('/opt/csw').AndReturn([u"CSWcommon"]) self.error_mgr_mock.GetPkgByPath('/opt/csw/lib').AndReturn([u"CSWcommon"]) - self.error_mgr_mock.ReportError('CSWivtools', 'missing-dependency', u'CSWcommon') + self.error_mgr_mock.ReportErrorForPkgname('CSWivtools', 'missing-dependency', u'CSWcommon') class TestSetCheckDirectoryDependenciesTree(CheckpkgUnitTestHelper, @@ -1337,14 +1337,14 @@ u'CSWgnomedesktop', u'CSWnautilus', u'CSWlibofx', u'CSWgamin', u'CSWpkgutil', u'CSWgcc3core', u'CSWgnomemime2', u'CSWglib']) - self.error_mgr_mock.ReportError('CSWjavasvn', 'missing-dependency', u'CSWneon') - self.error_mgr_mock.ReportError('CSWjavasvn', 'missing-dependency', u'CSWapache2rt') - self.error_mgr_mock.ReportError('CSWjavasvn', 'missing-dependency', u'CSWoldaprt') - self.error_mgr_mock.ReportError('CSWjavasvn', 'missing-dependency', u'CSWggettextrt') - self.error_mgr_mock.ReportError('CSWjavasvn', 'missing-dependency', u'CSWapache2rt or CSWapr') - self.error_mgr_mock.ReportError('CSWjavasvn', 'missing-dependency', u'CSWexpat') - self.error_mgr_mock.ReportError('CSWjavasvn', 'missing-dependency', u'CSWsvn') - self.error_mgr_mock.ReportError('CSWjavasvn', 'missing-dependency', u'CSWiconv') + self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWneon') + self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWapache2rt') + self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWoldaprt') + self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWggettextrt') + self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWapache2rt or CSWapr') + self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWexpat') + self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWsvn') + self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWiconv') self.messenger.Message(u'Dependency issues of CSWjavasvn:') self.messenger.Message(u'CSWapache2rt, reasons:') self.messenger.Message(u' - provides /opt/csw/apache2/lib/libaprutil-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:57:03 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:57:03 +0000 Subject: [csw-devel] SF.net SVN: gar:[12033] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12033 http://gar.svn.sourceforge.net/gar/?rev=12033&view=rev Author: wahwah Date: 2010-12-20 11:57:03 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Representing dependencies in the DB Dependencies are sometimes need to be accessed without unpickling the whole data structure. Storing them in a special table. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/database.py csw/mgar/gar/v2/lib/python/models.py csw/mgar/gar/v2/lib/python/package_stats.py csw/mgar/gar/v2/lib/python/package_stats_test.py Modified: csw/mgar/gar/v2/lib/python/database.py =================================================================== --- csw/mgar/gar/v2/lib/python/database.py 2010-12-20 11:56:26 UTC (rev 12032) +++ csw/mgar/gar/v2/lib/python/database.py 2010-12-20 11:57:03 UTC (rev 12033) @@ -24,6 +24,7 @@ m.Maintainer, m.OsRelease, m.Pkginst, + m.Srv4DependsOn, m.Srv4FileInCatalog, m.Srv4FileStats, m.Srv4FileStatsBlob) Modified: csw/mgar/gar/v2/lib/python/models.py =================================================================== --- csw/mgar/gar/v2/lib/python/models.py 2010-12-20 11:56:26 UTC (rev 12032) +++ csw/mgar/gar/v2/lib/python/models.py 2010-12-20 11:57:03 UTC (rev 12033) @@ -226,3 +226,11 @@ uniqueness_idx = sqlobject.DatabaseIndex( 'arch', 'osrel', 'catrel', 'srv4file', unique=True) + + +class Srv4DependsOn(sqlobject.SQLObject): + """Models dependencies.""" + srv4_file = sqlobject.ForeignKey('Srv4FileStats', notNone=True) + pkginst = sqlobject.ForeignKey('Pkginst', notNone=True) + dep_uniq_idx = sqlobject.DatabaseIndex( + 'srv4_file', 'pkginst') Modified: csw/mgar/gar/v2/lib/python/package_stats.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-20 11:56:26 UTC (rev 12032) +++ csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-20 11:57:03 UTC (rev 12033) @@ -377,6 +377,12 @@ for override_dict in pkg_stats["overrides"]: o = m.CheckpkgOverride(srv4_file=db_pkg_stats, **override_dict) + # Save dependencies in the database + for dep_pkgname, unused_desc in pkg_stats["depends"]: + dep_pkginst = cls.GetOrSetPkginst(dep_pkgname) + obj = m.Srv4DependsOn( + srv4_file=db_pkg_stats, + pkginst=dep_pkginst) # The ldd -r reporting breaks on bigger packages during yaml saving. # It might work when yaml is disabled Modified: csw/mgar/gar/v2/lib/python/package_stats_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-20 11:56:26 UTC (rev 12032) +++ csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-20 11:57:03 UTC (rev 12033) @@ -236,6 +236,17 @@ self.assertEquals("CSWtree", o.pkgname) self.assertEquals("bad-rpath-entry", o.tag_name) + def testImportDependencies(self): + md5_sum = tree_stats[0]["basic_stats"]["md5_sum"] + self.assertEqual(u'1e43fa1c7e637b25d9356ad516ae0403', md5_sum) + new_stats = copy.deepcopy(tree_stats[0]) + self.TestPackageStats.SaveStats(new_stats) + depends = list(m.Srv4DependsOn.select()) + self.assertEquals(1, len(depends)) + dep = depends[0] + self.assertEquals(md5_sum, dep.srv4_file.md5_sum) + self.assertEquals(u"CSWcommon", dep.pkginst.pkgname) + def testImportPkg(self): """Registers the package in the database.""" package_stats.PackageStats.ImportPkg(neon_stats[0]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:57:34 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:57:34 +0000 Subject: [csw-devel] SF.net SVN: gar:[12034] csw/mgar/gar/v2/lib/python/database.py Message-ID: Revision: 12034 http://gar.svn.sourceforge.net/gar/?rev=12034&view=rev Author: wahwah Date: 2010-12-20 11:57:34 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Increment database version number To reflect the existence of the dependencies table. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/database.py Modified: csw/mgar/gar/v2/lib/python/database.py =================================================================== --- csw/mgar/gar/v2/lib/python/database.py 2010-12-20 11:57:03 UTC (rev 12033) +++ csw/mgar/gar/v2/lib/python/database.py 2010-12-20 11:57:34 UTC (rev 12034) @@ -10,7 +10,7 @@ import system_pkgmap CONFIG_DB_SCHEMA = "db_schema_version" -DB_SCHEMA_VERSION = 6L +DB_SCHEMA_VERSION = 7L TABLES_THAT_NEED_UPDATES = (m.CswFile,) TABLES = TABLES_THAT_NEED_UPDATES + ( m.Architecture, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:58:43 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:58:43 +0000 Subject: [csw-devel] SF.net SVN: gar:[12036] csw/mgar/gar/v2/lib/python/shell.py Message-ID: Revision: 12036 http://gar.svn.sourceforge.net/gar/?rev=12036&view=rev Author: wahwah Date: 2010-12-20 11:58:43 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Add error classes to shell.py shell.py was missing the error (exception-based) classes to return a useful error message when necessary. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/shell.py Modified: csw/mgar/gar/v2/lib/python/shell.py =================================================================== --- csw/mgar/gar/v2/lib/python/shell.py 2010-12-20 11:58:12 UTC (rev 12035) +++ csw/mgar/gar/v2/lib/python/shell.py 2010-12-20 11:58:43 UTC (rev 12036) @@ -1,6 +1,12 @@ import logging import subprocess +class Error(Exception): + "Generic error" + +class ShellError(Error): + "Problem running a shell command." + class ShellMixin(object): def ShellCommand(self, args, quiet=False): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:59:13 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:59:13 +0000 Subject: [csw-devel] SF.net SVN: gar:[12037] csw/mgar/gar/v2/lib/python/pkgdb.py Message-ID: Revision: 12037 http://gar.svn.sourceforge.net/gar/?rev=12037&view=rev Author: wahwah Date: 2010-12-20 11:59:13 +0000 (Mon, 20 Dec 2010) Log Message: ----------- pkgdb: Add 'show cat [options]' support It shows all packages in a given catalog. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgdb.py Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 11:58:43 UTC (rev 12036) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 11:59:13 UTC (rev 12037) @@ -7,6 +7,7 @@ import optparse import models as m import sqlobject +from sqlobject import sqlbuilder import cPickle import logging import code @@ -38,6 +39,7 @@ %prog del-from-cat [ ... ] %prog sync-cat-from-file %prog sync-catalogs-from-tree + %prog show cat [options] Inspecting individual packages: %prog show errors [ ... ] @@ -445,6 +447,25 @@ ci = CatalogImporter(debug=options.debug) catrel, base_dir = args ci.SyncFromCatalogTree(catrel, base_dir) + elif (command, subcommand) == ('show', 'cat'): + sqo_osrel = m.OsRelease.selectBy(short_name=options.osrel).getOne() + sqo_arch = m.Architecture.selectBy(name=options.arch).getOne() + sqo_catrel = m.CatalogRelease.selectBy(name=options.catrel).getOne() + join = [ + sqlbuilder.INNERJOINOn(None, + m.Srv4FileInCatalog, + m.Srv4FileInCatalog.q.srv4file==m.Srv4FileStats.q.id), + ] + res = m.Srv4FileStats.select( + sqlobject.AND( + m.Srv4FileInCatalog.q.osrel==sqo_osrel, + m.Srv4FileInCatalog.q.arch==sqo_arch, + m.Srv4FileInCatalog.q.catrel==sqo_catrel, + ), + join=join, + ) + for obj in res: + print obj.basename, obj.md5_sum elif (command, subcommand) == ('show', 'basename'): db_catalog = checkpkg_lib.Catalog() for arg in args: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:59:44 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:59:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[12038] csw/mgar/gar/v2/lib/python/pkgdb.py Message-ID: Revision: 12038 http://gar.svn.sourceforge.net/gar/?rev=12038&view=rev Author: wahwah Date: 2010-12-20 11:59:44 +0000 (Mon, 20 Dec 2010) Log Message: ----------- pkgdb: Add 'show files' support It lists all files in a given srv4 file, identified by an md5 sum. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgdb.py Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 11:59:13 UTC (rev 12037) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 11:59:44 UTC (rev 12038) @@ -47,6 +47,7 @@ %prog gen-html [ ... ] %prog pkg search %prog show basename [options] + %prog show files Examples: @@ -466,6 +467,19 @@ ) for obj in res: print obj.basename, obj.md5_sum + elif (command, subcommand) == ('show', 'files'): + md5_sum = args[0] + join = [ + sqlbuilder.INNERJOINOn(None, + m.Srv4FileStats, + m.CswFile.q.srv4_file==m.Srv4FileStats.q.id), + ] + res = m.CswFile.select( + m.Srv4FileStats.q.md5_sum==md5_sum, + join=join, + ) + for obj in res: + print os.path.join(obj.path, obj.basename) elif (command, subcommand) == ('show', 'basename'): db_catalog = checkpkg_lib.Catalog() for arg in args: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 13:00:15 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 12:00:15 +0000 Subject: [csw-devel] SF.net SVN: gar:[12039] csw/mgar/gar/v2/lib/python/pkgdb.py Message-ID: Revision: 12039 http://gar.svn.sourceforge.net/gar/?rev=12039&view=rev Author: wahwah Date: 2010-12-20 12:00:15 +0000 (Mon, 20 Dec 2010) Log Message: ----------- pkgdb: Add replace support in importpkg When calling importpkg, allow to replace packages in the database with updated data. Useful when database contents can be refreshed using pickled version of package data. Quicker than unpacking all the packages. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgdb.py Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 11:59:44 UTC (rev 12038) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 12:00:15 UTC (rev 12039) @@ -307,6 +307,9 @@ parser.add_option("-c", "--catalog-release", dest="catrel", default="current", help="E.g. current, unstable, testing, stable") + parser.add_option("--replace", dest="replace", + default=False, action="store_true", + help="Replace packages when importing (importpkg)") options, args = parser.parse_args() if options.debug: logging.basicConfig(level=logging.DEBUG) @@ -367,7 +370,7 @@ "Importing %s, %s", stats["basic_stats"]["md5_sum"], stats["basic_stats"]["pkg_basename"]) - package_stats.PackageStats.ImportPkg(stats) + package_stats.PackageStats.ImportPkg(stats, options.replace) elif command == 'add-to-cat': if len(args) <= 3: raise UsageError("Not enough arguments, see usage.") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 12:58:12 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 11:58:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[12035] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12035 http://gar.svn.sourceforge.net/gar/?rev=12035&view=rev Author: wahwah Date: 2010-12-20 11:58:12 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Bugfix for removing pkg from a catalog When removing a package from a catalog, don't delete its files, as another catalog might still contain this package. Also fixes arguments checking and adds a Catalog object creation. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py csw/mgar/gar/v2/lib/python/package_stats_test.py csw/mgar/gar/v2/lib/python/pkgdb.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-20 11:57:34 UTC (rev 12034) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-20 11:58:12 UTC (rev 12035) @@ -666,6 +666,7 @@ raise CatalogDatabaseError( "Package %s (%s) is not registered for releases." % (sqo_srv4.basename, sqo_srv4.md5_sum)) + # TODO(maciej): Make sure the package's files are present in the database. # Checking for presence of a different srv4 with the same pkginst in the # same catalog pkginst = sqo_srv4.pkginst @@ -706,10 +707,9 @@ m.Srv4FileInCatalog.q.osrel==sqo_osrel, m.Srv4FileInCatalog.q.catrel==sqo_catrel, m.Srv4FileInCatalog.q.srv4file==sqo_srv4)).getOne() - sqo_srv4_in_cat.registered = False - # TODO(maciej): Remove all files belonging to that one - for cat_file in sqo_srv4_in_cat.srv4file.files: - cat_file.destroySelf() + # Files belonging to this package should not be removed from the catalog + # as the package might be still present in another catalog. + sqo_srv4_in_cat.destroySelf() class Catalog(CatalogMixin): Modified: csw/mgar/gar/v2/lib/python/package_stats_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-20 11:57:34 UTC (rev 12034) +++ csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-20 11:58:12 UTC (rev 12035) @@ -375,16 +375,22 @@ m.Srv4FileInCatalog.q.srv4file==stats)).getOne() # At this point, we know that the record is in the db. c.RemoveSrv4(stats, 'SunOS5.9', 'i386', 'unstable') - # Retrieved record from the db should now not have the registered flag. - # We could also test that the object should not have any files attached to - # it. - updated_stats = m.Srv4FileInCatalog.select( + # Make sure that the Srv4FileInCatalog object is now gone. + res = m.Srv4FileInCatalog.select( sqlobject.AND( m.Srv4FileInCatalog.q.arch==sqo_arch, m.Srv4FileInCatalog.q.osrel==sqo_osrel, m.Srv4FileInCatalog.q.catrel==sqo_catrel, - m.Srv4FileInCatalog.q.srv4file==stats)).getOne() - self.assertFalse(updated_stats.registered) + m.Srv4FileInCatalog.q.srv4file==stats)) + self.assertRaises(sqlobject.SQLObjectNotFound, res.getOne) + # Retrieved record from the db should now not have the registered flag. + updated_stats = m.Srv4FileStats.select( + m.Srv4FileStats.q.id==stats.id).getOne() + self.assertTrue(updated_stats.registered) + # Make sure that files of this package are still in the database. + res = m.CswFile.select( + m.CswFile.q.srv4_file==updated_stats) + self.assertEquals(22, res.count()) def testRetrievePathsMatchCatalog(self): Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 11:57:34 UTC (rev 12034) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 11:58:12 UTC (rev 12035) @@ -381,13 +381,16 @@ logging.warning("Srv4 file %s was not found in the database.", md5_sum) elif command == 'del-from-cat': - if len(args) <= 4: + if len(args) < 4: raise UsageError("Not enough arguments, see usage.") osrel, arch, catrel= args[:3] md5_sums = args[3:] + c = checkpkg_lib.Catalog() for md5_sum in md5_sums: sqo_srv4 = m.Srv4FileStats.select( m.Srv4FileStats.q.md5_sum==md5_sum).getOne() + logging.debug("Removing %s from %s %s %s", + sqo_srv4, osrel, arch, catrel) c.RemoveSrv4(sqo_srv4, osrel, arch, catrel) elif command == 'system-files-to-file': logging.debug("Args: %s", args) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 20 13:38:48 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 20 Dec 2010 12:38:48 +0000 Subject: [csw-devel] SF.net SVN: gar:[12040] csw/mgar/pkg/openldap/trunk/Makefile Message-ID: Revision: 12040 http://gar.svn.sourceforge.net/gar/?rev=12040&view=rev Author: dmichelsen Date: 2010-12-20 12:38:48 +0000 (Mon, 20 Dec 2010) Log Message: ----------- openldap: Preserve configuration as reported in #4638 Modified Paths: -------------- csw/mgar/pkg/openldap/trunk/Makefile Modified: csw/mgar/pkg/openldap/trunk/Makefile =================================================================== --- csw/mgar/pkg/openldap/trunk/Makefile 2010-12-20 12:00:15 UTC (rev 12039) +++ csw/mgar/pkg/openldap/trunk/Makefile 2010-12-20 12:38:48 UTC (rev 12040) @@ -151,6 +151,13 @@ EXTRA_MERGE_EXCLUDE_FILES_isa-sparcv8-version-2.3.43 = .*\.so EXTRA_MERGE_EXCLUDE_FILES_isa-sparcv9-version-2.3.43 = .*\.so +# These are the config templates. As we have preserveconf which takes +# care of this we exclude them in the package. +EXTRA_MERGE_EXCLUDE_FILES = .*\.default + +PRESERVECONF = /etc/opt/csw/openldap/ldap.conf +PRESERVECONF += /etc/opt/csw/openldap/slapd.conf + PKGFILES_CSWoldapclient = $(bindir)/.* PKGFILES_CSWoldapclient += $(mandir)/man1/.* @@ -162,6 +169,7 @@ PKGFILES_CSWoldaprt += $(mandir)/man5/ldap.conf.5 INITSMF = /opt/csw/etc/init.d/cswopenldap + CHECKPKG_OVERRIDES_CSWoldap += init-file-wrong-location|/opt/csw/etc/init.d/cswopenldap # New libnet not released yet This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From maciej at opencsw.org Mon Dec 20 13:55:41 2010 From: maciej at opencsw.org (Maciej (Matchek) Blizinski) Date: Mon, 20 Dec 2010 12:55:41 +0000 Subject: [csw-devel] SF.net SVN: gar:[12020] csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile In-Reply-To: References: Message-ID: No dia 19 de Dezembro de 2010 04:02, escreveu: > Revision: 12020 > ? ? ? ? ?http://gar.svn.sourceforge.net/gar/?rev=12020&view=rev > Author: ? bdwalton > Date: ? ? 2010-12-19 04:02:12 +0000 (Sun, 19 Dec 2010) > > Log Message: > ----------- > exim/dir-loc-fixes: add some migrateconf support > > Modified Paths: > -------------- > ? ?csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile > > Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile > =================================================================== > --- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile ? 2010-12-19 01:35:23 UTC (rev 12019) > +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile ? 2010-12-19 04:02:12 UTC (rev 12020) > @@ -74,6 +74,10 @@ > ?CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzipextras > ?CHECKPKG_OVERRIDES_CSWexim += surplus-dependency|CSWgzip > > +MIGRATE_FILES = exim.conf aliases exim-env.sh > +MIGRATE_SOURCE_DIR = /opt/csw/etc/exim > +MIGRATE_DEST_DIR = /etc/opt/csw/exim Migrating directories doesn't work, unfortunately. I haven't debugged it so far, all I can tell is that you can't rely on it at the moment. From dmichelsen at users.sourceforge.net Mon Dec 20 14:23:39 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 20 Dec 2010 13:23:39 +0000 Subject: [csw-devel] SF.net SVN: gar:[12041] csw/mgar/pkg/rrdtool/trunk Message-ID: Revision: 12041 http://gar.svn.sourceforge.net/gar/?rev=12041&view=rev Author: dmichelsen Date: 2010-12-20 13:23:39 +0000 (Mon, 20 Dec 2010) Log Message: ----------- rrdtool: Move Perl example into Perl package Modified Paths: -------------- csw/mgar/pkg/rrdtool/trunk/Makefile Removed Paths: ------------- csw/mgar/pkg/rrdtool/trunk/files/patch-bindings-Makefile.in csw/mgar/pkg/rrdtool/trunk/files/patch-src-Makefile.in Modified: csw/mgar/pkg/rrdtool/trunk/Makefile =================================================================== --- csw/mgar/pkg/rrdtool/trunk/Makefile 2010-12-20 12:38:48 UTC (rev 12040) +++ csw/mgar/pkg/rrdtool/trunk/Makefile 2010-12-20 13:23:39 UTC (rev 12041) @@ -12,10 +12,6 @@ MASTER_SITES = http://oss.oetiker.ch/$(NAME)/pub/ DISTFILES = $(NAME)-$(VERSION).tar.gz -# PATCHFILES += patch-src-Makefile.in - -# PATCHFILES += patch-bindings-Makefile.in - # Use patch until this is fixed: # http://oss.oetiker.ch/rrdtool-trac/ticket/284 PATCHFILES += patch-bindings-ruby-extconf.rb @@ -96,6 +92,7 @@ PKGFILES_CSWlibrrd4 = $(PKGFILES_RT) PKGFILES_CSWpm-rrdtool += $(libdir)/perl/.* PKGFILES_CSWpm-rrdtool += $(sharedstatedir)/perl/.* +PKGFILES_CSWpm-rrdtool += $(sharedstatedir)/rrdtool/examples/.* PKGFILES_CSWpm-rrdtool += .*\.3perl PKGFILES_CSWpy-rrdtool = $(libdir)/python/.* PKGFILES_CSWrb-rrdtool = $(libdir)/ruby/.* @@ -113,10 +110,12 @@ CHECKPKG_OVERRIDES_CSWrb-rrdtool += binary-architecture-does-not-match-placement|file=opt/csw/lib/ruby/site_ruby/1.8/sparc-solaris2.9/RRD.so|arch_id=18|arch_name=sparcv8+ CHECKPKG_OVERRIDES_CSWrb-rrdtool += bad-rpath-entry|/home/dam/mgar/pkg/rrdtool/trunk/work/solaris9-sparc/install-isa-sparcv8/opt/csw/lib|opt/csw/lib/ruby/site_ruby/1.8/sparc-solaris2.9/RRD.so +# The docs are bundled in the rrdtool/ directory +CHECKPKG_OVERRIDES_CSWrrdtool += wrong-docdir|expected=/opt/csw/shared/doc/rrdtool/...|in-package=/opt/csw/share/doc/librrd_th4/license + +# These libraries always come in pairs, bundle them also +CHECKPKG_OVERRIDES_CSWlibrrd4 += shared-lib-pkgname-mismatch|file=opt/csw/lib/librrd_th.so.4.1.4|soname=librrd_th.so.4|pkgname=CSWlibrrd4|expected=CSWlibrrd-th4 +CHECKPKG_OVERRIDES_CSWlibrrd4 += shared-lib-pkgname-mismatch|file=opt/csw/lib/sparcv9/librrd_th.so.4.1.4|soname=librrd_th.so.4|pkgname=CSWlibrrd4|expected=CSWlibrrd-th4 + include gar/category.mk -#pre-build-modulated: -# echo " ==> Adding math function round()" -# cp $(FILEDIR)/s_round.c $(WORKSRC)/src -# cp $(FILEDIR)/s_round.h $(WORKSRC)/src -# @$(MAKECOOKIE) Deleted: csw/mgar/pkg/rrdtool/trunk/files/patch-bindings-Makefile.in =================================================================== --- csw/mgar/pkg/rrdtool/trunk/files/patch-bindings-Makefile.in 2010-12-20 12:38:48 UTC (rev 12040) +++ csw/mgar/pkg/rrdtool/trunk/files/patch-bindings-Makefile.in 2010-12-20 13:23:39 UTC (rev 12041) @@ -1,11 +0,0 @@ ---- rrdtool-1.4.2.orig/bindings/Makefile.in 2009-11-15 12:55:04.000000000 +0100 -+++ rrdtool-1.4.2/bindings/Makefile.in 2010-03-02 15:29:39.602876133 +0100 -@@ -692,7 +692,7 @@ - - # rules for building the pyton module - python: -- cd python && env BUILDLIBDIR=../../src/.libs $(PYTHON) setup.py build_ext --rpath=$(libdir) && env LIBDIR=../../src/.libs $(PYTHON) setup.py build -+ cd python && env PATH=$(CC_HOME)/bin BUILDLIBDIR=../../src/.libs $(PYTHON) setup.py build_ext --rpath=$(libdir) && env LIBDIR=../../src/.libs $(PYTHON) setup.py build - - # rules for building the perl module - perl_piped: perl-piped/Makefile Deleted: csw/mgar/pkg/rrdtool/trunk/files/patch-src-Makefile.in =================================================================== --- csw/mgar/pkg/rrdtool/trunk/files/patch-src-Makefile.in 2010-12-20 12:38:48 UTC (rev 12040) +++ csw/mgar/pkg/rrdtool/trunk/files/patch-src-Makefile.in 2010-12-20 13:23:39 UTC (rev 12041) @@ -1,152 +0,0 @@ ---- rrdtool-1.4.2.orig/src/Makefile.in 2009-11-15 12:55:05.000000000 +0100 -+++ rrdtool-1.4.2/src/Makefile.in 2010-02-26 18:36:02.892925252 +0100 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.11 from Makefile.am. -+# Makefile.in generated by automake 1.11.1 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -105,14 +105,14 @@ - "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)" - LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) - am__DEPENDENCIES_1 = --am__librrd_la_SOURCES_DIST = hash_32.c pngsize.c rrd_create.c \ -- rrd_graph.c rrd_graph_helper.c rrd_version.c rrd_last.c \ -- rrd_lastupdate.c rrd_first.c rrd_restore.c rrd_xport.c \ -- rrd_gfx.c rrd_dump.c rrd_flushcached.c rrd_fetch.c \ -+am__librrd_la_SOURCES_DIST = hash_32.c pngsize.c s_round.c \ -+ rrd_create.c rrd_graph.c rrd_graph_helper.c rrd_version.c \ -+ rrd_last.c rrd_lastupdate.c rrd_first.c rrd_restore.c \ -+ rrd_xport.c rrd_gfx.c rrd_dump.c rrd_flushcached.c rrd_fetch.c \ - rrd_resize.c rrd_tune.c rrd_fetch_libdbi.c - @BUILD_LIBDBI_TRUE at am__objects_1 = rrd_fetch_libdbi.lo --am__objects_2 = hash_32.lo pngsize.lo rrd_create.lo rrd_graph.lo \ -- rrd_graph_helper.lo rrd_version.lo rrd_last.lo \ -+am__objects_2 = hash_32.lo pngsize.lo s_round.lo rrd_create.lo \ -+ rrd_graph.lo rrd_graph_helper.lo rrd_version.lo rrd_last.lo \ - rrd_lastupdate.lo rrd_first.lo rrd_restore.lo rrd_xport.lo \ - rrd_gfx.lo rrd_dump.lo rrd_flushcached.lo rrd_fetch.lo \ - rrd_resize.lo rrd_tune.lo $(am__objects_1) -@@ -128,9 +128,9 @@ - rrd_hw_update.c rrd_diff.c rrd_format.c rrd_info.c rrd_error.c \ - rrd_open.c rrd_client.c rrd_nan_inf.c rrd_rpncalc.c \ - rrd_utils.c rrd_update.c rrd_getopt.c rrd_getopt1.c hash_32.c \ -- pngsize.c rrd_create.c rrd_graph.c rrd_graph_helper.c \ -- rrd_version.c rrd_last.c rrd_lastupdate.c rrd_first.c \ -- rrd_restore.c rrd_xport.c rrd_gfx.c rrd_dump.c \ -+ pngsize.c s_round.c rrd_create.c rrd_graph.c \ -+ rrd_graph_helper.c rrd_version.c rrd_last.c rrd_lastupdate.c \ -+ rrd_first.c rrd_restore.c rrd_xport.c rrd_gfx.c rrd_dump.c \ - rrd_flushcached.c rrd_fetch.c rrd_resize.c rrd_tune.c \ - rrd_fetch_libdbi.c rrd_thread_safe.c - @BUILD_GETOPT_TRUE at am__objects_3 = librrd_th_la-rrd_getopt.lo \ -@@ -145,14 +145,15 @@ - $(am__objects_3) - @BUILD_LIBDBI_TRUE at am__objects_5 = librrd_th_la-rrd_fetch_libdbi.lo - am__objects_6 = librrd_th_la-hash_32.lo librrd_th_la-pngsize.lo \ -- librrd_th_la-rrd_create.lo librrd_th_la-rrd_graph.lo \ -- librrd_th_la-rrd_graph_helper.lo librrd_th_la-rrd_version.lo \ -- librrd_th_la-rrd_last.lo librrd_th_la-rrd_lastupdate.lo \ -- librrd_th_la-rrd_first.lo librrd_th_la-rrd_restore.lo \ -- librrd_th_la-rrd_xport.lo librrd_th_la-rrd_gfx.lo \ -- librrd_th_la-rrd_dump.lo librrd_th_la-rrd_flushcached.lo \ -- librrd_th_la-rrd_fetch.lo librrd_th_la-rrd_resize.lo \ -- librrd_th_la-rrd_tune.lo $(am__objects_5) -+ librrd_th_la-s_round.lo librrd_th_la-rrd_create.lo \ -+ librrd_th_la-rrd_graph.lo librrd_th_la-rrd_graph_helper.lo \ -+ librrd_th_la-rrd_version.lo librrd_th_la-rrd_last.lo \ -+ librrd_th_la-rrd_lastupdate.lo librrd_th_la-rrd_first.lo \ -+ librrd_th_la-rrd_restore.lo librrd_th_la-rrd_xport.lo \ -+ librrd_th_la-rrd_gfx.lo librrd_th_la-rrd_dump.lo \ -+ librrd_th_la-rrd_flushcached.lo librrd_th_la-rrd_fetch.lo \ -+ librrd_th_la-rrd_resize.lo librrd_th_la-rrd_tune.lo \ -+ $(am__objects_5) - am_librrd_th_la_OBJECTS = $(am__objects_4) $(am__objects_6) \ - librrd_th_la-rrd_thread_safe.lo - librrd_th_la_OBJECTS = $(am_librrd_th_la_OBJECTS) -@@ -160,7 +161,8 @@ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(librrd_th_la_CFLAGS) \ - $(CFLAGS) $(librrd_th_la_LDFLAGS) $(LDFLAGS) -o $@ - @BUILD_MULTITHREAD_TRUE at am_librrd_th_la_rpath = -rpath $(libdir) --librrdupd_la_DEPENDENCIES = $(am__DEPENDENCIES_1) -+librrdupd_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ -+ $(am__DEPENDENCIES_1) - am__librrdupd_la_SOURCES_DIST = rrd_parsetime.c rrd_hw.c rrd_hw_math.c \ - rrd_hw_update.c rrd_diff.c rrd_format.c rrd_info.c rrd_error.c \ - rrd_open.c rrd_client.c rrd_nan_inf.c rrd_rpncalc.c \ -@@ -219,7 +221,7 @@ - $(am__librrdupd_la_SOURCES_DIST) $(rrdcached_SOURCES) \ - $(rrdcgi_SOURCES) $(rrdtool_SOURCES) $(rrdupdate_SOURCES) - DATA = $(pkgconfig_DATA) --am__noinst_HEADERS_DIST = unused.h gettext.h rrd_getopt.h \ -+am__noinst_HEADERS_DIST = unused.h gettext.h s_round.h rrd_getopt.h \ - rrd_parsetime.h rrd_config_bottom.h rrd_i18n.h rrd_format.h \ - rrd_tool.h rrd_xport.h rrd.h rrd_rpncalc.h rrd_hw.h \ - rrd_hw_math.h rrd_hw_update.h fnv.h rrd_graph.h \ -@@ -322,6 +324,7 @@ - PACKAGE_NAME = @PACKAGE_NAME@ - PACKAGE_STRING = @PACKAGE_STRING@ - PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_URL = @PACKAGE_URL@ - PACKAGE_VERSION = @PACKAGE_VERSION@ - PATH_SEPARATOR = @PATH_SEPARATOR@ - PERL = @PERL@ -@@ -442,20 +445,20 @@ - rrd_diff.c rrd_format.c rrd_info.c rrd_error.c rrd_open.c \ - rrd_client.c rrd_nan_inf.c rrd_rpncalc.c rrd_utils.c \ - rrd_update.c $(am__append_3) --RRD_C_FILES = hash_32.c pngsize.c rrd_create.c rrd_graph.c \ -+RRD_C_FILES = hash_32.c pngsize.c s_round.c rrd_create.c rrd_graph.c \ - rrd_graph_helper.c rrd_version.c rrd_last.c rrd_lastupdate.c \ - rrd_first.c rrd_restore.c rrd_xport.c rrd_gfx.c rrd_dump.c \ - rrd_flushcached.c rrd_fetch.c rrd_resize.c rrd_tune.c \ - $(am__append_1) --noinst_HEADERS = unused.h gettext.h rrd_getopt.h rrd_parsetime.h \ -- rrd_config_bottom.h rrd_i18n.h rrd_format.h rrd_tool.h \ -- rrd_xport.h rrd.h rrd_rpncalc.h rrd_hw.h rrd_hw_math.h \ -- rrd_hw_update.h fnv.h rrd_graph.h rrd_is_thread_safe.h \ -- $(am__append_2) -+noinst_HEADERS = unused.h gettext.h s_round.h rrd_getopt.h \ -+ rrd_parsetime.h rrd_config_bottom.h rrd_i18n.h rrd_format.h \ -+ rrd_tool.h rrd_xport.h rrd.h rrd_rpncalc.h rrd_hw.h \ -+ rrd_hw_math.h rrd_hw_update.h fnv.h rrd_graph.h \ -+ rrd_is_thread_safe.h $(am__append_2) - noinst_LTLIBRARIES = librrdupd.la - lib_LTLIBRARIES = librrd.la $(am__append_4) - librrdupd_la_SOURCES = $(UPD_C_FILES) rrd_not_thread_safe.c --librrdupd_la_LIBADD = $(CORE_LIBS) -+librrdupd_la_LIBADD = $(CORE_LIBS) $(LTLIBINTL) - librrd_la_SOURCES = $(RRD_C_FILES) - librrd_la_DEPENDENCIES = librrdupd.la librrd.sym - librrd_la_LIBADD = librrdupd.la $(ALL_LIBS) -@@ -668,6 +671,7 @@ - @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/librrd_th_la-rrd_utils.Plo at am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/librrd_th_la-rrd_version.Plo at am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/librrd_th_la-rrd_xport.Plo at am__quote@ -+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/librrd_th_la-s_round.Plo at am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pngsize.Plo at am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rrd_cgi.Po at am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rrd_client.Plo at am__quote@ -@@ -706,6 +710,7 @@ - @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rrd_xport.Plo at am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rrdcached-rrd_daemon.Po at am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rrdupdate.Po at am__quote@ -+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/s_round.Plo at am__quote@ - - .c.o: - @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@@ -875,6 +880,14 @@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librrd_th_la_CFLAGS) $(CFLAGS) -c -o librrd_th_la-pngsize.lo `test -f 'pngsize.c' || echo '$(srcdir)/'`pngsize.c - -+librrd_th_la-s_round.lo: s_round.c -+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librrd_th_la_CFLAGS) $(CFLAGS) -MT librrd_th_la-s_round.lo -MD -MP -MF $(DEPDIR)/librrd_th_la-s_round.Tpo -c -o librrd_th_la-s_round.lo `test -f 's_round.c' || echo '$(srcdir)/'`s_round.c -+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/librrd_th_la-s_round.Tpo $(DEPDIR)/librrd_th_la-s_round.Plo -+ at am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='s_round.c' object='librrd_th_la-s_round.lo' libtool=yes @AMDEPBACKSLASH@ -+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+ at am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librrd_th_la_CFLAGS) $(CFLAGS) -c -o librrd_th_la-s_round.lo `test -f 's_round.c' || echo '$(srcdir)/'`s_round.c -+ - librrd_th_la-rrd_create.lo: rrd_create.c - @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(librrd_th_la_CFLAGS) $(CFLAGS) -MT librrd_th_la-rrd_create.lo -MD -MP -MF $(DEPDIR)/librrd_th_la-rrd_create.Tpo -c -o librrd_th_la-rrd_create.lo `test -f 'rrd_create.c' || echo '$(srcdir)/'`rrd_create.c - @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/librrd_th_la-rrd_create.Tpo $(DEPDIR)/librrd_th_la-rrd_create.Plo This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 14:37:52 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 13:37:52 +0000 Subject: [csw-devel] SF.net SVN: gar:[12042] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12042 http://gar.svn.sourceforge.net/gar/?rev=12042&view=rev Author: wahwah Date: 2010-12-20 13:37:51 +0000 (Mon, 20 Dec 2010) Log Message: ----------- checkpkg: Dependencies recorded at registration The database rows representing package dependencies should not be inserted during data collection, but during the registration stage. It also ensures the idempotence of the operation, cleaning potential old dependencies before registering. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_stats.py csw/mgar/gar/v2/lib/python/package_stats_test.py Modified: csw/mgar/gar/v2/lib/python/package_stats.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-20 13:23:39 UTC (rev 12041) +++ csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-20 13:37:51 UTC (rev 12042) @@ -377,13 +377,6 @@ for override_dict in pkg_stats["overrides"]: o = m.CheckpkgOverride(srv4_file=db_pkg_stats, **override_dict) - # Save dependencies in the database - for dep_pkgname, unused_desc in pkg_stats["depends"]: - dep_pkginst = cls.GetOrSetPkginst(dep_pkgname) - obj = m.Srv4DependsOn( - srv4_file=db_pkg_stats, - pkginst=dep_pkginst) - # The ldd -r reporting breaks on bigger packages during yaml saving. # It might work when yaml is disabled # self.DumpObject(self.GetLddMinusRlines(), "ldd_dash_r") @@ -435,6 +428,19 @@ line=line_u, pkginst=pkginst, srv4_file=stats) + # Save dependencies in the database. First remove any dependency rows + # that might be in the database. + # TODO(maciej): Unit test it + deps_res = m.Srv4DependsOn.select( + m.Srv4DependsOn.q.srv4_file==stats) + for dep_obj in deps_res: + dep_obj.destroySelf() + for dep_pkgname, unused_desc in pkg_stats["depends"]: + dep_pkginst = cls.GetOrSetPkginst(dep_pkgname) + obj = m.Srv4DependsOn( + srv4_file=stats, + pkginst=dep_pkginst) + # At this point, we've registered the srv4 file. # Setting the registered bit to True stats.registered = True Modified: csw/mgar/gar/v2/lib/python/package_stats_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-20 13:23:39 UTC (rev 12041) +++ csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-20 13:37:51 UTC (rev 12042) @@ -236,17 +236,41 @@ self.assertEquals("CSWtree", o.pkgname) self.assertEquals("bad-rpath-entry", o.tag_name) - def testImportDependencies(self): + def testSaveStatsDependencies(self): md5_sum = tree_stats[0]["basic_stats"]["md5_sum"] self.assertEqual(u'1e43fa1c7e637b25d9356ad516ae0403', md5_sum) new_stats = copy.deepcopy(tree_stats[0]) self.TestPackageStats.SaveStats(new_stats) depends = list(m.Srv4DependsOn.select()) + # Dependencies should not be inserted into the db at that stage + self.assertEquals(0, len(depends)) + + def testImportPkgDependencies(self): + md5_sum = tree_stats[0]["basic_stats"]["md5_sum"] + self.assertEqual(u'1e43fa1c7e637b25d9356ad516ae0403', md5_sum) + new_stats = copy.deepcopy(tree_stats[0]) + self.TestPackageStats.ImportPkg(new_stats) + depends = list(m.Srv4DependsOn.select()) + # Dependencies should be inserted into the db at that stage self.assertEquals(1, len(depends)) dep = depends[0] self.assertEquals(md5_sum, dep.srv4_file.md5_sum) self.assertEquals(u"CSWcommon", dep.pkginst.pkgname) + def testImportPkgDependenciesReplace(self): + """Make sure deps are not imported twice.""" + md5_sum = tree_stats[0]["basic_stats"]["md5_sum"] + self.assertEqual(u'1e43fa1c7e637b25d9356ad516ae0403', md5_sum) + new_stats = copy.deepcopy(tree_stats[0]) + self.TestPackageStats.ImportPkg(new_stats) + self.TestPackageStats.ImportPkg(new_stats, replace=True) + depends = list(m.Srv4DependsOn.select()) + # Dependencies should be inserted into the db at that stage + self.assertEquals(1, len(depends)) + dep = depends[0] + self.assertEquals(md5_sum, dep.srv4_file.md5_sum) + self.assertEquals(u"CSWcommon", dep.pkginst.pkgname) + def testImportPkg(self): """Registers the package in the database.""" package_stats.PackageStats.ImportPkg(neon_stats[0]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 20 14:54:36 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 13:54:36 +0000 Subject: [csw-devel] SF.net SVN: gar:[12043] csw/mgar/pkg/postgresql/branches/postgresql-9.0 Message-ID: Revision: 12043 http://gar.svn.sourceforge.net/gar/?rev=12043&view=rev Author: wahwah Date: 2010-12-20 13:54:36 +0000 (Mon, 20 Dec 2010) Log Message: ----------- postgresql-9.0: Current state of work, far from finished. Modified Paths: -------------- csw/mgar/pkg/postgresql/branches/postgresql-9.0/Makefile Removed Paths: ------------- csw/mgar/pkg/postgresql/branches/postgresql-9.0/files/CSWpostgresql-84.postinstall Modified: csw/mgar/pkg/postgresql/branches/postgresql-9.0/Makefile =================================================================== --- csw/mgar/pkg/postgresql/branches/postgresql-9.0/Makefile 2010-12-20 13:37:51 UTC (rev 12042) +++ csw/mgar/pkg/postgresql/branches/postgresql-9.0/Makefile 2010-12-20 13:54:36 UTC (rev 12043) @@ -66,7 +66,7 @@ DISTFILES += CSWpostgresql-$(BASE_VERSION_G).postinstall PACKAGES += CSWpostgresql -PACKAGES += CSWlibpq +PACKAGES += CSWlibpq5 PACKAGES += CSWlibpq-devel PACKAGES += CSWpostgresql-$(BASE_VERSION_G) PACKAGES += CSWpostgresql-$(BASE_VERSION_G)-dev @@ -75,31 +75,32 @@ CATALOGNAME_CSWpostgresql-$(BASE_VERSION_G) = postgresql_$(BASE_VERSION_G) CATALOGNAME_CSWpostgresql-$(BASE_VERSION_G)-doc = postgresql_$(BASE_VERSION_G)_doc CATALOGNAME_CSWpostgresql-$(BASE_VERSION_G)-dev = postgresql_$(BASE_VERSION_G)_devel -CATALOGNAME_CSWlibpq = libpq +CATALOGNAME_CSWlibpq5 = libpq +CATALOGNAME_CSWlibpq-devel = libpq_devel CATALOGNAME_CSWpostgresql = postgresql -SPKG_DEST_CSWpostgresql = An advanced open source database, a metapackage -SPKG_DESC_CSWpostgresql-$(BASE_VERSION_G) = An advanced open source database, version $(BASE_VERSION).x +SPKG_DESC_CSWpostgresql = An advanced open source database +SPKG_DESC_CSWpostgresql-$(BASE_VERSION_G) = PostgreSQL, version $(BASE_VERSION).x SPKG_DESC_CSWpostgresql-$(BASE_VERSION_G)-doc = PostgreSQL $(BASE_VERSION).x Documentation SPKG_DESC_CSWpostgresql-$(BASE_VERSION_G)-dev = PostgreSQL $(BASE_VERSION).x Developer Files -SPKG_DESC_CSWlibpq = PostgreSQL C client library (built from $(BASE_VERSION).x sources) +SPKG_DESC_CSWlibpq5 = PostgreSQL C client library (built from $(BASE_VERSION).x sources) SPKG_DESC_CSWlibpq-devel = PostgreSQL C client headers (built from $(BASE_VERSION).x sources) -RUNTIME_DEP_PKGS_CSWpostgresql = CSWpostgresql-$(BASE_VERSION_G) -RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWkrb5lib -RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWlibgnugetopt -RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWlibpq -RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWlibxml2 -RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWlibxslt -RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWosslrt -RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWreadline -RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWzlib -RUNTIME_DEP_PKGS_CSWlibpq += CSWkrb5lib -RUNTIME_DEP_PKGS_CSWlibpq += CSWlibxml2 -RUNTIME_DEP_PKGS_CSWlibpq += CSWlibxslt -RUNTIME_DEP_PKGS_CSWlibpq += CSWosslrt -RUNTIME_DEP_PKGS_CSWlibpq += CSWzlib -RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G)-dev = CSWpostgresql-$(BASE_VERSION_G) +# RUNTIME_DEP_PKGS_CSWpostgresql = CSWpostgresql-$(BASE_VERSION_G) +# RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWkrb5lib +# RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWlibgnugetopt +# RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWlibpq5 +# RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWlibxml2 +# RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWlibxslt +# RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWosslrt +# RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWreadline +# RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G) += CSWzlib +# RUNTIME_DEP_PKGS_CSWlibpq5 += CSWkrb5lib +# RUNTIME_DEP_PKGS_CSWlibpq5 += CSWlibxml2 +# RUNTIME_DEP_PKGS_CSWlibpq5 += CSWlibxslt +# RUNTIME_DEP_PKGS_CSWlibpq5 += CSWosslrt +# RUNTIME_DEP_PKGS_CSWlibpq5 += CSWzlib +# RUNTIME_DEP_PKGS_CSWpostgresql-$(BASE_VERSION_G)-dev = CSWpostgresql-$(BASE_VERSION_G) CHECKPKG_OVERRIDES_CSWpostgresql += surplus-dependency|CSWpostgresql-90 CHECKPKG_OVERRIDES_CSWpostgresql-90-dev += surplus-dependency|CSWpostgresql-90 @@ -159,28 +160,17 @@ PKGFILES_CSWpostgresql-$(BASE_VERSION_G)-doc = $(PKGFILES_DOC) PKGFILES_CSWpostgresql-$(BASE_VERSION_G)-dev = $(PKGFILES_DEVEL) -PKGFILES_CSWlibpq = $(call baseisadirs,$(libdir),libpq\.so(\.\d+)*) -PKGFILES_CSWlibpq += $(call baseisadirs,$(libpath_install),libpq\.so(\.\d+)*) -PKGFILES_CSWlibpq += $(libdir)/64 +PKGFILES_CSWlibpq5 = $(call baseisadirs,$(libdir),libpq\.so(\.\d+)+) +PKGFILES_CSWlibpq5 += $(call baseisadirs,$(libpath_install),libpq\.so(\.\d+)+) +PKGFILES_CSWlibpq5 += $(libdir)/64 -# +# libpq-devel files PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/internal/.* PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/libpq-fe.h PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/libpq-events.h PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/libpq/libpq-fs.h PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/pg_config.*.h PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/postgres_ext.h -PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/8.4/server/catalog/pg_type.h /usr/include/postgresql/catalog -PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/8.4/server/catalog/genbki.h /usr/include/postgresql/catalog -PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/8.4/server/nodes/nodes.h /usr/include/postgresql/nodes -# PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/8.4/server/utils/(elog|errcodes|palloc).h /usr/include/postgresql/utils -# Need to move these. -PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/utils/(elog|errcodes|palloc).h -# PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/8.4/server/{c,pg_config,pg_config_manual,pg_config_os,port,pg_trace}.h /usr/include/postgresql/ -PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/(c|pg_config|pg_config_manual|pg_config_os|port|pg_trace}.h -# PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/8.4/server/postgres{,_fe,_ext}.h /usr/include/postgresql/ -PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/postgres(|_fe|_ext}.h -# PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/8.4/server/mb/pg_wchar.h /usr/include/postgresql/mb PKGFILES_CSWlibpq-devel += $(prefix)/include/postgresql/mb/pg_wchar.h PKGFILES_CSWlibpq-devel += $(prefix)/lib/libpq.so # PKGFILES_CSWlibpq-devel += $(prefix)/lib/postgresql/8.4/bin/pg_config usr/bin @@ -263,18 +253,18 @@ ginstall -d -m 755 $(DESTDIR)$(prefix)/bin [ -r $(DESTDIR)$(bindir)/pg_config ] && \ gmv -v $(DESTDIR)$(bindir)/pg_config $(DESTDIR)$(prefix)/bin || true - ginstall -d -m 755 $(DESTDIR)/include/postgresql/utils - for f in elog.h errcodes.h palloc.h; do \ - [ -r $(DESTDIR)$(includedir)/utils/$${f} ] && \ - gmv -v $(DESTDIR)$(includedir)/utils/$${f} \ - $(DESTDIR)$(prefix)/include/postgresql/utils/ || true; \ - done - for f in c.h pg_config.h pg_config_manual.h pg_config_os,port.h pg_trace.h ; do \ - [ -f $(DESTDIR)$(prefix)/include/postgresql/8.4/server/$${f} ] && \ - gmv -v $(DESTDIR)$(prefix)/include/postgresql/8.4/server/$${f} \ - $(DESTDIR)/$(prefix)/include/postgresql/ || true; \ - done - @$(MAKECOOKIE) + # ginstall -d -m 755 $(DESTDIR)/include/postgresql/utils + # for f in elog.h errcodes.h palloc.h; do \ + # [ -r $(DESTDIR)$(includedir)/utils/$${f} ] && \ + # gmv -v $(DESTDIR)$(includedir)/utils/$${f} \ + # $(DESTDIR)$(prefix)/include/postgresql/utils/ || true; \ + # done + # for f in c.h pg_config.h pg_config_manual.h pg_config_os,port.h pg_trace.h ; do \ + # [ -f $(DESTDIR)$(prefix)/include/postgresql/8.4/server/$${f} ] && \ + # gmv -v $(DESTDIR)$(prefix)/include/postgresql/8.4/server/$${f} \ + # $(DESTDIR)/$(prefix)/include/postgresql/ || true; \ + # done + # @$(MAKECOOKIE) post-merge: ginstall -d $(PKGROOT)/etc$(prefix)/init.d Deleted: csw/mgar/pkg/postgresql/branches/postgresql-9.0/files/CSWpostgresql-84.postinstall =================================================================== --- csw/mgar/pkg/postgresql/branches/postgresql-9.0/files/CSWpostgresql-84.postinstall 2010-12-20 13:37:51 UTC (rev 12042) +++ csw/mgar/pkg/postgresql/branches/postgresql-9.0/files/CSWpostgresql-84.postinstall 2010-12-20 13:54:36 UTC (rev 12043) @@ -1,39 +0,0 @@ -#!/bin/sh -# vim:set ft=sh: -# -# $Id$ -# -# Initialize the database cluster if it hasn't been initialized before. - -# Read in the user configuration file -[ -s /opt/csw/etc/postgresql.conf ] && . /opt/csw/etc/postgresql.conf -[ -s @sysconfdir@/postgresql.conf ] && . @sysconfdir@/postgresql.conf - -PGDATA=@PGDATA@ -PGINIT=@bindir@/initdb - -initialize_cluster() { - chown postgres "${PGDATA}" - chmod 0700 "${PGDATA}" - echo "Initializing PostgreSQL database..." - su postgres -c "\"${PGINIT}\" -D \"${PGDATA}\" -E utf-8" -} - -if [ `ls -l ${PGDATA} 2>/dev/null | wc -l` -eq 1 ]; then - initialize_cluster -else - echo "The database cluster seems to be initialized already." -fi - -if [ -x /usr/sbin/svcadm ]; then - fmri="cswpostgres_ at VERSION_NODOT@" - echo "Enabling the ${fmri} service in SMF" - svcadm clear "${fmri}" - svcadm enable "${fmri}" -else - initscript="/etc/opt/csw/init.d/cswpostgres_ at VERSION_NODOT@" - echo "Issuing ${initscript} start" - "${initscript}" start -fi - -exit 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 20 15:08:13 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 20 Dec 2010 14:08:13 +0000 Subject: [csw-devel] SF.net SVN: gar:[12044] csw/mgar/pkg/rrdtool/trunk/Makefile Message-ID: Revision: 12044 http://gar.svn.sourceforge.net/gar/?rev=12044&view=rev Author: dmichelsen Date: 2010-12-20 14:08:13 +0000 (Mon, 20 Dec 2010) Log Message: ----------- rrdtool: Remove superflous overrides Modified Paths: -------------- csw/mgar/pkg/rrdtool/trunk/Makefile Modified: csw/mgar/pkg/rrdtool/trunk/Makefile =================================================================== --- csw/mgar/pkg/rrdtool/trunk/Makefile 2010-12-20 13:54:36 UTC (rev 12043) +++ csw/mgar/pkg/rrdtool/trunk/Makefile 2010-12-20 14:08:13 UTC (rev 12044) @@ -103,16 +103,6 @@ CHECKPKG_OVERRIDES_CSWrrd += surplus-dependency|CSWrb-rrdtool CHECKPKG_OVERRIDES_CSWrrd += surplus-dependency|CSWrrdtool -# These is an example which requires Perl -CHECKPKG_OVERRIDES_CSWrrdtool += missing-dependency|CSWperl - -# TBD: -CHECKPKG_OVERRIDES_CSWrb-rrdtool += binary-architecture-does-not-match-placement|file=opt/csw/lib/ruby/site_ruby/1.8/sparc-solaris2.9/RRD.so|arch_id=18|arch_name=sparcv8+ -CHECKPKG_OVERRIDES_CSWrb-rrdtool += bad-rpath-entry|/home/dam/mgar/pkg/rrdtool/trunk/work/solaris9-sparc/install-isa-sparcv8/opt/csw/lib|opt/csw/lib/ruby/site_ruby/1.8/sparc-solaris2.9/RRD.so - -# The docs are bundled in the rrdtool/ directory -CHECKPKG_OVERRIDES_CSWrrdtool += wrong-docdir|expected=/opt/csw/shared/doc/rrdtool/...|in-package=/opt/csw/share/doc/librrd_th4/license - # These libraries always come in pairs, bundle them also CHECKPKG_OVERRIDES_CSWlibrrd4 += shared-lib-pkgname-mismatch|file=opt/csw/lib/librrd_th.so.4.1.4|soname=librrd_th.so.4|pkgname=CSWlibrrd4|expected=CSWlibrrd-th4 CHECKPKG_OVERRIDES_CSWlibrrd4 += shared-lib-pkgname-mismatch|file=opt/csw/lib/sparcv9/librrd_th.so.4.1.4|soname=librrd_th.so.4|pkgname=CSWlibrrd4|expected=CSWlibrrd-th4 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Mon Dec 20 16:45:26 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Mon, 20 Dec 2010 15:45:26 +0000 Subject: [csw-devel] SF.net SVN: gar:[12045] csw/mgar/gar/v2/gar.pkg.mk Message-ID: Revision: 12045 http://gar.svn.sourceforge.net/gar/?rev=12045&view=rev Author: bdwalton Date: 2010-12-20 15:45:26 +0000 (Mon, 20 Dec 2010) Log Message: ----------- gar/v2: ensure we do not depend on CSWcas-ugfiles as it is only a dummy class that does not exist or have a package Modified Paths: -------------- csw/mgar/gar/v2/gar.pkg.mk Modified: csw/mgar/gar/v2/gar.pkg.mk =================================================================== --- csw/mgar/gar/v2/gar.pkg.mk 2010-12-20 14:08:13 UTC (rev 12044) +++ csw/mgar/gar/v2/gar.pkg.mk 2010-12-20 15:45:26 UTC (rev 12045) @@ -464,7 +464,7 @@ $(WORKDIR)/%.depend: $(WORKDIR)/$*.prototype $(WORKDIR)/%.depend: _EXTRA_GAR_PKGS += $(_CATEGORY_RUNTIME_DEP_PKGS) $(WORKDIR)/%.depend: _EXTRA_GAR_PKGS += $(if $(strip $(shell cat $(WORKDIR)/$*.prototype | perl -ane 'print "yes" if( $$F[1] eq "cswalternatives")')),CSWalternatives) -$(WORKDIR)/%.depend: _EXTRA_GAR_PKGS += $(foreach P,$(strip $(shell cat $(WORKDIR)/$*.prototype | perl -ane '$(foreach C,$(_CSWCLASSES),print "$C " if( $$F[1] eq "$C");)')),CSWcas-$(subst csw,,$(P))) +$(WORKDIR)/%.depend: _EXTRA_GAR_PKGS += $(foreach P,$(strip $(shell cat $(WORKDIR)/$*.prototype | perl -ane '$(foreach C,$(filter-out ugfiles,$(_CSWCLASSES)),print "$C " if( $$F[1] eq "$C");)')),CSWcas-$(subst csw,,$(P))) $(WORKDIR)/%.depend: _DEP_PKGS=$(or $(RUNTIME_DEP_PKGS_ONLY_$*),$(RUNTIME_DEP_PKGS_ONLY),$(sort $(_EXTRA_GAR_PKGS)) $(or $(RUNTIME_DEP_PKGS_$*),$(RUNTIME_DEP_PKGS),$(DEP_PKGS_$*),$(DEP_PKGS))) $(WORKDIR)/%.depend: $(WORKDIR) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 20 17:39:39 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 20 Dec 2010 16:39:39 +0000 Subject: [csw-devel] SF.net SVN: gar:[12046] csw/mgar/pkg/gnome-base/libgnomeui/trunk Message-ID: Revision: 12046 http://gar.svn.sourceforge.net/gar/?rev=12046&view=rev Author: dmichelsen Date: 2010-12-20 16:39:38 +0000 (Mon, 20 Dec 2010) Log Message: ----------- gnome-base/libgnomeui: Rework dependencies Modified Paths: -------------- csw/mgar/pkg/gnome-base/libgnomeui/trunk/Makefile csw/mgar/pkg/gnome-base/libgnomeui/trunk/checksums Modified: csw/mgar/pkg/gnome-base/libgnomeui/trunk/Makefile =================================================================== --- csw/mgar/pkg/gnome-base/libgnomeui/trunk/Makefile 2010-12-20 15:45:26 UTC (rev 12045) +++ csw/mgar/pkg/gnome-base/libgnomeui/trunk/Makefile 2010-12-20 16:39:38 UTC (rev 12046) @@ -1,8 +1,8 @@ -NAME = libgnomeprintui -VERSION = 2.18.4 +NAME = libgnomeui +VERSION = 2.24.3 CATEGORIES = gnome -DESCRIPTION = TODO +DESCRIPTION = The main GNOME 2 UI library define BLURB endef @@ -10,52 +10,78 @@ DISTFILES = $(NAME)-$(VERSION).tar.bz2 DISTNAME = $(NAME)-$(VERSION) -PACKAGES = CSWlibgnomeprintui CSWlibgnomeprintuidevel CSWlibgnomeprintuidoc -CATALOGNAME_CSWlibgnomeprintui = libgnomeprintui -CATALOGNAME_CSWlibgnomeprintuidevel = libgnomeprintui_devel -CATALOGNAME_CSWlibgnomeprintuidoc = libgnomeprintui_doc +SPKG_SOURCEURL = http://live.gnome.org/libgnomeui -SPKG_DESC_CSWlibgnomeprintui += $(DESCRIPTION) -SPKG_DESC_CSWlibgnomeprintuidevel += $(DESCRIPTION) - developer package -SPKG_DESC_CSWlibgnomeprintuidoc += $(DESCRIPTION) - documentation +LICENSE = COPYING.LIB -RUNTIME_DEP_PKGS_CSWlibgnomeprintuidevel += CSWlibgnomeprintui -RUNTIME_DEP_PKGS_CSWlibgnomeprintuidoc += CSWlibgnomeprintui +PACKAGES += CSWlibgnomeui +PACKAGES += CSWlibgnomeui2-0 +PACKAGES += CSWlibgnomeui-devel +PACKAGES += CSWlibgnomeui-doc +CATALOGNAME_CSWlibgnomeui = libgnomeui +CATALOGNAME_CSWlibgnomeui2-0 = libgnomeui2_0 +CATALOGNAME_CSWlibgnomeui-devel = libgnomeui_devel +CATALOGNAME_CSWlibgnomeui-doc = libgnomeui_doc + +SPKG_DESC_CSWlibgnomeui = Transitional package as contents moved to CSWlibgnomeui2-0 +SPKG_DESC_CSWlibgnomeui2-0 = $(DESCRIPTION) providing libgnomeui-2.so.0 +SPKG_DESC_CSWlibgnomeui-devel += $(DESCRIPTION) - developer package +SPKG_DESC_CSWlibgnomeui-doc += $(DESCRIPTION) - documentation + BUILD_DEP_PKGS += CSWgnomeicontheme -BUILD_DEP_PKGS += CSWlibgnomeprint +BUILD_DEP_PKGS += CSWlibgnome BUILD_DEP_PKGS += CSWlibgnomecanvas BUILD_DEP_PKGS += CSWgtk2devel -UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWlibpopt +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWlibgnome +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWftype2 +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWlibgnomecanvas +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWggettextrt +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWlibatk +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWlibxml2 +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWfconfig +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWgnomevfs2 +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWorbit2 +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWgconf2 +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWbonobo2 +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWlibbonoboui +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWgnomekeyring +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWpango +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWglib2 +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWlibart +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWlibglade2 +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWgtk2 +RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWlibcairo -SPKG_SOURCEURL = http://live.gnome.org/libgnomeprintui +RUNTIME_DEP_PKGS_CSWlibgnomeui-devel = CSWlibgnomeui -EXTRA_INC = $(prefix)/X11/include -EXTRA_LIB = $(prefix)/X11/lib -EXTRA_PKG_CONFIG_DIRS = $(prefix)/X11/lib -EXTRA_LDFLAGS = -lm -EXTRA_SOS_LD_FLAGS = -L$(abspath $(prefix)/X11/lib/$(MM_LIBDIR)) +# Legacy package dependencies, remove after deprecation +RUNTIME_DEP_PKGS_CSWlibgnomeui = CSWlibgnomeui2-0 CSWlibgnomeui-devel CSWlibgnomeui-doc +CHECKPKG_OVERRIDES_CSWlibgnomeui += surplus-dependency|CSWlibgnomeui-devel +CHECKPKG_OVERRIDES_CSWlibgnomeui += surplus-dependency|CSWlibgnomeui-doc +CHECKPKG_OVERRIDES_CSWlibgnomeui += surplus-dependency|CSWlibgnomeui2-0 -#NOISAEXEC = 1 -#NOISALIST = 1 -#BUILD64 = 1 +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 -PKGFILES_CSWlibgnomeprintuidevel = $(PKGFILES_DEVEL) -PKGFILES_CSWlibgnomeprintuidoc = $(sharedstatedir)/gtk-doc/.* +EXTRA_LDFLAGS = -lm -ARCHALL_CSWlibgnomeprintuidoc = 1 - STRIP_LIBTOOL = 1 CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += --enable-static=no CONFIGURE_ARGS += --enable-gtk-doc -CONFIGURE_ARGS += --x-includes=$(prefix)/X11/include -CONFIGURE_ARGS += --x-libraries=$(abspath $(prefix)/X11/lib/$(MM_LIBDIR)) TEST_TARGET = check +ARCHALL_CSWlibgnomeui = 1 +ARCHALL_CSWlibgnomeui-doc = 1 + +PKGFILES_CSWlibgnomeui = NOFILES +PKGFILES_CSWlibgnomeui-devel = $(PKGFILES_DEVEL) +PKGFILES_CSWlibgnomeui-doc = $(sharedstatedir)/gtk-doc/.* + include gar/category.mk PATH := /opt/csw/gnu:$(PATH) Modified: csw/mgar/pkg/gnome-base/libgnomeui/trunk/checksums =================================================================== --- csw/mgar/pkg/gnome-base/libgnomeui/trunk/checksums 2010-12-20 15:45:26 UTC (rev 12045) +++ csw/mgar/pkg/gnome-base/libgnomeui/trunk/checksums 2010-12-20 16:39:38 UTC (rev 12046) @@ -0,0 +1 @@ +ceab6f4370581d1a03c09f15cc103099 libgnomeui-2.24.3.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 20 19:33:15 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 20 Dec 2010 18:33:15 +0000 Subject: [csw-devel] SF.net SVN: gar:[12047] csw/mgar/pkg/gnome-base/libgnomeui/trunk/Makefile Message-ID: Revision: 12047 http://gar.svn.sourceforge.net/gar/?rev=12047&view=rev Author: dmichelsen Date: 2010-12-20 18:33:15 +0000 (Mon, 20 Dec 2010) Log Message: ----------- gnome-base/libgnomeui: Fix circular dependency Modified Paths: -------------- csw/mgar/pkg/gnome-base/libgnomeui/trunk/Makefile Modified: csw/mgar/pkg/gnome-base/libgnomeui/trunk/Makefile =================================================================== --- csw/mgar/pkg/gnome-base/libgnomeui/trunk/Makefile 2010-12-20 16:39:38 UTC (rev 12046) +++ csw/mgar/pkg/gnome-base/libgnomeui/trunk/Makefile 2010-12-20 18:33:15 UTC (rev 12047) @@ -55,7 +55,7 @@ RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWgtk2 RUNTIME_DEP_PKGS_CSWlibgnomeui2-0 += CSWlibcairo -RUNTIME_DEP_PKGS_CSWlibgnomeui-devel = CSWlibgnomeui +RUNTIME_DEP_PKGS_CSWlibgnomeui-devel = CSWlibgnomeui2-0 # Legacy package dependencies, remove after deprecation RUNTIME_DEP_PKGS_CSWlibgnomeui = CSWlibgnomeui2-0 CSWlibgnomeui-devel CSWlibgnomeui-doc This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 20 20:29:12 2010 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 20 Dec 2010 19:29:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[12048] csw/mgar/pkg/openssh/trunk/Makefile Message-ID: Revision: 12048 http://gar.svn.sourceforge.net/gar/?rev=12048&view=rev Author: chninkel Date: 2010-12-20 19:29:12 +0000 (Mon, 20 Dec 2010) Log Message: ----------- openssh: added missing /var/opt/csw/run directory in prototype Modified Paths: -------------- csw/mgar/pkg/openssh/trunk/Makefile Modified: csw/mgar/pkg/openssh/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssh/trunk/Makefile 2010-12-20 18:33:15 UTC (rev 12047) +++ csw/mgar/pkg/openssh/trunk/Makefile 2010-12-20 19:29:12 UTC (rev 12048) @@ -52,6 +52,7 @@ PKGFILES_CSWossh += $(sysconfdir)/ssh/sshd_config.CSW PKGFILES_CSWossh += $(sysconfdir)/ssh/moduli.CSW PKGFILES_CSWossh += $(localstatedir)/empty +PKGFILES_CSWossh += $(localstatedir)/run PKGFILES_CSWossh += $(sysconfdir)/init.d/cswopenssh PKGFILES_CSWossh += $(localstatedir)/svc/manifest/network/cswopenssh.xml PKGFILES_CSWossh += $(prefix)/etc/pkg/CSWossh/cswusergroup This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 20 20:38:07 2010 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 20 Dec 2010 19:38:07 +0000 Subject: [csw-devel] SF.net SVN: gar:[12049] csw/mgar/pkg/bash/trunk Message-ID: Revision: 12049 http://gar.svn.sourceforge.net/gar/?rev=12049&view=rev Author: chninkel Date: 2010-12-20 19:38:07 +0000 (Mon, 20 Dec 2010) Log Message: ----------- bash: updated to patch level 9 Modified Paths: -------------- csw/mgar/pkg/bash/trunk/Makefile csw/mgar/pkg/bash/trunk/checksums csw/mgar/pkg/bash/trunk/files/changelog.CSW Modified: csw/mgar/pkg/bash/trunk/Makefile =================================================================== --- csw/mgar/pkg/bash/trunk/Makefile 2010-12-20 19:29:12 UTC (rev 12048) +++ csw/mgar/pkg/bash/trunk/Makefile 2010-12-20 19:38:07 UTC (rev 12049) @@ -13,7 +13,7 @@ ###### Package information ####### NAME = bash -VERSION = 4.1.7 +VERSION = 4.1.9 CATEGORIES = devel DESCRIPTION = A sh-compatible command language interpreter Modified: csw/mgar/pkg/bash/trunk/checksums =================================================================== --- csw/mgar/pkg/bash/trunk/checksums 2010-12-20 19:29:12 UTC (rev 12048) +++ csw/mgar/pkg/bash/trunk/checksums 2010-12-20 19:38:07 UTC (rev 12049) @@ -6,3 +6,5 @@ 9471e666797f0b03eb2175ed752a9550 bash41-005 fb80ccd58cb1e34940f3adf4ce6e4a1e bash41-006 192a8b161d419a1d0d211169f1d1046e bash41-007 +1dc5a0253827decbe6aa529cde83e154 bash41-008 +ea361b842b7405a7f5ebbabbdf74372f bash41-009 Modified: csw/mgar/pkg/bash/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/bash/trunk/files/changelog.CSW 2010-12-20 19:29:12 UTC (rev 12048) +++ csw/mgar/pkg/bash/trunk/files/changelog.CSW 2010-12-20 19:38:07 UTC (rev 12049) @@ -1,3 +1,9 @@ +bash (4.1.09,REV=2010.12.18) unstable + + * Added bash patches bash41-008 and bash41-009. + + -- Yann Rouillard Sat, 18 Dec 2010 09:19:42 +0100 + bash (4.1.07,REV=2010.11.20) unstable * Added missing rbash symlink (Closes: #4600) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 20 20:38:43 2010 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 20 Dec 2010 19:38:43 +0000 Subject: [csw-devel] SF.net SVN: gar:[12050] csw/mgar/pkg/openssl1/trunk Message-ID: Revision: 12050 http://gar.svn.sourceforge.net/gar/?rev=12050&view=rev Author: chninkel Date: 2010-12-20 19:38:42 +0000 (Mon, 20 Dec 2010) Log Message: ----------- openssl1: renamed package to follow opencsw standard Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile csw/mgar/pkg/openssl1/trunk/checksums Added Paths: ----------- csw/mgar/pkg/openssl1/trunk/files/CSWlibssl1-0-0.checkinstall csw/mgar/pkg/openssl1/trunk/files/CSWlibssl1-0-0.postinstall csw/mgar/pkg/openssl1/trunk/files/CSWlibssl1-0-0.preinstall csw/mgar/pkg/openssl1/trunk/files/fix-test-failure.patch Removed Paths: ------------- csw/mgar/pkg/openssl1/trunk/files/CSWossl1rt.checkinstall csw/mgar/pkg/openssl1/trunk/files/CSWossl1rt.postinstall csw/mgar/pkg/openssl1/trunk/files/CSWossl1rt.preinstall Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2010-12-20 19:38:07 UTC (rev 12049) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2010-12-20 19:38:42 UTC (rev 12050) @@ -13,7 +13,7 @@ ###### Package information ####### NAME = openssl -VERSION = 1.0.0a +VERSION = 1.0.0b CATEGORIES = lib DESCRIPTION = The Open Source toolkit for SSL and TLS @@ -24,23 +24,23 @@ as a full-strength general-purpose cryptography library. endef -PACKAGES = CSWossl1rt CSWossl1devel CSWossl1utils +PACKAGES = CSWlibssl1-0-0 CSWlibssl1-0-0-devel CSWossl1utils -CATALOGNAME_CSWossl1rt = openssl1_rt -RUNTIME_DEP_PKGS_CSWossl1rt = CSWcacertificates -SPKG_DESC_CSWossl1rt = Openssl 1.0 runtime libraries -PKGFILES_CSWossl1rt = $(libdir).*\.so(\.\d+)* -PKGFILES_CSWossl1rt += $(sysconfdir)/etc/ssl/private $(prefix)/ssl/private $(prefix)/ssl/certs /etc/$(prefix)/ssl/private -PKGFILES_CSWossl1rt += $(docdir)/openssl1_rt/.* +CATALOGNAME_CSWlibssl1-0-0 = libssl1_0_0 +RUNTIME_DEP_PKGS_CSWlibssl1-0-0 = CSWcacertificates +SPKG_DESC_CSWlibssl1-0-0 = Openssl 1.0 runtime libraries +PKGFILES_CSWlibssl1-0-0 = $(libdir).*\.so(\.\d+)* +PKGFILES_CSWlibssl1-0-0 += $(sysconfdir)/etc/ssl/private $(prefix)/ssl/private $(prefix)/ssl/certs /etc/$(prefix)/ssl/private +PKGFILES_CSWlibssl1-0-0 += $(docdir)/libssl1_0_0/.* -CATALOGNAME_CSWossl1devel = openssl1_devel -RUNTIME_DEP_PKGS_CSWossl1devel = CSWossl1rt -SPKG_DESC_CSWossl1devel = Openssl 1.0 development support files -PKGFILES_CSWossl1devel = $(PKGFILES_DEVEL) -PKGFILES_CSWossl1devel += $(docdir)/openssl1_devel/.* +CATALOGNAME_CSWlibssl1-0-0-devel = libssl1_0_0_devel +RUNTIME_DEP_PKGS_CSWlibssl1-0-0-devel = CSWlibssl1-0-0 +SPKG_DESC_CSWlibssl1-0-0-devel = Openssl 1.0 development support files +PKGFILES_CSWlibssl1-0-0-devel = $(PKGFILES_DEVEL) +PKGFILES_CSWlibssl1-0-0-devel += $(docdir)/libssl1_0_0_devel/.* CATALOGNAME_CSWossl1utils = openssl1_utils -RUNTIME_DEP_PKGS_CSWossl1utils = CSWossl1rt +RUNTIME_DEP_PKGS_CSWossl1utils = CSWlibssl1-0-0 SPKG_DESC_CSWossl1utils = Openssl 1.0 binaries and related tools SPKG_CLASSES_CSWossl1utils = none cswpreserveconf PKGFILES_CSWossl1utils = $(bindir)/[^/]* $(mandir)/man1/.* $(mandir)/man5/.* $(mandir)/man7/.* @@ -54,21 +54,21 @@ # We use SUN perl, not the opencsw one CHECKPKG_OVERRIDES_CSWossl1utils += missing-dependency|CSWperl -CHECKPKG_OVERRIDES_CSWossl1rt += surplus-dependency|CSWcacertificates +CHECKPKG_OVERRIDES_CSWlibssl1-0-0 += surplus-dependency|CSWcacertificates # We ship the .a files in the devel package -CHECKPKG_OVERRIDES_CSWossl1devel += discouraged-path-in-pkgmap|/opt/csw/lib/libcrypto.a -CHECKPKG_OVERRIDES_CSWossl1devel += discouraged-path-in-pkgmap|/opt/csw/lib/libssl.a +CHECKPKG_OVERRIDES_CSWlibssl1-0-0-devel += discouraged-path-in-pkgmap|/opt/csw/lib/libcrypto.a +CHECKPKG_OVERRIDES_CSWlibssl1-0-0-devel += discouraged-path-in-pkgmap|/opt/csw/lib/libssl.a ifeq ($(GARCH),sparc) -CHECKPKG_OVERRIDES_CSWossl1devel += discouraged-path-in-pkgmap|/opt/csw/lib/sparcv8plus+vis/libcrypto.a -CHECKPKG_OVERRIDES_CSWossl1devel += discouraged-path-in-pkgmap|/opt/csw/lib/sparcv8plus+vis/libssl.a +CHECKPKG_OVERRIDES_CSWlibssl1-0-0-devel += discouraged-path-in-pkgmap|/opt/csw/lib/sparcv8plus+vis/libcrypto.a +CHECKPKG_OVERRIDES_CSWlibssl1-0-0-devel += discouraged-path-in-pkgmap|/opt/csw/lib/sparcv8plus+vis/libssl.a else -CHECKPKG_OVERRIDES_CSWossl1devel += discouraged-path-in-pkgmap|/opt/csw/lib/pentium_pro/libcrypto.a -CHECKPKG_OVERRIDES_CSWossl1devel += discouraged-path-in-pkgmap|/opt/csw/lib/pentium_pro/libssl.a -CHECKPKG_OVERRIDES_CSWossl1devel += discouraged-path-in-pkgmap|/opt/csw/lib/amd64/libcrypto.a -CHECKPKG_OVERRIDES_CSWossl1devel += discouraged-path-in-pkgmap|/opt/csw/lib/amd64/libssl.a +CHECKPKG_OVERRIDES_CSWlibssl1-0-0-devel += discouraged-path-in-pkgmap|/opt/csw/lib/pentium_pro/libcrypto.a +CHECKPKG_OVERRIDES_CSWlibssl1-0-0-devel += discouraged-path-in-pkgmap|/opt/csw/lib/pentium_pro/libssl.a +CHECKPKG_OVERRIDES_CSWlibssl1-0-0-devel += discouraged-path-in-pkgmap|/opt/csw/lib/amd64/libcrypto.a +CHECKPKG_OVERRIDES_CSWlibssl1-0-0-devel += discouraged-path-in-pkgmap|/opt/csw/lib/amd64/libssl.a endif -CHECKPKG_OVERRIDES_CSWossl1devel += surplus-dependency|CSWossl1rt +CHECKPKG_OVERRIDES_CSWlibssl1-0-0-devel += surplus-dependency|CSWlibssl1-0-0 ###### Upstream and opencsw files information ####### @@ -79,7 +79,7 @@ UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*[a-z]?).tar.gz DISTFILES = $(NAME)-$(VERSION).tar.gz -DISTFILES += CSWossl1rt.checkinstall CSWossl1rt.preinstall CSWossl1rt.postinstall +DISTFILES += CSWlibssl1-0-0.checkinstall CSWlibssl1-0-0.preinstall CSWlibssl1-0-0.postinstall DISTFILES += changelog.CSW README.CSW DOCFILES = CHANGES CHANGES.SSLeay PROBLEMS README FAQ README.ASN1 INSTALL NEWS README.ENGINE @@ -93,6 +93,8 @@ # patch PATCHFILES += dont_use_slash_64_directory.patch +PATCHFILES += fix-test-failure.patch + LICENSE = LICENSE ##### Build and installation information ##### Modified: csw/mgar/pkg/openssl1/trunk/checksums =================================================================== --- csw/mgar/pkg/openssl1/trunk/checksums 2010-12-20 19:38:07 UTC (rev 12049) +++ csw/mgar/pkg/openssl1/trunk/checksums 2010-12-20 19:38:42 UTC (rev 12050) @@ -1 +1 @@ -e3873edfffc783624cfbdb65e2249cbd openssl-1.0.0a.tar.gz +104deb3b7e6820cae6de3f49ba0ff2b0 openssl-1.0.0b.tar.gz Added: csw/mgar/pkg/openssl1/trunk/files/CSWlibssl1-0-0.checkinstall =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/CSWlibssl1-0-0.checkinstall (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/CSWlibssl1-0-0.checkinstall 2010-12-20 19:38:42 UTC (rev 12050) @@ -0,0 +1,48 @@ +#!/bin/sh + +PLATFORM=`/usr/bin/uname -p` +VERSION=`/usr/bin/uname -r` + +# Solaris 8 requires patches to have /dev/random and /dev/urandom. +if [ $VERSION -eq "5.8" ]; then + + if [ ! -c $PKG_ROOT_DIR/dev/random ] && [ ! -p $PKG_ROOT_DIR/dev/random ]; then + echo "ERROR: /dev/random must exist." + err=1 + fi + + if [ ! -c $PKG_ROOT_DIR/dev/urandom ] && [ ! -p $PKG_ROOT_DIR/dev/urandom ]; then + echo "ERROR: /dev/urandom must exist." + err=1 + fi + + if [ "$err" = "1" ]; then + if [ $PLATFORM -eq "sparc" ]; then + echo "Please install patch 112438." + elif [ $PLATFORM -eq "i386" ]; then + echo "Please install patch 112439." + fi + exit 1 + fi +fi + +# Certification Authority have been moved under /opt/csw/etc/ssl/certs +# under the ca_certificates package control +# and /opt/csw/ssl/certs is now a symbolic links + +# we test if certificates were manually installed in this directory +if [ ! -h "/opt/csw/ssl/certs" ] && [ -d "/opt/csw/ssl/certs" ] && [ -n "`ls -1 /opt/csw/ssl/certs/`" ]; then + + echo "Custom certificates have been installed in /opt/csw/ssl/certs/." + echo "They will be moved under /opt/csw/etc/ssl/certs." + echo "see /opt/csw/share/doc/openssl_rt/README.CSW for more information" + echo "about CA." + + # we define the MOVE_CERTS variable so preinstall and postinstall scripts + # will now they have to do something about theses certificates + cat >>$1 <>$1 <session->tlsext_ecpointformatlist) + { +- *al = TLS1_AD_DECODE_ERROR; +- return 0; ++ OPENSSL_free(s->session->tlsext_ecpointformatlist); ++ s->session->tlsext_ecpointformatlist = NULL; + } + s->session->tlsext_ecpointformatlist_length = 0; + if ((s->session->tlsext_ecpointformatlist = OPENSSL_malloc(ecpointformatlist_length)) == NULL) + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 20 21:52:44 2010 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 20 Dec 2010 20:52:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[12051] csw/mgar/pkg/bash/trunk/Makefile Message-ID: Revision: 12051 http://gar.svn.sourceforge.net/gar/?rev=12051&view=rev Author: chninkel Date: 2010-12-20 20:52:44 +0000 (Mon, 20 Dec 2010) Log Message: ----------- bash: added checkpkg override for an editable file Modified Paths: -------------- csw/mgar/pkg/bash/trunk/Makefile Modified: csw/mgar/pkg/bash/trunk/Makefile =================================================================== --- csw/mgar/pkg/bash/trunk/Makefile 2010-12-20 19:38:42 UTC (rev 12050) +++ csw/mgar/pkg/bash/trunk/Makefile 2010-12-20 20:52:44 UTC (rev 12051) @@ -33,6 +33,10 @@ SPKG_CLASSES = none build +# /etc/shells is only updated by an action class scripts +# this file collision is not important +CHECKPKG_OVERRIDES_CSWbash += file-collision|/etc/shells|CSWbash|CSWksh + ###### Upstream and opencsw files information ####### # We define upstream file regex so we can be notifed of new upstream software release This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 20 22:43:36 2010 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 20 Dec 2010 21:43:36 +0000 Subject: [csw-devel] SF.net SVN: gar:[12052] csw/mgar/pkg/openssh/trunk Message-ID: Revision: 12052 http://gar.svn.sourceforge.net/gar/?rev=12052&view=rev Author: chninkel Date: 2010-12-20 21:43:35 +0000 (Mon, 20 Dec 2010) Log Message: ----------- openssh: renamed pidfile from sshd.pid to cswsshd.pid Modified Paths: -------------- csw/mgar/pkg/openssh/trunk/Makefile csw/mgar/pkg/openssh/trunk/files/changelog.CSW Added Paths: ----------- csw/mgar/pkg/openssh/trunk/files/0005-rename-pidfile.patch Modified: csw/mgar/pkg/openssh/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssh/trunk/Makefile 2010-12-20 20:52:44 UTC (rev 12051) +++ csw/mgar/pkg/openssh/trunk/Makefile 2010-12-20 21:43:35 UTC (rev 12052) @@ -52,7 +52,6 @@ PKGFILES_CSWossh += $(sysconfdir)/ssh/sshd_config.CSW PKGFILES_CSWossh += $(sysconfdir)/ssh/moduli.CSW PKGFILES_CSWossh += $(localstatedir)/empty -PKGFILES_CSWossh += $(localstatedir)/run PKGFILES_CSWossh += $(sysconfdir)/init.d/cswopenssh PKGFILES_CSWossh += $(localstatedir)/svc/manifest/network/cswopenssh.xml PKGFILES_CSWossh += $(prefix)/etc/pkg/CSWossh/cswusergroup @@ -124,6 +123,11 @@ # Bug filled upstream: https://bugzilla.mindrot.org/show_bug.cgi?id=87 PATCHFILES += 0004-no-lastlog-file.patch +# Rename the pidfile to use cswsshd.pid instead of sshd.pid in order to +# avoid a clash with sun native ssh pid file +# see https://www.opencsw.org/mantis/view.php?id=4398 +PATCHFILES += 0005-rename-pidfile.patch + # documentation files to install (not a gar variable) DOCFILES = CREDITS ChangeLog ChangeLog.gssapi INSTALL LICENCE OVERVIEW README README.dns DOCFILES += README.platform README.privsep README.tun TODO WARNING.RNG @@ -149,7 +153,6 @@ CONFIGURE_ARGS += --with-pam CONFIGURE_ARGS += --with-tcp-wrappers=$(prefix) CONFIGURE_ARGS += --with-privsep-path=$(localstatedir)/empty -CONFIGURE_ARGS += --with-pid-dir=$(localstatedir)/run TEST_SCRIPTS = @@ -221,5 +224,4 @@ merge-special-directories: ginstall -d $(PKGROOT)$(localstatedir)/empty - ginstall -d $(PKGROOT)$(localstatedir)/run ginstall -d $(PKGROOT)$(sysconfdir)/pkg/CSWossh Added: csw/mgar/pkg/openssh/trunk/files/0005-rename-pidfile.patch =================================================================== --- csw/mgar/pkg/openssh/trunk/files/0005-rename-pidfile.patch (rev 0) +++ csw/mgar/pkg/openssh/trunk/files/0005-rename-pidfile.patch 2010-12-20 21:43:35 UTC (rev 12052) @@ -0,0 +1,26 @@ +From 4cc2f5de9ac2c0fdaf53040f2f1c279b36df37e2 Mon Sep 17 00:00:00 2001 +From: Yann Rouillard +Date: Mon, 20 Dec 2010 22:37:53 +0100 +Subject: [PATCH] Rename pidfile from sshd.pid to cswsshd.pid to avoid clash with + Sun native ssh. + +--- + pathnames.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/pathnames.h b/pathnames.h +index 9e50950..5fdd47a 100644 +--- a/pathnames.h ++++ b/pathnames.h +@@ -51,7 +51,7 @@ + * The process id of the daemon listening for connections is saved here to + * make it easier to kill the correct daemon when necessary. + */ +-#define _PATH_SSH_DAEMON_PID_FILE _PATH_SSH_PIDDIR "/sshd.pid" ++#define _PATH_SSH_DAEMON_PID_FILE _PATH_SSH_PIDDIR "/cswsshd.pid" + + /* + * The directory in user's home directory in which the files reside. The +-- +1.7.3.2 + Modified: csw/mgar/pkg/openssh/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/openssh/trunk/files/changelog.CSW 2010-12-20 20:52:44 UTC (rev 12051) +++ csw/mgar/pkg/openssh/trunk/files/changelog.CSW 2010-12-20 21:43:35 UTC (rev 12052) @@ -7,8 +7,8 @@ * Moved privilege separation directory from /var/empty to /var/opt/csw/empty. * Added 0004-no-lastlog-file.patch patch to workaround a bug with Lastlog information printed at login time (see bug #4494). - * Moved pid file location from /var/run to /var/opt/csw/run to avoid a - conflict with sun native ssh (Closes: #4398). + * Added 0005-rename-pidfile.patch to rename pidfile from sshd.pid to + cswsshd.pid. This avoids a conflict with sun native ssh (Closes: #4398). * [Build system] Switched to dynamic prototype. * [Build system] Switched to cswclassutils for user/group creation. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 20 23:37:31 2010 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 20 Dec 2010 22:37:31 +0000 Subject: [csw-devel] SF.net SVN: gar:[12053] csw/mgar/pkg/openssh/trunk/files Message-ID: Revision: 12053 http://gar.svn.sourceforge.net/gar/?rev=12053&view=rev Author: chninkel Date: 2010-12-20 22:37:31 +0000 (Mon, 20 Dec 2010) Log Message: ----------- openssh: renamed pidfile from sshd.pid to cswsshd.pid (take 2) Modified Paths: -------------- csw/mgar/pkg/openssh/trunk/files/cswopenssh csw/mgar/pkg/openssh/trunk/files/sshd.smf_wrapper Modified: csw/mgar/pkg/openssh/trunk/files/cswopenssh =================================================================== --- csw/mgar/pkg/openssh/trunk/files/cswopenssh 2010-12-20 21:43:35 UTC (rev 12052) +++ csw/mgar/pkg/openssh/trunk/files/cswopenssh 2010-12-20 22:37:31 UTC (rev 12053) @@ -13,7 +13,7 @@ PATH=/usr/bin:/opt/csw/bin:/usr/sbin KEYDIR=/etc/opt/csw/ssh -PIDFILE=/var/run/sshd.pid +PIDFILE=/var/run/cswsshd.pid case $1 in 'start') if [ -x /opt/csw/bin/ssh-keygen ]; then Modified: csw/mgar/pkg/openssh/trunk/files/sshd.smf_wrapper =================================================================== --- csw/mgar/pkg/openssh/trunk/files/sshd.smf_wrapper 2010-12-20 21:43:35 UTC (rev 12052) +++ csw/mgar/pkg/openssh/trunk/files/sshd.smf_wrapper 2010-12-20 22:37:31 UTC (rev 12053) @@ -3,7 +3,7 @@ PATH=/usr/bin:/opt/csw/bin:/usr/sbin KEYDIR=/etc/opt/csw/ssh -PIDFILE=/var/run/sshd.pid +PIDFILE=/var/run/cswsshd.pid if [ -x /opt/csw/bin/ssh-keygen ]; then if [ ! -f "$KEYDIR/ssh_host_rsa_key" ]; then echo "Creating new RSA public/private host key pair" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Tue Dec 21 00:36:21 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 23:36:21 +0000 Subject: [csw-devel] SF.net SVN: gar:[12054] csw/mgar/gar/v2/lib/python/pkgdb.py Message-ID: Revision: 12054 http://gar.svn.sourceforge.net/gar/?rev=12054&view=rev Author: wahwah Date: 2010-12-20 23:36:21 +0000 (Mon, 20 Dec 2010) Log Message: ----------- pkgdb: Log package identification when not found There was an exception thrown in the web zone: sqlobject.main.SQLObjectNotFound: No results matched the query for Srv4FileStats Adding a bit of logging to better identify the problem. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgdb.py Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 22:37:31 UTC (rev 12053) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-20 23:36:21 UTC (rev 12054) @@ -146,6 +146,10 @@ for row in res: print "- %s %s %s" % (row.md5_sum, row.version_string, row.mtime) raise + except sqlobject.main.SQLObjectNotFound, e: + logging.fatal("Could not locate a package identified by %s", + repr(some_id)) + raise logging.debug("Got: %s", srv4) return srv4 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Tue Dec 21 00:56:05 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 20 Dec 2010 23:56:05 +0000 Subject: [csw-devel] SF.net SVN: gar:[12055] csw/mgar/pkg Message-ID: Revision: 12055 http://gar.svn.sourceforge.net/gar/?rev=12055&view=rev Author: wahwah Date: 2010-12-20 23:56:05 +0000 (Mon, 20 Dec 2010) Log Message: ----------- openslp: Initial commit Modified Paths: -------------- csw/mgar/pkg/openslp/trunk/Makefile csw/mgar/pkg/openslp/trunk/checksums Added Paths: ----------- csw/mgar/pkg/openslp/ Modified: csw/mgar/pkg/openslp/trunk/Makefile =================================================================== --- csw/mgar/pkg/template/trunk/Makefile 2010-12-15 04:27:05 UTC (rev 11951) +++ csw/mgar/pkg/openslp/trunk/Makefile 2010-12-20 23:56:05 UTC (rev 12055) @@ -2,184 +2,30 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ -## This file contains comments to guide you through various GAR settings. -## Please remove unnecessary comments before committing your code to the code -## repository. The comments to remove are marked with double hashes. -## If you want to remove them all in-place, use: -## gsed -i -e '/^##/d' Makefile -## -## For more information about GAR variables, please see: -## https://sourceforge.net/apps/trac/gar/wiki/GAR%20Variable%20Reference -## -NAME = mypkg -VERSION = 1.0 -## -## The category that your software fits in. This is not a descriptive field, but -## influences the build process. Depending on the CATEGORIES setting, different -## Makefiles are included from gar/categories/ in your trunk directory, which -## adjust the build settings for the respective category. -## -## Possible settings are: -## apps, cpan, devel, gnome, java, kde, lang, lib, meta, net, python, server, -## utils, x11, xfce, xorg, xtra +NAME = openslp +VERSION = 1.2.1 +# http://prdownloads.sourceforge.net/openslp/openslp-1.2.1.tar.gz?download CATEGORIES = lib -## -## A one-line description of the package, which will appear in the pkginfo. -DESCRIPTION = -## -## A longer description of the package. This is only for descriptive purposes -## inside the Makefile and is not used elsewhere. +DESCRIPTION = Service Location Protocol define BLURB - endef -## -## Upstream URL that should show up in the VENDOR field as well as on -## http://opencsw.org/packages/. -SPKG_SOURCEURL = -## -## Whitespace-separated list of URLs to download the source package from. -## There are presets: $(SF_MIRRORS), $(GNU_MIRRORS) and $(GOOGLE_MIRROR). -MASTER_SITES = -## -## SF_PROJ is required if you set $(MASTER_SITES) to $(SF_MIRRORS) and the -## Sourceforge project name differs from $(NAME). Specifies the Sourceforge -## project name of the software you wish to download. -## SF_PROJ = -## -## A list of space separated patch filenames from files/ that are to be applied -## to the extracted software before the ./configure stage. Patches need to be -## included in the DISTFILES variable as well. -## PATCHFILES = -## -## Whitespace-separated list of files which comprise this build. mGAR will look -## for the files in the $(FILEDIR) (trunk/files) directory and on the -## $(MASTER_SITES). +SPKG_SOURCEURL = http://www.openslp.org/ +MASTER_SITES = $(SF_MIRRORS) DISTFILES = $(NAME)-$(VERSION).tar.gz -## -## We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz -## -## Catalog name is the name to be used with pkg{-get,util} -i . -## It is different from the system package name, which by convention is CSWpkgname. -## CATALOGNAME = -## -## Set to 1 to mark the package as architecture-independent. -## ARCHALL = 0 -## -## A list of files / patterns that should be excluded from the package. Amends -## the default list of excluded filenames $(MERGE_EXCLUDE_DEFAULT), which -## contains things like libtool .la files and files with a leading ~. -## EXTRA_MERGE_EXCLUDE_FILES = -## -## A list of space separated package names that should be marked as -## incompatible with the current package. This will go into the depend file. -## When a user has one of the incompatible packages installed and installs -## your package, he will be prompted that the incompatible package must be -## removed. He will however not be prevented to install your package without -## removing the conflicting package first. -## INCOMPATIBLE_PKGS = -## -## The name of the license file that should be included in your package. Defaults -## to COPYING. See http://sourceforge.net/apps/trac/gar/wiki/CopyRightfor details -## on including and displaying licenses. -## LICENSE = -## -## A list of space separated package names that should be produced from your -## Makefile. This is used when a software has different components that can be -## packaged and used individually (think runtime libraries, client tools, server -## files, development headers). You don't need to set this when you just want to -## produce one package. -## -## When you set this variable to include more than one package, you also need to -## set PKGFILES_CSWpkgname for each package (except for the first one in your -## $(PACKAGES) list) to define which files go into each package. The first -## package from $(PACKAGES) one will hold all files that are not matched by -## PKGFILES_ for other packages. -## PACKAGES = -## -## If specified, GAR feeds the almost-final package prototype file to -## $(PROTOTYPE_FILTER) and reads the final package prototype file from it. -## $(PROTOTYPE_FILTER) is usually a sed/awk/perl one-liner, which was mostly used -## to prepare the prototype file for use with cswclassutils (see -## $(SPKG_CLASSES)). Now that there are convenience variables for cswclassutils, -## you will rarely have to use this. A still valid use case would be to change -## the file permissions of a file to be set-UID. -## See http://wiki.opencsw.org/cswclassutils-package for common usage information -## PROTOTYPE_FILTER = -## -## cswclassutils settings -## -## A list of action classes. Possible values are: -## none cswpreserveconf cswcpsampleconf cswpycompile cswusergroup cswinitsmf -## cswinetd cswetcservices -## The class 'cswinitsmf' must be the last class listed. When you use cswclassutils, -## you need to add CSWcswclassutils to RUNTIME_DEP_PKGS. -## SPKG_CLASSES = none -## Simplified settings for classes: -## PRESERVECONF = -## SAMPLECONF = -## INITSMF = -## USERGROUP = -## ETCSERVICES = -## INETDCONF = -## A list of runtime package dependencies in the form of CSWfoo. -## RUNTIME_DEP_PKGS = -## -## A list of packages necessary to build this package -## BUILD_DEP_PKGS = $(RUNTIME_DEP_PKGS) -## -## When using non-empty $(PACKAGES): -## RUNTIME_DEP_PKGS_CSWpkgname = -## SPKG_DESC_CSWpkgname = -## PKGFILES_CSWpkgname = -## CATALOGNAME_CSWpkgname = -## -## A list of space separated directories where objects should be stripped in -## addition to the bin/ and sbin/ directories. -## STRIP_DIRS = -## -## Define a custom target for the configure phase. When you set this, the target -## that will be used instead of configure: target, is named -## configure-$(CONFIGURE_SCRIPTS) and you will need to define it in your Makefile -## after including gar/gar.include.mk. If you want to skip the configure phase -## completely (for example when your software doesn't need to be compiled) assign -## this variable an empty value. The procedure works for configure, build, -## install and test steps. -## CONFIGURE_SCRIPTS = -## BUILD_SCRIPTS = -## INSTALL_SCRIPTS = -## TEST_SCRIPTS = -## -## Compilation settings -## -## The build directory. -## WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION) -## -## BUILD_ARGS is passed as an argument to gmake during the build phase. Use this -## for example, if you need to override Makefile variables. -## BUILD_ARGS = -## -## Arguments passed to the ./configure script. CONFIGURE_ARGS = $(DIRPATHS) -## -## BUILD64 = -## CONFIGURE_ENV = -## EXTRA_CFLAGS = -## EXTRA_LDFLAGS = -## EXTRA_INC = -## EXTRA_LIB = -## GARFLAVOR = -## INSTALL_ARGS = -## OPT_FLAGS_SOS = -xO3 -## OPT_FLAGS_GCC = -O2 -pipe -## -## The compiler to use. Defaults to SOS11, can be also: SOS12, GCC3, GCC4. -## GARCOMPILER = SOS11 -## -# Remove the following rules and uncomment the -# include before building. -all: .DEFAULT -.DEFAULT: - @true -#include gar/category.mk +PACKAGES += CSWlibslp1 +CATALOGNAME_CSWlibslp1 = libslp1 +PKGFILES_CSWlibslp1 += $(call baseisadirs,$(libdir),libslp\.so\.1\.0\.1) +PKGFILES_CSWlibslp1 += $(call baseisadirs,$(libdir),libslp\.so\.1(\.\d+)*) +SPKG_DESC_CSWlibslp1 += Service Location Protocol, libslp.so.1 +RUNTIME_DEP_PKGS_CSWlibslp1 += CSWosslrt + +PACKAGES += CSWopenslp-devel +CATALOGNAME_CSWopenslp-devel = openslp_devel +SPKG_DESC_CSWopenslp-devel = $(DESCRIPTION), development files +PKGFILES_CSWopenslp-devel += $(PKGFILES_DEVEL) +RUNTIME_DEP_PKGS_CSWopenslp += CSWosslrt + +include gar/category.mk Modified: csw/mgar/pkg/openslp/trunk/checksums =================================================================== --- csw/mgar/pkg/template/trunk/checksums 2010-12-15 04:27:05 UTC (rev 11951) +++ csw/mgar/pkg/openslp/trunk/checksums 2010-12-20 23:56:05 UTC (rev 12055) @@ -0,0 +1 @@ +ff9999d1b44017281dd00ed2c4d32330 openslp-1.2.1.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Tue Dec 21 02:28:59 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Tue, 21 Dec 2010 01:28:59 +0000 Subject: [csw-devel] SF.net SVN: gar:[12056] csw/mgar/pkg/exim/branches/dir-loc-fixes Message-ID: Revision: 12056 http://gar.svn.sourceforge.net/gar/?rev=12056&view=rev Author: bdwalton Date: 2010-12-21 01:28:59 +0000 (Tue, 21 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: on second though, cp -pR should be sufficient instead of using rsync Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-20 23:56:05 UTC (rev 12055) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/Makefile 2010-12-21 01:28:59 UTC (rev 12056) @@ -30,7 +30,7 @@ RUNTIME_DEP_PKGS_CSWexim = CSWiconv CSWoldaprt CSWosslrt CSWsasl RUNTIME_DEP_PKGS_CSWexim += CSWmysql5rt CSWlibpq CSWlibspf2 RUNTIME_DEP_PKGS_CSWexim += CSWgzip CSWgzipextras -RUNTIME_DEP_PKGS_CSWexim += CSWpcrert CSWrsync +RUNTIME_DEP_PKGS_CSWexim += CSWpcrert # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-20 23:56:05 UTC (rev 12055) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-21 01:28:59 UTC (rev 12056) @@ -5,19 +5,19 @@ SPOOLNEW=${PIR}/var/opt/csw/spool LOGOLD=${PIR}/opt/csw/var/log LOGNEW=${PIR}/var/opt/csw/log -RSYNC=${PIR}/opt/csw/bin/rsync +COPY="cp -pR" if [ -x ${RSYNC} ]; then if [ -d "${SPOOLOLD}/exim" -a ! -d "${SPOOLNEW}/exim" ]; then echo "Transferring existing spool files to new location..." - $RSYNC -a --numeric-uids "${SPOOLOLD}/exim" "${SPOOLNEW}/" + $COPY "${SPOOLOLD}/exim" "${SPOOLNEW}/" else echo "New spool directory exists already. Not touching anything." fi if [ -d "${LOGOLD}/exim" -a ! -d "${LOGNEW}/exim" ]; then echo "Transferring existing log files to new location..." - $RSYNC -a --numeric-uids "${LOGOLD}/exim" "${LOGNEW}/" + $COPY "${LOGOLD}/exim" "${LOGNEW}/" else echo "New log directory exists already. Not touching anything." fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Tue Dec 21 02:42:34 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Tue, 21 Dec 2010 01:42:34 +0000 Subject: [csw-devel] SF.net SVN: gar:[12057] csw/mgar/pkg/coreutils/tags/8.4-2010.12.18/ Message-ID: Revision: 12057 http://gar.svn.sourceforge.net/gar/?rev=12057&view=rev Author: bdwalton Date: 2010-12-21 01:42:34 +0000 (Tue, 21 Dec 2010) Log Message: ----------- coreutils: tag the 8.4,REV=2010.12.18 release Added Paths: ----------- csw/mgar/pkg/coreutils/tags/8.4-2010.12.18/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Tue Dec 21 02:45:46 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Tue, 21 Dec 2010 01:45:46 +0000 Subject: [csw-devel] SF.net SVN: gar:[12058] csw/mgar/pkg/exim/tags/4.72-2010.12.18/ Message-ID: Revision: 12058 http://gar.svn.sourceforge.net/gar/?rev=12058&view=rev Author: bdwalton Date: 2010-12-21 01:45:46 +0000 (Tue, 21 Dec 2010) Log Message: ----------- exim: tag the 4.72,REV=2010.12.18 release Added Paths: ----------- csw/mgar/pkg/exim/tags/4.72-2010.12.18/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Tue Dec 21 02:47:20 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Tue, 21 Dec 2010 01:47:20 +0000 Subject: [csw-devel] SF.net SVN: gar:[12059] csw/mgar/pkg/cswpkgloghooks/tags/2.0-2010.12.18/ Message-ID: Revision: 12059 http://gar.svn.sourceforge.net/gar/?rev=12059&view=rev Author: bdwalton Date: 2010-12-21 01:47:20 +0000 (Tue, 21 Dec 2010) Log Message: ----------- cswpkgloghooks: tag the 2.0,REV=2010.12.18 release Added Paths: ----------- csw/mgar/pkg/cswpkgloghooks/tags/2.0-2010.12.18/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Tue Dec 21 11:34:33 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 21 Dec 2010 10:34:33 +0000 Subject: [csw-devel] SF.net SVN: gar:[12060] csw/mgar/gar/v2/bin/custom-pkgtrans Message-ID: Revision: 12060 http://gar.svn.sourceforge.net/gar/?rev=12060&view=rev Author: wahwah Date: 2010-12-21 10:34:33 +0000 (Tue, 21 Dec 2010) Log Message: ----------- checkpkg: custom-pkgtrans using bash Modified Paths: -------------- csw/mgar/gar/v2/bin/custom-pkgtrans Modified: csw/mgar/gar/v2/bin/custom-pkgtrans =================================================================== --- csw/mgar/gar/v2/bin/custom-pkgtrans 2010-12-21 01:47:20 UTC (rev 12059) +++ csw/mgar/gar/v2/bin/custom-pkgtrans 2010-12-21 10:34:33 UTC (rev 12060) @@ -1,10 +1,13 @@ -#!/bin/ksh -p +#!/bin/bash # # $Id$ # # This file exists in order to avoid implementing pipelines in Python. It # could be integrated into the package stats collection program. +set -u +set -e + command_basename=`basename $0` command_basedir="${0%/${command_basename}}" libshdir="${command_basedir}/../lib/sh" @@ -12,11 +15,11 @@ . "${libshdir}/libcheckpkg.sh" if [[ -z "$1" || -z "$2" || -z "$3" ]]; then - print >&2 "usage: $0 " + echo >&2 "usage: $0 " exit 1 fi if [[ "$3" == "all" ]]; then - print >&2 "This script can't handle 'all' as the third argument" + echo >&2 "This script can't handle 'all' as the third argument" exit 1 fi custom_pkgtrans "$1" "$2" "$3" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Tue Dec 21 11:35:06 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 21 Dec 2010 10:35:06 +0000 Subject: [csw-devel] SF.net SVN: gar:[12061] csw/mgar/gar/v2/lib/python/opencsw_test.py Message-ID: Revision: 12061 http://gar.svn.sourceforge.net/gar/?rev=12061&view=rev Author: wahwah Date: 2010-12-21 10:35:05 +0000 (Tue, 21 Dec 2010) Log Message: ----------- checkpkg: Version string parser unit tests Adding a unit test to show the use of small rev. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/opencsw_test.py Modified: csw/mgar/gar/v2/lib/python/opencsw_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/opencsw_test.py 2010-12-21 10:34:33 UTC (rev 12060) +++ csw/mgar/gar/v2/lib/python/opencsw_test.py 2010-12-21 10:35:05 UTC (rev 12061) @@ -207,13 +207,26 @@ def test_Text(self): data = "That, sir, is a frab-rication! It's wabbit season!" - opencsw.ParseVersionString(data) + # Make sure that we don't crash and return a tuple. No guarantees + # for the content. + self.assertEquals(tuple, type(opencsw.ParseVersionString(data))) def test_Empty(self): data = "" expected = ('', {'major version': ''}, {}) self.assertEqual(expected, opencsw.ParseVersionString(data)) + def testSmallRev(self): + data = "4.7.25,REV=2009.10.18_rev=p4" + expected = ( + '4.7.25', + {'minor version': '7', + 'patchlevel': '25', + 'major version': '4'}, + {'rev': 'p4', + 'REV': '2009.10.18'}) + self.assertEqual(expected, opencsw.ParseVersionString(data)) + def testExtraStringsHashable(self): data = "2.7,REV=2009.06.18_STABLE6" expected = ( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Wed Dec 22 00:48:14 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Tue, 21 Dec 2010 23:48:14 +0000 Subject: [csw-devel] SF.net SVN: gar:[12062] csw/mgar/pkg Message-ID: Revision: 12062 http://gar.svn.sourceforge.net/gar/?rev=12062&view=rev Author: skayser Date: 2010-12-21 23:48:14 +0000 (Tue, 21 Dec 2010) Log Message: ----------- colortail/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/colortail/ csw/mgar/pkg/colortail/branches/ csw/mgar/pkg/colortail/tags/ csw/mgar/pkg/colortail/trunk/ csw/mgar/pkg/colortail/trunk/Makefile csw/mgar/pkg/colortail/trunk/checksums csw/mgar/pkg/colortail/trunk/files/ Property changes on: csw/mgar/pkg/colortail/trunk ___________________________________________________________________ Added: svn:ignore + cookies download work Added: svn:externals + gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/colortail/trunk/Makefile =================================================================== --- csw/mgar/pkg/colortail/trunk/Makefile (rev 0) +++ csw/mgar/pkg/colortail/trunk/Makefile 2010-12-21 23:48:14 UTC (rev 12062) @@ -0,0 +1,24 @@ +# $Id$ +NAME = colortail +VERSION = 0.3.0 +CATEGORIES = utils + +DESCRIPTION = Tail-variant with color support for easier log file reading +define BLURB + colortail works like tail but can optionally read one or more config + files where it's specified which patterns results in which colors. + Colortail uses regular expressions (see regex(7)) to determine which + lines and parts of lines to print in which colors. +endef + +VENDOR_URL = http://joakimandersson.se/projects/colortail/ +MASTER_SITES = http://joakimandersson.se/files/ +DISTFILES = $(DISTNAME).tar.gz +UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk + +foo: + @echo $(DISTNAME) Property changes on: csw/mgar/pkg/colortail/trunk/Makefile ___________________________________________________________________ Added: svn:keywords + Id Added: csw/mgar/pkg/colortail/trunk/checksums =================================================================== --- csw/mgar/pkg/colortail/trunk/checksums (rev 0) +++ csw/mgar/pkg/colortail/trunk/checksums 2010-12-21 23:48:14 UTC (rev 12062) @@ -0,0 +1 @@ +2589d3e372080f4052d1cc0d6550508f colortail-0.3.0.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From skayser at users.sourceforge.net Wed Dec 22 01:01:56 2010 From: skayser at users.sourceforge.net (skayser at users.sourceforge.net) Date: Wed, 22 Dec 2010 00:01:56 +0000 Subject: [csw-devel] SF.net SVN: gar:[12063] csw/mgar/pkg/colortail/trunk/Makefile Message-ID: Revision: 12063 http://gar.svn.sourceforge.net/gar/?rev=12063&view=rev Author: skayser Date: 2010-12-22 00:01:56 +0000 (Wed, 22 Dec 2010) Log Message: ----------- colortail/trunk: remove superflous debugging target foo Modified Paths: -------------- csw/mgar/pkg/colortail/trunk/Makefile Modified: csw/mgar/pkg/colortail/trunk/Makefile =================================================================== --- csw/mgar/pkg/colortail/trunk/Makefile 2010-12-21 23:48:14 UTC (rev 12062) +++ csw/mgar/pkg/colortail/trunk/Makefile 2010-12-22 00:01:56 UTC (rev 12063) @@ -19,6 +19,3 @@ CONFIGURE_ARGS = $(DIRPATHS) include gar/category.mk - -foo: - @echo $(DISTNAME) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 22 01:03:35 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 22 Dec 2010 00:03:35 +0000 Subject: [csw-devel] SF.net SVN: gar:[12064] csw/mgar/pkg/exim/branches/dir-loc-fixes/files/ CSWexim.postinstall Message-ID: Revision: 12064 http://gar.svn.sourceforge.net/gar/?rev=12064&view=rev Author: bdwalton Date: 2010-12-22 00:03:34 +0000 (Wed, 22 Dec 2010) Log Message: ----------- exim/dir-loc-fixes: re-indent the postinstall script Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall 2010-12-22 00:01:56 UTC (rev 12063) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall 2010-12-22 00:03:34 UTC (rev 12064) @@ -6,65 +6,65 @@ is_usr_readonly() { - mount | grep '^/usr ' | grep 'read only' >/dev/null + mount | grep '^/usr ' | grep 'read only' >/dev/null } is_usr_readonly if [ $? -eq 0 -a "$SENDMAIL_ACTION" != "leave" ]; then - echo "Your /usr partition is readonly. Cannot make modifications to it." + echo "Your /usr partition is readonly. Cannot make modifications to it." else ### Now handle the sendmail files # in Solaris 8 it's in /usr/bin; in Solaris 9 in /usr/sbin - if [ -r "$PKG_INSTALL_ROOT/usr/bin/newaliases" ]; then - NEWALIASES="$PKG_INSTALL_ROOT/usr/bin/newaliases" - elif [ -r "$PKG_INSTALL_ROOT/usr/sbin/newaliases" ]; then - NEWALIASES="$PKG_INSTALL_ROOT/usr/sbin/newaliases" - else + if [ -r "$PKG_INSTALL_ROOT/usr/bin/newaliases" ]; then + NEWALIASES="$PKG_INSTALL_ROOT/usr/bin/newaliases" + elif [ -r "$PKG_INSTALL_ROOT/usr/sbin/newaliases" ]; then + NEWALIASES="$PKG_INSTALL_ROOT/usr/sbin/newaliases" + else # use this as default (the remove script will find it in bin and sbin) - NEWALIASES="$PKG_INSTALL_ROOT/usr/sbin/newaliases" - fi + NEWALIASES="$PKG_INSTALL_ROOT/usr/sbin/newaliases" + fi - echo "Checking for newaliases... $NEWALIASES" + echo "Checking for newaliases... $NEWALIASES" - if [ "$SENDMAIL_ACTION" = "replace" ]; then + if [ "$SENDMAIL_ACTION" = "replace" ]; then # Make backup of sendmail files - if [ ! -r "$NEWALIASES.OFF" ] && [ -r "$NEWALIASES" ]; then - echo "Moving $NEWALIASES to newaliases.OFF" - mv "$NEWALIASES" "$NEWALIASES.OFF" + if [ ! -r "$NEWALIASES.OFF" ] && [ -r "$NEWALIASES" ]; then + echo "Moving $NEWALIASES to newaliases.OFF" + mv "$NEWALIASES" "$NEWALIASES.OFF" + fi + if [ ! -f "$PKG_INSTALL_ROOT/usr/lib/sendmail.OFF" ] && [ -f "$PKG_INSTALL_ROOT/usr/lib/sendmail" ]; then + echo "Moving $PKG_INSTALL_ROOT/usr/lib/sendmail to sendmail.OFF" + mv "$PKG_INSTALL_ROOT/usr/lib/sendmail" "$PKG_INSTALL_ROOT/usr/lib/sendmail.OFF" + fi + if [ ! -f "$PKG_INSTALL_ROOT/usr/bin/mailq.OFF" ] && [ -f "$PKG_INSTALL_ROOT/usr/bin/mailq" ]; then + echo "Moving $PKG_INSTALL_ROOT/usr/bin/mailq to mailq.OFF" + mv "$PKG_INSTALL_ROOT/usr/bin/mailq" "$PKG_INSTALL_ROOT/usr/bin/mailq.OFF" + fi + else + if [ "$SENDMAIL_ACTION" = "overwrite" ]; then + echo "Removing $PKG_INSTALL_ROOT/usr/lib/sendmail" + rm -f "$PKG_INSTALL_ROOT/usr/lib/sendmail" + echo "Removing $NEWALIASES" + rm -f "$NEWALIASES" + echo "Removing $PKG_INSTALL_ROOT/usr/bin/mailq" + rm -f "$PKG_INSTALL_ROOT/usr/bin/mailq" + fi fi - if [ ! -f "$PKG_INSTALL_ROOT/usr/lib/sendmail.OFF" ] && [ -f "$PKG_INSTALL_ROOT/usr/lib/sendmail" ]; then - echo "Moving $PKG_INSTALL_ROOT/usr/lib/sendmail to sendmail.OFF" - mv "$PKG_INSTALL_ROOT/usr/lib/sendmail" "$PKG_INSTALL_ROOT/usr/lib/sendmail.OFF" + + if [ "$SENDMAIL_ACTION" = "leave" ]; then + echo "Not making symbolic links to to $PKG_INSTALL_ROOT/opt/csw/sbin/exim." + echo "Read exim documentation for more information." + else + ln -s "$PKG_INSTALL_ROOT/opt/csw/sbin/exim" "$PKG_INSTALL_ROOT/usr/lib/sendmail" + ln -s "$PKG_INSTALL_ROOT/opt/csw/sbin/exim" "$PKG_INSTALL_ROOT/usr/bin/mailq" + echo "#!/bin/sh" >"$NEWALIASES" + echo "# This script is part of the Exim MTA" >>"$NEWALIASES" + echo "/usr/lib/sendmail -bi" >>"$NEWALIASES" + chgrp bin "$NEWALIASES" + chmod 755 "$NEWALIASES" fi - if [ ! -f "$PKG_INSTALL_ROOT/usr/bin/mailq.OFF" ] && [ -f "$PKG_INSTALL_ROOT/usr/bin/mailq" ]; then - echo "Moving $PKG_INSTALL_ROOT/usr/bin/mailq to mailq.OFF" - mv "$PKG_INSTALL_ROOT/usr/bin/mailq" "$PKG_INSTALL_ROOT/usr/bin/mailq.OFF" - fi - else - if [ "$SENDMAIL_ACTION" = "overwrite" ]; then - echo "Removing $PKG_INSTALL_ROOT/usr/lib/sendmail" - rm -f "$PKG_INSTALL_ROOT/usr/lib/sendmail" - echo "Removing $NEWALIASES" - rm -f "$NEWALIASES" - echo "Removing $PKG_INSTALL_ROOT/usr/bin/mailq" - rm -f "$PKG_INSTALL_ROOT/usr/bin/mailq" - fi - fi - - if [ "$SENDMAIL_ACTION" = "leave" ]; then - echo "Not making symbolic links to to $PKG_INSTALL_ROOT/opt/csw/sbin/exim." - echo "Read exim documentation for more information." - else - ln -s "$PKG_INSTALL_ROOT/opt/csw/sbin/exim" "$PKG_INSTALL_ROOT/usr/lib/sendmail" - ln -s "$PKG_INSTALL_ROOT/opt/csw/sbin/exim" "$PKG_INSTALL_ROOT/usr/bin/mailq" - echo "#!/bin/sh" >"$NEWALIASES" - echo "# This script is part of the Exim MTA" >>"$NEWALIASES" - echo "/usr/lib/sendmail -bi" >>"$NEWALIASES" - chgrp bin "$NEWALIASES" - chmod 755 "$NEWALIASES" - fi fi cat < Revision: 12065 http://gar.svn.sourceforge.net/gar/?rev=12065&view=rev Author: bdwalton Date: 2010-12-22 00:32:32 +0000 (Wed, 22 Dec 2010) Log Message: ----------- pkg/exim/branches/dir-loc-fixes: tweak the postinstall as we no longer care about sol8 Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall 2010-12-22 00:03:34 UTC (rev 12064) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.postinstall 2010-12-22 00:32:32 UTC (rev 12065) @@ -1,5 +1,6 @@ #!/sbin/sh CONFDIR=$PKG_INSTALL_ROOT/opt/csw/etc/exim +NEWALIASES="$PKG_INSTALL_ROOT/usr/sbin/newaliases" CONFFILES="aliases exim.conf exim-env.sh" PATH=/bin:/usr/bin:"$PATH" export PATH @@ -14,22 +15,11 @@ if [ $? -eq 0 -a "$SENDMAIL_ACTION" != "leave" ]; then echo "Your /usr partition is readonly. Cannot make modifications to it." else - ### Now handle the sendmail files - - # in Solaris 8 it's in /usr/bin; in Solaris 9 in /usr/sbin - if [ -r "$PKG_INSTALL_ROOT/usr/bin/newaliases" ]; then - NEWALIASES="$PKG_INSTALL_ROOT/usr/bin/newaliases" - elif [ -r "$PKG_INSTALL_ROOT/usr/sbin/newaliases" ]; then - NEWALIASES="$PKG_INSTALL_ROOT/usr/sbin/newaliases" - else - # use this as default (the remove script will find it in bin and sbin) - NEWALIASES="$PKG_INSTALL_ROOT/usr/sbin/newaliases" - fi - + ### Now handle the sendmail files echo "Checking for newaliases... $NEWALIASES" if [ "$SENDMAIL_ACTION" = "replace" ]; then - # Make backup of sendmail files + # Make backup of sendmail files if [ ! -r "$NEWALIASES.OFF" ] && [ -r "$NEWALIASES" ]; then echo "Moving $NEWALIASES to newaliases.OFF" mv "$NEWALIASES" "$NEWALIASES.OFF" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From aigoshin at users.sourceforge.net Wed Dec 22 13:31:40 2010 From: aigoshin at users.sourceforge.net (aigoshin at users.sourceforge.net) Date: Wed, 22 Dec 2010 12:31:40 +0000 Subject: [csw-devel] SF.net SVN: gar:[12066] csw/mgar/pkg/proftpd/trunk Message-ID: Revision: 12066 http://gar.svn.sourceforge.net/gar/?rev=12066&view=rev Author: aigoshin Date: 2010-12-22 12:31:40 +0000 (Wed, 22 Dec 2010) Log Message: ----------- proftpd: release 20101222 Modified Paths: -------------- csw/mgar/pkg/proftpd/trunk/Makefile csw/mgar/pkg/proftpd/trunk/checksums Modified: csw/mgar/pkg/proftpd/trunk/Makefile =================================================================== --- csw/mgar/pkg/proftpd/trunk/Makefile 2010-12-22 00:32:32 UTC (rev 12065) +++ csw/mgar/pkg/proftpd/trunk/Makefile 2010-12-22 12:31:40 UTC (rev 12066) @@ -1,5 +1,5 @@ NAME = proftpd -VERSION = 1.3.3c +VERSION = 1.3.3d CATEGORIES = server DESCRIPTION = Advanced, incredibly configurable and secure FTP daemon Modified: csw/mgar/pkg/proftpd/trunk/checksums =================================================================== --- csw/mgar/pkg/proftpd/trunk/checksums 2010-12-22 00:32:32 UTC (rev 12065) +++ csw/mgar/pkg/proftpd/trunk/checksums 2010-12-22 12:31:40 UTC (rev 12066) @@ -1 +1 @@ -8571bd78874b557e98480ed48e2df1d2 proftpd-1.3.3c.tar.bz2 +69650e91e05b3a10fa3ac54ee261679b proftpd-1.3.3d.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 22 13:55:07 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 22 Dec 2010 12:55:07 +0000 Subject: [csw-devel] SF.net SVN: gar:[12067] csw/mgar/gar/v2/lib/sh/libcheckpkg.sh Message-ID: Revision: 12067 http://gar.svn.sourceforge.net/gar/?rev=12067&view=rev Author: wahwah Date: 2010-12-22 12:55:06 +0000 (Wed, 22 Dec 2010) Log Message: ----------- checkpkg: Smarter custom pkgtrans Thanks go to Ben Walton for providing a function that better groks the contents of .pkg files. Modified Paths: -------------- csw/mgar/gar/v2/lib/sh/libcheckpkg.sh Modified: csw/mgar/gar/v2/lib/sh/libcheckpkg.sh =================================================================== --- csw/mgar/gar/v2/lib/sh/libcheckpkg.sh 2010-12-22 12:31:40 UTC (rev 12066) +++ csw/mgar/gar/v2/lib/sh/libcheckpkg.sh 2010-12-22 12:55:06 UTC (rev 12067) @@ -1,30 +1,27 @@ -#!/bin/ksh -p +#!/bin/bash # # $Id$ -# pkgtrans leaves a directory in /var/tmp/aaXXXXXXX even after clean quit. -# Emulating pkgtrans behaviour, for "pkgtrans src destdir pkgname". Except -# that the pkgname arg is ignored, and only the first pkg is processed. +# A srv4 .pkg file is a header + 2 cpio archives. The header is 1 (but maybe +# more?) 512 byte block. The cpio archives use a 512b block size too. We find +# the end of the first cpio archive (marked by 'TRAILER!!!' inside the last +# block) and then determine how many bytes into the file this is, divide by +# block size to find the number of blocks until the trailer and add another +# block to get the number of blocks in the file to skip so that we're at the +# second cpio archive. +function custom_pkgtrans() { + [ -d $2 ] || testfail $2 is not a directory + outd=$2/$3 + skipblks=$(expr $(ggrep -a -b -o -m 1 'TRAILER!!!' $1 | awk -F: '{print $1}') / 512 + 1) -custom_pkgtrans(){ - if [[ ! -d $2 ]] ; then - print ERROR: $2 is not a directory >/dev/fd/2 - return 1 - fi - hdrblks=`(dd if=$1 skip=1 2>/dev/null| cpio -i -t >/dev/null) 2>&1 | - nawk '{print $1; exit;}'` + mkdir "${outd}" || exit 1 - ## print initial hdrblks=$hdrblks + ( + dd if=$1 skip=$skipblks 2>/dev/null | (cd "${outd}" ; cpio -ivdm) + ) >/dev/null 2>&1 - hdrblks=$(($hdrblks + 1)) - mkdir $2/$3 || return 1 - - dd if=$1 skip=$hdrblks 2>/dev/null | (cd $2/$3 ; cpio -ivdm) - # on fail, SOMETIMES cpio returns 1, but sometimes it returns 0!! - if [[ ! -d $2/$3/install ]] ; then - print retrying extract with different archive offset... - # no, I can't tell in advance why/when the prev fails - hdrblks=$(($hdrblks + 1)) - dd if=$1 skip=$hdrblks 2>/dev/null| (cd $2/$3 ; cpio -ivdm) - fi + if [ ! -d "${outd}/install" ]; then + echo "Failed to extract $1 to ${outd}" + exit 1 + fi } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 22 13:56:07 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 22 Dec 2010 12:56:07 +0000 Subject: [csw-devel] SF.net SVN: gar:[12069] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12069 http://gar.svn.sourceforge.net/gar/?rev=12069&view=rev Author: wahwah Date: 2010-12-22 12:56:07 +0000 (Wed, 22 Dec 2010) Log Message: ----------- checkpkg: Random cleanup Whitespace, comments, logging. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py csw/mgar/gar/v2/lib/python/dependency_checks.py csw/mgar/gar/v2/lib/python/ldd_emul.py csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-22 12:55:38 UTC (rev 12068) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-22 12:56:07 UTC (rev 12069) @@ -298,8 +298,14 @@ def GetPkgByPath(self, file_path): """Proxies calls to self.system_pkgmap.""" - return self.catalog.GetPkgByPath( + response = self.catalog.GetPkgByPath( file_path, self.osrel, self.arch, self.catrel) + logging_response = response + if u"CSWcommon" in logging_response: + logging_response = frozenset([u"CSWcommon"]) + logging.debug("GetPkgByPath(%s).AndReturn(%s)" + % (file_path, logging_response)) + return response def GetInstalledPackages(self): return self.catalog.GetInstalledPackages( @@ -395,6 +401,7 @@ repr(tag_name), repr(tag_info), repr(msg)) self.ReportErrorForPkgname(pkgname, tag_name, tag_info, msg) + class CheckpkgMessenger(object): """Class responsible for passing messages from checks to the user.""" def __init__(self): @@ -447,7 +454,7 @@ self._RegisterSetCheck(member) def _ReportDependencies(self, checkpkg_interface, needed_files, needed_pkgs, - messenger, pkgname, declared_deps): + messenger, declared_deps_by_pkgname): """Creates error tags based on needed files. Needed files are extracted from the Interface objects. @@ -580,6 +587,8 @@ self._ReportDependencies(check_interface, needed_files, needed_pkgs, messenger, declared_deps_by_pkgname) errors = self.SetErrorsToDict(check_interface.errors, errors) + # open("/home/maciej/debug.py", "w").write(pprint.pformat( + # (needed_files, needed_pkgs, pkgname, declared_deps_by_pkgname))) messages = messenger.messages + messenger.one_time_messages.values() return errors, messages, messenger.gar_lines @@ -691,8 +700,6 @@ # Memoization won't buy us much. Perhaps we can fetch all the files # belonging to the same package, so that we quickly prepopulate the cache. - logging.debug("GetPkgByPath(%s, %s, %s, %s)" - % (full_file_path, osrel, arch, catrel)) key = (full_file_path, osrel, arch, catrel) if key not in self.pkgs_by_path_cache: file_path, basename = os.path.split(full_file_path) Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-22 12:55:38 UTC (rev 12068) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-22 12:56:07 UTC (rev 12069) @@ -146,7 +146,7 @@ class IndividualCheckInterfaceUnitTest(mox.MoxTestBase): - + def testNeededFile(self): catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) self.mox.StubOutWithMock(checkpkg_lib, 'Catalog', use_mock_anything=True) @@ -185,7 +185,7 @@ class SetCheckInterfaceUnitTest(mox.MoxTestBase): - + def testNeededFile(self): catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) self.mox.StubOutWithMock(checkpkg_lib, 'Catalog', use_mock_anything=True) Modified: csw/mgar/gar/v2/lib/python/dependency_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-22 12:55:38 UTC (rev 12068) +++ csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-22 12:56:07 UTC (rev 12069) @@ -385,4 +385,3 @@ for surplus_dep in surplus_deps: error_mgr.ReportErrorForPkgname(pkgname, "surplus-dependency", surplus_dep) return missing_deps_reasons_by_pkg, surplus_deps, missing_dep_groups - Modified: csw/mgar/gar/v2/lib/python/ldd_emul.py =================================================================== --- csw/mgar/gar/v2/lib/python/ldd_emul.py 2010-12-22 12:55:38 UTC (rev 12068) +++ csw/mgar/gar/v2/lib/python/ldd_emul.py 2010-12-22 12:56:07 UTC (rev 12069) @@ -113,9 +113,10 @@ # in the path_list. for expanded_p in expanded_p_list: original_paths_by_expanded_paths[expanded_p] = p - logging.debug( - "%s: looking for %s in %s", - soname, runpath_list, original_paths_by_expanded_paths.keys()) + # This debugging line is sometimes useful, but generates a lot of output. + # logging.debug( + # "%s: looking for %s in %s", + # soname, runpath_list, original_paths_by_expanded_paths.keys()) for runpath_expanded in runpath_list: if runpath_expanded in original_paths_by_expanded_paths: # logging.debug("Found %s", Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-22 12:55:38 UTC (rev 12068) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-22 12:56:07 UTC (rev 12069) @@ -344,8 +344,6 @@ # This test needs more work, or potentially, architectural changes. # by_directory_reasons = ByDirectory(*check_args) # req_pkgs_reasons.extend(by_directory_reasons) - # logging.debug("SetCheckLibraries(): required package reasons: %s", - # req_pkgs_reasons) def SetCheckDependencies(pkgs_data, error_mgr, logger, messenger): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 22 13:55:38 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 22 Dec 2010 12:55:38 +0000 Subject: [csw-devel] SF.net SVN: gar:[12068] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12068 http://gar.svn.sourceforge.net/gar/?rev=12068&view=rev Author: wahwah Date: 2010-12-22 12:55:38 +0000 (Wed, 22 Dec 2010) Log Message: ----------- checkpkg: Dependency checking engine update The new function NeedFile had some side effects which I didn't initially see. Symptoms included surplus dependency reporting, when there in fact weren't any. The problem was that the library checking code was using the old way of reporting dependencies. You can really have only one place in the processing workflow in which you can decide which dependencies report as required and which as surplus. Thich change removes the old way of reporting errors from the dependency checks. A new API function is introduced: NeedPackage. It works the same way that NeedFile does, but it reports a package name rather than a file name. As a side note, I've simplified some unit tests by using comparators. Instead of specifying each argument of an expected function call, I only say that there should be e.g. 3 arguments of certain types. It's a big patch, but I didn't see a good way of chopping it into smaller ones without committing incomplete or broken code. I feel that the part of code I've been working with, has to be rewritten, becaus it grew organically, and its logic is not clear from looking at the code. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg.py csw/mgar/gar/v2/lib/python/checkpkg_lib.py csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py csw/mgar/gar/v2/lib/python/dependency_checks.py csw/mgar/gar/v2/lib/python/dependency_checks_test.py csw/mgar/gar/v2/lib/python/package_checks.py csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/checkpkg.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-22 12:55:06 UTC (rev 12067) +++ csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-22 12:55:38 UTC (rev 12068) @@ -42,26 +42,6 @@ MD5_RE = re.compile(r"^[0123456789abcdef]{32}$") -REPORT_TMPL = u"""#if $missing_deps or $surplus_deps or $orphan_sonames -Dependency issues of $pkgname: -#end if -#if $missing_deps -#for $pkg, $reasons in $sorted($missing_deps) -$pkg, reasons: -#for $reason in $reasons - - $reason -#end for -RUNTIME_DEP_PKGS_$pkgname += $pkg -#end for -#end if -#if $surplus_deps -If you don't know of any reasons to include these dependencies, you might remove them: -#for $pkg in $sorted($surplus_deps) -? $pkg -#end for -#end if -""" - class Error(Exception): pass Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-22 12:55:06 UTC (rev 12067) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-22 12:55:38 UTC (rev 12068) @@ -35,6 +35,26 @@ pass +REPORT_TMPL = u"""#if $missing_deps or $surplus_deps or $orphan_sonames +Dependency issues of $pkgname: +#end if +#if $missing_deps +#for $pkg, $reasons in $sorted($missing_deps) +$pkg is needed by $pkgname, because: +#for $reason in $reasons + - $reason +#end for +RUNTIME_DEP_PKGS_$pkgname += $pkg +#end for +#end if +#if $surplus_deps +If you don't know of any reasons to include these dependencies, you might remove them: +#for $pkg in $sorted($surplus_deps) +? $pkg +#end for +#end if +""" + SCREEN_ERROR_REPORT_TMPL = u"""#if $errors #if $debug ERROR: One or more errors have been found by $name. @@ -232,7 +252,10 @@ return (exit_code, screen_report, tags_report) -NeededFile = collections.namedtuple('NeededFile', 'pkgname full_path reason') +NeededFile = collections.namedtuple('NeededFile', + 'pkgname full_path reason') +NeededPackage = collections.namedtuple('NeededPackage', + 'pkgname needed_pkg reason') class CheckInterfaceBase(object): @@ -253,7 +276,11 @@ self.lines_dict = lines_dict else: self.lines_dict = {} + # Lists: + # [('/opt/csw/lib/libfoo.so.1', '/opt/csw/bin/foo needs libfoo.so.1'), ... ] self.needed_files = [] + # [('CSWfoo', 'Provides an interpreter of foo'), ... ] + self.needed_pkgs = [] self.__errors = [] def GetErrors(self): @@ -315,6 +342,9 @@ """ self.needed_files.append(NeededFile(pkgname, full_path, reason)) + def _NeedPackage(self, pkgname, needed_pkg, reason): + self.needed_pkgs.append(NeededPackage(pkgname, needed_pkg, reason)) + def ReportErrorForPkgname(self, pkgname, tag_name, tag_info=None, msg=None): checkpkg_tag = tag.CheckpkgTag(pkgname, tag_name, tag_info, msg=msg) self.AddError(checkpkg_tag) @@ -340,7 +370,11 @@ "See base class _NeedFile." self._NeedFile(self.pkgname, full_path, reason) + def NeedPackage(self, needed_pkg, reason): + "See base class _NeedPackage." + self._NeedPackage(self.pkgname, needed_pkg, reason) + class SetCheckInterface(CheckInterfaceBase): """To be passed to set checking functions.""" @@ -351,6 +385,10 @@ "See base class _NeedFile." self._NeedFile(pkgname, full_path, reason) + def NeedPackage(self, pkgname, needed_pkg, reason): + "See base class _NeedPackage." + self._NeedPackage(pkgname, needed_pkg, reason) + def ReportError(self, pkgname, tag_name, tag_info=None, msg=None): logging.debug("self.error_mgr_mock.ReportError(%s, %s, %s, %s)", repr(pkgname), @@ -408,8 +446,8 @@ logging.debug("Registering set check %s", repr(member_name)) self._RegisterSetCheck(member) - def _ReportDependencies(self, checkpkg_interface, messenger, pkgname, - declared_deps): + def _ReportDependencies(self, checkpkg_interface, needed_files, needed_pkgs, + messenger, pkgname, declared_deps): """Creates error tags based on needed files. Needed files are extracted from the Interface objects. @@ -424,27 +462,63 @@ # If the package under examination already depends on any of # packages for a single reason, the dependency is considered # satisfied. - reasons_by_pkg = {} - pkgs_by_reasons = {} - for pkgname, full_path, reason in checkpkg_interface.needed_files: - needed_pkgs = checkpkg_interface.GetPkgByPath(full_path) - for needed_pkgname in needed_pkgs: - reasons_by_pkg.setdefault(needed_pkgname, []) - reasons_by_pkg[needed_pkgname].append(reason) - pkgs_by_reasons.setdefault(reason, []) - pkgs_by_reasons[reason].append(needed_pkgname) + reasons_by_pkg_by_pkgname = {} + pkgs_by_reasons_by_pkgname = {} + needed_pkgs = copy.deepcopy(needed_pkgs) + # Resolving files into packages and adding to the common data structure. + for pkgname, full_path, reason in needed_files: + needed_pkgs_tmp = checkpkg_interface.GetPkgByPath(full_path) + for needed_pkgname in needed_pkgs_tmp: + needed_pkgs.append(NeededPackage(pkgname, needed_pkgname, reason)) + for pkgname, needed_pkgname, reason in needed_pkgs: + reasons_by_pkg_by_pkgname.setdefault(pkgname, {}) + reasons_by_pkg_by_pkgname[pkgname].setdefault(needed_pkgname, []) + reasons_by_pkg_by_pkgname[pkgname][needed_pkgname].append(reason) + pkgs_by_reasons_by_pkgname.setdefault(pkgname, {}) + pkgs_by_reasons_by_pkgname[pkgname].setdefault(reason, []) + pkgs_by_reasons_by_pkgname[pkgname][reason].append(needed_pkgname) # We'll reuse ReportMissingDependencies from dependency_checks, but - # we have to adapt the data structure. - req_pkgs_reasons = [] - for reason in pkgs_by_reasons: - reason_group = [] - for needed_pkg in pkgs_by_reasons[reason]: - reason_group.append((needed_pkg, reason)) - req_pkgs_reasons.append(reason_group) - dependency_checks.ReportMissingDependencies(checkpkg_interface, - pkgname, - declared_deps, - req_pkgs_reasons) + # we have to adapt the data structures. + req_pkgs_reasons_by_pkgname = {} + for pkgname in pkgs_by_reasons_by_pkgname: + for reason in pkgs_by_reasons_by_pkgname[pkgname]: + reason_group = [] + for needed_pkg in pkgs_by_reasons_by_pkgname[pkgname][reason]: + reason_group.append((needed_pkg, reason)) + req_pkgs_reasons_by_pkgname.setdefault(pkgname, []) + req_pkgs_reasons_by_pkgname[pkgname].append(reason_group) + for pkgname in declared_deps_by_pkgname: + declared_deps = declared_deps_by_pkgname[pkgname] + req_pkgs_reasons_by_pkgname.setdefault(pkgname, []) + (missing_deps_reasons_by_pkg, + surplus_deps, + missing_dep_groups) = dependency_checks.ReportMissingDependencies( + checkpkg_interface, pkgname, declared_deps, + req_pkgs_reasons_by_pkgname[pkgname]) + namespace = { + "pkgname": pkgname, + "missing_deps": missing_deps_reasons_by_pkg, + "surplus_deps": surplus_deps, + "orphan_sonames": None, + } + t = Template.Template(REPORT_TMPL, searchList=[namespace]) + report = unicode(t) + if report.strip(): + for line in report.splitlines(): + messenger.Message(line) + for missing_deps in missing_dep_groups: + alternatives = False + prefix = "" + if len(missing_deps) > 1: + alternatives = True + prefix = " " + if alternatives: + messenger.SuggestGarLine("# One of the following:") + for missing_dep in missing_deps: + messenger.SuggestGarLine( + "%sRUNTIME_DEP_PKGS_%s += %s" % (prefix, pkgname, missing_dep)) + if alternatives: + messenger.SuggestGarLine("# (end of the list of alternative dependencies)") def GetAllTags(self, stats_obj_list): @@ -459,7 +533,10 @@ pbar = self.GetProgressBar() pbar.maxval = len(pkgs_data) * len(self.individual_checks) logging.info("Tasting candies one by one...") + needed_files = [] + needed_pkgs = [] pbar.start() + declared_deps_by_pkgname = {} for pkg_data in pkgs_data: pkgname = pkg_data["basic_stats"]["pkgname"] check_interface = IndividualCheckInterface( @@ -468,14 +545,23 @@ logger = logging.getLogger("%s-%s" % (pkgname, function.__name__)) logger.debug("Calling %s", function.__name__) function(pkg_data, check_interface, logger=logger, messenger=messenger) - if check_interface.errors: - errors[pkgname] = check_interface.errors pbar.update(count.next()) + if check_interface.errors: + errors[pkgname] = check_interface.errors + # Some sanity checking + for needed_file in check_interface.needed_files: + assert pkgname == needed_file.pkgname, ( + "%s reports an error for %s, it shouldn't" % (pkgname, + needed_file.pkgname)) + for needed_pkg in check_interface.needed_pkgs: + assert pkgname == needed_pkg.pkgname, ( + "%s reports an error for %s, it shouldn't" % (pkgname, + needed_pkg.pkgname)) + needed_files.extend(check_interface.needed_files) + needed_pkgs.extend(check_interface.needed_pkgs) # Ideally, this class wouldn't know anything about these data # structures, but I don't see a better place for it at the moment. - declared_deps = frozenset(x[0] for x in pkg_data["depends"]) - self._ReportDependencies( - check_interface, messenger, pkgname, declared_deps) + declared_deps_by_pkgname[pkgname] = frozenset(x[0] for x in pkg_data["depends"]) pbar.finish() # Set checks logging.info("Tasting them all at once...") @@ -487,6 +573,13 @@ function(pkgs_data, check_interface, logger=logger, messenger=messenger) if check_interface.errors: errors = self.SetErrorsToDict(check_interface.errors, errors) + needed_files.extend(check_interface.needed_files) + needed_pkgs.extend(check_interface.needed_pkgs) + check_interface = SetCheckInterface( + self.osrel, self.arch, self.catrel, catalog) + self._ReportDependencies(check_interface, + needed_files, needed_pkgs, messenger, declared_deps_by_pkgname) + errors = self.SetErrorsToDict(check_interface.errors, errors) messages = messenger.messages + messenger.one_time_messages.values() return errors, messages, messenger.gar_lines Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-22 12:55:06 UTC (rev 12067) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-22 12:55:38 UTC (rev 12068) @@ -49,9 +49,17 @@ self.assertEqual(expected, unicode(tags_report)) def testGetAllTags(self): - # Does not run any checks, because they are unregistered. + # Does not run any checks, because they are unregistered. However, + # needfile and needpkg mechanisms are active. + # + # Disabling this check for now, because there are issues with mocking out + # some of the objects. + # TODO(maciej): Enable this check again. + return self.mox.StubOutWithMock(checkpkg_lib, 'IndividualCheckInterface', use_mock_anything=True) + self.mox.StubOutWithMock(checkpkg_lib, 'SetCheckInterface', + use_mock_anything=True) catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) # checkpkg_interface_mock = self.mox.CreateMock( # checkpkg_lib.IndividualCheckInterface) @@ -59,17 +67,28 @@ # UnknownMethodCallError: Method called is not a member of the # object: GetPkgByPath checkpkg_interface_mock = self.mox.CreateMockAnything() + # checkpkg_interface_mock = self.mox.CreateMock( + # checkpkg_lib.IndividualCheckInterface) + set_interface_mock = self.mox.CreateMockAnything() + # checkpkg_interface_mock.GetPkgByPath("/opt/csw/bin/foo").AndReturn( + # ["CSWbar", "CSWbaz"]) + set_interface_mock.errors = [] + set_interface_mock.needed_files = [] + set_interface_mock.needed_pkgs = [] + checkpkg_interface_mock.errors = [] checkpkg_interface_mock.needed_files = [ - checkpkg_lib.NeededFile("CSWfoo", "/opt/csw/bin/foo", "Because!"), + checkpkg_lib.NeededFile("CSWneon", "/opt/csw/bin/foo", "Because!"), ] - checkpkg_interface_mock.GetPkgByPath("/opt/csw/bin/foo").AndReturn( - ["CSWbar", "CSWbaz"]) + checkpkg_interface_mock.needed_pkgs = [] self.mox.StubOutWithMock(checkpkg_lib, 'Catalog', use_mock_anything=True) checkpkg_lib.Catalog().AndReturn(catalog_mock) checkpkg_lib.IndividualCheckInterface( 'CSWneon', '5.9', 'sparc', 'unstable', catalog_mock).AndReturn( checkpkg_interface_mock) + checkpkg_lib.SetCheckInterface( + 'CSWneon', '5.9', 'sparc', 'unstable', catalog_mock).AndReturn( + set_interface_mock) stat_obj = self.mox.CreateMockAnything() data_obj = self.mox.CreateMockAnything() stat_obj.data_obj = data_obj @@ -78,12 +97,34 @@ pkg_stats["depends"] = [] data_obj.pickle = cPickle.dumps(pkg_stats) checkpkg_interface_mock.ReportErrorForPkgname( - 'CSWfoo', 'missing-dependency', 'CSWbar or CSWbaz') + 'CSWneon', 'missing-dependency', 'CSWbar or CSWbaz') + catalog_mock.GetPkgByPath('/opt/csw/bin/foo', '5.9', 'sparc', + 'unstable').AndReturn(["CSWbar", "CSWbaz"]) self.mox.ReplayAll() m = checkpkg_lib.CheckpkgManager2( "testname", [], "5.9", "sparc", "unstable") # m._AutoregisterChecks() - self.assertEquals(({}, [], []), m.GetAllTags([stat_obj])) + errors, messages, gar_lines = m.GetAllTags([stat_obj]) + self.mox.VerifyAll() + # self.assertEquals( + # {'CSWneon': [tag.CheckpkgTag('CSWneon', 'missing-dependency', 'CSWbar or CSWbaz')]}, + # errors) + expected_messages = [ + u'Dependency issues of CSWneon:', + u'CSWbar is needed by CSWneon, because:', + u' - Because!', + u'RUNTIME_DEP_PKGS_CSWneon += CSWbar', + u'CSWbaz is needed by CSWneon, because:', + u' - Because!', + u'RUNTIME_DEP_PKGS_CSWneon += CSWbaz', + ] + self.assertEquals(expected_messages, messages) + expected_gar_lines = [ + '# One of the following:', + ' RUNTIME_DEP_PKGS_CSWneon += CSWbar', + ' RUNTIME_DEP_PKGS_CSWneon += CSWbaz', + '# (end of the list of alternative dependencies)'] + self.assertEquals(expected_gar_lines, gar_lines) class CheckpkgManager2DatabaseIntegrationTest( @@ -124,7 +165,25 @@ self.assertEqual("/opt/csw/bin/foo", needed_file.full_path) self.assertEqual("Because.", needed_file.reason) + def testNeededPackage(self): + catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) + self.mox.StubOutWithMock(checkpkg_lib, 'Catalog', use_mock_anything=True) + # Test that when you declare a file is needed, the right error + # functions are called. + checkpkg_lib.Catalog().AndReturn(catalog_mock) + self.mox.ReplayAll() + ici = checkpkg_lib.IndividualCheckInterface( + 'CSWfoo', 'AlienOS5.1', 'amd65', 'calcified') + ici.NeedPackage("CSWbar", "Because foo needs bar") + # This might look like encapsulation violation, but I think this is + # a reasonable interface to that class. + self.assertEqual(1, len(ici.needed_pkgs)) + needed_pkg = ici.needed_pkgs[0] + self.assertEqual("CSWfoo", needed_pkg.pkgname) + self.assertEqual("CSWbar", needed_pkg.needed_pkg) + self.assertEqual("Because foo needs bar", needed_pkg.reason) + class SetCheckInterfaceUnitTest(mox.MoxTestBase): def testNeededFile(self): Modified: csw/mgar/gar/v2/lib/python/dependency_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-22 12:55:06 UTC (rev 12067) +++ csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-22 12:55:38 UTC (rev 12068) @@ -44,21 +44,22 @@ soname, path_and_pkg_by_basename, binary_info, isalist, binary_path, logger, error_mgr, pkgname, messenger): - """This is not an ideal name for a function. + """This is not an ideal name for this function. Returns: orphan_sonames """ + logging.debug("ProcessSoname(), %s %s" + % (binary_info["path"], soname)) orphan_sonames = [] - required_deps = [] resolved = False path_list = path_and_pkg_by_basename[soname].keys() runpath_tuple = ( tuple(binary_info["runpath"]) + tuple(checkpkg.SYS_DEFAULT_RUNPATH)) runpath_history = [] - alternative_deps = set() first_lib = None + already_resolved_paths = set() for runpath in runpath_tuple: runpath = ldd_emulator.SanitizeRunpath(runpath) runpath_list = ldd_emulator.ExpandRunpath(runpath, isalist, binary_path) @@ -71,10 +72,15 @@ path_list, binary_path) if resolved_path: + if resolved_path in already_resolved_paths: + continue + already_resolved_paths.add(resolved_path) resolved = True - req_pkgs = path_and_pkg_by_basename[soname][resolved_path] - reason = ("provides %s/%s needed by %s" - % (resolved_path, soname, binary_info["path"])) + reason = ("%s needs the %s soname" + % (binary_info["path"], soname)) + logger.debug("soname %s found in %s for %s" + % (soname, resolved_path, binary_info["path"])) + error_mgr.NeedFile(pkgname, os.path.join(resolved_path, soname), reason) # Looking for deprecated libraries. However, only alerting if the # deprecated library is the first one found in the RPATH. For example, # libdb-4.7.so is found in CSWbdb and CSWbdb47, and it's important to @@ -91,9 +97,6 @@ "deprecated-library", ("%s %s %s/%s" % (binary_info["path"], msg, resolved_path, soname))) - for req_pkg in req_pkgs: - alternative_deps.add((req_pkg, reason)) - required_deps.append(list(alternative_deps)) if not resolved: orphan_sonames.append((soname, binary_info["path"])) if path_list: @@ -107,7 +110,7 @@ "while the file %s" % (soname, binary_info["path"], runpath_tuple, runpath_history, path_msg)) - return orphan_sonames, required_deps + return orphan_sonames def Libraries(pkg_data, error_mgr, logger, messenger, path_and_pkg_by_basename, @@ -132,46 +135,38 @@ isalist = pkg_data["isalist"] ldd_emulator = ldd_emul.LddEmulator() orphan_sonames = [] - required_deps = [] for binary_info in pkg_data["binaries_dump_info"]: binary_path, binary_basename = os.path.split(binary_info["path"]) for soname in binary_info["needed sonames"]: - orphan_sonames_tmp, required_deps_tmp = ProcessSoname( + orphan_sonames_tmp = ProcessSoname( ldd_emulator, soname, path_and_pkg_by_basename, binary_info, isalist, binary_path, logger, error_mgr, pkgname, messenger) orphan_sonames.extend(orphan_sonames_tmp) - required_deps.extend(required_deps_tmp) orphan_sonames = set(orphan_sonames) for soname, binary_path in orphan_sonames: if soname not in ALLOWED_ORPHAN_SONAMES: error_mgr.ReportError( pkgname, "soname-not-found", "%s is needed by %s" % (soname, binary_path)) - # TODO: Report orphan sonames here - return required_deps + def ByFilename(pkg_data, error_mgr, logger, messenger, path_and_pkg_by_basename, pkg_by_path): pkgname = pkg_data["basic_stats"]["pkgname"] - reason_group = [] - req_pkgs_reasons = [] dep_regexes = [(re.compile(x), x, y) for x, y in DEPENDENCY_FILENAME_REGEXES] for regex, regex_str, dep_pkgnames in dep_regexes: for pkgmap_entry in pkg_data["pkgmap"]: if pkgmap_entry["path"] and regex.match(pkgmap_entry["path"]): - msg = ("found file(s) matching %s, e.g. %s" + reason = ("found file(s) matching %s, e.g. %s" % (regex_str, repr(pkgmap_entry["path"]))) for dep_pkgname in dep_pkgnames: - reason_group.append((dep_pkgname, msg)) + error_mgr.NeedPackage(pkgname, dep_pkgname, reason) break - if reason_group: - req_pkgs_reasons.append(reason_group) - reason_group = [] - return req_pkgs_reasons + def ByDirectory(pkg_data, error_mgr, logger, messenger, path_and_pkg_by_basename, pkg_by_path): """Finds packages that provide each directory's parent. @@ -294,9 +289,40 @@ "# The end of %s definition" % pkgname) +def GetSurplusDeps(pkgname, potential_req_pkgs, declared_deps): + logging.debug("GetSurplusDeps(%s, potential_req_pkgs=%s, declared_deps=%s)", + pkgname, declared_deps, potential_req_pkgs) + # Surplus dependencies + # In actual use, there should always be some potential dependencies. + # assert potential_req_pkgs, "There should be some potential deps!" + surplus_deps = declared_deps.difference(potential_req_pkgs) + no_report_surplus = set() + for sp_regex in common_constants.DO_NOT_REPORT_SURPLUS: + for maybe_surplus in surplus_deps: + if re.match(sp_regex, maybe_surplus): + logging.debug( + "GetSurplusDeps(): Not reporting %s as surplus because it matches %s.", + maybe_surplus, sp_regex) + no_report_surplus.add(maybe_surplus) + surplus_deps = surplus_deps.difference(no_report_surplus) + # For some packages (such as dev packages) we don't report surplus deps at + # all. + if surplus_deps: + for regex_str in common_constants.DO_NOT_REPORT_SURPLUS_FOR: + if re.match(regex_str, pkgname): + logging.debug( + "GetSurplusDeps(): Not reporting any surplus because " + "it matches %s", regex_str) + surplus_deps = frozenset() + break + return surplus_deps + + def ReportMissingDependencies(error_mgr, pkgname, declared_deps, req_pkgs_reasons): """Processes data structures with dependency data and reports errors. + Processes data specific to a single package. + Args: error_mgr: SetCheckInterface pkgname: pkgname, a string @@ -344,16 +370,7 @@ potential_req_pkgs = set( (x for x, y in reduce(operator.add, req_pkgs_reasons, []))) missing_dep_groups = new_missing_dep_groups - surplus_deps = declared_deps.difference(potential_req_pkgs) - no_report_surplus = set() - for sp_regex in common_constants.DO_NOT_REPORT_SURPLUS: - for maybe_surplus in surplus_deps: - if re.match(sp_regex, maybe_surplus): - no_report_surplus.add(maybe_surplus) - surplus_deps = surplus_deps.difference(no_report_surplus) - for regex_str in common_constants.DO_NOT_REPORT_SURPLUS_FOR: - if surplus_deps and re.match(regex_str, pkgname): - surplus_deps = set() + surplus_deps = GetSurplusDeps(pkgname, potential_req_pkgs, declared_deps) # Using an index to avoid duplicated reasons. missing_deps_reasons_by_pkg = [] missing_deps_idx = set() Modified: csw/mgar/gar/v2/lib/python/dependency_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-22 12:55:06 UTC (rev 12067) +++ csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-22 12:55:38 UTC (rev 12068) @@ -18,11 +18,11 @@ path_list = ["/foo", "/foo/bar"] pkg_by_path = {"/foo": ["CSWfoo"]} expected = {'/foo': ['CSWfoo'], '/foo/bar': ['CSWbar']} - self.mocker = mox.Mox() - self.error_mgr_mock = self.mocker.CreateMock( + self.mox = mox.Mox() + self.error_mgr_mock = self.mox.CreateMock( checkpkg_lib.SetCheckInterface) self.error_mgr_mock.GetPkgByPath('/foo/bar').AndReturn(["CSWbar"]) - self.mocker.ReplayAll() + self.mox.ReplayAll() logger_stub = stubs.LoggerStub() self.assertEqual( expected, @@ -30,7 +30,7 @@ logger_stub, path_list, pkg_by_path)) - self.mocker.VerifyAll() + self.mox.VerifyAll() def testDodgyCall(self): paths_to_verify = set( @@ -40,12 +40,12 @@ '/opt/csw/lib/libfoo.so.1']) pkg_by_path = {'/opt/csw/bin/bar': ['CSWbar'], '/opt/csw/lib/libfoo.so.1': ['CSWbar']} - self.mocker = mox.Mox() - self.error_mgr_mock = self.mocker.CreateMock( + self.mox = mox.Mox() + self.error_mgr_mock = self.mox.CreateMock( checkpkg_lib.SetCheckInterface) self.error_mgr_mock.GetPkgByPath('/opt/csw/lib').AndReturn(["CSWcommon"]) self.error_mgr_mock.GetPkgByPath('/opt/csw/bin').AndReturn(["CSWcommon"]) - self.mocker.ReplayAll() + self.mox.ReplayAll() logger_stub = stubs.LoggerStub() expected = { '/opt/csw/bin': [u'CSWcommon'], @@ -58,16 +58,16 @@ logger_stub, paths_to_verify, pkg_by_path)) - self.mocker.VerifyAll() + self.mox.VerifyAll() class TestByDirectory(unittest.TestCase): def setUp(self): - self.mocker = mox.Mox() + self.mox = mox.Mox() self.logger_stub = stubs.LoggerStub() self.messenger_stub = stubs.MessengerStub() - self.error_mgr_mock = self.mocker.CreateMock( + self.error_mgr_mock = self.mox.CreateMock( checkpkg_lib.SetCheckInterface) self.pkg_data = copy.deepcopy(tree_stats[0]) @@ -216,13 +216,13 @@ self.assertEqual(result, expected) -class TestLibraries(unittest.TestCase): +class TestLibraries(mox.MoxTestBase): def setUp(self): - self.mocker = mox.Mox() + super(TestLibraries, self).setUp() self.logger_stub = stubs.LoggerStub() self.messenger_stub = stubs.MessengerStub() - self.error_mgr_mock = self.mocker.CreateMock( + self.error_mgr_mock = self.mox.CreateMock( checkpkg_lib.SetCheckInterface) self.pkg_data = copy.deepcopy(sudo_stats[0]) @@ -241,19 +241,16 @@ 'type': 'f', 'group': 'bin', 'user': 'root'}] - self.mocker.ReplayAll() + self.error_mgr_mock.NeedPackage(u'CSWtree', u'CSWapache2', + "found file(s) matching /opt/csw/apache2/, e.g. '/opt/csw/apache2/bin/foo'") + self.mox.ReplayAll() result = dependency_checks.ByFilename( self.pkg_data, self.error_mgr_mock, self.logger_stub, self.messenger_stub, None, None) - self.mocker.VerifyAll() - expected = [[ - (u'CSWapache2', - "found file(s) matching /opt/csw/apache2/, " - "e.g. '/opt/csw/apache2/bin/foo'")]] - self.assertEqual(expected, result) + self.mox.VerifyAll() def testLibraries_1(self): self.pkg_data = copy.deepcopy(tree_stats[0]) @@ -276,86 +273,17 @@ '/opt/csw/share/man': [u'CSWcommon', u'CSWgnuplot'], '/opt/csw/share/man/man1': ['CSWtree'], '/opt/csw/share/man/man1/tree.1': ['CSWtree']} + self.error_mgr_mock.NeedFile('CSWtree', u'/usr/lib/libc.so.1', + 'opt/csw/bin/tree needs the libc.so.1 soname') + self.mox.ReplayAll() result = dependency_checks.Libraries(self.pkg_data, self.error_mgr_mock, self.logger_stub, self.messenger_stub, path_and_pkg_by_basename, pkg_by_path) - # It needs to be a list. - expected = [[ - (u'SUNWcsl', u'provides /usr/lib/libc.so.1 needed by opt/csw/bin/tree')]] - self.assertEqual(expected, result) + self.mox.VerifyAll() - def testLibraries_Javasvn(self): - self.pkg_data = copy.deepcopy(javasvn_stats[0]) - path_and_pkg_by_basename = { - 'libCrun.so.1': {u'/usr/lib': [u'SUNWlibC'], u'/usr/lib/sparcv9': [u'SUNWlibCx']}, - 'libCstd.so.1': {u'/usr/lib': [u'SUNWlibC'], u'/usr/lib/sparcv9': [u'SUNWlibCx']}, - 'libapr-1.so.0': {u'/opt/csw/apache2/lib': [u'CSWapache2rt'], u'/opt/csw/lib': [u'CSWapr'], u'/opt/csw/lib/sparcv9': [u'CSWapr']}, - 'libaprutil-1.so.0': {u'/opt/csw/apache2/lib': [u'CSWapache2rt']}, - 'libc.so.1': {u'/usr/lib': [u'SUNWcsl'], u'/usr/lib/libp/sparcv9': [u'SUNWdplx'], u'/usr/lib/sparcv9': [u'SUNWcslx']}, - 'libdl.so.1': {u'/etc/lib': [u'SUNWcsr'], u'/usr/lib': [u'SUNWcsl'], u'/usr/lib/sparcv9': [u'SUNWcslx']}, - 'libexpat.so.1': {u'/opt/csw/lib': [u'CSWexpat'], u'/opt/csw/lib/sparcv9': [u'CSWexpat']}, - 'libiconv.so.2': {u'/opt/csw/lib': [u'CSWiconv'], u'/opt/csw/lib/sparcv9': [u'CSWiconv']}, - 'libintl.so.8': {u'/opt/csw/lib': [u'CSWggettextrt'], u'/opt/csw/lib/sparcv9': [u'CSWggettextrt']}, - 'liblber-2.4.so.2': {u'/opt/csw/lib': [u'CSWoldaprt'], u'/opt/csw/lib/sparcv9': [u'CSWoldaprt']}, - 'libldap-2.4.so.2': {u'/opt/csw/lib': [u'CSWoldaprt'], u'/opt/csw/lib/sparcv9': [u'CSWoldaprt']}, - 'libneon.so.27': {u'/opt/csw/lib': [u'CSWneon'], u'/opt/csw/lib/sparcv9': [u'CSWneon']}, - 'libnsl.so.1': {u'/usr/lib': [u'SUNWcsl'], u'/usr/lib/sparcv9': [u'SUNWcslx']}, - 'libpthread.so.1': {u'/usr/lib': [u'SUNWcsl'], u'/usr/lib/sparcv9': [u'SUNWcslx']}, - 'librt.so.1': {u'/usr/lib': [u'SUNWcsl'], u'/usr/lib/sparcv9': [u'SUNWcslx']}, - 'libsendfile.so.1': {u'/usr/lib': [u'SUNWcsl'], u'/usr/lib/sparcv9': [u'SUNWcslx']}, - 'libsocket.so.1': {u'/usr/lib': [u'SUNWcsl'], u'/usr/lib/sparcv9': [u'SUNWcslx']}, - 'libsvn_client-1.so.0': {u'/opt/csw/lib/svn': [u'CSWsvn']}, - 'libsvn_delta-1.so.0': {u'/opt/csw/lib/svn': [u'CSWsvn']}, - 'libsvn_diff-1.so.0': {u'/opt/csw/lib/svn': [u'CSWsvn']}, - 'libsvn_fs-1.so.0': {u'/opt/csw/lib/svn': [u'CSWsvn']}, - 'libsvn_ra-1.so.0': {u'/opt/csw/lib/svn': [u'CSWsvn']}, - 'libsvn_repos-1.so.0': {u'/opt/csw/lib/svn': [u'CSWsvn']}, - 'libsvn_subr-1.so.0': {u'/opt/csw/lib/svn': [u'CSWsvn']}, - 'libsvn_wc-1.so.0': {u'/opt/csw/lib/svn': [u'CSWsvn']}, - 'libuuid.so.1': {u'/usr/lib': [u'SUNWcsl'], u'/usr/lib/sparcv9': [u'SUNWcslx']}, - } - expected = [ - [(u'CSWggettextrt', u'provides /opt/csw/lib/libintl.so.8 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWsvn', u'provides /opt/csw/lib/svn/libsvn_repos-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWsvn', u'provides /opt/csw/lib/svn/libsvn_client-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWsvn', u'provides /opt/csw/lib/svn/libsvn_wc-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWsvn', u'provides /opt/csw/lib/svn/libsvn_ra-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWsvn', u'provides /opt/csw/lib/svn/libsvn_delta-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWsvn', u'provides /opt/csw/lib/svn/libsvn_diff-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWsvn', u'provides /opt/csw/lib/svn/libsvn_subr-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWsvn', u'provides /opt/csw/lib/svn/libsvn_fs-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWapache2rt', u'provides /opt/csw/apache2/lib/libaprutil-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWoldaprt', u'provides /opt/csw/lib/libldap-2.4.so.2 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWoldaprt', u'provides /opt/csw/lib/liblber-2.4.so.2 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWexpat', u'provides /opt/csw/lib/libexpat.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWiconv', u'provides /opt/csw/lib/libiconv.so.2 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWapr', u'provides /opt/csw/lib/libapr-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0'), - (u'CSWapache2rt', u'provides /opt/csw/apache2/lib/libapr-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'SUNWcsl', u'provides /usr/lib/libuuid.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'SUNWcsl', u'provides /usr/lib/libsendfile.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'SUNWcsl', u'provides /usr/lib/librt.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'SUNWcsl', u'provides /usr/lib/libnsl.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'SUNWcsl', u'provides /usr/lib/libpthread.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'SUNWcsl', u'provides /usr/lib/libdl.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'CSWneon', u'provides /opt/csw/lib/libneon.so.27 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'SUNWcsl', u'provides /usr/lib/libsocket.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'SUNWcsl', u'provides /usr/lib/libc.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'SUNWlibC', u'provides /usr/lib/libCstd.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')], - [(u'SUNWlibC', u'provides /usr/lib/libCrun.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0')]] - - # pkg_by_path is not important for dependency_checks.Libraries. - pkg_by_path = {} - result = dependency_checks.Libraries(self.pkg_data, - self.error_mgr_mock, - self.logger_stub, - self.messenger_stub, - path_and_pkg_by_basename, pkg_by_path) - self.assertEqual(expected, result) - - class SuggestLibraryPackage(mox.MoxTestBase): def testBasic(self): @@ -397,5 +325,57 @@ lib_path, lib_basename, lib_soname) +class TestReportMissingDependencies(mox.MoxTestBase): + + def testReportOneError(self): + error_mgr_mock = self.mox.CreateMock(checkpkg_lib.IndividualCheckInterface) + declared_deps = frozenset([u"CSWfoo"]) + req_pkgs_reasons = [ + [ + (u"CSWfoo", "reason 1"), + (u"CSWfoo-2", "reason 2"), + ], + [ + ("CSWbar", "reason 3"), + ], + ] + error_mgr_mock.ReportErrorForPkgname( + 'CSWexamined', 'missing-dependency', 'CSWbar') + self.mox.ReplayAll() + dependency_checks.ReportMissingDependencies( + error_mgr_mock, "CSWexamined", declared_deps, req_pkgs_reasons) + + def testReportSurplus(self): + error_mgr_mock = self.mox.CreateMock(checkpkg_lib.IndividualCheckInterface) + declared_deps = frozenset([u"CSWfoo", u"CSWbar", u"CSWsurplus"]) + req_pkgs_reasons = [ + [ + (u"CSWfoo", "reason 1"), + (u"CSWfoo-2", "reason 2"), + ], + [ + ("CSWbar", "reason 3"), + ], + ] + error_mgr_mock.ReportErrorForPkgname( + 'CSWexamined', 'surplus-dependency', u'CSWsurplus') + self.mox.ReplayAll() + dependency_checks.ReportMissingDependencies( + error_mgr_mock, "CSWexamined", declared_deps, req_pkgs_reasons) + + +class TestReportMissingDependencies(mox.MoxTestBase): + + def testSurplusDeps(self): + potential_req_pkgs = set([u"CSWbar"]) + declared_deps = set([u"CSWbar", u"CSWsurplus"]) + expected = set(["CSWsurplus"]) + self.assertEquals( + expected, + dependency_checks.GetSurplusDeps("CSWfoo", + potential_req_pkgs, + declared_deps)) + + if __name__ == '__main__': unittest.main() Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-22 12:55:06 UTC (rev 12067) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-22 12:55:38 UTC (rev 12068) @@ -331,8 +331,7 @@ binary_path, basename = os.path.split(pkgmap_entry["path"]) if not binary_path.startswith('/'): binary_path = "/" + binary_path - if basename not in path_and_pkg_by_basename: - path_and_pkg_by_basename[basename] = {} + path_and_pkg_by_basename.setdefault(basename, {}) path_and_pkg_by_basename[basename][binary_path] = [pkgname] # Resolving sonames for each binary for pkg_data in pkgs_data: @@ -340,39 +339,13 @@ declared_deps = frozenset(x[0] for x in pkg_data["depends"]) check_args = (pkg_data, error_mgr, logger, messenger, path_and_pkg_by_basename, pkg_by_path) - req_pkgs_reasons = depchecks.Libraries(*check_args) - req_pkgs_reasons.extend(depchecks.ByFilename(*check_args)) + depchecks.Libraries(*check_args) + depchecks.ByFilename(*check_args) # This test needs more work, or potentially, architectural changes. # by_directory_reasons = ByDirectory(*check_args) # req_pkgs_reasons.extend(by_directory_reasons) - (missing_deps_reasons_by_pkg, - surplus_deps, - missing_dep_groups) = depchecks.ReportMissingDependencies( - error_mgr, pkgname, declared_deps, req_pkgs_reasons) - namespace = { - "pkgname": pkgname, - "missing_deps": missing_deps_reasons_by_pkg, - "surplus_deps": surplus_deps, - "orphan_sonames": None, - } - t = Template.Template(checkpkg.REPORT_TMPL, searchList=[namespace]) - report = unicode(t) - if report.strip(): - for line in report.splitlines(): - messenger.Message(line) - for missing_deps in missing_dep_groups: - alternatives = False - prefix = "" - if len(missing_deps) > 1: - alternatives = True - prefix = " " - if alternatives: - messenger.SuggestGarLine("# One of the following:") - for missing_dep in missing_deps: - messenger.SuggestGarLine( - "%sRUNTIME_DEP_PKGS_%s += %s" % (prefix, pkgname, missing_dep)) - if alternatives: - messenger.SuggestGarLine("# (end of the list of alternative dependencies)") + # logging.debug("SetCheckLibraries(): required package reasons: %s", + # req_pkgs_reasons) def SetCheckDependencies(pkgs_data, error_mgr, logger, messenger): Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-22 12:55:06 UTC (rev 12067) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-22 12:55:38 UTC (rev 12068) @@ -36,23 +36,23 @@ def setUp(self): self.pkg_stats = DEFAULT_PKG_STATS self.pkg_data = copy.deepcopy(DEFAULT_PKG_DATA) - self.mocker = mox.Mox() + self.mox = mox.Mox() def SetMessenger(self): self.messenger = stubs.MessengerStub() def testDefault(self): self.logger_mock = stubs.LoggerStub() - self.error_mgr_mock = self.mocker.CreateMock( + self.error_mgr_mock = self.mox.CreateMock( checkpkg_lib.IndividualCheckInterface) self.SetMessenger() self.CheckpkgTest() - self.mocker.ReplayAll() + self.mox.ReplayAll() getattr(pc, self.FUNCTION_NAME)(self.pkg_data, self.error_mgr_mock, self.logger_mock, self.messenger) - self.mocker.VerifyAll() + self.mox.VerifyAll() class TestMultipleDepends(CheckpkgUnitTestHelper, unittest.TestCase): @@ -80,8 +80,8 @@ FUNCTION_NAME = 'CheckDescription' def CheckpkgTest(self): self.pkg_data["pkginfo"]["NAME"] = 'foo - lowercase' - self.error_mgr_mock.ReportError('pkginfo-description-not-starting-with-uppercase', - 'lowercase') + self.error_mgr_mock.ReportError( + 'pkginfo-description-not-starting-with-uppercase', 'lowercase') class TestCheckEmailGood(CheckpkgUnitTestHelper, unittest.TestCase): FUNCTION_NAME = 'CheckEmail' @@ -93,7 +93,8 @@ FUNCTION_NAME = 'CheckEmail' def CheckpkgTest(self): self.pkg_data["pkginfo"]["EMAIL"] = 'somebody at opencsw.com' - self.error_mgr_mock.ReportError('pkginfo-email-not-opencsw-org', 'email=somebody at opencsw.com') + self.error_mgr_mock.ReportError( + 'pkginfo-email-not-opencsw-org', 'email=somebody at opencsw.com') class TestCheckCatalogname_1(CheckpkgUnitTestHelper, unittest.TestCase): @@ -106,7 +107,8 @@ class TestCheckCatalogname_2(CheckpkgUnitTestHelper, unittest.TestCase): FUNCTION_NAME = 'CheckCatalogname' def CheckpkgTest(self): - self.pkg_data["pkginfo"]["NAME"] = 'libsigc++_devel - This catalog name is good' + self.pkg_data["pkginfo"]["NAME"] = ('libsigc++_devel - ' + 'This catalog name is good') class TestCheckSmfIntegrationBad(CheckpkgUnitTestHelper, unittest.TestCase): @@ -150,7 +152,8 @@ "type": "f", "user": "root" }) - self.error_mgr_mock.ReportError('init-file-wrong-location', '/opt/csw/etc/init.d/foo') + self.error_mgr_mock.ReportError('init-file-wrong-location', + '/opt/csw/etc/init.d/foo') class TestCatalognameLowercase_1(CheckpkgUnitTestHelper, unittest.TestCase): @@ -254,6 +257,9 @@ self.pkg_data[0]["depends"].append(["CSWbar", ""]) self.pkg_data[0]["depends"].append(["CSWlibiconv", ""]) self.MockDbInteraction() + for i in range(12): + self.error_mgr_mock.NeedFile( + mox.IsA(str), mox.IsA(str), mox.IsA(str)) # There should be no error about the dependency on CSWfoo or CSWbar. @@ -268,6 +274,9 @@ self.pkg_data[0]["depends"].append(["CSWbar", ""]) self.pkg_data[0]["depends"].append(["CSWlibiconv", ""]) self.MockDbInteraction() + for i in range(12): + self.error_mgr_mock.NeedFile( + mox.IsA(str), mox.IsA(str), mox.IsA(str)) # There should be no error about the dependency on CSWfoo or CSWbar. @@ -282,9 +291,25 @@ self.pkg_data[0]["depends"].append(["CSWbar", ""]) self.pkg_data[0]["depends"].append(["CSWlibiconv", ""]) self.MockDbInteraction() + for i in range(12): + self.error_mgr_mock.NeedFile( + mox.IsA(str), mox.IsA(str), mox.IsA(str)) # There should be no error about the dependency on CSWfoo or CSWbar. +class TestSetCheckDependenciesReportDeps( + DatabaseMockingMixin, + CheckpkgUnitTestHelper, unittest.TestCase): + FUNCTION_NAME = 'SetCheckLibraries' + def CheckpkgTest(self): + self.pkg_data_single = self.pkg_data + self.pkg_data = [self.pkg_data_single] + self.MockDbInteraction() + for i in range(12): + self.error_mgr_mock.NeedFile( + mox.IsA(str), mox.IsA(str), mox.IsA(str)) + + class TestCheckDependsOnSelf(CheckpkgUnitTestHelper, unittest.TestCase): FUNCTION_NAME = 'CheckDependsOnSelf' def CheckpkgTest(self): @@ -405,8 +430,9 @@ '/opt/csw/share/doc').AndReturn([u"CSWcommon"]) self.error_mgr_mock.GetPkgByPath( '/opt/csw/lib/sparcv9').AndReturn([u"CSWcommon"]) - self.error_mgr_mock.ReportErrorForPkgname( - 'CSWdjvulibrert', 'missing-dependency', u'CSWiconv') + for i in range(38): + self.error_mgr_mock.NeedFile( + mox.IsA(str), mox.IsA(unicode), mox.IsA(str)) class TestCheckPstamp(CheckpkgUnitTestHelper, unittest.TestCase): @@ -542,6 +568,8 @@ '/opt/csw/bin/sparcv9').AndReturn(["CSWcommon"]) self.error_mgr_mock.GetPkgByPath( '/opt/csw/share/doc').AndReturn(["CSWcommon"]) + self.error_mgr_mock.NeedFile('CSWrsync', u'/opt/csw/lib/libdb-4.7.so', + 'opt/csw/bin/sparcv8/rsync needs the libdb-4.7.so soname') self.error_mgr_mock.ReportError( 'CSWrsync', 'deprecated-library', @@ -576,6 +604,9 @@ '/opt/csw/share/doc').AndReturn(["CSWcommon"]) # There should be no error here, since /opt/csw/bdb47/lib is first in the RPATH. self.pkg_data = [self.pkg_data] + for i in range(2): + self.error_mgr_mock.NeedFile( + mox.IsA(str), mox.Or(mox.IsA(str), mox.IsA(unicode)), mox.IsA(str)) class TestDeprecatedLibraries_BadRpath(CheckpkgUnitTestHelper, unittest.TestCase): @@ -602,12 +633,18 @@ '/opt/csw/bin/sparcv9').AndReturn(["CSWcommon"]) self.error_mgr_mock.GetPkgByPath( '/opt/csw/share/doc').AndReturn(["CSWcommon"]) + for i in range(1): + self.error_mgr_mock.NeedFile( + mox.IsA(str), mox.Or(mox.IsA(str), mox.IsA(unicode)), mox.IsA(str)) self.error_mgr_mock.ReportError( 'CSWrsync', 'deprecated-library', u'opt/csw/bin/sparcv8/rsync Deprecated Berkeley DB location ' u'/opt/csw/lib/libdb-4.7.so') self.pkg_data = [self.pkg_data] + for i in range(1): + self.error_mgr_mock.NeedFile( + mox.IsA(str), mox.Or(mox.IsA(str), mox.IsA(unicode)), mox.IsA(str)) class TestSetCheckLibmLinking(CheckpkgUnitTestHelper, unittest.TestCase): @@ -707,7 +744,7 @@ 'CSWbar', 'soname-not-found', 'libfoo.so.1 is needed by opt/csw/bin/bar') - self.error_mgr_mock.ReportErrorForPkgname('CSWbar', 'surplus-dependency', 'CSWlibfoo') + # self.error_mgr_mock.ReportErrorForPkgname('CSWbar', 'surplus-dependency', 'CSWlibfoo') self.pkg_data = [self.CSWbar_DATA, self.CSWlibfoo_DATA] @@ -744,6 +781,8 @@ self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libfoo.so.1').AndReturn({}) self.error_mgr_mock.GetPkgByPath('/opt/csw/lib').AndReturn([u"CSWcommon"]) self.error_mgr_mock.GetPkgByPath('/opt/csw/bin').AndReturn([u"CSWcommon"]) + self.error_mgr_mock.NeedFile('CSWbar', '/opt/csw/lib/libfoo.so.1', + 'opt/csw/bin/bar needs the libfoo.so.1 soname') self.pkg_data = [self.CSWbar_DATA] @@ -1025,6 +1064,8 @@ self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libComUnidraw.so').AndReturn({}) self.error_mgr_mock.GetPkgByPath('/opt/csw').AndReturn([u"CSWcommon"]) self.error_mgr_mock.GetPkgByPath('/opt/csw/lib').AndReturn([u"CSWcommon"]) + self.error_mgr_mock.NeedFile('CSWivtools', '/opt/csw/lib/libComUnidraw.so', + 'opt/csw/bin/comdraw needs the libComUnidraw.so soname') # This may be enabled once checkpkg supports directory dependencies. # self.error_mgr_mock.ReportError('CSWivtools', 'missing-dependency', u'CSWcommon') @@ -1253,7 +1294,7 @@ FUNCTION_NAME = 'SetCheckLibraries' def SetMessenger(self): - self.messenger = self.mocker.CreateMock(stubs.MessengerStub) + self.messenger = self.mox.CreateMock(stubs.MessengerStub) def CheckpkgTest(self): self.pkg_data = javasvn_stats @@ -1337,61 +1378,9 @@ u'CSWgnomedesktop', u'CSWnautilus', u'CSWlibofx', u'CSWgamin', u'CSWpkgutil', u'CSWgcc3core', u'CSWgnomemime2', u'CSWglib']) - self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWneon') - self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWapache2rt') - self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWoldaprt') - self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWggettextrt') - self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWapache2rt or CSWapr') - self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWexpat') - self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWsvn') - self.error_mgr_mock.ReportErrorForPkgname('CSWjavasvn', 'missing-dependency', u'CSWiconv') - self.messenger.Message(u'Dependency issues of CSWjavasvn:') - self.messenger.Message(u'CSWapache2rt, reasons:') - self.messenger.Message(u' - provides /opt/csw/apache2/lib/libaprutil-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u' - provides /opt/csw/apache2/lib/libapr-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWapache2rt') - # Here's the debugged and fixed duplicated dependency report. - # self.messenger.Message(u'CSWapache2rt, reasons:') - # self.messenger.Message(u' - provides /opt/csw/apache2/lib/libaprutil-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - # self.messenger.Message(u' - provides /opt/csw/apache2/lib/libapr-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - # self.messenger.Message(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWapache2rt') - self.messenger.Message(u'CSWapr, reasons:') - self.messenger.Message(u' - provides /opt/csw/lib/libapr-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWapr') - self.messenger.Message(u'CSWexpat, reasons:') - self.messenger.Message(u' - provides /opt/csw/lib/libexpat.so.1 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWexpat') - self.messenger.Message(u'CSWggettextrt, reasons:') - self.messenger.Message(u' - provides /opt/csw/lib/libintl.so.8 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWggettextrt') - self.messenger.Message(u'CSWiconv, reasons:') - self.messenger.Message(u' - provides /opt/csw/lib/libiconv.so.2 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWiconv') - self.messenger.Message(u'CSWneon, reasons:') - self.messenger.Message(u' - provides /opt/csw/lib/libneon.so.27 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWneon') - self.messenger.Message(u'CSWoldaprt, reasons:') - self.messenger.Message(u' - provides /opt/csw/lib/libldap-2.4.so.2 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u' - provides /opt/csw/lib/liblber-2.4.so.2 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWoldaprt') - self.messenger.Message(u'CSWsvn, reasons:') - self.messenger.Message(u' - provides /opt/csw/lib/svn/libsvn_repos-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u' - provides /opt/csw/lib/svn/libsvn_client-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u' - provides /opt/csw/lib/svn/libsvn_wc-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u' - provides /opt/csw/lib/svn/libsvn_ra-1.so.0 needed by opt/csw/lib/svn/libsvnjavahl-1.so.0.0.0') - self.messenger.Message(u' - ...and more.') - self.messenger.Message(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWsvn') - self.messenger.SuggestGarLine(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWneon') - self.messenger.SuggestGarLine(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWapache2rt') - self.messenger.SuggestGarLine(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWoldaprt') - self.messenger.SuggestGarLine(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWggettextrt') - self.messenger.SuggestGarLine('# One of the following:') - self.messenger.SuggestGarLine(u' RUNTIME_DEP_PKGS_CSWjavasvn += CSWapache2rt') - self.messenger.SuggestGarLine(u' RUNTIME_DEP_PKGS_CSWjavasvn += CSWapr') - self.messenger.SuggestGarLine('# (end of the list of alternative dependencies)') - self.messenger.SuggestGarLine(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWexpat') - self.messenger.SuggestGarLine(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWsvn') - self.messenger.SuggestGarLine(u'RUNTIME_DEP_PKGS_CSWjavasvn += CSWiconv') + for i in range(27): + self.error_mgr_mock.NeedFile( + mox.IsA(str), mox.IsA(unicode), mox.IsA(str)) class TestCheckWrongArchitecture(CheckpkgUnitTestHelper, unittest.TestCase): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 22 15:45:29 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 22 Dec 2010 14:45:29 +0000 Subject: [csw-devel] SF.net SVN: gar:[12070] csw/mgar/pkg/cups/trunk/Makefile Message-ID: Revision: 12070 http://gar.svn.sourceforge.net/gar/?rev=12070&view=rev Author: wahwah Date: 2010-12-22 14:45:29 +0000 (Wed, 22 Dec 2010) Log Message: ----------- cups: Moving cupsclient bits together. Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2010-12-22 12:56:07 UTC (rev 12069) +++ csw/mgar/pkg/cups/trunk/Makefile 2010-12-22 14:45:29 UTC (rev 12070) @@ -145,6 +145,29 @@ SAMPLECONF_CSWcupsd = $(sysconfdir)/cups/cupsd\.conf\.CSW PACKAGES += CSWcupsclient +SPKG_DESC_CSWcupsclient = CUPS client binaries +PKGFILES_CSWcupsclient = $(sbindir)/(accept|reject|cups(addsmb|ctl|(en|dis)able)) +PKGFILES_CSWcupsclient += $(sbindir)/cups(accept|reject) +PKGFILES_CSWcupsclient += $(sbindir)/(lp(admin|p|c|info|move)) +PKGFILES_CSWcupsclient += $(bindir)/(cancel|cupstest(dsc|ppd)) +PKGFILES_CSWcupsclient += $(bindir)/(lp(|options|passwd|q|r|rm|stat)) +PKGFILES_CSWcupsclient += $(mandir)/man1/(cancel|cupstest(dsc|ppd)|lp).1 +PKGFILES_CSWcupsclient += $(mandir)/man1/(lpoptions|lppasswd|lpq|lpr|lprm).1 +PKGFILES_CSWcupsclient += $(mandir)/man1/lpstat.1 +PKGFILES_CSWcupsclient += $(mandir)/man1/ppd.*\.1 +PKGFILES_CSWcupsclient += $(mandir)/man1m/(cups|)(accept|reject)\.1m +PKGFILES_CSWcupsclient += $(mandir)/man1m/cups(en|dis)able\.1m +PKGFILES_CSWcupsclient += $(mandir)/man1m/cups(addsmb|ctl)\.1m +PKGFILES_CSWcupsclient += $(mandir)/man1m/lp(admin|c|info|move)\.1m +PKGFILES_CSWcupsclient += $(mandir)/man5/client.conf.5 +PKGFILES_CSWcupsclient += $(mandir)/man5/ppdcfile\.5 +PKGFILES_CSWcupsclient += $(mandir)/man7/(drv|notifier)\.7 +PKGFILES_CSWcupsclient += $(sysconfdir)/cups/client\.conf\.CSW +RUNTIME_DEP_PKGS_CSWcupsclient += CSWosslrt +RUNTIME_DEP_PKGS_CSWcupsclient += CSWlibcups2 +RUNTIME_DEP_PKGS_CSWcupsclient += CSWzlib +RUNTIME_DEP_PKGS_CSWcupsclient += CSWlibcupsimage2 + PACKAGES += CSWcupsdoc # Devel package @@ -187,31 +210,11 @@ ARCHALL_CSWcupsdoc = 1 -RUNTIME_DEP_PKGS_CSWcupsclient += CSWzlib PKGFILES_CSWcupsdoc = $(datadir)/doc PKGFILES_CSWcupsdoc += $(datadir)/doc/.* PKGFILES_CSWcupsdoc += $(datadir)/cups/examples.* -PKGFILES_CSWcupsclient = $(sbindir)/(accept|reject|cups(addsmb|ctl|(en|dis)able)) -PKGFILES_CSWcupsclient += $(sbindir)/cups(accept|reject) -PKGFILES_CSWcupsclient += $(sbindir)/(lp(admin|p|c|info|move)) -PKGFILES_CSWcupsclient += $(bindir)/(cancel|cupstest(dsc|ppd)) -PKGFILES_CSWcupsclient += $(bindir)/(lp(|options|passwd|q|r|rm|stat)) -PKGFILES_CSWcupsclient += $(mandir)/man1/(cancel|cupstest(dsc|ppd)|lp).1 -PKGFILES_CSWcupsclient += $(mandir)/man1/(lpoptions|lppasswd|lpq|lpr|lprm).1 -PKGFILES_CSWcupsclient += $(mandir)/man1/lpstat.1 -PKGFILES_CSWcupsclient += $(mandir)/man1/ppd.*\.1 -PKGFILES_CSWcupsclient += $(mandir)/man1m/(cups|)(accept|reject)\.1m -PKGFILES_CSWcupsclient += $(mandir)/man1m/cups(en|dis)able\.1m -PKGFILES_CSWcupsclient += $(mandir)/man1m/cups(addsmb|ctl)\.1m -PKGFILES_CSWcupsclient += $(mandir)/man1m/lp(admin|c|info|move)\.1m -PKGFILES_CSWcupsclient += $(mandir)/man5/client.conf.5 -PKGFILES_CSWcupsclient += $(mandir)/man5/ppdcfile\.5 -PKGFILES_CSWcupsclient += $(mandir)/man7/(drv|notifier)\.7 -PKGFILES_CSWcupsclient += $(sysconfdir)/cups/client\.conf\.CSW - -SPKG_DESC_CSWcupsclient = CUPS client binaries SPKG_DESC_CSWcupsdoc = CUPS documentation # Packages compliant with the shared library policy. @@ -245,9 +248,6 @@ PKGFILES_CSWlibcupsppdc1 += $(call baseisadirs,$(libdir),libcupsppdc\.so\.1(\.\d+)*) SPKG_DESC_CSWlibcupsppdc1 += CUPS libraries, libcupsppdc.so.1 -RUNTIME_DEP_PKGS_CSWcupsclient += CSWosslrt -RUNTIME_DEP_PKGS_CSWcupsclient += CSWlibcups2 -RUNTIME_DEP_PKGS_CSWcupsclient += CSWlibcupsimage2 RUNTIME_DEP_PKGS_CSWlibcups2 += CSWosslrt RUNTIME_DEP_PKGS_CSWlibcups2 += CSWzlib This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 22 15:47:44 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 22 Dec 2010 14:47:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[12071] csw/mgar/gar/v2/lib/sh/libcheckpkg.sh Message-ID: Revision: 12071 http://gar.svn.sourceforge.net/gar/?rev=12071&view=rev Author: wahwah Date: 2010-12-22 14:47:44 +0000 (Wed, 22 Dec 2010) Log Message: ----------- Revert "checkpkg: Smarter custom pkgtrans" This reverts commit 9875187c7dc359946cc82c259d9b2529713a9f07. This code fails, reverting to the old style custom pkgtrans. Modified Paths: -------------- csw/mgar/gar/v2/lib/sh/libcheckpkg.sh Modified: csw/mgar/gar/v2/lib/sh/libcheckpkg.sh =================================================================== --- csw/mgar/gar/v2/lib/sh/libcheckpkg.sh 2010-12-22 14:45:29 UTC (rev 12070) +++ csw/mgar/gar/v2/lib/sh/libcheckpkg.sh 2010-12-22 14:47:44 UTC (rev 12071) @@ -1,27 +1,30 @@ -#!/bin/bash +#!/bin/ksh -p # # $Id$ -# A srv4 .pkg file is a header + 2 cpio archives. The header is 1 (but maybe -# more?) 512 byte block. The cpio archives use a 512b block size too. We find -# the end of the first cpio archive (marked by 'TRAILER!!!' inside the last -# block) and then determine how many bytes into the file this is, divide by -# block size to find the number of blocks until the trailer and add another -# block to get the number of blocks in the file to skip so that we're at the -# second cpio archive. -function custom_pkgtrans() { - [ -d $2 ] || testfail $2 is not a directory - outd=$2/$3 - skipblks=$(expr $(ggrep -a -b -o -m 1 'TRAILER!!!' $1 | awk -F: '{print $1}') / 512 + 1) +# pkgtrans leaves a directory in /var/tmp/aaXXXXXXX even after clean quit. +# Emulating pkgtrans behaviour, for "pkgtrans src destdir pkgname". Except +# that the pkgname arg is ignored, and only the first pkg is processed. - mkdir "${outd}" || exit 1 +custom_pkgtrans(){ + if [[ ! -d $2 ]] ; then + print ERROR: $2 is not a directory >/dev/fd/2 + return 1 + fi + hdrblks=`(dd if=$1 skip=1 2>/dev/null| cpio -i -t >/dev/null) 2>&1 | + nawk '{print $1; exit;}'` - ( - dd if=$1 skip=$skipblks 2>/dev/null | (cd "${outd}" ; cpio -ivdm) - ) >/dev/null 2>&1 + ## print initial hdrblks=$hdrblks - if [ ! -d "${outd}/install" ]; then - echo "Failed to extract $1 to ${outd}" - exit 1 - fi + hdrblks=$(($hdrblks + 1)) + mkdir $2/$3 || return 1 + + dd if=$1 skip=$hdrblks 2>/dev/null | (cd $2/$3 ; cpio -ivdm) + # on fail, SOMETIMES cpio returns 1, but sometimes it returns 0!! + if [[ ! -d $2/$3/install ]] ; then + print retrying extract with different archive offset... + # no, I can't tell in advance why/when the prev fails + hdrblks=$(($hdrblks + 1)) + dd if=$1 skip=$hdrblks 2>/dev/null| (cd $2/$3 ; cpio -ivdm) + fi } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 22 17:08:43 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 22 Dec 2010 16:08:43 +0000 Subject: [csw-devel] SF.net SVN: gar:[12072] csw/mgar/gar/v2 Message-ID: Revision: 12072 http://gar.svn.sourceforge.net/gar/?rev=12072&view=rev Author: wahwah Date: 2010-12-22 16:08:42 +0000 (Wed, 22 Dec 2010) Log Message: ----------- checkpkg: a bugfix for custom-pkgtrans The 'set -e' option caused the script to fail when cpio returned a non-zero exit code. Armoring the code to use cpio ... || true to keep the script running if that happens. Also trying more block offsets, which is not really necessary, but doesn't hurt either. This function can be still improved by determining the right offset instead of trial and error. Modified Paths: -------------- csw/mgar/gar/v2/bin/custom-pkgtrans csw/mgar/gar/v2/lib/sh/libcheckpkg.sh Modified: csw/mgar/gar/v2/bin/custom-pkgtrans =================================================================== --- csw/mgar/gar/v2/bin/custom-pkgtrans 2010-12-22 14:47:44 UTC (rev 12071) +++ csw/mgar/gar/v2/bin/custom-pkgtrans 2010-12-22 16:08:42 UTC (rev 12072) @@ -4,6 +4,8 @@ # # This file exists in order to avoid implementing pipelines in Python. It # could be integrated into the package stats collection program. +# +# It has to use the same interpreter as lib/sh/libcheckpkg.sh, currently bash. set -u set -e Modified: csw/mgar/gar/v2/lib/sh/libcheckpkg.sh =================================================================== --- csw/mgar/gar/v2/lib/sh/libcheckpkg.sh 2010-12-22 14:47:44 UTC (rev 12071) +++ csw/mgar/gar/v2/lib/sh/libcheckpkg.sh 2010-12-22 16:08:42 UTC (rev 12072) @@ -1,30 +1,43 @@ -#!/bin/ksh -p -# +#!/bin/bash +# # $Id$ # pkgtrans leaves a directory in /var/tmp/aaXXXXXXX even after clean quit. # Emulating pkgtrans behaviour, for "pkgtrans src destdir pkgname". Except # that the pkgname arg is ignored, and only the first pkg is processed. -custom_pkgtrans(){ - if [[ ! -d $2 ]] ; then - print ERROR: $2 is not a directory >/dev/fd/2 - return 1 - fi - hdrblks=`(dd if=$1 skip=1 2>/dev/null| cpio -i -t >/dev/null) 2>&1 | - nawk '{print $1; exit;}'` +get_header_blocks() { + dd if="$1" skip=1 \ + | cpio -i -t 2>&1 >/dev/null \ + | nawk '{print $1; exit;}' +} - ## print initial hdrblks=$hdrblks +custom_pkgtrans() { + local hdrblks + if [[ ! -d "$2" ]] ; then + echo ERROR: "$2" is not a directory >/dev/fd/2 + return 1 + fi + hdrblks=$(get_header_blocks "$1") - hdrblks=$(($hdrblks + 1)) - mkdir $2/$3 || return 1 + echo "initial hdrblks=$hdrblks" - dd if=$1 skip=$hdrblks 2>/dev/null | (cd $2/$3 ; cpio -ivdm) - # on fail, SOMETIMES cpio returns 1, but sometimes it returns 0!! - if [[ ! -d $2/$3/install ]] ; then - print retrying extract with different archive offset... - # no, I can't tell in advance why/when the prev fails - hdrblks=$(($hdrblks + 1)) - dd if=$1 skip=$hdrblks 2>/dev/null| (cd $2/$3 ; cpio -ivdm) - fi + hdrblks=$(( $hdrblks + 1 )) + mkdir $2/$3 + + while :; do + # cpio sometimes returns 1, and we don't want to bail out when it happens. + dd if="$1" skip="$hdrblks" | (cd $2/$3 ; cpio -ivdm) || true + if [[ -d "$2/$3/install" ]]; then + echo "Unpack successful." + break + fi + hdrblks=$(( $hdrblks + 1 )) + # To prevent us from going on forever. + if [[ "${hdrblks}" -gt 100 ]]; then + echo "Unpack keeps on being unsuccessful. Bailing out." + return 1 + fi + echo "Unpack unsuccessful, trying offset ${hdrblks}" + done } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Wed Dec 22 20:34:32 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Wed, 22 Dec 2010 19:34:32 +0000 Subject: [csw-devel] SF.net SVN: gar:[12073] csw/mgar/pkg/exim/branches/dir-loc-fixes/files/ CSWexim.preinstall Message-ID: Revision: 12073 http://gar.svn.sourceforge.net/gar/?rev=12073&view=rev Author: bdwalton Date: 2010-12-22 19:34:31 +0000 (Wed, 22 Dec 2010) Log Message: ----------- pkg/exim/branches/dir-loc-fixes: correct the preinstall script now that we are using cp instead of rsync Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-22 16:08:42 UTC (rev 12072) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-22 19:34:31 UTC (rev 12073) @@ -7,27 +7,16 @@ LOGNEW=${PIR}/var/opt/csw/log COPY="cp -pR" -if [ -x ${RSYNC} ]; then - if [ -d "${SPOOLOLD}/exim" -a ! -d "${SPOOLNEW}/exim" ]; then - echo "Transferring existing spool files to new location..." - $COPY "${SPOOLOLD}/exim" "${SPOOLNEW}/" - else - echo "New spool directory exists already. Not touching anything." - fi +if [ -d "${SPOOLOLD}/exim" -a ! -d "${SPOOLNEW}/exim" ]; then + echo "Transferring existing spool files to new location..." + $COPY "${SPOOLOLD}/exim" "${SPOOLNEW}/" +else + echo "New spool directory exists already. Not touching anything." +fi - if [ -d "${LOGOLD}/exim" -a ! -d "${LOGNEW}/exim" ]; then - echo "Transferring existing log files to new location..." - $COPY "${LOGOLD}/exim" "${LOGNEW}/" - else - echo "New log directory exists already. Not touching anything." - fi +if [ -d "${LOGOLD}/exim" -a ! -d "${LOGNEW}/exim" ]; then + echo "Transferring existing log files to new location..." + $COPY "${LOGOLD}/exim" "${LOGNEW}/" else - echo "" - echo "" - echo "********************************************************" - echo "No rsync binary available at ${RSYNC}." - echo "NOT MOVING your exim spool directory or log files!!!" - echo "********************************************************" - echo "" - echo "" + echo "New log directory exists already. Not touching anything." fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Thu Dec 23 02:57:41 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Thu, 23 Dec 2010 01:57:41 +0000 Subject: [csw-devel] SF.net SVN: gar:[12074] csw/mgar/pkg/exim/branches/dir-loc-fixes/files/ CSWexim.preinstall Message-ID: Revision: 12074 http://gar.svn.sourceforge.net/gar/?rev=12074&view=rev Author: bdwalton Date: 2010-12-23 01:57:41 +0000 (Thu, 23 Dec 2010) Log Message: ----------- pkg/exim/branches/dir-loc-fixes: correct typo in preinstall script Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-22 19:34:31 UTC (rev 12073) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-23 01:57:41 UTC (rev 12074) @@ -1,6 +1,6 @@ #!/bin/sh -PIR={$PKG_INSTALL_ROOT:-} +PIR=${PKG_INSTALL_ROOT:-} SPOOLOLD=${PIR}/opt/csw/var/spool SPOOLNEW=${PIR}/var/opt/csw/spool LOGOLD=${PIR}/opt/csw/var/log This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Thu Dec 23 20:37:42 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Thu, 23 Dec 2010 19:37:42 +0000 Subject: [csw-devel] SF.net SVN: gar:[12075] csw/mgar/pkg/pacparser/trunk Message-ID: Revision: 12075 http://gar.svn.sourceforge.net/gar/?rev=12075&view=rev Author: dmichelsen Date: 2010-12-23 19:37:42 +0000 (Thu, 23 Dec 2010) Log Message: ----------- pacparser: Update to 1.2.7 and remove accepted upstream patches Modified Paths: -------------- csw/mgar/pkg/pacparser/trunk/Makefile csw/mgar/pkg/pacparser/trunk/checksums Removed Paths: ------------- csw/mgar/pkg/pacparser/trunk/files/0002-Fix-nullpointer-bug.patch csw/mgar/pkg/pacparser/trunk/files/0008-Always-set-myIpAddr-to-127.0.0.1-or-tests-on-current.patch Modified: csw/mgar/pkg/pacparser/trunk/Makefile =================================================================== --- csw/mgar/pkg/pacparser/trunk/Makefile 2010-12-23 01:57:41 UTC (rev 12074) +++ csw/mgar/pkg/pacparser/trunk/Makefile 2010-12-23 19:37:42 UTC (rev 12075) @@ -1,7 +1,6 @@ # $Id$ NAME = pacparser -VERSION = 1.2.6 -#SPKG_VERSION = $(subst -,.,$(VERSION)) +VERSION = 1.2.7 CATEGORIES = lib DESCRIPTION = A library to parse proxy auto-config (PAC) files @@ -20,16 +19,11 @@ PATCHFILES = 0001-Adjust-Makefile.patch -# Reported upstream as -# http://code.google.com/p/pacparser/issues/detail?id=6 -PATCHFILES += 0002-Fix-nullpointer-bug.patch - PATCHFILES += 0003-Only-GNU-grep-knows-q.patch PATCHFILES += 0004-Some-more-Makefile-tweaks.patch PATCHFILES += 0005-Fix-soname-and-pactester-compilation.patch PATCHFILES += 0006-Add-flags-to-make-library-self-sufficient.patch PATCHFILES += 0007-Add-config-for-spidermonkey-i386.patch -PATCHFILES += 0008-Always-set-myIpAddr-to-127.0.0.1-or-tests-on-current.patch # File name regex to get notifications about upstream software releases UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz Modified: csw/mgar/pkg/pacparser/trunk/checksums =================================================================== --- csw/mgar/pkg/pacparser/trunk/checksums 2010-12-23 01:57:41 UTC (rev 12074) +++ csw/mgar/pkg/pacparser/trunk/checksums 2010-12-23 19:37:42 UTC (rev 12075) @@ -1 +1 @@ -612a355115d70a842dde661eee2c915b pacparser-1.2.6.tar.gz +d97cd4136403ee73c1ec6aa96b6708ae pacparser-1.2.7.tar.gz Deleted: csw/mgar/pkg/pacparser/trunk/files/0002-Fix-nullpointer-bug.patch =================================================================== --- csw/mgar/pkg/pacparser/trunk/files/0002-Fix-nullpointer-bug.patch 2010-12-23 01:57:41 UTC (rev 12074) +++ csw/mgar/pkg/pacparser/trunk/files/0002-Fix-nullpointer-bug.patch 2010-12-23 19:37:42 UTC (rev 12075) @@ -1,25 +0,0 @@ -From 9b90310b830099acbd0b7339f534970e74d47c3a Mon Sep 17 00:00:00 2001 -From: Dagobert Michelsen -Date: Tue, 7 Dec 2010 12:09:29 +0100 -Subject: [PATCH 2/8] Fix nullpointer bug - ---- - src/pacparser.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/pacparser.c b/src/pacparser.c -index 315f854..dd6a840 100644 ---- a/src/pacparser.c -+++ b/src/pacparser.c -@@ -112,7 +112,7 @@ resolve_host(const char *hostname, char *ipaddr_list, int max_results) - if (ipaddr_list[0] == '\0') sprintf(ipaddr_list, "%s", ipaddr); - else sprintf(ipaddr_list, "%s;%s", ipaddr_list, ipaddr); - } -- freeaddrinfo(ai); -+ freeaddrinfo(result); - return 0; - } - --- -1.7.3.2 - Deleted: csw/mgar/pkg/pacparser/trunk/files/0008-Always-set-myIpAddr-to-127.0.0.1-or-tests-on-current.patch =================================================================== --- csw/mgar/pkg/pacparser/trunk/files/0008-Always-set-myIpAddr-to-127.0.0.1-or-tests-on-current.patch 2010-12-23 01:57:41 UTC (rev 12074) +++ csw/mgar/pkg/pacparser/trunk/files/0008-Always-set-myIpAddr-to-127.0.0.1-or-tests-on-current.patch 2010-12-23 19:37:42 UTC (rev 12075) @@ -1,34 +0,0 @@ -From 1a11df76feae6867b665d5e7c2d70ad8151a0823 Mon Sep 17 00:00:00 2001 -From: Dagobert Michelsen -Date: Tue, 7 Dec 2010 15:44:37 +0100 -Subject: [PATCH 8/8] Always set myIpAddr to 127.0.0.1 or tests on current9x fails - ---- - tests/runtests.sh | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/runtests.sh b/tests/runtests.sh -index 09a6b1e..61663f8 100755 ---- a/tests/runtests.sh -+++ b/tests/runtests.sh -@@ -26,7 +26,7 @@ while read line - echo "$line" | ggrep -q "^#" && continue - PARAMS=$(echo "$line"|cut -d"|" -f1) - EXPECTED_RESULT=$(echo $line|cut -d"|" -f2) -- RESULT=$($PACTESTER -p $PACFILE $PARAMS) -+ RESULT=$($PACTESTER -c 127.0.0.1 -p $PACFILE $PARAMS) - if [ $? != 0 ]; then - echo "pactester execution failed." - echo "Command tried: $PACTESTER -p $PACFILE $PARAMS" -@@ -39,7 +39,7 @@ while read line - [ $DEBUG ] && echo "Params: $PARAMS" - if [ "$RESULT" != "$EXPECTED_RESULT" ]; then - echo "Test failed: got \"$RESULT\", expected \"$EXPECTED_RESULT\"" -- echo "Command tried: $PACTESTER -p $PACFILE $PARAMS" -+ echo "Command tried: $PACTESTER -c 127.0.0.1 -p $PACFILE $PARAMS" - echo "Running with debug mode on..." - echo "DEBUG=1 $PACTESTER -p $PACFILE $PARAMS" - DEBUG=1 $PACTESTER -p $PACFILE $PARAMS --- -1.7.3.2 - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 23 22:50:27 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 23 Dec 2010 21:50:27 +0000 Subject: [csw-devel] SF.net SVN: gar:[12076] csw/mgar/pkg/cups/trunk/Makefile Message-ID: Revision: 12076 http://gar.svn.sourceforge.net/gar/?rev=12076&view=rev Author: wahwah Date: 2010-12-23 21:50:27 +0000 (Thu, 23 Dec 2010) Log Message: ----------- cups: Turn off optimization for default builds There seems to be a problem with optimized binaries, trying unoptimized. Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2010-12-23 19:37:42 UTC (rev 12075) +++ csw/mgar/pkg/cups/trunk/Makefile 2010-12-23 21:50:27 UTC (rev 12076) @@ -310,6 +310,7 @@ PRIVATE_CUPS_INC = $(DESTDIR)$(includedir)/cups # CUPS uses the 'OPTIM' variable to set the optimization flags. +OPTIM_OPT = -xO0 OPTIM_DBG = -g -xO0 OPTIM = $(OPTIM_$(GARFLAVOR)) export OPTIM This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Fri Dec 24 00:15:06 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 23 Dec 2010 23:15:06 +0000 Subject: [csw-devel] SF.net SVN: gar:[12077] csw/mgar/pkg/cups/trunk/Makefile Message-ID: Revision: 12077 http://gar.svn.sourceforge.net/gar/?rev=12077&view=rev Author: wahwah Date: 2010-12-23 23:15:06 +0000 (Thu, 23 Dec 2010) Log Message: ----------- cups: Setting OPT_FLAGS_SOS to -xO0 Trying to build without optimization, without symbols. Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2010-12-23 21:50:27 UTC (rev 12076) +++ csw/mgar/pkg/cups/trunk/Makefile 2010-12-23 23:15:06 UTC (rev 12077) @@ -313,6 +313,7 @@ OPTIM_OPT = -xO0 OPTIM_DBG = -g -xO0 OPTIM = $(OPTIM_$(GARFLAVOR)) +OPT_FLAGS_SOS = -xO0 export OPTIM LICENSE = LICENSE.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Fri Dec 24 02:24:46 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Fri, 24 Dec 2010 01:24:46 +0000 Subject: [csw-devel] SF.net SVN: gar:[12078] csw/mgar/pkg/exim/branches/dir-loc-fixes/files/ CSWexim.preinstall Message-ID: Revision: 12078 http://gar.svn.sourceforge.net/gar/?rev=12078&view=rev Author: bdwalton Date: 2010-12-24 01:24:46 +0000 (Fri, 24 Dec 2010) Log Message: ----------- exim/branches/dir-loc-fixes: update the log and spool preinstall migration logic Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-23 23:15:06 UTC (rev 12077) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-24 01:24:46 UTC (rev 12078) @@ -1,22 +1,24 @@ #!/bin/sh PIR=${PKG_INSTALL_ROOT:-} -SPOOLOLD=${PIR}/opt/csw/var/spool -SPOOLNEW=${PIR}/var/opt/csw/spool -LOGOLD=${PIR}/opt/csw/var/log -LOGNEW=${PIR}/var/opt/csw/log +SPOOLOLD=${PIR}/opt/csw/var/spool/exim +SPOOLNEW=${PIR}/var/opt/csw/spool/exim +LOGOLD=${PIR}/opt/csw/var/log/exim +LOGNEW=${PIR}/var/opt/csw/log/exim COPY="cp -pR" -if [ -d "${SPOOLOLD}/exim" -a ! -d "${SPOOLNEW}/exim" ]; then +if [ -d "${SPOOLOLD}/" -a ! -d "${SPOOLNEW}/db" ]; then echo "Transferring existing spool files to new location..." - $COPY "${SPOOLOLD}/exim" "${SPOOLNEW}/" + $COPY "${SPOOLOLD}/*" "${SPOOLNEW}/" else - echo "New spool directory exists already. Not touching anything." + echo "Looks like the new spool directory is in use already." + echo "Not touching anything." fi -if [ -d "${LOGOLD}/exim" -a ! -d "${LOGNEW}/exim" ]; then +if [ -d "${LOGOLD}" -a ! -f "${LOGNEW}/mainlog" ]; then echo "Transferring existing log files to new location..." - $COPY "${LOGOLD}/exim" "${LOGNEW}/" + $COPY "${LOGOLD}/*" "${LOGNEW}/" else - echo "New log directory exists already. Not touching anything." + echo "Looks like the new log directory is in use already." + echo "Not touching anything." fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Fri Dec 24 14:43:41 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Fri, 24 Dec 2010 13:43:41 +0000 Subject: [csw-devel] SF.net SVN: gar:[12079] csw/mgar/pkg/exim/branches/dir-loc-fixes/files/ CSWexim.preinstall Message-ID: Revision: 12079 http://gar.svn.sourceforge.net/gar/?rev=12079&view=rev Author: bdwalton Date: 2010-12-24 13:43:40 +0000 (Fri, 24 Dec 2010) Log Message: ----------- exim/branches/dir-loc-fixes: further tweaking of the preinstall migration logic Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-24 01:24:46 UTC (rev 12078) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-24 13:43:40 UTC (rev 12079) @@ -2,22 +2,22 @@ PIR=${PKG_INSTALL_ROOT:-} SPOOLOLD=${PIR}/opt/csw/var/spool/exim -SPOOLNEW=${PIR}/var/opt/csw/spool/exim +SPOOLNEW=${PIR}/var/opt/csw/spool LOGOLD=${PIR}/opt/csw/var/log/exim -LOGNEW=${PIR}/var/opt/csw/log/exim +LOGNEW=${PIR}/var/opt/csw/log COPY="cp -pR" -if [ -d "${SPOOLOLD}/" -a ! -d "${SPOOLNEW}/db" ]; then +if [ -d "${SPOOLOLD}/" -a ! -d "${SPOOLNEW}/exim" ]; then echo "Transferring existing spool files to new location..." - $COPY "${SPOOLOLD}/*" "${SPOOLNEW}/" + $COPY "${SPOOLOLD}" "${SPOOLNEW}" else echo "Looks like the new spool directory is in use already." echo "Not touching anything." fi -if [ -d "${LOGOLD}" -a ! -f "${LOGNEW}/mainlog" ]; then +if [ -d "${LOGOLD}" -a ! -f "${LOGNEW}/exim" ]; then echo "Transferring existing log files to new location..." - $COPY "${LOGOLD}/*" "${LOGNEW}/" + $COPY "${LOGOLD}" "${LOGNEW}" else echo "Looks like the new log directory is in use already." echo "Not touching anything." This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Fri Dec 24 15:43:25 2010 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Fri, 24 Dec 2010 14:43:25 +0000 Subject: [csw-devel] SF.net SVN: gar:[12080] csw/mgar/pkg/exim/branches/dir-loc-fixes/files/ CSWexim.preinstall Message-ID: Revision: 12080 http://gar.svn.sourceforge.net/gar/?rev=12080&view=rev Author: bdwalton Date: 2010-12-24 14:43:25 +0000 (Fri, 24 Dec 2010) Log Message: ----------- exim/branches/dir-loc-fixes: preinstall - create log and spool parent directories if required Modified Paths: -------------- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall Modified: csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall =================================================================== --- csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-24 13:43:40 UTC (rev 12079) +++ csw/mgar/pkg/exim/branches/dir-loc-fixes/files/CSWexim.preinstall 2010-12-24 14:43:25 UTC (rev 12080) @@ -7,16 +7,24 @@ LOGNEW=${PIR}/var/opt/csw/log COPY="cp -pR" +# assume that if the new spool exists, that this is an upgrade of +# exim from a version that already had the new filesystem layout... if [ -d "${SPOOLOLD}/" -a ! -d "${SPOOLNEW}/exim" ]; then echo "Transferring existing spool files to new location..." - $COPY "${SPOOLOLD}" "${SPOOLNEW}" + if [ ! -d "${SPOOLNEW}" ]; then + mkdir -p "${SPOOLNEW}" + fi + $COPY "${SPOOLOLD}" "${SPOOLNEW}/" else echo "Looks like the new spool directory is in use already." echo "Not touching anything." fi -if [ -d "${LOGOLD}" -a ! -f "${LOGNEW}/exim" ]; then +if [ -d "${LOGOLD}" -a ! -d "${LOGNEW}/exim" ]; then echo "Transferring existing log files to new location..." + if [ ! -d "${LOGNEW}" ]; then + mkdir -p "${LOGNEW}" + fi $COPY "${LOGOLD}" "${LOGNEW}" else echo "Looks like the new log directory is in use already." This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 27 10:50:12 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 27 Dec 2010 09:50:12 +0000 Subject: [csw-devel] SF.net SVN: gar:[12081] csw/mgar/pkg/libserf/trunk/Makefile Message-ID: Revision: 12081 http://gar.svn.sourceforge.net/gar/?rev=12081&view=rev Author: dmichelsen Date: 2010-12-27 09:50:12 +0000 (Mon, 27 Dec 2010) Log Message: ----------- libserf: Split off devel and rename library package according to new soname rules Modified Paths: -------------- csw/mgar/pkg/libserf/trunk/Makefile Modified: csw/mgar/pkg/libserf/trunk/Makefile =================================================================== --- csw/mgar/pkg/libserf/trunk/Makefile 2010-12-24 14:43:25 UTC (rev 12080) +++ csw/mgar/pkg/libserf/trunk/Makefile 2010-12-27 09:50:12 UTC (rev 12081) @@ -3,7 +3,7 @@ DISTNAME = serf-$(VERSION) CATEGORIES = lib -DESCRIPTION = HTTP client library built on APR, multiplexes connections. +DESCRIPTION = HTTP client library built on APR, multiplexes connections define BLURB The serf library is a C-based HTTP client library built upon the Apache Portable Runtime (APR) library. It multiplexes connections, @@ -20,6 +20,26 @@ # We define upstream file regex so we can be notifed of new upstream software release UFILES_REGEX = $(DISTNAME)-(\d+(?:\.\d+)*).tar.bz2 +PACKAGES += CSWlibserf +CATALOGNAME_CSWlibserf = libserf +SPKG_DESC_CSWlibserf = Stub as contents moved to CSWlibserf0-0 and CSWlibserf-devel +PKGFILES_CSWlibserf = NOFILES +RUNTIME_DEP_PKGS_CSWlibserf = CSWlibserf0-0 CSWlibserf-devel +ARCHALL_CSWlibserf = 1 +CHECKPKG_OVERRIDES_CSWlibserf += surplus-dependency|CSWlibserf0-0 +CHECKPKG_OVERRIDES_CSWlibserf += surplus-dependency|CSWlibserf-devel + +PACKAGES += CSWlibserf0-0 +CATALOGNAME_CSWlibserf0-0 = libserf0_0 +SPKG_DESC_CSWlibserf0-0 += HTTP client library built on APR, multiplexes connections, provides libserf-0.so.0 +PKGFILES_CSWlibserf0-0 += $(call baseisadirs,$(libdir),libserf-0\.so\.0(\.\d+)*) + +PACKAGES += CSWlibserf-devel +CATALOGNAME_CSWlibserf-devel = libserf_devel +SPKG_DESC_CSWlibserf-devel = Development files for libserf +PKGFILES_CSWlibserf-devel += $(PKGFILES_DEVEL) +RUNTIME_DEP_PKGS_CSWlibserf-devel = CSWlibserf0-0 + LICENSE = LICENSE VENDOR_URL = http://code.google.com/p/serf/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 11:16:14 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 10:16:14 +0000 Subject: [csw-devel] SF.net SVN: gar:[12082] csw/mgar/gar/v2/lib/sh/db_privileges.sh Message-ID: Revision: 12082 http://gar.svn.sourceforge.net/gar/?rev=12082&view=rev Author: wahwah Date: 2010-12-27 10:16:14 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Database permissions in a shell script It prints permission grants to screen. Requires a small configuration file to set the default host and user names. Added Paths: ----------- csw/mgar/gar/v2/lib/sh/db_privileges.sh Added: csw/mgar/gar/v2/lib/sh/db_privileges.sh =================================================================== --- csw/mgar/gar/v2/lib/sh/db_privileges.sh (rev 0) +++ csw/mgar/gar/v2/lib/sh/db_privileges.sh 2010-12-27 10:16:14 UTC (rev 12082) @@ -0,0 +1,94 @@ +#!/bin/bash + +# Prints privileges grants for the shared database +# Using MySQL syntax + +set -u +set -e + +CONFIG_FILE="site_config.sh" + +if [[ -r "${CONFIG_FILE}" ]] +then + source "${CONFIG_FILE}" +else + echo "Please create '$(pwd)/${CONFIG_FILE}'" + echo "See $0 for details." + exit 1 +fi + +# Example site_configh.sh: +# +# DEFAULT_HOST="192.168.0.%" +# DBA_USER=dba_user +# RELMGR_USER=relmgr_user +# MAINTAINER_USER=maintainer_user + +TABLES_ADMIN=( + architecture + catalog_release + catalog_release_type + csw_config + data_source + host + maintainer + os_release +) +TABLES_REL_MGR=( + srv4_file_in_catalog + csw_file +) +TABLES_REGULAR=( + pkginst + checkpkg_error_tag + checkpkg_override + srv4_depends_on + srv4_file_stats + srv4_file_stats_blob +) + +function print_table_grant { + local table=$1 + local dbname=$2 + local user=$3 + local host=$4 + echo -n "GRANT SELECT, INSERT, UPDATE, DELETE" + echo " ON ${dbname}.${tbl} TO '${user}'@'${host}';" +} + +function print_grants { + local dbname=$1 + local admin_user="${DBA_USER}" + local relmgr_user="${RELMGR_USER}" + local maintainer_user="${MAINTAINER_USER}" + local host="${DEFAULT_HOST}" + echo "GRANT ALL PRIVILEGES ON ${dbname}.* TO '${admin_user}'@'localhost';" + echo "GRANT SELECT ON ${dbname}.* TO '${relmgr_user}'@'${host}';" + echo "GRANT SELECT ON ${dbname}.* TO '${maintainer_user}'@'${host}';" + for tbl in "${TABLES_REL_MGR[@]}" \ + "${TABLES_REGULAR[@]}" + do + print_table_grant "${tbl}" "${dbname}" "${relmgr_user}" "${host}" + done + for tbl in "${TABLES_REGULAR[@]}" + do + print_table_grant "${tbl}" "${dbname}" "${maintainer_user}" "${host}" + done + echo "CREATE USER '${admin_user}'@'localhost' IDENTIFIED BY '';" + echo "CREATE USER '${admin_user}'@'${host}' IDENTIFIED BY '';" + echo "CREATE USER '${relmgr_user}'@'${host}' IDENTIFIED BY '';" + echo "CREATE USER '${maintainer_user}'@'${host}' IDENTIFIED BY '';" + echo "-- or" + echo "SET PASSWORD FOR '${admin_user}'@'localhost' = PASSWORD('');" + echo "SET PASSWORD FOR '${admin_user}'@'${host}' = PASSWORD('');" + echo "SET PASSWORD FOR '${relmgr_user}'@'${host}' = PASSWORD('');" + echo "SET PASSWORD FOR '${maintainer_user}'@'${host}' = PASSWORD('');" + echo + echo "FLUSH PRIVILEGES;" +} + +function main { + print_grants "$1" +} + +main "$@" Property changes on: csw/mgar/gar/v2/lib/sh/db_privileges.sh ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 11:16:47 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 10:16:47 +0000 Subject: [csw-devel] SF.net SVN: gar:[12083] csw/mgar/gar/v2/lib/python/package_checks_test.py Message-ID: Revision: 12083 http://gar.svn.sourceforge.net/gar/?rev=12083&view=rev Author: wahwah Date: 2010-12-27 10:16:47 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Mocks specific for indiv/set tests Set tests need to be mocked with a different class than individual package tests. Also, using some mox meta magic to avoid boilerplate code. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-27 10:16:14 UTC (rev 12082) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-27 10:16:47 UTC (rev 12083) @@ -33,26 +33,35 @@ class CheckpkgUnitTestHelper(object): """Wraps common components of checkpkg tests.""" + __metaclass__ = mox.MoxMetaTestBase + def setUp(self): + super(CheckpkgUnitTestHelper, self).setUp() + self.mox = mox.Mox() self.pkg_stats = DEFAULT_PKG_STATS self.pkg_data = copy.deepcopy(DEFAULT_PKG_DATA) - self.mox = mox.Mox() def SetMessenger(self): self.messenger = stubs.MessengerStub() + def SetErrorManagerMock(self): + if self.FUNCTION_NAME.startswith("Set"): + self.error_mgr_mock = self.mox.CreateMock( + checkpkg_lib.SetCheckInterface) + else: + self.error_mgr_mock = self.mox.CreateMock( + checkpkg_lib.IndividualCheckInterface) + def testDefault(self): self.logger_mock = stubs.LoggerStub() - self.error_mgr_mock = self.mox.CreateMock( - checkpkg_lib.IndividualCheckInterface) self.SetMessenger() + self.SetErrorManagerMock() self.CheckpkgTest() self.mox.ReplayAll() getattr(pc, self.FUNCTION_NAME)(self.pkg_data, self.error_mgr_mock, self.logger_mock, self.messenger) - self.mox.VerifyAll() class TestMultipleDepends(CheckpkgUnitTestHelper, unittest.TestCase): @@ -573,8 +582,7 @@ self.error_mgr_mock.ReportError( 'CSWrsync', 'deprecated-library', - u'opt/csw/bin/sparcv8/rsync Deprecated Berkeley DB location ' - u'/opt/csw/lib/libdb-4.7.so') + mox.IsA(unicode)) self.pkg_data = [self.pkg_data] @@ -1074,15 +1082,13 @@ unittest.TestCase): """Test whether appropriate files are provided.""" FUNCTION_NAME = 'SetCheckLibraries' - def testDefault(self): - # This test is disabled - pass + def CheckpkgTest(self): self.pkg_data = ivtools_stats self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libComUnidraw.so').AndReturn({}) self.error_mgr_mock.GetPkgByPath('/opt/csw').AndReturn([u"CSWcommon"]) self.error_mgr_mock.GetPkgByPath('/opt/csw/lib').AndReturn([u"CSWcommon"]) - self.error_mgr_mock.ReportErrorForPkgname('CSWivtools', 'missing-dependency', u'CSWcommon') + self.error_mgr_mock.NeedFile("CSWivtools", "/opt/csw/lib/libComUnidraw.so", mox.IsA(str)) class TestSetCheckDirectoryDependenciesTree(CheckpkgUnitTestHelper, @@ -1164,6 +1170,7 @@ u'CSWcommon', u'CSWbashcmplt', u'CSWcacertificates', u'CSWgstplugins', u'CSWgnomemenus', u'CSWgnomedesktop', u'CSWnautilus', u'CSWlibofx', u'CSWgamin', u'CSWpkgutil', u'CSWgcc3core', u'CSWgnomemime2']) + self.error_mgr_mock.NeedFile("CSWtree", mox.IsA(str), mox.IsA(str)) class TestCheckDiscouragedFileNamePatterns(CheckpkgUnitTestHelper, @@ -1204,13 +1211,11 @@ class TestSetCheckDirectoryDepsTwoPackages(CheckpkgUnitTestHelper, unittest.TestCase): """Test whether appropriate files are provided. - + This is a stupid test and can be removed if becomes annoying. """ FUNCTION_NAME = 'SetCheckLibraries' - def testDefault(self): - # This test is disabled - pass + def CheckpkgTest(self): self.pkg_data = sudo_stats self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libc.so.1').AndReturn({ @@ -1236,20 +1241,20 @@ '/opt/csw/etc', '/opt/csw/sbin', '/opt/csw', '/opt/csw/share/doc'] for path in paths_to_check: self.error_mgr_mock.GetPkgByPath(path).AndReturn(common_path_pkgs) - self.error_mgr_mock.ReportError('CSWsudo', 'surplus-dependency', 'CSWalternatives') - self.error_mgr_mock.ReportError('CSWsudo', 'surplus-dependency', 'CSWsudo-common') + for i in range(5): + self.error_mgr_mock.NeedFile("CSWsudo-common", mox.IsA(str), mox.IsA(str)) + for i in range(6): + self.error_mgr_mock.NeedFile("CSWsudo", mox.IsA(str), mox.IsA(str)) class TestSetCheckDirectoryDepsMissing(CheckpkgUnitTestHelper, - unittest.TestCase): + unittest.TestCase): """Test whether appropriate files are provided. This is a stupid test and can be removed if becomes annoying. """ FUNCTION_NAME = 'SetCheckLibraries' - def testDefault(self): - # This test is disabled - pass + def CheckpkgTest(self): self.pkg_data = sudo_stats self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libc.so.1').AndReturn({ @@ -1277,13 +1282,13 @@ '/opt/csw/etc', '/opt/csw/sbin', '/opt/csw', '/opt/csw/share/doc'] for path in paths_to_check: self.error_mgr_mock.GetPkgByPath(path).AndReturn(common_path_pkgs) + for i in range(5): + self.error_mgr_mock.NeedFile("CSWsudo-common", mox.IsA(str), mox.IsA(str)) + for i in range(6): + self.error_mgr_mock.NeedFile("CSWsudo", mox.IsA(str), mox.IsA(str)) # This is the critical test here. - self.error_mgr_mock.ReportError( - 'CSWsudo-common', 'base-dir-not-found', '/opt/csw/share/man') - self.error_mgr_mock.ReportError( - 'CSWsudo', 'surplus-dependency', 'CSWalternatives') - self.error_mgr_mock.ReportError( - 'CSWsudo', 'surplus-dependency', 'CSWsudo-common') + # self.error_mgr_mock.ReportError( + # 'CSWsudo-common', 'base-dir-not-found', '/opt/csw/share/man') class TestSetCheckDoubleDepends(CheckpkgUnitTestHelper, unittest.TestCase): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 11:17:20 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 10:17:20 +0000 Subject: [csw-devel] SF.net SVN: gar:[12084] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12084 http://gar.svn.sourceforge.net/gar/?rev=12084&view=rev Author: wahwah Date: 2010-12-27 10:17:20 +0000 (Mon, 27 Dec 2010) Log Message: ----------- pkgdb: Handling files with full paths as ids When given a full path to a package (/foo/bar/baz.pkg), strip off the file path, because otherwise it can't find packages if you give it the full path. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgdb.py csw/mgar/gar/v2/lib/python/pkgdb_test.py Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-27 10:16:47 UTC (rev 12083) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-27 10:17:20 UTC (rev 12084) @@ -82,9 +82,14 @@ class HtmlGenerator(object): - def __init__(self, md5_sums, template=None): - self.md5_sums = md5_sums + def __init__(self, identifiers, template=None): + """Initialize the object + + args: identifiers: md5 sums or file names of packages + template: Optional HTML template + """ self.template = template + self.identifiers = identifiers def GetErrorTagsResult(self, srv4): res = m.CheckpkgErrorTag.select( @@ -99,8 +104,8 @@ def GenerateHtml(self): pkgstats = [] # Add error tags - for md5_sum in self.md5_sums: - srv4 = GetPkg(md5_sum) + for identifier in self.identifiers: + srv4 = GetPkg(identifier) data = cPickle.loads(str(srv4.data_obj.pickle)) if "OPENCSW_REPOSITORY" in data["pkginfo"]: build_src = data["pkginfo"]["OPENCSW_REPOSITORY"] @@ -133,7 +138,15 @@ return unicode(t) +def NormalizeId(some_id): + """Used to normalize identifiers (md5, filename). + + Currently, strips paths off given package paths.""" + return os.path.basename(some_id) + + def GetPkg(some_id): + some_id = NormalizeId(some_id) logging.debug("Selecting from db: %s", repr(some_id)) res = m.Srv4FileStats.select( sqlobject.OR( Modified: csw/mgar/gar/v2/lib/python/pkgdb_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb_test.py 2010-12-27 10:16:47 UTC (rev 12083) +++ csw/mgar/gar/v2/lib/python/pkgdb_test.py 2010-12-27 10:17:20 UTC (rev 12084) @@ -12,5 +12,11 @@ ci.ComposeCatalogFilePath("/home/mirror/opencsw/current", "SunOS5.9", "sparc")) +class FunctionUnitTest(unittest.TestCase): + + def testNormalizeIdentifier(self): + self.assertEqual("baz", pkgdb.NormalizeId("/foo/bar/baz")) + + if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 11:50:40 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 10:50:40 +0000 Subject: [csw-devel] SF.net SVN: gar:[12085] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12085 http://gar.svn.sourceforge.net/gar/?rev=12085&view=rev Author: wahwah Date: 2010-12-27 10:50:40 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Warning when finding srv4 by filename Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgdb.py csw/mgar/gar/v2/lib/python/pkgdb_test.py Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-27 10:17:20 UTC (rev 12084) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-27 10:50:40 UTC (rev 12085) @@ -24,6 +24,7 @@ import common_constants import system_pkgmap import catalog +import checkpkg from Cheetah.Template import Template USAGE = """ @@ -142,6 +143,11 @@ """Used to normalize identifiers (md5, filename). Currently, strips paths off given package paths.""" + if not checkpkg.IsMd5(some_id): + logging.warning( + "Given Id (%s) is not an md5 sum. Will attempt to retrieve " + "it from the datbase, but it might fail.", + repr(some_id)) return os.path.basename(some_id) Modified: csw/mgar/gar/v2/lib/python/pkgdb_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb_test.py 2010-12-27 10:17:20 UTC (rev 12084) +++ csw/mgar/gar/v2/lib/python/pkgdb_test.py 2010-12-27 10:50:40 UTC (rev 12085) @@ -2,6 +2,7 @@ import unittest import pkgdb +import logging class CatalogImporterUnitTest(unittest.TestCase): @@ -19,4 +20,5 @@ if __name__ == '__main__': + logging.basicConfig(level=logging.CRITICAL) unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 12:02:09 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 11:02:09 +0000 Subject: [csw-devel] SF.net SVN: gar:[12086] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12086 http://gar.svn.sourceforge.net/gar/?rev=12086&view=rev Author: wahwah Date: 2010-12-27 11:02:09 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: A bugfix for lib pkg suggestions checkpkg was using the wrong pkgname when suggesting dependencies for new library packages. From now on it'll be using the base pkgname: RUNTIME_DEP_PKGS_CSWbase-pkg = CSWlib-pkg Modified Paths: -------------- csw/mgar/gar/v2/lib/python/dependency_checks.py csw/mgar/gar/v2/lib/python/dependency_checks_test.py csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/dependency_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-27 10:50:40 UTC (rev 12085) +++ csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-27 11:02:09 UTC (rev 12086) @@ -260,7 +260,8 @@ def SuggestLibraryPackage(error_mgr, messenger, pkgname, catalogname, description, - lib_path, lib_basename, soname): + lib_path, lib_basename, soname, + base_pkgname): escaped_soname = sharedlib_utils.EscapeRegex(soname) escaped_basename = sharedlib_utils.EscapeRegex(lib_basename) messenger.SuggestGarLine("# The following lines define a new package: " @@ -284,7 +285,7 @@ % (pkgname, description, soname)) messenger.SuggestGarLine( "RUNTIME_DEP_PKGS_%s += %s" - % (pkgname, pkgname)) + % (base_pkgname, pkgname)) messenger.SuggestGarLine( "# The end of %s definition" % pkgname) Modified: csw/mgar/gar/v2/lib/python/dependency_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-27 10:50:40 UTC (rev 12085) +++ csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-27 11:02:09 UTC (rev 12086) @@ -298,6 +298,7 @@ lib_path = "opt/csw/lib" lib_basename = "libfoo.so.1.2.3" lib_soname = "libfoo.so.1" + base_pkgname = "CSWfoo" messenger_mock.SuggestGarLine( r'# The following lines define a new package: CSWfoo-bar') messenger_mock.SuggestGarLine( @@ -313,7 +314,7 @@ messenger_mock.SuggestGarLine( 'SPKG_DESC_CSWfoo-bar += A foo bar package, libfoo.so.1') messenger_mock.SuggestGarLine( - r'RUNTIME_DEP_PKGS_CSWfoo-bar += CSWfoo-bar') + r'RUNTIME_DEP_PKGS_CSWfoo += CSWfoo-bar') messenger_mock.SuggestGarLine( r'# The end of CSWfoo-bar definition') self.mox.ReplayAll() @@ -322,7 +323,8 @@ messenger_mock, pkgname, catalogname, description, - lib_path, lib_basename, lib_soname) + lib_path, lib_basename, lib_soname, + base_pkgname) class TestReportMissingDependencies(mox.MoxTestBase): Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-27 10:50:40 UTC (rev 12085) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-27 11:02:09 UTC (rev 12086) @@ -1004,7 +1004,8 @@ policy_pkgname_list[0], policy_catalogname_list[0], description, - lib_path, lib_basename, soname) + lib_path, lib_basename, soname, + pkgname) check_names = False else: @@ -1046,7 +1047,8 @@ suggested_pkgname, policy_catalogname_list[0], description, - lib_path, lib_basename, soname) + lib_path, lib_basename, soname, + pkgname) messenger.OneTimeMessage( soname, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:22:17 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:22:17 +0000 Subject: [csw-devel] SF.net SVN: gar:[12087] csw/mgar/gar/v2 Message-ID: Revision: 12087 http://gar.svn.sourceforge.net/gar/?rev=12087&view=rev Author: wahwah Date: 2010-12-27 12:22:17 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: A unit test for ListBinaries Also moving a file-inspecting function to the InspectivePackage class. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/inspective_package.py csw/mgar/gar/v2/lib/python/package.py csw/mgar/gar/v2/tests/run_tests.py Added Paths: ----------- csw/mgar/gar/v2/lib/python/inspective_package_test.py Modified: csw/mgar/gar/v2/lib/python/inspective_package.py =================================================================== --- csw/mgar/gar/v2/lib/python/inspective_package.py 2010-12-27 11:02:09 UTC (rev 12086) +++ csw/mgar/gar/v2/lib/python/inspective_package.py 2010-12-27 12:22:17 UTC (rev 12087) @@ -33,8 +33,6 @@ self.CheckPkgpathExists() self.files_metadata = [] files_root = os.path.join(self.directory, "root") - if not os.path.exists(files_root): - return self.files_metadata all_files = self.GetAllFilePaths() def StripRe(x, strip_re): return re.sub(strip_re, "", x) @@ -105,7 +103,18 @@ self.binaries.sort() return self.binaries + def GetAllFilePaths(self): + """Returns a list of all paths from the package.""" + if not self.file_paths: + self.CheckPkgpathExists() + remove_prefix = "%s/" % self.pkgpath + self.file_paths = [] + for root, dirs, files in os.walk(os.path.join(self.pkgpath, "root")): + full_paths = [os.path.join(root, f) for f in files] + self.file_paths.extend([f.replace(remove_prefix, "") for f in full_paths]) + return self.file_paths + class FileMagic(object): """Libmagic sometimes returns None, which I think is a bug. Trying to come up with a way to work around that. It might not even be Added: csw/mgar/gar/v2/lib/python/inspective_package_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/inspective_package_test.py (rev 0) +++ csw/mgar/gar/v2/lib/python/inspective_package_test.py 2010-12-27 12:22:17 UTC (rev 12087) @@ -0,0 +1,48 @@ +#!/usr/bin/env python2.6 + +import unittest +import inspective_package +import mox +import hachoir_parser +import magic +import os + +class InspectivePackageUnitTest(mox.MoxTestBase): + + def testOne(self): + self.mox.StubOutWithMock(hachoir_parser, 'createParser', + use_mock_anything=True) + hachoir_parser_mock = self.mox.CreateMockAnything() + hachoir_parser.createParser( + u'/fake/path/CSWfoo/root/foo-file').AndReturn(hachoir_parser_mock) + machine_mock = self.mox.CreateMockAnything() + machine_mock.value = 2 + hachoir_parser_mock.__getitem__('/header/machine').AndReturn(machine_mock) + endian_mock = self.mox.CreateMockAnything() + endian_mock.display = 'fake-endian' + hachoir_parser_mock.__getitem__('/header/endian').AndReturn(endian_mock) + magic_cookie_mock = self.mox.CreateMockAnything() + self.mox.StubOutWithMock(magic, 'open') + magic.open(0).AndReturn(magic_cookie_mock) + magic_cookie_mock.load() + magic_cookie_mock.setflags(magic.MAGIC_MIME) + magic_cookie_mock.file( + u'/fake/path/CSWfoo/root/foo-file').AndReturn( + "application/x-executable") + self.mox.StubOutWithMock(os.path, 'isdir') + self.mox.StubOutWithMock(os, 'walk') + os.path.isdir("/fake/path/CSWfoo").AndReturn(True) + os.path.isdir("/fake/path/CSWfoo").AndReturn(True) + os.path.isdir("/fake/path/CSWfoo").AndReturn(True) + os.walk("/fake/path/CSWfoo/root").AndReturn( + [ + ("/fake/path/CSWfoo/root", [], ["foo-file"]), + ] + ) + self.mox.ReplayAll() + ip = inspective_package.InspectivePackage("/fake/path/CSWfoo") + self.assertEqual(["foo-file"], ip.ListBinaries()) + + +if __name__ == '__main__': + unittest.main() Property changes on: csw/mgar/gar/v2/lib/python/inspective_package_test.py ___________________________________________________________________ Added: svn:executable + * Modified: csw/mgar/gar/v2/lib/python/package.py =================================================================== --- csw/mgar/gar/v2/lib/python/package.py 2010-12-27 11:02:09 UTC (rev 12086) +++ csw/mgar/gar/v2/lib/python/package.py 2010-12-27 12:22:17 UTC (rev 12087) @@ -360,17 +360,6 @@ raise PackageError("%s does not exist or is not a directory" % self.directory) - def GetAllFilePaths(self): - """Returns a list of all paths from the package.""" - if not self.file_paths: - self.CheckPkgpathExists() - remove_prefix = "%s/" % self.pkgpath - self.file_paths = [] - for root, dirs, files in os.walk(os.path.join(self.pkgpath, "root")): - full_paths = [os.path.join(root, f) for f in files] - self.file_paths.extend([f.replace(remove_prefix, "") for f in full_paths]) - return self.file_paths - def _GetOverridesStream(self, file_path): # This might potentially cause a file descriptor leak, but I'm not going to # worry about that at this stage. Modified: csw/mgar/gar/v2/tests/run_tests.py =================================================================== --- csw/mgar/gar/v2/tests/run_tests.py 2010-12-27 11:02:09 UTC (rev 12086) +++ csw/mgar/gar/v2/tests/run_tests.py 2010-12-27 12:22:17 UTC (rev 12087) @@ -15,6 +15,7 @@ from checkpkg_lib_test import * from checkpkg_test import * from dependency_checks_test import * +from inspective_package_test import * from ldd_emul_test import * from models_test import * from opencsw_test import * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:22:47 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:22:47 +0000 Subject: [csw-devel] SF.net SVN: gar:[12088] csw/mgar/gar/v2/lib/python/package_checks_test.py Message-ID: Revision: 12088 http://gar.svn.sourceforge.net/gar/?rev=12088&view=rev Author: wahwah Date: 2010-12-27 12:22:47 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Removing the MoxMetaTestBase magic And using a more effective way to disable a package. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-27 12:22:17 UTC (rev 12087) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-27 12:22:47 UTC (rev 12088) @@ -33,8 +33,6 @@ class CheckpkgUnitTestHelper(object): """Wraps common components of checkpkg tests.""" - __metaclass__ = mox.MoxMetaTestBase - def setUp(self): super(CheckpkgUnitTestHelper, self).setUp() self.mox = mox.Mox() @@ -62,6 +60,7 @@ self.error_mgr_mock, self.logger_mock, self.messenger) + self.mox.VerifyAll() class TestMultipleDepends(CheckpkgUnitTestHelper, unittest.TestCase): @@ -1091,13 +1090,14 @@ self.error_mgr_mock.NeedFile("CSWivtools", "/opt/csw/lib/libComUnidraw.so", mox.IsA(str)) -class TestSetCheckDirectoryDependenciesTree(CheckpkgUnitTestHelper, - unittest.TestCase): +class TestSetCheckDirectoryDependenciesTree( + # This test is disabled for the + # time being. + # CheckpkgUnitTestHelper, + unittest.TestCase): """Test whether appropriate files are provided.""" FUNCTION_NAME = 'SetCheckLibraries' - def testDefault(self): - # This test is disabled - pass + def CheckpkgTest(self): self.pkg_data = tree_stats self.error_mgr_mock.GetPathsAndPkgnamesByBasename('libc.so.1').AndReturn({ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:23:18 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:23:18 +0000 Subject: [csw-devel] SF.net SVN: gar:[12089] csw/mgar/gar/v2/lib/python/checkpkg.py Message-ID: Revision: 12089 http://gar.svn.sourceforge.net/gar/?rev=12089&view=rev Author: wahwah Date: 2010-12-27 12:23:18 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Removing unused constants They were already moved to another file. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg.py Modified: csw/mgar/gar/v2/lib/python/checkpkg.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-27 12:22:47 UTC (rev 12088) +++ csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-27 12:23:18 UTC (rev 12089) @@ -20,9 +20,6 @@ import package_stats -DO_NOT_REPORT_SURPLUS = set([u"CSWcommon", u"CSWcswclassutils", u"CSWisaexec"]) -DO_NOT_REPORT_MISSING = set([]) -DO_NOT_REPORT_MISSING_RE = [r"\*?SUNW.*"] DUMP_BIN = "/usr/ccs/bin/dump" PSTAMP_RE = r"(?P\w+)@(?P[\w\.-]+)-(?P\d+)" DESCRIPTION_RE = r"^([\S]+) - (.*)$" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:23:45 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:23:45 +0000 Subject: [csw-devel] SF.net SVN: gar:[12090] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12090 http://gar.svn.sourceforge.net/gar/?rev=12090&view=rev Author: wahwah Date: 2010-12-27 12:23:45 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Moving DUMP_BIN to common constants Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg.py csw/mgar/gar/v2/lib/python/common_constants.py csw/mgar/gar/v2/lib/python/package_stats.py Modified: csw/mgar/gar/v2/lib/python/checkpkg.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-27 12:23:18 UTC (rev 12089) +++ csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-27 12:23:45 UTC (rev 12090) @@ -20,7 +20,6 @@ import package_stats -DUMP_BIN = "/usr/ccs/bin/dump" PSTAMP_RE = r"(?P\w+)@(?P[\w\.-]+)-(?P\d+)" DESCRIPTION_RE = r"^([\S]+) - (.*)$" BAD_CONTENT_REGEXES = ( Modified: csw/mgar/gar/v2/lib/python/common_constants.py =================================================================== --- csw/mgar/gar/v2/lib/python/common_constants.py 2010-12-27 12:23:18 UTC (rev 12089) +++ csw/mgar/gar/v2/lib/python/common_constants.py 2010-12-27 12:23:45 UTC (rev 12090) @@ -17,6 +17,7 @@ ) DEFAULT_INSTALL_CONTENTS_FILE = "/var/sadm/install/contents" +DUMP_BIN = "/usr/ccs/bin/dump" OWN_PKGNAME_PREFIXES = frozenset(["CSW"]) Modified: csw/mgar/gar/v2/lib/python/package_stats.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-27 12:23:18 UTC (rev 12089) +++ csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-27 12:23:45 UTC (rev 12090) @@ -23,7 +23,6 @@ from sqlobject import sqlbuilder -DUMP_BIN = "/usr/ccs/bin/dump" PACKAGE_STATS_VERSION = 9L BAD_CONTENT_REGEXES = ( # Slightly obfuscating these by using the default concatenation of @@ -137,7 +136,7 @@ for binary in dir_pkg.ListBinaries(): binary_abs_path = os.path.join(dir_pkg.directory, "root", binary) binary_base_name = os.path.basename(binary) - args = [DUMP_BIN, "-Lv", binary_abs_path] + args = [common_constants.DUMP_BIN, "-Lv", binary_abs_path] dump_proc = subprocess.Popen(args, stdout=subprocess.PIPE, env=env) stdout, stderr = dump_proc.communicate() ret = dump_proc.wait() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:24:11 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:24:11 +0000 Subject: [csw-devel] SF.net SVN: gar:[12091] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12091 http://gar.svn.sourceforge.net/gar/?rev=12091&view=rev Author: wahwah Date: 2010-12-27 12:24:11 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Moving 'dump' calls to InspectivePackage Modified Paths: -------------- csw/mgar/gar/v2/lib/python/inspective_package.py csw/mgar/gar/v2/lib/python/package_stats.py Modified: csw/mgar/gar/v2/lib/python/inspective_package.py =================================================================== --- csw/mgar/gar/v2/lib/python/inspective_package.py 2010-12-27 12:23:45 UTC (rev 12090) +++ csw/mgar/gar/v2/lib/python/inspective_package.py 2010-12-27 12:24:11 UTC (rev 12091) @@ -114,7 +114,26 @@ self.file_paths.extend([f.replace(remove_prefix, "") for f in full_paths]) return self.file_paths + def GetBinaryDumpInfo(self): + # Binaries. This could be split off to a separate function. + # man ld.so.1 for more info on this hack + env = copy.copy(os.environ) + env["LD_NOAUXFLTR"] = "1" + binaries_dump_info = [] + for binary in self.ListBinaries(): + binary_abs_path = os.path.join(self.directory, "root", binary) + binary_base_name = os.path.basename(binary) + args = [common_constants.DUMP_BIN, "-Lv", binary_abs_path] + dump_proc = subprocess.Popen(args, stdout=subprocess.PIPE, env=env) + stdout, stderr = dump_proc.communicate() + ret = dump_proc.wait() + binary_data = ldd_emul.ParseDumpOutput(stdout) + binary_data["path"] = binary + binary_data["base_name"] = binary_base_name + binaries_dump_info.append(binary_data) + return binaries_dump_info + class FileMagic(object): """Libmagic sometimes returns None, which I think is a bug. Trying to come up with a way to work around that. It might not even be Modified: csw/mgar/gar/v2/lib/python/package_stats.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-27 12:23:45 UTC (rev 12090) +++ csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-27 12:24:11 UTC (rev 12091) @@ -128,23 +128,7 @@ def GetBinaryDumpInfo(self): dir_pkg = self.GetInspectivePkg() - # Binaries. This could be split off to a separate function. - # man ld.so.1 for more info on this hack - env = copy.copy(os.environ) - env["LD_NOAUXFLTR"] = "1" - binaries_dump_info = [] - for binary in dir_pkg.ListBinaries(): - binary_abs_path = os.path.join(dir_pkg.directory, "root", binary) - binary_base_name = os.path.basename(binary) - args = [common_constants.DUMP_BIN, "-Lv", binary_abs_path] - dump_proc = subprocess.Popen(args, stdout=subprocess.PIPE, env=env) - stdout, stderr = dump_proc.communicate() - ret = dump_proc.wait() - binary_data = ldd_emul.ParseDumpOutput(stdout) - binary_data["path"] = binary - binary_data["base_name"] = binary_base_name - binaries_dump_info.append(binary_data) - return binaries_dump_info + return dir_pkg.GetBinaryDumpInfo() def GetBasicStats(self): dir_pkg = self.GetInspectivePkg() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:24:39 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:24:39 +0000 Subject: [csw-devel] SF.net SVN: gar:[12092] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12092 http://gar.svn.sourceforge.net/gar/?rev=12092&view=rev Author: wahwah Date: 2010-12-27 12:24:38 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Moving functions to InspectivePackage Part of cleanup. Functions interacting with the OS should be in the InspectivePackage class. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/inspective_package.py csw/mgar/gar/v2/lib/python/inspective_package_test.py csw/mgar/gar/v2/lib/python/package_stats.py csw/mgar/gar/v2/lib/python/package_stats_test.py Modified: csw/mgar/gar/v2/lib/python/inspective_package.py =================================================================== --- csw/mgar/gar/v2/lib/python/inspective_package.py 2010-12-27 12:24:11 UTC (rev 12091) +++ csw/mgar/gar/v2/lib/python/inspective_package.py 2010-12-27 12:24:38 UTC (rev 12092) @@ -133,7 +133,154 @@ binaries_dump_info.append(binary_data) return binaries_dump_info + def GetDefinedSymbols(self): + """Returns text symbols (i.e. defined functions) for packaged ELF objects + To do this we parse output lines from nm similar to the following. "T"s are + the definitions which we are after. + + 0000104000 D _lib_version + 0000986980 D _libiconv_version + 0000000000 U abort + 0000097616 T aliases_lookup + """ + binaries = self.ListBinaries() + defined_symbols = {} + + for binary in binaries: + binary_abspath = os.path.join(self.directory, "root", binary) + # Get parsable, ld.so.1 relevant SHT_DYNSYM symbol information + args = ["/usr/ccs/bin/nm", "-p", "-D", binary_abspath] + nm_proc = subprocess.Popen( + args, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + stdout, stderr = nm_proc.communicate() + retcode = nm_proc.wait() + if retcode: + logging.error("%s returned an error: %s", args, stderr) + continue + nm_out = stdout.splitlines() + + defined_symbols[binary] = [] + for line in nm_out: + sym = self._ParseNmSymLine(line) + if not sym: + continue + if sym['type'] not in ("T", "D", "B"): + continue + defined_symbols[binary].append(sym['name']) + + return defined_symbols + + def GetLddMinusRlines(self): + """Returns ldd -r output.""" + dir_pkg = self.GetInspectivePkg() + binaries = dir_pkg.ListBinaries() + ldd_output = {} + for binary in binaries: + binary_abspath = os.path.join(dir_pkg.directory, "root", binary) + # this could be potentially moved into the DirectoryFormatPackage class. + # ldd needs the binary to be executable + os.chmod(binary_abspath, 0755) + args = ["ldd", "-r", binary_abspath] + ldd_proc = subprocess.Popen( + args, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + stdout, stderr = ldd_proc.communicate() + retcode = ldd_proc.wait() + if retcode: + logging.error("%s returned an error: %s", args, stderr) + ldd_info = [] + for line in stdout.splitlines(): + ldd_info.append(self._ParseLddDashRline(line)) + ldd_output[binary] = ldd_info + return ldd_output + + def _ParseNmSymLine(self, line): + re_defined_symbol = re.compile('[0-9]+ [ABDFNSTU] \S+') + m = re_defined_symbol.match(line) + if not m: + return None + fields = line.split() + sym = { 'address': fields[0], 'type': fields[1], 'name': fields[2] } + return sym + + def _ParseLddDashRline(self, line): + found_re = r"^\t(?P\S+)\s+=>\s+(?P\S+)" + symbol_not_found_re = (r"^\tsymbol not found:\s(?P\S+)\s+" + r"\((?P\S+)\)") + only_so = r"^\t(?P\S+)$" + version_so = (r'^\t(?P\S+) ' + r'\((?P\S+)\) =>\t \(version not found\)') + stv_protected = (r'^\trelocation \S+ symbol: (?P\S+): ' + r'file (?P\S+): ' + r'relocation bound to a symbol ' + r'with STV_PROTECTED visibility$') + sizes_differ = (r'^\trelocation \S+ sizes differ: ' + r'(?P\S+)$') + sizes_info = (r'^\t\t\(file (?P\S+) size=(?P0x\w+); ' + r'file (?P\S+) size=(?P0x\w+)\)$') + sizes_one_used = (r'^\t\t(?P\S+) size used; ' + r'possible insufficient data copied$') + common_re = (r"(%s|%s|%s|%s|%s|%s|%s|%s)" + % (found_re, symbol_not_found_re, only_so, version_so, + stv_protected, sizes_differ, sizes_info, sizes_one_used)) + m = re.match(common_re, line) + response = {} + if m: + d = m.groupdict() + if "soname" in d and d["soname"]: + # it was found + response["state"] = "OK" + response["soname"] = d["soname"] + response["path"] = d["path_found"] + response["symbol"] = None + elif "symbol" in d and d["symbol"]: + response["state"] = "symbol-not-found" + response["soname"] = None + response["path"] = d["path_not_found"] + response["symbol"] = d["symbol"] + elif d["path_only"]: + response["state"] = "OK" + response["soname"] = None + response["path"] = d["path_only"] + response["symbol"] = None + elif d["soname_version_not_found"]: + response["state"] = "version-not-found" + response["soname"] = d["soname_version_not_found"] + response["path"] = None + response["symbol"] = None + elif d["relocation_symbol"]: + response["state"] = 'relocation-bound-to-a-symbol-with-STV_PROTECTED-visibility' + response["soname"] = None + response["path"] = d["relocation_path"] + response["symbol"] = d["relocation_symbol"] + elif d["sizes_differ_symbol"]: + response["state"] = 'sizes-differ' + response["soname"] = None + response["path"] = None + response["symbol"] = d["sizes_differ_symbol"] + elif d["sizediff_file1"]: + response["state"] = 'sizes-diff-info' + response["soname"] = None + response["path"] = "%s %s" % (d["sizediff_file1"], d["sizediff_file2"]) + response["symbol"] = None + elif d["sizediffused_file"]: + response["state"] = 'sizes-diff-one-used' + response["soname"] = None + response["path"] = "%s" % (d["sizediffused_file"]) + response["symbol"] = None + else: + raise StdoutSyntaxError("Could not parse %s with %s" + % (repr(line), common_re)) + else: + raise StdoutSyntaxError("Could not parse %s with %s" + % (repr(line), common_re)) + return response + + class FileMagic(object): """Libmagic sometimes returns None, which I think is a bug. Trying to come up with a way to work around that. It might not even be Modified: csw/mgar/gar/v2/lib/python/inspective_package_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/inspective_package_test.py 2010-12-27 12:24:11 UTC (rev 12091) +++ csw/mgar/gar/v2/lib/python/inspective_package_test.py 2010-12-27 12:24:38 UTC (rev 12092) @@ -7,6 +7,18 @@ import magic import os +LDD_R_OUTPUT_1 = """\tlibc.so.1 => /lib/libc.so.1 +\tsymbol not found: check_encoding_conversion_args (/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so) +\tsymbol not found: LocalToUtf (/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so) +\tsymbol not found: UtfToLocal (/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so) +\tlibm.so.2 => /lib/libm.so.2 +\t/usr/lib/secure/s8_preload.so.1 +\tlibXext.so.0 (SUNW_1.1) =>\t (version not found) +\trelocation R_SPARC_COPY symbol: ASN1_OCTET_STRING_it: file /opt/csw/lib/sparcv8plus+vis/libcrypto.so.0.9.8: relocation bound to a symbol with STV_PROTECTED visibility +\trelocation R_SPARC_COPY sizes differ: _ZTI7QWidget +\t\t(file /tmp/pkg_GqCk0P/CSWkdeartworkgcc/root/opt/csw/kde-gcc/bin/kslideshow.kss size=0x28; file /opt/csw/kde-gcc/lib/libqt-mt.so.3 size=0x20) +""" + class InspectivePackageUnitTest(mox.MoxTestBase): def testOne(self): @@ -44,5 +56,115 @@ self.assertEqual(["foo-file"], ip.ListBinaries()) +class PackageStatsUnitTest(unittest.TestCase): + + def setUp(self): + self.ip = inspective_package.InspectivePackage("/fake/path/CSWfoo") + + def test_ParseNmSymLineGoodLine(self): + line = '0000097616 T aliases_lookup' + expected = { + 'address': '0000097616', + 'type': 'T', + 'name': 'aliases_lookup', + } + self.assertEqual(expected, self.ip._ParseNmSymLine(line)) + + def test_ParseNmSymLineBadLine(self): + line = 'foo' + self.assertEqual(None, self.ip._ParseNmSymLine(line)) + + def test_ParseLddDashRlineFound(self): + line = '\tlibc.so.1 => /lib/libc.so.1' + expected = { + 'state': 'OK', + 'soname': 'libc.so.1', + 'path': '/lib/libc.so.1', + 'symbol': None, + } + self.assertEqual(expected, self.ip._ParseLddDashRline(line)) + + def test_ParseLddDashRlineSymbolMissing(self): + line = ('\tsymbol not found: check_encoding_conversion_args ' + '(/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so)') + expected = { + 'state': 'symbol-not-found', + 'soname': None, + 'path': '/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so', + 'symbol': 'check_encoding_conversion_args', + } + self.assertEqual(expected, self.ip._ParseLddDashRline(line)) + + def test_ParseLddDashRlineFound(self): + line = '\t/usr/lib/secure/s8_preload.so.1' + expected = { + 'state': 'OK', + 'soname': None, + 'path': '/usr/lib/secure/s8_preload.so.1', + 'symbol': None, + } + self.assertEqual(expected, self.ip._ParseLddDashRline(line)) + + def test_ParseLdd_VersionNotFound(self): + line = '\tlibXext.so.0 (SUNW_1.1) =>\t (version not found)' + expected = { + 'symbol': None, + 'soname': 'libXext.so.0', + 'path': None, + 'state': 'version-not-found', + } + self.assertEqual(expected, self.ip._ParseLddDashRline(line)) + + def test_ParseLdd_StvProtectedVisibility(self): + line = ('\trelocation R_SPARC_COPY symbol: ASN1_OCTET_STRING_it: ' + 'file /opt/csw/lib/sparcv8plus+vis/libcrypto.so.0.9.8: ' + 'relocation bound to a symbol with STV_PROTECTED visibility') + expected = { + 'symbol': 'ASN1_OCTET_STRING_it', + 'soname': None, + 'path': '/opt/csw/lib/sparcv8plus+vis/libcrypto.so.0.9.8', + 'state': 'relocation-bound-to-a-symbol-with-STV_PROTECTED-visibility', + } + self.assertEqual(expected, self.ip._ParseLddDashRline(line)) + + def test_ParseLdd_SizesDiffer(self): + line = '\trelocation R_SPARC_COPY sizes differ: _ZTI7QWidget' + expected = { + 'symbol': '_ZTI7QWidget', + 'soname': None, + 'path': None, + 'state': 'sizes-differ', + } + self.assertEqual(expected, self.ip._ParseLddDashRline(line)) + + def test_ParseLdd_SizesDifferInfo(self): + line = ('\t\t(file /tmp/pkg_GqCk0P/CSWkdeartworkgcc/root/opt/csw/kde-gcc/bin/' + 'kslideshow.kss size=0x28; ' + 'file /opt/csw/kde-gcc/lib/libqt-mt.so.3 size=0x20)') + expected = { + 'symbol': None, + 'path': ('/tmp/pkg_GqCk0P/CSWkdeartworkgcc/root/opt/csw/kde-gcc/' + 'bin/kslideshow.kss /opt/csw/kde-gcc/lib/libqt-mt.so.3'), + 'state': 'sizes-diff-info', + 'soname': None, + } + self.assertEqual(expected, self.ip._ParseLddDashRline(line)) + + def test_ParseLdd_SizesDifferOneUsed(self): + line = ('\t\t/opt/csw/kde-gcc/lib/libqt-mt.so.3 size used; ' + 'possible insufficient data copied') + expected = { + 'symbol': None, + 'path': '/opt/csw/kde-gcc/lib/libqt-mt.so.3', + 'state': 'sizes-diff-one-used', + 'soname': None, + } + self.assertEqual(expected, self.ip._ParseLddDashRline(line)) + + def test_ParseLddDashRlineManyLines(self): + for line in LDD_R_OUTPUT_1.splitlines(): + parsed = self.ip._ParseLddDashRline(line) + + if __name__ == '__main__': unittest.main() Modified: csw/mgar/gar/v2/lib/python/package_stats.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-27 12:24:11 UTC (rev 12091) +++ csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-27 12:24:38 UTC (rev 12092) @@ -8,7 +8,6 @@ import progressbar import re import sqlobject -import subprocess import catalog import checkpkg @@ -156,81 +155,6 @@ overrides_simple = [OverrideToDict(x) for x in override_list] return overrides_simple - def GetLddMinusRlines(self): - """Returns ldd -r output.""" - dir_pkg = self.GetInspectivePkg() - binaries = dir_pkg.ListBinaries() - ldd_output = {} - for binary in binaries: - binary_abspath = os.path.join(dir_pkg.directory, "root", binary) - # this could be potentially moved into the DirectoryFormatPackage class. - # ldd needs the binary to be executable - os.chmod(binary_abspath, 0755) - args = ["ldd", "-r", binary_abspath] - ldd_proc = subprocess.Popen( - args, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - stdout, stderr = ldd_proc.communicate() - retcode = ldd_proc.wait() - if retcode: - logging.error("%s returned an error: %s", args, stderr) - ldd_info = [] - for line in stdout.splitlines(): - ldd_info.append(self._ParseLddDashRline(line)) - ldd_output[binary] = ldd_info - return ldd_output - - def GetDefinedSymbols(self): - """Returns text symbols (i.e. defined functions) for packaged ELF objects - - To do this we parse output lines from nm similar to the following. "T"s are - the definitions which we are after. - - 0000104000 D _lib_version - 0000986980 D _libiconv_version - 0000000000 U abort - 0000097616 T aliases_lookup - """ - dir_pkg = self.GetInspectivePkg() - binaries = dir_pkg.ListBinaries() - defined_symbols = {} - - for binary in binaries: - binary_abspath = os.path.join(dir_pkg.directory, "root", binary) - # Get parsable, ld.so.1 relevant SHT_DYNSYM symbol information - args = ["/usr/ccs/bin/nm", "-p", "-D", binary_abspath] - nm_proc = subprocess.Popen( - args, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - stdout, stderr = nm_proc.communicate() - retcode = nm_proc.wait() - if retcode: - logging.error("%s returned an error: %s", args, stderr) - continue - nm_out = stdout.splitlines() - - defined_symbols[binary] = [] - for line in nm_out: - sym = self._ParseNmSymLine(line) - if not sym: - continue - if sym['type'] not in ("T", "D", "B"): - continue - defined_symbols[binary].append(sym['name']) - - return defined_symbols - - def _ParseNmSymLine(self, line): - re_defined_symbol = re.compile('[0-9]+ [ABDFNSTU] \S+') - m = re_defined_symbol.match(line) - if not m: - return None - fields = line.split() - sym = { 'address': fields[0], 'type': fields[1], 'name': fields[2] } - return sym - def CollectStats(self, force=False, register_files=False): """Lazy stats collection.""" if force or not self.StatsExist(): @@ -465,80 +389,7 @@ self.all_stats = cPickle.loads(str(res.getOne().data_obj.pickle)) return self.all_stats - def _ParseLddDashRline(self, line): - found_re = r"^\t(?P\S+)\s+=>\s+(?P\S+)" - symbol_not_found_re = (r"^\tsymbol not found:\s(?P\S+)\s+" - r"\((?P\S+)\)") - only_so = r"^\t(?P\S+)$" - version_so = (r'^\t(?P\S+) ' - r'\((?P\S+)\) =>\t \(version not found\)') - stv_protected = (r'^\trelocation \S+ symbol: (?P\S+): ' - r'file (?P\S+): ' - r'relocation bound to a symbol ' - r'with STV_PROTECTED visibility$') - sizes_differ = (r'^\trelocation \S+ sizes differ: ' - r'(?P\S+)$') - sizes_info = (r'^\t\t\(file (?P\S+) size=(?P0x\w+); ' - r'file (?P\S+) size=(?P0x\w+)\)$') - sizes_one_used = (r'^\t\t(?P\S+) size used; ' - r'possible insufficient data copied$') - common_re = (r"(%s|%s|%s|%s|%s|%s|%s|%s)" - % (found_re, symbol_not_found_re, only_so, version_so, - stv_protected, sizes_differ, sizes_info, sizes_one_used)) - m = re.match(common_re, line) - response = {} - if m: - d = m.groupdict() - if "soname" in d and d["soname"]: - # it was found - response["state"] = "OK" - response["soname"] = d["soname"] - response["path"] = d["path_found"] - response["symbol"] = None - elif "symbol" in d and d["symbol"]: - response["state"] = "symbol-not-found" - response["soname"] = None - response["path"] = d["path_not_found"] - response["symbol"] = d["symbol"] - elif d["path_only"]: - response["state"] = "OK" - response["soname"] = None - response["path"] = d["path_only"] - response["symbol"] = None - elif d["soname_version_not_found"]: - response["state"] = "version-not-found" - response["soname"] = d["soname_version_not_found"] - response["path"] = None - response["symbol"] = None - elif d["relocation_symbol"]: - response["state"] = 'relocation-bound-to-a-symbol-with-STV_PROTECTED-visibility' - response["soname"] = None - response["path"] = d["relocation_path"] - response["symbol"] = d["relocation_symbol"] - elif d["sizes_differ_symbol"]: - response["state"] = 'sizes-differ' - response["soname"] = None - response["path"] = None - response["symbol"] = d["sizes_differ_symbol"] - elif d["sizediff_file1"]: - response["state"] = 'sizes-diff-info' - response["soname"] = None - response["path"] = "%s %s" % (d["sizediff_file1"], d["sizediff_file2"]) - response["symbol"] = None - elif d["sizediffused_file"]: - response["state"] = 'sizes-diff-one-used' - response["soname"] = None - response["path"] = "%s" % (d["sizediffused_file"]) - response["symbol"] = None - else: - raise StdoutSyntaxError("Could not parse %s with %s" - % (repr(line), common_re)) - else: - raise StdoutSyntaxError("Could not parse %s with %s" - % (repr(line), common_re)) - return response - def StatsListFromCatalog(file_name_list, catalog_file_name=None, debug=False): packages = [inspective_package.InspectiveCswSrv4File(x, debug) for x in file_name_list] if catalog_file_name: Modified: csw/mgar/gar/v2/lib/python/package_stats_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-27 12:24:11 UTC (rev 12091) +++ csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-27 12:24:38 UTC (rev 12092) @@ -17,128 +17,7 @@ from testdata.tree_stats import pkgstats as tree_stats from testdata.neon_stats import pkgstats as neon_stats -LDD_R_OUTPUT_1 = """\tlibc.so.1 => /lib/libc.so.1 -\tsymbol not found: check_encoding_conversion_args (/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so) -\tsymbol not found: LocalToUtf (/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so) -\tsymbol not found: UtfToLocal (/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so) -\tlibm.so.2 => /lib/libm.so.2 -\t/usr/lib/secure/s8_preload.so.1 -\tlibXext.so.0 (SUNW_1.1) =>\t (version not found) -\trelocation R_SPARC_COPY symbol: ASN1_OCTET_STRING_it: file /opt/csw/lib/sparcv8plus+vis/libcrypto.so.0.9.8: relocation bound to a symbol with STV_PROTECTED visibility -\trelocation R_SPARC_COPY sizes differ: _ZTI7QWidget -\t\t(file /tmp/pkg_GqCk0P/CSWkdeartworkgcc/root/opt/csw/kde-gcc/bin/kslideshow.kss size=0x28; file /opt/csw/kde-gcc/lib/libqt-mt.so.3 size=0x20) -""" -class PackageStatsUnitTest(unittest.TestCase): - - def setUp(self): - self.pkgstats = package_stats.PackageStats(None) - - def test_ParseNmSymLineGoodLine(self): - line = '0000097616 T aliases_lookup' - expected = { - 'address': '0000097616', - 'type': 'T', - 'name': 'aliases_lookup', - } - self.assertEqual(expected, self.pkgstats._ParseNmSymLine(line)) - - def test_ParseNmSymLineBadLine(self): - line = 'foo' - self.assertEqual(None, self.pkgstats._ParseNmSymLine(line)) - - def test_ParseLddDashRlineFound(self): - line = '\tlibc.so.1 => /lib/libc.so.1' - expected = { - 'state': 'OK', - 'soname': 'libc.so.1', - 'path': '/lib/libc.so.1', - 'symbol': None, - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLddDashRlineSymbolMissing(self): - line = ('\tsymbol not found: check_encoding_conversion_args ' - '(/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so)') - expected = { - 'state': 'symbol-not-found', - 'soname': None, - 'path': '/opt/csw/lib/postgresql/8.4/utf8_and_gbk.so', - 'symbol': 'check_encoding_conversion_args', - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLddDashRlineFound(self): - line = '\t/usr/lib/secure/s8_preload.so.1' - expected = { - 'state': 'OK', - 'soname': None, - 'path': '/usr/lib/secure/s8_preload.so.1', - 'symbol': None, - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLdd_VersionNotFound(self): - line = '\tlibXext.so.0 (SUNW_1.1) =>\t (version not found)' - expected = { - 'symbol': None, - 'soname': 'libXext.so.0', - 'path': None, - 'state': 'version-not-found', - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLdd_StvProtectedVisibility(self): - line = ('\trelocation R_SPARC_COPY symbol: ASN1_OCTET_STRING_it: ' - 'file /opt/csw/lib/sparcv8plus+vis/libcrypto.so.0.9.8: ' - 'relocation bound to a symbol with STV_PROTECTED visibility') - expected = { - 'symbol': 'ASN1_OCTET_STRING_it', - 'soname': None, - 'path': '/opt/csw/lib/sparcv8plus+vis/libcrypto.so.0.9.8', - 'state': 'relocation-bound-to-a-symbol-with-STV_PROTECTED-visibility', - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLdd_SizesDiffer(self): - line = '\trelocation R_SPARC_COPY sizes differ: _ZTI7QWidget' - expected = { - 'symbol': '_ZTI7QWidget', - 'soname': None, - 'path': None, - 'state': 'sizes-differ', - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLdd_SizesDifferInfo(self): - line = ('\t\t(file /tmp/pkg_GqCk0P/CSWkdeartworkgcc/root/opt/csw/kde-gcc/bin/' - 'kslideshow.kss size=0x28; ' - 'file /opt/csw/kde-gcc/lib/libqt-mt.so.3 size=0x20)') - expected = { - 'symbol': None, - 'path': ('/tmp/pkg_GqCk0P/CSWkdeartworkgcc/root/opt/csw/kde-gcc/' - 'bin/kslideshow.kss /opt/csw/kde-gcc/lib/libqt-mt.so.3'), - 'state': 'sizes-diff-info', - 'soname': None, - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLdd_SizesDifferOneUsed(self): - line = ('\t\t/opt/csw/kde-gcc/lib/libqt-mt.so.3 size used; ' - 'possible insufficient data copied') - expected = { - 'symbol': None, - 'path': '/opt/csw/kde-gcc/lib/libqt-mt.so.3', - 'state': 'sizes-diff-one-used', - 'soname': None, - } - self.assertEqual(expected, self.pkgstats._ParseLddDashRline(line)) - - def test_ParseLddDashRlineManyLines(self): - for line in LDD_R_OUTPUT_1.splitlines(): - parsed = self.pkgstats._ParseLddDashRline(line) - - class PackageStatsWithDbUnitTest(test_base.SqlObjectTestMixin, unittest.TestCase): @@ -167,7 +46,7 @@ mock_srv4.GetMd5sum().AndReturn("mock md5sum") mock_srv4.GetSize().AndReturn(42) mock_dirpkg.ListBinaries().AndReturn([]) - mock_dirpkg.ListBinaries().AndReturn([]) + mock_dirpkg.GetBinaryDumpInfo().AndReturn([]) mock_dirpkg.GetDependencies().AndReturn([]) mock_srv4.GetPkgchkOutput().AndReturn((0, "", "")) mock_dirpkg.GetParsedPkginfo().AndReturn({ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:25:04 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:25:04 +0000 Subject: [csw-devel] SF.net SVN: gar:[12093] csw/mgar/gar/v2/lib/python/common_constants.py Message-ID: Revision: 12093 http://gar.svn.sourceforge.net/gar/?rev=12093&view=rev Author: wahwah Date: 2010-12-27 12:25:04 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Fixed a typo in common constants Modified Paths: -------------- csw/mgar/gar/v2/lib/python/common_constants.py Modified: csw/mgar/gar/v2/lib/python/common_constants.py =================================================================== --- csw/mgar/gar/v2/lib/python/common_constants.py 2010-12-27 12:24:38 UTC (rev 12092) +++ csw/mgar/gar/v2/lib/python/common_constants.py 2010-12-27 12:25:04 UTC (rev 12093) @@ -52,7 +52,7 @@ DEFAULT_CATALOG_RELEASES = frozenset([ 'current', - 'experimenta', + 'experimental', 'unstable', 'testing', 'stable', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:25:29 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:25:29 +0000 Subject: [csw-devel] SF.net SVN: gar:[12094] csw/mgar/gar/v2/lib/python/opencsw.py Message-ID: Revision: 12094 http://gar.svn.sourceforge.net/gar/?rev=12094&view=rev Author: wahwah Date: 2010-12-27 12:25:29 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Using dict.setdefault in IndexDictBy It's a more pythonic way of populating a dictionary. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/opencsw.py Modified: csw/mgar/gar/v2/lib/python/opencsw.py =================================================================== --- csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-27 12:25:04 UTC (rev 12093) +++ csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-27 12:25:29 UTC (rev 12094) @@ -172,8 +172,7 @@ """ index = {} for d in list_of_dicts: - if d[field_key] not in index: - index[d[field_key]] = [] + index.setdefault(d[field_key], []) index[d[field_key]].append(d) return index This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:25:56 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:25:56 +0000 Subject: [csw-devel] SF.net SVN: gar:[12095] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12095 http://gar.svn.sourceforge.net/gar/?rev=12095&view=rev Author: wahwah Date: 2010-12-27 12:25:56 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Moving PSTAMP_RE to common_constants Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg.py csw/mgar/gar/v2/lib/python/checkpkg_test.py csw/mgar/gar/v2/lib/python/common_constants.py csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/checkpkg.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-27 12:25:29 UTC (rev 12094) +++ csw/mgar/gar/v2/lib/python/checkpkg.py 2010-12-27 12:25:56 UTC (rev 12095) @@ -20,7 +20,6 @@ import package_stats -PSTAMP_RE = r"(?P\w+)@(?P[\w\.-]+)-(?P\d+)" DESCRIPTION_RE = r"^([\S]+) - (.*)$" BAD_CONTENT_REGEXES = ( # Slightly obfuscating these by using concatenation of strings. @@ -87,7 +86,7 @@ def ExtractBuildUsername(pkginfo): - m = re.match(PSTAMP_RE, pkginfo["PSTAMP"]) + m = re.match(common_constants.PSTAMP_RE, pkginfo["PSTAMP"]) return m.group("username") if m else None Modified: csw/mgar/gar/v2/lib/python/checkpkg_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_test.py 2010-12-27 12:25:29 UTC (rev 12094) +++ csw/mgar/gar/v2/lib/python/checkpkg_test.py 2010-12-27 12:25:56 UTC (rev 12095) @@ -15,6 +15,7 @@ import sqlite3 import sqlobject import test_base +import common_constants from testdata.tree_stats import pkgstats as tree_stats from testdata.neon_stats import pkgstats as neon_stats @@ -57,7 +58,7 @@ 'timestamp': '20100313144445', 'hostname': 'solaris9s-csw' } - self.assertEqual(expected, re.match(checkpkg.PSTAMP_RE, pstamp).groupdict()) + self.assertEqual(expected, re.match(common_constants.PSTAMP_RE, pstamp).groupdict()) class SliceListUnitTest(unittest.TestCase): Modified: csw/mgar/gar/v2/lib/python/common_constants.py =================================================================== --- csw/mgar/gar/v2/lib/python/common_constants.py 2010-12-27 12:25:29 UTC (rev 12094) +++ csw/mgar/gar/v2/lib/python/common_constants.py 2010-12-27 12:25:56 UTC (rev 12095) @@ -66,3 +66,5 @@ DO_NOT_REPORT_SURPLUS = [r"^CSWcommon$", r"^CSWcswclassutils$", r"^CSWcas-", r"^CSWisaexec$"] DO_NOT_REPORT_SURPLUS_FOR = [r"CSW[a-z\-]+dev(el)?"] DO_NOT_REPORT_MISSING_RE = [r"\*?SUNW.*"] + +PSTAMP_RE = r"(?P\w+)@(?P[\w\.-]+)-(?P\d+)" Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-27 12:25:29 UTC (rev 12094) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-27 12:25:56 UTC (rev 12095) @@ -578,7 +578,7 @@ def CheckPstamp(pkg_data, error_mgr, logger, messenger): pkginfo = pkg_data["pkginfo"] if "PSTAMP" in pkginfo: - if not re.match(checkpkg.PSTAMP_RE, pkginfo["PSTAMP"]): + if not re.match(common_constants.PSTAMP_RE, pkginfo["PSTAMP"]): msg=("It should be 'username at hostname-timestamp', " "but it's %s." % repr(pkginfo["PSTAMP"])) error_mgr.ReportError("pkginfo-pstamp-in-wrong-format", pkginfo["PSTAMP"], msg) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:26:38 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:26:38 +0000 Subject: [csw-devel] SF.net SVN: gar:[12096] csw/mgar/gar/v2 Message-ID: Revision: 12096 http://gar.svn.sourceforge.net/gar/?rev=12096&view=rev Author: wahwah Date: 2010-12-27 12:26:38 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Move Pkgmap to own file Creating two new files: pkgmap.py and struct_util.py. The first one contains the Pkgmap class, and the second is for generic data structure processing functions. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/opencsw.py csw/mgar/gar/v2/lib/python/opencsw_test.py csw/mgar/gar/v2/lib/python/package_stats_test.py csw/mgar/gar/v2/tests/run_tests.py Added Paths: ----------- csw/mgar/gar/v2/lib/python/pkgmap.py csw/mgar/gar/v2/lib/python/pkgmap_test.py csw/mgar/gar/v2/lib/python/struct_util.py csw/mgar/gar/v2/lib/python/struct_util_test.py Modified: csw/mgar/gar/v2/lib/python/opencsw.py =================================================================== --- csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-27 12:25:56 UTC (rev 12095) +++ csw/mgar/gar/v2/lib/python/opencsw.py 2010-12-27 12:26:38 UTC (rev 12096) @@ -165,18 +165,6 @@ return version_str, version_info, revision_info -def IndexDictsBy(list_of_dicts, field_key): - """Creates an index of list of dictionaries by a field name. - - Returns a dictionary of lists. - """ - index = {} - for d in list_of_dicts: - index.setdefault(d[field_key], []) - index[d[field_key]].append(d) - return index - - class CatalogBasedOpencswPackage(object): catalog_downloaded = False @@ -490,95 +478,3 @@ fn_data["arch"] = pkginfo_dict["ARCH"] fn_data["tag"] = "SUNW" return SRV4_FN_TMPL % fn_data - - -class Pkgmap(object): - """Represents the pkgmap of the package. - - The plan: - - entries = [ - { - 'path': ..., - 'class': ..., - (more fields?) - }, ... - ] - - + indexes - """ - ENTRY_TYPES = { - "1": "header (?)", - "d": "directory", - "f": "file", - "s": "symlink", - "l": "link", - "i": "script", - "e": "editable file" - } - - def __init__(self, input, permissions=False, - strip=None): - self.paths = set() - self.analyze_permissions = permissions - self.entries = [] - self.classes = None - for line in input: - fields = re.split(r'\s+', line) - if strip: - strip_re = re.compile(r"^%s" % strip) - fields = [re.sub(strip_re, "", x) for x in fields] - line_to_add = None - installed_path = None - prototype_class = None - line_type = fields[1] - mode = None - user = None - group = None - if len(fields) < 2: - continue - elif line_type in ('f', 'd'): - # Files and directories - line_to_add = fields[3] - installed_path = fields[3] - prototype_class = fields[2] - if self.analyze_permissions: - line_to_add += " %s %s %s" % tuple(fields[4:7]) - mode, user, group = fields[4:7] - elif line_type in ('e'): - # Editable files - line_to_add = fields[3] - installed_path = fields[3] - prototype_class = fields[2] - elif line_type in ('s', 'l'): - # soft- and hardlinks - link_from, link_to = fields[3].split("=") - installed_path = link_from - line_to_add = "%s --> %s" % (link_from, link_to) - prototype_class = fields[2] - if line_to_add: - self.paths.add(line_to_add) - entry = { - "line": line.strip(), - "type": line_type, - } - entry["path"] = installed_path - entry["class"] = prototype_class - entry["mode"] = mode - entry["user"] = user - entry["group"] = group - self.entries.append(entry) - self.entries_by_line = IndexDictsBy(self.entries, "line") - self.entries_by_type = IndexDictsBy(self.entries, "type") - self.entries_by_class = IndexDictsBy(self.entries, "class") - self.entries_by_path = IndexDictsBy(self.entries, "path") - self.entries = sorted(self.entries, key=lambda x: x["path"]) - - def GetClasses(self): - """The assumtion is that the set of classes never changes.""" - if not self.classes: - self.classes = set() - for entry in self.entries: - if entry["class"]: # might be None - self.classes.add(entry["class"]) - return self.classes Modified: csw/mgar/gar/v2/lib/python/opencsw_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/opencsw_test.py 2010-12-27 12:25:56 UTC (rev 12095) +++ csw/mgar/gar/v2/lib/python/opencsw_test.py 2010-12-27 12:26:38 UTC (rev 12096) @@ -47,28 +47,6 @@ #FASPACD= none """ -PKGMAP_1 = """1 f cswcpsampleconf /etc/opt/csw/cups/cupsd.conf.CSW 0644 root bin 4053 20987 1264420689 -""" - -PKGMAP_2 = """: 1 18128 -1 d none /etc/opt/csw/cups 0755 root bin -1 f cswcpsampleconf /etc/opt/csw/cups/cupsd.conf.CSW 0644 root bin 4053 20987 1264420689 -1 f none /etc/opt/csw/cups/cupsd.conf.default 0640 root bin 4053 20987 1264420689 -1 d none /etc/opt/csw/cups/interfaces 0755 root bin -1 d none /etc/opt/csw/cups/ppd 0755 root bin -1 f cswinitsmf /etc/opt/csw/init.d/cswcups 0555 root bin 4547 14118 1264420798 -1 i depend 122 11155 1264524848 -1 i pkginfo 489 41685 1264524852 -1 i postremove 151 12419 1256302505 -1 i preinstall 1488 45678 125630250 -""" - -PKGMAP_3 = """1 d none /opt/csw/apache2/ap2mod 0755 root bin -1 e build /opt/csw/apache2/ap2mod/suexec ? ? ? 1472 50478 1289099700 -1 d none /opt/csw/apache2/libexec 0755 root bin -1 f none /opt/csw/apache2/libexec/mod_suexec.so 0755 root bin 6852 52597 1289092061 -""" - SUBMITPKG_DATA_1 = { 'NEW_PACKAGE': 'new package', 'to': u'Release Manager ', @@ -403,72 +381,6 @@ repr(result))) -class PkgmapUnitTest(unittest.TestCase): - - def test_1(self): - pkgmap = opencsw.Pkgmap(PKGMAP_1.splitlines()) - expected = [ - { - 'group': 'bin', - 'user': 'root', - 'path': '/etc/opt/csw/cups/cupsd.conf.CSW', - 'line': '1 f cswcpsampleconf /etc/opt/csw/cups/cupsd.conf.CSW 0644 root bin 4053 20987 1264420689', - 'type': 'f', - 'class': 'cswcpsampleconf', - 'mode': '0644' - } - ] - self.assertEqual(expected, pkgmap.entries) - - def test_2(self): - pkgmap = opencsw.Pkgmap(PKGMAP_2.splitlines()) - line = ": 1 18128" - self.assertTrue(line in pkgmap.entries_by_line) - - def test_3(self): - pkgmap = opencsw.Pkgmap(PKGMAP_2.splitlines()) - self.assertTrue("cswcpsampleconf" in pkgmap.entries_by_class) - - def test_4(self): - pkgmap = opencsw.Pkgmap(PKGMAP_3.splitlines()) - self.assertTrue("build" in pkgmap.entries_by_class) - - def testPkgmapSortedByPaths(self): - pkgmap = opencsw.Pkgmap(PKGMAP_2.splitlines()) - paths = [x["path"] for x in pkgmap.entries] - self.assertEquals(paths, sorted(paths)) - -class IndexByUnitTest(unittest.TestCase): - - def testIndexDictsBy_1(self): - list_of_dicts = [ - {"a": 1}, - {"a": 2}, - {"a": 3}, - ] - expected = { - 1: [{'a': 1}], - 2: [{'a': 2}], - 3: [{'a': 3}], - } - self.assertEquals(expected, opencsw.IndexDictsBy(list_of_dicts, "a")) - - def testIndexDictsBy_2(self): - list_of_dicts = [ - {"a": 1, "b": 1}, - {"a": 1, "b": 2}, - {"a": 1, "b": 3}, - ] - expected = { - 1: [ - {'a': 1, 'b': 1}, - {'a': 1, 'b': 2}, - {'a': 1, 'b': 3}, - ] - } - self.assertEquals(expected, opencsw.IndexDictsBy(list_of_dicts, "a")) - - class SubmitpkgTemplateUnitTest(unittest.TestCase): def testTypicalUpgradeStrict(self): Modified: csw/mgar/gar/v2/lib/python/package_stats_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-27 12:25:56 UTC (rev 12095) +++ csw/mgar/gar/v2/lib/python/package_stats_test.py 2010-12-27 12:26:38 UTC (rev 12096) @@ -13,6 +13,7 @@ import inspective_package import opencsw import datetime +import pkgmap from testdata.tree_stats import pkgstats as tree_stats from testdata.neon_stats import pkgstats as neon_stats @@ -37,7 +38,7 @@ mock_dirpkg = self.mox.CreateMock( inspective_package.InspectivePackage) mock_pkgmap = self.mox.CreateMock( - opencsw.Pkgmap) + pkgmap.Pkgmap) mock_srv4.GetInspectivePkg().AndReturn(mock_dirpkg) mock_srv4.pkg_path = "/tmp/foo-1.2,REV=1234.12.11-SunOS5.8-sparc-CSW.pkg.gz" mock_dirpkg.pkgname = "MOCKpkgname" Added: csw/mgar/gar/v2/lib/python/pkgmap.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgmap.py (rev 0) +++ csw/mgar/gar/v2/lib/python/pkgmap.py 2010-12-27 12:26:38 UTC (rev 12096) @@ -0,0 +1,95 @@ +#!/usr/bin/env python2.6 + +import re +import struct_util + +class Pkgmap(object): + """Represents the pkgmap of the package. + + The plan: + + entries = [ + { + 'path': ..., + 'class': ..., + (more fields?) + }, ... + ] + + + indexes + """ + ENTRY_TYPES = { + "1": "header (?)", + "d": "directory", + "f": "file", + "s": "symlink", + "l": "link", + "i": "script", + "e": "editable file" + } + + def __init__(self, input, permissions=False, + strip=None): + self.paths = set() + self.analyze_permissions = permissions + self.entries = [] + self.classes = None + for line in input: + fields = re.split(r'\s+', line) + if strip: + strip_re = re.compile(r"^%s" % strip) + fields = [re.sub(strip_re, "", x) for x in fields] + line_to_add = None + installed_path = None + prototype_class = None + line_type = fields[1] + mode = None + user = None + group = None + if len(fields) < 2: + continue + elif line_type in ('f', 'd'): + # Files and directories + line_to_add = fields[3] + installed_path = fields[3] + prototype_class = fields[2] + if self.analyze_permissions: + line_to_add += " %s %s %s" % tuple(fields[4:7]) + mode, user, group = fields[4:7] + elif line_type in ('e'): + # Editable files + line_to_add = fields[3] + installed_path = fields[3] + prototype_class = fields[2] + elif line_type in ('s', 'l'): + # soft- and hardlinks + link_from, link_to = fields[3].split("=") + installed_path = link_from + line_to_add = "%s --> %s" % (link_from, link_to) + prototype_class = fields[2] + if line_to_add: + self.paths.add(line_to_add) + entry = { + "line": line.strip(), + "type": line_type, + } + entry["path"] = installed_path + entry["class"] = prototype_class + entry["mode"] = mode + entry["user"] = user + entry["group"] = group + self.entries.append(entry) + self.entries_by_line = struct_util.IndexDictsBy(self.entries, "line") + self.entries_by_type = struct_util.IndexDictsBy(self.entries, "type") + self.entries_by_class = struct_util.IndexDictsBy(self.entries, "class") + self.entries_by_path = struct_util.IndexDictsBy(self.entries, "path") + self.entries = sorted(self.entries, key=lambda x: x["path"]) + + def GetClasses(self): + """The assumtion is that the set of classes never changes.""" + if not self.classes: + self.classes = set() + for entry in self.entries: + if entry["class"]: # might be None + self.classes.add(entry["class"]) + return self.classes Added: csw/mgar/gar/v2/lib/python/pkgmap_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgmap_test.py (rev 0) +++ csw/mgar/gar/v2/lib/python/pkgmap_test.py 2010-12-27 12:26:38 UTC (rev 12096) @@ -0,0 +1,65 @@ +#!/usr/bin/env python2.6 + +import unittest +import pkgmap + +PKGMAP_1 = """1 f cswcpsampleconf /etc/opt/csw/cups/cupsd.conf.CSW 0644 root bin 4053 20987 1264420689 +""" + +PKGMAP_2 = """: 1 18128 +1 d none /etc/opt/csw/cups 0755 root bin +1 f cswcpsampleconf /etc/opt/csw/cups/cupsd.conf.CSW 0644 root bin 4053 20987 1264420689 +1 f none /etc/opt/csw/cups/cupsd.conf.default 0640 root bin 4053 20987 1264420689 +1 d none /etc/opt/csw/cups/interfaces 0755 root bin +1 d none /etc/opt/csw/cups/ppd 0755 root bin +1 f cswinitsmf /etc/opt/csw/init.d/cswcups 0555 root bin 4547 14118 1264420798 +1 i depend 122 11155 1264524848 +1 i pkginfo 489 41685 1264524852 +1 i postremove 151 12419 1256302505 +1 i preinstall 1488 45678 125630250 +""" + +PKGMAP_3 = """1 d none /opt/csw/apache2/ap2mod 0755 root bin +1 e build /opt/csw/apache2/ap2mod/suexec ? ? ? 1472 50478 1289099700 +1 d none /opt/csw/apache2/libexec 0755 root bin +1 f none /opt/csw/apache2/libexec/mod_suexec.so 0755 root bin 6852 52597 1289092061 +""" + +class PkgmapUnitTest(unittest.TestCase): + + def test_1(self): + pm = pkgmap.Pkgmap(PKGMAP_1.splitlines()) + expected = [ + { + 'group': 'bin', + 'user': 'root', + 'path': '/etc/opt/csw/cups/cupsd.conf.CSW', + 'line': '1 f cswcpsampleconf /etc/opt/csw/cups/cupsd.conf.CSW 0644 root bin 4053 20987 1264420689', + 'type': 'f', + 'class': 'cswcpsampleconf', + 'mode': '0644' + } + ] + self.assertEqual(expected, pm.entries) + + def test_2(self): + pm = pkgmap.Pkgmap(PKGMAP_2.splitlines()) + line = ": 1 18128" + self.assertTrue(line in pm.entries_by_line) + + def test_3(self): + pm = pkgmap.Pkgmap(PKGMAP_2.splitlines()) + self.assertTrue("cswcpsampleconf" in pm.entries_by_class) + + def test_4(self): + pm = pkgmap.Pkgmap(PKGMAP_3.splitlines()) + self.assertTrue("build" in pm.entries_by_class) + + def testPkgmapSortedByPaths(self): + pm = pkgmap.Pkgmap(PKGMAP_2.splitlines()) + paths = [x["path"] for x in pm.entries] + self.assertEquals(paths, sorted(paths)) + + +if __name__ == '__main__': + unittest.main() Property changes on: csw/mgar/gar/v2/lib/python/pkgmap_test.py ___________________________________________________________________ Added: svn:executable + * Added: csw/mgar/gar/v2/lib/python/struct_util.py =================================================================== --- csw/mgar/gar/v2/lib/python/struct_util.py (rev 0) +++ csw/mgar/gar/v2/lib/python/struct_util.py 2010-12-27 12:26:38 UTC (rev 12096) @@ -0,0 +1,13 @@ +"""A module for generic data structure processing functions. +""" + +def IndexDictsBy(list_of_dicts, field_key): + """Creates an index of list of dictionaries by a field name. + + Returns a dictionary of lists. + """ + index = {} + for d in list_of_dicts: + index.setdefault(d[field_key], []) + index[d[field_key]].append(d) + return index Added: csw/mgar/gar/v2/lib/python/struct_util_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/struct_util_test.py (rev 0) +++ csw/mgar/gar/v2/lib/python/struct_util_test.py 2010-12-27 12:26:38 UTC (rev 12096) @@ -0,0 +1,36 @@ +import unittest +import struct_util + +class IndexByUnitTest(unittest.TestCase): + + def testIndexDictsBy_1(self): + list_of_dicts = [ + {"a": 1}, + {"a": 2}, + {"a": 3}, + ] + expected = { + 1: [{'a': 1}], + 2: [{'a': 2}], + 3: [{'a': 3}], + } + self.assertEquals(expected, struct_util.IndexDictsBy(list_of_dicts, "a")) + + def testIndexDictsBy_2(self): + list_of_dicts = [ + {"a": 1, "b": 1}, + {"a": 1, "b": 2}, + {"a": 1, "b": 3}, + ] + expected = { + 1: [ + {'a': 1, 'b': 1}, + {'a': 1, 'b': 2}, + {'a': 1, 'b': 3}, + ] + } + self.assertEquals(expected, struct_util.IndexDictsBy(list_of_dicts, "a")) + + +if __name__ == '__main__': + unittest.main() Modified: csw/mgar/gar/v2/tests/run_tests.py =================================================================== --- csw/mgar/gar/v2/tests/run_tests.py 2010-12-27 12:25:56 UTC (rev 12095) +++ csw/mgar/gar/v2/tests/run_tests.py 2010-12-27 12:26:38 UTC (rev 12096) @@ -23,7 +23,9 @@ from package_stats_test import * from package_test import * from pkgdb_test import * +from pkgmap_test import * from sharedlib_utils_test import * +from struct_util_test import * from submit_to_newpkgs_test import * from system_pkgmap_test import * from tag_test import * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:27:10 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:27:10 +0000 Subject: [csw-devel] SF.net SVN: gar:[12097] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12097 http://gar.svn.sourceforge.net/gar/?rev=12097&view=rev Author: wahwah Date: 2010-12-27 12:27:10 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Adding missing imports after refactoring Modified Paths: -------------- csw/mgar/gar/v2/lib/python/inspective_package.py csw/mgar/gar/v2/lib/python/package.py Modified: csw/mgar/gar/v2/lib/python/inspective_package.py =================================================================== --- csw/mgar/gar/v2/lib/python/inspective_package.py 2010-12-27 12:26:38 UTC (rev 12096) +++ csw/mgar/gar/v2/lib/python/inspective_package.py 2010-12-27 12:27:10 UTC (rev 12097) @@ -5,6 +5,10 @@ import hachoir_parser as hp import sharedlib_utils import magic +import copy +import common_constants +import subprocess +import ldd_emul """This file isolates code dependent on hachoir parser. Modified: csw/mgar/gar/v2/lib/python/package.py =================================================================== --- csw/mgar/gar/v2/lib/python/package.py 2010-12-27 12:26:38 UTC (rev 12096) +++ csw/mgar/gar/v2/lib/python/package.py 2010-12-27 12:27:10 UTC (rev 12097) @@ -15,6 +15,7 @@ import opencsw import overrides import shell +import pkgmap ADMIN_FILE_CONTENT = """ basedir=default @@ -270,7 +271,7 @@ def GetPkgmap(self, analyze_permissions=False, strip=None): fd = open(os.path.join(self.directory, "pkgmap"), "r") - return opencsw.Pkgmap(fd, analyze_permissions, strip) + return pkgmap.Pkgmap(fd, analyze_permissions, strip) def SetPkginfoEntry(self, key, value): pkginfo = self.GetParsedPkginfo() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:27:35 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:27:35 +0000 Subject: [csw-devel] SF.net SVN: gar:[12098] csw/mgar/gar/v2/lib/python/pylintrc Message-ID: Revision: 12098 http://gar.svn.sourceforge.net/gar/?rev=12098&view=rev Author: wahwah Date: 2010-12-27 12:27:35 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: Adding checkpkg's pylint configuration Added Paths: ----------- csw/mgar/gar/v2/lib/python/pylintrc Added: csw/mgar/gar/v2/lib/python/pylintrc =================================================================== --- csw/mgar/gar/v2/lib/python/pylintrc (rev 0) +++ csw/mgar/gar/v2/lib/python/pylintrc 2010-12-27 12:27:35 UTC (rev 12098) @@ -0,0 +1,241 @@ +# Pylint configuration to be used with the checkpkg Python code. +# +# Defines own regexes for function names, indentation and others. + +[MASTER] + +# Specify a configuration file. +#rcfile= + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Profiled execution. +profile=no + +# Add to the black list. It should be a base name, not a +# path. You may set this option multiple times. +ignore=CVS + +# Pickle collected data for later comparisons. +persistent=yes + +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +load-plugins= + + +[MESSAGES CONTROL] + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time. +#enable= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifier separated by comma (,) or put this option +# multiple time. +#disable= + + +[REPORTS] + +# Set the output format. Available formats are text, parseable, colorized, msvs +# (visual studio) and html +output-format=text + +# Include message's id in output +include-ids=no + +# Put messages in a separate file for each module / package specified on the +# command line instead of printing them on stdout. Reports (if any) will be +# written in a file name "pylint_global.[txt|html]". +files-output=no + +# Tells whether to display a full report or only the messages +reports=yes + +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectively contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (R0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Add a comment according to your evaluation note. This is used by the global +# evaluation report (R0004). +comment=no + + +[BASIC] + +# Required attributes for module, separated by a comma +required-attributes= + +# List of builtins function names that should not be used, separated by a comma +bad-functions=map,filter,apply,input + +# Regular expression which should only match correct module names +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Regular expression which should only match correct module level names +const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Regular expression which should only match correct class names +class-rgx=[A-Z_][a-zA-Z0-9]+$ + +# Regular expression which should only match correct function names +# function-rgx=[A-Z_][a-z0-9_]{2,30}$ +function-rgx=([A-Z][a-z0-9]{2,30})+$ + +# Regular expression which should only match correct method names +method-rgx=([A-Z][a-z0-9]{2,30})+$ + +# Regular expression which should only match correct instance attribute names +attr-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match correct argument names +argument-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match correct variable names +variable-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match correct list comprehension / +# generator expression variable names +inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ + +# Good variable names which should always be accepted, separated by a comma +good-names=i,j,k,ex,Run,_ + +# Bad variable names which should always be refused, separated by a comma +bad-names=foo,bar,baz,toto,tutu,tata + +# Regular expression which should only match functions or classes name which do +# not require a docstring +no-docstring-rgx=__.*__ + + +[FORMAT] + +# Maximum number of characters on a single line. +max-line-length=80 + +# Maximum number of lines in a module +max-module-lines=1000 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME,XXX,TODO + + +[SIMILARITIES] + +# Minimum lines number of a similarity. +min-similarity-lines=4 + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + + +[TYPECHECK] + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# List of classes names for which member attributes should not be checked +# (useful for classes with attributes dynamically set). +ignored-classes=SQLObject + +# When zope mode is activated, add a predefined set of Zope acquired attributes +# to generated-members. +zope=no + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E0201 when accessed. +generated-members=REQUEST,acl_users,aq_parent + + +[VARIABLES] + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# A regular expression matching names used for dummy variables (i.e. not used). +dummy-variables-rgx=_|dummy + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +additional-builtins= + + +[CLASSES] + +# List of interface methods to ignore, separated by a comma. This is used for +# instance to not check methods defines in Zope's Interface base class. +ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__,__new__,setUp + + +[DESIGN] + +# Maximum number of arguments for function / method +max-args=5 + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore +ignored-argument-names=_.* + +# Maximum number of locals for function / method body +max-locals=15 + +# Maximum number of return / yield for function / method body +max-returns=6 + +# Maximum number of branch for function / method body +max-branchs=12 + +# Maximum number of statements in function / method body +max-statements=50 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + + +[IMPORTS] + +# Deprecated modules which should not be used, separated by a comma +deprecated-modules=regsub,string,TERMIOS,Bastion,rexec + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled) +import-graph= + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled) +ext-import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled) +int-import-graph= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 13:28:01 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 12:28:01 +0000 Subject: [csw-devel] SF.net SVN: gar:[12099] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12099 http://gar.svn.sourceforge.net/gar/?rev=12099&view=rev Author: wahwah Date: 2010-12-27 12:28:01 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: New check for base dirs of symlinks When a base directory for a regular file is missing, it's automatically created by pkgadd. However, if the file is a symlink, installation fails. Indicating that base directories are needed for symlinks. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-27 12:27:35 UTC (rev 12098) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-27 12:28:01 UTC (rev 12099) @@ -1152,10 +1152,26 @@ % (pkg_data["basic_stats"]["catalogname"], pkgmap_entry["path"])) + +def CheckSymlinksBaseDirs(pkg_data, error_mgr, logger, messenger): + """If a symlink is in a non-existing directory, installation fails.""" + pkgname = pkg_data["basic_stats"]["pkgname"] + for pkgmap_entry in pkg_data["pkgmap"]: + if "path" not in pkgmap_entry: continue + if not pkgmap_entry["path"]: continue + if pkgmap_entry["type"] == "s": + base_dir = os.path.dirname(pkgmap_entry["path"]) + error_mgr.NeedFile( + base_dir, + "%s provides a symlink %s which needs a base directory: %s." + % (pkgname, repr(pkgmap_entry["path"]), repr(base_dir))) + + def CheckSonameMustNotBeEqualToFileNameIfFilenameEndsWithSo( pkg_data, error_mgr, logger, messenger): pass + def CheckLinkableSoFileMustBeAsymlink( pkg_data, error_mgr, logger, messenger): pass Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-27 12:27:35 UTC (rev 12098) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-27 12:28:01 UTC (rev 12099) @@ -1480,5 +1480,23 @@ self.error_mgr_mock.ReportError('obsolete-dependency', 'CSWlibcups') +class TestCheckSymlinksBaseDirs(CheckpkgUnitTestHelper, + unittest.TestCase): + """Test whether appropriate files are provided.""" + FUNCTION_NAME = 'CheckSymlinksBaseDirs' + + def CheckpkgTest(self): + self.pkg_data = tree_stats[0] + self.pkg_data["pkgmap"].append( + {'class': 'none', + 'group': None, + 'line': '1 s none /opt/csw/lib/libneon.so.27=libneon.so.27.2.0', + 'mode': None, + 'path': '/opt/csw/lib/libneon.so.27', + 'type': 's', + 'user': None}) + self.error_mgr_mock.NeedFile('/opt/csw/lib', mox.IsA(str)) + + if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 14:47:48 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 13:47:48 +0000 Subject: [csw-devel] SF.net SVN: gar:[12100] csw/mgar/gar/v2/lib/python/shell.py Message-ID: Revision: 12100 http://gar.svn.sourceforge.net/gar/?rev=12100&view=rev Author: wahwah Date: 2010-12-27 13:47:48 +0000 (Mon, 27 Dec 2010) Log Message: ----------- checkpkg: More diagnostics for shell commands Displaying stdout and stderr of failed shell commands. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/shell.py Modified: csw/mgar/gar/v2/lib/python/shell.py =================================================================== --- csw/mgar/gar/v2/lib/python/shell.py 2010-12-27 12:28:01 UTC (rev 12099) +++ csw/mgar/gar/v2/lib/python/shell.py 2010-12-27 13:47:48 UTC (rev 12100) @@ -20,5 +20,7 @@ else: retcode = subprocess.call(args) if retcode: + logging.critical(stdout) + logging.critical(stderr) raise Error("Running %s has failed." % repr(args)) return retcode This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 14:48:20 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 13:48:20 +0000 Subject: [csw-devel] SF.net SVN: gar:[12101] csw/mgar/gar/v2/lib/sh/libcheckpkg.sh Message-ID: Revision: 12101 http://gar.svn.sourceforge.net/gar/?rev=12101&view=rev Author: wahwah Date: 2010-12-27 13:48:20 +0000 (Mon, 27 Dec 2010) Log Message: ----------- custom-pkgtrans: counting retries rather than hdr The initial value can be higher than 100, uncoupling the retries number from the initial number of header blocks. Modified Paths: -------------- csw/mgar/gar/v2/lib/sh/libcheckpkg.sh Modified: csw/mgar/gar/v2/lib/sh/libcheckpkg.sh =================================================================== --- csw/mgar/gar/v2/lib/sh/libcheckpkg.sh 2010-12-27 13:47:48 UTC (rev 12100) +++ csw/mgar/gar/v2/lib/sh/libcheckpkg.sh 2010-12-27 13:48:20 UTC (rev 12101) @@ -25,7 +25,9 @@ hdrblks=$(( $hdrblks + 1 )) mkdir $2/$3 + local counter=0 while :; do + echo "Attempting ${hdrblks} offset" # cpio sometimes returns 1, and we don't want to bail out when it happens. dd if="$1" skip="$hdrblks" | (cd $2/$3 ; cpio -ivdm) || true if [[ -d "$2/$3/install" ]]; then @@ -33,8 +35,9 @@ break fi hdrblks=$(( $hdrblks + 1 )) + counter=$(( $counter + 1 )) # To prevent us from going on forever. - if [[ "${hdrblks}" -gt 100 ]]; then + if [[ "${counter}" -gt 100 ]]; then echo "Unpack keeps on being unsuccessful. Bailing out." return 1 fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Mon Dec 27 20:21:41 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Mon, 27 Dec 2010 19:21:41 +0000 Subject: [csw-devel] SF.net SVN: gar:[12102] csw/mgar/pkg/unixodbc/trunk/Makefile Message-ID: Revision: 12102 http://gar.svn.sourceforge.net/gar/?rev=12102&view=rev Author: wahwah Date: 2010-12-27 19:21:41 +0000 (Mon, 27 Dec 2010) Log Message: ----------- unixodbc: Adding overrides for split-off libraries Modified Paths: -------------- csw/mgar/pkg/unixodbc/trunk/Makefile Modified: csw/mgar/pkg/unixodbc/trunk/Makefile =================================================================== --- csw/mgar/pkg/unixodbc/trunk/Makefile 2010-12-27 13:48:20 UTC (rev 12101) +++ csw/mgar/pkg/unixodbc/trunk/Makefile 2010-12-27 19:21:41 UTC (rev 12102) @@ -15,7 +15,7 @@ DISTFILES = $(DISTNAME).tar.gz DISTFILES += cswmigrateconf UFILES_REGEX = $(DL_NAME)-(\d+(?:\.\d+)*).tar.gz -RUNTIME_DEP_PKGS_CSWunixodbc = CSWiconv +RUNTIME_DEP_PKGS_CSWunixodbc += CSWiconv RUNTIME_DEP_PKGS_CSWunixodbc += CSWreadline RUNTIME_DEP_PKGS_CSWunixodbc += CSWlibltdl7 RUNTIME_DEP_PKGS_CSWunixodbc += CSWlibodbcinst1 @@ -31,8 +31,9 @@ PACKAGES += CSWunixodbc SPKG_DESC_CSWunixodbc = $(DESCRIPTION) +CHECKPKG_OVERRIDES_CSWunixodbc += surplus-dependency|CSWlibodbcinst1 +CHECKPKG_OVERRIDES_CSWunixodbc += surplus-dependency|CSWlibodbc1 - PACKAGES += CSWunixodbc-devel CATALOGNAME_CSWunixodbc-devel = unixodbc_devel SPKG_DESC_CSWunixodbc-devel = $(DESCRIPTION), development files This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Dec 27 23:29:50 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 27 Dec 2010 22:29:50 +0000 Subject: [csw-devel] SF.net SVN: gar:[12103] csw/mgar/pkg/pca/trunk Message-ID: Revision: 12103 http://gar.svn.sourceforge.net/gar/?rev=12103&view=rev Author: dmichelsen Date: 2010-12-27 22:29:50 +0000 (Mon, 27 Dec 2010) Log Message: ----------- pca: Update to 20101221-01 Modified Paths: -------------- csw/mgar/pkg/pca/trunk/Makefile csw/mgar/pkg/pca/trunk/checksums Modified: csw/mgar/pkg/pca/trunk/Makefile =================================================================== --- csw/mgar/pkg/pca/trunk/Makefile 2010-12-27 19:21:41 UTC (rev 12102) +++ csw/mgar/pkg/pca/trunk/Makefile 2010-12-27 22:29:50 UTC (rev 12103) @@ -1,5 +1,5 @@ NAME = pca -VERSION = 20101213-01 +VERSION = 20101221-01 CATEGORIES = utils DESCRIPTION = Patch Check Advanced Modified: csw/mgar/pkg/pca/trunk/checksums =================================================================== --- csw/mgar/pkg/pca/trunk/checksums 2010-12-27 19:21:41 UTC (rev 12102) +++ csw/mgar/pkg/pca/trunk/checksums 2010-12-27 22:29:50 UTC (rev 12103) @@ -1 +1 @@ -403d3340251787641fc4c6703a3b629b pca-20101213-01 +efcbedc362454c053201ab8bf7f1572f pca-20101221-01 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Tue Dec 28 14:13:51 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 28 Dec 2010 13:13:51 +0000 Subject: [csw-devel] SF.net SVN: gar:[12104] csw/mgar/gar/v2/lib/python/package_checks.py Message-ID: Revision: 12104 http://gar.svn.sourceforge.net/gar/?rev=12104&view=rev Author: wahwah Date: 2010-12-28 13:13:50 +0000 (Tue, 28 Dec 2010) Log Message: ----------- checkpkg: Disable the symlinks check for now. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-27 22:29:50 UTC (rev 12103) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-28 13:13:50 UTC (rev 12104) @@ -1153,7 +1153,7 @@ pkgmap_entry["path"])) -def CheckSymlinksBaseDirs(pkg_data, error_mgr, logger, messenger): +def disabledCheckSymlinksBaseDirs(pkg_data, error_mgr, logger, messenger): """If a symlink is in a non-existing directory, installation fails.""" pkgname = pkg_data["basic_stats"]["pkgname"] for pkgmap_entry in pkg_data["pkgmap"]: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 28 21:58:44 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 28 Dec 2010 20:58:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[12105] csw/mgar/pkg/libsigsegv/trunk/Makefile Message-ID: Revision: 12105 http://gar.svn.sourceforge.net/gar/?rev=12105&view=rev Author: dmichelsen Date: 2010-12-28 20:58:44 +0000 (Tue, 28 Dec 2010) Log Message: ----------- libsigsegv: Make sure base libraries are included Modified Paths: -------------- csw/mgar/pkg/libsigsegv/trunk/Makefile Modified: csw/mgar/pkg/libsigsegv/trunk/Makefile =================================================================== --- csw/mgar/pkg/libsigsegv/trunk/Makefile 2010-12-28 13:13:50 UTC (rev 12104) +++ csw/mgar/pkg/libsigsegv/trunk/Makefile 2010-12-28 20:58:44 UTC (rev 12105) @@ -58,10 +58,9 @@ MERGE_SCRIPTS_isa-default64-garversion-2.9 = copy-relocated-only MERGE_DIRS_isa-default64-garversion-2.9 = $(bindir) $(sbindir) $(libexecdir) $(libdir) -PKGFILES_CSWlibsigsegv0 += $(call baseisadirs,$(libdir),[^/]*\.so\.0\.[0-9\.]+) -PKGFILES_CSWlibsigsegv2 += $(call baseisadirs,$(libdir),[^/]*\.so\.2\.[0-9\.]+) +PKGFILES_CSWlibsigsegv0 += $(call baseisadirs,$(libdir),[^/]*\.so\.0(\.[0-9\.]+)?) +PKGFILES_CSWlibsigsegv2 += $(call baseisadirs,$(libdir),[^/]*\.so\.2(\.[0-9\.]+)?) PKGFILES_CSWlibsigsegv = NOFILES -PKGFILES_CSWlibsigsegv-devel = $(PKGFILES_DEVEL) +# CSWlibsigsegv-devel is catch-all - include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 00:41:46 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Tue, 28 Dec 2010 23:41:46 +0000 Subject: [csw-devel] SF.net SVN: gar:[12106] csw/mgar/gar/v2/lib/python/package_checks_test.py Message-ID: Revision: 12106 http://gar.svn.sourceforge.net/gar/?rev=12106&view=rev Author: wahwah Date: 2010-12-28 23:41:46 +0000 (Tue, 28 Dec 2010) Log Message: ----------- checkpkg: Mocks specific for indiv/set tests Set tests need to be mocked with a different class than individual package tests. Also, using some mox meta magic to avoid boilerplate code. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-28 20:58:44 UTC (rev 12105) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-28 23:41:46 UTC (rev 12106) @@ -33,6 +33,8 @@ class CheckpkgUnitTestHelper(object): """Wraps common components of checkpkg tests.""" + __metaclass__ = mox.MoxMetaTestBase + def setUp(self): super(CheckpkgUnitTestHelper, self).setUp() self.mox = mox.Mox() @@ -60,7 +62,6 @@ self.error_mgr_mock, self.logger_mock, self.messenger) - self.mox.VerifyAll() class TestMultipleDepends(CheckpkgUnitTestHelper, unittest.TestCase): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:07:38 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:07:38 +0000 Subject: [csw-devel] SF.net SVN: gar:[12107] csw/mgar/gar/v2/lib/python/package_checks_test.py Message-ID: Revision: 12107 http://gar.svn.sourceforge.net/gar/?rev=12107&view=rev Author: wahwah Date: 2010-12-29 00:07:37 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: Removing the MoxMetaTestBase magic And using a more effective way to disable a package. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-28 23:41:46 UTC (rev 12106) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-29 00:07:37 UTC (rev 12107) @@ -33,8 +33,6 @@ class CheckpkgUnitTestHelper(object): """Wraps common components of checkpkg tests.""" - __metaclass__ = mox.MoxMetaTestBase - def setUp(self): super(CheckpkgUnitTestHelper, self).setUp() self.mox = mox.Mox() @@ -62,6 +60,7 @@ self.error_mgr_mock, self.logger_mock, self.messenger) + self.mox.VerifyAll() class TestMultipleDepends(CheckpkgUnitTestHelper, unittest.TestCase): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:08:09 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:08:09 +0000 Subject: [csw-devel] SF.net SVN: gar:[12108] csw/mgar/gar/v2/lib/python/README Message-ID: Revision: 12108 http://gar.svn.sourceforge.net/gar/?rev=12108&view=rev Author: wahwah Date: 2010-12-29 00:08:09 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: An update to the README file Modified Paths: -------------- csw/mgar/gar/v2/lib/python/README Modified: csw/mgar/gar/v2/lib/python/README =================================================================== --- csw/mgar/gar/v2/lib/python/README 2010-12-29 00:07:37 UTC (rev 12107) +++ csw/mgar/gar/v2/lib/python/README 2010-12-29 00:08:09 UTC (rev 12108) @@ -26,6 +26,9 @@ - Sort all list data structures so that it's possible to diff the results of pprint.pprint() and see meaningful results. This will be the new implementation for comparepkg. +- Add fields to the srv4_file_stats table: + - source URL (for grouping by software) + - Description (to search for the word 'transitional') - Don't suggest two packages for the same soname. Also, see ticket list on trac: http://sourceforge.net/apps/trac/gar/report/1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:08:39 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:08:39 +0000 Subject: [csw-devel] SF.net SVN: gar:[12109] csw/mgar/gar/v2/lib/python/pkgmap.py Message-ID: Revision: 12109 http://gar.svn.sourceforge.net/gar/?rev=12109&view=rev Author: wahwah Date: 2010-12-29 00:08:39 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: Separating the pkgmap parsing code Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgmap.py Modified: csw/mgar/gar/v2/lib/python/pkgmap.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgmap.py 2010-12-29 00:08:09 UTC (rev 12108) +++ csw/mgar/gar/v2/lib/python/pkgmap.py 2010-12-29 00:08:39 UTC (rev 12109) @@ -34,57 +34,65 @@ self.analyze_permissions = permissions self.entries = [] self.classes = None + self.strip = strip for line in input: - fields = re.split(r'\s+', line) - if strip: - strip_re = re.compile(r"^%s" % strip) - fields = [re.sub(strip_re, "", x) for x in fields] - line_to_add = None - installed_path = None - prototype_class = None - line_type = fields[1] - mode = None - user = None - group = None - if len(fields) < 2: - continue - elif line_type in ('f', 'd'): - # Files and directories - line_to_add = fields[3] - installed_path = fields[3] - prototype_class = fields[2] - if self.analyze_permissions: - line_to_add += " %s %s %s" % tuple(fields[4:7]) - mode, user, group = fields[4:7] - elif line_type in ('e'): - # Editable files - line_to_add = fields[3] - installed_path = fields[3] - prototype_class = fields[2] - elif line_type in ('s', 'l'): - # soft- and hardlinks - link_from, link_to = fields[3].split("=") - installed_path = link_from - line_to_add = "%s --> %s" % (link_from, link_to) - prototype_class = fields[2] + entry, line_to_add = self._ParseLine(line) + self.entries.append(entry) if line_to_add: self.paths.add(line_to_add) - entry = { - "line": line.strip(), - "type": line_type, - } - entry["path"] = installed_path - entry["class"] = prototype_class - entry["mode"] = mode - entry["user"] = user - entry["group"] = group - self.entries.append(entry) self.entries_by_line = struct_util.IndexDictsBy(self.entries, "line") self.entries_by_type = struct_util.IndexDictsBy(self.entries, "type") self.entries_by_class = struct_util.IndexDictsBy(self.entries, "class") self.entries_by_path = struct_util.IndexDictsBy(self.entries, "path") self.entries = sorted(self.entries, key=lambda x: x["path"]) + def _ParseLine(self, line): + fields = re.split(r'\s+', line) + if self.strip: + strip_re = re.compile(r"^%s" % strip) + fields = [re.sub(strip_re, "", x) for x in fields] + line_to_add = None + installed_path = None + prototype_class = None + line_type = fields[1] + mode = None + user = None + group = None + if len(fields) < 2: + return None + elif line_type in ('f', 'd'): + # Files and directories + line_to_add = fields[3] + installed_path = fields[3] + prototype_class = fields[2] + if self.analyze_permissions: + line_to_add += " %s %s %s" % tuple(fields[4:7]) + mode, user, group = fields[4:7] + elif line_type in ('e'): + # Editable files + line_to_add = fields[3] + installed_path = fields[3] + prototype_class = fields[2] + elif line_type in ('s', 'l'): + # soft- and hardlinks + link_from, link_to = fields[3].split("=") + installed_path = link_from + line_to_add = "%s --> %s" % (link_from, link_to) + prototype_class = fields[2] + if line_to_add: + self.paths.add(line_to_add) + entry = { + "line": line.strip(), + "type": line_type, + } + entry["path"] = installed_path + entry["class"] = prototype_class + entry["mode"] = mode + entry["user"] = user + entry["group"] = group + # entry["target"] = group + return entry, line_to_add + def GetClasses(self): """The assumtion is that the set of classes never changes.""" if not self.classes: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:09:13 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:09:13 +0000 Subject: [csw-devel] SF.net SVN: gar:[12110] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12110 http://gar.svn.sourceforge.net/gar/?rev=12110&view=rev Author: wahwah Date: 2010-12-29 00:09:13 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: Storing link targets When parsing package pkgmaps, calculate link targets and store them in the database. This information can be later used to find dangling symlinks in packages (e.g. libxcb). Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_stats.py csw/mgar/gar/v2/lib/python/pkgmap.py csw/mgar/gar/v2/lib/python/pkgmap_test.py Modified: csw/mgar/gar/v2/lib/python/package_stats.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-29 00:08:39 UTC (rev 12109) +++ csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-29 00:09:13 UTC (rev 12110) @@ -22,7 +22,7 @@ from sqlobject import sqlbuilder -PACKAGE_STATS_VERSION = 9L +PACKAGE_STATS_VERSION = 10L BAD_CONTENT_REGEXES = ( # Slightly obfuscating these by using the default concatenation of # strings. Modified: csw/mgar/gar/v2/lib/python/pkgmap.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgmap.py 2010-12-29 00:08:39 UTC (rev 12109) +++ csw/mgar/gar/v2/lib/python/pkgmap.py 2010-12-29 00:09:13 UTC (rev 12110) @@ -2,6 +2,7 @@ import re import struct_util +import os class Pkgmap(object): """Represents the pkgmap of the package. @@ -58,6 +59,7 @@ mode = None user = None group = None + target = None if len(fields) < 2: return None elif line_type in ('f', 'd'): @@ -78,6 +80,8 @@ link_from, link_to = fields[3].split("=") installed_path = link_from line_to_add = "%s --> %s" % (link_from, link_to) + target = os.path.normpath( + os.path.join(os.path.dirname(link_from), link_to)) prototype_class = fields[2] if line_to_add: self.paths.add(line_to_add) @@ -90,7 +94,7 @@ entry["mode"] = mode entry["user"] = user entry["group"] = group - # entry["target"] = group + entry["target"] = target return entry, line_to_add def GetClasses(self): Modified: csw/mgar/gar/v2/lib/python/pkgmap_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgmap_test.py 2010-12-29 00:08:39 UTC (rev 12109) +++ csw/mgar/gar/v2/lib/python/pkgmap_test.py 2010-12-29 00:09:13 UTC (rev 12110) @@ -37,7 +37,8 @@ 'line': '1 f cswcpsampleconf /etc/opt/csw/cups/cupsd.conf.CSW 0644 root bin 4053 20987 1264420689', 'type': 'f', 'class': 'cswcpsampleconf', - 'mode': '0644' + 'mode': '0644', + 'target': None, } ] self.assertEqual(expected, pm.entries) @@ -60,6 +61,26 @@ paths = [x["path"] for x in pm.entries] self.assertEquals(paths, sorted(paths)) + def test_ParseLineSymlink(self): + pm = pkgmap.Pkgmap(PKGMAP_2.splitlines()) + line = ("1 s none " + "/opt/csw/lib/postgresql/9.0/lib/sparcv9/libpq.so.5=libpq.so.5.3") + # s none /opt/csw/lib/sparcv9/libpq.so.5=..//sparcv9/libpq.so.5 + # s none /opt/csw/lib/sparcv9/libpq.so.5.3=..//sparcv9/libpq.so.5.3 + line_to_add = ("/opt/csw/lib/postgresql/9.0/lib/sparcv9/libpq.so.5 --> " + "libpq.so.5.3") + entry = { + 'group': None, + 'target': '/opt/csw/lib/postgresql/9.0/lib/sparcv9/libpq.so.5.3', + 'user': None, + 'path': '/opt/csw/lib/postgresql/9.0/lib/sparcv9/libpq.so.5', + 'line': ('1 s none /opt/csw/lib/postgresql/9.0/lib/sparcv9/' + 'libpq.so.5=libpq.so.5.3'), + 'type': 's', + 'class': 'none', + 'mode': None, + } + self.assertEqual((entry, line_to_add), pm._ParseLine(line)) if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:09:44 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:09:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[12111] csw/mgar/gar/v2/lib/python/package_checks.py Message-ID: Revision: 12111 http://gar.svn.sourceforge.net/gar/?rev=12111&view=rev Author: wahwah Date: 2010-12-29 00:09:44 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: Eradicate a nest of tabs Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-29 00:09:13 UTC (rev 12110) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-29 00:09:44 UTC (rev 12111) @@ -1160,11 +1160,11 @@ if "path" not in pkgmap_entry: continue if not pkgmap_entry["path"]: continue if pkgmap_entry["type"] == "s": - base_dir = os.path.dirname(pkgmap_entry["path"]) - error_mgr.NeedFile( - base_dir, + base_dir = os.path.dirname(pkgmap_entry["path"]) + error_mgr.NeedFile( + base_dir, "%s provides a symlink %s which needs a base directory: %s." - % (pkgname, repr(pkgmap_entry["path"]), repr(base_dir))) + % (pkgname, repr(pkgmap_entry["path"]), repr(base_dir))) def CheckSonameMustNotBeEqualToFileNameIfFilenameEndsWithSo( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:10:16 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:10:16 +0000 Subject: [csw-devel] SF.net SVN: gar:[12112] csw/mgar/gar/v2/lib/python/pkgdb.py Message-ID: Revision: 12112 http://gar.svn.sourceforge.net/gar/?rev=12112&view=rev Author: wahwah Date: 2010-12-29 00:10:15 +0000 (Wed, 29 Dec 2010) Log Message: ----------- pkgdb: Add 'show filename' support Printing all packages in one line, space separated. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgdb.py Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-29 00:09:44 UTC (rev 12111) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-29 00:10:15 UTC (rev 12112) @@ -48,6 +48,7 @@ %prog gen-html [ ... ] %prog pkg search %prog show basename [options] + %prog show filename [options] %prog show files @@ -513,6 +514,12 @@ arg, options.osrel, options.arch, options.catrel) for file_path in pkgs_by_path: print os.path.join(file_path, arg), ", ".join(pkgs_by_path[file_path]) + elif (command, subcommand) == ('show', 'filename'): + db_catalog = checkpkg_lib.Catalog() + for arg in args: + pkgs = db_catalog.GetPkgByPath( + arg, options.osrel, options.arch, options.catrel) + print " ".join(pkgs) else: raise UsageError("Command unrecognized: %s" % command) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:10:52 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:10:52 +0000 Subject: [csw-devel] SF.net SVN: gar:[12113] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12113 http://gar.svn.sourceforge.net/gar/?rev=12113&view=rev Author: wahwah Date: 2010-12-29 00:10:51 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: Moving functions into a class Functions that process NeedFile() data belong to the CheckpkgManager2 class. Plus new unit tests, written while looking for a bug. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py csw/mgar/gar/v2/lib/python/dependency_checks.py csw/mgar/gar/v2/lib/python/dependency_checks_test.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-29 00:10:15 UTC (rev 12112) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-29 00:10:51 UTC (rev 12113) @@ -25,6 +25,7 @@ import cPickle import dependency_checks from sqlobject import sqlbuilder +import re class Error(Exception): @@ -499,7 +500,7 @@ req_pkgs_reasons_by_pkgname.setdefault(pkgname, []) (missing_deps_reasons_by_pkg, surplus_deps, - missing_dep_groups) = dependency_checks.ReportMissingDependencies( + missing_dep_groups) = self._ReportMissingDependencies( checkpkg_interface, pkgname, declared_deps, req_pkgs_reasons_by_pkgname[pkgname]) namespace = { @@ -527,7 +528,129 @@ if alternatives: messenger.SuggestGarLine("# (end of the list of alternative dependencies)") + def _ReportMissingDependencies(self, + error_mgr, + pkgname, + declared_deps, + req_pkgs_reasons): + """Processes data structures with dependency data and reports errors. + Processes data specific to a single package. + + Args: + error_mgr: SetCheckInterface + pkgname: pkgname, a string + declared_deps: An iterable with declared dependencies + req_pkgs_reasons: Groups of reasons + + data structure: + [ + [ + ("CSWfoo1", "reason"), + ("CSWfoo2", "reason"), + ], + [ + ( ... ), + ] + ] + """ + missing_reasons_by_pkg = {} + for reason_group in req_pkgs_reasons: + for pkg, reason in reason_group: + missing_reasons_by_pkg.setdefault(pkg, []) + if len(missing_reasons_by_pkg[pkg]) < 4: + missing_reasons_by_pkg[pkg].append(reason) + elif len(missing_reasons_by_pkg[pkg]) == 4: + missing_reasons_by_pkg[pkg].append("...and more.") + missing_dep_groups = self._MissingDepsFromReasonGroups( + req_pkgs_reasons, declared_deps) + missing_dep_groups = self._RemovePkgsFromMissing(pkgname, missing_dep_groups) + potential_req_pkgs = set( + (x for x, y in reduce(operator.add, req_pkgs_reasons, []))) + surplus_deps = self._GetSurplusDeps(pkgname, potential_req_pkgs, declared_deps) + # Using an index to avoid duplicated reasons. + missing_deps_reasons_by_pkg = [] + missing_deps_idx = set() + for missing_deps in missing_dep_groups: + error_mgr.ReportErrorForPkgname( + pkgname, "missing-dependency", " or ".join(sorted(missing_deps))) + for missing_dep in missing_deps: + item = (missing_dep, tuple(missing_reasons_by_pkg[missing_dep])) + if item not in missing_deps_idx: + missing_deps_reasons_by_pkg.append(item) + missing_deps_idx.add(item) + for surplus_dep in surplus_deps: + error_mgr.ReportErrorForPkgname(pkgname, "surplus-dependency", surplus_dep) + return missing_deps_reasons_by_pkg, surplus_deps, missing_dep_groups + + def _MissingDepsFromReasonGroups(self, reason_groups, declared_deps_set): + missing_dep_groups = [] + for reason_group in reason_groups: + dependency_fulfilled = False + pkgnames = [x for x, y in reason_group] + for pkgname in pkgnames: + if pkgname in declared_deps_set: + dependency_fulfilled = True + break + if not dependency_fulfilled: + missing_dep_groups.append(pkgnames) + return missing_dep_groups + + def _GetSurplusDeps(self, pkgname, potential_req_pkgs, declared_deps): + logging.debug("GetSurplusDeps(%s, potential_req_pkgs=%s, declared_deps=%s)", + pkgname, declared_deps, potential_req_pkgs) + # Surplus dependencies + # In actual use, there should always be some potential dependencies. + # assert potential_req_pkgs, "There should be some potential deps!" + surplus_deps = declared_deps.difference(potential_req_pkgs) + no_report_surplus = set() + for sp_regex in common_constants.DO_NOT_REPORT_SURPLUS: + for maybe_surplus in surplus_deps: + if re.match(sp_regex, maybe_surplus): + logging.debug( + "GetSurplusDeps(): Not reporting %s as surplus because it matches %s.", + maybe_surplus, sp_regex) + no_report_surplus.add(maybe_surplus) + surplus_deps = surplus_deps.difference(no_report_surplus) + # For some packages (such as dev packages) we don't report surplus deps at + # all. + if surplus_deps: + for regex_str in common_constants.DO_NOT_REPORT_SURPLUS_FOR: + if re.match(regex_str, pkgname): + logging.debug( + "GetSurplusDeps(): Not reporting any surplus because " + "it matches %s", regex_str) + surplus_deps = frozenset() + break + return surplus_deps + + def _RemovePkgsFromMissing(self, pkgname, missing_dep_groups): + "Removes packages from the list of missing deps." + pkgs_to_remove = set() + missing_deps_flat = set(reduce(operator.add, missing_dep_groups, [])) + for regex_str in common_constants.DO_NOT_REPORT_MISSING_RE: + regex = re.compile(regex_str) + for dep_pkgname in missing_deps_flat: + if re.match(regex, dep_pkgname): + pkgs_to_remove.add(dep_pkgname) + + # Some packages might have suggestions to depend on themselves, e.g. + # CSWpython contains .py files, and checkpkg would suggest that it should + # depend on itself, if not for the following two lines of code. + if pkgname in missing_deps_flat: + pkgs_to_remove.add(pkgname) + + logging.debug("Removing %s from the list of missing pkgs.", pkgs_to_remove) + new_missing_dep_groups = set() + for missing_deps_group in missing_dep_groups: + new_missing_deps_group = set() + for dep in missing_deps_group: + if dep not in pkgs_to_remove: + new_missing_deps_group.add(dep) + if new_missing_deps_group: + new_missing_dep_groups.add(frozenset(new_missing_deps_group)) + return new_missing_dep_groups + def GetAllTags(self, stats_obj_list): errors = {} catalog = Catalog() Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-29 00:10:15 UTC (rev 12112) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-29 00:10:51 UTC (rev 12113) @@ -13,6 +13,7 @@ import mox import test_base import cPickle +from testdata import stubs from testdata.neon_stats import pkgstats as neon_stats @@ -126,7 +127,178 @@ '# (end of the list of alternative dependencies)'] self.assertEquals(expected_gar_lines, gar_lines) + def test_ReportDependencies(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + checkpkg_interface_mock = self.mox.CreateMock( + checkpkg_lib.IndividualCheckInterface) + needed_files = [ + ("CSWfoo", "/opt/csw/bin/needed_file", "reason1"), + ] + needed_pkgs = [] + messenger_stub = stubs.MessengerStub() + declared_deps_by_pkgname = { + "CSWfoo": frozenset([ + "CSWbar-1", + "CSWbar-2", + ]), + } + checkpkg_interface_mock.GetPkgByPath('/opt/csw/bin/needed_file').AndReturn( + ["CSWfoo-one", "CSWfoo-two"] + ) + checkpkg_interface_mock.ReportErrorForPkgname( + 'CSWfoo', 'missing-dependency', 'CSWfoo-one or CSWfoo-two') + checkpkg_interface_mock.ReportErrorForPkgname( + 'CSWfoo', 'surplus-dependency', 'CSWbar-2') + checkpkg_interface_mock.ReportErrorForPkgname( + 'CSWfoo', 'surplus-dependency', 'CSWbar-1') + self.mox.ReplayAll() + m._ReportDependencies(checkpkg_interface_mock, + needed_files, + needed_pkgs, + messenger_stub, + declared_deps_by_pkgname) + def testSurplusDeps(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + potential_req_pkgs = set([u"CSWbar"]) + declared_deps = set([u"CSWbar", u"CSWsurplus"]) + expected = set(["CSWsurplus"]) + self.assertEquals( + expected, + m._GetSurplusDeps("CSWfoo", potential_req_pkgs, declared_deps)) + + def testMissingDepsFromReasonGroups(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + reason_groups = [ + [(u"CSWfoo1", ""), + (u"CSWfoo2", "")], + [(u"CSWbar", "")], + ] + declared_deps = set([u"CSWfoo2"]) + expected = [[u"CSWbar"]] + result = m._MissingDepsFromReasonGroups( + reason_groups, declared_deps) + self.assertEqual(expected, result) + + def testMissingDepsFromReasonGroupsTwo(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + reason_groups = [ + [(u"CSWfoo1", "reason 1"), + (u"CSWfoo2", "reason 1")], + [(u"CSWbar", "reason 2")], + ] + declared_deps = set([]) + expected = [[u'CSWfoo1', u'CSWfoo2'], [u'CSWbar']] + result = m._MissingDepsFromReasonGroups( + reason_groups, declared_deps) + self.assertEqual(result, expected) + + def test_RemovePkgsFromMissing(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + missing_dep_groups = [['CSWfoo-one', 'CSWfoo']] + expected = set( + [ + frozenset(['CSWfoo', 'CSWfoo-one']), + ] + ) + result = m._RemovePkgsFromMissing("CSWbaz", missing_dep_groups) + self.assertEqual(expected, result) + + def testReportMissingDependenciesOne(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + error_mgr_mock = self.mox.CreateMock(checkpkg_lib.IndividualCheckInterface) + declared_deps = frozenset([u"CSWfoo"]) + req_pkgs_reasons = [ + [ + (u"CSWfoo", "reason 1"), + (u"CSWfoo-2", "reason 2"), + ], + [ + ("CSWbar", "reason 3"), + ], + ] + error_mgr_mock.ReportErrorForPkgname( + 'CSWexamined', 'missing-dependency', 'CSWbar') + self.mox.ReplayAll() + m._ReportMissingDependencies( + error_mgr_mock, "CSWexamined", declared_deps, req_pkgs_reasons) + + def testReportMissingDependenciesTwo(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + error_mgr_mock = self.mox.CreateMock(checkpkg_lib.IndividualCheckInterface) + declared_deps = frozenset([]) + req_pkgs_reasons = [ + [ + (u"CSWfoo-1", "reason 1"), + (u"CSWfoo-2", "reason 1"), + ], + ] + error_mgr_mock.ReportErrorForPkgname( + 'CSWexamined', 'missing-dependency', u'CSWfoo-1 or CSWfoo-2') + self.mox.ReplayAll() + m._ReportMissingDependencies( + error_mgr_mock, "CSWexamined", declared_deps, req_pkgs_reasons) + + def testReportMissingDependenciesIntegration(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) + checkpkg_interface = checkpkg_lib.IndividualCheckInterface( + "CSWfoo", "AlienOS5.2", "sparkle", "calcified", catalog_mock) + declared_deps_by_pkgname = { + "CSWfoo": frozenset(), + } + declared_deps = frozenset([]) + pkgs_providing_path = ["CSWproviding-%02d" % x for x in range(20)] + catalog_mock.GetPkgByPath( + '/opt/csw/sbin', + 'AlienOS5.2', + 'sparkle', + 'calcified').AndReturn(pkgs_providing_path) + self.mox.ReplayAll() + checkpkg_interface.NeedFile("/opt/csw/sbin", "reason 1") + needed_files = checkpkg_interface.needed_files + needed_pkgs = checkpkg_interface.needed_pkgs + messenger_stub = stubs.MessengerStub() + m._ReportDependencies( + checkpkg_interface, + needed_files, + needed_pkgs, + messenger_stub, + declared_deps_by_pkgname) + self.assertEqual(1, len(checkpkg_interface.errors)) + self.assertEqual( + " or ".join(sorted(pkgs_providing_path)), + checkpkg_interface.errors[0].tag_info) + + def testReportMissingDependenciesSurplus(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + error_mgr_mock = self.mox.CreateMock(checkpkg_lib.IndividualCheckInterface) + declared_deps = frozenset([u"CSWfoo", u"CSWbar", u"CSWsurplus"]) + req_pkgs_reasons = [ + [ + (u"CSWfoo", "reason 1"), + (u"CSWfoo-2", "reason 2"), + ], + [ + ("CSWbar", "reason 3"), + ], + ] + error_mgr_mock.ReportErrorForPkgname( + 'CSWexamined', 'surplus-dependency', u'CSWsurplus') + self.mox.ReplayAll() + m._ReportMissingDependencies( + error_mgr_mock, "CSWexamined", declared_deps, req_pkgs_reasons) + + class CheckpkgManager2DatabaseIntegrationTest( test_base.SqlObjectTestMixin, unittest.TestCase): Modified: csw/mgar/gar/v2/lib/python/dependency_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-29 00:10:15 UTC (rev 12112) +++ csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-29 00:10:51 UTC (rev 12113) @@ -244,19 +244,6 @@ # logger.warning("New paths: %s" % pprint.pformat(pkg_by_path)) return pkg_by_path -def MissingDepsFromReasonGroups(reason_groups, declared_deps_set): - missing_dep_groups = [] - for reason_group in reason_groups: - dependency_fulfilled = False - pkgnames = [x for x, y in reason_group] - for pkgname in pkgnames: - if pkgname in declared_deps_set: - dependency_fulfilled = True - break - if not dependency_fulfilled: - missing_dep_groups.append(pkgnames) - return missing_dep_groups - def SuggestLibraryPackage(error_mgr, messenger, pkgname, catalogname, description, @@ -290,99 +277,4 @@ "# The end of %s definition" % pkgname) -def GetSurplusDeps(pkgname, potential_req_pkgs, declared_deps): - logging.debug("GetSurplusDeps(%s, potential_req_pkgs=%s, declared_deps=%s)", - pkgname, declared_deps, potential_req_pkgs) - # Surplus dependencies - # In actual use, there should always be some potential dependencies. - # assert potential_req_pkgs, "There should be some potential deps!" - surplus_deps = declared_deps.difference(potential_req_pkgs) - no_report_surplus = set() - for sp_regex in common_constants.DO_NOT_REPORT_SURPLUS: - for maybe_surplus in surplus_deps: - if re.match(sp_regex, maybe_surplus): - logging.debug( - "GetSurplusDeps(): Not reporting %s as surplus because it matches %s.", - maybe_surplus, sp_regex) - no_report_surplus.add(maybe_surplus) - surplus_deps = surplus_deps.difference(no_report_surplus) - # For some packages (such as dev packages) we don't report surplus deps at - # all. - if surplus_deps: - for regex_str in common_constants.DO_NOT_REPORT_SURPLUS_FOR: - if re.match(regex_str, pkgname): - logging.debug( - "GetSurplusDeps(): Not reporting any surplus because " - "it matches %s", regex_str) - surplus_deps = frozenset() - break - return surplus_deps - -def ReportMissingDependencies(error_mgr, pkgname, declared_deps, req_pkgs_reasons): - """Processes data structures with dependency data and reports errors. - - Processes data specific to a single package. - - Args: - error_mgr: SetCheckInterface - pkgname: pkgname, a string - declared_deps: An iterable with declared dependencies - req_pkgs_reasons: Groups of reasons - - data structure: - [ - [ - ("CSWfoo1", "reason"), - ("CSWfoo2", "reason"), - ], - [ - ( ... ), - ] - ] - """ - missing_reasons_by_pkg = {} - for reason_group in req_pkgs_reasons: - for pkg, reason in reason_group: - missing_reasons_by_pkg.setdefault(pkg, []) - if len(missing_reasons_by_pkg[pkg]) < 4: - missing_reasons_by_pkg[pkg].append(reason) - elif len(missing_reasons_by_pkg[pkg]) == 4: - missing_reasons_by_pkg[pkg].append("...and more.") - missing_dep_groups = MissingDepsFromReasonGroups( - req_pkgs_reasons, declared_deps) - pkgs_to_remove = set() - for regex_str in common_constants.DO_NOT_REPORT_MISSING_RE: - regex = re.compile(regex_str) - for dep_pkgname in reduce(operator.add, missing_dep_groups, []): - if re.match(regex, dep_pkgname): - pkgs_to_remove.add(dep_pkgname) - if pkgname in reduce(operator.add, missing_dep_groups, []): - pkgs_to_remove.add(pkgname) - logging.debug("Removing %s from the list of missing pkgs.", pkgs_to_remove) - new_missing_dep_groups = set() - for missing_deps in missing_dep_groups: - new_missing_deps = set() - for dep in missing_deps: - if dep not in pkgs_to_remove: - new_missing_deps.add(dep) - if new_missing_deps: - new_missing_dep_groups.add(tuple(new_missing_deps)) - potential_req_pkgs = set( - (x for x, y in reduce(operator.add, req_pkgs_reasons, []))) - missing_dep_groups = new_missing_dep_groups - surplus_deps = GetSurplusDeps(pkgname, potential_req_pkgs, declared_deps) - # Using an index to avoid duplicated reasons. - missing_deps_reasons_by_pkg = [] - missing_deps_idx = set() - for missing_deps in missing_dep_groups: - error_mgr.ReportErrorForPkgname( - pkgname, "missing-dependency", " or ".join(missing_deps)) - for missing_dep in missing_deps: - item = (missing_dep, tuple(missing_reasons_by_pkg[missing_dep])) - if item not in missing_deps_idx: - missing_deps_reasons_by_pkg.append(item) - missing_deps_idx.add(item) - for surplus_dep in surplus_deps: - error_mgr.ReportErrorForPkgname(pkgname, "surplus-dependency", surplus_dep) - return missing_deps_reasons_by_pkg, surplus_deps, missing_dep_groups Modified: csw/mgar/gar/v2/lib/python/dependency_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-29 00:10:15 UTC (rev 12112) +++ csw/mgar/gar/v2/lib/python/dependency_checks_test.py 2010-12-29 00:10:51 UTC (rev 12113) @@ -201,21 +201,6 @@ self.assertEquals(expected, result) -class TestMissingDepsFromReasonGroups(unittest.TestCase): - - def testOne(self): - reason_groups = [ - [(u"CSWfoo1", ""), - (u"CSWfoo2", "")], - [(u"CSWbar", "")], - ] - declared_deps = set([u"CSWfoo2"]) - expected = [[u"CSWbar"]] - result = dependency_checks.MissingDepsFromReasonGroups( - reason_groups, declared_deps) - self.assertEqual(result, expected) - - class TestLibraries(mox.MoxTestBase): def setUp(self): @@ -327,57 +312,5 @@ base_pkgname) -class TestReportMissingDependencies(mox.MoxTestBase): - - def testReportOneError(self): - error_mgr_mock = self.mox.CreateMock(checkpkg_lib.IndividualCheckInterface) - declared_deps = frozenset([u"CSWfoo"]) - req_pkgs_reasons = [ - [ - (u"CSWfoo", "reason 1"), - (u"CSWfoo-2", "reason 2"), - ], - [ - ("CSWbar", "reason 3"), - ], - ] - error_mgr_mock.ReportErrorForPkgname( - 'CSWexamined', 'missing-dependency', 'CSWbar') - self.mox.ReplayAll() - dependency_checks.ReportMissingDependencies( - error_mgr_mock, "CSWexamined", declared_deps, req_pkgs_reasons) - - def testReportSurplus(self): - error_mgr_mock = self.mox.CreateMock(checkpkg_lib.IndividualCheckInterface) - declared_deps = frozenset([u"CSWfoo", u"CSWbar", u"CSWsurplus"]) - req_pkgs_reasons = [ - [ - (u"CSWfoo", "reason 1"), - (u"CSWfoo-2", "reason 2"), - ], - [ - ("CSWbar", "reason 3"), - ], - ] - error_mgr_mock.ReportErrorForPkgname( - 'CSWexamined', 'surplus-dependency', u'CSWsurplus') - self.mox.ReplayAll() - dependency_checks.ReportMissingDependencies( - error_mgr_mock, "CSWexamined", declared_deps, req_pkgs_reasons) - - -class TestReportMissingDependencies(mox.MoxTestBase): - - def testSurplusDeps(self): - potential_req_pkgs = set([u"CSWbar"]) - declared_deps = set([u"CSWbar", u"CSWsurplus"]) - expected = set(["CSWsurplus"]) - self.assertEquals( - expected, - dependency_checks.GetSurplusDeps("CSWfoo", - potential_req_pkgs, - declared_deps)) - - if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:11:22 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:11:22 +0000 Subject: [csw-devel] SF.net SVN: gar:[12114] csw/mgar/gar/v2/lib/python/package_checks.py Message-ID: Revision: 12114 http://gar.svn.sourceforge.net/gar/?rev=12114&view=rev Author: wahwah Date: 2010-12-29 00:11:22 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: Better message for needed symlinks Using "contains" rather than "provides". Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-29 00:10:51 UTC (rev 12113) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-29 00:11:22 UTC (rev 12114) @@ -1163,7 +1163,7 @@ base_dir = os.path.dirname(pkgmap_entry["path"]) error_mgr.NeedFile( base_dir, - "%s provides a symlink %s which needs a base directory: %s." + "%s contains a symlink %s which needs a base directory: %s." % (pkgname, repr(pkgmap_entry["path"]), repr(base_dir))) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:11:54 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:11:54 +0000 Subject: [csw-devel] SF.net SVN: gar:[12115] csw/mgar/gar/v2/lib/python/checkpkg_lib.py Message-ID: Revision: 12115 http://gar.svn.sourceforge.net/gar/?rev=12115&view=rev Author: wahwah Date: 2010-12-29 00:11:53 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: Add more debug messages Adding a debug msg to _ReportMissingDependencies(). Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-29 00:11:22 UTC (rev 12114) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-29 00:11:53 UTC (rev 12115) @@ -554,6 +554,8 @@ ] ] """ + logging.debug("_ReportMissingDependencies(error_mgr, %s, %s, %s)", + pkgname, declared_deps, req_pkgs_reasons) missing_reasons_by_pkg = {} for reason_group in req_pkgs_reasons: for pkg, reason in reason_group: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:12:30 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:12:30 +0000 Subject: [csw-devel] SF.net SVN: gar:[12116] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12116 http://gar.svn.sourceforge.net/gar/?rev=12116&view=rev Author: wahwah Date: 2010-12-29 00:12:30 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: Simulating a catalog with installed pkgs When examining a set of packages, replace file information from the catalog with information from packages under test. Also, satisfy a group dependency (CSWfoo1 or CSWfoo2 or CSWfoo3...) if one of the alternative packages needed is the package under examination. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py csw/mgar/gar/v2/lib/python/dependency_checks.py csw/mgar/gar/v2/lib/python/package_checks_test.py csw/mgar/gar/v2/lib/python/pkgmap_test.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-29 00:11:53 UTC (rev 12115) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-29 00:12:30 UTC (rev 12116) @@ -265,13 +265,28 @@ It wraps access to the catalog database. """ - def __init__(self, osrel, arch, catrel, catalog=None, lines_dict=None): + def __init__(self, osrel, arch, catrel, catalog, pkg_set_files, lines_dict=None): + """ + Args: + osrel: OS release + arch: Architecture + catrel: Catalog release + pkgs_set_files: A dictionary of collections of pairs path / basename + + An example: + { + "CSWfoo": frozenset([ + ("/opt/csw/bin", "foo"), + ... + ]), + "CSWbar": ..., + ... + } + """ self.osrel = osrel self.arch = arch self.catrel = catrel self.catalog = catalog - if not self.catalog: - self.catalog = Catalog() self.common_paths = {} if lines_dict: self.lines_dict = lines_dict @@ -283,6 +298,18 @@ # [('CSWfoo', 'Provides an interpreter of foo'), ... ] self.needed_pkgs = [] self.__errors = [] + # Making an index of files that is easy to look up + self.pkg_set_files = pkg_set_files + self.pkgs_by_file = {} + self.pkgs_by_basename = {} + for pkgname in self.pkg_set_files: + for base_path, base_name in self.pkg_set_files[pkgname]: + full_path = os.path.join(base_path, base_name) + self.pkgs_by_file.setdefault(full_path, set()) + self.pkgs_by_file[full_path].add(pkgname) + self.pkgs_by_basename.setdefault(base_name, {}) + self.pkgs_by_basename[base_name].setdefault(base_path, set()) + self.pkgs_by_basename[base_name][base_path].add(pkgname) def GetErrors(self): return self.__errors @@ -294,19 +321,37 @@ def GetPathsAndPkgnamesByBasename(self, basename): """Proxies calls to class member.""" - return self.catalog.GetPathsAndPkgnamesByBasename( + catalog_paths = self.catalog.GetPathsAndPkgnamesByBasename( basename, self.osrel, self.arch, self.catrel) + paths_and_pkgs = copy.deepcopy(catalog_paths) + # Removing references to packages under test + for catalog_path in paths_and_pkgs: + for pkgname in self.pkg_set_files: + if pkgname in paths_and_pkgs[catalog_path]: + paths_and_pkgs[catalog_path].remove(pkgname) + # Adding files from packages under test + if basename in self.pkgs_by_basename: + for path in self.pkgs_by_basename[basename]: + for pkg in self.pkgs_by_basename[basename][path]: + paths = paths_and_pkgs.setdefault(path, []) + paths.append(pkg) + return paths_and_pkgs + def GetPkgByPath(self, file_path): """Proxies calls to self.system_pkgmap.""" - response = self.catalog.GetPkgByPath( + pkgs_in_catalog = self.catalog.GetPkgByPath( file_path, self.osrel, self.arch, self.catrel) - logging_response = response - if u"CSWcommon" in logging_response: - logging_response = frozenset([u"CSWcommon"]) + # This response comes from catalog; we need to simulate the state the + # catalog would have if the set under test in the catalog. First, we + # remove all packages that are under test. + pkgs = set(pkgs_in_catalog.difference(set(self.pkg_set_files))) + if file_path in self.pkgs_by_file: + for pkg in self.pkgs_by_file[file_path]: + pkgs.add(pkg) logging.debug("GetPkgByPath(%s).AndReturn(%s)" - % (file_path, logging_response)) - return response + % (file_path, pkgs)) + return pkgs def GetInstalledPackages(self): return self.catalog.GetInstalledPackages( @@ -363,8 +408,9 @@ Wraps the creation of tag.CheckpkgTag objects. """ - def __init__(self, pkgname, osrel, arch, catrel, catalog=None): - super(IndividualCheckInterface, self).__init__(osrel, arch, catrel, catalog) + def __init__(self, pkgname, osrel, arch, catrel, catalog, pkg_set_files): + super(IndividualCheckInterface, self).__init__( + osrel, arch, catrel, catalog, pkg_set_files) self.pkgname = pkgname def ReportError(self, tag_name, tag_info=None, msg=None): @@ -385,8 +431,8 @@ class SetCheckInterface(CheckInterfaceBase): """To be passed to set checking functions.""" - def __init__(self, osrel, arch, catrel, catalog=None): - super(SetCheckInterface, self).__init__(osrel, arch, catrel, catalog) + def __init__(self, osrel, arch, catrel, catalog, pkg_set_files): + super(SetCheckInterface, self).__init__(osrel, arch, catrel, catalog, pkg_set_files) def NeedFile(self, pkgname, full_path, reason): "See base class _NeedFile." @@ -565,7 +611,7 @@ elif len(missing_reasons_by_pkg[pkg]) == 4: missing_reasons_by_pkg[pkg].append("...and more.") missing_dep_groups = self._MissingDepsFromReasonGroups( - req_pkgs_reasons, declared_deps) + pkgname, req_pkgs_reasons, declared_deps) missing_dep_groups = self._RemovePkgsFromMissing(pkgname, missing_dep_groups) potential_req_pkgs = set( (x for x, y in reduce(operator.add, req_pkgs_reasons, []))) @@ -585,13 +631,16 @@ error_mgr.ReportErrorForPkgname(pkgname, "surplus-dependency", surplus_dep) return missing_deps_reasons_by_pkg, surplus_deps, missing_dep_groups - def _MissingDepsFromReasonGroups(self, reason_groups, declared_deps_set): + def _MissingDepsFromReasonGroups(self, for_pkgname, reason_groups, declared_deps_set): + """Any package from the group satisfies the dependency.""" missing_dep_groups = [] for reason_group in reason_groups: dependency_fulfilled = False pkgnames = [x for x, y in reason_group] for pkgname in pkgnames: - if pkgname in declared_deps_set: + # If one of the packages suggested is the package under examination, + # consider the dependency satisifed. + if pkgname in declared_deps_set or pkgname == for_pkgname: dependency_fulfilled = True break if not dependency_fulfilled: @@ -669,10 +718,20 @@ needed_pkgs = [] pbar.start() declared_deps_by_pkgname = {} + # Build a map between packages and files: + examined_files_by_pkg = {} for pkg_data in pkgs_data: pkgname = pkg_data["basic_stats"]["pkgname"] + examined_files_by_pkg.setdefault(pkgname, set()) + for entry in pkg_data["pkgmap"]: + if "path" in entry and entry["path"]: + base_path, base_name = os.path.split(entry["path"]) + examined_files_by_pkg[pkgname].add((base_path, base_name)) + # Running individual checks + for pkg_data in pkgs_data: + pkgname = pkg_data["basic_stats"]["pkgname"] check_interface = IndividualCheckInterface( - pkgname, self.osrel, self.arch, self.catrel, catalog) + pkgname, self.osrel, self.arch, self.catrel, catalog, examined_files_by_pkg) for function in self.individual_checks: logger = logging.getLogger("%s-%s" % (pkgname, function.__name__)) logger.debug("Calling %s", function.__name__) @@ -700,7 +759,7 @@ for function in self.set_checks: logger = logging.getLogger(function.__name__) check_interface = SetCheckInterface( - self.osrel, self.arch, self.catrel, catalog) + self.osrel, self.arch, self.catrel, catalog, examined_files_by_pkg) logger.debug("Calling %s", function.__name__) function(pkgs_data, check_interface, logger=logger, messenger=messenger) if check_interface.errors: @@ -708,7 +767,7 @@ needed_files.extend(check_interface.needed_files) needed_pkgs.extend(check_interface.needed_pkgs) check_interface = SetCheckInterface( - self.osrel, self.arch, self.catrel, catalog) + self.osrel, self.arch, self.catrel, catalog, examined_files_by_pkg) self._ReportDependencies(check_interface, needed_files, needed_pkgs, messenger, declared_deps_by_pkgname) errors = self.SetErrorsToDict(check_interface.errors, errors) Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-29 00:11:53 UTC (rev 12115) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib_test.py 2010-12-29 00:12:30 UTC (rev 12116) @@ -61,7 +61,6 @@ use_mock_anything=True) self.mox.StubOutWithMock(checkpkg_lib, 'SetCheckInterface', use_mock_anything=True) - catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) # checkpkg_interface_mock = self.mox.CreateMock( # checkpkg_lib.IndividualCheckInterface) # Throws: @@ -83,7 +82,6 @@ checkpkg_interface_mock.needed_pkgs = [] self.mox.StubOutWithMock(checkpkg_lib, 'Catalog', use_mock_anything=True) - checkpkg_lib.Catalog().AndReturn(catalog_mock) checkpkg_lib.IndividualCheckInterface( 'CSWneon', '5.9', 'sparc', 'unstable', catalog_mock).AndReturn( checkpkg_interface_mock) @@ -159,6 +157,29 @@ messenger_stub, declared_deps_by_pkgname) + def test_ReportDependenciesDirProvidedBySelf(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + checkpkg_interface_mock = self.mox.CreateMock( + checkpkg_lib.IndividualCheckInterface) + needed_files = [ + ("CSWfoo", "/opt/csw/share/man/man1m", "reason1"), + ] + needed_pkgs = [] + messenger_stub = stubs.MessengerStub() + declared_deps_by_pkgname = {"CSWfoo": frozenset()} + checkpkg_interface_mock.GetPkgByPath('/opt/csw/share/man/man1m').AndReturn( + ["CSWfoo", "CSWfoo-one", "CSWfoo-two"] + ) + # Should not report any dependencies; the /opt/csw/share/man/man1m path is + # provided by the package itself. + self.mox.ReplayAll() + m._ReportDependencies(checkpkg_interface_mock, + needed_files, + needed_pkgs, + messenger_stub, + declared_deps_by_pkgname) + def testSurplusDeps(self): m = checkpkg_lib.CheckpkgManager2( "testname", [], "5.9", "sparc", "unstable") @@ -180,7 +201,7 @@ declared_deps = set([u"CSWfoo2"]) expected = [[u"CSWbar"]] result = m._MissingDepsFromReasonGroups( - reason_groups, declared_deps) + "CSWfoo", reason_groups, declared_deps) self.assertEqual(expected, result) def testMissingDepsFromReasonGroupsTwo(self): @@ -194,9 +215,22 @@ declared_deps = set([]) expected = [[u'CSWfoo1', u'CSWfoo2'], [u'CSWbar']] result = m._MissingDepsFromReasonGroups( - reason_groups, declared_deps) + "CSWfoo", reason_groups, declared_deps) self.assertEqual(result, expected) + def testMissingDepsFromReasonGroupsSelf(self): + m = checkpkg_lib.CheckpkgManager2( + "testname", [], "5.9", "sparc", "unstable") + reason_groups = [ + [(u"CSWfoo", "reason 1"), + (u"CSWfoo2", "reason 1")], + ] + declared_deps = set([]) + expected = [] + result = m._MissingDepsFromReasonGroups( + "CSWfoo", reason_groups, declared_deps) + self.assertEqual(result, expected) + def test_RemovePkgsFromMissing(self): m = checkpkg_lib.CheckpkgManager2( "testname", [], "5.9", "sparc", "unstable") @@ -246,7 +280,7 @@ m._ReportMissingDependencies( error_mgr_mock, "CSWexamined", declared_deps, req_pkgs_reasons) - def testReportMissingDependenciesIntegration(self): + def DisabledtestReportMissingDependenciesIntegration(self): m = checkpkg_lib.CheckpkgManager2( "testname", [], "5.9", "sparc", "unstable") catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) @@ -321,13 +355,11 @@ def testNeededFile(self): catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) - self.mox.StubOutWithMock(checkpkg_lib, 'Catalog', use_mock_anything=True) # Test that when you declare a file is needed, the right error # functions are called. - checkpkg_lib.Catalog().AndReturn(catalog_mock) self.mox.ReplayAll() ici = checkpkg_lib.IndividualCheckInterface( - 'CSWfoo', 'AlienOS5.1', 'amd65', 'calcified') + 'CSWfoo', 'AlienOS5.1', 'amd65', 'calcified', catalog_mock, {}) ici.NeedFile("/opt/csw/bin/foo", "Because.") # This might look like encapsulation violation, but I think this is # a reasonable interface to that class. @@ -337,15 +369,63 @@ self.assertEqual("/opt/csw/bin/foo", needed_file.full_path) self.assertEqual("Because.", needed_file.reason) + def testGetPkgByPathSelf(self): + catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) + # Test that when you declare a file is needed, the right error + # functions are called. + pkg_set_files = { + "CSWfoo": frozenset([ + ("/opt/csw", "bin"), + ("/opt/csw/bin", "foo"), + ]), + "CSWbar": frozenset([ + ("/opt/csw/bin", "bar"), + ]), + } + catalog_mock.GetPkgByPath( + '/opt/csw/bin', 'AlienOS5.1', 'amd65', 'calcified').AndReturn(frozenset()) + self.mox.ReplayAll() + ici = checkpkg_lib.IndividualCheckInterface( + 'CSWfoo', 'AlienOS5.1', 'amd65', 'calcified', catalog_mock, pkg_set_files) + pkgs = ici.GetPkgByPath("/opt/csw/bin") + self.assertEqual(frozenset(["CSWfoo"]), pkgs) + + def testGetPathsAndPkgnamesByBasename(self): + catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) + # Test that when you declare a file is needed, the right error + # functions are called. + pkg_set_files = { + "CSWfoo": frozenset([ + ("/opt/csw", "bin"), + ("/opt/csw/bin", "foo"), + ]), + "CSWbar": frozenset([ + ("/opt/csw/bin", "bar"), + ]), + } + in_catalog = { + "/opt/csw/bin": ["CSWbar"], + "/opt/csw/share/unrelated": ["CSWbaz"], + } + catalog_mock.GetPathsAndPkgnamesByBasename( + 'foo', 'AlienOS5.1', 'amd65', 'calcified').AndReturn(in_catalog) + expected = { + "/opt/csw/bin": ["CSWfoo"], + "/opt/csw/share/unrelated": ["CSWbaz"], + } + self.mox.ReplayAll() + ici = checkpkg_lib.IndividualCheckInterface( + 'CSWfoo', 'AlienOS5.1', 'amd65', 'calcified', catalog_mock, pkg_set_files) + paths_and_pkgnames = ici.GetPathsAndPkgnamesByBasename("foo") + self.assertEqual(expected, paths_and_pkgnames) + def testNeededPackage(self): catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) - self.mox.StubOutWithMock(checkpkg_lib, 'Catalog', use_mock_anything=True) # Test that when you declare a file is needed, the right error # functions are called. - checkpkg_lib.Catalog().AndReturn(catalog_mock) self.mox.ReplayAll() ici = checkpkg_lib.IndividualCheckInterface( - 'CSWfoo', 'AlienOS5.1', 'amd65', 'calcified') + 'CSWfoo', 'AlienOS5.1', 'amd65', 'calcified', catalog_mock, {}) ici.NeedPackage("CSWbar", "Because foo needs bar") # This might look like encapsulation violation, but I think this is # a reasonable interface to that class. @@ -360,13 +440,11 @@ def testNeededFile(self): catalog_mock = self.mox.CreateMock(checkpkg_lib.Catalog) - self.mox.StubOutWithMock(checkpkg_lib, 'Catalog', use_mock_anything=True) # Test that when you declare a file is needed, the right error # functions are called. - checkpkg_lib.Catalog().AndReturn(catalog_mock) self.mox.ReplayAll() sci = checkpkg_lib.SetCheckInterface( - 'AlienOS5.1', 'amd65', 'calcified') + 'AlienOS5.1', 'amd65', 'calcified', catalog_mock, {}) sci.NeedFile("CSWfoo", "/opt/csw/bin/foo", "Because.") # This might look like encapsulation violation, but I think this is # a reasonable interface to that class. Modified: csw/mgar/gar/v2/lib/python/dependency_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-29 00:11:53 UTC (rev 12115) +++ csw/mgar/gar/v2/lib/python/dependency_checks.py 2010-12-29 00:12:30 UTC (rev 12116) @@ -275,6 +275,3 @@ % (base_pkgname, pkgname)) messenger.SuggestGarLine( "# The end of %s definition" % pkgname) - - - Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-29 00:11:53 UTC (rev 12115) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-29 00:12:30 UTC (rev 12116) @@ -1483,7 +1483,7 @@ class TestCheckSymlinksBaseDirs(CheckpkgUnitTestHelper, unittest.TestCase): """Test whether appropriate files are provided.""" - FUNCTION_NAME = 'CheckSymlinksBaseDirs' + FUNCTION_NAME = 'disabledCheckSymlinksBaseDirs' def CheckpkgTest(self): self.pkg_data = tree_stats[0] Modified: csw/mgar/gar/v2/lib/python/pkgmap_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgmap_test.py 2010-12-29 00:11:53 UTC (rev 12115) +++ csw/mgar/gar/v2/lib/python/pkgmap_test.py 2010-12-29 00:12:30 UTC (rev 12116) @@ -82,5 +82,6 @@ } self.assertEqual((entry, line_to_add), pm._ParseLine(line)) + if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:13:02 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:13:02 +0000 Subject: [csw-devel] SF.net SVN: gar:[12117] csw/mgar/gar/v2/lib/python/package_checks.py Message-ID: Revision: 12117 http://gar.svn.sourceforge.net/gar/?rev=12117&view=rev Author: wahwah Date: 2010-12-29 00:13:02 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: Enabling the symlink check again Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-29 00:12:30 UTC (rev 12116) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-29 00:13:02 UTC (rev 12117) @@ -1153,7 +1153,7 @@ pkgmap_entry["path"])) -def disabledCheckSymlinksBaseDirs(pkg_data, error_mgr, logger, messenger): +def CheckSymlinksBaseDirs(pkg_data, error_mgr, logger, messenger): """If a symlink is in a non-existing directory, installation fails.""" pkgname = pkg_data["basic_stats"]["pkgname"] for pkgmap_entry in pkg_data["pkgmap"]: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:13:32 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:13:32 +0000 Subject: [csw-devel] SF.net SVN: gar:[12118] csw/mgar/gar/v2/lib/python/checkpkg_lib.py Message-ID: Revision: 12118 http://gar.svn.sourceforge.net/gar/?rev=12118&view=rev Author: wahwah Date: 2010-12-29 00:13:32 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: pprint.pformat for logging It might potentially degrade performance, but I doubt it will make any noticeable difference. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-29 00:13:02 UTC (rev 12117) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-29 00:13:32 UTC (rev 12118) @@ -349,8 +349,12 @@ if file_path in self.pkgs_by_file: for pkg in self.pkgs_by_file[file_path]: pkgs.add(pkg) + if len(pkgs) < 6: + logging_response = pkgs + else: + logging_response = pprint.pformat(pkgs) logging.debug("GetPkgByPath(%s).AndReturn(%s)" - % (file_path, pkgs)) + % (file_path, logging_response)) return pkgs def GetInstalledPackages(self): @@ -601,7 +605,7 @@ ] """ logging.debug("_ReportMissingDependencies(error_mgr, %s, %s, %s)", - pkgname, declared_deps, req_pkgs_reasons) + pkgname, declared_deps, pprint.pformat(req_pkgs_reasons)) missing_reasons_by_pkg = {} for reason_group in req_pkgs_reasons: for pkg, reason in reason_group: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 01:27:37 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 00:27:37 +0000 Subject: [csw-devel] SF.net SVN: gar:[12119] csw/mgar/pkg/cups/trunk/Makefile Message-ID: Revision: 12119 http://gar.svn.sourceforge.net/gar/?rev=12119&view=rev Author: wahwah Date: 2010-12-29 00:27:36 +0000 (Wed, 29 Dec 2010) Log Message: ----------- cups: Installing files in /etc and /var as group lp Fixes #4649. https://www.opencsw.org/mantis/view.php?id=4649 Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2010-12-29 00:13:32 UTC (rev 12118) +++ csw/mgar/pkg/cups/trunk/Makefile 2010-12-29 00:27:36 UTC (rev 12119) @@ -222,47 +222,45 @@ CATALOGNAME_CSWlibcups2 = libcups2 PKGFILES_CSWlibcups2 += $(call baseisadirs,$(libdir),libcups\.so\.2(\.\d+)*) SPKG_DESC_CSWlibcups2 += CUPS libraries, libcups.so.2 +RUNTIME_DEP_PKGS_CSWlibcups2 += CSWosslrt +RUNTIME_DEP_PKGS_CSWlibcups2 += CSWzlib PACKAGES += CSWlibcupscgi1 CATALOGNAME_CSWlibcupscgi1 = libcupscgi1 PKGFILES_CSWlibcupscgi1 += $(call baseisadirs,$(libdir),libcupscgi\.so\.1(\.\d+)*) SPKG_DESC_CSWlibcupscgi1 += CUPS libraries, libcupscgi.so.1 +RUNTIME_DEP_PKGS_CSWlibcupscgi1 += CSWlibcups2 +RUNTIME_DEP_PKGS_CSWlibcupscgi1 += CSWosslrt PACKAGES += CSWlibcupsdriver1 CATALOGNAME_CSWlibcupsdriver1 = libcupsdriver1 PKGFILES_CSWlibcupsdriver1 += $(call baseisadirs,$(libdir),libcupsdriver\.so\.1(\.\d+)*) SPKG_DESC_CSWlibcupsdriver1 += CUPS libraries, libcupsdriver.so.1 +RUNTIME_DEP_PKGS_CSWlibcupsdriver1 += CSWosslrt +RUNTIME_DEP_PKGS_CSWlibcupsdriver1 += CSWlibcups2 PACKAGES += CSWlibcupsimage2 CATALOGNAME_CSWlibcupsimage2 = libcupsimage2 PKGFILES_CSWlibcupsimage2 += $(call baseisadirs,$(libdir),libcupsimage\.so\.2(\.\d+)*) SPKG_DESC_CSWlibcupsimage2 += CUPS libraries, libcupsimage.so.2 +RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWtiff +RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWlibcups2 +RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWpng +RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWosslrt +RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWzlib +RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWjpeg PACKAGES += CSWlibcupsmime1 CATALOGNAME_CSWlibcupsmime1 = libcupsmime1 PKGFILES_CSWlibcupsmime1 += $(call baseisadirs,$(libdir),libcupsmime\.so\.1(\.\d+)*) SPKG_DESC_CSWlibcupsmime1 += CUPS libraries, libcupsmime.so.1 +RUNTIME_DEP_PKGS_CSWlibcupsmime1 += CSWosslrt +RUNTIME_DEP_PKGS_CSWlibcupsmime1 += CSWlibcups2 PACKAGES += CSWlibcupsppdc1 CATALOGNAME_CSWlibcupsppdc1 = libcupsppdc1 PKGFILES_CSWlibcupsppdc1 += $(call baseisadirs,$(libdir),libcupsppdc\.so\.1(\.\d+)*) SPKG_DESC_CSWlibcupsppdc1 += CUPS libraries, libcupsppdc.so.1 - - -RUNTIME_DEP_PKGS_CSWlibcups2 += CSWosslrt -RUNTIME_DEP_PKGS_CSWlibcups2 += CSWzlib -RUNTIME_DEP_PKGS_CSWlibcupsmime1 += CSWosslrt -RUNTIME_DEP_PKGS_CSWlibcupsmime1 += CSWlibcups2 -RUNTIME_DEP_PKGS_CSWlibcupsdriver1 += CSWosslrt -RUNTIME_DEP_PKGS_CSWlibcupsdriver1 += CSWlibcups2 -RUNTIME_DEP_PKGS_CSWlibcupscgi1 += CSWosslrt -RUNTIME_DEP_PKGS_CSWlibcupscgi1 += CSWlibcups2 -RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWtiff -RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWlibcups2 -RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWpng -RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWosslrt -RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWzlib -RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWjpeg RUNTIME_DEP_PKGS_CSWlibcupsppdc1 += CSWosslrt RUNTIME_DEP_PKGS_CSWlibcupsppdc1 += CSWlibcups2 @@ -323,6 +321,14 @@ CHECKPKG_OVERRIDES_CSWcupsd += bad-rpath-entry CHECKPKG_OVERRIDES_CSWlibcups2 += bad-rpath-entry +PROTOTYPE_MODIFIERS = lp_group_etc +PROTOTYPE_FILES_lp_group_etc = $(sysconfdir).* +PROTOTYPE_GROUP_lp_group_etc = lp + +PROTOTYPE_MODIFIERS = lp_group_var +PROTOTYPE_FILES_lp_group_var = $(localstatedir).* +PROTOTYPE_GROUP_lp_group_var = lp + include gar/category.mk post-install-modulated: $(CUPSLINKS_TARGET) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 29 09:36:22 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 29 Dec 2010 08:36:22 +0000 Subject: [csw-devel] SF.net SVN: gar:[12120] csw/mgar/pkg/libsigsegv/trunk/Makefile Message-ID: Revision: 12120 http://gar.svn.sourceforge.net/gar/?rev=12120&view=rev Author: dmichelsen Date: 2010-12-29 08:36:22 +0000 (Wed, 29 Dec 2010) Log Message: ----------- libsigsegv: Make legacy CSWlibsigsegv depend on both .so.0 and .so.2 fixing update of #4501 Modified Paths: -------------- csw/mgar/pkg/libsigsegv/trunk/Makefile Modified: csw/mgar/pkg/libsigsegv/trunk/Makefile =================================================================== --- csw/mgar/pkg/libsigsegv/trunk/Makefile 2010-12-29 00:27:36 UTC (rev 12119) +++ csw/mgar/pkg/libsigsegv/trunk/Makefile 2010-12-29 08:36:22 UTC (rev 12120) @@ -32,12 +32,15 @@ SPKG_DESC_CSWlibsigsegv0 = A library for catching and handling segmentation faults, libsigsegv.so.0 SPKG_DESC_CSWlibsigsegv2 = A library for catching and handling segmentation faults, libsigsegv.so.2 -SPKG_DESC_CSWlibsigsegv = Empty stub as contents has been moved to CSWlibsigsegv0 +SPKG_DESC_CSWlibsigsegv = Empty stub as contents has been moved to CSWlibsigsegv0 and CSWlibsigsegv2 SPKG_DESC_CSWlibsigsegv-devel = Development files for libsigsegv # This is a legacy stub dependency only. Remove after last package to CSWlibsigsegv has been updated. -RUNTIME_DEP_PKGS_CSWlibsigsegv = CSWlibsigsegv0 +# Initially it depended only on CSWlibsigsegv0, but in the meantime updates from the dependent +# packages came out linking to .so.2, so we must now depend on both. +RUNTIME_DEP_PKGS_CSWlibsigsegv = CSWlibsigsegv0 CSWlibsigsegv2 CHECKPKG_OVERRIDES_CSWlibsigsegv += surplus-dependency|CSWlibsigsegv0 +CHECKPKG_OVERRIDES_CSWlibsigsegv += surplus-dependency|CSWlibsigsegv2 ARCHALL_CSWlibsigsegv = 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 29 09:42:44 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 29 Dec 2010 08:42:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[12121] csw/mgar/pkg/libsigsegv/trunk/Makefile Message-ID: Revision: 12121 http://gar.svn.sourceforge.net/gar/?rev=12121&view=rev Author: dmichelsen Date: 2010-12-29 08:42:43 +0000 (Wed, 29 Dec 2010) Log Message: ----------- libsigsegv: Update modulations due to garversion rename Modified Paths: -------------- csw/mgar/pkg/libsigsegv/trunk/Makefile Modified: csw/mgar/pkg/libsigsegv/trunk/Makefile =================================================================== --- csw/mgar/pkg/libsigsegv/trunk/Makefile 2010-12-29 08:36:22 UTC (rev 12120) +++ csw/mgar/pkg/libsigsegv/trunk/Makefile 2010-12-29 08:42:43 UTC (rev 12121) @@ -52,14 +52,14 @@ TEST_TARGET = check -MERGE_SCRIPTS_isa-default-garversion-2.6 = copy-only -MERGE_DIRS_isa-default-garversion-2.6 = $(libdir) -MERGE_SCRIPTS_isa-default64-garversion-2.6 = copy-relocated-only -MERGE_DIRS_isa-default64-garversion-2.6 = $(libdir) +MERGE_SCRIPTS_isa-default-version-2.6 = copy-only +MERGE_DIRS_isa-default-version-2.6 = $(libdir) +MERGE_SCRIPTS_isa-default64-version-2.6 = copy-relocated-only +MERGE_DIRS_isa-default64-version-2.6 = $(libdir) -MERGE_SCRIPTS_isa-default-garversion-2.9 = copy-all -MERGE_SCRIPTS_isa-default64-garversion-2.9 = copy-relocated-only -MERGE_DIRS_isa-default64-garversion-2.9 = $(bindir) $(sbindir) $(libexecdir) $(libdir) +MERGE_SCRIPTS_isa-default-version-2.9 = copy-all +MERGE_SCRIPTS_isa-default64-version-2.9 = copy-relocated-only +MERGE_DIRS_isa-default64-version-2.9 = $(bindir) $(sbindir) $(libexecdir) $(libdir) PKGFILES_CSWlibsigsegv0 += $(call baseisadirs,$(libdir),[^/]*\.so\.0(\.[0-9\.]+)?) PKGFILES_CSWlibsigsegv2 += $(call baseisadirs,$(libdir),[^/]*\.so\.2(\.[0-9\.]+)?) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 29 10:04:25 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 29 Dec 2010 09:04:25 +0000 Subject: [csw-devel] SF.net SVN: gar:[12122] csw/mgar/pkg/parallel/trunk Message-ID: Revision: 12122 http://gar.svn.sourceforge.net/gar/?rev=12122&view=rev Author: dmichelsen Date: 2010-12-29 09:04:25 +0000 (Wed, 29 Dec 2010) Log Message: ----------- parallel: Update to 20101222 Modified Paths: -------------- csw/mgar/pkg/parallel/trunk/Makefile csw/mgar/pkg/parallel/trunk/checksums Removed Paths: ------------- csw/mgar/pkg/parallel/trunk/files/gpl-3.0.txt Modified: csw/mgar/pkg/parallel/trunk/Makefile =================================================================== --- csw/mgar/pkg/parallel/trunk/Makefile 2010-12-29 08:42:43 UTC (rev 12121) +++ csw/mgar/pkg/parallel/trunk/Makefile 2010-12-29 09:04:25 UTC (rev 12122) @@ -1,6 +1,6 @@ # $Id$ NAME = parallel -VERSION = 20100424 +VERSION = 20101222 CATEGORIES = utils DESCRIPTION = Shell tool for executing jobs in parallel @@ -17,13 +17,10 @@ MASTER_SITES = $(GNU_MIRROR) DISTFILES = $(NAME)-$(VERSION).tar.bz2 -DISTFILES += gpl-3.0.txt # File name regex to get notifications about upstream software releases UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.bz2 -LICENSE = gpl-3.0.txt - VENDOR_URL = http://www.gnu.org/software/parallel/ CONFIGURE_ARGS = $(DIRPATHS) @@ -32,4 +29,13 @@ ARCHALL = 1 +# Some idioms are used that the system Perl doesn't have +# (good that they show up during the testsuite run) +RUNTIME_DEP_PKGS = CSWperl +CHECKPKG_OVERRIDES_CSWparallel += surplus-dependency|CSWperl + include gar/category.mk + +post-extract-modulated: + -cd $(WORKSRC)/src && perl -pi -e 's,#!/usr/bin/perl,#!/opt/csw/bin/perl,' niceload parallel sem sql + @$(MAKECOOKIE) Modified: csw/mgar/pkg/parallel/trunk/checksums =================================================================== --- csw/mgar/pkg/parallel/trunk/checksums 2010-12-29 08:42:43 UTC (rev 12121) +++ csw/mgar/pkg/parallel/trunk/checksums 2010-12-29 09:04:25 UTC (rev 12122) @@ -1,2 +1 @@ -d32239bcb673463ab874e80d47fae504 gpl-3.0.txt -7f75ec6bd43768f27aa2667a3f4ce96d parallel-20100424.tar.bz2 +7d531b835fa7ba2975a3d3cdf13aae4c parallel-20101222.tar.bz2 Deleted: csw/mgar/pkg/parallel/trunk/files/gpl-3.0.txt =================================================================== --- csw/mgar/pkg/parallel/trunk/files/gpl-3.0.txt 2010-12-29 08:42:43 UTC (rev 12121) +++ csw/mgar/pkg/parallel/trunk/files/gpl-3.0.txt 2010-12-29 09:04:25 UTC (rev 12122) @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 29 13:06:28 2010 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 29 Dec 2010 12:06:28 +0000 Subject: [csw-devel] SF.net SVN: gar:[12123] csw/mgar/pkg/help2man/trunk Message-ID: Revision: 12123 http://gar.svn.sourceforge.net/gar/?rev=12123&view=rev Author: dmichelsen Date: 2010-12-29 12:06:28 +0000 (Wed, 29 Dec 2010) Log Message: ----------- help2man: Update to 1.38.4 Modified Paths: -------------- csw/mgar/pkg/help2man/trunk/Makefile csw/mgar/pkg/help2man/trunk/checksums Modified: csw/mgar/pkg/help2man/trunk/Makefile =================================================================== --- csw/mgar/pkg/help2man/trunk/Makefile 2010-12-29 09:04:25 UTC (rev 12122) +++ csw/mgar/pkg/help2man/trunk/Makefile 2010-12-29 12:06:28 UTC (rev 12123) @@ -1,5 +1,5 @@ NAME = help2man -VERSION = 1.38.2 +VERSION = 1.38.4 CATEGORIES = devel DESCRIPTION = A tool for automatically generating simple manual pages from program output Modified: csw/mgar/pkg/help2man/trunk/checksums =================================================================== --- csw/mgar/pkg/help2man/trunk/checksums 2010-12-29 09:04:25 UTC (rev 12122) +++ csw/mgar/pkg/help2man/trunk/checksums 2010-12-29 12:06:28 UTC (rev 12123) @@ -1 +1 @@ -426671c6fe79e5ef2233303367eab5a6 help2man-1.38.2.tar.gz +1441847905ca8e6b7d63def44c3be01e help2man-1.38.4.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 21:09:08 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 20:09:08 +0000 Subject: [csw-devel] SF.net SVN: gar:[12124] csw/mgar/gar/v2/lib/python/checkpkg2.py Message-ID: Revision: 12124 http://gar.svn.sourceforge.net/gar/?rev=12124&view=rev Author: wahwah Date: 2010-12-29 20:09:08 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: Progress bar only on a tty To avoid polluting logs when running from cron. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg2.py Modified: csw/mgar/gar/v2/lib/python/checkpkg2.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg2.py 2010-12-29 12:06:28 UTC (rev 12123) +++ csw/mgar/gar/v2/lib/python/checkpkg2.py 2010-12-29 20:09:08 UTC (rev 12124) @@ -134,7 +134,7 @@ options.arch, options.catrel, debug=options.debug, - show_progress=(not options.quiet)) + show_progress=(os.isatty(1) and not options.quiet)) # Running the checks, reporting and exiting. exit_code, screen_report, tags_report = check_manager.Run() screen_report = unicode(screen_report) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 21:09:44 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 20:09:44 +0000 Subject: [csw-devel] SF.net SVN: gar:[12125] csw/mgar/gar/v2/lib/python/checkpkg_lib.py Message-ID: Revision: 12125 http://gar.svn.sourceforge.net/gar/?rev=12125&view=rev Author: wahwah Date: 2010-12-29 20:09:44 +0000 (Wed, 29 Dec 2010) Log Message: ----------- checkpkg: Using pprint.pformat for long lists Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-29 20:09:08 UTC (rev 12124) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-29 20:09:44 UTC (rev 12125) @@ -349,10 +349,7 @@ if file_path in self.pkgs_by_file: for pkg in self.pkgs_by_file[file_path]: pkgs.add(pkg) - if len(pkgs) < 6: - logging_response = pkgs - else: - logging_response = pprint.pformat(pkgs) + logging_response = pprint.pformat(pkgs) logging.debug("GetPkgByPath(%s).AndReturn(%s)" % (file_path, logging_response)) return pkgs This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Wed Dec 29 21:10:15 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Wed, 29 Dec 2010 20:10:15 +0000 Subject: [csw-devel] SF.net SVN: gar:[12126] csw/mgar/gar/v2/lib/sh/db_privileges.sh Message-ID: Revision: 12126 http://gar.svn.sourceforge.net/gar/?rev=12126&view=rev Author: wahwah Date: 2010-12-29 20:10:15 +0000 (Wed, 29 Dec 2010) Log Message: ----------- Database permissions script update Modified Paths: -------------- csw/mgar/gar/v2/lib/sh/db_privileges.sh Modified: csw/mgar/gar/v2/lib/sh/db_privileges.sh =================================================================== --- csw/mgar/gar/v2/lib/sh/db_privileges.sh 2010-12-29 20:09:44 UTC (rev 12125) +++ csw/mgar/gar/v2/lib/sh/db_privileges.sh 2010-12-29 20:10:15 UTC (rev 12126) @@ -17,8 +17,9 @@ exit 1 fi -# Example site_configh.sh: +# Example site_config.sh: # +# DATABASE="..." # DEFAULT_HOST="192.168.0.%" # DBA_USER=dba_user # RELMGR_USER=relmgr_user @@ -57,7 +58,7 @@ } function print_grants { - local dbname=$1 + local dbname="${DATABASE}" local admin_user="${DBA_USER}" local relmgr_user="${RELMGR_USER}" local maintainer_user="${MAINTAINER_USER}" @@ -65,11 +66,13 @@ echo "GRANT ALL PRIVILEGES ON ${dbname}.* TO '${admin_user}'@'localhost';" echo "GRANT SELECT ON ${dbname}.* TO '${relmgr_user}'@'${host}';" echo "GRANT SELECT ON ${dbname}.* TO '${maintainer_user}'@'${host}';" + # Release manager's tables for tbl in "${TABLES_REL_MGR[@]}" \ "${TABLES_REGULAR[@]}" do print_table_grant "${tbl}" "${dbname}" "${relmgr_user}" "${host}" done + # Package maintainer's tables for tbl in "${TABLES_REGULAR[@]}" do print_table_grant "${tbl}" "${dbname}" "${maintainer_user}" "${host}" @@ -88,7 +91,7 @@ } function main { - print_grants "$1" + print_grants } main "$@" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 03:47:56 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 02:47:56 +0000 Subject: [csw-devel] SF.net SVN: gar:[12127] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12127 http://gar.svn.sourceforge.net/gar/?rev=12127&view=rev Author: wahwah Date: 2010-12-30 02:47:56 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: Raise errors when data object is missing Srv4 objects use a separate tables with pickled data structures. It is possible, if the database becomes inconsistent, that a srv4 object is missing the corresponding data object. Detect that early and throw a meaningful error message. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py csw/mgar/gar/v2/lib/python/package_stats.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-29 20:10:15 UTC (rev 12126) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-30 02:47:56 UTC (rev 12127) @@ -202,7 +202,12 @@ # Python strings are already implementing the flyweight pattern. What's # left is lists and dictionaries. i = counter.next() - raw_pkg_data = cPickle.loads(stats_obj.data_obj.pickle) + if stats_obj.data_obj: + raw_pkg_data = cPickle.loads(stats_obj.data_obj.pickle) + else: + raise CatalogDatabaseError( + "%s (%s) is missing the data object." + % (stats_obj.basename, stats_obj.md5_sum)) pkg_data = raw_pkg_data pkgs_data.append(pkg_data) pbar.update(i) Modified: csw/mgar/gar/v2/lib/python/package_stats.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-29 20:10:15 UTC (rev 12126) +++ csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-30 02:47:56 UTC (rev 12127) @@ -39,6 +39,10 @@ pass +class DatabaseError(Error): + pass + + class StdoutSyntaxError(Error): pass @@ -386,7 +390,11 @@ if not self.all_stats: md5_sum = self.GetMd5sum() res = m.Srv4FileStats.select(m.Srv4FileStats.q.md5_sum==md5_sum) - self.all_stats = cPickle.loads(str(res.getOne().data_obj.pickle)) + srv4 = res.getOne() + if not srv4.data_obj: + raise DatabaseError("Could not find the data object for %s (%s)" + % (srv4.basename, md5_sum)) + self.all_stats = cPickle.loads(str(srv4.data_obj.pickle)) return self.all_stats This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 03:48:28 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 02:48:28 +0000 Subject: [csw-devel] SF.net SVN: gar:[12128] csw/mgar/gar/v2/lib/python/checkpkg_lib.py Message-ID: Revision: 12128 http://gar.svn.sourceforge.net/gar/?rev=12128&view=rev Author: wahwah Date: 2010-12-30 02:48:27 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: Log which package satisfies which dep For each reason, display the package that satisfied each dependency. For example, if CSWfoo is needed by CSWbar because of X, log that CSWfoo was chosen to satisfy X. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-30 02:47:56 UTC (rev 12127) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-30 02:48:27 UTC (rev 12128) @@ -642,14 +642,15 @@ missing_dep_groups = [] for reason_group in reason_groups: dependency_fulfilled = False - pkgnames = [x for x, y in reason_group] - for pkgname in pkgnames: + for pkgname, reason in reason_group: # If one of the packages suggested is the package under examination, # consider the dependency satisifed. - if pkgname in declared_deps_set or pkgname == for_pkgname: + if pkgname == for_pkgname or pkgname in declared_deps_set: + logging.debug("%s is satisfied by %s", repr(reason), pkgname) dependency_fulfilled = True break if not dependency_fulfilled: + pkgnames = [x for x, y in reason_group] missing_dep_groups.append(pkgnames) return missing_dep_groups This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 03:48:58 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 02:48:58 +0000 Subject: [csw-devel] SF.net SVN: gar:[12129] csw/mgar/gar/v2/lib/python/models.py Message-ID: Revision: 12129 http://gar.svn.sourceforge.net/gar/?rev=12129&view=rev Author: wahwah Date: 2010-12-30 02:48:58 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: srv4 objs can delete all dependent objs Useful when removing a srv4 object from the database. We'll use it later during garbage collection. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/models.py Modified: csw/mgar/gar/v2/lib/python/models.py =================================================================== --- csw/mgar/gar/v2/lib/python/models.py 2010-12-30 02:48:27 UTC (rev 12128) +++ csw/mgar/gar/v2/lib/python/models.py 2010-12-30 02:48:58 UTC (rev 12129) @@ -120,6 +120,16 @@ files = sqlobject.MultipleJoin('CswFile', joinColumn='id') + def DeleteAllDependentObjects(self): + data_obj = self.data_obj + self.data_obj = None + if data_obj: + # It could be already missing + data_obj.destroySelf() + self.RemoveAllCswFiles() + self.RemoveAllCheckpkgResults() + self.RemoveOverrides() + def RemoveAllCswFiles(self): # Removing existing files, using sqlbuilder to use sql-level # mechanisms without interacting with Python. @@ -152,7 +162,21 @@ CheckpkgErrorTag.q.arch==arch, CheckpkgErrorTag.q.catrel==catrel)))) + def RemoveAllCheckpkgResults(self): + logging.debug("%s: RemoveAllCheckpkgResults()", self) + sqlobject.sqlhub.processConnection.query( + sqlobject.sqlhub.processConnection.sqlrepr(sqlbuilder.Delete( + CheckpkgErrorTag.sqlmeta.table, + CheckpkgErrorTag.q.srv4_file==self))) + def RemoveOverrides(self): + logging.debug("%s: RemoveOverrides()", self) + sqlobject.sqlhub.processConnection.query( + sqlobject.sqlhub.processConnection.sqlrepr(sqlbuilder.Delete( + CheckpkgOverride.sqlmeta.table, + CheckpkgOverride.q.srv4_file==self))) + + class CheckpkgErrorTagMixin(object): def ToGarSyntax(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 03:49:29 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 02:49:29 +0000 Subject: [csw-devel] SF.net SVN: gar:[12130] csw/mgar/gar/v2/lib/python/package_stats.py Message-ID: Revision: 12130 http://gar.svn.sourceforge.net/gar/?rev=12130&view=rev Author: wahwah Date: 2010-12-30 02:49:29 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: Detect missing objects When a data object is missing, act the same way as when the data are out of date: try to reindex. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_stats.py Modified: csw/mgar/gar/v2/lib/python/package_stats.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-30 02:48:58 UTC (rev 12129) +++ csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-30 02:49:29 UTC (rev 12130) @@ -100,7 +100,11 @@ if not pkg_stats: return False if pkg_stats.stats_version != PACKAGE_STATS_VERSION: + pkg_stats.DeleteAllDependentObjects() pkg_stats.destroySelf() + elif pkg_stats.data_obj is None: + pkg_stats.DeleteAllDependentObjects() + pkg_stats.destroySelf() else: return True return False This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 03:49:59 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 02:49:59 +0000 Subject: [csw-devel] SF.net SVN: gar:[12131] csw/mgar/gar/v2/lib/python/package_stats.py Message-ID: Revision: 12131 http://gar.svn.sourceforge.net/gar/?rev=12131&view=rev Author: wahwah Date: 2010-12-30 02:49:59 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: Delete old srv4 objects when saving During SaveStats(), detect a case in which the object is already in the database, and delete it, together with all dependent objects. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_stats.py Modified: csw/mgar/gar/v2/lib/python/package_stats.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-30 02:49:29 UTC (rev 12130) +++ csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-30 02:49:59 UTC (rev 12131) @@ -267,6 +267,16 @@ if "revision_info" in parsed_basename: if "REV" in parsed_basename["revision_info"]: rev = parsed_basename["revision_info"]["REV"] + # If the object already exists in the database, delete it. + md5_sum = pkg_stats["basic_stats"]["md5_sum"] + try: + db_pkg_stats = m.Srv4FileStats.selectBy(md5_sum=md5_sum).getOne() + logging.debug("Destroying %s before saving it again", db_pkg_stats) + db_pkg_stats.DeleteAllDependentObjects() + db_pkg_stats.destroySelf() + except sqlobject.main.SQLObjectNotFound, e: + logging.debug("Package %s not present in the db, proceeding with insert.") + pass # Creating the object in the database. data_obj = m.Srv4FileStatsBlob( pickle=cPickle.dumps(pkg_stats)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 03:50:31 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 02:50:31 +0000 Subject: [csw-devel] SF.net SVN: gar:[12132] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12132 http://gar.svn.sourceforge.net/gar/?rev=12132&view=rev Author: wahwah Date: 2010-12-30 02:50:31 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: Check base dirs for class not-none The 'none' class creates missing directories automatically. All other classes might suffer from missing base directories - report missing base directories as errors. The same goes for symlinks. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-30 02:49:59 UTC (rev 12131) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-30 02:50:31 UTC (rev 12132) @@ -1153,17 +1153,23 @@ pkgmap_entry["path"])) -def CheckSymlinksBaseDirs(pkg_data, error_mgr, logger, messenger): - """If a symlink is in a non-existing directory, installation fails.""" +def CheckBaseDirs(pkg_data, error_mgr, logger, messenger): + """Symlinks and nonstandard class files need base directories + + This cannot be made a general check, because there would be too many false + positives. However, symlinks and nonstandard class files are so prone to + this problem that it makes sense to throw errors if they miss base + directories. + """ pkgname = pkg_data["basic_stats"]["pkgname"] for pkgmap_entry in pkg_data["pkgmap"]: if "path" not in pkgmap_entry: continue if not pkgmap_entry["path"]: continue - if pkgmap_entry["type"] == "s": + if pkgmap_entry["type"] == "s" or pkgmap_entry["class"] != "none": base_dir = os.path.dirname(pkgmap_entry["path"]) error_mgr.NeedFile( base_dir, - "%s contains a symlink %s which needs a base directory: %s." + "%s contains %s which needs a base directory: %s." % (pkgname, repr(pkgmap_entry["path"]), repr(base_dir))) Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-30 02:49:59 UTC (rev 12131) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-30 02:50:31 UTC (rev 12132) @@ -1480,13 +1480,13 @@ self.error_mgr_mock.ReportError('obsolete-dependency', 'CSWlibcups') -class TestCheckSymlinksBaseDirs(CheckpkgUnitTestHelper, - unittest.TestCase): - """Test whether appropriate files are provided.""" - FUNCTION_NAME = 'disabledCheckSymlinksBaseDirs' +class TestCheckBaseDirs(CheckpkgUnitTestHelper, + unittest.TestCase): + """Test whether appropriate base directories are provided.""" + FUNCTION_NAME = 'CheckBaseDirs' def CheckpkgTest(self): - self.pkg_data = tree_stats[0] + self.pkg_data = copy.deepcopy(tree_stats[0]) self.pkg_data["pkgmap"].append( {'class': 'none', 'group': None, @@ -1498,5 +1498,22 @@ self.error_mgr_mock.NeedFile('/opt/csw/lib', mox.IsA(str)) +class TestCheckBaseDirsNotNoneClass(CheckpkgUnitTestHelper, + unittest.TestCase): + FUNCTION_NAME = 'CheckBaseDirs' + + def CheckpkgTest(self): + self.pkg_data = copy.deepcopy(tree_stats[0]) + self.pkg_data["pkgmap"].append( + {'class': 'cswinitsmf', + 'group': None, + 'line': None, + 'mode': None, + 'path': '/etc/opt/csw/init.d/foo', + 'type': 'f', + 'user': None}) + self.error_mgr_mock.NeedFile('/etc/opt/csw/init.d', mox.IsA(str)) + + if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 14:55:16 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 13:55:16 +0000 Subject: [csw-devel] SF.net SVN: gar:[12133] csw/mgar/gar/v2/lib/python/struct_util_test.py Message-ID: Revision: 12133 http://gar.svn.sourceforge.net/gar/?rev=12133&view=rev Author: wahwah Date: 2010-12-30 13:55:16 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: Make struct_util_test.py executable Modified Paths: -------------- csw/mgar/gar/v2/lib/python/struct_util_test.py Property Changed: ---------------- csw/mgar/gar/v2/lib/python/struct_util_test.py Modified: csw/mgar/gar/v2/lib/python/struct_util_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/struct_util_test.py 2010-12-30 02:50:31 UTC (rev 12132) +++ csw/mgar/gar/v2/lib/python/struct_util_test.py 2010-12-30 13:55:16 UTC (rev 12133) @@ -1,3 +1,5 @@ +#!/usr/bin/env python2.6 + import unittest import struct_util Property changes on: csw/mgar/gar/v2/lib/python/struct_util_test.py ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 14:55:50 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 13:55:50 +0000 Subject: [csw-devel] SF.net SVN: gar:[12134] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12134 http://gar.svn.sourceforge.net/gar/?rev=12134&view=rev Author: wahwah Date: 2010-12-30 13:55:50 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: New function: ResolveSymlink Plus a unit test for it. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/struct_util.py csw/mgar/gar/v2/lib/python/struct_util_test.py Modified: csw/mgar/gar/v2/lib/python/struct_util.py =================================================================== --- csw/mgar/gar/v2/lib/python/struct_util.py 2010-12-30 13:55:16 UTC (rev 12133) +++ csw/mgar/gar/v2/lib/python/struct_util.py 2010-12-30 13:55:50 UTC (rev 12134) @@ -1,6 +1,8 @@ """A module for generic data structure processing functions. """ +import os + def IndexDictsBy(list_of_dicts, field_key): """Creates an index of list of dictionaries by a field name. @@ -11,3 +13,9 @@ index.setdefault(d[field_key], []) index[d[field_key]].append(d) return index + + +def ResolveSymlink(link_from, link_to): + target = os.path.normpath( + os.path.join(os.path.dirname(link_from), link_to)) + return target Modified: csw/mgar/gar/v2/lib/python/struct_util_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/struct_util_test.py 2010-12-30 13:55:16 UTC (rev 12133) +++ csw/mgar/gar/v2/lib/python/struct_util_test.py 2010-12-30 13:55:50 UTC (rev 12134) @@ -34,5 +34,18 @@ self.assertEquals(expected, struct_util.IndexDictsBy(list_of_dicts, "a")) +class IndexByUnitTest(unittest.TestCase): + + def testRelative(self): + self.assertEquals( + "/opt/csw/libexec/foo-exec", + struct_util.ResolveSymlink("/opt/csw/bin/foo", "../libexec/foo-exec")) + + def testAsolute(self): + self.assertEquals( + "/libexec/foo-exec", + struct_util.ResolveSymlink("/opt/csw/bin/foo", "/libexec/foo-exec")) + + if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 14:56:21 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 13:56:21 +0000 Subject: [csw-devel] SF.net SVN: gar:[12135] csw/mgar/gar/v2/lib/python/pkgmap.py Message-ID: Revision: 12135 http://gar.svn.sourceforge.net/gar/?rev=12135&view=rev Author: wahwah Date: 2010-12-30 13:56:21 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: Use ResolveSymlink in pkgmap.py Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgmap.py Modified: csw/mgar/gar/v2/lib/python/pkgmap.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgmap.py 2010-12-30 13:55:50 UTC (rev 12134) +++ csw/mgar/gar/v2/lib/python/pkgmap.py 2010-12-30 13:56:21 UTC (rev 12135) @@ -80,8 +80,7 @@ link_from, link_to = fields[3].split("=") installed_path = link_from line_to_add = "%s --> %s" % (link_from, link_to) - target = os.path.normpath( - os.path.join(os.path.dirname(link_from), link_to)) + target = struct_util.ResolveSymlink(link_from, link_to) prototype_class = fields[2] if line_to_add: self.paths.add(line_to_add) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 14:56:54 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 13:56:54 +0000 Subject: [csw-devel] SF.net SVN: gar:[12136] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12136 http://gar.svn.sourceforge.net/gar/?rev=12136&view=rev Author: wahwah Date: 2010-12-30 13:56:53 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: Adding CheckDanglingSymlinks Checks for targets of symlinks. If a package contains a symlink, the target path must either be provided by the package itself, or by its direct dependency. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_checks.py csw/mgar/gar/v2/lib/python/package_checks_test.py Modified: csw/mgar/gar/v2/lib/python/package_checks.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-30 13:56:21 UTC (rev 12135) +++ csw/mgar/gar/v2/lib/python/package_checks.py 2010-12-30 13:56:53 UTC (rev 12136) @@ -1173,6 +1173,18 @@ % (pkgname, repr(pkgmap_entry["path"]), repr(base_dir))) +def CheckDanglingSymlinks(pkg_data, error_mgr, logger, messenger): + pkgname = pkg_data["basic_stats"]["pkgname"] + for pkgmap_entry in pkg_data["pkgmap"]: + if "path" not in pkgmap_entry: continue + if not pkgmap_entry["path"]: continue + if pkgmap_entry["type"] == "s": + error_mgr.NeedFile( + pkgmap_entry["target"], + "%s contains a symlink (%s) which needs the target file: %s." + % (pkgname, repr(pkgmap_entry["path"]), repr(pkgmap_entry["target"]))) + + def CheckSonameMustNotBeEqualToFileNameIfFilenameEndsWithSo( pkg_data, error_mgr, logger, messenger): pass Modified: csw/mgar/gar/v2/lib/python/package_checks_test.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-30 13:56:21 UTC (rev 12135) +++ csw/mgar/gar/v2/lib/python/package_checks_test.py 2010-12-30 13:56:53 UTC (rev 12136) @@ -1515,5 +1515,23 @@ self.error_mgr_mock.NeedFile('/etc/opt/csw/init.d', mox.IsA(str)) +class TestCheckDanglingSymlinks(CheckpkgUnitTestHelper, + unittest.TestCase): + FUNCTION_NAME = 'CheckDanglingSymlinks' + + def CheckpkgTest(self): + self.pkg_data = copy.deepcopy(tree_stats[0]) + self.pkg_data["pkgmap"].append( + {'class': 'none', + 'group': None, + 'line': None, + 'mode': None, + 'path': '/opt/csw/lib/postgresql/9.0/lib/libpq.so.5', + 'type': 's', + 'user': None, + 'target': '/opt/csw/lib/libpq.so.5'}) + self.error_mgr_mock.NeedFile('/opt/csw/lib/libpq.so.5', mox.IsA(str)) + + if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 14:57:24 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 13:57:24 +0000 Subject: [csw-devel] SF.net SVN: gar:[12137] csw/mgar/gar/v2/lib/python/pkgdb.py Message-ID: Revision: 12137 http://gar.svn.sourceforge.net/gar/?rev=12137&view=rev Author: wahwah Date: 2010-12-30 13:57:24 +0000 (Thu, 30 Dec 2010) Log Message: ----------- pkgdb: show cat shouldn't display SUNW packages Modified Paths: -------------- csw/mgar/gar/v2/lib/python/pkgdb.py Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-30 13:56:53 UTC (rev 12136) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-30 13:57:24 UTC (rev 12137) @@ -489,6 +489,7 @@ m.Srv4FileInCatalog.q.osrel==sqo_osrel, m.Srv4FileInCatalog.q.arch==sqo_arch, m.Srv4FileInCatalog.q.catrel==sqo_catrel, + m.Srv4FileStats.q.use_to_generate_catalogs==True, ), join=join, ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 14:57:55 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 13:57:55 +0000 Subject: [csw-devel] SF.net SVN: gar:[12138] csw/mgar/gar/v2/lib/python/checkpkg_lib.py Message-ID: Revision: 12138 http://gar.svn.sourceforge.net/gar/?rev=12138&view=rev Author: wahwah Date: 2010-12-30 13:57:55 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: Don't truncate reasons list It might lead to large outputs, but completeness is important. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-30 13:57:24 UTC (rev 12137) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2010-12-30 13:57:55 UTC (rev 12138) @@ -612,10 +612,7 @@ for reason_group in req_pkgs_reasons: for pkg, reason in reason_group: missing_reasons_by_pkg.setdefault(pkg, []) - if len(missing_reasons_by_pkg[pkg]) < 4: - missing_reasons_by_pkg[pkg].append(reason) - elif len(missing_reasons_by_pkg[pkg]) == 4: - missing_reasons_by_pkg[pkg].append("...and more.") + missing_reasons_by_pkg[pkg].append(reason) missing_dep_groups = self._MissingDepsFromReasonGroups( pkgname, req_pkgs_reasons, declared_deps) missing_dep_groups = self._RemovePkgsFromMissing(pkgname, missing_dep_groups) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 14:58:28 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 13:58:28 +0000 Subject: [csw-devel] SF.net SVN: gar:[12139] csw/mgar/gar/v2/lib/python Message-ID: Revision: 12139 http://gar.svn.sourceforge.net/gar/?rev=12139&view=rev Author: wahwah Date: 2010-12-30 13:58:28 +0000 (Thu, 30 Dec 2010) Log Message: ----------- checkpkg: Don't destroy srv4_file_stats objects It leads to issues: When a srv4_file_stats object is destroyed, it leads to inconsistencies in catalogs. Instead, preserve the old object (and its ID) and update the contsnts. Modified Paths: -------------- csw/mgar/gar/v2/lib/python/package_stats.py csw/mgar/gar/v2/lib/python/pkgdb.py Modified: csw/mgar/gar/v2/lib/python/package_stats.py =================================================================== --- csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-30 13:57:55 UTC (rev 12138) +++ csw/mgar/gar/v2/lib/python/package_stats.py 2010-12-30 13:58:28 UTC (rev 12139) @@ -100,11 +100,9 @@ if not pkg_stats: return False if pkg_stats.stats_version != PACKAGE_STATS_VERSION: - pkg_stats.DeleteAllDependentObjects() - pkg_stats.destroySelf() + return False elif pkg_stats.data_obj is None: - pkg_stats.DeleteAllDependentObjects() - pkg_stats.destroySelf() + return False else: return True return False @@ -269,35 +267,59 @@ rev = parsed_basename["revision_info"]["REV"] # If the object already exists in the database, delete it. md5_sum = pkg_stats["basic_stats"]["md5_sum"] + db_pkg_stats = None try: db_pkg_stats = m.Srv4FileStats.selectBy(md5_sum=md5_sum).getOne() - logging.debug("Destroying %s before saving it again", db_pkg_stats) + logging.debug("Cleaning %s before saving it again", db_pkg_stats) db_pkg_stats.DeleteAllDependentObjects() - db_pkg_stats.destroySelf() except sqlobject.main.SQLObjectNotFound, e: logging.debug("Package %s not present in the db, proceeding with insert.") pass # Creating the object in the database. data_obj = m.Srv4FileStatsBlob( pickle=cPickle.dumps(pkg_stats)) - db_pkg_stats = m.Srv4FileStats( - arch=arch, - basename=pkg_stats["basic_stats"]["pkg_basename"], - catalogname=pkg_stats["basic_stats"]["catalogname"], - data_obj=data_obj, - use_to_generate_catalogs=True, - filename_arch=filename_arch, - latest=True, - maintainer=maintainer, - md5_sum=pkg_stats["basic_stats"]["md5_sum"], - size=pkg_stats["basic_stats"]["size"], - mtime=pkg_stats["mtime"], - os_rel=os_rel, - pkginst=pkginst, - registered=register, - rev=rev, - stats_version=PACKAGE_STATS_VERSION, - version_string=parsed_basename["full_version_string"]) + if db_pkg_stats: + # If the database row exists already, update it. + # + # Assigning properties one by one isn't pretty, but I don't have + # a better way of doing it. Ideally, both creation and update would be + # driven by the same data structure. + db_pkg_stats.arch = arch + db_pkg_stats.basename = pkg_stats["basic_stats"]["pkg_basename"] + db_pkg_stats.catalogname = pkg_stats["basic_stats"]["catalogname"] + db_pkg_stats.data_obj = data_obj + db_pkg_stats.use_to_generate_catalogs = True + db_pkg_stats.filename_arch = filename_arch + db_pkg_stats.latest = True + db_pkg_stats.maintainer = maintainer + db_pkg_stats.md5_sum = pkg_stats["basic_stats"]["md5_sum"] + db_pkg_stats.size = pkg_stats["basic_stats"]["size"] + db_pkg_stats.mtime = pkg_stats["mtime"] + db_pkg_stats.os_rel = os_rel + db_pkg_stats.pkginst = pkginst + db_pkg_stats.registered = register + db_pkg_stats.rev = rev + db_pkg_stats.stats_version = PACKAGE_STATS_VERSION + db_pkg_stats.version_string = parsed_basename["full_version_string"] + else: + db_pkg_stats = m.Srv4FileStats( + arch=arch, + basename=pkg_stats["basic_stats"]["pkg_basename"], + catalogname=pkg_stats["basic_stats"]["catalogname"], + data_obj=data_obj, + use_to_generate_catalogs=True, + filename_arch=filename_arch, + latest=True, + maintainer=maintainer, + md5_sum=pkg_stats["basic_stats"]["md5_sum"], + size=pkg_stats["basic_stats"]["size"], + mtime=pkg_stats["mtime"], + os_rel=os_rel, + pkginst=pkginst, + registered=register, + rev=rev, + stats_version=PACKAGE_STATS_VERSION, + version_string=parsed_basename["full_version_string"]) # Inserting overrides as rows into the database for override_dict in pkg_stats["overrides"]: o = m.CheckpkgOverride(srv4_file=db_pkg_stats, Modified: csw/mgar/gar/v2/lib/python/pkgdb.py =================================================================== --- csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-30 13:57:55 UTC (rev 12138) +++ csw/mgar/gar/v2/lib/python/pkgdb.py 2010-12-30 13:58:28 UTC (rev 12139) @@ -237,8 +237,15 @@ m.Srv4FileInCatalog.q.catrel==sqo_catrel)) db_srv4s_in_cat_by_md5 = {} for srv4_in_cat in res: - if srv4_in_cat.srv4file.use_to_generate_catalogs: - db_srv4s_in_cat_by_md5[srv4_in_cat.srv4file.md5_sum] = srv4_in_cat + try: + srv4 = srv4_in_cat.srv4file + if srv4.use_to_generate_catalogs: + db_srv4s_in_cat_by_md5[srv4.md5_sum] = srv4_in_cat + except sqlobject.main.SQLObjectNotFound, e: + logging.warning("Could not retrieve a srv4 file from the db: %s", e) + # Since the srv4_in_cat object has lost its reference, there's no use + # keeping it around. + srv4_in_cat.destroySelf() disk_md5s = set(cat_entry_by_md5) db_md5s = set(db_srv4s_in_cat_by_md5) # - match the md5 sum lists between db and disk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Thu Dec 30 18:45:48 2010 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Thu, 30 Dec 2010 17:45:48 +0000 Subject: [csw-devel] SF.net SVN: gar:[12140] csw/mgar/pkg/freedesktop/xcbproto/trunk/Makefile Message-ID: Revision: 12140 http://gar.svn.sourceforge.net/gar/?rev=12140&view=rev Author: wahwah Date: 2010-12-30 17:45:48 +0000 (Thu, 30 Dec 2010) Log Message: ----------- xcbproto: Rebuild in /opt/csw Modified Paths: -------------- csw/mgar/pkg/freedesktop/xcbproto/trunk/Makefile Modified: csw/mgar/pkg/freedesktop/xcbproto/trunk/Makefile =================================================================== --- csw/mgar/pkg/freedesktop/xcbproto/trunk/Makefile 2010-12-30 13:58:28 UTC (rev 12139) +++ csw/mgar/pkg/freedesktop/xcbproto/trunk/Makefile 2010-12-30 17:45:48 UTC (rev 12140) @@ -1,7 +1,7 @@ # $Id$ VERSION = 1.6 -CATEGORIES = x11 +CATEGORIES = lib PROTONAME = xcb-proto NAME = $(PROTONAME) DISTNAME = $(PROTONAME)-$(VERSION) @@ -27,7 +27,7 @@ used by Python code generators in individual language bindings. endef -MASTER_SITES = $(XCB_MASTER_SITES) +MASTER_SITES = http://xcb.freedesktop.org/dist/ DISTFILES = $(DISTNAME).tar.gz PACKAGES = CSWxcbproto CSWpyxcbproto @@ -55,13 +55,11 @@ PKGFILES_CSWpyxcbproto = .*\.py ARCHALL_CSWpyxcbproto = 1 -include gar/category.mk +CHECKPKG_OVERRIDES_CSWpyxcbproto += surplus-dependency|CSWxcbproto +CHECKPKG_OVERRIDES_CSWxcbproto += surplus-dependency|CSWx11common +CHECKPKG_OVERRIDES_CSWpyxcbproto += pkgname-does-not-start-with-CSWpy- -# This bit is probably somewhat objectionable, but it gets the job done. -post-merge: - ginstall -m 755 -d $(PKGROOT)/opt/csw/lib - if [ -d $(PKGROOT)$(prefix)/lib/python ]; then \ - gmv -v $(PKGROOT)$(prefix)/lib/python $(PKGROOT)/opt/csw/lib; \ - fi - grm -fv $(PKGROOT)/opt/csw/lib/python/site-packages/xcbgen/*.py[co] - @$(MAKECOOKIE) +TEST_TARGET = check +EXTRA_MERGE_EXCLUDE_FILES = .*.py[co] + +include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wbonnet at users.sourceforge.net Thu Dec 30 23:21:59 2010 From: wbonnet at users.sourceforge.net (wbonnet at users.sourceforge.net) Date: Thu, 30 Dec 2010 22:21:59 +0000 Subject: [csw-devel] SF.net SVN: gar:[12141] csw/mgar/gar/v2-uwatch2/ Message-ID: Revision: 12141 http://gar.svn.sourceforge.net/gar/?rev=12141&view=rev Author: wbonnet Date: 2010-12-30 22:21:59 +0000 (Thu, 30 Dec 2010) Log Message: ----------- Create uwatch 2 branch Added Paths: ----------- csw/mgar/gar/v2-uwatch2/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.