Author: jorton
Date: Fri Jan 23 11:57:40 2026
New Revision: 1931484
Log:
* configure.ac: Pass complete library version information to libtool
via $SVN_LT_SOVERSION, so library filenames are unique to each
release rather than constant, while keeping the sonames intact.
This follow standard/best-practice for libtool library versioning.
Closes #34.
Examples for SVN 1.14.5:
Filename before: libsvn_subr-1.so.0.0.0
Filename after: libsvn_subr-1.so.0.14.5
SONAME before and after: libsvn_subr-1.so.0
Modified:
subversion/trunk/configure.ac
Modified: subversion/trunk/configure.ac
==============================================================================
--- subversion/trunk/configure.ac Fri Jan 23 09:57:26 2026 (r1931483)
+++ subversion/trunk/configure.ac Fri Jan 23 11:57:40 2026 (r1931484)
@@ -218,7 +218,28 @@ else
SVN_APR_MAJOR_VERSION=1
fi
AC_SUBST(SVN_APR_MAJOR_VERSION)
-SVN_LT_SOVERSION="-version-info $svn_lib_ver"
+
+# For libtool library versioning, follow the interface rules at:
+# https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
+# for SVN <major>.<minor>.<patch>:
+#
+# 1. the oldest version supported is always 0 (or 2 for the above APR2
+# variant), corresponding to the ABI at <major>.0.0; changes to
+# <major> are reflected in the library names like "libsvn_subr-1.la"
+#
+# 2. the current version and age of the ABI both equal <minor>, since
+# SVN minor versions always maintain backwards-compatibility to
+# <major>.0; in the APR2 variant, the current version is 2+<minor>.
+#
+# 3. the revision is equal to the <patch> number.
+
+m4_define([svn_ver_major], m4_bpatsubst(AC_PACKAGE_VERSION, [\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)], [\1]))
+m4_define([svn_ver_minor], m4_bpatsubst(AC_PACKAGE_VERSION, [\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)], [\2]))
+m4_define([svn_ver_patch], m4_bpatsubst(AC_PACKAGE_VERSION, [\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)], [\3]))
+svn_ver_current="`expr $svn_lib_ver + svn_ver_minor`"
+
+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 version])
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.