[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

1.7 check-swig-py failure

From: tsteven four <tsteven4_at_gmail.com>
Date: Fri, 29 Jul 2011 09:12:57 -0600

I get the following error when trying to make check-swig-py:

          /usr/bin/python
> /apps/install/subversion-1.7.0-beta2-Linux_x86_64/subversion/bindings/swig/python/tests/run_all.py
> Traceback (most recent call last):
> File
> "/apps/install/subversion-1.7.0-beta2-Linux_x86_64/subversion/bindings/swig/python/tests/run_all.py",
> line 22, in ?
> import mergeinfo, core, client, delta, pool, ra, wc, repository, auth,
> \
> File
> "/apps/install/subversion-1.7.0-beta2-Linux_x86_64/subversion/bindings/swig/python/tests/mergeinfo.py",
> line 22, in ?
> from svn import core, repos, fs
> File
> "/apps/install/subversion-1.7.0-beta2-Linux_x86_64/subversion/bindings/swig/python/svn/core.py",
> line 26, in ?
> from libsvn.core import *
> File
> "/apps/install/subversion-1.7.0-beta2-Linux_x86_64/subversion/bindings/swig/python/libsvn/core.py",
> line 29, in ?
> import _core
>
ImportError:
> /apps/install/subversion-1.7.0-beta2-Linux_x86_64/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so.0:
> undefined symbol: apr_file_buffer_set
> gmake: *** [check-swig-py] Error 1
>

I have built apr, apr-util and subversion with a non-standard prefix.
However, when I check the library mentioned in the error message above, it
is finding my apr, apr-util and svn libraries, not the system ones.

 ldd libsvn_ra_serf-1.so.0
> linux-vdso.so.1 => (0x00007fff33dfc000)
> libsvn_delta-1.so.0 =>
> /apps/install/subversion-1.7.0-beta2-Linux_x86_64/subversion/libsvn_delta/.libs/libsvn_delta-1.so.0
> (0x00002b618e828000)
> libsvn_subr-1.so.0 =>
> /apps/install/subversion-1.7.0-beta2-Linux_x86_64/subversion/libsvn_subr/.libs/libsvn_subr-1.so.0
> (0x00002b618ea35000)
> libmagic.so.1 => /usr/lib64/libmagic.so.1 (0x00002b618ed0a000)
> libserf-0.so.0 =>
> /apps/install/subversion-1.7.0-beta2-Linux_x86_64/serf/.libs/libserf-0.so.0
> (0x00002b618ef19000)
> libaprutil-1.so.0 =>
> /apps/Linux_x86_64/subversion-1.7.0-beta2/lib/libaprutil-1.so.0
> (0x00002b618f12e000)
> libexpat.so.0 =>
> /apps/Linux_x86_64/subversion-1.7.0-beta2/lib/libexpat.so.0
> (0x00002b618f34e000)
> libapr-1.so.0 =>
> /apps/Linux_x86_64/subversion-1.7.0-beta2/lib/libapr-1.so.0
> (0x00002b618f570000)
> libuuid.so.1 => /lib64/libuuid.so.1 (0x00002b618f7bc000)
> librt.so.1 => /lib64/librt.so.1 (0x00002b618f9c0000)
> libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00002b618fbc9000)
> libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b618fe02000)
> libdl.so.2 => /lib64/libdl.so.2 (0x00002b619001d000)
> libm.so.6 => /lib64/libm.so.6 (0x00002b6190221000)
> libz.so.1 => /usr/lib64/libz.so.1 (0x00002b61904a5000)
> libssl.so.6 => /lib64/libssl.so.6 (0x00002b61906b9000)
> libcrypto.so.6 => /lib64/libcrypto.so.6 (0x00002b6190905000)
> libc.so.6 => /lib64/libc.so.6 (0x00002b6190c57000)
> /lib64/ld-linux-x86-64.so.2 (0x000000326ec00000)
> libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2
> (0x00002b6190faf000)
> libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00002b61911de000)
> libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00002b6191473000)
> libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3
> (0x00002b6191675000)
> libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0
> (0x00002b619189b000)
> libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00002b6191aa3000)
> libresolv.so.2 => /lib64/libresolv.so.2 (0x00002b6191ca5000)
> libselinux.so.1 => /lib64/libselinux.so.1 (0x00002b6191ebb000)
> libsepol.so.1 => /lib64/libsepol.so.1 (0x00002b61920d3000)
>

readelf -d libsvn_ra_serf-1.so.0 | grep RPATH
> 0x000000000000000f (RPATH) Library rpath:
> [/apps/install/subversion-1.7.0-beta2-Linux_x86_64/subversion/libsvn_delta/.libs:/apps/install/subversion-1.7.0-beta2-Linux_x86_64/subversion/libsvn_subr/.libs:/apps/install/subversion-1.7.0-beta2-Linux_x86_64/serf/.libs:/apps/Linux_x86_64/subversion-1.7.0-beta2/lib:/usr/lib64]
>

apr_file_buffer_set is not defined in the system libapr-1.so.0, but it is
defined in mine
(/apps/Linux_x86_64/subversion-1.7.0-beta2/lib/libapr-1.so.0). I have
verified
this with readelf -s. Somehow it appears that when check-swig-py is run the
system library /usr/lib64/libapr-1.so.0 is used instead of the one I built,
despite the results of
ldd and readelf shown above. Is there some method to get python use the
RPATH in libsvn_ra_serf as ldd does so the correct libapr is found, or is
the python check overriding RPATH with
some method like LD_LIBRARY_PATH?
Received on 2011-07-29 17:13:29 CEST

This is an archived mail posted to the Subversion Users mailing list.