From d3ea2b1af14d375f9de299071a1edc1409b99fd5 Mon Sep 17 00:00:00 2001 From: macayu17 Date: Tue, 15 Sep 2026 08:50:01 +0530 Subject: [PATCH 1/2] Accept xz prebuilt archives --- pythons/test/update.sh | 12 ++++++------ pythons/update.sh | 7 +++++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/pythons/test/update.sh b/pythons/test/update.sh index 08fe0df..fa1f087 100755 --- a/pythons/test/update.sh +++ b/pythons/test/update.sh @@ -28,18 +28,18 @@ trap 'rm -rf "$tmpdir"' EXIT cp update.sh index.html "$tmpdir" mkdir "$tmpdir/binaries" -printf archive-data > "$tmpdir/binaries/3.14.0-ubuntu-24.04-x86_64.tar.gz" +printf archive-data > "$tmpdir/binaries/3.14.0-ubuntu-24.04-x86_64.tar.xz" printf definition > "$tmpdir/binaries/3.14.0-ubuntu-24.04-x86_64" cd "$tmpdir" -write_meta 3.14.0-ubuntu-24.04-x86_64.tar.gz +write_meta 3.14.0-ubuntu-24.04-x86_64.tar.xz bash ./update.sh >/dev/null 2>&1 || fail "update failed" sha=8a6111c3ca752ed6d5f8e8a6daa3ba4b8c3b0bf55f00a87ac2b285024ef87e5f -[ "binaries/3.14.0-ubuntu-24.04-x86_64.tar.gz" -ef "$sha" ] || +[ "binaries/3.14.0-ubuntu-24.04-x86_64.tar.xz" -ef "$sha" ] || fail "checksum path is not a hardlink to the archive" -entry='
  • 3.14.0-ubuntu-24.04-x86_64.tar.gz (definition)
  • ' +entry='
  • 3.14.0-ubuntu-24.04-x86_64.tar.xz (definition)
  • ' grep -Fqx "$entry" index.html || fail "prebuilt archive is missing from index.html" cp index.html index.before @@ -83,14 +83,14 @@ if bash ./update.sh >/dev/null 2>&1; then fail "update accepted an archive outside binaries" fi -write_meta 3.14.0-ubuntu-24.04-x86_64.tar.gz +write_meta 3.14.0-ubuntu-24.04-x86_64.tar.xz rm binaries/3.14.0-ubuntu-24.04-x86_64 if bash ./update.sh >/dev/null 2>&1; then fail "update accepted a missing definition" fi printf definition > binaries/3.14.0-ubuntu-24.04-x86_64 -rm binaries/3.14.0-ubuntu-24.04-x86_64.tar.gz +rm binaries/3.14.0-ubuntu-24.04-x86_64.tar.xz if bash ./update.sh >/dev/null 2>&1; then fail "update accepted a missing archive" fi diff --git a/pythons/update.sh b/pythons/update.sh index bfc49e3..a367003 100755 --- a/pythons/update.sh +++ b/pythons/update.sh @@ -67,10 +67,13 @@ for meta in binaries/*.meta; do exit 1 ;; esac - if [ "$archive" != "$name.tar.gz" ]; then + case "$archive" in + "$name.tar.gz" | "$name.tar.xz") ;; + *) echo "Invalid archive in $meta" >&2 exit 1 - fi + ;; + esac if [ ! -f "binaries/$archive" ] || [ ! -f "binaries/$name" ]; then echo "Missing archive or definition for $name" >&2 exit 1 From 4ee3a87a2e9d88ed01ca7ba43ea7c4565378043b Mon Sep 17 00:00:00 2001 From: macayu17 Date: Tue, 15 Sep 2026 09:25:32 +0530 Subject: [PATCH 2/2] Test gzip prebuilt archives --- pythons/test/update.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/pythons/test/update.sh b/pythons/test/update.sh index fa1f087..ed7df4c 100755 --- a/pythons/test/update.sh +++ b/pythons/test/update.sh @@ -10,15 +10,16 @@ fail() { } write_meta() { - cat > binaries/3.14.0-ubuntu-24.04-x86_64.meta < "binaries/$name.meta" < "$tmpdir/binaries/3.14.0-ubuntu-24.04-x86_64.tar.xz" printf definition > "$tmpdir/binaries/3.14.0-ubuntu-24.04-x86_64" +gzip_name=3.13.0-ubuntu-24.04-x86_64 +printf gzip-archive-data > "$tmpdir/binaries/$gzip_name.tar.gz" +printf definition > "$tmpdir/binaries/$gzip_name" cd "$tmpdir" write_meta 3.14.0-ubuntu-24.04-x86_64.tar.xz +write_meta "$gzip_name.tar.gz" "$gzip_name" bash ./update.sh >/dev/null 2>&1 || fail "update failed" sha=8a6111c3ca752ed6d5f8e8a6daa3ba4b8c3b0bf55f00a87ac2b285024ef87e5f @@ -42,10 +47,18 @@ sha=8a6111c3ca752ed6d5f8e8a6daa3ba4b8c3b0bf55f00a87ac2b285024ef87e5f entry='
  • 3.14.0-ubuntu-24.04-x86_64.tar.xz (definition)
  • ' grep -Fqx "$entry" index.html || fail "prebuilt archive is missing from index.html" +gzip_sha=c809857f5fa564e1a2fdb3618161114bfb9a9c624ade6b580f6d79df0adfcc26 +[ "binaries/$gzip_name.tar.gz" -ef "$gzip_sha" ] || + fail "gzip checksum path is not a hardlink to the archive" + +gzip_entry="
  • $gzip_name.tar.gz (definition)
  • " +grep -Fqx "$gzip_entry" index.html || fail "gzip prebuilt archive is missing from index.html" + cp index.html index.before bash ./update.sh >/dev/null 2>&1 || fail "second update failed" cmp -s index.before index.html || fail "second update changed index.html" [ "$(grep -Fxc "$entry" index.html)" -eq 1 ] || fail "prebuilt archive is listed more than once" +[ "$(grep -Fxc "$gzip_entry" index.html)" -eq 1 ] || fail "gzip prebuilt archive is listed more than once" bad_name=$'bad\nname' printf 'archive=bad\narchive=name.tar.gz\n' > "binaries/$bad_name.meta"