python: use vendored tomli
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 8 Aug 2023 18:19:43 +0000 (20:19 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 28 Aug 2023 07:55:48 +0000 (09:55 +0200)
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 <pbonzini@redhat.com>
configure
python/scripts/vendor.py
python/wheels/tomli-2.0.1-py3-none-any.whl [new file with mode: 0644]

index f13f0662b9851615c169f2abaf3f912ed2a9af8b..347153702c14e5716d4807b1a313cff8f0f178fb 100755 (executable)
--- 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" \
index 34486a51f445d8be109ae2eb97f9d9d6c1a5e6b1..762748711702f486dfdbbd35e160c8358eac33c3 100755 (executable)
@@ -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 (file)
index 0000000..29670b9
Binary files /dev/null and b/python/wheels/tomli-2.0.1-py3-none-any.whl differ