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
# 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"
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
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
@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".
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; \
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
Typing :: Typed
[options]
-python_requires = >= 3.9
+python_requires = >= 3.8
packages =
qemu.qmp
qemu.machine
[mypy]
strict = True
-python_version = 3.9
+python_version = 3.8
warn_unused_configs = True
namespace_packages = True
warn_unused_ignores = False
# 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]
# 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.
#
[mypy]
strict = True
disallow_untyped_calls = False
-python_version = 3.9
+python_version = 3.8
python3.11 \
python3.12 \
python3.13 \
+ python3.8 \
python3.9
RUN dnf install -y $PACKAGES