diff options
-rw-r--r-- | dev-vcs/subversion/ChangeLog | 10 | ||||
-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/subversion-1.6.17-r6.ebuild | 483 |
5 files changed, 643 insertions, 1 deletions
diff --git a/dev-vcs/subversion/ChangeLog b/dev-vcs/subversion/ChangeLog index d1d18ce0be33..e2fd1ac77315 100644 --- a/dev-vcs/subversion/ChangeLog +++ b/dev-vcs/subversion/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for dev-vcs/subversion # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-vcs/subversion/ChangeLog,v 1.55 2011/08/30 11:19:41 chainsaw Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-vcs/subversion/ChangeLog,v 1.56 2011/08/31 18:31:04 darkside Exp $ + +*subversion-1.6.17-r6 (31 Aug 2011) + + 31 Aug 2011; Jeremy Olexa <darkside@gentoo.org> + +files/subversion-1.5.4-interix.patch, +files/subversion-1.5.6-aix-dso.patch, + +files/subversion-1.6.3-hpux-dso.patch, +subversion-1.6.17-r6.ebuild: + Revision bump to finish Gentoo Prefix support, signed off by maintainer in + bug 329505 *subversion-1.6.17-r5 (30 Aug 2011) 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 000000000000..53ef6960c9f3 --- /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 000000000000..49c6162d1212 --- /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 000000000000..f9739bef3061 --- /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/subversion-1.6.17-r6.ebuild b/dev-vcs/subversion/subversion-1.6.17-r6.ebuild new file mode 100644 index 000000000000..2fe273ff6bda --- /dev/null +++ b/dev-vcs/subversion/subversion-1.6.17-r6.ebuild @@ -0,0 +1,483 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-vcs/subversion/subversion-1.6.17-r6.ebuild,v 1.1 2011/08/31 18:31:04 darkside Exp $ + +EAPI="3" +SUPPORT_PYTHON_ABIS="1" +RESTRICT_PYTHON_ABIS="3.* *-jython" +WANT_AUTOMAKE="none" +MY_P="${P/_/-}" + +inherit autotools base bash-completion db-use depend.apache elisp-common flag-o-matic java-pkg-opt-2 libtool multilib perl-module python + +DESCRIPTION="Advanced version control system" +HOMEPAGE="http://subversion.apache.org/" +SRC_URI="http://subversion.tigris.org/downloads/${MY_P}.tar.bz2" +S="${WORKDIR}/${MY_P}" + +LICENSE="Subversion" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x86-fbsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="apache2 berkdb ctypes-python debug doc +dso emacs extras gnome-keyring java kde nls perl python ruby sasl vim-syntax +webdav-neon webdav-serf" + +CDEPEND=">=dev-db/sqlite-3.4 + >=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? ( =dev-lang/python-2* ) + emacs? ( virtual/emacs ) + gnome-keyring? ( dev-libs/glib:2 sys-apps/dbus gnome-base/gnome-keyring ) + kde? ( sys-apps/dbus x11-libs/qt-core x11-libs/qt-dbus x11-libs/qt-gui >=kde-base/kdelibs-4 ) + perl? ( dev-lang/perl ) + python? ( =dev-lang/python-2* ) + ruby? ( >=dev-lang/ruby-1.8.2 ) + sasl? ( dev-libs/cyrus-sasl ) + webdav-neon? ( >=net-libs/neon-0.28 ) + webdav-serf? ( >=net-libs/serf-0.3.0 )" +RDEPEND="${CDEPEND} + apache2? ( www-servers/apache[apache2_modules_dav] ) + java? ( >=virtual/jre-1.5 ) + kde? ( kde-base/kwalletd ) + nls? ( virtual/libintl ) + perl? ( dev-perl/URI )" +DEPEND="${CDEPEND} + !!<sys-apps/sandbox-1.6 + ctypes-python? ( dev-python/ctypesgen ) + doc? ( app-doc/doxygen ) + gnome-keyring? ( dev-util/pkgconfig ) + java? ( >=virtual/jdk-1.5 ) + kde? ( dev-util/pkgconfig ) + nls? ( sys-devel/gettext ) + webdav-neon? ( dev-util/pkgconfig )" + +PATCHES=( + "${FILESDIR}/${PN}-1.6.0-disable_linking_against_unneeded_libraries.patch" + "${FILESDIR}/${PN}-1.6.2-local_library_preloading.patch" + "${FILESDIR}/${PN}-1.6.3-kwallet_window.patch" + "${FILESDIR}/${PN}-1.5.4-interix.patch" + "${FILESDIR}/${PN}-1.5.6-aix-dso.patch" + "${FILESDIR}/${PN}-1.6.3-hpux-dso.patch" +) + +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 ctypes-python || use python; then + python_pkg_setup + fi + + 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() { + base_src_prepare + 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 + + sed -e "/SWIG_PY_INCLUDES=/s/\$ac_cv_python_includes/\\\\\$(PYTHON_INCLUDES)/" -i build/ac-macros/swig.m4 || die "sed failed" + + # 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!" + + eautoconf + elibtoolize + + sed -e "s/libsvn_swig_py-1\.la/libsvn_swig_py-\$(PYTHON_VERSION)-1.la/" -i build-outputs.mk || die "sed failed" +} + +src_configure() { + local myconf + + 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 + *-solaris*) + # -lintl isn't added for some reason (makes Neon check fail) + use nls && append-libs -lintl + ;; + *-aix*) + # avoid recording immediate path to sharedlibs into executables + append-ldflags -Wl,-bnoipath + ;; + *-interix*) + # loader crashes on the LD_PRELOADs... + myconf="${myconf} --disable-local-library-preloading" + ;; + esac + + 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 \ + --enable-local-library-preloading \ + --disable-mod-activation \ + --disable-neon-version-check \ + --disable-static \ + --with-sqlite="${EPREFIX}/usr" +} + +src_compile() { + emake local-all || die "Building of core of Subversion failed" + + if use ctypes-python; then + python_copy_sources subversion/bindings/ctypes-python + rm -fr subversion/bindings/ctypes-python + ctypes_python_bindings_building() { + rm -f subversion/bindings/ctypes-python + ln -s ctypes-python-${PYTHON_ABI} subversion/bindings/ctypes-python + emake ctypes-python + } + python_execute_function \ + --action-message 'Building of Subversion Ctypes Python bindings with $(python_get_implementation) $(python_get_version)' \ + --failure-message 'Building of Subversion Ctypes Python bindings failed with $(python_get_implementation) $(python_get_version)' \ + ctypes_python_bindings_building + fi + + if use python; then + python_copy_sources subversion/bindings/swig/python + rm -fr subversion/bindings/swig/python + swig_python_bindings_building() { + rm -f subversion/bindings/swig/python + ln -s python-${PYTHON_ABI} subversion/bindings/swig/python + emake \ + PYTHON_INCLUDES="-I${EPREFIX}$(python_get_includedir)" \ + PYTHON_VERSION="$(python_get_version)" \ + swig_pydir="${EPREFIX}$(python_get_sitedir)/libsvn" \ + swig_pydir_extra="${EPREFIX}$(python_get_sitedir)/svn" \ + swig-py + } + python_execute_function \ + --action-message 'Building of Subversion SWIG Python bindings with $(python_get_implementation) $(python_get_version)' \ + --failure-message 'Building of Subversion SWIG Python bindings failed with $(python_get_implementation) $(python_get_version)' \ + swig_python_bindings_building + fi + + if use perl; then + emake swig-pl || die "Building of Subversion SWIG Perl bindings failed" + fi + + if use ruby; then + emake swig-rb || die "Building of Subversion SWIG Ruby bindings failed" + fi + + if use java; then + emake -j1 JAVAC_FLAGS="$(java-pkg_javac-args) -encoding iso8859-1" javahl || die "Building of Subversion JavaHL library failed" + fi + + if use emacs; then + elisp-compile contrib/client-side/emacs/{dsvn,psvn,vc-svn}.el doc/svn-doc.el doc/tools/svnbook.el || die "Compilation of Emacs modules failed" + fi + + if use extras; then + emake contrib || die "Building of contrib failed" + emake tools || die "Building of tools failed" + fi + + if use doc; then + doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed" + + if use java; then + emake doc-javahl || die "Building of Subversion JavaHL library HTML documentation failed" + fi + fi +} + +src_install() { + emake -j1 DESTDIR="${D}" local-install || die "Installation of core of Subversion failed" + + if use ctypes-python; then + ctypes_python_bindings_installation() { + rm -f subversion/bindings/ctypes-python + ln -s ctypes-python-${PYTHON_ABI} subversion/bindings/ctypes-python + emake DESTDIR="${D}" install-ctypes-python + } + python_execute_function \ + --action-message 'Installation of Subversion Ctypes Python bindings with $(python_get_implementation) $(python_get_version)' \ + --failure-message 'Installation of Subversion Ctypes Python bindings failed with $(python_get_implementation) $(python_get_version)' \ + ctypes_python_bindings_installation + fi + + if use python; then + swig_python_bindings_installation() { + rm -f subversion/bindings/swig/python + ln -s python-${PYTHON_ABI} subversion/bindings/swig/python + emake \ + DESTDIR="${D}" \ + PYTHON_VERSION="$(python_get_version)" \ + swig_pydir="${EPREFIX}$(python_get_sitedir)/libsvn" \ + swig_pydir_extra="${EPREFIX}$(python_get_sitedir)/svn" \ + install-swig-py + } + python_execute_function \ + --action-message 'Installation of Subversion SWIG Python bindings with $(python_get_implementation) $(python_get_version)' \ + --failure-message 'Installation of Subversion SWIG Python bindings failed with $(python_get_implementation) $(python_get_version)' \ + swig_python_bindings_installation + fi + + if use ctypes-python || use python; then + python_clean_installation_image -q + fi + + if use perl; then + emake DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl || die "Installation of Subversion SWIG Perl bindings failed" + fixlocalpod + find "${ED}" "(" -name .packlist -o -name "*.bs" ")" -print0 | xargs -0 rm -fr + fi + + if use ruby; then + emake DESTDIR="${D}" install-swig-rb || die "Installation of Subversion SWIG Ruby bindings failed" + fi + + if use java; then + emake DESTDIR="${D}" install-javahl || die "Installation of Subversion JavaHL library failed" + java-pkg_regso "${ED}"usr/$(get_libdir)/libsvnjavahl*.so + 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. + dobashcompletion 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 svn_load_dirs.pl. + if use perl; then + dobin contrib/client-side/svn_load_dirs/svn_load_dirs.pl + fi + rm -f contrib/client-side/svn_load_dirs/svn_load_dirs.pl + + # 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 + + # Install documentation. + dodoc CHANGES COMMITTERS README + dodoc tools/xslt/svnindex.{css,xsl} + rm -fr tools/xslt + + # Install Vim syntax files. + if use vim-syntax; then + insinto /usr/share/vim/vimfiles/syntax + doins contrib/client-side/vim/svn.vim + fi + rm -f contrib/client-side/vim/svn.vim + + # Install Emacs Lisps. + if use emacs; then + elisp-install ${PN} contrib/client-side/emacs/{dsvn,psvn}.{el,elc} doc/svn-doc.{el,elc} doc/tools/svnbook.{el,elc} || die "Installation of Emacs modules failed" + elisp-install ${PN}/compat contrib/client-side/emacs/vc-svn.{el,elc} || die "Installation of Emacs modules failed" + touch "${ED}${SITELISP}/${PN}/compat/.nosearch" + elisp-site-file-install "${FILESDIR}/70svn-gentoo.el" || die "Installation of Emacs site-init file failed" + fi + rm -fr contrib/client-side/emacs + + # 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}" contribdir="/usr/$(get_libdir)/subversion/bin" install-contrib || die "Installation of contrib failed" + emake DESTDIR="${D}" toolsdir="/usr/$(get_libdir)/subversion/bin" install-tools || die "Installation of tools failed" + + find contrib tools "(" -name "*.bat" -o -name "*.in" -o -name ".libs" ")" -print0 | xargs -0 rm -fr + rm -fr contrib/client-side/svn-push + rm -fr contrib/server-side/svnstsw + 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} + doins -r contrib tools + fi + + if use doc; then + dohtml -r doc/doxygen/html/* || die "Installation of Subversion HTML documentation failed" + + dodoc -r notes + + if use java; then + java-pkg_dojavadoc doc/javadoc + fi + fi + + find "${D}" '(' -name '*.la' ')' -print0 | xargs -0 rm -f +} + +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.so.0" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")" + NEW_BDB_VERSION="$(scanelf -nq "${ED}usr/$(get_libdir)/libsvn_subr-1.so.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 emacs && elisp-site-regen + use perl && perl-module_pkg_postinst + + if use ctypes-python; then + python_mod_optimize csvn + fi + + if use python; then + python_mod_optimize libsvn svn + fi + + if use apache2; then + elog " - http-based server:" + elog " 1. Edit /etc/conf.d/apache2 to include both \"-D DAV\" and \"-D SVN\"" + elog " 2. Create an htpasswd file:" + elog " htpasswd2 -m -c ${SVN_REPOS_LOC}/conf/svnusers USERNAME" + elog " 3. Fix the repository permissions (see \"Fixing the repository permissions\")" + elog " 4. Restart Apache: /etc/init.d/apache2 restart" + elog + fi + + 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 emacs && elisp-site-regen + use perl && perl-module_pkg_postrm + + if use ctypes-python; then + python_mod_cleanup csvn + fi + + if use python; then + python_mod_cleanup libsvn svn + fi +} + +pkg_config() { + # Remember: Don't use ${EROOT}${SVN_REPOS_LOC} since ${SVN_REPOS_LOC} + # already has EPREFIX in it + einfo "Initializing the database in ${ROOT}${SVN_REPOS_LOC}..." + if [[ -e "${ROOT}${SVN_REPOS_LOC}/repos" ]]; then + echo "A Subversion repository already exists and I will not overwrite it." + echo "Delete \"${ROOT}${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version." + else + mkdir -p "${ROOT}${SVN_REPOS_LOC}/conf" + + einfo "Populating repository directory..." + # Create initial repository. + "${EROOT}usr/bin/svnadmin" create "${ROOT}${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" + enewgroup "${SVNSERVE_GROUP}" + enewuser "${SVNSERVE_USER}" -1 -1 "${SVN_REPOS_LOC}" "${SVNSERVE_GROUP}" + fi + chown -Rf "${SVNSERVE_USER}:${SVNSERVE_GROUP}" "${ROOT}${SVN_REPOS_LOC}/repos" + chmod -Rf go-rwx "${ROOT}${SVN_REPOS_LOC}/conf" + chmod -Rf o-rwx "${ROOT}${SVN_REPOS_LOC}/repos" + fi +} |