From 334602d665b11ab882de2086d610b37295b318f6 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 26 Mar 2018 21:10:40 +0000
Subject: subversion: update to 1.9.7

---
 abs/extra/subversion/PKGBUILD                   | 117 +++++++++++++++---------
 abs/extra/subversion/__changelog                |   2 +-
 abs/extra/subversion/ruby-frozen-nil.patch      |  42 +++++++++
 abs/extra/subversion/subversion.rpath.fix.patch |   7 +-
 abs/extra/subversion/svnserve                   |  42 ---------
 abs/extra/subversion/svnserve.conf              |   2 -
 abs/extra/subversion/svnserve.service           |  11 +++
 abs/extra/subversion/svnserve.tmpfiles          |   1 +
 8 files changed, 132 insertions(+), 92 deletions(-)
 create mode 100644 abs/extra/subversion/ruby-frozen-nil.patch
 delete mode 100755 abs/extra/subversion/svnserve
 create mode 100644 abs/extra/subversion/svnserve.service
 create mode 100644 abs/extra/subversion/svnserve.tmpfiles

diff --git a/abs/extra/subversion/PKGBUILD b/abs/extra/subversion/PKGBUILD
index 0086102..c5bee1f 100644
--- a/abs/extra/subversion/PKGBUILD
+++ b/abs/extra/subversion/PKGBUILD
@@ -1,76 +1,104 @@
-# $Id: PKGBUILD 160577 2012-06-02 10:29:00Z bluewind $
-# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# $Id$
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
 # Contributor: Paul Mattal <paul@archlinux.org>
 # Contributor: Jason Chu <jason@archlinux.org>
 
 pkgname=subversion
-pkgver=1.7.5
-pkgrel=2
+pkgver=1.9.7
+pkgrel=4
 pkgdesc="A Modern Concurrent Version Control System"
-arch=('i686' 'x86_64')
+arch=('x86_64')
+url="http://subversion.apache.org/"
 license=('APACHE')
-depends=('neon' 'apr-util' 'sqlite' 'file')
-#optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion' \
-optdepends=('bash-completion: for svn bash completion' \
-            'python2: for some hook scripts') 
-
-makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'autoconf' 'db' 'e2fsprogs')
+depends=('sqlite' 'file' 'serf' 'systemd')
+makedepends=('apache' 'python2' 'perl' 'swig' 'java-environment'
+             'libgnome-keyring' 'ruby')
+optdepends=('libgnome-keyring: for GNOME Keyring for auth credentials'
+            'kdebase-runtime: for KWallet for auth credentials'
+            'bash-completion: for svn bash completion'
+            'python2: for some hook scripts'
+            'java-environment: for Java support'
+            'ruby: for some hook scripts')
+provides=('svn')
 backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve')
+options=('!makeflags' '!emptydirs')
+source=(https://www.apache.org/dist/subversion/subversion-${pkgver}.tar.bz2{,.asc}
+        svn
+        svnserve.conf
+        svnserve.tmpfiles
+        svnserve.service
+        subversion.rpath.fix.patch
+        ruby-frozen-nil.patch)
+sha512sums=('a55efd3edaddbc099450d849fcc6fe5a8d20b85ece966d8ac2fd73ee9cb4255a0349bbcfceb4e9fca6daf054ce7c648eff8d273c6873f5dade6e62dcea7eeb2b'
+            'SKIP'
+            '3df59e92aa0314ff6adce26e2e1162bf2872ca03ff1f78891081a60e67b521b6046b4a2f85f718dcd27f9d5709594658817a09548cdb74e3976d371dbe47e7db'
+            'f7f2ceac2446cc94ac2be3404083cc54a0f1f4d04d5301f600dfafca38819669bcffdfa45f1b90b9f3cdb042469385a764f11dc1a827f10c23ddf73b7ac6c9da'
+            '7775f4da5003970c9ebdc2f696ba090df194a77d9daed791875488c943f72ae496b5f9cc6f3ff9f3f4de9f352a3b518137babdea38947d1a2d5dd16aa1844036'
+            '8cc23ae71bd7ce7c337eaf12929f1af0a11b55250808e88f06397b874daf2efb9491c464be3d082d937a82c2b0b7c3ed06d6695cfd8a3fda1f803bbfd15837de'
+            '60d538160e738eb3b3e84a3881fe5a8d75c79053d3f31c4c29ef6ace6ccc5dd4367ed712766c911bae3436e9706e4dd144b270bb45161a6c1834a37e154d0440'
+            'bb772e55acd9601121ad06b254c364e8d8cf772ca59b8df0cf4c5c5ecba110d4108d0363672f121f770550cdd052802474029e57643258f398aacd2b63ccb898')
+validpgpkeys=('19BBCAEF7B19B280A0E2175E62D48FAD16A0DE01'
+              '8BC4DAE0C5A4D65F404401074F7DBAA99A59B973'
+              'BA3C15B1337CF0FB222BD41A1BCA6586A347943F'
+              'E7B2A7F4EC28BE9FF8B38BA4B64FFF1209F9FA74'
+              '3D1DC66D6D2E0B9039528138C4A6C625CCC8E1DF')
+# Ben Reser / Stefan Sperling / Branko Čibej / Evgeny Kotkov / Bert Huijben
 
-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 subversion.rpath.fix.patch)
-sha1sums=('05c079762690d5ac1ccd2549742e7ef70fa45cf1'
-          'b267cba19b4f56360657a5bf5b231950e027a45a'
-          '64ba3e6ebafc08ac62f59d788f7a825fdce69573'
-          '73b36c046c09cec2093354911c89e3ba8056af6c'
-          'ad117bf3b2a838a9a678a93fd8db1a066ad46c41'
-          '3d1e28408a9abb42af2e531adc0d01ce21acfad6')
+prepare() {
+   cd ${pkgname}-${pkgver}
+   patch -Np0 -i ../subversion.rpath.fix.patch
+   patch -p1 -i ../ruby-frozen-nil.patch
+   sed -i 's|/usr/bin/env python|/usr/bin/env python2|' tools/hook-scripts/{,mailer/{,tests/}}*.py subversion/tests/cmdline/*.py
+}
 
 build() {
-   cd "${srcdir}/${pkgname}-${pkgver}"
+   cd ${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
-
    ./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
+               --with-zlib=/usr --with-serf=/usr --with-apxs \
+               --with-sqlite=/usr \
+               --enable-javahl --with-jdk=/usr/lib/jvm/default \
+               --with-gnome-keyring --without-kwallet \
+               --with-apache-libexecdir=/usr/lib/httpd/modules \
+               --with-ruby-sitedir=/usr/lib/ruby/vendor_ruby \
+               --disable-static
 
-   make external-all
-   make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all
+   make LT_LDFLAGS="-L$Fdestdir/usr/lib"
    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
+     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
-#}
+check() {
+   cd ${pkgname}-${pkgver}
+   export LANG=C LC_ALL=C
+   make check check-swig-pl check-swig-py check-swig-rb CLEANUP=yes # check-javahl
+}
 
 package() {
-   cd "${srcdir}/${pkgname}-${pkgver}"
+   cd ${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 install-swig-py install-swig-pl install-javahl install-swig-rb
 
-   install -d "${pkgdir}"/usr/share/subversion
+   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 ...
 
-   install -D -m 755 "${srcdir}"/svnserve "${pkgdir}"/etc/rc.d/svnserve
+   # xinetd
    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 \
@@ -79,3 +107,4 @@ package() {
       ln -sf subversion "${pkgdir}"/usr/share/bash-completion/completions/${i}
    done
 }
+
diff --git a/abs/extra/subversion/__changelog b/abs/extra/subversion/__changelog
index 24ce429..8b2015e 100644
--- a/abs/extra/subversion/__changelog
+++ b/abs/extra/subversion/__changelog
@@ -1 +1 @@
-remove java,kdelibs , libgnome
+PKGBUILD: remove dep kdelibs and --without-kwallet
diff --git a/abs/extra/subversion/ruby-frozen-nil.patch b/abs/extra/subversion/ruby-frozen-nil.patch
new file mode 100644
index 0000000..ef29bc1
--- /dev/null
+++ b/abs/extra/subversion/ruby-frozen-nil.patch
@@ -0,0 +1,42 @@
+commit 6c69127693e9e395c026d982f871253548037a4d
+Author: James McCoy <jamessan@debian.org>
+Date:   Sun Nov 8 23:06:45 2015 -0500
+
+    Create a new Ruby Object instead of attempting to modify nil.
+    
+    Starting in Ruby 2.2, the nil, true, and false objects are frozen.  This
+    was causing test_repos.rb's test_load to fail due to calling
+    "repos.load_fs(nil)".  This results in svn_swig_rb_make_stream trying to
+    attributes on nil, which isn't allowed.
+    
+    * subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c:
+      (svn_swig_rb_make_stream): Create a new Object if the given io is nil.
+       Also call svn_swig_rb_get_pool in order to deduplicate some
+       pool-handling code.
+
+diff --git a/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c b/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
+index a25ec5a..2210853 100644
+--- a/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
++++ b/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
+@@ -3230,14 +3230,16 @@ svn_swig_rb_make_stream(VALUE io)
+     stream_p = &stream;
+     r2c_swig_type2(io, "svn_stream_t *", (void **)stream_p);
+   } else {
++    if (NIL_P(io)) {
++      io = rb_class_new_instance(0, NULL, rb_cObject);
++    }
+     VALUE rb_pool = rb_pool_new(Qnil);
+-    apr_pool_wrapper_t *pool_wrapper;
+-    apr_pool_wrapper_t **pool_wrapper_p;
++    apr_pool_t *pool;
++
++    svn_swig_rb_get_pool(0, NULL, io, &rb_pool, &pool);
+ 
+     rb_set_pool(io, rb_pool);
+-    pool_wrapper_p = &pool_wrapper;
+-    r2c_swig_type2(rb_pool, "apr_pool_wrapper_t *", (void **)pool_wrapper_p);
+-    stream = svn_stream_create((void *)io, pool_wrapper->pool);
++    stream = svn_stream_create((void *)io, pool);
+     svn_stream_set_read2(stream, NULL /* only full read support */,
+                          read_handler_rbio);
+     svn_stream_set_write(stream, write_handler_rbio);
diff --git a/abs/extra/subversion/subversion.rpath.fix.patch b/abs/extra/subversion/subversion.rpath.fix.patch
index ba6ee9e..aaec8fd 100644
--- a/abs/extra/subversion/subversion.rpath.fix.patch
+++ b/abs/extra/subversion/subversion.rpath.fix.patch
@@ -3,8 +3,9 @@
 @@ -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; $(PERL) Makefile.PL PREFIX=$(prefix)
 +	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
+ # There is a "readlink -f" command on some systems for the same purpose,
+ # but it's not as portable (e.g. Mac OS X doesn't have it).  These should
+ # only be used where Python/Perl are known to be available.
diff --git a/abs/extra/subversion/svnserve b/abs/extra/subversion/svnserve
deleted file mode 100755
index 670fee7..0000000
--- a/abs/extra/subversion/svnserve
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/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/abs/extra/subversion/svnserve.conf b/abs/extra/subversion/svnserve.conf
index 37fb7ea..f4dc40f 100644
--- a/abs/extra/subversion/svnserve.conf
+++ b/abs/extra/subversion/svnserve.conf
@@ -3,5 +3,3 @@
 #
 #SVNSERVE_ARGS="-r /path/to/some/repos"
 SVNSERVE_ARGS=""
-
-#SVNSERVE_USER="svn"
diff --git a/abs/extra/subversion/svnserve.service b/abs/extra/subversion/svnserve.service
new file mode 100644
index 0000000..713aba5
--- /dev/null
+++ b/abs/extra/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 $SVNSERVE_ARGS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/extra/subversion/svnserve.tmpfiles b/abs/extra/subversion/svnserve.tmpfiles
new file mode 100644
index 0000000..e8487d3
--- /dev/null
+++ b/abs/extra/subversion/svnserve.tmpfiles
@@ -0,0 +1 @@
+D /run/svnserve 0700 root root -
-- 
cgit v0.12

