From: Jakub Bogusz Date: Fri, 15 Jul 2022 17:48:50 +0000 (+0200) Subject: - added ctypes,perl patches to fix out-of-tree builds X-Git-Tag: auto/th/subversion-1.14.2-2~3 X-Git-Url: https://git.pld-linux.org/?a=commitdiff_plain;ds=sidebyside;h=ebe67b1ad83ed74805a4be17f8c4280f8ac36e12;p=packages%2Fsubversion.git - added ctypes,perl patches to fix out-of-tree builds - 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 --- diff --git a/subversion-convert-typemaps-to-ifdef.py b/subversion-convert-typemaps-to-ifdef.py deleted file mode 100644 index 9701f37..0000000 --- a/subversion-convert-typemaps-to-ifdef.py +++ /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 index 0000000..4d17bde --- /dev/null +++ b/subversion-ctypes.patch @@ -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 index 0000000..88f23aa --- /dev/null +++ b/subversion-perl.patch @@ -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 index 0000000..613b57c --- /dev/null +++ b/subversion-swig-py.patch @@ -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 diff --git a/subversion.spec b/subversion.spec index 273521f..a3767e4 100644 --- a/subversion.spec +++ b/subversion.spec @@ -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 @@ -27,18 +27,21 @@ %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 2 bindings +Summary(pl.UTF-8): Dowiązania do Subversion dla Pythona 2 +Summary(pt_BR.UTF-8): Módulos Python 2 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 2 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 2 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 2 bindings +Summary(pl.UTF-8): Dowiązania do Subversion dla Pythona 2 +Summary(pt_BR.UTF-8): Módulos Python 2 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 2 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 2 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