From edc2107895007d621fe474d58bcb99036c8e55d2 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 8 Aug 2023 20:19:43 +0200 Subject: [PATCH] python: use vendored tomli Debian only introduced tomli in the bookworm release. Use a vendored wheel to avoid requiring a package that is only in bullseye-backports and is also absent in Ubuntu 20.04. While at it, fix an issue in the vendor.py scripts which does not add a newline after each package and hash. Signed-off-by: Paolo Bonzini --- configure | 6 ++++++ python/scripts/vendor.py | 5 ++++- python/wheels/tomli-2.0.1-py3-none-any.whl | Bin 0 -> 12757 bytes 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 python/wheels/tomli-2.0.1-py3-none-any.whl diff --git a/configure b/configure index f13f0662b9..347153702c 100755 --- a/configure +++ b/configure @@ -1018,6 +1018,12 @@ fi python="$python -B" 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 if ! $mkvenv ensure \ --dir "${source_path}/python/wheels" \ --diagnose "meson" \ diff --git a/python/scripts/vendor.py b/python/scripts/vendor.py index 34486a51f4..7627487117 100755 --- a/python/scripts/vendor.py +++ b/python/scripts/vendor.py @@ -43,13 +43,16 @@ def main() -> int: packages = { "meson==0.63.3": "d677b809c4895dcbaac9bf6c43703fcb3609a4b24c6057c78f828590049cf43a", + + "tomli==2.0.1": + "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", } vendor_dir = Path(__file__, "..", "..", "wheels").resolve() with tempfile.NamedTemporaryFile(mode="w", encoding="utf-8") as file: for dep_spec, checksum in packages.items(): - file.write(f"{dep_spec} --hash=sha256:{checksum}") + print(f"{dep_spec} --hash=sha256:{checksum}", file=file) file.flush() cli_args = [ diff --git a/python/wheels/tomli-2.0.1-py3-none-any.whl b/python/wheels/tomli-2.0.1-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..29670b98d16e2bc770d4fea718582e1dc0dd8aca GIT binary patch literal 12757 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 literal 0 HcmV?d00001