Revert "Drop support for Python 3.8"

This reverts commit 3d5b2f81fb.

It should not be in 10.0.x branch, since we do support python 3.8
in 10.0.

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
Michael Tokarev 2025-05-28 10:49:31 +03:00
parent fd0b1a5b13
commit 6f7a53e58e
7 changed files with 19 additions and 17 deletions

14
configure vendored
View file

@ -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.9.
# We require python >= 3.8.
# NB: a True python conditional creates a non-zero return code (Failure)
"$1" -c 'import sys; sys.exit(sys.version_info < (3,9))'
"$1" -c 'import sys; sys.exit(sys.version_info < (3,8))'
}
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.13 python3.12 python3.11 \
python3.10 python3.9 ; do
for binary in python3 python python3.12 python3.11 \
python3.10 python3.9 python3.8; 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.9 is required." \
error_exit "Cannot use '$first_python', Python >= 3.8 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.9 is required." \
error_exit "Cannot use '$python', Python >= 3.8 is required." \
"Use --python=/path/to/python to specify a supported Python." \
"Maybe try:" \
" openSUSE Leap 15.3+: zypper install python39" \
" CentOS: dnf install python3.12"
" CentOS 8: dnf install python38"
fi
# Resolve PATH

View 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.9.
As of QEMU |version|, the minimum supported version of Python is 3.8.
Python build dependencies
Some of QEMU's build dependencies are written in Python. Usually these

View 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.9"
@echo " Hint (Fedora): 'sudo dnf install python3.9'"
@echo " Requires: Python 3.8"
@echo " Hint (Fedora): 'sudo dnf install python3.8'"
@echo ""
@echo "make check-tox:"
@echo " Run tests against multiple python versions."
@echo " These tests use the newest dependencies."
@echo " Requires: Python 3.9 - 3.11, and tox."
@echo " Requires: Python 3.8 - 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.9 -m venv $(QEMU_MINVENV_DIR)
@python3.8 -m venv $(QEMU_MINVENV_DIR)
@( \
echo "ACTIVATE $(QEMU_MINVENV_DIR)"; \
. $(QEMU_MINVENV_DIR)/bin/activate; \

View file

@ -14,6 +14,7 @@ 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
@ -22,7 +23,7 @@ classifiers =
Typing :: Typed
[options]
python_requires = >= 3.9
python_requires = >= 3.8
packages =
qemu.qmp
qemu.machine
@ -77,7 +78,7 @@ exclude = __pycache__,
[mypy]
strict = True
python_version = 3.9
python_version = 3.8
warn_unused_configs = True
namespace_packages = True
warn_unused_ignores = False
@ -185,7 +186,7 @@ multi_line_output=3
# of python available on your system to run this test.
[tox:tox]
envlist = py39, py310, py311, py312, py313
envlist = py38, py39, py310, py311, py312, py313
skip_missing_interpreters = true
[testenv]

View file

@ -1,5 +1,5 @@
# This file lists the ***oldest possible dependencies*** needed to run
# "make check" successfully under ***Python 3.9***. It is used primarily
# "make check" successfully under ***Python 3.8***. It is used primarily
# by GitLab CI to ensure that our stated minimum versions in setup.cfg
# are truthful and regularly validated.
#

View file

@ -1,4 +1,4 @@
[mypy]
strict = True
disallow_untyped_calls = False
python_version = 3.9
python_version = 3.8

View file

@ -15,6 +15,7 @@ ENV PACKAGES \
python3.11 \
python3.12 \
python3.13 \
python3.8 \
python3.9
RUN dnf install -y $PACKAGES