diff --git a/libraries/libapparmor/swig/python/test/Makefile.am b/libraries/libapparmor/swig/python/test/Makefile.am index 9dccfdef6..761735a9a 100644 --- a/libraries/libapparmor/swig/python/test/Makefile.am +++ b/libraries/libapparmor/swig/python/test/Makefile.am @@ -10,8 +10,7 @@ test_python.py: test_python.py.in $(top_builddir)/config.status CLEANFILES = test_python.py -# bah, how brittle is this? -PYTHON_DIST_BUILD_PATH = '$(builddir)/../build/$$($(PYTHON) -c "import sysconfig; print(\"lib.%s-%s\" %(sysconfig.get_platform(), sysconfig.get_python_version()))")' +PYTHON_DIST_BUILD_PATH = '$(builddir)/../build/$$($(PYTHON) buildpath.py)' TESTS = test_python.py TESTS_ENVIRONMENT = \ diff --git a/libraries/libapparmor/swig/python/test/buildpath.py b/libraries/libapparmor/swig/python/test/buildpath.py new file mode 100644 index 000000000..f02410762 --- /dev/null +++ b/libraries/libapparmor/swig/python/test/buildpath.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3 +# the build path has changed in setuptools 61.2 +import sys +import sysconfig +import setuptools +if tuple(map(int,setuptools.__version__.split("."))) >= (61, 2): + identifier = sys.implementation.cache_tag +else: + identifier = "%d.%d" % sys.version_info[:2] +print("lib.%s-%s" % (sysconfig.get_platform(), identifier)) diff --git a/utils/test/Makefile b/utils/test/Makefile index 54afaacc8..e793efe74 100644 --- a/utils/test/Makefile +++ b/utils/test/Makefile @@ -31,8 +31,8 @@ ifdef USE_SYSTEM BASEDIR= PARSER= else - # PYTHON_DIST_BUILD_PATH based on libapparmor/swig/python/test/Makefile.am - PYTHON_DIST_BUILD_PATH = ../../libraries/libapparmor/swig/python/build/$$($(PYTHON) -c "import sysconfig; print(\"lib.%s-%s\" %(sysconfig.get_platform(), sysconfig.get_python_version()))") + # PYTHON_DIST_BUILD_PATH based on libapparmor/swig/python/test/testbuildpath.py + PYTHON_DIST_BUILD_PATH = ../../libraries/libapparmor/swig/python/build/$$($(PYTHON) ../../libraries/libapparmor/swig/python/test/buildpath.py) LIBAPPARMOR_PATH=../../libraries/libapparmor/src/.libs/ LD_LIBRARY_PATH=$(LIBAPPARMOR_PATH):$(PYTHON_DIST_BUILD_PATH) PYTHONPATH=..:$(PYTHON_DIST_BUILD_PATH) diff --git a/utils/test/README.md b/utils/test/README.md index 162439747..a2767d7af 100644 --- a/utils/test/README.md +++ b/utils/test/README.md @@ -16,7 +16,7 @@ For more information, refer to the [unittest documentation](https://docs.python. Make sure to set the environment variables pointing to the in-tree apparmor modules, and the in-tree libapparmor and its python wrapper: ```bash -$ export PYTHONPATH=..:../../libraries/libapparmor/swig/python/build/$(/usr/bin/python3 -c "import sysconfig; print(\"lib.%s-%s\" %(sysconfig.get_platform(), sysconfig.get_python_version()))") +$ export PYTHONPATH=..:../../libraries/libapparmor/swig/python/build/$(/usr/bin/python3 ../../libraries/libapparmor/swig/python/test/buildpath.py) $ export __AA_CONFDIR=. ``` @@ -24,4 +24,4 @@ To execute the test individually, run: ```bash $ python3 ./test-tile.py ClassFoo.test_bar -``` \ No newline at end of file +```