From 4a701d607c90ab5fdadbbe59b468df93e4293244 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 17 Aug 2012 00:02:31 +0000 Subject: Fri Aug 17 00:02:30 UTC 2012 --- testing/subversion/PKGBUILD | 99 ++++++++++++++++++++++ .../subversion-1.7.6-kwallet-gcc47.patch | 56 ++++++++++++ testing/subversion/subversion.rpath.fix.patch | 10 +++ testing/subversion/svn | 11 +++ testing/subversion/svnserve | 42 +++++++++ testing/subversion/svnserve.conf | 7 ++ testing/subversion/svnserve.service | 11 +++ testing/subversion/svnserve.tmpfiles | 1 + 8 files changed, 237 insertions(+) create mode 100644 testing/subversion/PKGBUILD create mode 100644 testing/subversion/subversion-1.7.6-kwallet-gcc47.patch create mode 100644 testing/subversion/subversion.rpath.fix.patch create mode 100644 testing/subversion/svn create mode 100755 testing/subversion/svnserve create mode 100644 testing/subversion/svnserve.conf create mode 100644 testing/subversion/svnserve.service create mode 100644 testing/subversion/svnserve.tmpfiles (limited to 'testing/subversion') diff --git a/testing/subversion/PKGBUILD b/testing/subversion/PKGBUILD new file mode 100644 index 000000000..6c5931c19 --- /dev/null +++ b/testing/subversion/PKGBUILD @@ -0,0 +1,99 @@ +# $Id: PKGBUILD 165314 2012-08-15 13:09:50Z stephane $ +# Maintainer: Stéphane Gaudreault +# Contributor: Paul Mattal +# Contributor: Jason Chu + +pkgname=subversion +pkgver=1.7.6 +pkgrel=1 +pkgdesc="A Modern Concurrent Version Control System" +arch=('i686' 'x86_64') +license=('APACHE') +depends=('neon' 'apr-util' 'sqlite' 'file') +optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion' \ + 'python2: for some hook scripts' 'java-environment') #'ruby: for some hook scripts') +makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'java-runtime' 'java-environment' + 'autoconf' 'db' 'e2fsprogs' 'libgnome-keyring' 'kdelibs') +backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve') +url="http://subversion.apache.org/" +provides=('svn') +options=('!makeflags' '!libtool' '!emptydirs') +source=(http://apache.mirror.rafal.ca/subversion/$pkgname-$pkgver.tar.bz2{,.asc} + svnserve + svn + svnserve.conf + svnserve.tmpfiles + svnserve.service + subversion-1.7.6-kwallet-gcc47.patch + subversion.rpath.fix.patch) +sha1sums=('5b76a9f49e2c4bf064041a7d6b1bfcc3aa4ed068' + 'd8d99c01c49b189047389816b720923f1d9dbf2a' + '64ba3e6ebafc08ac62f59d788f7a825fdce69573' + '73b36c046c09cec2093354911c89e3ba8056af6c' + 'ad117bf3b2a838a9a678a93fd8db1a066ad46c41' + '00cc36e69077a8c45674ead6dd62a7647b3a3b6d' + '9f6790d842cf3e0228b007483a43e39a42724068' + 'aa0d01e606de2ebc5eed9c533d218d37a217c50c' + '3d1e28408a9abb42af2e531adc0d01ce21acfad6') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + export PYTHON=/usr/bin/python2 + + patch -p0 -i ../subversion.rpath.fix.patch + sed -i 's|/usr/bin/env python|/usr/bin/env python2|' tools/hook-scripts/{,mailer/{,tests/}}*.py + + patch -Np1 -i ../subversion-1.7.6-kwallet-gcc47.patch + + ./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \ + --with-zlib=/usr --with-neon=/usr --with-apxs \ + --with-sqlite=/usr --with-berkeley-db=:/usr/include/:/usr/lib:db-5.3 \ + --enable-javahl --with-gnome-keyring --with-kwallet + + make external-all + make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all + make swig_pydir=/usr/lib/python2.7/site-packages/libsvn \ + swig_pydir_extra=/usr/lib/python2.7/site-packages/svn swig-py swig-pl javahl #swig-rb +} + +#check() { +# cd "${srcdir}/${pkgname}-${pkgver}" +# export LANG=C LC_ALL=C +# make check check-swig-pl check-swig-py check-javahl CLEANUP=yes # check-swig-rb +#} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + export LD_LIBRARY_PATH="${pkgdir}"/usr/lib:${LD_LIBRARY_PATH} + make DESTDIR="${pkgdir}" INSTALLDIRS=vendor \ + swig_pydir=/usr/lib/python2.7/site-packages/libsvn \ + swig_pydir_extra=/usr/lib/python2.7/site-packages/svn \ + install install-swig-py install-swig-pl install-javahl #install-swig-rb + + install -dm755 "${pkgdir}"/usr/share/subversion + cp -a tools/hook-scripts "${pkgdir}"/usr/share/subversion/ + rm "${pkgdir}"/usr/share/subversion/hook-scripts/*.in + + rm "${pkgdir}"/usr/lib/perl5/vendor_perl/auto/SVN/_Core/.packlist + rm -r "${pkgdir}"/usr/lib/perl5/core_perl + + ## svnserve ... + + # ... iniscript/xinetd + install -D -m 755 "${srcdir}"/svnserve "${pkgdir}"/etc/rc.d/svnserve + install -D -m 644 "${srcdir}"/svn "${pkgdir}"/etc/xinetd.d/svn + + # ... systemd + install -D -m 644 "${srcdir}"/svnserve.service "${pkgdir}"/usr/lib/systemd/system/svnserve.service + install -D -m 644 "${srcdir}"/svnserve.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/svnserve.conf + + # ... common config + install -D -m 644 "${srcdir}"/svnserve.conf "${pkgdir}"/etc/conf.d/svnserve + + install -Dm 644 tools/client-side/bash_completion \ + "${pkgdir}"/usr/share/bash-completion/completions/subversion + for i in svn svnadmin svndumpfilter svnlook svnsync svnversion; do + ln -sf subversion "${pkgdir}"/usr/share/bash-completion/completions/${i} + done +} diff --git a/testing/subversion/subversion-1.7.6-kwallet-gcc47.patch b/testing/subversion/subversion-1.7.6-kwallet-gcc47.patch new file mode 100644 index 000000000..a571c3c3c --- /dev/null +++ b/testing/subversion/subversion-1.7.6-kwallet-gcc47.patch @@ -0,0 +1,56 @@ +diff -Naur subversion-1.7.5.ori/subversion/libsvn_auth_kwallet/kwallet.cpp subversion-1.7.5/subversion/libsvn_auth_kwallet/kwallet.cpp +--- subversion-1.7.5.ori/subversion/libsvn_auth_kwallet/kwallet.cpp 2010-12-30 15:46:50.000000000 -0500 ++++ subversion-1.7.5/subversion/libsvn_auth_kwallet/kwallet.cpp 2012-08-14 19:43:16.694275908 -0400 +@@ -60,6 +60,9 @@ + /* KWallet simple provider, puts passwords in KWallet */ + /*-----------------------------------------------------------------------*/ + ++static int q_argc = 1; ++static char q_argv0[] = "svn"; // Build non-const char * from string constant ++static char *q_argv[] = { q_argv0 }; + + static const char * + get_application_name(apr_hash_t *parameters, +@@ -175,6 +178,10 @@ + "kwallet-initialized", + APR_HASH_KEY_STRING, + NULL); ++ apr_hash_set(parameters, ++ "kwallet-wallet", ++ APR_HASH_KEY_STRING, ++ NULL); + } + return APR_SUCCESS; + } +@@ -203,12 +210,11 @@ + QCoreApplication *app; + if (! qApp) + { +- int argc = 1; +- app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"}); ++ int argc = q_argc; ++ app = new QCoreApplication(argc, q_argv); + } + +- KCmdLineArgs::init(1, +- (char *[1]) {(char *) "svn"}, ++ KCmdLineArgs::init(q_argc, q_argv, + get_application_name(parameters, pool), + "subversion", + ki18n(get_application_name(parameters, pool)), +@@ -273,12 +279,11 @@ + QCoreApplication *app; + if (! qApp) + { +- int argc = 1; +- app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"}); ++ int argc = q_argc; ++ app = new QCoreApplication(argc, q_argv); + } + +- KCmdLineArgs::init(1, +- (char *[1]) {(char *) "svn"}, ++ KCmdLineArgs::init(q_argc, q_argv, + get_application_name(parameters, pool), + "subversion", + ki18n(get_application_name(parameters, pool)), diff --git a/testing/subversion/subversion.rpath.fix.patch b/testing/subversion/subversion.rpath.fix.patch new file mode 100644 index 000000000..ba6ee9e4e --- /dev/null +++ b/testing/subversion/subversion.rpath.fix.patch @@ -0,0 +1,10 @@ +--- Makefile.in.orig 2009-02-16 14:10:48.000000000 -0200 ++++ Makefile.in 2009-06-04 00:56:29.000000000 -0300 +@@ -678,6 +678,7 @@ + + $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL + cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL ++ cd $(SWIG_PL_DIR)/native; sed -i 's|LD_RUN_PATH|DIE_RPATH_DIE|g' Makefile{,.{client,delta,fs,ra,repos,wc}} + + swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \ + $(SWIG_PL_DIR)/native/Makefile diff --git a/testing/subversion/svn b/testing/subversion/svn new file mode 100644 index 000000000..8988aaf63 --- /dev/null +++ b/testing/subversion/svn @@ -0,0 +1,11 @@ +service svn +{ + flags = REUSE + socket_type = stream + wait = no + user = root + server = /usr/bin/svnserve + server_args = -i + log_on_failure += USERID + disable = yes +} diff --git a/testing/subversion/svnserve b/testing/subversion/svnserve new file mode 100755 index 000000000..670fee742 --- /dev/null +++ b/testing/subversion/svnserve @@ -0,0 +1,42 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/svnserve + +PID=`pidof -o %PPID /usr/bin/svnserve` +case "$1" in + start) + stat_busy "Starting svnserve" + if [ -z "$PID" ]; then + if [ -n "$SVNSERVE_USER" ]; then + su -s '/bin/sh' $SVNSERVE_USER -c "/usr/bin/svnserve -d $SVNSERVE_ARGS" & + else + /usr/bin/svnserve -d $SVNSERVE_ARGS & + fi + fi + if [ ! -z "$PID" -o $? -gt 0 ]; then + stat_fail + else + add_daemon svnserve + stat_done + fi + ;; + stop) + stat_busy "Stopping svnserve" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon svnserve + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac diff --git a/testing/subversion/svnserve.conf b/testing/subversion/svnserve.conf new file mode 100644 index 000000000..37fb7ea10 --- /dev/null +++ b/testing/subversion/svnserve.conf @@ -0,0 +1,7 @@ +# +# Parameters to be passed to svnserve +# +#SVNSERVE_ARGS="-r /path/to/some/repos" +SVNSERVE_ARGS="" + +#SVNSERVE_USER="svn" diff --git a/testing/subversion/svnserve.service b/testing/subversion/svnserve.service new file mode 100644 index 000000000..d8a8e10c1 --- /dev/null +++ b/testing/subversion/svnserve.service @@ -0,0 +1,11 @@ +[Unit] +Description=Subversion protocol daemon +After=syslog.target network.target + +[Service] +Type=forking +EnvironmentFile=/etc/conf.d/svnserve +ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $SVNSERVE_ARGS + +[Install] +WantedBy=multi-user.target diff --git a/testing/subversion/svnserve.tmpfiles b/testing/subversion/svnserve.tmpfiles new file mode 100644 index 000000000..e8487d373 --- /dev/null +++ b/testing/subversion/svnserve.tmpfiles @@ -0,0 +1 @@ +D /run/svnserve 0700 root root - -- cgit v1.2.3-54-g00ecf