configure: create a python venv unconditionally
This patch changes the configure script so that it always creates and uses a python virtual environment unconditionally. Meson bootstrapping is temporarily altered to force the use of meson from git or vendored source (as packaged in our source tarballs). A subsequent commit restores the use of distribution-vendored Meson. Signed-off-by: John Snow <jsnow@redhat.com> Message-Id: <20230511035435.734312-16-jsnow@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
2274817f6c
commit
81e2b198a8
34
configure
vendored
34
configure
vendored
@ -625,7 +625,6 @@ check_py_version() {
|
||||
python=
|
||||
first_python=
|
||||
if test -z "${PYTHON}"; then
|
||||
explicit_python=no
|
||||
# A bare 'python' is traditionally python 2.x, but some distros
|
||||
# have it as python 3.x, so check in both places.
|
||||
for binary in python3 python python3.11 python3.10 python3.9 python3.8 python3.7 python3.6; do
|
||||
@ -644,7 +643,6 @@ else
|
||||
# Same as above, but only check the environment variable.
|
||||
has "${PYTHON}" || error_exit "The PYTHON environment variable does not point to an executable"
|
||||
python=$(command -v "$PYTHON")
|
||||
explicit_python=yes
|
||||
if check_py_version "$python"; then
|
||||
# This one is good.
|
||||
first_python=
|
||||
@ -729,7 +727,7 @@ for opt do
|
||||
;;
|
||||
--install=*)
|
||||
;;
|
||||
--python=*) python="$optarg" ; explicit_python=yes
|
||||
--python=*) python="$optarg"
|
||||
;;
|
||||
--skip-meson) skip_meson=yes
|
||||
;;
|
||||
@ -1090,8 +1088,34 @@ if ! check_py_version "$python"; then
|
||||
"Use --python=/path/to/python to specify a supported Python."
|
||||
fi
|
||||
|
||||
# Resolve PATH + suppress writing compiled files
|
||||
python="$(command -v "$python") -B"
|
||||
# Resolve PATH
|
||||
python="$(command -v "$python")"
|
||||
explicit_python=yes
|
||||
|
||||
# Create a Python virtual environment using our configured python.
|
||||
# The stdout of this script will be the location of a symlink that
|
||||
# points to the configured Python.
|
||||
# Entry point scripts for pip, meson, and sphinx are generated if those
|
||||
# packages are present.
|
||||
|
||||
# Defaults assumed for now:
|
||||
# - venv is cleared if it exists already;
|
||||
# - venv is allowed to use system packages;
|
||||
# - all setup is performed **offline**;
|
||||
# - No packages are installed by default;
|
||||
# - pip is not installed into the venv when possible,
|
||||
# but ensurepip is called as a fallback when necessary.
|
||||
|
||||
echo "python determined to be '$python'"
|
||||
echo "python version: $($python --version)"
|
||||
|
||||
python="$($python -B "${source_path}/python/scripts/mkvenv.py" create pyvenv)"
|
||||
if test "$?" -ne 0 ; then
|
||||
error_exit "python venv creation failed"
|
||||
fi
|
||||
|
||||
# Suppress writing compiled files
|
||||
python="$python -B"
|
||||
|
||||
has_meson() {
|
||||
local python_dir=$(dirname "$python")
|
||||
|
Loading…
Reference in New Issue
Block a user