It seems that the problem has been there for years, see for example:
https://stackoverflow.com/questions/28663316
https://groups.google.com/g/subversion_users/c/CkbGGwFi6-0
I'm a committer in SVN, but I'm not very experienced with Linux and would
rather have this patch reviewed, thanks!
[[[
Fix libsvn_ra_serf build with external serf
Since `serf` transitioned to `SCons` build system in 2011, it no longer
generates `.la` files. At the same time, `libtool` only adds `-rpath`
when dependency is given as `.la`. As a result, if serf is not installed
in default path, `libsvn_ra_serf-1.so` doesn't know where to find its
`libserf-1` dependency.
When OS's `ld` linker defaults to `RPATH`, build still works, probably
because one of other dependencies introduce path to `serf`. On newer
systems where `ld` defaults to `RUNPATH`, build fails.
Fix this by inserting correct `-rpath` to find `libserf-1`.
* build/ac-macros/serf.m4
Workaround for libtool to append correct -rpath for serf dependency
]]]
Index: build/ac-macros/serf.m4
===================================================================
--- build/ac-macros/serf.m4 (revision 1891835)
+++ build/ac-macros/serf.m4 (working copy)
@@ -170,6 +170,14 @@
serf_found=yes
SVN_SERF_INCLUDES=[`$PKG_CONFIG $serf_pc_arg --cflags-only-I`]
SVN_SERF_LIBS=[`$PKG_CONFIG $serf_pc_arg --libs-only-l`]
+ if test -n "$serf_prefix" ; then
+ dnl User provided a prefix, so the location is non default.
+ dnl serf doesn't create .la since 2011, and it just
+ dnl gives '-lserf-1'. At the same time, libtool doesn't
+ dnl add -rpath for dependencies given as '-l'.
+ dnl The workaround dnl is to hack '-L' into '-R'.
+ SVN_SERF_LIBS=["$SVN_SERF_LIBS `$PKG_CONFIG $serf_pc_arg
--libs-only-L | $SED -e 's/^-L/-R/g'`"]
+ fi
dnl don't use --libs-only-L because then we might miss some options
LDFLAGS=["$LDFLAGS `$PKG_CONFIG $serf_pc_arg --libs | $SED -e
's/-l[^ ]*//g'`"]
break