fix: read IPK control metadata reliably
Build and test / Tests and license checks (push) Has been cancelled
Build and test / OpenWrt 24.10.7 · x86-64 (push) Has been cancelled
Build and test / OpenWrt 25.12.4 · x86-64 (push) Has been cancelled
Build and test / OpenWrt 24.10.7 · ipq40xx-generic (push) Has been cancelled
Build and test / OpenWrt 25.12.4 · ipq40xx-generic (push) Has been cancelled
Build and test / OpenWrt 24.10.7 · mediatek-filogic (push) Has been cancelled
Build and test / OpenWrt 25.12.4 · mediatek-filogic (push) Has been cancelled
Build and test / OpenWrt 24.10.7 · ath79-generic (push) Has been cancelled
Build and test / OpenWrt 25.12.4 · ath79-generic (push) Has been cancelled
Build and test / OpenWrt 24.10.7 · ramips-mt7621 (push) Has been cancelled
Build and test / OpenWrt 25.12.4 · ramips-mt7621 (push) Has been cancelled
Build and test / Publish agent GitHub release assets (push) Has been cancelled
Build and test / Publish signed package repository (push) Has been cancelled

This commit is contained in:
2026-07-31 11:34:45 +03:00
parent c468a3cccb
commit cf5208979d
+6 -1
View File
@@ -59,7 +59,12 @@ for artifact_dir in "$source_dir"/openwrt-*; do
package_file="$(find "$artifact_dir" -maxdepth 1 -type f \( -name 'rmm-agent-go-production_*.ipk' -o -name 'rmm-agent-go-production-*.apk' \) -print -quit)"
case "$package_file" in
*.ipk)
package_version="$(ar p "$package_file" control.tar.gz | tar -xzO ./control | sed -n 's/^Version: //p' | head -n 1)"
control_path="$(ar p "$package_file" control.tar.gz | tar -tzf - | sed -n '/^\.\?\/\?control$/p' | head -n 1)"
if [ -z "$control_path" ]; then
echo "IPK control archive has no control file: $package_file" >&2
exit 1
fi
package_version="$(ar p "$package_file" control.tar.gz | tar -xzO -f - "$control_path" | sed -n 's/^Version: //p' | head -n 1)"
;;
*.apk)
package_version="$(tar -xzO -f "$package_file" .PKGINFO | sed -n 's/^pkgver = //p' | head -n 1)"