From f9d59be731efd31a26c59e049ccbdc4b1762f6b1 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer <mschiffer@universe-factory.net> Date: Sat, 25 Feb 2017 00:35:21 +0100 Subject: [PATCH] scripts: generate SHA256 manifest lines in addition to SHA512 The current autoupdater will only respect the last line for a given model name, so we can add SHA256 checksums as long as they occur before the corresponding SHA512 line. --- Makefile | 12 +++++++++--- scripts/sha256sum.sh | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100755 scripts/sha256sum.sh diff --git a/Makefile b/Makefile index 268296925..ef266ea5e 100644 --- a/Makefile +++ b/Makefile @@ -180,6 +180,7 @@ GLUON_$(1)_MODEL_$(2)_ALIASES += $(3) endef +export SHA256SUM := $(GLUONDIR)/scripts/sha256sum.sh export SHA512SUM := $(GLUONDIR)/scripts/sha512sum.sh @@ -489,11 +490,16 @@ manifest: FORCE $(if $(GLUON_$(profile)_SYSUPGRADE_EXT), \ $(foreach model,$(GLUON_$(profile)_MODELS), \ file="$(IMAGE_PREFIX)-$(model)-sysupgrade$(GLUON_$(profile)_SYSUPGRADE_EXT)"; \ - [ -e "$$file" ] && echo '$(model)' "$(PREPARED_RELEASE)" "$$($(SHA512SUM) "$$file")" "$$file"; \ - \ + [ -e "$$file" ] && ( \ + echo '$(model)' "$(PREPARED_RELEASE)" "$$($(SHA256SUM) "$$file")" "$$file"; \ + echo '$(model)' "$(PREPARED_RELEASE)" "$$($(SHA512SUM) "$$file")" "$$file"; \ + ); \ $(foreach alias,$(GLUON_$(profile)_MODEL_$(model)_ALIASES), \ file="$(IMAGE_PREFIX)-$(alias)-sysupgrade$(GLUON_$(profile)_SYSUPGRADE_EXT)"; \ - [ -e "$$file" ] && echo '$(alias)' "$(PREPARED_RELEASE)" "$$($(SHA512SUM) "$$file")" "$$file"; \ + [ -e "$$file" ] && ( \ + echo '$(alias)' "$(PREPARED_RELEASE)" "$$($(SHA256SUM) "$$file")" "$$file"; \ + echo '$(alias)' "$(PREPARED_RELEASE)" "$$($(SHA512SUM) "$$file")" "$$file"; \ + ); \ ) \ ) \ ) \ diff --git a/scripts/sha256sum.sh b/scripts/sha256sum.sh new file mode 100755 index 000000000..e4f6f3e5b --- /dev/null +++ b/scripts/sha256sum.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +check_command() { + which "$1" >/dev/null 2>&1 +} + +if check_command sha256sum; then + ret="$(sha256sum "$@")" +elif check_command shasum; then + ret="$(shasum -a 256 "$@")" +elif check_command cksum; then + ret="$(cksum -q -a sha256 "$@")" +else + echo "$0: no suitable sha256sum implementation was found" >&2 + exit 1 +fi + +[ "$?" -eq 0 ] || exit 1 + +echo "$ret" | awk '{ print $1 }' -- GitLab