Merge pull request #238 from timg236/tim/pkg_info

Only check package checksums on systems with package checksums
This commit is contained in:
Tim Gover
2020-10-20 17:18:39 +01:00
committed by GitHub

View File

@@ -104,7 +104,7 @@ die() {
prepareImage() prepareImage()
{ {
[ -f "${BOOTLOADER_UPDATE_IMAGE}" ] || die "EEPROM image \'${BOOTLOADER_UPDATE_IMAGE}\' not found" [ -f "${BOOTLOADER_UPDATE_IMAGE}" ] || die "EEPROM image '${BOOTLOADER_UPDATE_IMAGE}' not found"
TMP_EEPROM_IMAGE="$(mktemp)" TMP_EEPROM_IMAGE="$(mktemp)"
TMP_EEPROM_CONFIG="$(mktemp)" TMP_EEPROM_CONFIG="$(mktemp)"
NEW_EEPROM_CONFIG="$(mktemp)" NEW_EEPROM_CONFIG="$(mktemp)"
@@ -180,7 +180,7 @@ applyRecoveryUpdate()
|| die "Failed to create ${BOOTFS}/vl805.sig" || die "Failed to create ${BOOTFS}/vl805.sig"
cp -f "${VL805_UPDATE_IMAGE}" "${BOOTFS}/vl805.bin" \ cp -f "${VL805_UPDATE_IMAGE}" "${BOOTFS}/vl805.bin" \
|| die "Failed to copy ${VL805_UPDATE_IMAGE} to ${BOOTFS/vl805.bin}" || die "Failed to copy ${VL805_UPDATE_IMAGE} to ${BOOTFS}/vl805.bin"
# For NFS mounts ensure that the files are readable to the TFTP user # For NFS mounts ensure that the files are readable to the TFTP user
chmod -f go+r "${BOOTFS}/vl805.bin" "${BOOTFS}/vl805.sig" \ chmod -f go+r "${BOOTFS}/vl805.bin" "${BOOTFS}/vl805.sig" \
@@ -196,16 +196,15 @@ applyUpdate() {
if [ "${IGNORE_DPKG_CHECKSUMS}" = 0 ]; then if [ "${IGNORE_DPKG_CHECKSUMS}" = 0 ]; then
( (
package_info_dir="/var/lib/dpkg/info/" package_checksums_file="${PACKAGE_INFO_DIR}/rpi-eeprom.md5sums"
package_checksums_file="${package_info_dir}/rpi-eeprom.md5sums"
if ! grep -qE '\.bin$' "${package_info_dir}/rpi-eeprom.md5sums"; then if ! grep -qE '\.bin$' "${PACKAGE_INFO_DIR}/rpi-eeprom.md5sums"; then
# Try the old rpi-eeprom-images package # Try the old rpi-eeprom-images package
package_checksums_file="${package_info_dir}/rpi-eeprom-images.md5sums" package_checksums_file="${PACKAGE_INFO_DIR}/rpi-eeprom-images.md5sums"
fi fi
CHECKSUMS=$(mktemp) CHECKSUMS=$(mktemp)
cat "${package_checksums_file}" | grep -E '\.bin$' > "${CHECKSUMS}" grep -E '\.bin$' "${package_checksums_file}" > "${CHECKSUMS}"
cd / cd /
if ! md5sum -c "${CHECKSUMS}" > /dev/null 2>&1; then if ! md5sum -c "${CHECKSUMS}" > /dev/null 2>&1; then
md5sum -c "${CHECKSUMS}" md5sum -c "${CHECKSUMS}"
@@ -304,7 +303,7 @@ checkDependencies() {
BOARD_TYPE=$(((0x$BOARD_INFO >> 4) & 0xff)) BOARD_TYPE=$(((0x$BOARD_INFO >> 4) & 0xff))
BOARD_REVISION=$((0x$BOARD_INFO & 0xf)) BOARD_REVISION=$((0x$BOARD_INFO & 0xf))
if [ ${BOARD_TYPE} -eq 20 ] && [ ${CM4_ENABLE_RPI_EEPROM_UPDATE} != '1' ]; then if [ ${BOARD_TYPE} -eq 20 ] && [ "${CM4_ENABLE_RPI_EEPROM_UPDATE}" != '1' ]; then
# For CM4, USB device boot is the recommended method for EEPROM updates. # For CM4, USB device boot is the recommended method for EEPROM updates.
echo "rpi-eeprom-update is not enabled by default on CM4" echo "rpi-eeprom-update is not enabled by default on CM4"
exit ${EXIT_SUCCESS} exit ${EXIT_SUCCESS}
@@ -706,7 +705,12 @@ AUTO_UPDATE_BOOTLOADER=0
AUTO_UPDATE_VL805=0 AUTO_UPDATE_VL805=0
MACHINE_OUTPUT="" MACHINE_OUTPUT=""
JSON_OUTPUT="no" JSON_OUTPUT="no"
IGNORE_DPKG_CHECKSUMS=$LOCAL_MODE IGNORE_DPKG_CHECKSUMS=${LOCAL_MODE}
PACKAGE_INFO_DIR="/var/lib/dpkg/info/"
if [ ! -d "${PACKAGE_INFO_DIR}" ]; then
IGNORE_DPKG_CHECKSUMS=1
fi
while getopts A:abdhilf:m:ju:r option; do while getopts A:abdhilf:m:ju:r option; do
case "${option}" in case "${option}" in
@@ -722,9 +726,9 @@ while getopts A:abdhilf:m:ju:r option; do
a) AUTO_UPDATE_BOOTLOADER=1 a) AUTO_UPDATE_BOOTLOADER=1
AUTO_UPDATE_VL805=1 AUTO_UPDATE_VL805=1
;; ;;
b) b)
findBootFS findBootFS
echo ${BOOTFS} echo "${BOOTFS}"
exit 0 exit 0
;; ;;
d) OVERWRITE_CONFIG=1 d) OVERWRITE_CONFIG=1