From 1f97715c8390e582f154d8b579c70779bd8c9bdf Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Wed, 9 Aug 2023 01:10:34 +0200 Subject: [PATCH] Revert "python: use vendored tomli" Now that Ubuntu 20.04 is not included anymore, there is no need to ship it as part of QEMU; Ubuntu 22.04 includes it and Leap users anyway need to install all the required dependencies from PyPI. This mostly reverts commit ec77ee7634de123b7c899739711000fd21dab68b, with just some changes to the wording. Signed-off-by: Paolo Bonzini --- configure | 4 ---- docs/devel/build-system.rst | 15 +++++++-------- python/scripts/vendor.py | 3 --- python/wheels/tomli-2.0.1-py3-none-any.whl | Bin 12757 -> 0 bytes 4 files changed, 7 insertions(+), 15 deletions(-) delete mode 100644 python/wheels/tomli-2.0.1-py3-none-any.whl diff --git a/configure b/configure index 4d01a42ba65..5ad1674ca5f 100755 --- a/configure +++ b/configure @@ -955,10 +955,6 @@ mkvenv="$python ${source_path}/python/scripts/mkvenv.py" # Finish preparing the virtual environment using vendored .whl files -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 $mkvenv ensuregroup --dir "${source_path}/python/wheels" \ ${source_path}/pythondeps.toml meson || exit 1 diff --git a/docs/devel/build-system.rst b/docs/devel/build-system.rst index 09caf2f8e19..f4fd76117df 100644 --- a/docs/devel/build-system.rst +++ b/docs/devel/build-system.rst @@ -185,14 +185,13 @@ Bundled Python packages Python packages that are **mandatory** dependencies to build QEMU, but are not available in all supported distros, are bundled with the -QEMU sources. Currently this includes Meson (outdated in CentOS 8 -and derivatives, Ubuntu 20.04 and 22.04, and openSUSE Leap) and tomli -(absent in Ubuntu 20.04). - -If you need to update these, please do so by modifying and rerunning -``python/scripts/vendor.py``. This script embeds the sha256 hash of -package sources and checks it. The pypi.org web site provides an easy -way to retrieve the sha256 hash of the sources. +QEMU sources. The only one is currently Meson (outdated in Ubuntu +22.04 and openSUSE Leap). + +In order to include a new or updated wheel, modify and rerun the +``python/scripts/vendor.py`` script. The script embeds the +sha256 hash of package sources and checks it. The pypi.org web site +provides an easy way to retrieve the sha256 hash of the sources. Stage 2: Meson diff --git a/python/scripts/vendor.py b/python/scripts/vendor.py index 1038b14ae0c..07aff97ccad 100755 --- a/python/scripts/vendor.py +++ b/python/scripts/vendor.py @@ -43,9 +43,6 @@ def main() -> int: packages = { "meson==1.2.3": "4533a43c34548edd1f63a276a42690fce15bde9409bcf20c4b8fa3d7e4d7cac1", - - "tomli==2.0.1": - "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", } vendor_dir = Path(__file__, "..", "..", "wheels").resolve() diff --git a/python/wheels/tomli-2.0.1-py3-none-any.whl b/python/wheels/tomli-2.0.1-py3-none-any.whl deleted file mode 100644 index 29670b98d16e2bc770d4fea718582e1dc0dd8aca..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 12757 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 -- 2.39.5