[csw-devel] SF.net SVN: gar:[8037] csw/mgar/pkg/subversion/trunk

skayser at users.sourceforge.net skayser at users.sourceforge.net
Sun Jan 17 02:59:18 CET 2010


Revision: 8037
          http://gar.svn.sourceforge.net/gar/?rev=8037&view=rev
Author:   skayser
Date:     2010-01-17 01:59:18 +0000 (Sun, 17 Jan 2010)

Log Message:
-----------
subversion: tidied up and commented Makefile, removed obsolete deps, also fixes #4096

Modified Paths:
--------------
    csw/mgar/pkg/subversion/trunk/Makefile

Added Paths:
-----------
    csw/mgar/pkg/subversion/trunk/files/changelog.CSW

Modified: csw/mgar/pkg/subversion/trunk/Makefile
===================================================================
--- csw/mgar/pkg/subversion/trunk/Makefile	2010-01-16 22:15:24 UTC (rev 8036)
+++ csw/mgar/pkg/subversion/trunk/Makefile	2010-01-17 01:59:18 UTC (rev 8037)
@@ -1,6 +1,14 @@
+# TODO (release-critical prefixed with !, non release-critical with *)
+#
+# * How about shipping a changelog.CSW (example in files/)?
+# * The language binding packages all have a whole stack of dependencies
+#   (mostly the same libs that the main svn package has). Are those really
+#   required? The shared objects generated by SWIG have them in their NEEDED
+#   list, but they also link against the main libsvn_client-1.so which in
+#   turn pulls in the rest. Can this be tweaked?
+#
 GARNAME = subversion
-DISTVERSION = 1.6.6
-GARVERSION = $(subst -,,$(DISTVERSION))
+GARVERSION = 1.6.6
 CATEGORIES = utils
 
 DESCRIPTION = Version control rethought
@@ -9,66 +17,94 @@
     that is a compelling replacement for CVS in the open source community.
 endef
 
-# Vendor site
-SPKG_SOURCEURL = http://subversion.tigris.org/
-
-# Release site
+VENDOR_URL   = http://subversion.tigris.org/
 MASTER_SITES = http://subversion.tigris.org/downloads/
-
-DISTFILES  = $(GARNAME)-$(DISTVERSION).tar.bz2
-
-# We define upstream file regex so we can be notifed of 
-# new upstream software release
+DISTFILES    = $(GARNAME)-$(GARVERSION).tar.bz2
 UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.bz2
 
-EXTRA_LIB = $(SVNLIB) $(prefix)/apache2/lib
-EXTRA_INC = $(prefix)/apache2/include
-
-WORKSRC = $(WORKDIR)/$(GARNAME)-$(DISTVERSION)
-
 PACKAGES  = CSWsvn CSWsvn-devel CSWap2svn CSWpmsvn
 PACKAGES += CSWpythonsvn CSWrbsvn CSWjavasvn
-ARCHALL_CSWsvn-devel = 1
 
 SPKG_DESC_CSWsvn           = Version control rethought
 CATALOGNAME_CSWsvn         = subversion
-REQUIRED_PKGS_CSWsvn       = CSWapache2rt CSWbdb47 CSWexpat CSWggettextrt
-REQUIRED_PKGS_CSWsvn      += CSWiconv CSWkrb5lib CSWlibnet CSWneon CSWoldaprt
-REQUIRED_PKGS_CSWsvn      += CSWosslrt CSWsasl CSWzlib CSWsqlite3rt
+REQUIRED_PKGS_CSWsvn       = CSWapache2rt
+REQUIRED_PKGS_CSWsvn      += CSWbdb47
+REQUIRED_PKGS_CSWsvn      += CSWexpat
+REQUIRED_PKGS_CSWsvn      += CSWggettextrt
+REQUIRED_PKGS_CSWsvn      += CSWiconv
+REQUIRED_PKGS_CSWsvn      += CSWneon
+REQUIRED_PKGS_CSWsvn      += CSWoldaprt
+REQUIRED_PKGS_CSWsvn      += CSWsasl
+REQUIRED_PKGS_CSWsvn      += CSWsqlite3rt
+REQUIRED_PKGS_CSWsvn      += CSWzlib
+# There are additional requirements for $(docdir)/subversion/tools/ which
+# also contains the stack of hook-scripts. Should we add those?
+#REQUIRED_PKGS_CSWsvn      += CSWperl
+#REQUIRED_PKGS_CSWsvn      += CSWpython
+#REQUIRED_PKGS_CSWsvn      += CSWruby
+
 SPKG_DESC_CSWsvn-devel     = Subversion Development Support
 CATALOGNAME_CSWsvn-devel   = subversion_devel
 REQUIRED_PKGS_CSWsvn-devel = CSWsvn
+ARCHALL_CSWsvn-devel       = 1
+PKGFILES_CSWsvn-devel      = $(PKGFILES_DEVEL)
+
 SPKG_DESC_CSWap2svn        = Subversion Modules for Apache 2.2
 CATALOGNAME_CSWap2svn      = ap2_subversion
-REQUIRED_PKGS_CSWap2svn    = CSWsvn CSWggettextrt CSWiconv
+REQUIRED_PKGS_CSWap2svn    = CSWsvn
+REQUIRED_PKGS_CSWap2svn   += CSWggettextrt
+REQUIRED_PKGS_CSWap2svn   += CSWiconv
+PKGFILES_CSWap2svn         = $(prefix)/apache2.*
+
 SPKG_DESC_CSWjavasvn       = Subversion Java Language Binding
 CATALOGNAME_CSWjavasvn     = javasvn
-REQUIRED_PKGS_CSWjavasvn   = CSWsvn CSWapache2rt CSWneon CSWoldaprt
-REQUIRED_PKGS_CSWjavasvn  += CSWbdb47 CSWexpat CSWggettextrt CSWiconv 
+REQUIRED_PKGS_CSWjavasvn   = CSWsvn
+REQUIRED_PKGS_CSWjavasvn  += CSWapache2rt
+REQUIRED_PKGS_CSWjavasvn  += CSWexpat
+REQUIRED_PKGS_CSWjavasvn  += CSWggettextrt
+REQUIRED_PKGS_CSWjavasvn  += CSWiconv
+REQUIRED_PKGS_CSWjavasvn  += CSWneon
+REQUIRED_PKGS_CSWjavasvn  += CSWoldaprt
+PKGFILES_CSWjavasvn        = $(SVNLIB)/.*java.*
+
 SPKG_DESC_CSWpmsvn         = Subversion Perl Language Binding
 CATALOGNAME_CSWpmsvn       = pm_subversion
-REQUIRED_PKGS_CSWpmsvn     = CSWsvn CSWperl CSWapache2rt CSWbdb47 CSWexpat 
-REQUIRED_PKGS_CSWpmsvn    += CSWggettextrt CSWiconv CSWoldaprt
-SPKG_DESC_CSWpythonsvn         = Subversion Python Language Binding
-CATALOGNAME_CSWpythonsvn       = pythonsvn
-REQUIRED_PKGS_CSWpythonsvn     = CSWsvn CSWpython CSWapache2rt CSWbdb47 CSWexpat 
-REQUIRED_PKGS_CSWpythonsvn    += CSWggettextrt CSWiconv CSWoldaprt
+REQUIRED_PKGS_CSWpmsvn     = CSWsvn
+REQUIRED_PKGS_CSWpmsvn    += CSWperl
+REQUIRED_PKGS_CSWpmsvn    += CSWapache2rt
+REQUIRED_PKGS_CSWpmsvn    += CSWexpat
+REQUIRED_PKGS_CSWpmsvn    += CSWggettextrt
+REQUIRED_PKGS_CSWpmsvn    += CSWiconv
+REQUIRED_PKGS_CSWpmsvn    += CSWoldaprt
+PKGFILES_CSWpmsvn          = $(libdir)/perl.*
+PKGFILES_CSWpmsvn         += $(SVNLIB)/.*perl.*
+PKGFILES_CSWpmsvn         += $(mandir)/.*swig_perl.*
+
 SPKG_DESC_CSWrbsvn         = Subversion Ruby Language Binding
 CATALOGNAME_CSWrbsvn       = rbsvn
-REQUIRED_PKGS_CSWrbsvn     = CSWsvn CSWruby CSWiconv CSWoldaprt
-REQUIRED_PKGS_CSWrbsvn    += CSWapache2rt CSWbdb47 CSWexpat CSWggettextrt 
+REQUIRED_PKGS_CSWrbsvn     = CSWsvn
+REQUIRED_PKGS_CSWrbsvn    += CSWruby
+REQUIRED_PKGS_CSWrbsvn    += CSWapache2rt
+REQUIRED_PKGS_CSWrbsvn    += CSWexpat
+REQUIRED_PKGS_CSWrbsvn    += CSWggettextrt
+REQUIRED_PKGS_CSWrbsvn    += CSWiconv
+REQUIRED_PKGS_CSWrbsvn    += CSWoldaprt
+PKGFILES_CSWrbsvn          = $(libdir)/ruby.*
+PKGFILES_CSWrbsvn         += $(SVNLIB)/.*swig_ruby.*
 
-PKGFILES_CSWsvn-devel = $(PKGFILES_DEVEL)
-PKGFILES_CSWap2svn    = $(prefix)/apache2.*
-PKGFILES_CSWjavasvn   = $(SVNLIB)/.*java.*
-PKGFILES_CSWpmsvn     = $(libdir)/perl.*
-PKGFILES_CSWpmsvn    += $(SVNLIB)/.*perl.*
-PKGFILES_CSWpmsvn    += $(mandir)/.*swig_perl.*
-PKGFILES_CSWpythonsvn     = $(libdir)/python.*
-PKGFILES_CSWpythonsvn    += $(SVNLIB)/.*swig_py.*
-PKGFILES_CSWrbsvn     = $(libdir)/ruby.*
-PKGFILES_CSWrbsvn    += $(SVNLIB)/.*swig_ruby.*
+SPKG_DESC_CSWpythonsvn       = Subversion Python Language Binding
+CATALOGNAME_CSWpythonsvn     = pythonsvn
+REQUIRED_PKGS_CSWpythonsvn   = CSWsvn
+REQUIRED_PKGS_CSWpythonsvn  += CSWpython
+REQUIRED_PKGS_CSWpythonsvn  += CSWapache2rt
+REQUIRED_PKGS_CSWpythonsvn  += CSWexpat
+REQUIRED_PKGS_CSWpythonsvn  += CSWggettextrt
+REQUIRED_PKGS_CSWpythonsvn  += CSWiconv
+REQUIRED_PKGS_CSWpythonsvn  += CSWoldaprt
+PKGFILES_CSWpythonsvn        = $(libdir)/python.*
+PKGFILES_CSWpythonsvn       += $(SVNLIB)/.*swig_py.*
 
+
 DISTFILES += CSWsvn.checkinstall
 DISTFILES += CSWap2svn.postinstall CSWap2svn.preremove
 DISTFILES += httpd-svn.conf.CSW svn_access.conf.CSW
@@ -80,10 +116,9 @@
 PATCHFILES += subversion161.diff
 PATCHFILES += 0001-make-subversion-sysconfigdir-as-it-should-be-for-csw.patch
 
-DEPENDS = server/apache2
-DEPENDS = lib/neon
+EXTRA_LIB = $(SVNLIB) $(prefix)/apache2/lib
+EXTRA_INC = $(prefix)/apache2/include
 
-NODIRPATHS = --libdir --libexecdir
 JDK = /usr/jdk1.5.0_15
 EXTRA_INC += $(JDK)/include
 SVNLIB = $(prefix)/lib/svn
@@ -94,11 +129,18 @@
 LDFLAGS += -R/opt/csw/bdb47/lib -L/opt/csw/bdb47/lib
 export LDFLAGS
 
-EXTRA_MERGE_EXCLUDE_FILES = .*\.pyo .*\.pyc
+EXTRA_MERGE_EXCLUDE_FILES += .*\.pyo .*\.pyc
 PROTOTYPE_MODIFIERS += cswpycompile
 PROTOTYPE_FILES_cswpycompile = $(libdir)/python/.*\.py
 PROTOTYPE_CLASS_cswpycompile = cswpycompile
 
+# All of the perl modules go to $(libdir)/perl/site_perl. We are not interested
+# in the version specific perl directory which only contains a perllocal.pod.
+# Can this be re-done as a version agnostic regex? Couldn't get this to work :/
+# EXTRA_MERGE_EXCLUDE_FILES += $(libdir)/perl/(?!site_perl\/)
+EXTRA_MERGE_EXCLUDE_FILES += $(libdir)/perl/5.8.8.*
+
+NODIRPATHS      = --libdir --libexecdir
 CONFIGURE_ARGS  = $(DIRPATHS) --libdir=$(SVNLIB) --libexecdir=$(SVNLIB)
 CONFIGURE_ARGS += --disable-mod-activation
 CONFIGURE_ARGS += --disable-static
@@ -113,53 +155,55 @@
 CONFIGURE_ARGS += --with-zlib=$(prefix)
 CONFIGURE_ARGS += --with-serf=$(prefix)
 
-TEST_TARGET = check
 # Tests take *forever*
-TEST_SCRIPTS = skip
+#TEST_TARGET  = check
+TEST_TARGET  = 
 
-test-skip:
-	@$(MAKECOOKIE)
-
 include gar/category.mk
 
 BINDING_LANGS   = java perl python ruby
-BINDING_TARGETS = $(foreach LANG,$(BINDING_LANGS),svn-$(LANG))
+BINDING_TARGETS = $(addprefix svn-,$(BINDING_LANGS))
 
-PI_DEPENDS  = install-extras
-PI_DEPENDS += fix-ra_dav
+PI_DEPENDS += copy-apache-templates
+PI_DEPENDS += create-ra_dav-symlinks
+PI_DEPENDS += install-extras
 PI_DEPENDS += $(BINDING_TARGETS)
-PI_DEPENDS += copy-templates
-PI_DEPENDS += fix-install
 
 post-install-modulated: $(PI_DEPENDS)
 	$(MAKECOOKIE)
 
+# The whole subversion build is done with Sun's cc. Ruby language bindings
+# need to be built with gcc. Hack (!) together Makefile.gcc/libtool.gcc which
+# are then used in the "svn-ruby" target.
+# See http://lists.opencsw.org/pipermail/maintainers/2009-May/002325.html
 post-configure-modulated:
 	@echo "~~~ Fixing Libtool ~~~"
-	@$(DOWNLOADDIR)/fixme.sh $(WORKSRC)
-	@echo "~~~ Creating GCC Makefile and libtool for javahl and ruby ~~~"
-	@gcp $(WORKSRC)/Makefile $(WORKSRC)/Makefile.gcc
-	@gcp $(WORKSRC)/libtool $(WORKSRC)/libtool.gcc
-	@perl -i -pe 's/-mt\|*//' $(WORKSRC)/*.gcc
-	@perl -i -pe 's|-xO3|-pipe -O2|' $(WORKSRC)/*.gcc
-	@perl -i -pe 's|/opt/studio/SOS11/SUNWspro/bin/cc|/opt/csw/gcc4/bin/gcc|' \
-		             $(WORKSRC)/*.gcc
-	@perl -i -pe 's|/opt/studio/SOS11/SUNWspro/bin/CC|/opt/csw/gcc4/bin/g++|' \
-		             $(WORKSRC)/*.gcc
-	@perl -i -pe 's|libtool|libtool.gcc|' $(WORKSRC)/Makefile.gcc
-	@perl -i -pe 's|KPIC|fPIC|' $(WORKSRC)/libtool.gcc
-	@perl -i -pe 's|postdeps=.*|postdeps=""|' $(WORKSRC)/libtool.gcc
-	@( if [ "`uname -p`" = "sparc" ]; then \
-    	perl -i -pe 's|-xarch=v8|-mcpu=v8|' $(WORKSRC)/*.gcc; \
+	$(DOWNLOADDIR)/fixme.sh $(WORKSRC)
+	@echo "~~~ Creating GCC Makefile and libtool for ruby ~~~"
+
+	gcp $(WORKSRC)/Makefile $(WORKSRC)/Makefile.gcc
+	gcp $(WORKSRC)/libtool $(WORKSRC)/libtool.gcc
+
+	@# -mt\|* effectively strips any occasion of -mt or -mt| out of
+	@# libtool.gcc, but what for? -mt is recognized by both Sun's cc
+	@# and gcc and is responsible for adding multi-threading support.
+	gsed -i \
+		-e 's,-mt|*,,' \
+		-e 's,-xO3,-pipe -O2,' \
+		-e 's,KPIC,fPIC,' \
+		-e 's,/opt/studio/SOS11/SUNWspro/bin/cc,/opt/csw/gcc4/bin/gcc,' \
+		-e 's,/opt/studio/SOS11/SUNWspro/bin/CC,/opt/csw/gcc4/bin/g++,' \
+		 $(WORKSRC)/*.gcc
+	gsed -i -e 's,libtool,libtool.gcc,' $(WORKSRC)/Makefile.gcc
+	gsed -i -e 's,postdeps=.*,postdeps="",' $(WORKSRC)/libtool.gcc
+	( if [ "$(GARCH)" = "sparc" ]; then \
+    	perl -i -pe 's,-xarch=v8,-mcpu=v8,' $(WORKSRC)/*.gcc; \
 	else \
-	    perl -i -pe 's|-xarch=386|-march=i386|' $(WORKSRC)/*.gcc; \
+	    perl -i -pe 's,-xarch=386,-march=i386,' $(WORKSRC)/*.gcc; \
 	fi )
-	$(MAKECOOKIE)
+	@$(MAKECOOKIE)
 
-fix-install:
-	@(grm -fr $(DESTDIR)$(prefix)/lib/perl/5.8.8)
-
-copy-templates:
+copy-apache-templates:
 	ginstall -d $(DESTDIR)$(prefix)/apache2/etc/extra
 	ginstall -m 0644 \
 		$(WORKDIR)/httpd-svn.conf.CSW \
@@ -167,53 +211,53 @@
 	ginstall -m 0644 \
 		$(WORKDIR)/svn_access.conf.CSW \
 		$(DESTDIR)$(prefix)/apache2/etc
-	$(MAKECOOKIE)
+	@$(MAKECOOKIE)
 
-fix-ra_dav:
-	@# libsvn_ra_dav-1* has been renamed to libsvn_ra_neon-1* 
-	@# in the new versions of subversion, 
-	@# we need to link for backward compatability
-	@(gln -s libsvn_ra_neon-1.so.0.0.0 $(DESTDIR)$(SVNLIB)/libsvn_ra_dav-1.so.0)
-	@(gln -s libsvn_ra_neon-1.so.0.0.0 $(DESTDIR)$(SVNLIB)/libsvn_ra_dav-1.so)
+# libsvn_ra_dav-1* has been renamed to libsvn_ra_neon-1* in the new versions
+# of subversion (starting with?), we need to link for backward compatability
+create-ra_dav-symlinks:
+	( cd $(DESTDIR)$(SVNLIB); \
+		ln -s libsvn_ra_neon-1.so.0.0.0 libsvn_ra_dav-1.so.0; \
+		ln -s libsvn_ra_neon-1.so.0.0.0 libsvn_ra_dav-1.so; )
 	@$(MAKECOOKIE)
 
 install-extras:
-	@(ginstall -d $(DESTDIR)$(docdir)/subversion/tools)
-	@(ginstall -d $(DESTDIR)$(docdir)/subversion/contrib)
-	@(gcp -R $(WORKSRC)/tools/* $(DESTDIR)$(docdir)/subversion/tools/)
-	@(gcp -R $(WORKSRC)/contrib/* $(DESTDIR)$(docdir)/subversion/contrib/)
-	@$(BUILD_ENV) $(INSTALL_ENV) gmake -C $(WORKSRC) install-tools
-	@$(BUILD_ENV) $(INSTALL_ENV) gmake -C $(WORKSRC) install-contrib
+	ginstall -d $(DESTDIR)$(docdir)/subversion/tools
+	ginstall -d $(DESTDIR)$(docdir)/subversion/contrib
+	gcp -R $(WORKSRC)/tools/* $(DESTDIR)$(docdir)/subversion/tools/
+	gcp -R $(WORKSRC)/contrib/* $(DESTDIR)$(docdir)/subversion/contrib/
+	$(BUILD_ENV) $(INSTALL_ENV) gmake -C $(WORKSRC) install-tools
+	$(BUILD_ENV) $(INSTALL_ENV) gmake -C $(WORKSRC) install-contrib
 	@$(MAKECOOKIE)
 
 svn-python:
 	@echo " ==> Building Python bindings"
-	@touch \
+	touch \
 		$(WORKSRC)/subversion/bindings/swig/python/*.c \
 		$(WORKSRC)/subversion/bindings/swig/python/*.py
-	@$(BUILD_ENV)   gmake -C $(WORKSRC) swig-py
-	@$(INSTALL_ENV) gmake -C $(WORKSRC) install-swig-py 
-	$(MAKECOOKIE)
+	$(BUILD_ENV)   gmake -C $(WORKSRC) swig-py
+	$(INSTALL_ENV) gmake -C $(WORKSRC) install-swig-py 
+	@$(MAKECOOKIE)
 
 svn-perl:
 	@echo " ==> Building Perl bindings"
-	@touch \
+	touch \
 		$(WORKSRC)/subversion/bindings/swig/perl/native/*.c \
 		$(WORKSRC)/subversion/bindings/swig/perl/native/*.pm
-	@$(BUILD_ENV)   gmake -C $(WORKSRC) swig-pl
-	@$(INSTALL_ENV) gmake DESTDIR=$(DESTDIR) -C $(WORKSRC) install-swig-pl
-	$(MAKECOOKIE)
+	$(BUILD_ENV)   gmake -C $(WORKSRC) swig-pl
+	$(INSTALL_ENV) gmake DESTDIR=$(DESTDIR) -C $(WORKSRC) install-swig-pl
+	@$(MAKECOOKIE)
 
 svn-ruby:
 	@echo " ==> Building Ruby bindings"
-	@touch $(WORKSRC)/subversion/bindings/swig/ruby/*.c
+	touch $(WORKSRC)/subversion/bindings/swig/ruby/*.c
 	$(BUILD_ENV) gmake -f Makefile.gcc -C $(WORKSRC) swig-rb
-	@$(INSTALL_ENV) gmake -f Makefile.gcc -C $(WORKSRC) install-swig-rb
-	$(MAKECOOKIE)
+	$(INSTALL_ENV) gmake -f Makefile.gcc -C $(WORKSRC) install-swig-rb
+	@$(MAKECOOKIE)
 
 svn-java:
 	@echo " ==> Building Java bindings"
-	@touch $(WORKSRC)/subversion/bindings/javahl/native/*.c
+	touch $(WORKSRC)/subversion/bindings/javahl/native/*.c
 	$(BUILD_ENV)   gmake -C $(WORKSRC) javahl;
 	$(INSTALL_ENV) gmake -C $(WORKSRC) install-javahl;
-	$(MAKECOOKIE)
+	@$(MAKECOOKIE)

Added: csw/mgar/pkg/subversion/trunk/files/changelog.CSW
===================================================================
--- csw/mgar/pkg/subversion/trunk/files/changelog.CSW	                        (rev 0)
+++ csw/mgar/pkg/subversion/trunk/files/changelog.CSW	2010-01-17 01:59:18 UTC (rev 8037)
@@ -0,0 +1,9 @@
+subversion (1.6.6,REV=2010.01.17)
+
+  * Restricted cswpycompile usage to python modules. (Closes #4156)
+  * Corrected libsvn_ra_dav-1.so.0 symlinks. (Closes #4096)
+  * Dropped openssl_rt dependency (neon with SSL support is built separately).
+  * Dropped kerberos dependency (neon comes with Kerberos support).
+  * Dropped libnet dependency (not required).
+
+ -- Sebastian Kayser <skayser at opencsw.org>  Sun, 17 Jan 2010 02:39:59 +0100


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



More information about the devel mailing list