diff --git a/python.sh b/python.sh index 67c448b288..5a31a43960 100644 --- a/python.sh +++ b/python.sh @@ -18,13 +18,27 @@ env: PYTHONPATH: "$PYTHON_ROOT/lib/python/site-packages" prefer_system: "(?!slc5|ubuntu)" prefer_system_check: | - case $ALIBUILD_ARCHITECTURE in - osx*) - python3 -c 'from sys import version_info; print(f"alibuild_system_replace: python-brew{version_info.major}.{version_info.minor}")' ;; - *) - python3 -c 'from sys import version_info; print(f"alibuild_system_replace: python{version_info.major}.{version_info.minor}")' - ;; - esac + MIN_ALIBUILD_VERSION_REGEX="v1.17.12" + if [[ $(printf '%s\n' "$ALIBUILD_VERSION" "$MIN_ALIBUILD_VERSION_REGEX" | sort -V | head -n 1) == "$ALIBUILD_VERSION" && "$ALIBUILD_VERSION" != "$MIN_ALIBUILD_VERSION_REGEX" ]]; then + # Workaround to support old alibuild versions that don't regex match alibuild_system_replace + case $ALIBUILD_ARCHITECTURE in + osx*) + python3 -c 'from sys import version_info; print(f"alibuild_system_replace: python-brew3")' ;; + *) + python3 -c 'from sys import version_info; print(f"alibuild_system_replace: python3")' + ;; + esac + else + case $ALIBUILD_ARCHITECTURE in + osx*) + python3 -c 'from sys import version_info; print(f"alibuild_system_replace: python-brew{version_info.major}.{version_info.minor}")' ;; + *) + python3 -c 'from sys import version_info; print(f"alibuild_system_replace: python{version_info.major}.{version_info.minor}")' + ;; + esac + fi + + python3 -c 'import sys; import sqlite3; sys.exit(1 if sys.version_info < (3, 9) or sys.version_info > (3, 13) else 0)' && python3 -m pip --help > /dev/null && printf '#include "pyconfig.h"' | cc -c $(python3-config --includes) -xc -o /dev/null -; if [ $? -ne 0 ]; then printf "Python, the Python development packages, and pip must be installed on your system.\nUsually those packages are called python, python-devel (or python-dev) and python-pip.\n"; exit 1; fi prefer_system_replacement_specs: "python-brew3.*": @@ -35,6 +49,16 @@ prefer_system_replacement_specs: env: PYTHON_ROOT: "" PYTHON_REVISION: "" + + # Workaround to support old alibuild versions that don't regex match alibuild_system_replace + "python-brew3": + env: + PYTHON_ROOT: $(brew --prefix python3) + PYTHON_REVISION: "" + "python3": + env: + PYTHON_ROOT: "" + PYTHON_REVISION: "" --- rsync -av --exclude '**/.git' $SOURCEDIR/ $BUILDDIR/