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
+2
View File
@@ -9,6 +9,8 @@ see [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md#52-build-strategie)).
## [Unreleased] ## [Unreleased]
## [0.1.5] - 2026-07-13
### Added ### Added
- Containers panel: folders to group containers (name + optional icon - Containers panel: folders to group containers (name + optional icon
URL), purely cosmetic organizational metadata stored in the plugin's URL), purely cosmetic organizational metadata stored in the plugin's
+14 -14
View File
@@ -50,7 +50,7 @@
<!DOCTYPE PLUGIN [ <!DOCTYPE PLUGIN [
<!ENTITY name "podman"> <!ENTITY name "podman">
<!ENTITY author "unraid-podman contributors"> <!ENTITY author "unraid-podman contributors">
<!ENTITY version "0.1.3"> <!ENTITY version "0.1.5">
<!-- "Podman" (no parent) — Podman.page declares Menu="Podman", making it <!-- "Podman" (no parent) — Podman.page declares Menu="Podman", making it
its own top-level nav tab next to Docker/VMs, not nested under its own top-level nav tab next to Docker/VMs, not nested under
Settings — see webui/plugins/podman/Podman.page. --> Settings — see webui/plugins/podman/Podman.page. -->
@@ -69,7 +69,7 @@
<!-- Release asset base — matches scripts/release.sh's RELEASE_BASE_URL <!-- Release asset base — matches scripts/release.sh's RELEASE_BASE_URL
exactly; both must agree since release.sh is what publishes the exactly; both must agree since release.sh is what publishes the
packages this URL is expected to find. --> packages this URL is expected to find. -->
<!ENTITY baseURL "https://git.mp-mueller.de/magges/unraid-podman/releases/download/v0.1.3"> <!ENTITY baseURL "https://git.mp-mueller.de/magges/unraid-podman/releases/download/v0.1.5">
<!-- Slackware package naming components — must match versions.env's <!-- Slackware package naming components — must match versions.env's
PKG_ARCH/PKG_BUILD/PKG_TAG (see that file). Kept as entities here so PKG_ARCH/PKG_BUILD/PKG_TAG (see that file). Kept as entities here so
@@ -88,31 +88,31 @@
<!ENTITY podman_txz_version "6.0.1"> <!ENTITY podman_txz_version "6.0.1">
<!ENTITY podman_txz_file "podman-6.0.1-x86_64-1_unraidpodman.txz"> <!ENTITY podman_txz_file "podman-6.0.1-x86_64-1_unraidpodman.txz">
<!ENTITY podman_txz_md5 "f294f9eaf7139b43d153cafaed34de48"> <!ENTITY podman_txz_md5 "692b8df0a1ac25544748dea4ff518705">
<!ENTITY conmon_txz_version "2.2.1"> <!ENTITY conmon_txz_version "2.2.1">
<!ENTITY conmon_txz_file "conmon-2.2.1-x86_64-1_unraidpodman.txz"> <!ENTITY conmon_txz_file "conmon-2.2.1-x86_64-1_unraidpodman.txz">
<!ENTITY conmon_txz_md5 "e1e3b4b15398d965ee4efdfac93b1867"> <!ENTITY conmon_txz_md5 "fc0af377c1beeee452040e8991c4aafa">
<!ENTITY crun_txz_version "1.28"> <!ENTITY crun_txz_version "1.28">
<!ENTITY crun_txz_file "crun-1.28-x86_64-1_unraidpodman.txz"> <!ENTITY crun_txz_file "crun-1.28-x86_64-1_unraidpodman.txz">
<!ENTITY crun_txz_md5 "891914e9448a960dd28a9d1ea67e63b3"> <!ENTITY crun_txz_md5 "2e787b0f6826fc61b7a76ca42573d6c4">
<!ENTITY netavark_txz_version "2.0.0"> <!ENTITY netavark_txz_version "2.0.0">
<!ENTITY netavark_txz_file "netavark-2.0.0-x86_64-1_unraidpodman.txz"> <!ENTITY netavark_txz_file "netavark-2.0.0-x86_64-1_unraidpodman.txz">
<!ENTITY netavark_txz_md5 "ef8509cc51d24ef1cae4d96f1fd92a01"> <!ENTITY netavark_txz_md5 "27a2128b2fcbeb590773c5dd004d911e">
<!ENTITY aardvark_dns_txz_version "2.0.0"> <!ENTITY aardvark_dns_txz_version "2.0.0">
<!ENTITY aardvark_dns_txz_file "aardvark-dns-2.0.0-x86_64-1_unraidpodman.txz"> <!ENTITY aardvark_dns_txz_file "aardvark-dns-2.0.0-x86_64-1_unraidpodman.txz">
<!ENTITY aardvark_dns_txz_md5 "2a5a5c2e3684b4130edd4b128484908f"> <!ENTITY aardvark_dns_txz_md5 "f775f20903c2301736594fdde0081c6d">
<!ENTITY passt_txz_version "git6ef3d1c"> <!ENTITY passt_txz_version "git6ef3d1c">
<!ENTITY passt_txz_file "passt-git6ef3d1c-x86_64-1_unraidpodman.txz"> <!ENTITY passt_txz_file "passt-git6ef3d1c-x86_64-1_unraidpodman.txz">
<!ENTITY passt_txz_md5 "970a8f15257e5861933ae58459da2bd4"> <!ENTITY passt_txz_md5 "9257eb90fb218b047e9f099e9b2f0418">
<!ENTITY fuse_overlayfs_txz_version "1.17"> <!ENTITY fuse_overlayfs_txz_version "1.17">
<!ENTITY fuse_overlayfs_txz_file "fuse-overlayfs-1.17-x86_64-1_unraidpodman.txz"> <!ENTITY fuse_overlayfs_txz_file "fuse-overlayfs-1.17-x86_64-1_unraidpodman.txz">
<!ENTITY fuse_overlayfs_txz_md5 "11f5aefe0372427ae194017f54af5d47"> <!ENTITY fuse_overlayfs_txz_md5 "431b1d3ab36d05f817379ef36ba70ae2">
<!-- catatonit and nftables are runtime dependencies this plugin ships, <!-- catatonit and nftables are runtime dependencies this plugin ships,
not upstream podman-ecosystem components — see packages/catatonit/ not upstream podman-ecosystem components — see packages/catatonit/
@@ -122,7 +122,7 @@
systemd/dbus for firewalld) and why neither is built from source. --> systemd/dbus for firewalld) and why neither is built from source. -->
<!ENTITY catatonit_txz_version "0.2.1"> <!ENTITY catatonit_txz_version "0.2.1">
<!ENTITY catatonit_txz_file "catatonit-0.2.1-x86_64-1_unraidpodman.txz"> <!ENTITY catatonit_txz_file "catatonit-0.2.1-x86_64-1_unraidpodman.txz">
<!ENTITY catatonit_txz_md5 "e17faf29b0c618a73def017583697aca"> <!ENTITY catatonit_txz_md5 "a335c4924f244a41662f891d79b1251d">
<!ENTITY nftables_txz_version "1.0.1"> <!ENTITY nftables_txz_version "1.0.1">
<!ENTITY nftables_txz_file "nftables-1.0.1-x86_64-1_unraidpodman.txz"> <!ENTITY nftables_txz_file "nftables-1.0.1-x86_64-1_unraidpodman.txz">
@@ -133,7 +133,7 @@
every Compose panel action fails outright on a clean install. --> every Compose panel action fails outright on a clean install. -->
<!ENTITY podman_compose_txz_version "1.6.0"> <!ENTITY podman_compose_txz_version "1.6.0">
<!ENTITY podman_compose_txz_file "podman-compose-1.6.0-x86_64-1_unraidpodman.txz"> <!ENTITY podman_compose_txz_file "podman-compose-1.6.0-x86_64-1_unraidpodman.txz">
<!ENTITY podman_compose_txz_md5 "2d7e21b071d40ab3518acbec67967777"> <!ENTITY podman_compose_txz_md5 "f4344ec947cab1a73c50f9afa0b24bee">
<!-- unraid-podman is this project's OWN scaffolding package (rc.podman, <!-- unraid-podman is this project's OWN scaffolding package (rc.podman,
sbin/ scripts, event/ hooks, config templates — see sbin/ scripts, event/ hooks, config templates — see
@@ -141,9 +141,9 @@
version always equals the plugin's own &version; — see version always equals the plugin's own &version; — see
packages/unraid-podman/unraid-podman.SlackBuild, which reads it packages/unraid-podman/unraid-podman.SlackBuild, which reads it
straight out of this very file rather than tracking it twice. --> straight out of this very file rather than tracking it twice. -->
<!ENTITY unraid_podman_txz_version "0.1.3"> <!ENTITY unraid_podman_txz_version "0.1.5">
<!ENTITY unraid_podman_txz_file "unraid-podman-0.1.3-x86_64-1_unraidpodman.txz"> <!ENTITY unraid_podman_txz_file "unraid-podman-0.1.5-x86_64-1_unraidpodman.txz">
<!ENTITY unraid_podman_txz_md5 "ceeb31f08ad0df62dee1b6a6f1ed3bba"> <!ENTITY unraid_podman_txz_md5 "750fc748b054865b41297a658864d261">
]> ]>
<PLUGIN name="&name;" <PLUGIN name="&name;"
+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 for name in "${COMPONENTS[@]}"; do
# dist/ contains files like podman-6.0.1-x86_64-1_unraidpodman.txz — find # 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). # 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 if [ -z "$txz_path" ]; then
echo "!! No built .txz found for component '$name' in $DIST_DIR" >&2 echo "!! No built .txz found for component '$name' in $DIST_DIR" >&2
echo "!! Did scripts/build-packages.sh run successfully for it?" >&2 echo "!! Did scripts/build-packages.sh run successfully for it?" >&2