]> git.pld-linux.org Git - packages/subversion.git/commitdiff
- added ctypes,perl patches to fix out-of-tree builds
authorJakub Bogusz <qboosh@pld-linux.org>
Fri, 15 Jul 2022 17:48:50 +0000 (19:48 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Fri, 15 Jul 2022 17:48:50 +0000 (19:48 +0200)
- added swig-py patch to allow adding libsvn_swig_py suffix and python install options
- changed main build process to python3
- build python2 bindings in additional process
- release 2

subversion-convert-typemaps-to-ifdef.py [deleted file]
subversion-ctypes.patch [new file with mode: 0644]
subversion-perl.patch [new file with mode: 0644]
subversion-swig-py.patch [new file with mode: 0644]
subversion.spec

diff --git a/subversion-convert-typemaps-to-ifdef.py b/subversion-convert-typemaps-to-ifdef.py
deleted file mode 100644 (file)
index 9701f37..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import os
-import re
-import glob
-
-
-lang2LANG = { 'python': 'PYTHON', 'perl5': 'PERL', 'ruby': 'RUBY' }
-
-
-class Queue:
-  type_blank, type_mapbegin, type_mapcont, type_other = range(4)
-
-  def __init__(self, ofp):
-    self.queue = []
-    self.lang_on_queue = None
-    self.ofp = ofp
-
-  def enqueue(self, type, lang, line):
-    if lang is not None:
-      assert type == self.type_mapbegin
-      if self.lang_on_queue != lang:
-        self.flush()
-        self.lang_on_queue = lang
-    if type == self.type_other:
-      self.flush()
-      self.ofp.write(line)
-    else:
-      self.queue.append((type, line))
-
-  def flush(self):
-    while self.queue and self.queue[0][0] == self.type_blank:
-      self.ofp.write(self.queue.pop(0)[1])
-    if not self.queue:
-      return
-    assert (self.queue[0][0] == self.type_mapbegin and
-        self.lang_on_queue is not None)
-    self.ofp.write('#ifdef SWIG%s\n' % lang2LANG[self.lang_on_queue])
-    local_blank_queue = []
-    for i in self.queue:
-      if i[0] == self.type_blank:
-        local_blank_queue.append(i[1])
-      else:
-        for j in local_blank_queue:
-          self.ofp.write(j)
-          del local_blank_queue[:]
-        self.ofp.write(i[1])
-    del self.queue[:]
-    self.ofp.write('#endif\n')
-    for j in local_blank_queue:
-      self.ofp.write(j)
-    self.lang_on_queue = None
-
-
-def process_file(fname):
-  old_fname = fname + '.old'
-  os.rename(fname, old_fname)
-  ifp = open(old_fname, 'r')
-  ifpiter = iter(ifp)
-  ofp = open(fname, 'w')
-  q = Queue(ofp)
-  re_blank = re.compile(r'^\s*$')
-  re_mapbegin = re.compile(r'(?s)^%typemap\((python|perl5|ruby), ?(.*$)')
-  re_mapend = re.compile(r'^(?:}\s*|%typemap.*;)$')
-  try:
-    for i in ifpiter:
-      if re_blank.match(i):
-        q.enqueue(q.type_blank, None, i)
-        continue
-      m = re_mapbegin.match(i)
-      if m:
-        q.enqueue(q.type_mapbegin, m.group(1), '%typemap('+m.group(2))
-        bracketlevel = 0
-        any_brackets = False
-        while 1:
-          bracketlevel += i.count('{')
-          if bracketlevel:
-            any_brackets = True
-          bracketlevel -= i.count('}')
-          if not bracketlevel and (any_brackets or i.endswith(';\n')):
-            break
-          i = ifpiter.next()
-          if re_mapbegin.match(i):
-            sys.stderr.write('In %r, saw typemap opener before closing '
-                'previous!?\n' % fname)
-            ofp.write('##### TYPEMAP OPEN FROM HERE NOT CLOSED #####\n')
-          q.enqueue(q.type_mapcont, None, i)
-        continue
-      q.enqueue(q.type_other, None, i)
-  except StopIteration:
-    sys.stderr.write('In %r, hit EOF inside typemap!?\n' % fname)
-    ofp.write('##### EOF HIT WITH TYPEMAP OPEN FROM HERE #####\n')
-  q.flush()
-  ifp.close()
-  ofp.close()
-
-
-def main():
-  action_files = glob.glob('*.i') + glob.glob('include/*.swg')
-  for file in action_files:
-    process_file(file)
-
-
-if __name__ == '__main__':
-  main()
diff --git a/subversion-ctypes.patch b/subversion-ctypes.patch
new file mode 100644 (file)
index 0000000..4d17bde
--- /dev/null
@@ -0,0 +1,26 @@
+--- subversion-1.14.2/Makefile.in.orig 2022-07-14 22:54:57.153438576 +0200
++++ subversion-1.14.2/Makefile.in      2022-07-15 16:50:34.931311752 +0200
+@@ -213,7 +213,7 @@ LT_COMPILE = $(LIBTOOL) $(LTFLAGS) --mod
+ LT_COMPILE_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS)
+ LT_COMPILE_CXX_NOWARN = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX_NOWARN) $(LT_CFLAGS)
+ # Execute a command that loads libraries from the build dir
+-LT_EXECUTE = $(LIBTOOL) $(LTFLAGS) --mode=execute `for f in $(abs_builddir)/subversion/*/*.la; do echo -dlopen $$f; done`
++LT_EXECUTE = $(LIBTOOL) $(LTFLAGS) --mode=execute `for f in $(abs_builddir)/subversion/*/lib*.la; do echo -dlopen $$f; done`
+ # special compilation for files destined for mod_dav_svn
+ COMPILE_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CFLAGS) $(CMAINTAINERFLAGS) $(LT_CFLAGS) $(APACHE_INCLUDES) $(INCLUDES) -o $@ -c -shared
+@@ -1000,11 +1000,12 @@ install-swig-rb-doc:
+ # ctypes-python make targets
+ ctypes-python: local-all
+-      $(SHELL) $(abs_srcdir)/build/run_ctypesgen.sh "$(LT_EXECUTE)" "$(CPPFLAGS)" "$(EXTRA_CTYPES_LDFLAGS)" "$(PYTHON)" "$(CTYPESGEN)" "$(abs_srcdir)" "$(abs_builddir)" "$(libdir)" "$(SVN_APR_CONFIG)" "$(SVN_APRUTIL_CONFIG)" "$(CPP)"
++      $(SHELL) $(abs_srcdir)/build/run_ctypesgen.sh "$(LT_EXECUTE)" "$(CPPFLAGS)" "$(EXTRA_CTYPES_LDFLAGS)" "$(PYTHON)" "$(CTYPESGEN)" "$(abs_srcdir)" "$(abs_builddir)" "$(libdir)" "$(SVN_APR_CONFIG)" "$(SVN_APRUTIL_CONFIG)" "$(CPP)" && \
++        cd $(CTYPES_PYTHON_SRC_DIR) && $(PYTHON) setup.py build --build-base="$(abs_builddir)"
+ install-ctypes-python: ctypes-python
+       cd $(CTYPES_PYTHON_SRC_DIR); \
+-        $(PYTHON) setup.py install --prefix="$(DESTDIR)$(prefix)"
++        $(PYTHON) setup.py build --build-base="$(abs_builddir)" install --optimize=2 --prefix="$(prefix)" --root="$(DESTDIR)" $(PY_INSTALLOPTS)
+ check-ctypes-python: ctypes-python
+       cd $(CTYPES_PYTHON_SRC_DIR); \
diff --git a/subversion-perl.patch b/subversion-perl.patch
new file mode 100644 (file)
index 0000000..88f23aa
--- /dev/null
@@ -0,0 +1,11 @@
+--- subversion-1.14.2/Makefile.in.orig 2022-07-14 22:54:57.153438576 +0200
++++ subversion-1.14.2/Makefile.in      2022-07-15 16:38:46.332821294 +0200
+@@ -881,7 +881,7 @@ $(SWIG_PL_DIR)/native/Makefile.PL: $(SWI
+       ./config.status subversion/bindings/swig/perl/native/Makefile.PL
+ $(SWIG_PL_DIR)/native/Makefile: libsvn_swig_perl $(SWIG_PL_DIR)/native/Makefile.PL
+-      cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL PREFIX=$(prefix)
++      cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL PREFIX=$(prefix) INSTALLDIRS=vendor
+ # 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
diff --git a/subversion-swig-py.patch b/subversion-swig-py.patch
new file mode 100644 (file)
index 0000000..613b57c
--- /dev/null
@@ -0,0 +1,193 @@
+--- subversion-1.14.2/build-outputs.mk.orig    2022-04-02 13:38:35.000000000 +0200
++++ subversion-1.14.2/build-outputs.mk 2022-07-15 16:27:35.677946147 +0200
+@@ -538,8 +538,8 @@ subversion/bindings/swig/perl/libsvn_swi
+ libsvn_swig_py_PATH = subversion/bindings/swig/python/libsvn_swig_py
+ libsvn_swig_py_DEPS = subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.lo subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
+ libsvn_swig_py_OBJECTS = swigutil_py.lo
+-subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la: $(libsvn_swig_py_DEPS)
+-      cd subversion/bindings/swig/python/libsvn_swig_py && $(LINK) $(libsvn_swig_py_LDFLAGS) -o libsvn_swig_py-1.la $(LT_NO_UNDEFINED) $(libsvn_swig_py_OBJECTS) ../../../../../subversion/libsvn_client/libsvn_client-1.la ../../../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(SVN_PYTHON_LIBS) $(SVN_SWIG_LIBS) $(LIBS)
++subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la: $(libsvn_swig_py_DEPS)
++      cd subversion/bindings/swig/python/libsvn_swig_py && $(LINK) $(libsvn_swig_py_LDFLAGS) -o libsvn_swig_py$(PY_SUF)-1.la $(LT_NO_UNDEFINED) $(libsvn_swig_py_OBJECTS) ../../../../../subversion/libsvn_client/libsvn_client-1.la ../../../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(SVN_PYTHON_LIBS) $(SVN_SWIG_LIBS) $(LIBS)
+ libsvn_swig_ruby_PATH = subversion/bindings/swig/ruby/libsvn_swig_ruby
+ libsvn_swig_ruby_DEPS = subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.lo subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
+@@ -714,52 +714,52 @@ subversion/tests/libsvn_wc/pristine-stor
+       cd subversion/tests/libsvn_wc && $(LINK) $(pristine_store_test_LDFLAGS) -o pristine-store-test$(EXEEXT)  $(pristine_store_test_OBJECTS) ../../../subversion/libsvn_client/libsvn_client-1.la ../../../subversion/tests/libsvn_test-1.la ../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
+ python_client_PATH = subversion/bindings/swig/python
+-python_client_DEPS = subversion/bindings/swig/python/svn_client.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
++python_client_DEPS = subversion/bindings/swig/python/svn_client.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
+ python_client_OBJECTS = svn_client.lo
+ subversion/bindings/swig/python/_client.la: $(python_client_DEPS)
+-      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_client_LDFLAGS) -o _client.la $(LT_NO_UNDEFINED) $(python_client_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_client/libsvn_client-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
++      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_client_LDFLAGS) -o _client.la $(LT_NO_UNDEFINED) $(python_client_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la ../../../../subversion/libsvn_client/libsvn_client-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
+ python_core_PATH = subversion/bindings/swig/python
+-python_core_DEPS = subversion/bindings/swig/python/core.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
++python_core_DEPS = subversion/bindings/swig/python/core.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
+ python_core_OBJECTS = core.lo
+ subversion/bindings/swig/python/_core.la: $(python_core_DEPS)
+-      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_core_LDFLAGS) -o _core.la $(LT_NO_UNDEFINED) $(python_core_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
++      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_core_LDFLAGS) -o _core.la $(LT_NO_UNDEFINED) $(python_core_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la ../../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
+ python_delta_PATH = subversion/bindings/swig/python
+-python_delta_DEPS = subversion/bindings/swig/python/svn_delta.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
++python_delta_DEPS = subversion/bindings/swig/python/svn_delta.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
+ python_delta_OBJECTS = svn_delta.lo
+ subversion/bindings/swig/python/_delta.la: $(python_delta_DEPS)
+-      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_delta_LDFLAGS) -o _delta.la $(LT_NO_UNDEFINED) $(python_delta_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
++      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_delta_LDFLAGS) -o _delta.la $(LT_NO_UNDEFINED) $(python_delta_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la ../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
+ python_diff_PATH = subversion/bindings/swig/python
+-python_diff_DEPS = subversion/bindings/swig/python/svn_diff.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
++python_diff_DEPS = subversion/bindings/swig/python/svn_diff.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
+ python_diff_OBJECTS = svn_diff.lo
+ subversion/bindings/swig/python/_diff.la: $(python_diff_DEPS)
+-      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_diff_LDFLAGS) -o _diff.la $(LT_NO_UNDEFINED) $(python_diff_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
++      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_diff_LDFLAGS) -o _diff.la $(LT_NO_UNDEFINED) $(python_diff_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la ../../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
+ python_fs_PATH = subversion/bindings/swig/python
+-python_fs_DEPS = subversion/bindings/swig/python/svn_fs.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
++python_fs_DEPS = subversion/bindings/swig/python/svn_fs.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
+ python_fs_OBJECTS = svn_fs.lo
+ subversion/bindings/swig/python/_fs.la: $(python_fs_DEPS)
+-      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_fs_LDFLAGS) -o _fs.la $(LT_NO_UNDEFINED) $(python_fs_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_fs/libsvn_fs-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
++      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_fs_LDFLAGS) -o _fs.la $(LT_NO_UNDEFINED) $(python_fs_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la ../../../../subversion/libsvn_fs/libsvn_fs-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
+ python_ra_PATH = subversion/bindings/swig/python
+-python_ra_DEPS = subversion/bindings/swig/python/svn_ra.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
++python_ra_DEPS = subversion/bindings/swig/python/svn_ra.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
+ python_ra_OBJECTS = svn_ra.lo
+ subversion/bindings/swig/python/_ra.la: $(python_ra_DEPS)
+-      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_ra_LDFLAGS) -o _ra.la $(LT_NO_UNDEFINED) $(python_ra_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
++      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_ra_LDFLAGS) -o _ra.la $(LT_NO_UNDEFINED) $(python_ra_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la ../../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
+ python_repos_PATH = subversion/bindings/swig/python
+-python_repos_DEPS = subversion/bindings/swig/python/svn_repos.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
++python_repos_DEPS = subversion/bindings/swig/python/svn_repos.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
+ python_repos_OBJECTS = svn_repos.lo
+ subversion/bindings/swig/python/_repos.la: $(python_repos_DEPS)
+-      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_repos_LDFLAGS) -o _repos.la $(LT_NO_UNDEFINED) $(python_repos_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
++      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_repos_LDFLAGS) -o _repos.la $(LT_NO_UNDEFINED) $(python_repos_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la ../../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
+ python_wc_PATH = subversion/bindings/swig/python
+-python_wc_DEPS = subversion/bindings/swig/python/svn_wc.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
++python_wc_DEPS = subversion/bindings/swig/python/svn_wc.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/bindings/swig/python/_core.la
+ python_wc_OBJECTS = svn_wc.lo
+ subversion/bindings/swig/python/_wc.la: $(python_wc_DEPS)
+-      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_wc_LDFLAGS) -o _wc.la $(LT_NO_UNDEFINED) $(python_wc_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
++      cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) $(python_wc_LDFLAGS) -o _wc.la $(LT_NO_UNDEFINED) $(python_wc_OBJECTS) ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la ../../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
+ ra_local_test_PATH = subversion/tests/libsvn_ra_local
+ ra_local_test_DEPS = subversion/tests/libsvn_ra_local/ra-local-test.lo subversion/tests/libsvn_test-1.la subversion/libsvn_ra_local/libsvn_ra_local-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
+@@ -1152,7 +1152,7 @@ swig-pl-lib: subversion/bindings/swig/pe
+ swig-py: subversion/bindings/swig/python/_client.la subversion/bindings/swig/python/_core.la subversion/bindings/swig/python/_delta.la subversion/bindings/swig/python/_diff.la subversion/bindings/swig/python/_fs.la subversion/bindings/swig/python/_ra.la subversion/bindings/swig/python/_repos.la subversion/bindings/swig/python/_wc.la
+-swig-py-lib: subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la
++swig-py-lib: subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la
+ swig-rb: subversion/bindings/swig/ruby/client.la subversion/bindings/swig/ruby/core.la subversion/bindings/swig/ruby/delta.la subversion/bindings/swig/ruby/diff.la subversion/bindings/swig/ruby/fs.la subversion/bindings/swig/ruby/ra.la subversion/bindings/swig/ruby/repos.la subversion/bindings/swig/ruby/wc.la
+@@ -1358,9 +1358,9 @@ install-swig-py: subversion/bindings/swi
+       
+       $(INSTALL_EXTRA_SWIG_PY)
+-install-swig-py-lib: subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la
++install-swig-py-lib: subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la
+       $(MKDIR) $(DESTDIR)$(swig_py_libdir)
+-      cd subversion/bindings/swig/python/libsvn_swig_py ; $(INSTALL_SWIG_PY_LIB) libsvn_swig_py-1.la $(DESTDIR)$(swig_py_libdir)/libsvn_swig_py-1.la
++      cd subversion/bindings/swig/python/libsvn_swig_py ; $(INSTALL_SWIG_PY_LIB) libsvn_swig_py$(PY_SUF)-1.la $(DESTDIR)$(swig_py_libdir)/libsvn_swig_py$(PY_SUF)-1.la
+       
+ install-swig-rb: subversion/bindings/swig/ruby/core.la subversion/bindings/swig/ruby/client.la subversion/bindings/swig/ruby/delta.la subversion/bindings/swig/ruby/diff.la subversion/bindings/swig/ruby/fs.la subversion/bindings/swig/ruby/ra.la subversion/bindings/swig/ruby/repos.la subversion/bindings/swig/ruby/wc.la
+@@ -1530,7 +1530,7 @@ libsvn_ra_svn: subversion/libsvn_ra_svn/
+ libsvn_repos: subversion/libsvn_repos/libsvn_repos-1.la
+ libsvn_subr: subversion/libsvn_subr/libsvn_subr-1.la
+ libsvn_swig_perl: subversion/bindings/swig/perl/libsvn_swig_perl/libsvn_swig_perl-1.la
+-libsvn_swig_py: subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la
++libsvn_swig_py: subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py$(PY_SUF)-1.la
+ libsvn_swig_ruby: subversion/bindings/swig/ruby/libsvn_swig_ruby/libsvn_swig_ruby-1.la
+ libsvn_test: subversion/tests/libsvn_test-1.la
+ libsvn_wc: subversion/libsvn_wc/libsvn_wc-1.la
+--- subversion-1.14.2/build.conf.orig  2020-07-12 06:00:23.000000000 +0200
++++ subversion-1.14.2/build.conf       2022-07-15 17:35:59.042382980 +0200
+@@ -499,7 +499,7 @@ external-project = svn_locale
+ type = swig
+ path = subversion/bindings/swig
+ sources = core.i
+-libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
++libs = libsvn_swig_py$(PY_SUF) libsvn_swig_perl libsvn_swig_ruby
+        libsvn_diff libsvn_subr apr
+ description = Subversion core library bindings
+@@ -507,7 +507,7 @@ description = Subversion core library bi
+ type = swig
+ path = subversion/bindings/swig
+ sources = svn_client.i
+-libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
++libs = libsvn_swig_py$(PY_SUF) libsvn_swig_perl libsvn_swig_ruby
+        libsvn_client libsvn_subr apr
+ nonlibs = swig_core
+ description = Subversion client library bindings
+@@ -516,7 +516,7 @@ description = Subversion client library
+ type = swig
+ path = subversion/bindings/swig
+ sources = svn_delta.i
+-libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
++libs = libsvn_swig_py$(PY_SUF) libsvn_swig_perl libsvn_swig_ruby
+        libsvn_delta libsvn_subr apr
+ nonlibs = swig_core
+ description = Subversion delta library bindings
+@@ -525,7 +525,7 @@ description = Subversion delta library b
+ type = swig
+ path = subversion/bindings/swig
+ sources = svn_diff.i
+-libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
++libs = libsvn_swig_py$(PY_SUF) libsvn_swig_perl libsvn_swig_ruby
+        libsvn_diff libsvn_subr apr
+ nonlibs = swig_core
+ description = Subversion diff library bindings
+@@ -534,7 +534,7 @@ description = Subversion diff library bi
+ type = swig
+ path = subversion/bindings/swig
+ sources = svn_fs.i
+-libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
++libs = libsvn_swig_py$(PY_SUF) libsvn_swig_perl libsvn_swig_ruby
+        libsvn_fs libsvn_subr apr
+ nonlibs = swig_core
+ description = Subversion FS library bindings
+@@ -543,7 +543,7 @@ description = Subversion FS library bind
+ type = swig
+ path = subversion/bindings/swig
+ sources = svn_ra.i
+-libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
++libs = libsvn_swig_py$(PY_SUF) libsvn_swig_perl libsvn_swig_ruby
+        libsvn_ra libsvn_subr apr
+ nonlibs = swig_core
+ description = Subversion RA library bindings
+@@ -552,7 +552,7 @@ description = Subversion RA library bind
+ type = swig
+ path = subversion/bindings/swig
+ sources = svn_repos.i
+-libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
++libs = libsvn_swig_py$(PY_SUF) libsvn_swig_perl libsvn_swig_ruby
+        libsvn_repos libsvn_subr apr
+ nonlibs = swig_core
+ description = Subversion repository library bindings
+@@ -561,13 +561,13 @@ description = Subversion repository libr
+ type = swig
+ path = subversion/bindings/swig
+ sources = svn_wc.i
+-libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
++libs = libsvn_swig_py$(PY_SUF) libsvn_swig_perl libsvn_swig_ruby
+        libsvn_wc libsvn_subr apr
+ nonlibs = swig_core
+ description = Subversion WC library bindings
+ # SWIG utility library for Python modules
+-[libsvn_swig_py]
++[libsvn_swig_py$(PY_SUF)]
+ type = swig_lib
+ lang = python
+ path = subversion/bindings/swig/python/libsvn_swig_py
index 273521f7f33d201be10bcaa3cdee6a4145c8f34d..a3767e4a3ab00cd97ffb29849b5d6a771ccde87a 100644 (file)
@@ -1,23 +1,23 @@
-# TODO: python3 module (using swig >= 4.0.0) instead of python2
 #
 # Conditional build:
-%bcond_with    net_client_only         # build only net client
-%bcond_without swig                    # disable bindings generation with Swig
-%bcond_without python                  # build without Python bindings
-%bcond_without csvn                    # build Python csvn bindings
-%bcond_without perl                    # build without Perl bindings
-%bcond_with    ruby                    # build without Ruby bindings
-%bcond_without apache                  # build without Apache support (webdav, etc)
-%bcond_without java                    # build without javahl support (Java high-level bindings)
-%bcond_with    tests                   # don't perform "make check"
-%bcond_without kwallet                 # build without kde5 wallet support
-%bcond_without kde                     # build without kde5 support (alias for kwallet)
-%bcond_without gnome                   # build without gnome keyring support
-%bcond_without db                      # disable Subversion Berkeley DB based filesystem library
+%bcond_with    net_client_only         # only net client (disables: apache db swig java csvn gnome kde)
+%bcond_without swig                    # swig-based bindings (perl python ruby)
+%bcond_without python                  # Python bindings (any)
+%bcond_without python2                 # CPython 2.x bindings
+%bcond_without python3                 # CPython 3.x bindings
+%bcond_without csvn                    # Python csvn bindings
+%bcond_without swigpy                  # Python swig bindings
+%bcond_without perl                    # Perl bindings
+%bcond_with    ruby                    # Ruby bindings
+%bcond_without apache                  # Apache support (webdav, etc)
+%bcond_without java                    # javahl support (Java high-level bindings)
+%bcond_with    tests                   # "make check" tests
+%bcond_without kwallet                 # KDE5 wallet support
+%bcond_without kde                     # KDE5 support (alias for kwallet)
+%bcond_without gnome                   # GNOME keyring support
+%bcond_without db                      # Subversion Berkeley DB based filesystem library
 %bcond_with    db6                     # allow BDB6 (not tested by upstream, released on AGPL)
 
-# for AC: --without csvn,gnome,java,kde,ruby
-
 %if %{with net_client_only}
 %undefine      with_apache
 %undefine      with_db
 %undefine      with_gnome
 %undefine      with_kde
 %endif
-
 %if %{without swig}
 %undefine      with_perl
-%undefine      with_python
 %undefine      with_ruby
+%undefine      with_swigpy
 %endif
-
 %if %{without kde}
 %undefine      with_kwallet
 %endif
-
-%if %{without python} && %{without perl} && %{without ruby}
+%if %{without python}
+%undefine      with_python2
+%undefine      with_python3
+%undefine      with_csvn
+%undefine      with_swigpy
+%endif
+%if %{without swigpy} && %{without perl} && %{without ruby}
 %undefine      with_swig
 %endif
 
@@ -53,7 +56,7 @@ Summary(pl.UTF-8):    System kontroli wersji podobny, ale lepszy, niż CVS
 Summary(pt_BR.UTF-8):  Sistema de versionamento concorrente
 Name:          subversion
 Version:       1.14.2
-Release:       1
+Release:       2
 License:       Apache v2.0
 Group:         Development/Version Control
 Source0:       https://www.apache.org/dist/subversion/%{name}-%{version}.tar.bz2
@@ -62,16 +65,15 @@ Source1:    %{name}-dav_svn.conf
 Source2:       %{name}-authz_svn.conf
 Source3:       %{name}-svnserve.init
 Source4:       %{name}-svnserve.sysconfig
-# current subversion tarball has correct *.swg files
-# but after regeneration these are broken again, so
-# we still need this script
-Source5:       %{name}-convert-typemaps-to-ifdef.py
 Patch0:                %{name}-home_etc.patch
 Patch1:                %{name}-DESTDIR.patch
 Patch2:                %{name}-ruby-datadir-path.patch
 Patch3:                %{name}-tests.patch
 Patch4:                x32-libdir.patch
 Patch5:                %{name}-sh.patch
+Patch6:                %{name}-ctypes.patch
+Patch7:                %{name}-perl.patch
+Patch8:                %{name}-swig-py.patch
 URL:           http://subversion.apache.org/
 %{?with_apache:BuildRequires:  apache-devel >= 2.4.14}
 BuildRequires: apr-devel >= 1:1.4
@@ -98,8 +100,14 @@ BuildRequires:      libtool >= 2:2
 BuildRequires: libutf8proc-devel >= 1.3.1-4
 BuildRequires: lz4-devel
 BuildRequires: pkgconfig
+%if %{with python2}
 BuildRequires: python >= 1:2.7
 %{?with_csvn:BuildRequires:    python-ctypesgen >= 1.0.2}
+%endif
+%if %{with python3}
+BuildRequires: python3 >= 1:3.2
+%{?with_csvn:BuildRequires:    python3-ctypesgen >= 1.0.2}
+%endif
 BuildRequires: rpm-build >= 4.6
 BuildRequires: rpm-pythonprov
 BuildRequires: rpmbuild(macros) >= 1.752
@@ -118,12 +126,18 @@ BuildRequires:    perl-devel >= 1:5.8.0
 BuildRequires: rpm-perlprov >= 4.1-13
 BuildRequires: swig-perl >= 1.3.24
 %endif
-%if %{with python}
+%if %{with python2} || %{with python3}
 BuildRequires: py3c
-BuildRequires: python-devel >= 1:2.4
+%endif
+%if %{with python2}
+BuildRequires: python-devel >= 1:2.7
 BuildRequires: swig3-python >= 3.0.12
 BuildRequires: swig3-python < 4.0.0
 %endif
+%if %{with python3}
+BuildRequires: python3-devel >= 1:3.2
+BuildRequires: swig-python >= 4.0.0
+%endif
 %if %{with ruby}
 BuildRequires: rpm-rubyprov
 BuildRequires: ruby-devel >= 1:1.8.2
@@ -139,7 +153,7 @@ BuildRoot:  %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define                apacheconfdir   %(%{apxs} -q SYSCONFDIR 2>/dev/null)/conf.d
 %define                apachelibdir    %(%{apxs} -q LIBEXECDIR 2>/dev/null)
 
-%define                skip_post_check_so      libsvn_swig_py-1.so.* libsvn_swig_perl-1.so.* libsvn_fs_x-1.so.*
+%define                skip_post_check_so      libsvn_swig_py-1.so.* libsvn_swig_py2-1.so.* libsvn_swig_perl-1.so.* libsvn_fs_x-1.so.*
 
 %description
 The goal of the Subversion project is to build a version control
@@ -265,9 +279,8 @@ Serwer subversion svnserve.
 Summary:       Subversion tools and scripts
 Summary(pl.UTF-8):     Narzędzia oraz skrypty dla subversion
 Summary(pt_BR.UTF-8):  Módulos python para acessar os recursos do Subversion
-Group:         Applications
+Group:         Development/Version Control
 Requires:      %{name} = %{version}-%{release}
-Requires:      python
 
 %description tools
 Subversion tools and scripts.
@@ -310,39 +323,74 @@ pisaniu klas Javy np. modyfikujących repozytorium Subversion lub kopię
 roboczą. Więcej informacji w pakiecie subversion.
 
 %package -n python-subversion
-Summary:       Subversion Python bindings
-Summary(pl.UTF-8):     Dowiązania do Subversion dla Pythona
-Summary(pt_BR.UTF-8):  Módulos Python para acessar os recursos do Subversion
+Summary:       Subversion Python bindings
+Summary(pl.UTF-8):     Dowiązania do Subversion dla Pythona 2
+Summary(pt_BR.UTF-8):  Módulos Python para acessar os recursos do Subversion
 Group:         Development/Languages/Python
 Requires:      %{name}-libs = %{version}-%{release}
-Requires:      python
+Requires:      python-modules >= 1:2.7
 Obsoletes:     subversion-python < 0.14.1
 
 %description -n python-subversion
-Subversion Python bindings.
+Subversion Python bindings.
 
 %description -n python-subversion -l pl.UTF-8
-Dowiązania do Subversion dla Pythona.
+Dowiązania do Subversion dla Pythona 2.
 
 %description -n python-subversion -l pt_BR.UTF-8
-Módulos Python para acessar os recursos do Subversion.
+Módulos Python para acessar os recursos do Subversion.
 
 %package -n python-csvn
-Summary:       CTypes Subversion Python bindings
-Summary(pl.UTF-8):     Dowiązania do Subversion dla Pythona
-Summary(pt_BR.UTF-8):  Módulos Python para acessar os recursos do Subversion
+Summary:       CTypes Subversion Python bindings
+Summary(pl.UTF-8):     Dowiązania do Subversion dla Pythona 2
+Summary(pt_BR.UTF-8):  Módulos Python para acessar os recursos do Subversion
 Group:         Development/Languages/Python
 Requires:      %{name}-libs = %{version}-%{release}
-Requires:      python
+Requires:      python-modules >= 1:2.7
 
 %description -n python-csvn
-Subversion CTypes Python bindings.
+Subversion CTypes Python bindings.
 
 %description -n python-csvn -l pl.UTF-8
-Dowiązania do Subversion dla Pythona używające CTypes.
+Dowiązania do Subversion dla Pythona używające CTypes.
 
 %description -n python-csvn -l pt_BR.UTF-8
-Módulos Python para acessar os recursos do Subversion.
+Módulos Python 2 para acessar os recursos do Subversion.
+
+%package -n python3-subversion
+Summary:       Subversion Python 3 bindings
+Summary(pl.UTF-8):     Dowiązania do Subversion dla Pythona 3
+Summary(pt_BR.UTF-8):  Módulos Python 3 para acessar os recursos do Subversion
+Group:         Development/Languages/Python
+Requires:      %{name}-libs = %{version}-%{release}
+Requires:      python3-modules >= 1:3.2
+Obsoletes:     subversion-python < 0.14.1
+
+%description -n python3-subversion
+Subversion Python 3 bindings.
+
+%description -n python3-subversion -l pl.UTF-8
+Dowiązania do Subversion dla Pythona 3.
+
+%description -n python3-subversion -l pt_BR.UTF-8
+Módulos Python 3 para acessar os recursos do Subversion.
+
+%package -n python3-csvn
+Summary:       CTypes Subversion Python 3 bindings
+Summary(pl.UTF-8):     Dowiązania do Subversion dla Pythona 3
+Summary(pt_BR.UTF-8):  Módulos Python 3 para acessar os recursos do Subversion
+Group:         Development/Languages/Python
+Requires:      %{name}-libs = %{version}-%{release}
+Requires:      python3-modules >= 1:3.2
+
+%description -n python3-csvn
+Subversion CTypes Python 3 bindings.
+
+%description -n python3-csvn -l pl.UTF-8
+Dowiązania do Subversion dla Pythona 3 używające CTypes.
+
+%description -n python3-csvn -l pt_BR.UTF-8
+Módulos Python 3 para acessar os recursos do Subversion.
 
 %package -n perl-subversion
 Summary:       Subversion Perl bindings
@@ -457,30 +505,66 @@ uwierzytelniać się przy użyciu Portfela KDE.
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+
+%{__sed} -i -e 's#serf_prefix/lib#serf_prefix/%{_lib}#g' build/ac-macros/serf.m4
 
-sed -i -e 's#serf_prefix/lib#serf_prefix/%{_lib}#g' build/ac-macros/serf.m4
-
-sed -E -i -e '1s,#!\s*/usr/bin/env\s+python2(\s|$),#!%{__python}\1,' -e '1s,#!\s*/usr/bin/env\s+python(\s|$),#!%{__python}\1,' -e '1s,#!\s*/usr/bin/python(\s|$),#!%{__python}\1,' \
-       tools/backup/hot-backup.py.in \
-       tools/examples/blame.py \
-       tools/examples/check-modified.py \
-       tools/examples/dumpprops.py \
-       tools/examples/get-location-segments.py \
-       tools/examples/getfile.py \
-       tools/examples/geturl.py \
-       tools/examples/putfile.py \
-       tools/examples/revplist.py \
-       tools/examples/svnlook.py \
-       tools/examples/svnshell.py \
-       tools/examples/walk-config-auth.py
+%{__sed} -i -e '1s,/usr/bin/env python$,%{__python3},' tools/backup/hot-backup.py.in
 
 %build
-# disabled regeneration - subversion 1.6.13 is not ready for swig 2.0.x
-#%{__rm} subversion/bindings/swig/proxy/*.swg
-#cd subversion/bindings/swig && python "%{SOURCE5}" && cd ../../..
+# FIXME: don't hide autotools invocation
+# (but this script could do more, e.g. swig regeneration)
 chmod +x ./autogen.sh && ./autogen.sh
-#{__libtoolize}
-%configure \
+%if %{with python2}
+install -d builddir-python2
+cd builddir-python2
+../%configure \
+       ac_cv_path_RUBY=none \
+       --disable-javahl \
+       --disable-mod-activation \
+       --without-apxs \
+       --without-berkeley-db \
+%if %{with csvn}
+       --with-ctypesgen=%{_bindir}/ctypesgen-2 \
+%endif
+       --without-gnome-keyring \
+       --without-kwallet \
+       --with-serf=%{_prefix} \
+       --with-swig=/usr/bin/swig-3 \
+       --with-zlib=%{_libdir}
+
+# required with separate builddir
+install -d subversion/{mod_dav_svn/{posts,reports},po} tools/server-side/mod_dontdothat
+
+%if %{with csvn}
+# Python ctypes bindings
+%{__make} ctypes-python
+%endif
+%if %{with swigpy}
+# Python swig bindings
+%{__make} swig-py \
+       PY_SUF=2 \
+       swig_pydir=%{py_sitedir}/libsvn \
+       swig_pydir_extra=%{py_sitedir}/svn
+%endif
+
+%if %{with tests}
+%if %{with csvn}
+%{__make} -j1 check-ctypes-python
+%endif
+%if %{with swigpy}
+%{__make} -j1 check-swig-py
+%endif
+%endif
+cd ..
+%endif
+
+install -d builddir
+cd builddir
+../%configure \
+       PYTHON=%{__python3} \
        --disable-mod-activation \
        --disable-runtime-module-search \
        --with-apr=%{_bindir}/apr-1-config \
@@ -500,8 +584,8 @@ chmod +x ./autogen.sh && ./autogen.sh
 %else
        --without-berkeley-db \
 %endif
-%if %{with csvn}
-       --with-ctypesgen=%{_bindir}/ctypesgen-2 \
+%if %{with python3} && %{with csvn}
+       --with-ctypesgen=%{_bindir}/ctypesgen-3 \
 %endif
 %if %{with gnome}
        --with-gnome-keyring \
@@ -512,8 +596,8 @@ chmod +x ./autogen.sh && ./autogen.sh
 %if %{without swig}
        --without-swig \
 %endif
-%if %{with python}
-       --with-swig=/usr/bin/swig-3 \
+%if %{with swigpy}
+       --with-swig=/usr/bin/swig \
 %endif
 %if %{with ruby}
        svn_cv_ruby_sitedir_libsuffix="" \
@@ -534,23 +618,22 @@ chmod +x ./autogen.sh && ./autogen.sh
 
 %{__make} tools
 
+%if %{with python3}
 %if %{with csvn}
 # Python ctypes bindings
 %{__make} ctypes-python
 %endif
-%if %{with python}
+%if %{with swigpy}
 # Python swig bindings
 %{__make} swig-py \
-       swig_pydir=%{py_sitedir}/libsvn \
-       swig_pydir_extra=%{py_sitedir}/svn
+       swig_pydir=%{py3_sitedir}/libsvn \
+       swig_pydir_extra=%{py3_sitedir}/svn
 %endif
+%endif
+
 %if %{with perl}
 # Perl swig bindings
-%{__make} -j1 swig-pl-lib
-cd subversion/bindings/swig/perl/native
-%{__perl} Makefile.PL INSTALLDIRS=vendor
-%{__make} -j1
-cd -
+%{__make} -j1 swig-pl
 %endif
 %if %{with java}
 %{__make} -j1 javahl \
@@ -563,10 +646,10 @@ cd -
 
 %if %{with tests}
 %{__make} -j1 check
-%if %{with csvn}
+%if %{with python3} && %{with csvn}
 %{__make} -j1 check-ctypes-python
 %endif
-%if %{with python}
+%if %{with python3} && %{with swigpy}
 %{__make} -j1 check-swig-py
 %endif
 %if %{with perl}
@@ -582,11 +665,27 @@ cd -
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,bash_completion.d} \
        $RPM_BUILD_ROOT{%{apacheconfdir},%{apachelibdir},%{_infodir}} \
-       $RPM_BUILD_ROOT%{_examplesdir}/{%{name}-%{version},python-%{name}-%{version}} \
+       $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
        $RPM_BUILD_ROOT%{_sysconfdir}/%{name} \
-       $RPM_BUILD_ROOT/home/services/subversion{,/repos}
+       $RPM_BUILD_ROOT/home/services/subversion/repos
 
-%{__make} -j1 install \
+%if %{with python2}
+%if %{with csvn}
+%{__make} -C builddir-python2 -j1 install-ctypes-python \
+       DESTDIR=$RPM_BUILD_ROOT \
+       PY_INSTALLOPTS="--install-purelib=%{py_sitescriptdir}"
+%endif
+
+%if %{with swigpy}
+%{__make} -C builddir-python2 -j1 install-swig-py \
+       DESTDIR=$RPM_BUILD_ROOT \
+       PY_SUF=2 \
+       swig_pydir=%{py_sitedir}/libsvn \
+       swig_pydir_extra=%{py_sitedir}/svn
+%endif
+%endif
+
+%{__make} -C builddir -j1 install \
        pkgconfig_dir=%{_pkgconfigdir} \
        toolsdir=%{_bindir} \
        DESTDIR=$RPM_BUILD_ROOT \
@@ -595,14 +694,18 @@ install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,bash_completion.d} \
        install-javahl \
        javahl_javadir="%{_javadir}" \
 %endif
-%if %{with python}
+%if %{with python3} && %{with csvn}
+       install-ctypes-python \
+       PY_INSTALLOPTS="--install-purelib=%{py3_sitescriptdir}" \
+%endif
+%if %{with python3} && %{with swigpy}
        install-swig-py \
-       swig_pydir=%{py_sitedir}/libsvn \
-       swig_pydir_extra=%{py_sitedir}/svn \
+       swig_pydir=%{py3_sitedir}/libsvn \
+       swig_pydir_extra=%{py3_sitedir}/svn \
 %endif
        install-tools
 
-%if %{with csvn}
+%if 0 && %{with csvn}
 # manually execute install-ctypes-python target
 cd subversion/bindings/ctypes-python
 %py_install
@@ -610,7 +713,7 @@ cd ../../..
 %endif
 
 %if %{with ruby}
-%{__make} -j1 install-swig-rb install-swig-rb-doc \
+%{__make} -C builddir -j1 install-swig-rb install-swig-rb-doc \
        SWIG_RB_RI_DATADIR=$RPM_BUILD_ROOT%{ruby_ridir} \
        DESTDIR=$RPM_BUILD_ROOT
 
@@ -625,12 +728,8 @@ cd ../../..
 %endif
 
 %if %{with perl}
-%{__make} install-swig-pl-lib \
+%{__make} -C builddir install-swig-pl \
        DESTDIR=$RPM_BUILD_ROOT
-%{__make} -C subversion/bindings/swig/perl/native install \
-       DESTDIR=$RPM_BUILD_ROOT \
-       PREFIX=$RPM_BUILD_ROOT%{_prefix} \
-       LIBDIR=$RPM_BUILD_ROOT%{_libdir}
 %endif
 
 %if %{with apache}
@@ -641,7 +740,7 @@ install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/svnserve
 %endif
 
 %if %{without net_client_only}
-install -p tools/backup/hot-backup.py $RPM_BUILD_ROOT%{_bindir}/svn-hot-backup
+install -p builddir/tools/backup/hot-backup.py $RPM_BUILD_ROOT%{_bindir}/svn-hot-backup
 %endif
 
 # rename not to conflict with standard packages. (are these needed at all?)
@@ -649,16 +748,25 @@ install -p tools/backup/hot-backup.py $RPM_BUILD_ROOT%{_bindir}/svn-hot-backup
 %{__mv} $RPM_BUILD_ROOT%{_bindir}/{,svn}diff3
 %{__mv} $RPM_BUILD_ROOT%{_bindir}/{,svn}diff4
 
-%if %{with python} || %{with csvn}
+%if %{with python2}
+%if %{with swigpy}
 %py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
 %py_comp $RPM_BUILD_ROOT%{py_sitedir}
-%py_postclean
-%endif
-%if %{with python}
 %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/libsvn/*.la
-# .a created on ac only
-%{__rm} -f $RPM_BUILD_ROOT%{py_sitedir}/libsvn/*.a
+install -d $RPM_BUILD_ROOT%{_examplesdir}/python-%{name}-%{version}
 cp -p tools/examples/*.py $RPM_BUILD_ROOT%{_examplesdir}/python-%{name}-%{version}
+%{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' $RPM_BUILD_ROOT%{_examplesdir}/python-%{name}-%{version}/*.py
+%endif
+%py_postclean
+%endif
+
+%if %{with python3} && %{with swigpy}
+%py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}
+%py3_comp $RPM_BUILD_ROOT%{py3_sitedir}
+%{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/libsvn/*.la
+install -d $RPM_BUILD_ROOT%{_examplesdir}/python3-%{name}-%{version}
+cp -p tools/examples/*.py $RPM_BUILD_ROOT%{_examplesdir}/python3-%{name}-%{version}
+%{__sed} -i -e '1s,/usr/bin/env python$,%{__python3},' $RPM_BUILD_ROOT%{_examplesdir}/python3-%{name}-%{version}/*.py
 %endif
 
 cp -p tools/client-side/bash_completion $RPM_BUILD_ROOT/etc/bash_completion.d/%{name}
@@ -758,7 +866,8 @@ fi
 %defattr(644,root,root,755)
 %doc BUGS CHANGES INSTALL README
 %doc doc/*/*.html
-%doc tools/hook-scripts/*.{pl,py,example}
+%doc builddir/tools/hook-scripts/*.pl
+%doc tools/hook-scripts/*.{py,example}
 %doc tools/hook-scripts/mailer/*.{py,example}
 %doc tools/xslt/*
 %attr(755,root,root) %{_bindir}/fsfs-stats
@@ -974,13 +1083,13 @@ fi
 %{_javadir}/svn-javahl.jar
 %endif
 
-%if %{with python}
+%if %{with python2}
+%if %{with swigpy}
 %files -n python-subversion
 %defattr(644,root,root,755)
-%doc tools/backup/*.py
-%attr(755,root,root) %{_libdir}/libsvn_swig_py-1.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libsvn_swig_py-1.so.0
-%attr(755,root,root) %{_libdir}/libsvn_swig_py-1.so
+%attr(755,root,root) %{_libdir}/libsvn_swig_py2-1.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libsvn_swig_py2-1.so.0
+%attr(755,root,root) %{_libdir}/libsvn_swig_py2-1.so
 %dir %{py_sitedir}/libsvn
 %attr(755,root,root) %{py_sitedir}/libsvn/_*.so
 %{py_sitedir}/libsvn/*.py[co]
@@ -994,14 +1103,37 @@ fi
 %defattr(644,root,root,755)
 %doc subversion/bindings/ctypes-python/{README,TODO}
 %doc subversion/bindings/ctypes-python/examples/*.py
-%dir %{py_sitescriptdir}/csvn
-%{py_sitescriptdir}/csvn/*.py[co]
-%dir %{py_sitescriptdir}/csvn/core
-%{py_sitescriptdir}/csvn/core/*.py[co]
-%dir %{py_sitescriptdir}/csvn/ext
-%{py_sitescriptdir}/csvn/ext/*.py[co]
+%{py_sitescriptdir}/csvn
 %{py_sitescriptdir}/svn_ctypes_python_bindings-0.1-py*.egg-info
 %endif
+%endif
+
+%if %{with python3}
+%if %{with swigpy}
+%files -n python3-subversion
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libsvn_swig_py-1.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libsvn_swig_py-1.so.0
+%attr(755,root,root) %{_libdir}/libsvn_swig_py-1.so
+%dir %{py3_sitedir}/libsvn
+%attr(755,root,root) %{py3_sitedir}/libsvn/_*.so
+%{py3_sitedir}/libsvn/*.py
+%{py3_sitedir}/libsvn/__pycache__
+%dir %{py3_sitedir}/svn
+%{py3_sitedir}/svn/*.py
+%{py3_sitedir}/svn/__pycache__
+%{_examplesdir}/python3-%{name}-%{version}
+%endif
+
+%if %{with csvn}
+%files -n python3-csvn
+%defattr(644,root,root,755)
+%doc subversion/bindings/ctypes-python/{README,TODO}
+%doc subversion/bindings/ctypes-python/examples/*.py
+%{py3_sitescriptdir}/csvn
+%{py3_sitescriptdir}/svn_ctypes_python_bindings-0.1-py*.egg-info
+%endif
+%endif
 
 %if %{with perl}
 %files -n perl-subversion
This page took 0.24796 seconds and 4 git commands to generate.