diff --git a/subversion-1.14.1-testnomagic.patch b/subversion-1.14.1-testnomagic.patch new file mode 100644 index 0000000000000000000000000000000000000000..ff13e1af7f6e369d844e6b06d769977221816b3b --- /dev/null +++ b/subversion-1.14.1-testnomagic.patch @@ -0,0 +1,14 @@ + +Fix intermittent failures when "svn add" guesses a near-empty file is binary and hence +the output is different. + +--- subversion-1.14.1/subversion/tests/cmdline/svntest/main.py.testnoautoprops ++++ subversion-1.14.1/subversion/tests/cmdline/svntest/main.py +@@ -691,6 +691,7 @@ + + [miscellany] + interactive-conflicts = false ++enable-magic-file = no + """ + if exclusive_wc_locks: + config_contents += """ diff --git a/subversion-1.14.2-modsyms.patch b/subversion-1.14.2-modsyms.patch new file mode 100644 index 0000000000000000000000000000000000000000..0953265ad6cb75f6dc35f9b5c3634cb44a4d7318 --- /dev/null +++ b/subversion-1.14.2-modsyms.patch @@ -0,0 +1,24 @@ + +Don't expose private symbols for the Apache modules DSO. + +--- subversion-1.14.2/build/generator/gen_base.py.modsyms ++++ subversion-1.14.2/build/generator/gen_base.py +@@ -727,13 +727,17 @@ + def __init__(self, name, options, gen_obj): + TargetLib.__init__(self, name, options, gen_obj) + ++ if name[:4] != "mod_": ++ raise Exception("Apache module targets must be named mod_*") ++ + tfile = name + self.gen_obj._extension_map['lib', 'target'] + self.filename = build_path_join(self.path, tfile) + ++ modsyms = name[4:] + '_[^_].*' + # we have a custom linking rule + ### hmm. this is Makefile-specific + self.compile_cmd = '$(COMPILE_APACHE_MOD)' +- self.link_cmd = '$(LINK_APACHE_MOD)' ++ self.link_cmd = '$(LINK_APACHE_MOD) -export-symbols-regex ' + modsyms + + class TargetSharedOnlyLib(TargetLib): + diff --git a/subversion-1.14.0-soversion.patch b/subversion-1.14.2-soversion.patch similarity index 36% rename from subversion-1.14.0-soversion.patch rename to subversion-1.14.2-soversion.patch index 02fe0b4877796918f7b3fc933bc6790108a3f68d..304b71244d9a12f47a0cd93bfba193aa4bbf4365 100644 --- a/subversion-1.14.0-soversion.patch +++ b/subversion-1.14.2-soversion.patch @@ -1,19 +1,23 @@ -Use the minor version as the revision in the libtool version, so the library -soversion is not always 0.0.0. (Does not influence the soname) +Subversion libraries don't get properly versioned so the library +names are always "libsvn_foo-1.so.0.0.0". Provide proper +versioning information to libtool *without* changing the soname +for compatibility with upstream, so on-disk filenames are +unique across different releases. ---- subversion-1.14.0/configure.ac.soversion -+++ subversion-1.14.0/configure.ac -@@ -112,7 +112,11 @@ +--- subversion-1.14.2/configure.ac.soversion ++++ subversion-1.14.2/configure.ac +@@ -112,7 +112,12 @@ SVN_APR_MAJOR_VERSION=1 fi AC_SUBST(SVN_APR_MAJOR_VERSION) -SVN_LT_SOVERSION="-version-info $svn_lib_ver" + +m4_define([svn_ver_minor], m4_bpatsubst(AC_PACKAGE_VERSION, [[0-9]*\.\([0-9]*\)\.[0-9]*], [\1])) ++m4_define([svn_ver_patch], m4_bpatsubst(AC_PACKAGE_VERSION, [[0-9]*\.[0-9]*\.\([0-9]*\)], [\1])) ++svn_ver_current="`expr $svn_lib_ver + svn_ver_minor`" + -+SVN_LT_SOVERSION="-version-info $svn_lib_ver:svn_ver_minor" -+AC_MSG_NOTICE([SVN_LT_SOVERSION $SVN_LT_SOVERSION]) ++SVN_LT_SOVERSION="-version-info $svn_ver_current:svn_ver_patch:svn_ver_minor" AC_SUBST(SVN_LT_SOVERSION) AC_DEFINE_UNQUOTED(SVN_SOVERSION, $svn_lib_ver, [Subversion library major verson]) diff --git a/subversion-1.14.3-fix-build-errors.patch b/subversion-1.14.3-fix-build-errors.patch deleted file mode 100644 index 76d14687c71a69043cc5fb9370ba04f03030969d..0000000000000000000000000000000000000000 --- a/subversion-1.14.3-fix-build-errors.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 628738a55d5ce1d585011d919ab0b5f5ea25d095 Mon Sep 17 00:00:00 2001 -From: rpm-build -Date: Thu, 16 Nov 2023 19:35:54 +0800 -Subject: [PATCH] support clang build - ---- - Makefile.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile.in b/Makefile.in -index 7d65f01..e94472d 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -156,7 +156,7 @@ SWIG_PY_ERRMSG = @SWIG_PY_ERRMSG@ - SWIG_PL_INCLUDES = @SWIG_PL_INCLUDES@ - SWIG_PL_ERRMSG = @SWIG_PL_ERRMSG@ - SWIG_RB_INCLUDES = @SWIG_RB_INCLUDES@ -I$(SWIG_SRC_DIR)/ruby/libsvn_swig_ruby --SWIG_RB_COMPILE = @SWIG_RB_COMPILE@ -+SWIG_RB_COMPILE = @CC@ - SWIG_RB_LINK = @SWIG_RB_LINK@ - SWIG_RB_LIBS = @SWIG_RB_LIBS@ - SWIG_RB_SITE_LIB_DIR = @SWIG_RB_SITE_LIB_DIR@ -@@ -306,7 +306,7 @@ LINK_SHARED_ONLY_CXX_LIB = $(LINK_CXX_LIB) $(shared_only_LDFLAGS) -shared - - # Compilation of SWIG-generated C source code - COMPILE_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(LT_CFLAGS) $(CPPFLAGS) $(SWIG_PY_INCLUDES) -prefer-pic -c -o $@ --COMPILE_RB_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(LT_CFLAGS) $(CPPFLAGS) $(SWIG_RB_INCLUDES) -prefer-pic -c -o $@ -+COMPILE_RB_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(LT_CFLAGS) $(CPPFLAGS) $(CFLAGS) $(SWIG_RB_INCLUDES) -prefer-pic -c -o $@ - - # these commands link the wrapper objects into an extension library/module - LINK_PY_WRAPPER = $(LIBTOOL) $(LTFLAGS) --mode=link $(SWIG_PY_LINK) $(SWIG_LDFLAGS) -rpath $(swig_pydir) -avoid-version -module --- -2.19.1 - diff --git a/subversion-1.14.5-progenv.patch b/subversion-1.14.5-progenv.patch new file mode 100644 index 0000000000000000000000000000000000000000..e7c5c46c9fd6228f8586819019c96ff4d85beea1 --- /dev/null +++ b/subversion-1.14.5-progenv.patch @@ -0,0 +1,21 @@ + +ra-test execution of svnserve (a libtool wrapper script) fails +with package notes enabled since LDFLAGS depend on $RPM_ARCH etc +being set in the environment, which is empty. + +This switches the execution of svnserve to inheriting the +build environment. + +https://github.com/apache/subversion/pull/25 + +--- subversion-1.14.5/subversion/tests/libsvn_ra/ra-test.c.progenv 2020-03-25 09:54:07.000000000 +0000 ++++ subversion-1.14.5/subversion/tests/libsvn_ra/ra-test.c 2024-12-13 08:53:20.268424556 +0000 +@@ -242,7 +242,7 @@ open_tunnel(svn_stream_t **request, svn_ + if (status == APR_SUCCESS) + status = apr_procattr_io_set(attr, 1, 1, 0); + if (status == APR_SUCCESS) +- status = apr_procattr_cmdtype_set(attr, APR_PROGRAM); ++ status = apr_procattr_cmdtype_set(attr, APR_PROGRAM_ENV); + proc = apr_palloc(pool, sizeof(*proc)); + if (status == APR_SUCCESS) + status = apr_proc_create(proc, diff --git a/subversion.spec b/subversion.spec index ab5a89b3d4a03a6b6ec209908ecf34c7b62fb5fa..b8641f0cac3fc3f2d3cecf3c54ed202d09bd5fcc 100644 --- a/subversion.spec +++ b/subversion.spec @@ -13,7 +13,7 @@ Summary: Subversion, a version control system. Name: subversion Version: 1.14.5 -Release: 2 +Release: 3 License: Apache-2.0 URL: https://subversion.apache.org/ @@ -21,12 +21,14 @@ Source0: https://www.apache.org/dist/subversion/subversion-%{version}.tar.bz2 Patch0: subversion-1.12.0-linking.patch Patch1: subversion-1.14.0-testwarn.patch -Patch2: subversion-1.14.0-soversion.patch +Patch2: subversion-1.14.2-soversion.patch Patch3: subversion-1.8.0-rubybind.patch Patch4: subversion-1.8.5-swigplWall.patch -Patch5: subversion-1.14.3-fix-build-errors.patch -Patch6: subversion-underlinking.patch -Patch7: support-clang-build.patch +Patch5: subversion-1.14.1-testnomagic.patch +Patch6: subversion-1.14.2-modsyms.patch +Patch8: subversion-1.14.5-progenv.patch +Patch9: support-clang-build.patch +Patch10: subversion-underlinking.patch BuildRequires: autoconf libtool texinfo which swig gettext apr-devel apr-util-devel libserf-devel cyrus-sasl-devel sqlite-devel file-devel utf8proc-devel lz4-devel apr-util-openssl dbus-devel, libsecret-devel httpd-devel Requires: httpd @@ -228,20 +230,32 @@ export LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} export MALLOC_PERTURB_=171 MALLOC_CHECK_=3 export LIBC_FATAL_STDERR_=1 export PYTHON=%{svn_python} -if ! make check CLEANUP=yes; then + +: Run svnauthz to avoid regeneration during test suite. +tools/server-side/svnauthz --version || exit 1 + +if ! make check CLEANUP=yes PARALLEL=${RPM_BUILD_NCPUS}; then : Test suite failure. cat fails.log + cat tests.log exit 1 fi -if ! make check-swig-pl check-swig-rb; then +if ! make check-swig-pl; then : Swig test failure. exit 1 fi +%if %{with pyswig} if ! make check-swig-py; then : Python swig test failure. exit 1 fi -# check-swig-rb omitted: it runs svnserve +%endif +%if %{with ruby} +if ! make check-swig-rb; then + : Ruby swig test failure. + exit 1 +fi +%endif %if %{with java} make check-javahl %endif @@ -297,6 +311,9 @@ make check-javahl %endif %changelog +* Wed Jul 23 2025 Funda Wang - 1.14.5-3 +- fix build + * Thu Jan 16 2025 Funda Wang - 1.14.5-2 - drop useless perl(:MODULE_COMPAT) requirement