xbmk: use sbase sha512sum, not host sha512sum

the --status flag seems to be a GNUism

as stated in the previous commit, i import sbase
suckless now, so as to have a consistent implementation
of sha512sum.

this ensures that its output is reliable, when i'm using
the output of this command within backticks.

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2025-10-04 09:56:42 +01:00
parent e9a910b33c
commit 8969cc734f
5 changed files with 24 additions and 7 deletions

View File

@@ -313,7 +313,8 @@ bad_checksum()
return 0
fi
csum="$(x_ sha512sum "$2" | awk '{print $1}')" || \
build_sbase
csum="$(x_ "$sha512sum" "$2" | awk '{print $1}')" || \
err "!sha512 '$2' $1" bad_checksum "$@"
if [ "$csum" = "$1" ]; then

View File

@@ -35,11 +35,14 @@ checkvarschk=""
is_child=""
basetmp=""
sha512sum="util/sbase/sha512sum"
xbmk_init()
{
xbmkpwd="`pwd || err "Cannot generate PWD"`" || err "!" xbmk_init "$@"
xbmklock="$xbmkpwd/lock"
basetmp="$xbmkpwd/xbmkwd"
sha512sum="$xbmkpwd/util/sbase/sha512sum"
if [ $# -gt 0 ] && [ "$1" = "dependencies" ]; then
x_ xbmkpkg "$@"

View File

@@ -162,6 +162,13 @@ unpad_one_byte()
x_ mv "$unpaddedfile" "$1"
}
build_sbase()
{
if [ ! -f "$sha512sum" ]; then
x_ make -C "$xbmkpwd/util/sbase"
fi
}
fx_()
{
xchk fx_ "$@"

View File

@@ -442,11 +442,13 @@ project_up_to_date()
"$@"
fi
fx_ "x_ sha512sum" find "$@" -type f -not -path "*/.git*/*" | awk \
'{print $1}' > "$xbtmp/tmp.hash" || err "!h $project $hashdir" \
build_sbase
fx_ "x_ util/sbase/sha512sum" find "$@" -type f -not -path \
"*/.git*/*" | awk '{print $1}' > "$xbtmp/tmp.hash" || \
err "!h $project $hashdir" \
"project_up_to_date" "$hashdir" "$hashname" "$badhashvar" "$@"
hash="$(x_ sha512sum "$xbtmp/tmp.hash" | awk '{print $1}' || \
hash="$(x_ "$sha512sum" "$xbtmp/tmp.hash" | awk '{print $1}' || \
err)" || err "$hashname: Can't read sha512 of '$xbtmp/tmp.hash'" \
"project_up_to_date" "$hashdir" "$hashname" "$badhashvar" "$@"

View File

@@ -602,11 +602,13 @@ prep()
mksha512()
{
build_sbase
if [ "${1%/*}" != "$1" ]; then
x_ cd "${1%/*}"
fi
x_ sha512sum ./"${1##*/}" >> "$2" || \
x_ "$sha512sum" ./"${1##*/}" >> "$2" || \
err "!sha512sum \"$1\" > \"$2\"" "mksha512" "$@"
}
@@ -711,11 +713,13 @@ vfile()
# must be called from a subshell
check_vendor_hashes()
{
build_sbase
x_ cd "$tmpromdir"
if [ "$has_hashes" != "n" ] && [ "$nuke" != "nuke" ]; then
sha512sum --status -c "$hashfile" || x_ sha1sum --status \
-c "$hashfile"
( x_ "$sha512sum" -c "$hashfile" ) || \
x_ sha1sum -c "$hashfile"
fi
x_ rm -f "$hashfile"