aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2023-08-08 11:23:48 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2023-08-28 09:55:48 +0200
commitc853c4d08728f8e7fa6965e8508ed826b5461f04 (patch)
treed60c331bf7e59b2638d9a838476cc8a22b5abfd7
parentedc2107895007d621fe474d58bcb99036c8e55d2 (diff)
downloadqemu-c853c4d08728f8e7fa6965e8508ed826b5461f04.zip
qemu-c853c4d08728f8e7fa6965e8508ed826b5461f04.tar.gz
qemu-c853c4d08728f8e7fa6965e8508ed826b5461f04.tar.bz2
configure: switch to ensuregroup
Using the new ensuregroup command, the desired versions of meson and sphinx can be placed in pythondeps.toml rather than configure. The meson.install entry in pythondeps.toml matches the version that is found in python/wheels. This ensures that mkvenv.py uses the bundled wheel even if PyPI is enabled; thus not introducing warnings or errors from versions that are more recent than the one used in CI. The sphinx entries match what is shipped in Fedora 38. It's the last release that has support for older versions of Python (sphinx 6.0 requires Python 3.8) and especially docutils (of which sphinx 6.0 requires version 0.18). This is important because Ubuntu 20.04 has docutils 0.14 and Debian 11 has docutils 0.16. "mkvenv.py ensure" is only used to bootstrap tomli. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rwxr-xr-xconfigure14
-rw-r--r--pythondeps.toml8
2 files changed, 12 insertions, 10 deletions
diff --git a/configure b/configure
index 3471537..e4d42d6 100755
--- a/configure
+++ b/configure
@@ -1024,13 +1024,8 @@ if $python -c 'import sys; sys.exit(sys.version_info >= (3,11))'; then
$mkvenv ensure --dir "${source_path}/python/wheels" \
'tomli>=1.2.0' || exit 1
fi
-if ! $mkvenv ensure \
- --dir "${source_path}/python/wheels" \
- --diagnose "meson" \
- "meson>=0.63.0" ;
-then
- exit 1
-fi
+$mkvenv ensuregroup --dir "${source_path}/python/wheels" \
+ ${source_path}/pythondeps.toml meson || exit 1
# At this point, we expect Meson to be installed and available.
# We expect mkvenv or pip to have created pyvenv/bin/meson for us.
@@ -1047,10 +1042,9 @@ if test "$download" = "enabled" -a "$docs" = "enabled" ; then
fi
if test "$docs" != "disabled" ; then
- if ! $mkvenv ensure \
+ if ! $mkvenv ensuregroup \
$mkvenv_flags \
- --diagnose "sphinx-build" \
- "sphinx>=1.6.0" "sphinx-rtd-theme>=0.5.0";
+ ${source_path}/pythondeps.toml docs;
then
if test "$docs" = "enabled" ; then
exit 1
diff --git a/pythondeps.toml b/pythondeps.toml
index 362f63f..6be31dba 100644
--- a/pythondeps.toml
+++ b/pythondeps.toml
@@ -15,3 +15,11 @@
# precise error diagnostics to the user. For example,
# 'sphinx-build' can be used as a bellwether for the
# presence of 'sphinx' in the system.
+
+[meson]
+# The install key should match the version in python/wheels/
+meson = { accepted = ">=0.63.0", installed = "0.63.3", canary = "meson" }
+
+[docs]
+sphinx = { accepted = ">=1.6", installed = "5.3.0", canary = "sphinx-build" }
+sphinx_rtd_theme = { accepted = ">=0.5", installed = "1.1.1" }