mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-09-20 05:30:25 +02:00
xbmk: general cleanup
note: mecleaner check removed in vendor.sh, because it's already guaranteed to be fetched. the check will never indicate failure, so we can just assume that the me cleaner python script exists. Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Vendored
+9
-21
@@ -39,14 +39,12 @@ single_tree_fetch()
|
||||
x_ "$mk" -f $d
|
||||
done
|
||||
|
||||
clone_project
|
||||
$if_single_tree \
|
||||
clone_project; :
|
||||
}
|
||||
|
||||
clone_project()
|
||||
{
|
||||
singletree "$project" || \
|
||||
return 0
|
||||
|
||||
loc="src/$project"
|
||||
[ -d "$loc" ] && \
|
||||
return 0
|
||||
@@ -174,10 +172,8 @@ try_fetch_curl()
|
||||
try_$2 "$cached" "$@" || \
|
||||
return 1
|
||||
|
||||
[ -f "$5" ] && \
|
||||
if bad_checksum "$6" "$5" 2>/dev/null; then
|
||||
x_ cp "$cached" "$5"
|
||||
fi
|
||||
[ -f "$5" ] && bad_checksum "$6" "$5" 2>/dev/null && \
|
||||
x_ cp "$cached" "$5"
|
||||
|
||||
if [ ! -f "$cached" ]; then
|
||||
return 1
|
||||
@@ -202,8 +198,7 @@ try_curl()
|
||||
ua="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"
|
||||
|
||||
( x_ curl --location --retry 3 -A "$ua" "$2" -o "$1" ) \
|
||||
|| ( x_ wget --tries 3 -U "$ua" "$2" -O "$1" ) \
|
||||
|| return 1; :
|
||||
|| ( x_ wget --tries 3 -U "$ua" "$2" -O "$1" ) || return 1; :
|
||||
}
|
||||
|
||||
try_copy()
|
||||
@@ -230,15 +225,9 @@ try_git()
|
||||
x_ mv "$tmpgitcache" "$gitdest"
|
||||
fi
|
||||
|
||||
if git -C "$gitdest" show "$7" 1>/dev/null 2>/dev/null && \
|
||||
[ "$forcepull" != "y" ]; then
|
||||
# don't try to pull the latest changes if the given target
|
||||
# revision already exists locally. this saves a lot of time
|
||||
# during release builds, and reduces the chance that we will
|
||||
# interact with grub.git or gnulib.git overall during runtime
|
||||
|
||||
return 0
|
||||
fi
|
||||
git -C "$gitdest" show "$7" 1>/dev/null 2>/dev/null && \
|
||||
[ "$forcepull" != "y" ] && \
|
||||
return 0 # don't pull changes if target rev exists locally
|
||||
|
||||
if [ "$XBMK_CACHE_MIRROR" = "y" ]; then
|
||||
( x_ git -C "$gitdest" fetch ) || :; :
|
||||
@@ -250,9 +239,8 @@ try_git()
|
||||
|
||||
bad_checksum()
|
||||
{
|
||||
if e "$2" f missing; then
|
||||
e "$2" f missing && \
|
||||
return 0
|
||||
fi
|
||||
|
||||
build_sbase
|
||||
csum="$(x_ "$sha512sum" "$2" | awk '{print $1}')" || \
|
||||
|
||||
Vendored
+2
-4
@@ -165,13 +165,11 @@ xbmk_parent_set_env()
|
||||
|
||||
x_ chmod -w "$xbmklock"
|
||||
|
||||
xbmk_parent_set_export
|
||||
xbmk_set_version
|
||||
forx 'xbmk_%s' parent_set_export set_version
|
||||
|
||||
remkdir "$xbtmp" "$xbtmp/xbmkpath"
|
||||
|
||||
xbmk_set_pyver
|
||||
xbmk_set_mirror
|
||||
forx 'xbmk_set_%s' pyver mirror
|
||||
}
|
||||
|
||||
xbmk_parent_check_tmp()
|
||||
|
||||
+9
-17
@@ -18,8 +18,7 @@ inject()
|
||||
{
|
||||
remkdir "$tmpromdel"
|
||||
|
||||
[ $# -lt 1 ] && \
|
||||
err "No options specified" "inject" "$@"
|
||||
[ $# -lt 1 ] && err "No options specified" "inject" "$@"
|
||||
|
||||
archive="$1";
|
||||
new_mac="xx:xx:xx:xx:xx:xx"
|
||||
@@ -58,9 +57,8 @@ check_release()
|
||||
{
|
||||
[ -L "$archive" ] && \
|
||||
err "'$archive' is a symlink" "check_release" "$@"
|
||||
if e "$archive" f missing; then
|
||||
e "$archive" f missing && \
|
||||
err "'$archive' missing" "check_release" "$@"
|
||||
fi
|
||||
|
||||
archivename="`basename "$archive" || err "Can't get '$archive' name"`" \
|
||||
|| err "can't get '$archive' name" "check_release" "$@"
|
||||
@@ -100,7 +98,6 @@ check_target()
|
||||
x_ "$mk" -d coreboot "$tree"
|
||||
|
||||
ifdtool="elf/coreboot/$tree/ifdtool"
|
||||
|
||||
[ -n "$IFD_platform" ] && \
|
||||
ifdprefix="-p $IFD_platform"; :
|
||||
}
|
||||
@@ -125,8 +122,7 @@ patch_release()
|
||||
fi
|
||||
done
|
||||
|
||||
readkconfig || \
|
||||
return 1
|
||||
readkconfig || return 1
|
||||
|
||||
[ -n "$new_mac" ] && [ -n "$CONFIG_GBE_BIN_PATH" ] && \
|
||||
modify_mac; :
|
||||
@@ -137,15 +133,13 @@ readkconfig()
|
||||
x_ rm -f "$xbtmp/cbcfg"
|
||||
fx_ scankconfig x_ find "$boarddir/config" -type f
|
||||
|
||||
if e "$xbtmp/cbcfg" f missing; then
|
||||
e "$xbtmp/cbcfg" f missing && \
|
||||
return 1
|
||||
fi
|
||||
|
||||
. "$xbtmp/cbcfg" || \
|
||||
err "Can't read '$xbtmp/cbcfg'" "readkconfig" "$@"
|
||||
|
||||
setvfile "$@" || \
|
||||
return 1; :
|
||||
setvfile "$@" || return 1; :
|
||||
}
|
||||
|
||||
scankconfig()
|
||||
@@ -173,10 +167,9 @@ modify_mac()
|
||||
|
||||
newmac()
|
||||
{
|
||||
if e "$1" f; then
|
||||
xchanged="y"
|
||||
x_ "$ifdtool" $ifdprefix -i GbE:"$xbtmp/gbe" "$1" -O "$1"
|
||||
fi
|
||||
e "$1" f || return 0
|
||||
xchanged="y"
|
||||
x_ "$ifdtool" $ifdprefix -i GbE:"$xbtmp/gbe" "$1" -O "$1"
|
||||
}
|
||||
|
||||
remktar()
|
||||
@@ -190,6 +183,5 @@ remktar()
|
||||
) || err "Cannot re-generate '$archive'" "remktar" "$@"
|
||||
|
||||
mv "${tmpromdir%"/bin/$board"}/bin/${relname}_${board}.tar.xz" \
|
||||
"$archive" || \
|
||||
err "'$archive' -> Can't overwrite" "remktar" "$@"; :
|
||||
"$archive" || err "'$archive' -> Can't overwrite" "remktar" "$@"; :
|
||||
}
|
||||
|
||||
+16
-39
@@ -51,14 +51,12 @@ eval "`newvar DL_hash DL_url DL_url_bkup E6400_VGA_bin_hash E6400_VGA_DL_hash \
|
||||
|
||||
download()
|
||||
{
|
||||
[ $# -lt 1 ] && \
|
||||
err "No argument given" "download" "$@"
|
||||
[ $# -lt 1 ] && err "No argument given" "download" "$@"
|
||||
|
||||
export PATH="$PATH:/sbin"
|
||||
board="$1"
|
||||
|
||||
check_target || return 0
|
||||
readkconfig download
|
||||
check_target && readkconfig download; :
|
||||
}
|
||||
|
||||
getfiles()
|
||||
@@ -108,14 +106,12 @@ fetch()
|
||||
dlop="$6"
|
||||
binsum="$7"
|
||||
|
||||
[ -z "$binsum" ] && \
|
||||
err "binsum is empty (no checksum)" "fetch" "$@"
|
||||
[ -z "$binsum" ] && err "binsum is empty (no checksum)" "fetch" "$@"
|
||||
|
||||
_dl="$XBMK_CACHE/file/$dlsum" # internet file to extract from e.g. .exe
|
||||
_dl_bin="$XBMK_CACHE/file/$binsum" # extracted file e.g. me.bin
|
||||
|
||||
[ "$5" = "/dev/null" ] && \
|
||||
return 0
|
||||
[ "$5" = "/dev/null" ] && return 0 # fetch/extract disabled
|
||||
|
||||
# an extracted vendor file will be placed in pre_dest first, for
|
||||
# verifying its checksum. if it matches, it is later moved to _dest
|
||||
@@ -160,32 +156,24 @@ fetch()
|
||||
[ ! -f "$_dest" ] || \
|
||||
return 0; :
|
||||
|
||||
[ -z "$binsum" ] && \
|
||||
printf "WARNING: %s: checksum undefined\n" "$_dest" 1>&2
|
||||
|
||||
x_ rm -f "$_dest"
|
||||
|
||||
[ -z "$binsum" ] && printf "WARNING: %s: no checksum\n" "$_dest" 1>&2
|
||||
err "Can't safely extract '$_dest', for board '$board'" "fetch" "$@"
|
||||
}
|
||||
|
||||
mkdst()
|
||||
{
|
||||
if bad_checksum "$1" "$2" 2>/dev/null; then
|
||||
x_ rm -f "$2"
|
||||
else
|
||||
if ! bad_checksum "$1" "$2" 2>/dev/null; then
|
||||
x_ mv "$2" "$_dl_bin"
|
||||
x_ cp "$_dl_bin" "$_dest"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
x_ rm -f "$2"
|
||||
}
|
||||
|
||||
extract_intel_me()
|
||||
{
|
||||
if e "$mecleaner" f missing; then
|
||||
err "$cbdir: me_cleaner missing" "extract_intel_me" "$@"
|
||||
fi
|
||||
|
||||
mfs=""
|
||||
_7ztest="$xbtmp/metmp/a"
|
||||
_metmp="$xbtmp/me.bin"
|
||||
@@ -228,10 +216,8 @@ extract_intel_me()
|
||||
# must be called inside a subshell.
|
||||
find_me()
|
||||
{
|
||||
[ -f "$_metmp" ] && \
|
||||
exit 1 # me.bin found
|
||||
[ -L "$1" ] && \
|
||||
return 0 # symlinks disabled for security reasons
|
||||
[ -f "$_metmp" ] && exit 1 # me.bin found
|
||||
[ -L "$1" ] && return 0 # symlinks disabled for security reasons
|
||||
|
||||
_7ztest="${_7ztest}a"
|
||||
|
||||
@@ -268,8 +254,7 @@ find_me()
|
||||
return 0 # can't extract, so try the next file
|
||||
fi
|
||||
|
||||
[ -f "$_metmp" ] && \
|
||||
exit 1 # me.bin found
|
||||
[ -f "$_metmp" ] && exit 1 # me.bin found
|
||||
|
||||
( fx_ find_me x_ find "$_7ztest" -type f ) || exit 1; : # 1==me found
|
||||
}
|
||||
@@ -318,8 +303,7 @@ extract_kbc1126ec_dump()
|
||||
unar -D 68*.CAB Rom.bin || \
|
||||
err "!kbc1126 unar" "extract_kbc1126ec" "$@"
|
||||
|
||||
[ ! -f "ec.bin" ] && \
|
||||
x_ mv Rom.bin ec.bin
|
||||
[ -f "ec.bin" ] || x_ mv Rom.bin ec.bin
|
||||
|
||||
x_ e ec.bin f
|
||||
x_ "$kbc1126_ec_dump" ec.bin
|
||||
@@ -365,8 +349,7 @@ extract_sch5545ec()
|
||||
# https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t480-type-20l5-20l6/20l5/solutions/ht508988
|
||||
extract_tbfw()
|
||||
{
|
||||
[ -z "$TBFW_size" ] && \
|
||||
err "$board: TBFW_size unset" "extract_tbfw" "$@"
|
||||
[ -z "$TBFW_size" ] && err "$board: TBFW_size unset" extract_tbfw "$@"
|
||||
|
||||
fx_ copytb x_ find "$appdir" -type f -name "TBT.bin"
|
||||
}
|
||||
@@ -415,12 +398,8 @@ getvfile()
|
||||
bootstrap
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
# download vendor files
|
||||
|
||||
getfiles
|
||||
else
|
||||
# inject vendor files
|
||||
|
||||
getfiles # ./mk download
|
||||
else # ./mk inject
|
||||
fx_ prep x_ find "$tmpromdir" -mindepth 1 -maxdepth 1 \
|
||||
-type f -name "*.rom"
|
||||
( check_vendor_hashes ) || \
|
||||
@@ -484,8 +463,7 @@ prep()
|
||||
( mksha512 "$_xrom" "vendorhashes" ) || err; :
|
||||
fi
|
||||
|
||||
add_vfiles "$_xrom" || \
|
||||
return 1 # no need to insert files
|
||||
add_vfiles "$_xrom" || return 1 # no need to insert files
|
||||
|
||||
if [ "$nuke" = "nuke" ]; then
|
||||
pad_one_byte "$_xrom"
|
||||
@@ -548,8 +526,7 @@ add_vfiles()
|
||||
|
||||
vfile()
|
||||
{
|
||||
[ "$2" = "/dev/null" ] && \
|
||||
return 0
|
||||
[ "$2" = "/dev/null" ] && return 0
|
||||
|
||||
cbfsname="$1"
|
||||
_dest="${2##*../}"
|
||||
|
||||
+1
-4
@@ -80,8 +80,6 @@ e()
|
||||
printf "%s %s\n" "$1" "$es2" 1>&2
|
||||
}
|
||||
|
||||
# return 0 if project is single-tree, otherwise 1
|
||||
# e.g. coreboot is multi-tree, so 1
|
||||
singletree()
|
||||
{
|
||||
( fx_ "eval exit 1 && err" find "config/$1/"*/ -type f \
|
||||
@@ -116,8 +114,7 @@ unpad_one_byte()
|
||||
|
||||
build_sbase()
|
||||
{
|
||||
[ ! -f "$sha512sum" ] && \
|
||||
x_ make -C "$xbmkpwd/util/sbase"; :
|
||||
[ ! -f "$sha512sum" ] && x_ make -C "$xbmkpwd/util/sbase"; :
|
||||
}
|
||||
|
||||
remkdir()
|
||||
|
||||
Reference in New Issue
Block a user