v0.0.24 - Fix stale release installs by validating installer version and hardening release artifact build/version checks

This commit is contained in:
Laan Tungir
2026-05-05 12:21:26 -04:00
parent 5bb59c1422
commit cca1254740
4 changed files with 64 additions and 4 deletions

View File

@@ -110,6 +110,32 @@ download_nsigner_asset_url() {
| head -n1 || true
}
verify_installed_version() {
local expected="$1"
local got_line=""
local got_ver=""
if [[ ! -x "${PREFIX_BIN}/nsigner" ]]; then
err "Installed binary missing: ${PREFIX_BIN}/nsigner"
exit 1
fi
got_line="$("${PREFIX_BIN}/nsigner" --version 2>/dev/null || true)"
got_ver="$(printf '%s\n' "${got_line}" | awk '{print $2}')"
if [[ -z "${got_ver}" ]]; then
err "Could not determine installed n_signer version from: ${got_line}"
exit 1
fi
if [[ "${got_ver}" != "${expected}" ]]; then
err "Downloaded binary version mismatch: expected ${expected}, got ${got_ver}"
err "Release asset appears stale or mislabeled."
err "Use NSIGNER_BINARY_URL to pin a known-good binary, or wait for a rebuilt release artifact."
exit 1
fi
}
install_nsigner() {
local release_page=""
@@ -137,6 +163,8 @@ install_nsigner() {
curl -fL -o "${PREFIX_BIN}/nsigner" "${asset_url}"
fi
chmod 0755 "${PREFIX_BIN}/nsigner"
verify_installed_version "${NSIGNER_VERSION}"
log "Installed ${PREFIX_BIN}/nsigner from release binary"
}