Fix: cygwin does not honour LD_LIBRARY_PATH
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Thu, 11 Jul 2019 21:45:56 +0000 (17:45 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Fri, 12 Jul 2019 16:24:52 +0000 (12:24 -0400)
Cygwin, just like Windows, relies on PATH to find libraries.

Error:

15:16:01 FAIL: python-plugin-provider/test_python_plugin_provider 1 - test_python_plugin_provider (unittest.loader._FailedTest)
15:16:01 # python-plugin-provider/test_python_plugin_provider: Traceback (most recent call last):
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/usr/lib/python3.6/unittest/case.py", line 59, in testPartExecutor
15:16:01 # python-plugin-provider/test_python_plugin_provider: yield
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/usr/lib/python3.6/unittest/case.py", line 605, in run
15:16:01 # python-plugin-provider/test_python_plugin_provider: testMethod()
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/usr/lib/python3.6/unittest/loader.py", line 34, in testFailure
15:16:01 # python-plugin-provider/test_python_plugin_provider: raise self._exception
15:16:01 # python-plugin-provider/test_python_plugin_provider: ImportError: Failed to import test module: test_python_plugin_provider
15:16:01 # python-plugin-provider/test_python_plugin_provider: Traceback (most recent call last):
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/cygdrive/c/Users/jenkins/workspace/babeltrace_master_winbuild/arch/cygwin/build/std/conf/std/src/babeltrace/src/bindings/python/bt2/build/build_lib/bt2/native_bt.py", line 14, in swig_import_helper
15:16:01 # python-plugin-provider/test_python_plugin_provider: return importlib.import_module(mname)
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
15:16:01 # python-plugin-provider/test_python_plugin_provider: return _bootstrap._gcd_import(name[level:], package, level)
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "<frozen importlib._bootstrap>", line 994, in _gcd_import
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "<frozen importlib._bootstrap>", line 971, in _find_and_load
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "<frozen importlib._bootstrap>", line 571, in module_from_spec
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "<frozen importlib._bootstrap_external>", line 922, in create_module
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
15:16:01 # python-plugin-provider/test_python_plugin_provider: ImportError: No such file or directory
15:16:01 # python-plugin-provider/test_python_plugin_provider: During handling of the above exception, another exception occurred:
15:16:01 # python-plugin-provider/test_python_plugin_provider: Traceback (most recent call last):
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/usr/lib/python3.6/unittest/loader.py", line 428, in _find_test_path
15:16:01 # python-plugin-provider/test_python_plugin_provider: module = self._get_module_from_name(name)
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/usr/lib/python3.6/unittest/loader.py", line 369, in _get_module_from_name
15:16:01 # python-plugin-provider/test_python_plugin_provider: __import__(name)
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/cygdrive/c/Users/jenkins/workspace/babeltrace_master_winbuild/arch/cygwin/build/std/conf/std/src/babeltrace/tests/python-plugin-provider/test_python_plugin_provider.py", line 20, in <module>
15:16:01 # python-plugin-provider/test_python_plugin_provider: import bt2
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/cygdrive/c/Users/jenkins/workspace/babeltrace_master_winbuild/arch/cygwin/build/std/conf/std/src/babeltrace/src/bindings/python/bt2/build/build_lib/bt2/__init__.py", line 26, in <module>
15:16:01 # python-plugin-provider/test_python_plugin_provider: from bt2.clock_class import *
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/cygdrive/c/Users/jenkins/workspace/babeltrace_master_winbuild/arch/cygwin/build/std/conf/std/src/babeltrace/src/bindings/python/bt2/build/build_lib/bt2/clock_class.py", line 23, in <module>
15:16:01 # python-plugin-provider/test_python_plugin_provider: from bt2 import native_bt, object, utils
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/cygdrive/c/Users/jenkins/workspace/babeltrace_master_winbuild/arch/cygwin/build/std/conf/std/src/babeltrace/src/bindings/python/bt2/build/build_lib/bt2/native_bt.py", line 17, in <module>
15:16:01 # python-plugin-provider/test_python_plugin_provider: _native_bt = swig_import_helper()
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/cygdrive/c/Users/jenkins/workspace/babeltrace_master_winbuild/arch/cygwin/build/std/conf/std/src/babeltrace/src/bindings/python/bt2/build/build_lib/bt2/native_bt.py", line 16, in swig_import_helper
15:16:01 # python-plugin-provider/test_python_plugin_provider: return importlib.import_module('_native_bt')
15:16:01 # python-plugin-provider/test_python_plugin_provider: File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
15:16:01 # python-plugin-provider/test_python_plugin_provider: return _bootstrap._gcd_import(name[level:], package, level)
15:16:01 # python-plugin-provider/test_python_plugin_provider: ModuleNotFoundError: No module named '_native_bt'

Change-Id: Ife8ce952a9dc34a78f3ee293e52a13c7f8a1310d
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1694
Reviewed-by: Michael Jeanson <mjeanson@efficios.com>
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
Tested-by: jenkins <jenkins@lttng.org>
doc/bindings/python/Makefile.am
tests/utils/utils.sh

index 4c7f43002b409c908ea5597c4f696ce3a7ece6ae..f87c02a0177261b7b315c0baee9dca783fc3da03 100644 (file)
@@ -12,7 +12,11 @@ all-local: $(SPHINX_HTML_TARGET) $(SPHINX_DIRHTML_TARGET)
 PYTHON_BT2_BUILD_LIB_DIR = $(abs_top_builddir)/src/bindings/python/bt2/build/build_lib
 PP = $(PYTHON_BT2_BUILD_LIB_DIR)
 LLP = $(abs_top_builddir)/src/lib/.libs
-SPHINXBUILD = PYTHONPATH="$(PP)" LD_LIBRARY_PATH="$(LLP)" DYLD_LIBRARY_PATH="$(LLP)" $(PYTHON) -m sphinx
+
+# PATH is used as a replacement for LD_LIBRARY_PATH on Windows build
+# (CYGWIN, MINGW).
+# DYLD_LIBRARY_PATH is used a replacement for LD_LIBRARY_PATH on MacOSX build.
+SPHINXBUILD = PATH="$(LLP):$$PATH" PYTHONPATH="$(PP)" LD_LIBRARY_PATH="$(LLP)" DYLD_LIBRARY_PATH="$(LLP)" $(PYTHON) -m sphinx
 SPHINX_SRC = $(wildcard $(SPHINX_SOURCE_DIR)/*.rst)
 
 $(SPHINX_HTML_TARGET): $(SPHINX_SRC)
index 487d7e7e09a92929e746cfeec53734ca7c67091c..6463164d1730424bbd05d8021a12240407f48c50 100644 (file)
@@ -40,6 +40,9 @@ if [ "x${BT_OS_TYPE:-}" = "x" ]; then
        Linux)
                BT_OS_TYPE="linux"
                ;;
+       CYGWIN*)
+               BT_OS_TYPE="cygwin"
+               ;;
        *)
                BT_OS_TYPE="unsupported"
                ;;
@@ -228,7 +231,7 @@ run_python_bt2() {
        local main_lib_path="${BT_TESTS_BUILDDIR}/../src/lib/.libs"
 
        # Set the library search path so the python interpreter can load libbabeltrace2
-       if [ "$BT_OS_TYPE" = "mingw" ]; then
+       if [ "$BT_OS_TYPE" = "mingw" ] || [ "$BT_OS_TYPE" = "cygwin" ]; then
                lib_search_var="PATH"
                lib_search_path="${main_lib_path}:${PATH:-}"
        elif [ "$BT_OS_TYPE" = "darwin" ]; then
This page took 0.025749 seconds and 4 git commands to generate.