]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
Drop support for Python 3.8
authorThomas Huth <thuth@redhat.com>
Fri, 25 Apr 2025 12:07:10 +0000 (14:07 +0200)
committerMichael Tokarev <mjt@tls.msk.ru>
Sun, 25 May 2025 10:37:53 +0000 (13:37 +0300)
Python 3.8 went "end of life" in October 2024 and Fedora 42 dropped
this version already, so the "python" CI job is currently failing.
Thus it's time to drop support for this Python version in QEMU, too.

While we're at it, also look for "python3.13" in the configure script.

Message-ID: <20250425120710.879518-1-thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
(cherry picked from commit d64db833d6e3cbe9ea5f36342480f920f3675cea)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
configure
docs/about/build-platforms.rst
python/Makefile
python/setup.cfg
python/tests/minreqs.txt
scripts/qapi/mypy.ini
tests/docker/dockerfiles/python.docker

index 02f1dd2311f8cc0b34a28be276ba09314f587460..a2f5597fa0986b987e7ae10c356ca3bd9286b10f 100755 (executable)
--- a/configure
+++ b/configure
@@ -540,17 +540,17 @@ if test -n "$linux_arch" && ! test -d "$source_path/linux-headers/asm-$linux_arc
 fi
 
 check_py_version() {
-    # We require python >= 3.8.
+    # We require python >= 3.9.
     # NB: a True python conditional creates a non-zero return code (Failure)
-    "$1" -c 'import sys; sys.exit(sys.version_info < (3,8))'
+    "$1" -c 'import sys; sys.exit(sys.version_info < (3,9))'
 }
 
 first_python=
 if test -z "${PYTHON}"; then
     # 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.12 python3.11 \
-                          python3.10 python3.9 python3.8; do
+    for binary in python3 python python3.13 python3.12 python3.11 \
+                          python3.10 python3.9 ; do
         if has "$binary"; then
             python=$(command -v "$binary")
             if check_py_version "$python"; then
@@ -933,7 +933,7 @@ then
     # If first_python is set, there was a binary somewhere even though
     # it was not suitable.  Use it for the error message.
     if test -n "$first_python"; then
-        error_exit "Cannot use '$first_python', Python >= 3.8 is required." \
+        error_exit "Cannot use '$first_python', Python >= 3.9 is required." \
             "Use --python=/path/to/python to specify a supported Python."
     else
         error_exit "Python not found. Use --python=/path/to/python"
@@ -941,11 +941,11 @@ then
 fi
 
 if ! check_py_version "$python"; then
-  error_exit "Cannot use '$python', Python >= 3.8 is required." \
+  error_exit "Cannot use '$python', Python >= 3.9 is required." \
              "Use --python=/path/to/python to specify a supported Python." \
              "Maybe try:" \
              "  openSUSE Leap 15.3+: zypper install python39" \
-             "  CentOS 8: dnf install python38"
+             "  CentOS: dnf install python3.12"
 fi
 
 # Resolve PATH
index 1552b1a70441ba131ea3e21683897e756dcebfd1..c352a99544426ccb06f227284e73b538160df2cb 100644 (file)
@@ -101,7 +101,7 @@ Python runtime
   option of the ``configure`` script to point QEMU to a supported
   version of the Python runtime.
 
-  As of QEMU |version|, the minimum supported version of Python is 3.8.
+  As of QEMU |version|, the minimum supported version of Python is 3.9.
 
 Python build dependencies
   Some of QEMU's build dependencies are written in Python.  Usually these
index 1fa4ba2498e6bebe179c8df13bd02aa2a46eef0a..764b79ccb2304ece5ff03a9ff01c4deec979f109 100644 (file)
@@ -9,13 +9,13 @@ help:
        @echo "make check-minreqs:"
        @echo "    Run tests in the minreqs virtual environment."
        @echo "    These tests use the oldest dependencies."
-       @echo "    Requires: Python 3.8"
-       @echo "    Hint (Fedora): 'sudo dnf install python3.8'"
+       @echo "    Requires: Python 3.9"
+       @echo "    Hint (Fedora): 'sudo dnf install python3.9'"
        @echo ""
        @echo "make check-tox:"
        @echo "    Run tests against multiple python versions."
        @echo "    These tests use the newest dependencies."
-       @echo "    Requires: Python 3.8 - 3.11, and tox."
+       @echo "    Requires: Python 3.9 - 3.11, and tox."
        @echo "    Hint (Fedora): 'sudo dnf install python3-tox python3.11'"
        @echo "    The variable QEMU_TOX_EXTRA_ARGS can be use to pass extra"
        @echo "    arguments to tox".
@@ -59,7 +59,7 @@ PIP_INSTALL = pip install --disable-pip-version-check
 min-venv: $(QEMU_MINVENV_DIR) $(QEMU_MINVENV_DIR)/bin/activate
 $(QEMU_MINVENV_DIR) $(QEMU_MINVENV_DIR)/bin/activate: setup.cfg tests/minreqs.txt
        @echo "VENV $(QEMU_MINVENV_DIR)"
-       @python3.8 -m venv $(QEMU_MINVENV_DIR)
+       @python3.9 -m venv $(QEMU_MINVENV_DIR)
        @(                                                              \
                echo "ACTIVATE $(QEMU_MINVENV_DIR)";                    \
                . $(QEMU_MINVENV_DIR)/bin/activate;                     \
index cf5af7e6641029f7d1de766d63f69aa979213d6d..c48dff280a370ac3f1427aae5193175edca97a47 100644 (file)
@@ -14,7 +14,6 @@ classifiers =
     Natural Language :: English
     Operating System :: OS Independent
     Programming Language :: Python :: 3 :: Only
-    Programming Language :: Python :: 3.8
     Programming Language :: Python :: 3.9
     Programming Language :: Python :: 3.10
     Programming Language :: Python :: 3.11
@@ -23,7 +22,7 @@ classifiers =
     Typing :: Typed
 
 [options]
-python_requires = >= 3.8
+python_requires = >= 3.9
 packages =
     qemu.qmp
     qemu.machine
@@ -78,7 +77,7 @@ exclude = __pycache__,
 
 [mypy]
 strict = True
-python_version = 3.8
+python_version = 3.9
 warn_unused_configs = True
 namespace_packages = True
 warn_unused_ignores = False
@@ -186,7 +185,7 @@ multi_line_output=3
 # of python available on your system to run this test.
 
 [tox:tox]
-envlist = py38, py39, py310, py311, py312, py313
+envlist = py39, py310, py311, py312, py313
 skip_missing_interpreters = true
 
 [testenv]
index a3f423efd84ded946ad0c807ab5920df1b554c23..6445407ba870791d52e01fad0a1fca828eaa23fc 100644 (file)
@@ -1,5 +1,5 @@
 # This file lists the ***oldest possible dependencies*** needed to run
-# "make check" successfully under ***Python 3.8***. It is used primarily
+# "make check" successfully under ***Python 3.9***. It is used primarily
 # by GitLab CI to ensure that our stated minimum versions in setup.cfg
 # are truthful and regularly validated.
 #
index 8109470a031eb6f2c3850a2f5044023da74f14d6..c9dbcec2db002cfa6d641368ebf05d0ef8422939 100644 (file)
@@ -1,4 +1,4 @@
 [mypy]
 strict = True
 disallow_untyped_calls = False
-python_version = 3.8
+python_version = 3.9
index 8f0af9ef25faa2a5884b4cd6c65ea6aff19f24c8..59e70a024847e4961d39b63af462cc60e7d31262 100644 (file)
@@ -15,7 +15,6 @@ ENV PACKAGES \
     python3.11 \
     python3.12 \
     python3.13 \
-    python3.8 \
     python3.9
 
 RUN dnf install -y $PACKAGES