]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: python tests should not remove user's LD_LIBRARY_PATH
authorRuediger Meier <ruediger.meier@ga-group.nl>
Tue, 20 Jan 2015 11:22:35 +0000 (12:22 +0100)
committerRuediger Meier <ruediger.meier@ga-group.nl>
Tue, 20 Jan 2015 12:12:29 +0000 (13:12 +0100)
LD_LIBRARY_PATH must be preserved like it's done in libtool's
temporary wrapper scripts.

This problem was noticed when building with Intel's icc (15.0.0):
$ make check TS_OPTS="libmount"
$ tail tests/diff/libmount/tabfiles-py-parse-mtab
[...]
+Traceback (most recent call last):
+  File "/tmp/util-linux/libmount/python/test_mount_tab.py", line 8, in <module>
+    import pylibmount as mnt
+ImportError: libimf.so: cannot open shared object file: No such file or directory

... although libimf.so was in LD_LIBRARY_PATH.

NOTE 1:
  When running root checks "sudo -E" is not enough to preserve
  LD_LIBRARY_PATH because glibc already removes is. This would work:
  $ sudo -E env LD_LIBRARY_PATH=$LD_LIBRARY_PATH make check TS_OPTS="--parallel=1"

NOTE 2:
  We also preserve PYTHONPATH which could bring us similar problems if
  the user has a customized python installation.

Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
tests/functions.sh

index a9b37581dbdc90920e6b6c3cc9e94aa77f5083ab..852a6a31391fe4330bc6ed9f965efcd27db760fb 100644 (file)
@@ -332,8 +332,8 @@ function ts_init_py {
 
        [ -f "$top_builddir/py${LIBNAME}.la" ] || ts_skip "py${LIBNAME} not compiled"
 
-       export LD_LIBRARY_PATH="$top_builddir/.libs"
-       export PYTHONPATH="$top_builddir/$LIBNAME/python:$top_builddir/.libs"
+       export LD_LIBRARY_PATH="$top_builddir/.libs:$LD_LIBRARY_PATH"
+       export PYTHONPATH="$top_builddir/$LIBNAME/python:$top_builddir/.libs:$PYTHONPATH"
 
        export PYTHON_VERSION=$(awk '/^PYTHON_VERSION/ { print $3 }' $top_builddir/Makefile)
        export PYTHON_MAJOR_VERSION=$(echo $PYTHON_VERSION | sed 's/\..*//')