blob: f899e6b95283b09b0b057c94e2848be807a0e97f [file] [log] [blame]
#!/usr/bin/env bash
# Change the version numbers in the toolvers file and then run this
# script to update the hashes
ARCHIVES=archives
GNU_MIRROR=https://mirrors.kernel.org/gnu
TOOLVERS_FILE="toolvers"
. "$TOOLVERS_FILE"
function verify_sig() {
SIGFILE="$1"
ARCHIVE="$2"
if ! gpg -q --verify "$SIGFILE" "$ARCHIVE"; then
echo "Failed to verify $ARCHIVE, aborting"
exit 1
fi
}
function fetch_and_verify() {
PKG_URI_DIR="$1"
FILENAME="$2"
if [ ! -f "$ARCHIVES/$FILENAME" ]; then
wget -P "$ARCHIVES" -N "$PKG_URI_DIR/$FILENAME"
fi
if [ ! -f "$ARCHIVES/$FILENAME.sig" ]; then
wget -P "$ARCHIVES" -N "$PKG_URI_DIR/$FILENAME.sig"
fi
verify_sig "$ARCHIVES/$FILENAME.sig" "$ARCHIVES/$FILENAME"
}
fetch_and_verify "$GNU_MIRROR/binutils/" "binutils-$BINUTILS_VER.tar.bz2"
fetch_and_verify "$GNU_MIRROR/gcc/gcc-$GCC_VER/" "gcc-$GCC_VER.tar.bz2"
fetch_and_verify "$GNU_MIRROR/gdb/" "gdb-$GDB_VER.tar.xz"
fetch_and_verify "$GNU_MIRROR/mpfr/" "mpfr-$MPFR_VER.tar.bz2"
fetch_and_verify "$GNU_MIRROR/mpc/" "mpc-$MPC_VER.tar.gz"
fetch_and_verify "$GNU_MIRROR/gmp/" "gmp-$GMP_VER.tar.bz2"
BINUTILS_HASH=$(shasum -a 256 -b "$ARCHIVES/binutils-$BINUTILS_VER.tar.bz2" | cut -f1 -d' ')
GCC_HASH=$(shasum -a 256 -b "$ARCHIVES/gcc-$GCC_VER.tar.bz2" | cut -f1 -d' ')
GDB_HASH=$(shasum -a 256 -b "$ARCHIVES/gdb-$GDB_VER.tar.xz" | cut -f1 -d' ')
MPFR_HASH=$(shasum -a 256 -b "$ARCHIVES/mpfr-$MPFR_VER.tar.bz2" | cut -f1 -d' ')
MPC_HASH=$(shasum -a 256 -b "$ARCHIVES/mpc-$MPC_VER.tar.gz" | cut -f1 -d' ')
GMP_HASH=$(shasum -a 256 -b "$ARCHIVES/gmp-$GMP_VER.tar.bz2" | cut -f1 -d' ')
tmp=$(mktemp)
echo "# Rerun updatetoolvers after modifying this file" > "$tmp"
echo "GCC_VER=$GCC_VER" >> "$tmp"
echo "BINUTILS_VER=$BINUTILS_VER" >> "$tmp"
echo "GDB_VER=$GDB_VER" >> "$tmp"
echo "GMP_VER=$GMP_VER" >> "$tmp"
echo "MPC_VER=$MPC_VER" >> "$tmp"
echo "MPFR_VER=$MPFR_VER" >> "$tmp"
echo "# Below is autogenerated by updatetoolvers" >> "$tmp"
echo "GCC_HASH=$GCC_HASH" >> "$tmp"
echo "BINUTILS_HASH=$BINUTILS_HASH" >> "$tmp"
echo "GDB_HASH=$GDB_HASH" >> "$tmp"
echo "GMP_HASH=$GMP_HASH" >> "$tmp"
echo "MPC_HASH=$MPC_HASH" >> "$tmp"
echo "MPFR_HASH=$MPFR_HASH" >> "$tmp"
mv "$tmp" "$TOOLVERS_FILE"