release: v0.1.5
Build Packages / Build .txz packages (push) Successful in 8m36s
Lint / ShellCheck (push) Successful in 10s
Lint / Validate .plg XML (push) Successful in 12s
Lint / EditorConfig (push) Successful in 6s
Release / Build release packages (push) Successful in 7m50s
Release / Publish Gitea Release (push) Failing after 6s

Fixes a real bug in scripts/release.sh's per-package entity matching
found while cutting this release: "podman"'s own glob also matched
podman-compose's file (podman is a literal prefix of podman-compose),
and find | head -n1's unsorted output order let podman-compose's
package silently win the "podman" entity on this run. Now explicitly
skips any match that actually belongs to a different, more specific
component name also in the COMPONENTS list.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-13 21:53:59 +00:00
co-authored by Claude Sonnet 5
parent 23898ff62e
commit d931d8e9e9
3 changed files with 41 additions and 15 deletions
+25 -1
View File
@@ -85,7 +85,31 @@ sed -i -E "s|(<!ENTITY baseURL[[:space:]]+\")[^\"]*(\">)|\1${RELEASE_BASE_URL}\2
for name in "${COMPONENTS[@]}"; do
# dist/ contains files like podman-6.0.1-x86_64-1_unraidpodman.txz — find
# the one for this component (there should be exactly one per release).
txz_path=$(find "$DIST_DIR" -maxdepth 1 -name "${name}-*-*-*.txz" | head -n1)
# NOT `find ... | head -n1`: "podman"'s own glob (podman-*-*-*.txz) also
# matches podman-compose's file (podman-compose-*-*-*.txz), since
# "podman" is a literal prefix of "podman-compose" — find's output order
# is filesystem-dependent, not sorted, so head -n1 silently picked
# podman-compose's package for the "podman" entity on one real run,
# publishing a release whose podman.plg pointed at the wrong .txz for
# the actual podman package entirely. Explicitly skip any match that
# actually belongs to a DIFFERENT, more specific name also in
# COMPONENTS (i.e. itself prefixed by another component's name).
txz_path=""
for candidate in "$DIST_DIR"/"${name}"-*-*-*.txz; do
[ -e "$candidate" ] || continue
base=$(basename "$candidate")
belongs_to_other=0
for other in "${COMPONENTS[@]}"; do
if [ "$other" != "$name" ] && [ "${base#"$other"-}" != "$base" ]; then
belongs_to_other=1
break
fi
done
if [ "$belongs_to_other" -eq 0 ]; then
txz_path="$candidate"
break
fi
done
if [ -z "$txz_path" ]; then
echo "!! No built .txz found for component '$name' in $DIST_DIR" >&2
echo "!! Did scripts/build-packages.sh run successfully for it?" >&2