From b53a21f11ff58e29ccb4dee8432edf210de1a971 Mon Sep 17 00:00:00 2001 From: rcourtman Date: Tue, 11 Nov 2025 20:14:13 +0000 Subject: [PATCH] Update install script to use checksums.txt instead of individual .sha256 files Aligns with release asset reduction changes. The install script now downloads the unified checksums.txt file and extracts the checksum for the specific architecture being installed. --- install.sh | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/install.sh b/install.sh index d67a6d8..1036f50 100755 --- a/install.sh +++ b/install.sh @@ -1693,7 +1693,7 @@ download_pulse() { # Download architecture-specific release ARCHIVE_NAME="pulse-${LATEST_RELEASE}-linux-${PULSE_ARCH}.tar.gz" DOWNLOAD_URL="https://github.com/$GITHUB_REPO/releases/download/$LATEST_RELEASE/${ARCHIVE_NAME}" - CHECKSUM_URL="${DOWNLOAD_URL}.sha256" + CHECKSUMS_URL="https://github.com/$GITHUB_REPO/releases/download/$LATEST_RELEASE/checksums.txt" print_info "Downloading from: $DOWNLOAD_URL" # Detect and stop existing service BEFORE downloading (to free the binary) @@ -1720,18 +1720,31 @@ download_pulse() { exit 1 fi - # Download checksum and verify - if ! wget -q --timeout=60 --tries=2 -O "${ARCHIVE_PATH}.sha256" "$CHECKSUM_URL"; then - print_error "Failed to download checksum for Pulse release" + # Download checksums file and verify + if ! wget -q --timeout=60 --tries=2 -O "/tmp/checksums.txt" "$CHECKSUMS_URL"; then + print_error "Failed to download checksums file for Pulse release" print_info "Refusing to install without checksum verification" exit 1 fi - if ! (cd /tmp && sha256sum -c "${ARCHIVE_NAME}.sha256" >/dev/null 2>&1); then - print_error "Checksum verification failed for downloaded Pulse release" + # Extract the checksum for our specific archive + EXPECTED_CHECKSUM=$(grep "${ARCHIVE_NAME}" /tmp/checksums.txt | awk '{print $1}') + if [ -z "$EXPECTED_CHECKSUM" ]; then + print_error "Checksum not found in checksums.txt for ${ARCHIVE_NAME}" + rm -f /tmp/checksums.txt exit 1 fi - rm -f "${ARCHIVE_PATH}.sha256" + + # Verify the downloaded archive + ACTUAL_CHECKSUM=$(sha256sum "${ARCHIVE_PATH}" | awk '{print $1}') + if [ "$ACTUAL_CHECKSUM" != "$EXPECTED_CHECKSUM" ]; then + print_error "Checksum verification failed for downloaded Pulse release" + print_error "Expected: $EXPECTED_CHECKSUM" + print_error "Got: $ACTUAL_CHECKSUM" + rm -f /tmp/checksums.txt + exit 1 + fi + rm -f /tmp/checksums.txt # Extract to temporary directory first TEMP_EXTRACT="/tmp/pulse-extract-$$"