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?