From 9779715f163897e0b1ef0d14ceefaba896fc7c8b Mon Sep 17 00:00:00 2001 From: Spencer Bull Date: Wed, 9 Sep 2026 17:19:40 -0500 Subject: [PATCH] Fix large Cua release pages and isolate hook fixtures Feed GitHub release pages to jq through stdin so real pages do not exceed Linux argument limits. Generate an oversized fixture response in the curl mock, and run hook fixtures against a temporary pinned PKGBUILD so routine package updates do not break repository self-tests. Co-Authored-By: Codex GPT-6 XHigh --- .../cua-driver-bin/.omarchy/upstream-test.sh | 24 +++++++++++++++---- pkgbuilds/cua-driver-bin/.omarchy/upstream.sh | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/pkgbuilds/cua-driver-bin/.omarchy/upstream-test.sh b/pkgbuilds/cua-driver-bin/.omarchy/upstream-test.sh index 48f099c..dbb6f1a 100644 --- a/pkgbuilds/cua-driver-bin/.omarchy/upstream-test.sh +++ b/pkgbuilds/cua-driver-bin/.omarchy/upstream-test.sh @@ -2,7 +2,11 @@ # Offline hook fixtures, also run by bin/sync-upstream self-test. Requires # GNU date, jq, and pacman's vercmp, like the repository's other self-tests. set -euo pipefail -cd "$(dirname "${BASH_SOURCE[0]}")/.." +hook="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/upstream.sh" +fixture_dir=$(mktemp -d) +trap 'rm -rf "$fixture_dir"' EXIT +printf 'pkgver=0.23.2\n' > "$fixture_dir/PKGBUILD" +cd "$fixture_dir" failures=0 check() { @@ -29,7 +33,11 @@ curl() { local page="${url##*=}" [[ "$page" != "${FAIL_PAGE:-}" ]] || { echo 'fixture API failure' >&2; return 22; } if [[ "${ENDLESS:-}" == 1 || "$page" == 1 ]]; then - printf '%s\n' "$PAGE1" + if [[ "${LARGE_PAGE:-}" == 1 ]]; then + jq -c '.[0].body = ("x" * 131072)' <<<"$PAGE1" + else + printf '%s\n' "$PAGE1" + fi elif [[ "$page" == 2 ]]; then printf '%s\n' "$PAGE2" else @@ -44,10 +52,10 @@ curl() { esac } export -f curl date -export PAGE1 PAGE2 CHECKSUMS FAIL_PAGE FAIL_CHECKSUMS ENDLESS +export PAGE1 PAGE2 CHECKSUMS FAIL_PAGE FAIL_CHECKSUMS ENDLESS LARGE_PAGE export MIN_RELEASE_AGE_SECONDS=86400 export BYPASS_MIN_RELEASE_AGE='' -FAIL_PAGE='' FAIL_CHECKSUMS='' ENDLESS='' +FAIL_PAGE='' FAIL_CHECKSUMS='' ENDLESS='' LARGE_PAGE='' PAGE2='[]' release() { @@ -56,7 +64,7 @@ release() { } run_hook() { status=0 - out=$(bash .omarchy/upstream.sh 2>&1) || status=$? + out=$(bash "$hook" 2>&1) || status=$? } expect_failure() { run_hook @@ -81,6 +89,12 @@ check 'x86_64 checksum' "$sum_x" "$(jq -r '.sha256sums.x86_64[0]' <<<"$out")" check 'ARM checksum' "$sum_a" "$(jq -r '.sha256sums.aarch64[0]' <<<"$out")" check 'publication date preserved' 2026-09-07T16:51:50Z "$(jq -r '.published_at' <<<"$out")" +LARGE_PAGE=1 +run_hook +check 'release page larger than the argument limit succeeds' 0 "$status" +check 'large release page preserves version selection' 0.24.0 "$(jq -r '.pkgver' <<<"$out")" +LARGE_PAGE='' + # An eligible lower version on page one must not terminate the scan. rebuilt=$(release cua-driver-rs-v0.23.3 2026-09-07T16:51:50Z) PAGE1=$(jq -c --argjson rebuilt "$rebuilt" '.[0] = $rebuilt' <<<"$foreign_page") diff --git a/pkgbuilds/cua-driver-bin/.omarchy/upstream.sh b/pkgbuilds/cua-driver-bin/.omarchy/upstream.sh index 9c4a478..e1e1428 100644 --- a/pkgbuilds/cua-driver-bin/.omarchy/upstream.sh +++ b/pkgbuilds/cua-driver-bin/.omarchy/upstream.sh @@ -21,7 +21,7 @@ for ((page = 1; page <= max_pages; page++)); do echo "invalid release feed for $REPO on page $page" >&2 exit 1 fi - releases=$(jq -c --argjson page "$release_page" '. + $page' <<<"$releases") + releases=$(printf '%s\n' "$releases" "$release_page" | jq -cs 'add') (( page_size == 100 )) || break done if (( page > max_pages )); then