diff options
author | Stuart Shelton <stuart@shelton.me> | 2014-03-31 22:04:36 +0100 |
---|---|---|
committer | Stuart Shelton <stuart@shelton.me> | 2014-03-31 22:04:36 +0100 |
commit | 5166cc8f12ad2deb99cc993ca8d2141655823307 (patch) | |
tree | 01124462c5b444fc012eaf419d3582444097536e /dev-vcs | |
parent | Add app-arch/unzip-6.0-r3, update README.md (diff) | |
download | srcshelton-5166cc8f12ad2deb99cc993ca8d2141655823307.tar.gz srcshelton-5166cc8f12ad2deb99cc993ca8d2141655823307.tar.bz2 srcshelton-5166cc8f12ad2deb99cc993ca8d2141655823307.zip |
Add dev-vcs/subversion-1.7.14, update README.md
Diffstat (limited to 'dev-vcs')
-rw-r--r-- | dev-vcs/subversion/Manifest | 10 | ||||
-rw-r--r-- | dev-vcs/subversion/files/47_mod_dav_svn.conf | 16 | ||||
-rw-r--r-- | dev-vcs/subversion/files/subversion-1.5.4-interix.patch | 114 | ||||
-rw-r--r-- | dev-vcs/subversion/files/subversion-1.5.6-aix-dso.patch | 21 | ||||
-rw-r--r-- | dev-vcs/subversion/files/subversion-1.6.3-hpux-dso.patch | 16 | ||||
-rw-r--r-- | dev-vcs/subversion/files/subversion-fix-parallel-build-support-for-perl-bindings.patch | 11 | ||||
-rw-r--r-- | dev-vcs/subversion/files/svnserve.confd | 10 | ||||
-rw-r--r-- | dev-vcs/subversion/files/svnserve.initd2 | 26 | ||||
-rw-r--r-- | dev-vcs/subversion/files/svnserve.xinetd | 14 | ||||
-rw-r--r-- | dev-vcs/subversion/subversion-1.7.14.ebuild | 497 |
10 files changed, 735 insertions, 0 deletions
diff --git a/dev-vcs/subversion/Manifest b/dev-vcs/subversion/Manifest new file mode 100644 index 00000000..1e24b3aa --- /dev/null +++ b/dev-vcs/subversion/Manifest @@ -0,0 +1,10 @@ +AUX 47_mod_dav_svn.conf 422 SHA256 bdb10203ae3154da723655b07118f630ef1e83ec38a79e31a53e436e0c071d27 SHA512 05608aa7abca0ec55015232077db928453c92ccf8b595dd843ba13ed39703e01dcbe298c4ff57c638376679be9fea4b409e98953915b86dc6954e3e0de31b23d WHIRLPOOL 05f1048e41c9c59718fc794ae53de532565447186a2cef45a222bee3d45071976037cc2aa3d90b27df1c02c01ce262c7b8030c4ad021cd597f277b8b48c7d976 +AUX subversion-1.5.4-interix.patch 4375 SHA256 1cb7dec795921a89e90f792d0176c52239aa3d87064bafbd5af9ded4df981dbe SHA512 e63c49ae3935be14437702136175d38fac1a820ccc641eb9d94e51d89986847a408b49995c01dcfa4d45c3bf04c94134def117ff27802b3eb02a6268d6032b75 WHIRLPOOL 77d60f127f2132c6e5a8a00f4f6603dfeec8708b36dbbac8d806dc0bedcfd36426661adff6c49895c73dfb16883e18e0cdbc81f3a43d3f1ecace744a25a394a7 +AUX subversion-1.5.6-aix-dso.patch 787 SHA256 2790b21e035ea77358d33c14e7e7c3c8977e1b3f5d4150768912eea719e2cf6c SHA512 8cf3495c8239f47193d0f67084b88cd2a601586a0d933512a6326522f5c87310a636ab7928c1c13e4adf1cbaf756eca77f025be9af947dcff3f1661f0f2e9347 WHIRLPOOL 40c3397dcc9371ae9d6badd7aeb56b01d6de1729fd84dc4c17e27c0f723869354b04cb4b21749890af5f9366f504789d1c2f63287a15e6bad566760a36e24625 +AUX subversion-1.6.3-hpux-dso.patch 627 SHA256 0fa69598635ea9630e95e3e8b693cd5f1b853784900e34d58ffe9e03d8c65b36 SHA512 4ca24738d527c8f845e0d255950f0121a445ec1357bea03e2c3cd0c1ca077f8aefd6769eb4dc4bc3787c593c9542f3a64ad283ae5154201a7fcf2392e7ea076b WHIRLPOOL d90944d8cb30db9e8f88606f5054cc54af0a2f496125f6462237b964b2f4faefdde94b26c9a80e9273d19fffbce71cbf89dba961300c3a764de4c21782499533 +AUX subversion-fix-parallel-build-support-for-perl-bindings.patch 515 SHA256 c7a9fe0f095de7e49e219af5cabdff28751ee39aa42e712c4b8b3bc0ed64d50c SHA512 c24cf217e3d5c8e31b28c38d63e994ef131b410a7a6ab00b31772a0863f216d9d3482810928ab2cf7025baf632a415435653fd3fd2fd3780013b70a53ccf5cad WHIRLPOOL e7bb2c833d2393f82f769007d5df35e97ed8766cea5f9f5c64e41ed6369950a6aa8c73e44e9803656ec2ac21706e69cc3cf05f45a5dd1abe85fdb2cb9d0894bf +AUX svnserve.confd 322 SHA256 45f2dc1a718aed885559e71d98112e670c92bd6b4f19c5cf593eced6cd2bbd97 SHA512 c84d96dad0deb40a04963654c5d0874697f2b270751b3ec41bec64847d61d9e88e336e2ee5da438a527b9d8b8b24d7ddbeacdd4bd4ce02db3629fc0972e0c289 WHIRLPOOL c91f8454f4a6d7fc9823bfbded1432993da14574693cfb4ffd6902fce136b2a14dc23616b523cf89e06493f96317ed0520a586af022d2cb1bea025ec99e53ed8 +AUX svnserve.initd2 828 SHA256 8f123253c3bfb9bbe87210a9e1facc7f52df371747dbc188396740a5cf4fa713 SHA512 48729e3befc9fb9f26bbb58f3e3694cecec491df65eb7251af85bec1aa16f6d1b406f2ef072c93c9136e261d8ce64aa658bf41f812c1a555c7014521c2ff775f WHIRLPOOL bbff4d5010a0f6ceb0e9e2f76984c9935f610b18163e7e5c426059a48f84451e5cbeae86582d6dd22d9a59dc47f71b253b19cce9ed6761a29013877a32cb5d81 +AUX svnserve.xinetd 332 SHA256 267f30c78ef6428aeeb97d3c64c06b9acfba4bc624766fc3c6a6d2c4133799a2 SHA512 80b486507d03f430e189ef65901ed185f487651400bada5709f544954eb6175d20a11cf98893f80ec963e434c5db5642bf9d1603d698ad8bbf96b88fa45ddbae WHIRLPOOL 0c5ed79630859706f18b56fbb910b4b2dc6b480cdf72a929f7d33232f23ee1eb7110b98c4a8e06cd06c620b9f4ff081bfae23edd1f6a65fade2ac5081dbf3962 +DIST subversion-1.7.14.tar.bz2 6045932 SHA256 c4ac8f37eb0ebd38901bfa6f1c7e4d7716d32d7460ee0cee520381ca2f5b120d SHA512 cc7df3a2d258cda65a3fefc1fb9bcc91f78ec817c8d32e561eae7cf59de3d1d5c843594150b63c60c724e4b3df88da319763f814f418d106461adcc78b323840 WHIRLPOOL 21d879775ed0bed15d17b83070eb26269f8d3cc0420be54e0d326b7b6f410b9fee11d2f8d2926f930c66c66a47a6396275ddf20120436b978c0a318bb963f0e0 +EBUILD subversion-1.7.14.ebuild 15195 SHA256 b251bcce594e9611f5086a7ba049b738d19ed10c957660e55e53b3c5b3c13317 SHA512 6e37f0819724628f0086248f62df82b22a49fbfaf2f541164127187f3049ae29f248aebcbb25c832378b1107e2518c0d5415ca2fa3d1732cf26aebb8bc1f7ce7 WHIRLPOOL 67fddc29bbcada207bd4f3531e14ecb16d82ce6880613a45aec8d5ee505039cfeb42e73be4ae7fd56802f947232ac0e3822c2061b03dd8c2f2e06b2b57303704 diff --git a/dev-vcs/subversion/files/47_mod_dav_svn.conf b/dev-vcs/subversion/files/47_mod_dav_svn.conf new file mode 100644 index 00000000..52d08b7a --- /dev/null +++ b/dev-vcs/subversion/files/47_mod_dav_svn.conf @@ -0,0 +1,16 @@ +<IfDefine SVN> +LoadModule dav_svn_module modules/mod_dav_svn.so +<IfDefine SVN_AUTHZ> +LoadModule authz_svn_module modules/mod_authz_svn.so +</IfDefine> + +# Example configuration: +#<Location /svn/repos> +# DAV svn +# SVNPath ${SVN_REPOS_LOC}/repos +# AuthType Basic +# AuthName "Subversion repository" +# AuthUserFile ${SVN_REPOS_LOC}/conf/svnusers +# Require valid-user +#</Location> +</IfDefine> diff --git a/dev-vcs/subversion/files/subversion-1.5.4-interix.patch b/dev-vcs/subversion/files/subversion-1.5.4-interix.patch new file mode 100644 index 00000000..53ef6960 --- /dev/null +++ b/dev-vcs/subversion/files/subversion-1.5.4-interix.patch @@ -0,0 +1,114 @@ +diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion-1.5.4/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h +--- subversion-1.5.4.orig/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h 2008-10-29 08:22:36 +0100 ++++ subversion-1.5.4/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h 2008-10-29 08:52:31 +0100 +@@ -49,6 +49,11 @@ + # endif + #endif + ++// This is bad, but better than nothing ;) ++#if defined(__INTERIX) ++# define strtoll strtol ++#endif ++ + + + #if defined(SVN_AVOID_CIRCULAR_LINKAGE_AT_ALL_COSTS_HACK) +diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/core.c subversion-1.5.4/subversion/bindings/swig/perl/native/core.c +--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/core.c 2008-10-29 08:22:37 +0100 ++++ subversion-1.5.4/subversion/bindings/swig/perl/native/core.c 2008-10-29 08:53:40 +0100 +@@ -1733,7 +1733,10 @@ + # endif + #endif + +- ++#ifdef __INTERIX ++# define strtoull strtoul ++# define strtoll strtol ++#endif + + SWIGINTERN int + SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val) +diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_client.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_client.c +--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_client.c 2008-10-29 08:22:37 +0100 ++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_client.c 2008-10-29 08:54:17 +0100 +@@ -1872,6 +1872,10 @@ + #endif + + ++#ifdef __INTERIX ++# define strtoull strtoul ++# define strtoll strtol ++#endif + + SWIGINTERN int + SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val) +diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_delta.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_delta.c +--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_delta.c 2008-10-29 08:22:37 +0100 ++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_delta.c 2008-10-29 08:54:28 +0100 +@@ -1745,6 +1745,10 @@ + #endif + + ++#ifdef __INTERIX ++# define strtoull strtoul ++# define strtoll strtol ++#endif + + SWIGINTERN int + SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val) +diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_fs.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_fs.c +--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_fs.c 2008-10-29 08:22:37 +0100 ++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_fs.c 2008-10-29 08:54:41 +0100 +@@ -1818,6 +1818,10 @@ + #endif + + ++#ifdef __INTERIX ++# define strtoull strtoul ++# define strtoll strtol ++#endif + + SWIGINTERN int + SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val) +diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_ra.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_ra.c +--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_ra.c 2008-10-29 08:22:37 +0100 ++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_ra.c 2008-10-29 08:54:52 +0100 +@@ -1661,6 +1661,10 @@ + # endif + #endif + ++#ifdef __INTERIX ++# define strtoull strtoul ++# define strtoll strtol ++#endif + + SWIGINTERN int + SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val) +diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_repos.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_repos.c +--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_repos.c 2008-10-29 08:22:37 +0100 ++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_repos.c 2008-10-29 08:55:05 +0100 +@@ -1792,6 +1792,10 @@ + #endif + + ++#ifdef __INTERIX ++# define strtoull strtoul ++# define strtoll strtol ++#endif + + SWIGINTERN int + SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val) +diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_wc.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_wc.c +--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_wc.c 2008-10-29 08:22:37 +0100 ++++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_wc.c 2008-10-29 08:55:17 +0100 +@@ -1816,6 +1816,10 @@ + #endif + + ++#ifdef __INTERIX ++# define strtoull strtoul ++# define strtoll strtol ++#endif + + SWIGINTERN int + SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val) diff --git a/dev-vcs/subversion/files/subversion-1.5.6-aix-dso.patch b/dev-vcs/subversion/files/subversion-1.5.6-aix-dso.patch new file mode 100644 index 00000000..49c6162d --- /dev/null +++ b/dev-vcs/subversion/files/subversion-1.5.6-aix-dso.patch @@ -0,0 +1,21 @@ +On AIX, load shared libraries even when created with full aix-soname support: +http://lists.gnu.org/archive/html/libtool/2011-01/msg00023.html +http://lists.gnu.org/archive/html/libtool/2011-02/msg00000.html +Once there is an agreement on that, this patch eventually is for upstream too. + +--- subversion/libsvn_ra/ra_loader.c.orig 2009-04-28 14:53:35 +0200 ++++ subversion/libsvn_ra/ra_loader.c 2009-04-28 14:55:37 +0200 +@@ -164,6 +164,13 @@ + + /* find/load the specified library */ + SVN_ERR(svn_dso_load(&dso, libname)); ++#ifdef _AIX ++ if (! dso) { ++ libname = apr_psprintf(pool, "libsvn_ra_%s-%d.so.0(shr.o)", ++ ra_name, SVN_VER_MAJOR); ++ SVN_ERR(svn_dso_load(&dso, libname)); ++ } ++#endif + if (! dso) + return SVN_NO_ERROR; + diff --git a/dev-vcs/subversion/files/subversion-1.6.3-hpux-dso.patch b/dev-vcs/subversion/files/subversion-1.6.3-hpux-dso.patch new file mode 100644 index 00000000..f9739bef --- /dev/null +++ b/dev-vcs/subversion/files/subversion-1.6.3-hpux-dso.patch @@ -0,0 +1,16 @@ +--- subversion/libsvn_ra/ra_loader.c.orig 2009-07-20 14:46:02 +0200 ++++ subversion/libsvn_ra/ra_loader.c 2009-07-20 14:50:02 +0200 +@@ -154,8 +154,13 @@ + const char *compat_funcname; + apr_status_t status; + ++#if defined(__hpux) && defined(__hppa) ++ libname = apr_psprintf(pool, "libsvn_ra_%s-%d.sl.0", ++ ra_name, SVN_VER_MAJOR); ++#else + libname = apr_psprintf(pool, "libsvn_ra_%s-%d.so.0", + ra_name, SVN_VER_MAJOR); ++#endif + funcname = apr_psprintf(pool, "svn_ra_%s__init", ra_name); + compat_funcname = apr_psprintf(pool, "svn_ra_%s_init", ra_name); + diff --git a/dev-vcs/subversion/files/subversion-fix-parallel-build-support-for-perl-bindings.patch b/dev-vcs/subversion/files/subversion-fix-parallel-build-support-for-perl-bindings.patch new file mode 100644 index 00000000..4fab19a6 --- /dev/null +++ b/dev-vcs/subversion/files/subversion-fix-parallel-build-support-for-perl-bindings.patch @@ -0,0 +1,11 @@ +--- Makefile.in 2011-07-16 13:50:53.000000000 +0200 ++++ Makefile.in.new 2012-03-11 12:13:57.000000000 +0100 +@@ -732,7 +732,7 @@ + extraclean-swig-headers: clean-swig-headers + $(EXTRACLEAN_SWIG_HEADERS) + +-$(SWIG_PL_DIR)/native/Makefile.PL: $(SWIG_SRC_DIR)/perl/native/Makefile.PL.in ++$(SWIG_PL_DIR)/native/Makefile.PL: $(SWIG_SRC_DIR)/perl/native/Makefile.PL.in libsvn_swig_perl + ./config.status subversion/bindings/swig/perl/native/Makefile.PL + + $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL diff --git a/dev-vcs/subversion/files/svnserve.confd b/dev-vcs/subversion/files/svnserve.confd new file mode 100644 index 00000000..83997ce9 --- /dev/null +++ b/dev-vcs/subversion/files/svnserve.confd @@ -0,0 +1,10 @@ +# The commented variables in this file are the defaults that are used +# in the init-script. You don't need to uncomment them except to +# customize them to different values. + +# Options for svnserve +#SVNSERVE_OPTS="--root=/var/svn" + +# User and group as which to run svnserve +#SVNSERVE_USER="svn" +#SVNSERVE_GROUP="svnusers" diff --git a/dev-vcs/subversion/files/svnserve.initd2 b/dev-vcs/subversion/files/svnserve.initd2 new file mode 100644 index 00000000..605a4e53 --- /dev/null +++ b/dev-vcs/subversion/files/svnserve.initd2 @@ -0,0 +1,26 @@ +#!/sbin/runscript +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later +# $Header: /var/cvsroot/gentoo-x86/dev-vcs/subversion/files/svnserve.initd2,v 1.2 2012/01/14 19:46:34 tommy Exp $ + +depend() { + need net +} + +start() { + ebegin "Starting svnserve" + # Ensure that we run from a readable working dir, and that we do not + # lock filesystems when being run from such a location. + cd / + start-stop-daemon --start --quiet --background --make-pidfile \ + --pidfile /var/run/svnserve.pid --exec /usr/bin/svnserve \ + --user ${SVNSERVE_USER:-apache} --group ${SVNSERVE_GROUP:-apache} -- \ + --foreground --daemon ${SVNSERVE_OPTS:---root=/var/svn} + eend $? +} + +stop() { + ebegin "Stopping svnserve" + start-stop-daemon --stop --quiet --pidfile /var/run/svnserve.pid + eend $? +} diff --git a/dev-vcs/subversion/files/svnserve.xinetd b/dev-vcs/subversion/files/svnserve.xinetd new file mode 100644 index 00000000..e29f906b --- /dev/null +++ b/dev-vcs/subversion/files/svnserve.xinetd @@ -0,0 +1,14 @@ +service svn +{ + socket_type = stream + wait = no + user = apache + group = apache + umask = 002 + protocol = tcp + log_on_failure += USERID HOST + port = 3690 + server = /usr/bin/svnserve + server_args = -i + disable = yes +} diff --git a/dev-vcs/subversion/subversion-1.7.14.ebuild b/dev-vcs/subversion/subversion-1.7.14.ebuild new file mode 100644 index 00000000..b6b66064 --- /dev/null +++ b/dev-vcs/subversion/subversion-1.7.14.ebuild @@ -0,0 +1,497 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-vcs/subversion/subversion-1.7.14.ebuild,v 1.11 2014/01/18 09:29:07 vapier Exp $ + +EAPI=5 +PYTHON_COMPAT=( python{2_6,2_7} ) +DISTUTILS_OPTIONAL=1 +WANT_AUTOMAKE="none" +MY_P="${P/_/-}" + +inherit autotools bash-completion-r1 db-use depend.apache distutils-r1 elisp-common flag-o-matic java-pkg-opt-2 libtool multilib perl-module eutils toolchain-funcs + +DESCRIPTION="Advanced version control system" +HOMEPAGE="http://subversion.apache.org/" +SRC_URI="mirror://apache/${PN}/${MY_P}.tar.bz2" +S="${WORKDIR}/${MY_P}" + +LICENSE="Subversion GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="apache2 berkdb clang ctypes-python debug doc +dso extras gnome-keyring java kde nls perl python ruby sasl test vim-syntax +webdav-neon webdav-serf" + +COMMON_DEPEND=">=dev-db/sqlite-3.6.18[threadsafe(+)] + >=dev-libs/apr-1.3:1 + >=dev-libs/apr-util-1.3:1 + dev-libs/expat + sys-libs/zlib + berkdb? ( >=sys-libs/db-4.0.14 ) + ctypes-python? ( ${PYTHON_DEPS} ) + gnome-keyring? ( dev-libs/glib:2 sys-apps/dbus gnome-base/gnome-keyring ) + kde? ( sys-apps/dbus dev-qt/qtcore:4 dev-qt/qtdbus:4 dev-qt/qtgui:4 >=kde-base/kdelibs-4:4 ) + perl? ( dev-lang/perl ) + python? ( ${PYTHON_DEPS} ) + ruby? ( >=dev-lang/ruby-1.8.2:1.8 + dev-ruby/rubygems[ruby_targets_ruby18] ) + sasl? ( dev-libs/cyrus-sasl ) + webdav-neon? ( >=net-libs/neon-0.28 ) + webdav-serf? ( >=net-libs/serf-0.3.0 )" +RDEPEND="${COMMON_DEPEND} + apache2? ( www-servers/apache[apache2_modules_dav] ) + java? ( >=virtual/jre-1.5 ) + kde? ( kde-base/kwalletd ) + nls? ( virtual/libintl ) + perl? ( dev-perl/URI )" +# Note: ctypesgen doesn't need PYTHON_USEDEP, it's used once +DEPEND="${COMMON_DEPEND} + test? ( ${PYTHON_DEPS} ) + !!<sys-apps/sandbox-1.6 + ctypes-python? ( dev-python/ctypesgen ) + doc? ( app-doc/doxygen ) + gnome-keyring? ( virtual/pkgconfig ) + java? ( >=virtual/jdk-1.5 ) + kde? ( virtual/pkgconfig ) + nls? ( sys-devel/gettext ) + webdav-neon? ( virtual/pkgconfig )" + +REQUIRED_USE=" + ctypes-python? ( ${PYTHON_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + test? ( ${PYTHON_REQUIRED_USE} )" + +want_apache + +pkg_setup() { + if use berkdb; then + local apu_bdb_version="$(${EPREFIX}/usr/bin/apu-1-config --includes \ + | grep -Eoe '-I${EPREFIX}/usr/include/db[[:digit:]]\.[[:digit:]]' \ + | sed 's:.*b::')" + einfo + if [[ -z "${SVN_BDB_VERSION}" ]]; then + if [[ -n "${apu_bdb_version}" ]]; then + SVN_BDB_VERSION="${apu_bdb_version}" + einfo "Matching db version to apr-util" + else + SVN_BDB_VERSION="$(db_ver_to_slot "$(db_findver sys-libs/db 2>/dev/null)")" + einfo "SVN_BDB_VERSION variable isn't set. You can set it to enforce using of specific version of Berkeley DB." + fi + fi + einfo "Using: Berkeley DB ${SVN_BDB_VERSION}" + einfo + + if [[ -n "${apu_bdb_version}" && "${SVN_BDB_VERSION}" != "${apu_bdb_version}" ]]; then + eerror "APR-Util is linked against Berkeley DB ${apu_bdb_version}, but you are trying" + eerror "to build Subversion with support for Berkeley DB ${SVN_BDB_VERSION}." + eerror "Rebuild dev-libs/apr-util or set SVN_BDB_VERSION=\"${apu_bdb_version}\"." + eerror "Aborting to avoid possible run-time crashes." + die "Berkeley DB version mismatch" + fi + fi + + depend.apache_pkg_setup + + java-pkg-opt-2_pkg_setup + + if ! use webdav-neon && ! use webdav-serf; then + ewarn "WebDAV support is disabled. You need WebDAV to" + ewarn "access repositories through the HTTP protocol." + ewarn "Consider enabling one of the following USE-flags:" + ewarn " webdav-neon webdav-serf" + echo -ne "\a" + fi + + if use debug; then + append-cppflags -DSVN_DEBUG -DAP_DEBUG + fi + + # Allow for custom repository locations. + SVN_REPOS_LOC="${SVN_REPOS_LOC:-${EPREFIX}/var/svn}" +} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-1.5.4-interix.patch \ + "${FILESDIR}"/${PN}-1.5.6-aix-dso.patch \ + "${FILESDIR}"/${PN}-1.6.3-hpux-dso.patch \ + "${FILESDIR}"/${PN}-fix-parallel-build-support-for-perl-bindings.patch + epatch_user + + fperms +x build/transform_libtool_scripts.sh + + sed -i \ + -e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \ + -e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac + + # this bites us in particular on Solaris + sed -i -e '1c\#!/usr/bin/env sh' build/transform_libtool_scripts.sh || \ + die "/bin/sh is not POSIX shell!" + + tc-export CC CXX + + eautoconf + elibtoolize + + sed -e 's/\(libsvn_swig_py\)-\(1\.la\)/\1-$(EPYTHON)-\2/g' \ + -i build-outputs.mk || die "sed failed" + + if use python; then + # XXX: make python_copy_sources accept path + S=${S}/subversion/bindings/swig/python python_copy_sources + rm -r "${S}"/subversion/bindings/swig/python || die + fi +} + +src_configure() { + local myconf linkopts="" rubyopts="" + + if use python || use perl || use ruby; then + myconf+=" --with-swig" + else + myconf+=" --without-swig" + fi + + if use java; then + myconf+=" --without-junit" + fi + + if use kde || use nls; then + myconf+=" --enable-nls" + else + myconf+=" --disable-nls" + fi + + case ${CHOST} in + *-aix*) + # avoid recording immediate path to sharedlibs into executables + append-ldflags -Wl,-bnoipath + ;; + *-darwin*) + # Configure says that local-library-preloading doesn't work on + # Darwin... + myconf+=" --disable-local-library-preloading" + ;; + *-interix*) + # loader crashes on the LD_PRELOADs... + myconf+=" --disable-local-library-preloading" + ;; + *-solaris*) + # need -lintl to link + use nls && append-libs intl + # this breaks installation, on x64 echo replacement is 32-bits + myconf+=" --disable-local-library-preloading" + ;; + *-mint*) + myconf+=" --enable-all-static --disable-local-library-preloading" + ;; + *) + # inject LD_PRELOAD entries for easy in-tree development + myconf+=" --enable-local-library-preloading" + ;; + esac + + #workaround for bug 387057 + has_version =dev-vcs/subversion-1.6* && myconf+=" --disable-disallowing-of-undefined-references" + + #version 1.7.7 again tries to link against the older installed version and fails, when trying to + #compile for x86 on amd64, so workaround this issue again + #check newer versions, if this is still/again needed + myconf+=" --disable-disallowing-of-undefined-references" + + # for build-time scripts + if use ctypes-python || use python || use test; then + python_export_best + fi + + if use clang; then + if type -pf python >/dev/null 2>&1; then + linkopts="$( python -B "${S}"/build/get-py-info.py --link )" + linkopts="ac_cv_python_link=\"${CC} $( echo "$link" | cut -d' ' -f 2- )\"" + fi + fi + + #force ruby-1.8 for bug 399105 + #allow overriding Python include directory + if use ruby; then + rubyopts="ac_cv_path_RUBY=\"${EPREFIX}\"/usr/bin/ruby18 ac_cv_path_RDOC=\"${EPREFIX}\"/usr/bin/rdoc18" + fi + + tc-export CC CXX + + eval \ + ac_cv_python_compile="${CC} " \ + ac_cv_python_includes='-I\$\(PYTHON_INCLUDEDIR\)' \ + ${linkopts} \ + ${rubyopts} \ + econf --libdir="${EPREFIX}/usr/$(get_libdir)" \ + $(use_with apache2 apxs "${APXS}") \ + $(use_with berkdb berkeley-db "db.h:${EPREFIX}/usr/include/db${SVN_BDB_VERSION}::db-${SVN_BDB_VERSION}") \ + $(use_with ctypes-python ctypesgen "${EPREFIX}/usr") \ + $(use_enable dso runtime-module-search) \ + $(use_with gnome-keyring) \ + $(use_enable java javahl) \ + $(use_with java jdk "${JAVA_HOME}") \ + $(use_with kde kwallet) \ + $(use_with sasl) \ + $(use_with webdav-neon neon) \ + $(use_with webdav-serf serf "${EPREFIX}/usr") \ + ${myconf} \ + --with-apr="${EPREFIX}/usr/bin/apr-1-config" \ + --with-apr-util="${EPREFIX}/usr/bin/apu-1-config" \ + --disable-experimental-libtool \ + --without-jikes \ + --disable-mod-activation \ + --disable-neon-version-check \ + --disable-static +} + +src_compile() { + emake local-all + + if use ctypes-python; then + # pre-generate .py files + use ctypes-python && emake ctypes-python + + pushd subversion/bindings/ctypes-python >/dev/null || die + distutils-r1_src_compile + popd >/dev/null || die + fi + + if use python; then + swig_py_compile() { + local p=subversion/bindings/swig/python + rm -f ${p} || die + ln -s "${BUILD_DIR}" ${p} || die + + python_export PYTHON_INCLUDEDIR + emake swig-py \ + swig_pydir="$(python_get_sitedir)/libsvn" \ + swig_pydir_extra="$(python_get_sitedir)/svn" + } + + # this will give us proper BUILD_DIR for symlinking + BUILD_DIR=python \ + python_foreach_impl swig_py_compile + fi + + if use perl; then + emake swig-pl + fi + + if use ruby; then + emake swig-rb + fi + + if use java; then + emake -j1 JAVAC_FLAGS="$(java-pkg_javac-args) -encoding iso8859-1" javahl + fi + + if use extras; then + emake tools + fi + + if use doc; then + doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed" + + if use java; then + emake doc-javahl + fi + fi +} + +src_test() { + default + + if use ctypes-python; then + python_test() { + "${PYTHON}" subversion/bindings/ctypes-python/test/run_all.py \ + || die "ctypes-python tests fail with ${EPYTHON}" + } + + distutils-r1_src_test + fi + + if use python; then + swig_py_test() { + pushd "${BUILD_DIR}" >/dev/null || die + "${PYTHON}" tests/run_all.py || die "swig-py tests fail with ${EPYTHON}" + popd >/dev/null || die + } + + BUILD_DIR=subversion/bindings/swig/python \ + python_foreach_impl swig_py_test + fi +} + +src_install() { + emake -j1 DESTDIR="${D}" local-install + + if use ctypes-python; then + pushd subversion/bindings/ctypes-python >/dev/null || die + distutils-r1_src_install + popd >/dev/null || die + fi + + if use python; then + swig_py_install() { + local p=subversion/bindings/swig/python + rm -f ${p} || die + ln -s "${BUILD_DIR}" ${p} || die + + emake \ + DESTDIR="${D}" \ + swig_pydir="$(python_get_sitedir)/libsvn" \ + swig_pydir_extra="$(python_get_sitedir)/svn" \ + install-swig-py + } + + BUILD_DIR=python \ + python_foreach_impl swig_py_install + fi + + if use perl; then + emake DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl + fixlocalpod + find "${ED}" "(" -name .packlist -o -name "*.bs" ")" -delete + fi + + if use ruby; then + emake DESTDIR="${D}" install-swig-rb + fi + + if use java; then + emake DESTDIR="${D}" install-javahl + java-pkg_regso "${ED}"usr/$(get_libdir)/libsvnjavahl*$(get_libname) + java-pkg_dojar "${ED}"usr/$(get_libdir)/svn-javahl/svn-javahl.jar + rm -fr "${ED}"usr/$(get_libdir)/svn-javahl/*.jar + fi + + # Install Apache module configuration. + if use apache2; then + keepdir "${APACHE_MODULES_CONFDIR}" + insinto "${APACHE_MODULES_CONFDIR}" + doins "${FILESDIR}/47_mod_dav_svn.conf" + fi + + # Install Bash Completion, bug 43179. + newbashcomp tools/client-side/bash_completion subversion + rm -f tools/client-side/bash_completion + + # Install hot backup script, bug 54304. + newbin tools/backup/hot-backup.py svn-hot-backup + rm -fr tools/backup + + # Install svnserve init-script and xinet.d snippet, bug 43245. + newinitd "${FILESDIR}"/svnserve.initd2 svnserve + newconfd "${FILESDIR}"/svnserve.confd svnserve + insinto /etc/xinetd.d + newins "${FILESDIR}"/svnserve.xinetd svnserve + + #adjust default user and group with disabled apache2 USE flag, bug 381385 + use apache2 || sed -e "s\USER:-apache\USER:-svn\g" \ + -e "s\GROUP:-apache\GROUP:-svnusers\g" \ + -i "${ED}"etc/init.d/svnserve || die + use apache2 || sed -e "0,/apache/s//svn/" \ + -e "s:apache:svnusers:" \ + -i "${ED}"etc/xinetd.d/svnserve || die + + # Install documentation. + dodoc CHANGES COMMITTERS README + dodoc tools/xslt/svnindex.{css,xsl} + rm -fr tools/xslt + + # Install extra files. + if use extras; then + cat << EOF > 80subversion-extras +PATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin" +ROOTPATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin" +EOF + doenvd 80subversion-extras + + emake DESTDIR="${D}" toolsdir="/usr/$(get_libdir)/subversion/bin" install-tools || die "Installation of tools failed" + + find tools "(" -name "*.bat" -o -name "*.in" -o -name ".libs" ")" -print0 | xargs -0 rm -fr + rm -fr tools/client-side/svnmucc + rm -fr tools/server-side/{svn-populate-node-origins-index,svnauthz-validate}* + rm -fr tools/{buildbot,dev,diff,po} + + insinto /usr/share/${PN} + find tools -name '*.py' -exec sed -i -e '1s:python:&2:' {} + || die + doins -r tools + fi + + if use doc; then + dohtml -r doc/doxygen/html/* + + if use java; then + java-pkg_dojavadoc doc/javadoc + fi + fi + + find "${ED}" '(' -name '*.la' ')' -print0 | xargs -0 rm -f + + cd "${ED}"usr/share/locale + for i in * ; do + [[ $i == *$LINGUAS* ]] || { rm -r $i || die ; } + done +} + +pkg_preinst() { + # Compare versions of Berkeley DB, bug 122877. + if use berkdb && [[ -f "${EROOT}usr/bin/svn" ]]; then + OLD_BDB_VERSION="$(scanelf -nq "${EROOT}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")" + NEW_BDB_VERSION="$(scanelf -nq "${ED}usr/$(get_libdir)/libsvn_subr-1$(get_libname 0)" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")" + if [[ "${OLD_BDB_VERSION}" != "${NEW_BDB_VERSION}" ]]; then + CHANGED_BDB_VERSION="1" + fi + fi +} + +pkg_postinst() { + use perl && perl-module_pkg_postinst + + if [[ -n "${CHANGED_BDB_VERSION}" ]]; then + ewarn "You upgraded from an older version of Berkeley DB and may experience" + ewarn "problems with your repository. Run the following commands as root to fix it:" + ewarn " db4_recover -h ${SVN_REPOS_LOC}/repos" + ewarn " chown -Rf apache:apache ${SVN_REPOS_LOC}/repos" + fi + + ewarn "If you run subversion as a daemon, you will need to restart it to avoid module mismatches." +} + +pkg_postrm() { + use perl && perl-module_pkg_postrm +} + +pkg_config() { + # Remember: Don't use ${EROOT}${SVN_REPOS_LOC} since ${SVN_REPOS_LOC} + # already has EPREFIX in it + einfo "Initializing the database in ${SVN_REPOS_LOC}..." + if [[ -e "${SVN_REPOS_LOC}/repos" ]]; then + echo "A Subversion repository already exists and I will not overwrite it." + echo "Delete \"${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version." + else + mkdir -p "${SVN_REPOS_LOC}/conf" + + einfo "Populating repository directory..." + # Create initial repository. + "${EROOT}usr/bin/svnadmin" create "${SVN_REPOS_LOC}/repos" + + einfo "Setting repository permissions..." + SVNSERVE_USER="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_USER}")" + SVNSERVE_GROUP="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_GROUP}")" + if use apache2; then + [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="apache" + [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="apache" + else + [[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="svn" + [[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="svnusers" + fi + chmod -Rf go-rwx "${SVN_REPOS_LOC}/conf" + chmod -Rf o-rwx "${SVN_REPOS_LOC}/repos" + echo "Please create \"${SVNSERVE_GROUP}\" group if it does not exist yet." + echo "Afterwards please create \"${SVNSERVE_USER}\" user with homedir \"${SVN_REPOS_LOC}\"" + echo "and as part of the \"${SVNSERVE_GROUP}\" group if it does not exist yet." + echo "Finally, execute \"chown -Rf ${SVNSERVE_USER}:${SVNSERVE_GROUP} ${SVN_REPOS_LOC}/repos\"" + echo "to finish the configuration." + fi +} |