From 56f9caba675859409983c9a1fbff20c03029b735 Mon Sep 17 00:00:00 2001 From: Brent Huisman <brenthuisman@users.noreply.github.com> Date: Wed, 18 May 2022 10:08:33 +0200 Subject: [PATCH] Fix a bug where Debian/Ubuntu's Python malfunctions (#1894) Upstream bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1006615 Currently affects Ubuntu 22.04 users. Co-authored-by: Simon Frasch <simon.frasch@cscs.ch> --- .github/workflows/ciwheel.yml | 4 ++++ .github/workflows/sanitize.yml | 2 ++ .github/workflows/test-everything.yml | 4 ++++ python/CMakeLists.txt | 3 +-- scripts/where.py | 12 ++++++++++++ 5 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 scripts/where.py diff --git a/.github/workflows/ciwheel.yml b/.github/workflows/ciwheel.yml index 24792583..77f094fb 100644 --- a/.github/workflows/ciwheel.yml +++ b/.github/workflows/ciwheel.yml @@ -24,6 +24,8 @@ jobs: with: fetch-depth: 0 submodules: recursive + - name: Update pip + run: python -m pip install --upgrade pip - name: Build wheels Linux if: ${{ startsWith(matrix.os, 'ubuntu') }} @@ -66,6 +68,8 @@ jobs: steps: - name: Set up Python uses: actions/setup-python@v2 + - name: Update pip + run: python -m pip install --upgrade pip - name: Get packages run: python -m pip install numpy setuptools scikit-build ninja cmake - uses: actions/checkout@v2 diff --git a/.github/workflows/sanitize.yml b/.github/workflows/sanitize.yml index 1e7e371a..f1400f87 100644 --- a/.github/workflows/sanitize.yml +++ b/.github/workflows/sanitize.yml @@ -27,6 +27,8 @@ jobs: uses: actions/checkout@v2 with: submodules: recursive + - name: Update pip + run: python -m pip install --upgrade pip - name: Build arbor run: | mkdir build diff --git a/.github/workflows/test-everything.yml b/.github/workflows/test-everything.yml index 3a829fa6..d540ee52 100644 --- a/.github/workflows/test-everything.yml +++ b/.github/workflows/test-everything.yml @@ -110,6 +110,8 @@ jobs: uses: actions/setup-python@v2 with: python-version: ${{ matrix.config.py }} + - name: Update pip + run: python -m pip install --upgrade pip - name: OpenMPI cache uses: actions/cache@v2 id: cache-ompi @@ -200,6 +202,8 @@ jobs: name: "Pip build test + Python examples test" runs-on: ubuntu-latest steps: + - name: Update pip + run: python -m pip install --upgrade pip - name: Install Python packages run: pip install numpy setuptools scikit-build ninja cmake - name: Clone w/ submodules diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 10220bf9..10e7e246 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -85,8 +85,7 @@ file(COPY "${PROJECT_SOURCE_DIR}/VERSION" DESTINATION "${python_mod_path}") file(WRITE "${CMAKE_BINARY_DIR}/install-prefix" "${CMAKE_INSTALL_PREFIX}") execute_process( - COMMAND ${PYTHON_EXECUTABLE} -c - "import sys,sysconfig;pfx=sys.stdin.read();print(sysconfig.get_path('platlib',vars={} if pfx=='' else {'base':pfx,'platbase':pfx}))" + COMMAND ${PYTHON_EXECUTABLE} "${PROJECT_SOURCE_DIR}/scripts/where.py" INPUT_FILE "${CMAKE_BINARY_DIR}/install-prefix" OUTPUT_VARIABLE ARB_PYTHON_LIB_PATH_DEFAULT OUTPUT_STRIP_TRAILING_WHITESPACE) diff --git a/scripts/where.py b/scripts/where.py new file mode 100644 index 00000000..1abf399e --- /dev/null +++ b/scripts/where.py @@ -0,0 +1,12 @@ +import sys,sysconfig + +pfx=sys.stdin.read() +try: + #override scheme on debian/ubuntu py3.10, where 'posix_local' is set and malfunctioning. + if sysconfig.get_default_scheme()=='posix_local': + print(sysconfig.get_path('platlib',vars={} if pfx=='' else {'base':pfx,'platbase':pfx},scheme='posix_prefix')) + sys.exit() +except AttributeError: + #we're on Python <= 3.9, no scheme setting required and get_default_scheme does not exist. + pass +print(sysconfig.get_path('platlib',vars={} if pfx=='' else {'base':pfx,'platbase':pfx})) -- GitLab