With Debian 11 tests removed from our CI suite, we are allowed to rely
on the versions present in CentOS Stream 9 as a new minimum.

Note that CentOS Stream 9 does offer Python 3.12 packages, but mandating
this incurs the loss of ability to build offline documentation on CentOS
because there is no official Sphinx package for Python 3.12. We will
very likely mandate these upgraded packages for QEMU 11.1, but there is
no real benefit to doing it now for 11.0 - It will be simpler to perform
that upgrade after QEMU drops support for Ubuntu 22.04 LTS in late
April.

See
https://gitlab.com/jsnow/repology-dashboard#results-overview-as-of-2026-02-16
for more details on current Python ecosystem versions across all of our
supported build platforms.

Signed-off-by: John Snow <[email protected]>
---
 python/tests/minreqs.txt |  1 +
 pythondeps.toml          | 18 ++++++++++--------
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/python/tests/minreqs.txt b/python/tests/minreqs.txt
index 855b5129c94..6fc671b1780 100644
--- a/python/tests/minreqs.txt
+++ b/python/tests/minreqs.txt
@@ -16,6 +16,7 @@
 # installation of the QEMU package itself fails, failing to find
 # setuptools.
 setuptools<=70
+wheel==0.36.2
 
 # Dependencies for qapidoc/qapi_domain et al
 sphinx==3.4.3
diff --git a/pythondeps.toml b/pythondeps.toml
index a0717742423..c843f163a8f 100644
--- a/pythondeps.toml
+++ b/pythondeps.toml
@@ -38,14 +38,16 @@ sphinx_rtd_theme = { accepted = ">=0.5", installed = 
"1.2.2" }
 [tooling]
 "qemu.qmp" = { accepted = ">=0.0.5", installed = "0.0.5" }
 "qemu" = { path = "python/" }
-# NB: The following dependencies should be a little bit more modern than
-# the versions listed here, but we are still using Debian 11 for several
-# GitLab CI tests, so we are further restricted.
-"setuptools" = { accepted = ">=44.1.1" }
-"wheel" = { accepted = ">=0.34.2" }
-# pip should be guaranteed by mkvenv, this is merely a sanity check for
-# which version we are counting on being present.
-"pip" = { accepted = ">=20.3.4" }
+# These dependencies largely serve as sanity checks and a place to
+# record our current accepted minimum versions of various python
+# packaging modules; in offline mode, the absence of these modules will
+# cause configure to fail.
+#
+# We are currently constrained by CentOS Stream 9.
+"setuptools" = { accepted = ">=53.0.0" }
+"wheel" = { accepted = ">=0.36.2" }
+# Guaranteed by mkvenv, sanity-check only
+"pip" = { accepted = ">=21.3.1" }
 
 # This test group is for functional tests, and can include dependencies
 # fetched from PyPI.
-- 
2.53.0


Reply via email to