[arch-commits] Commit in subversion/trunk (PKGBUILD ruby-27.patch)

Anatol Pomozov anatolik at archlinux.org
Tue Dec 31 20:34:22 UTC 2019


    Date: Tuesday, December 31, 2019 @ 20:34:21
  Author: anatolik
Revision: 372416

upgpkg: subversion 1.13.0-1: Ruby 2.7 rebuild

Added:
  subversion/trunk/ruby-27.patch
Modified:
  subversion/trunk/PKGBUILD

---------------+
 PKGBUILD      |    4 ++++
 ruby-27.patch |   44 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-12-31 18:07:16 UTC (rev 372415)
+++ PKGBUILD	2019-12-31 20:34:21 UTC (rev 372416)
@@ -25,6 +25,7 @@
 backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve')
 options=('!makeflags' '!emptydirs')
 source=(https://www.apache.org/dist/subversion/subversion-${pkgver}.tar.bz2{,.asc}
+        ruby-27.patch
         svn
         svnserve.conf
         svnserve.tmpfiles
@@ -33,6 +34,7 @@
         ruby-frozen-nil.patch)
 sha512sums=('36f390b412bf772bf894efc2aadc247f12ca30ac407e04f664c14411c3519e1bb242d1239f2f44cbcb86eafc7c413efc8eadbfe1d1e75118235a7b7adc6c85b2'
             'SKIP'
+            '4057e4bb08da476c029629091f5c8a1c7c72104412baaf39b0e2bd69b64ff7963a1c10b210eb6e2275024cd3f697b7793f257a609c3278f31f5dec36d080594e'
             '3df59e92aa0314ff6adce26e2e1162bf2872ca03ff1f78891081a60e67b521b6046b4a2f85f718dcd27f9d5709594658817a09548cdb74e3976d371dbe47e7db'
             'f7f2ceac2446cc94ac2be3404083cc54a0f1f4d04d5301f600dfafca38819669bcffdfa45f1b90b9f3cdb042469385a764f11dc1a827f10c23ddf73b7ac6c9da'
             '7775f4da5003970c9ebdc2f696ba090df194a77d9daed791875488c943f72ae496b5f9cc6f3ff9f3f4de9f352a3b518137babdea38947d1a2d5dd16aa1844036'
@@ -58,6 +60,8 @@
    sed -i 's|/usr/bin/env python|/usr/bin/env python2|' tools/hook-scripts/{,mailer/{,tests/}}*.py subversion/tests/cmdline/*.py
    rm subversion/bindings/swig/proxy/*.swg
 
+   patch -p1 < ../ruby-27.patch # https://issues.apache.org/jira/browse/SVN-4841
+
    ./autogen.sh
 }
 

Added: ruby-27.patch
===================================================================
--- ruby-27.patch	                        (rev 0)
+++ ruby-27.patch	2019-12-31 20:34:21 UTC (rev 372416)
@@ -0,0 +1,44 @@
+commit 7aa586a6e7235bdbc7ad551e6853fe24a0dcf991
+Author: Anatol Pomozov <anatol.pomozov at gmail.com>
+Date:   Tue Dec 31 08:48:46 2019 -0800
+
+    Fix issue #4841: do not include internal ruby include paths
+    
+    Building subversion with ruby2.7 produces a compilation warning:
+    
+    subversion/bindings/swig/ruby/svn_client.c:1666:13: warning: implicit declaration of function ‘assert’ [-Wimplicit-function-declaration]
+     1666 | assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
+     | ^~~~~~
+    
+    And later tests fail with:
+    
+    /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': /build/subversion/src/subversion-1.13.0/subversion/bindings/swig/ruby/libsvn_swig_ruby/.libs/libsvn_swig_ruby-1.so.0: undefined symbol: assert - /build/subversion/src/subversion-1.13.0/subversion/bindings/swig/ruby/.ext/svn/ext/core.so (LoadError)
+            from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
+            from /build/subversion/src/subversion-1.13.0/subversion/bindings/swig/ruby/svn/error.rb:21:in `<top (required)>'
+            from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
+            from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
+            from /build/subversion/src/subversion-1.13.0/subversion/bindings/swig/ruby/svn/core.rb:25:in `<top (required)>'
+            from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
+            from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
+            from /build/subversion/src/subversion-1.13.0/subversion/bindings/swig/ruby/test/run-test.rb:47:in `<main>'
+    make: *** [Makefile:962: check-swig-rb] Error 1
+    
+    It turns out that ruby 2.7 added a new header file '$RUBY_TOP/ruby/assert.h'.
+    Subversion includes both $RUBY_TOP and $RUBY_TOP/ruby and it makes "assert.h" to
+    be resolved to ruby's version instead of libc one.
+    
+    To fix this problem subversion should use only $RUBY_TOP and avoid using internal ruby paths.
+
+diff --git a/build/ac-macros/swig.m4 b/build/ac-macros/swig.m4
+index bc2599038f..c707a8c282 100644
+--- a/build/ac-macros/swig.m4
++++ b/build/ac-macros/swig.m4
+@@ -230,7 +230,7 @@ AC_DEFUN(SVN_FIND_SWIG,
+     AC_CACHE_CHECK([for Ruby include path], [svn_cv_ruby_includes],[
+     if test -d "$rbconfig_rubyhdrdir"; then
+       dnl Ruby >=1.9
+-      svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir -I$rbconfig_rubyhdrdir/ruby -I$rbconfig_rubyhdrdir/ruby/backward"
++      svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir"
+       if test -d "$rbconfig_rubyarchhdrdir"; then
+         dnl Ruby >=2.0
+         svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyarchhdrdir"



More information about the arch-commits mailing list