From 5686f35e0f1522d45361f042adc135b5782eae32 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 6 May 2025 18:32:28 +0100 Subject: inject.sh: insanely optimise the me bruteforce use fe_ fe_ ftw Signed-off-by: Leah Rowe --- include/inject.sh | 49 ++++++++++++++++++------------------------------- 1 file changed, 18 insertions(+), 31 deletions(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index 3cfe891c..f3f75bf3 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -35,7 +35,7 @@ eval "`setvars "" has_hashes EC_hash DL_hash DL_url_bkup MRC_refcode_gbe vcfg \ mecleaner kbc1126_ec_dump MRC_refcode_cbtree new_mac _dl SCH5545EC_DL_url \ archive EC_url boarddir rom cbdir DL_url nukemode cbfstoolref FSPFD_hash \ _7ztest ME11bootguard ME11delta ME11version ME11sku ME11pch tmpromdir \ - IFD_platform ifdprefix cdir sdir _me _metmp mfs TBFW_url_bkup TBFW_url \ + IFD_platform ifdprefix _me _metmp mfs TBFW_url_bkup TBFW_url \ TBFW_hash TBFW_size hashfile xromsize xchanged EC_url_bkup need_files \ vfile cbcfg $cv`" @@ -139,15 +139,19 @@ extract_intel_me() { e "$mecleaner" f not && err "$cbdir: me_cleaner missing. $dontflash" - cdir="$xbmkpwd/$appdir" + _7ztest="$xbmklocal/metmp/a" _me="$xbmkpwd/$_dest" _metmp="$xbmklocal/me.bin" + x_ rm -f "$_metmp" mfs="" && [ "$ME11bootguard" = "y" ] && mfs="--whitelist MFS" && \ chkvars ME11delta ME11version ME11sku ME11pch [ "$ME11bootguard" = "y" ] && x_ ./mk -f deguard - extract_intel_me_bruteforce + set +u +e + ( fe_ extract_intel_me_bruteforce "$xbmkpwd/$appdir" -type f ) || : + x_ rm -Rf "$xbmklocal/metmp" + [ "$ME11bootguard" != "y" ] && x_ mv "$_metmp" "$_me" && return 0 ( @@ -160,36 +164,19 @@ extract_intel_me() extract_intel_me_bruteforce() { - [ $# -gt 0 ] && cdir="$1" - e "$_metmp" f && return 0 + [ -L "$1" ] && return 0 + e "$_metmp" f && x_ && exit 1 - [ -z "$sdir" ] && sdir="$(mktemp -d)" - x_ mkdir -p "$sdir" + _r="-r" && [ -n "$mfs" ] && _r="" + + "$mecleaner" $mfs $_r -t -O "$xbmklocal/a" -M "$_metmp" "$1" && exit 1 + "$mecleaner" $mfs $_r -t -O "$_metmp" "$1" && exit 1 + "$me7updateparser" -O "$_metmp" "$1" && exit 1 - set +u +e - ( - [ "${cdir#/a}" != "$cdir" ] && cdir="${cdir#/}" - cd "$cdir" || err "extract_intel_me: !cd \"$cdir\" - $dontflash" - for i in *; do - c=0 && e "$_metmp" f && break - [ -L "$i" ] && continue - [ -e "$i" ] || continue - [ -d "$i" ] && extract_intel_me_bruteforce "$cdir/$i" && c=1 - if [ $c -eq 0 ] && [ -f "$i" ]; then - _r="-r" && [ -n "$mfs" ] && _r="" - "$mecleaner" $mfs $_r -t -O "$sdir/vendorfile" \ - -M "$_metmp" "$i" && break - "$mecleaner" $mfs $_r -t -O "$_metmp" "$i" && break - "$me7updateparser" -O "$_metmp" "$i" && break - _7ztest="${_7ztest}a" - extract_archive "$i" "$_7ztest" || continue - extract_intel_me_bruteforce "$cdir/$_7ztest" - fi - cdir="$1"; [ "${cdir#/a}" != "$cdir" ] && cdir="${cdir#/}" - cd "$cdir" || : - done - ) || : - rm -Rf "$sdir" || err "extract_intel_me: !rm -Rf $sdir - $dontflash" + _7ztest="${_7ztest}a" + extract_archive "$i" "$_7ztest" || return 0 + + ( fe_ extract_intel_me_bruteforce "$_7ztest" -type f ) || exit 1; : } extract_archive() -- cgit v1.2.1 From 5657cc1afb326b5b902dc8eb7fd584a15a38ca37 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 6 May 2025 19:30:55 +0100 Subject: inject.sh: don't use subshell for me bruteforce i needed it on the old version, which used cd this one stays in the same directory at all times Signed-off-by: Leah Rowe --- include/inject.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index f3f75bf3..0fcd6977 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -149,7 +149,7 @@ extract_intel_me() [ "$ME11bootguard" = "y" ] && x_ ./mk -f deguard set +u +e - ( fe_ extract_intel_me_bruteforce "$xbmkpwd/$appdir" -type f ) || : + fe_ extract_intel_me_bruteforce "$xbmkpwd/$appdir" -type f || : x_ rm -Rf "$xbmklocal/metmp" [ "$ME11bootguard" != "y" ] && x_ mv "$_metmp" "$_me" && return 0 @@ -165,18 +165,19 @@ extract_intel_me() extract_intel_me_bruteforce() { [ -L "$1" ] && return 0 - e "$_metmp" f && x_ && exit 1 + e "$_metmp" f && x_ && return 1 _r="-r" && [ -n "$mfs" ] && _r="" - "$mecleaner" $mfs $_r -t -O "$xbmklocal/a" -M "$_metmp" "$1" && exit 1 - "$mecleaner" $mfs $_r -t -O "$_metmp" "$1" && exit 1 - "$me7updateparser" -O "$_metmp" "$1" && exit 1 + "$mecleaner" $mfs $_r -t -O "$xbmklocal/a" -M "$_metmp" "$1" && \ + return 1 + "$mecleaner" $mfs $_r -t -O "$_metmp" "$1" && return 1 + "$me7updateparser" -O "$_metmp" "$1" && return 1 _7ztest="${_7ztest}a" extract_archive "$i" "$_7ztest" || return 0 - ( fe_ extract_intel_me_bruteforce "$_7ztest" -type f ) || exit 1; : + fe_ extract_intel_me_bruteforce "$_7ztest" -type f || return 1; : } extract_archive() -- cgit v1.2.1 From cf78583a6d8b4fe744c0872c82e7cca011899188 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 6 May 2025 19:32:18 +0100 Subject: inject.sh: remove unnecessary check the call stack already falls through with a bunch of return 1s after a successful run of me_cleaner, so it's really not necessary. Signed-off-by: Leah Rowe --- include/inject.sh | 1 - 1 file changed, 1 deletion(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index 0fcd6977..347d2d3b 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -165,7 +165,6 @@ extract_intel_me() extract_intel_me_bruteforce() { [ -L "$1" ] && return 0 - e "$_metmp" f && x_ && return 1 _r="-r" && [ -n "$mfs" ] && _r="" -- cgit v1.2.1 From 4781dbd2a050e7c98ae14e0eead7fb6f3ec0f92c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 6 May 2025 19:43:44 +0100 Subject: inject.sh: fix oversight in me bruteforce i used i instead of 1, in the variable when running the extract_archive function. this didn't trigger since +u was set, and +e was set. in practise, then, it seems that because of this, and because my ME extract/insert test was a success, that none of the archives we use actually have a ME inside of a file inside of a given downloaded archive. still, this is technically incorrect, so fix it! Signed-off-by: Leah Rowe --- include/inject.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index 347d2d3b..b31964e6 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -174,7 +174,7 @@ extract_intel_me_bruteforce() "$me7updateparser" -O "$_metmp" "$1" && return 1 _7ztest="${_7ztest}a" - extract_archive "$i" "$_7ztest" || return 0 + extract_archive "$1" "$_7ztest" || return 0 fe_ extract_intel_me_bruteforce "$_7ztest" -type f || return 1; : } -- cgit v1.2.1 From 03300766d1418cb2670c120dab8b20acdbb63f3d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 6 May 2025 19:47:08 +0100 Subject: inject.sh: tidy up extract_intel_me_bruteforce Signed-off-by: Leah Rowe --- include/inject.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index b31964e6..845208ba 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -165,9 +165,8 @@ extract_intel_me() extract_intel_me_bruteforce() { [ -L "$1" ] && return 0 - _r="-r" && [ -n "$mfs" ] && _r="" - + "$mecleaner" $mfs $_r -t -O "$xbmklocal/a" -M "$_metmp" "$1" && \ return 1 "$mecleaner" $mfs $_r -t -O "$_metmp" "$1" && return 1 -- cgit v1.2.1 From fac99aa2d4478268453bdbe36f9397c15328201e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 6 May 2025 20:24:32 +0100 Subject: lib.sh: re-add missing break in fe/fx_ Signed-off-by: Leah Rowe --- include/lib.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/lib.sh b/include/lib.sh index 572fcf68..a125181b 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -160,14 +160,14 @@ find_ex() xx="$1" && shift 1 $xmsg find "$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || \ err "!find $(echo "$@") > \"$fd\"" - dx_ "$xx" "$fd" + dx_ "$xx" "$fd" || break x_ rm -f "$fd" } dx_() { [ -f "$2" ] && while read -r fx; do - $1 "$fx" + $1 "$fx" || return 1 done < "$2"; : } -- cgit v1.2.1 From 485d785d3313fb5c27b0822f8c8e25d631efb3d6 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 6 May 2025 21:16:06 +0100 Subject: inject.sh: clean up tmp me file before extract Signed-off-by: Leah Rowe --- include/inject.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index 845208ba..a26668b5 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -142,7 +142,7 @@ extract_intel_me() _7ztest="$xbmklocal/metmp/a" _me="$xbmkpwd/$_dest" _metmp="$xbmklocal/me.bin" - x_ rm -f "$_metmp" + x_ rm -f "$_metmp" "$xbmklocal/a" mfs="" && [ "$ME11bootguard" = "y" ] && mfs="--whitelist MFS" && \ chkvars ME11delta ME11version ME11sku ME11pch -- cgit v1.2.1 From 2b7f6b7d7cedfcc7661f02b8092707fde09460a0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 10:20:59 +0100 Subject: inject.sh: Simplify extract_intel_me_bruteforce() This is probably about as small as it's going to get. Signed-off-by: Leah Rowe --- include/inject.sh | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index a26668b5..c1e8131c 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -148,14 +148,10 @@ extract_intel_me() chkvars ME11delta ME11version ME11sku ME11pch [ "$ME11bootguard" = "y" ] && x_ ./mk -f deguard - set +u +e - fe_ extract_intel_me_bruteforce "$xbmkpwd/$appdir" -type f || : - x_ rm -Rf "$xbmklocal/metmp" - + set +u +e && fe_ extract_intel_me_bruteforce "$xbmkpwd/$appdir" -type f [ "$ME11bootguard" != "y" ] && x_ mv "$_metmp" "$_me" && return 0 - ( - x_ cd src/deguard/ + ( x_ cd src/deguard/ x_ ./finalimage.py --delta "data/delta/$ME11delta" --version \ "$ME11version" --pch "$ME11pch" --sku "$ME11sku" \ --fake-fpfs data/fpfs/zero --input "$_metmp" --output "$_me" @@ -164,16 +160,14 @@ extract_intel_me() extract_intel_me_bruteforce() { + e "$_metmp" f && x_ rm -Rf "$xbmklocal/metmp" && return 1 [ -L "$1" ] && return 0 - _r="-r" && [ -n "$mfs" ] && _r="" - "$mecleaner" $mfs $_r -t -O "$xbmklocal/a" -M "$_metmp" "$1" && \ - return 1 - "$mecleaner" $mfs $_r -t -O "$_metmp" "$1" && return 1 - "$me7updateparser" -O "$_metmp" "$1" && return 1 + _7ztest="${_7ztest}a" && _r="-r" && [ -n "$mfs" ] && _r="" - _7ztest="${_7ztest}a" - extract_archive "$1" "$_7ztest" || return 0 + "$mecleaner" $mfs $_r -t -O "$xbmklocal/a" -M "$_metmp" "$1" || \ + "$mecleaner" $mfs $_r -t -O "$_metmp" "$1" || "$me7updateparser" \ + -O "$_metmp" "$1" || extract_archive "$1" "$_7ztest" || return 0 fe_ extract_intel_me_bruteforce "$_7ztest" -type f || return 1; : } -- cgit v1.2.1 From 0faef899469818410e5e6d481f1e6c4fa5ad3d3d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 13:27:25 +0100 Subject: lib.sh: support any command on find_exec() right now, we assume "find", but it adds any number of arguments next to that. change it instead to support any command, where the assumption is that it would generate a list of files and directories. Signed-off-by: Leah Rowe --- include/git.sh | 2 +- include/inject.sh | 16 ++++++++-------- include/lib.sh | 5 +++-- include/rom.sh | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) (limited to 'include') diff --git a/include/git.sh b/include/git.sh index 0a05b5ab..81c75806 100644 --- a/include/git.sh +++ b/include/git.sh @@ -108,7 +108,7 @@ tmpclone() ( [ $# -gt 5 ] || git clone "$repodir" "$3" || err "!clone $repodir $3" git -C "$3" reset --hard "$4" || err "!reset $1 $2 $3 $4 $5" - fx_ "eval x_ git -C \"$3\" am" "$5" -type f + fx_ "eval x_ git -C \"$3\" am" find "$5" -type f ) || repofail="y" [ "$repofail" = "y" ] && [ $# -lt 6 ] && tmpclone "$@" retry diff --git a/include/inject.sh b/include/inject.sh index c1e8131c..f1e29fd6 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -49,7 +49,7 @@ download() readkconfig() { x_ rm -f "$xbmktmp/cbcfg" - fe_ scankconfig "$boarddir/config" -type f + fe_ scankconfig find "$boarddir/config" -type f eval "`setcfg "$xbmktmp/cbcfg" 1`" @@ -148,7 +148,7 @@ extract_intel_me() chkvars ME11delta ME11version ME11sku ME11pch [ "$ME11bootguard" = "y" ] && x_ ./mk -f deguard - set +u +e && fe_ extract_intel_me_bruteforce "$xbmkpwd/$appdir" -type f + set +u +e && fe_ find_me find "$xbmkpwd/$appdir" -type f [ "$ME11bootguard" != "y" ] && x_ mv "$_metmp" "$_me" && return 0 ( x_ cd src/deguard/ @@ -158,7 +158,7 @@ extract_intel_me() ) || err "Error running deguard for $_me - $dontflash"; : } -extract_intel_me_bruteforce() +find_me() { e "$_metmp" f && x_ rm -Rf "$xbmklocal/metmp" && return 1 [ -L "$1" ] && return 0 @@ -169,7 +169,7 @@ extract_intel_me_bruteforce() "$mecleaner" $mfs $_r -t -O "$_metmp" "$1" || "$me7updateparser" \ -O "$_metmp" "$1" || extract_archive "$1" "$_7ztest" || return 0 - fe_ extract_intel_me_bruteforce "$_7ztest" -type f || return 1; : + fe_ find_me find "$_7ztest" -type f || return 1; : } extract_archive() @@ -228,7 +228,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() { - chkvars TBFW_size && fe_ copy_tbfw "$appdir" -type f -name "TBT.bin" + chkvars TBFW_size; fe_ copy_tbfw find "$appdir" -type f -name "TBT.bin" } copy_tbfw() @@ -344,7 +344,7 @@ patch_release_roms() done if readkconfig; then - fe_ prep_rom "$tmpromdir" -maxdepth 1 -type f -name "*.rom" + fe_ preprom find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" [ "$nukemode" != "nuke" ] || \ printf "Make sure you inserted vendor files: %s\n" \ "$vguide" > "$tmpromdir/README.md" || : @@ -378,7 +378,7 @@ patch_release_roms() "$archive" || err "'$archive' -> Can't overwrite - $dontflash"; : } -prep_rom() +preprom() { _xrom="$1" _xromname="${1##*/}" @@ -492,7 +492,7 @@ modify_mac() [ -n "$new_mac" ] && [ "$new_mac" != "restore" ] && \ x_ "$nvm" "$xbmklocal/gbe" setmac "$new_mac" - fe_ newmac "$tmpromdir" -maxdepth 1 -type f -name "*.rom" + fe_ newmac find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" printf "\nGbE NVM written to '%s':\n" "$archive" x_ "$nvm" "$xbmklocal/gbe" dump | grep -v "bytes read from file" || : diff --git a/include/lib.sh b/include/lib.sh index a125181b..f20b17e9 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -140,7 +140,8 @@ chkvars() # e.g. coreboot is multi-tree, so 1 singletree() { - ( fx_ "exit 1" "config/$1/"*/ -type f -name "target.cfg" ) || return 1 + ( fx_ "exit 1" find "config/$1/"*/ -type f -name "target.cfg" ) || \ + return 1 } fe_() @@ -158,7 +159,7 @@ find_ex() xmsg="$1" && shift 1 fd="`mktemp`" && x_ rm -f "$fd" && x_ touch "$fd" xx="$1" && shift 1 - $xmsg find "$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || \ + $xmsg "$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || \ err "!find $(echo "$@") > \"$fd\"" dx_ "$xx" "$fd" || break x_ rm -f "$fd" diff --git a/include/rom.sh b/include/rom.sh index 0eebdabb..09270829 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -192,7 +192,7 @@ mkseagrub() [ "$payload_grubsea" = "y" ] && pname="grub" [ "$payload_grubsea" = "y" ] || \ cbfs "$tmprom" "$grubdata/bootorder" bootorder raw - fe_ "cprom" "$grubdata/keymap" -type f -name "*.gkb" + fe_ cprom find "$grubdata/keymap" -type f -name "*.gkb" } add_uboot() -- cgit v1.2.1 From d2e6f989d7ef1250bedac1ad5c93e8f6220a5fd0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 13:44:05 +0100 Subject: rom.sh: build serprog images with fe_ Signed-off-by: Leah Rowe --- include/rom.sh | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'include') diff --git a/include/rom.sh b/include/rom.sh index 09270829..182282b1 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -9,22 +9,19 @@ grubdata="config/data/grub" mkserprog() { - [ "$_f" = "-d" ] && return 0 # dry run - basename -as .h "$serdir/"*.h > "$xbmktmp/ser" || \ - err "!mk $1 $xbmktmp" - - while read -r sertarget; do - [ "$1" = "pico" ] && x_ cmake -DPICO_BOARD="$sertarget" \ - -DPICO_SDK_PATH="$picosdk" -B "$sersrc/build" "$sersrc" \ - && x_ cmake --build "$sersrc/build" - [ "$1" = "stm32" ] && x_ make -C "$sersrc" \ - libopencm3-just-make BOARD=$sertarget && x_ make -C \ - "$sersrc" BOARD=$sertarget - x_ mkdir -p "bin/serprog_$1" - x_ mv "$serx" "bin/serprog_$1/serprog_$sertarget.${serx##*.}" - done < "$xbmktmp/ser" - - [ "$XBMK_RELEASE" = "y" ] && mkrom_tarball "bin/serprog_$1"; : + $dry fe_ "eval buildser \"$1\"" basename -as .h "$serdir/"*.h + [ "$XBMK_RELEASE" = "y" ] && $dry mkrom_tarball "bin/serprog_$1"; : +} + +buildser() +{ + [ "$1" = "pico" ] && x_ cmake -DPICO_BOARD="$2" \ + -DPICO_SDK_PATH="$picosdk" -B "$sersrc/build" "$sersrc" && \ + x_ cmake --build "$sersrc/build" + [ "$1" = "stm32" ] && x_ make -C "$sersrc" libopencm3-just-make \ + BOARD=$2 && x_ make -C "$sersrc" BOARD=$2 + x_ mkdir -p "bin/serprog_$1" + x_ mv "$serx" "bin/serprog_$1/serprog_$2.${serx##*.}" } copyps1bios() -- cgit v1.2.1 From 0ef77e65832e1ebf75a4fbfde977a55b7251d5c0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 14:01:50 +0100 Subject: build serprog using fe_ *defined inside mkhelper* sh macros ftw Signed-off-by: Leah Rowe --- include/rom.sh | 6 ------ 1 file changed, 6 deletions(-) (limited to 'include') diff --git a/include/rom.sh b/include/rom.sh index 182282b1..cb3c1298 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -7,12 +7,6 @@ grubdata="config/data/grub" -mkserprog() -{ - $dry fe_ "eval buildser \"$1\"" basename -as .h "$serdir/"*.h - [ "$XBMK_RELEASE" = "y" ] && $dry mkrom_tarball "bin/serprog_$1"; : -} - buildser() { [ "$1" = "pico" ] && x_ cmake -DPICO_BOARD="$2" \ -- cgit v1.2.1 From ec5c954337b2e1ea50b0ace0f1086e48f20e7774 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 15:12:10 +0100 Subject: lib.sh: Simplified fx_() and removed fe_() Instead of calling fe_, prefix x_ as indicated. Signed-off-by: Leah Rowe --- include/inject.sh | 14 ++++++++------ include/lib.sh | 14 +------------- include/rom.sh | 2 +- 3 files changed, 10 insertions(+), 20 deletions(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index f1e29fd6..dc4868ed 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -49,7 +49,7 @@ download() readkconfig() { x_ rm -f "$xbmktmp/cbcfg" - fe_ scankconfig find "$boarddir/config" -type f + fx_ scankconfig x_ find "$boarddir/config" -type f eval "`setcfg "$xbmktmp/cbcfg" 1`" @@ -148,7 +148,7 @@ extract_intel_me() chkvars ME11delta ME11version ME11sku ME11pch [ "$ME11bootguard" = "y" ] && x_ ./mk -f deguard - set +u +e && fe_ find_me find "$xbmkpwd/$appdir" -type f + set +u +e && fx_ find_me x_ find "$xbmkpwd/$appdir" -type f [ "$ME11bootguard" != "y" ] && x_ mv "$_metmp" "$_me" && return 0 ( x_ cd src/deguard/ @@ -169,7 +169,7 @@ find_me() "$mecleaner" $mfs $_r -t -O "$_metmp" "$1" || "$me7updateparser" \ -O "$_metmp" "$1" || extract_archive "$1" "$_7ztest" || return 0 - fe_ find_me find "$_7ztest" -type f || return 1; : + fx_ find_me x_ find "$_7ztest" -type f || return 1; : } extract_archive() @@ -228,7 +228,8 @@ 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() { - chkvars TBFW_size; fe_ copy_tbfw find "$appdir" -type f -name "TBT.bin" + chkvars TBFW_size + fx_ copy_tbfw x_ find "$appdir" -type f -name "TBT.bin" } copy_tbfw() @@ -344,7 +345,8 @@ patch_release_roms() done if readkconfig; then - fe_ preprom find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" + fx_ preprom x_ find "$tmpromdir" -maxdepth 1 -type f \ + -name "*.rom" [ "$nukemode" != "nuke" ] || \ printf "Make sure you inserted vendor files: %s\n" \ "$vguide" > "$tmpromdir/README.md" || : @@ -492,7 +494,7 @@ modify_mac() [ -n "$new_mac" ] && [ "$new_mac" != "restore" ] && \ x_ "$nvm" "$xbmklocal/gbe" setmac "$new_mac" - fe_ newmac find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" + fx_ newmac x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" printf "\nGbE NVM written to '%s':\n" "$archive" x_ "$nvm" "$xbmklocal/gbe" dump | grep -v "bytes read from file" || : diff --git a/include/lib.sh b/include/lib.sh index f20b17e9..274daf69 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -144,23 +144,11 @@ singletree() return 1 } -fe_() -{ - find_ex "x_" "$@" -} - fx_() { - find_ex "" "$@" -} - -find_ex() -{ - xmsg="$1" && shift 1 fd="`mktemp`" && x_ rm -f "$fd" && x_ touch "$fd" xx="$1" && shift 1 - $xmsg "$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || \ - err "!find $(echo "$@") > \"$fd\"" + "$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || err "FATAL: !sort fx_" dx_ "$xx" "$fd" || break x_ rm -f "$fd" } diff --git a/include/rom.sh b/include/rom.sh index cb3c1298..fdd0787f 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -183,7 +183,7 @@ mkseagrub() [ "$payload_grubsea" = "y" ] && pname="grub" [ "$payload_grubsea" = "y" ] || \ cbfs "$tmprom" "$grubdata/bootorder" bootorder raw - fe_ cprom find "$grubdata/keymap" -type f -name "*.gkb" + fx_ cprom x_ find "$grubdata/keymap" -type f -name "*.gkb" } add_uboot() -- cgit v1.2.1 From 394b4ea7a59e4392d39c6e8154b21ae91b26492e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 15:17:45 +0100 Subject: inject.sh: rename copytb and preprom functions make them shorter so they go on one line again Signed-off-by: Leah Rowe --- include/inject.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index dc4868ed..fe52e986 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -228,11 +228,10 @@ 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() { - chkvars TBFW_size - fx_ copy_tbfw x_ find "$appdir" -type f -name "TBT.bin" + chkvars TBFW_size; fx_ copytb x_ find "$appdir" -type f -name "TBT.bin" } -copy_tbfw() +copytb() { [ -f "$1" ] && [ ! -L "$1" ] && x_ dd if=/dev/null of="$1" bs=1 \ seek=$TBFW_size && x_ mv "$1" "$_dest" && return 1; : @@ -345,8 +344,7 @@ patch_release_roms() done if readkconfig; then - fx_ preprom x_ find "$tmpromdir" -maxdepth 1 -type f \ - -name "*.rom" + fx_ prep x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" [ "$nukemode" != "nuke" ] || \ printf "Make sure you inserted vendor files: %s\n" \ "$vguide" > "$tmpromdir/README.md" || : @@ -380,7 +378,7 @@ patch_release_roms() "$archive" || err "'$archive' -> Can't overwrite - $dontflash"; : } -preprom() +prep() { _xrom="$1" _xromname="${1##*/}" -- cgit v1.2.1 From 7f71328f0e214db25f5dcccea0dab32ea834fb13 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 16:23:12 +0100 Subject: lib.sh: Remove useless command in err() We don't need this, since we're exiting anyway. Signed-off-by: Leah Rowe --- include/lib.sh | 1 - 1 file changed, 1 deletion(-) (limited to 'include') diff --git a/include/lib.sh b/include/lib.sh index 274daf69..950a07c8 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -168,7 +168,6 @@ x_() err() { - set -u -e [ $# -lt 1 ] || printf "ERROR %s: %s\n" "$0" "$1" 1>&2 || : exit 1 } -- cgit v1.2.1 From d530e68594d39076831d7a232ea17c8b42d73b4f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 16:53:57 +0100 Subject: inject.sh: Simplify patch_release_roms() Signed-off-by: Leah Rowe --- include/inject.sh | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index fe52e986..7bcd5bc7 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -13,7 +13,6 @@ cbcfgsdir="config/coreboot" hashfiles="vendorhashes blobhashes" # blobhashes for backwards compatibility dontflash="!!! AN ERROR OCCURED! Please DO NOT flash if injection failed. !!!" vfix="DO_NOT_FLASH_YET._FIRST,_INJECT_FILES_VIA_INSTRUCTIONS_ON_LIBREBOOT.ORG_" -vguide="https://libreboot.org/docs/install/ivy_has_common.html" tmpromdel="$xbmklocal/DO_NOT_FLASH" nvm="util/nvmutil/nvm" ifdtool="elf/ifdtool/default/ifdtool" @@ -338,23 +337,14 @@ patch_release_roms() x_ tar -xf "$archive" -C "${tmpromdir%"/bin/$board"}" for _hashes in $hashfiles; do - [ "$need_files" = "y" ] || break - e "$tmpromdir/$_hashes" f && has_hashes="y" && \ - hashfile="$_hashes" && break; : + [ "$need_files" = "y" ] && e "$tmpromdir/$_hashes" f && \ + has_hashes="y" && hashfile="$_hashes" && break; : done - if readkconfig; then - fx_ prep x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" - [ "$nukemode" != "nuke" ] || \ - printf "Make sure you inserted vendor files: %s\n" \ - "$vguide" > "$tmpromdir/README.md" || : - else - printf "Skipping vendorfiles on '%s'\n" "$archive" 1>&2 - need_files="n" - fi + readkconfig || exit 0; [ "$need_files" = "n" ] || \ + fx_ prep x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" ( - [ "$need_files" = "y" ] || exit 0 cd "$tmpromdir" || err "patch '$archive': can't cd $tmpromdir" # NOTE: For compatibility with older rom releases, defer to sha1 if [ "$has_hashes" = "y" ] && [ "$nukemode" != "nuke" ]; then -- cgit v1.2.1 From e3098c61f43575650628fc4e6f7e1693c44ac337 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 17:00:41 +0100 Subject: inject.sh: simplified MAC address handling Signed-off-by: Leah Rowe --- include/inject.sh | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index 7bcd5bc7..e64c304e 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -354,7 +354,7 @@ patch_release_roms() fi ) || err "'$archive' -> Can't verify vendor hashes. $dontflash" - [ -z "$new_mac" ] || modify_mac || printf "\nGbE not defined\n" 1>&2 + [ -z "$new_mac" ] || [ -z "$CONFIG_GBE_BIN_PATH" ] || modify_mac [ "$xchanged" = "y" ] || rm -Rf "$tmpromdel" || : [ "$xchanged" = "y" ] || return 0 @@ -476,16 +476,11 @@ insert() modify_mac() { - [ -n "$CONFIG_GBE_BIN_PATH" ] || return 1 - x_ cp "${CONFIG_GBE_BIN_PATH##*../}" "$xbmklocal/gbe" [ -n "$new_mac" ] && [ "$new_mac" != "restore" ] && \ x_ "$nvm" "$xbmklocal/gbe" setmac "$new_mac" fx_ newmac x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" - - printf "\nGbE NVM written to '%s':\n" "$archive" - x_ "$nvm" "$xbmklocal/gbe" dump | grep -v "bytes read from file" || : } newmac() -- cgit v1.2.1 From a94bd3c0939fac05a902af2cce2cf862ecdf9200 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 17:08:42 +0100 Subject: inject.sh: simplify extract_kbc1126ec() Signed-off-by: Leah Rowe --- include/inject.sh | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/inject.sh b/include/inject.sh index e64c304e..c0b4409f 100644 --- a/include/inject.sh +++ b/include/inject.sh @@ -150,7 +150,8 @@ extract_intel_me() set +u +e && fx_ find_me x_ find "$xbmkpwd/$appdir" -type f [ "$ME11bootguard" != "y" ] && x_ mv "$_metmp" "$_me" && return 0 - ( x_ cd src/deguard/ + ( + x_ cd src/deguard/ x_ ./finalimage.py --delta "data/delta/$ME11delta" --version \ "$ME11version" --pch "$ME11pch" --sku "$ME11sku" \ --fake-fpfs data/fpfs/zero --input "$_metmp" --output "$_me" @@ -181,15 +182,11 @@ extract_archive() extract_kbc1126ec() { - x_ e "$kbc1126_ec_dump" f ( x_ cd "$appdir/" - mv Rompaq/68*.BIN ec.bin || : - if [ ! -f "ec.bin" ]; then - unar -D ROM.CAB Rom.bin || unar -D Rom.CAB Rom.bin || \ - unar -D 68*.CAB Rom.bin || err "kbc1126 unar failed" - x_ mv Rom.bin ec.bin - fi + mv Rompaq/68*.BIN ec.bin || unar -D ROM.CAB Rom.bin || unar -D \ + Rom.CAB Rom.bin || unar -D 68*.CAB Rom.bin || err "!kbc1126 unar" + [ -f "ec.bin" ] || x_ mv Rom.bin ec.bin x_ e ec.bin f && x_ "$kbc1126_ec_dump" ec.bin ) || err "$board: can't extract kbc1126 ec firmware - $dontflash" -- cgit v1.2.1 From cba04aa74b816cbd5f1266a73962f6dd48ee2892 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 19:00:13 +0100 Subject: init.sh: Use readlink in pybin() Use realpath only as a fallback. Signed-off-by: Leah Rowe --- include/init.sh | 3 +-- include/lib.sh | 12 ++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/init.sh b/include/init.sh index 1be860ea..5032d734 100644 --- a/include/init.sh +++ b/include/init.sh @@ -80,8 +80,7 @@ pybin() # ideally, don't rely on PATH or hardcoded paths if python venv. # use the *real*, direct executable linked to by the venv symlink if [ $venv -gt 0 ] && [ -L "`command -v "$1" 2>/dev/null`" ]; then - # realpath isn't posix, but available mostly universally - pypath="$(realpath \ + pypath="$(findpath \ "$(command -v "$1" 2>/dev/null)" 2>/dev/null || :)" [ -e "$pypath" ] && [ ! -d "$pypath" ] && \ [ -x "$pypath" ] && printf "%s\n" "$pypath" && return 0; : diff --git a/include/lib.sh b/include/lib.sh index 950a07c8..99e59a1a 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -144,6 +144,18 @@ singletree() return 1 } +findpath() +{ + [ $# -gt 0 ] || err "findpath: No arguments provided" + while [ $# -gt 0 ]; do + found="`readlink -f "$1" 2>/dev/null`" || return 1; : + [ -n "$found" ] || found="`realpath "$1" 2>/dev/null`" || \ + return 1; : + printf "%s\n" "$found" + shift 1 + done +} + fx_() { fd="`mktemp`" && x_ rm -f "$fd" && x_ touch "$fd" -- cgit v1.2.1 From 40a944118f2af08ab37719c07cf7e826267a0eef Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 19:03:51 +0100 Subject: init.sh: run set_version before set_env Signed-off-by: Leah Rowe --- include/init.sh | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) (limited to 'include') diff --git a/include/init.sh b/include/init.sh index 5032d734..6ccdf13f 100644 --- a/include/init.sh +++ b/include/init.sh @@ -31,7 +31,7 @@ xbmk_init() id -u 1>/dev/null 2>/dev/null || err "suid check failed (id -u)" [ "$(id -u)" != "0" ] || err "this command as root is not permitted" - for init_cmd in set_pyver set_env set_version git_init create_tmpdir \ + for init_cmd in set_pyver set_version set_env git_init create_tmpdir \ lock create_pathdirs child_exec; do xbmk_$init_cmd "$@" || break done @@ -97,26 +97,6 @@ pybin() command -v "$1" 2>/dev/null || return 1 } -xbmk_set_env() -{ - # XBMK_CACHE is a directory, for caching downloads and git repon - [ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$xbmkpwd/cache" - [ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache" - [ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$xbmkpwd/cache" ] && \ - err "cachedir '$xbmkpwd/cache' is a symlink" - [ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache" - [ -f "$XBMK_CACHE" ] && err "cachedir '$XBMK_CACHE' is a file"; : - - # if "y": a coreboot target won't be built if target.cfg says release="n" - # (this is used to exclude certain build targets from releases) - [ -z "${XBMK_RELEASE+x}" ] && export XBMK_RELEASE="n" - [ "$XBMK_RELEASE" = "y" ] || export XBMK_RELEASE="n" - - [ -z "${XBMK_THREADS+x}" ] && export XBMK_THREADS=1 - expr "X$XBMK_THREADS" : "X-\{0,1\}[0123456789][0123456789]*$" \ - 1>/dev/null 2>/dev/null || export XBMK_THREADS=1; : -} - xbmk_set_version() { [ ! -f ".version" ] || read -r version < ".version" || :; : @@ -142,6 +122,26 @@ xbmk_set_version() export LOCALVERSION="-$projectname-${version%%-*}" } +xbmk_set_env() +{ + # XBMK_CACHE is a directory, for caching downloads and git repon + [ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$xbmkpwd/cache" + [ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache" + [ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$xbmkpwd/cache" ] && \ + err "cachedir '$xbmkpwd/cache' is a symlink" + [ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache" + [ -f "$XBMK_CACHE" ] && err "cachedir '$XBMK_CACHE' is a file"; : + + # if "y": a coreboot target won't be built if target.cfg says release="n" + # (this is used to exclude certain build targets from releases) + [ -z "${XBMK_RELEASE+x}" ] && export XBMK_RELEASE="n" + [ "$XBMK_RELEASE" = "y" ] || export XBMK_RELEASE="n" + + [ -z "${XBMK_THREADS+x}" ] && export XBMK_THREADS=1 + expr "X$XBMK_THREADS" : "X-\{0,1\}[0123456789][0123456789]*$" \ + 1>/dev/null 2>/dev/null || export XBMK_THREADS=1; : +} + xbmk_git_init() { for gitarg in "--global user.name" "--global user.email"; do -- cgit v1.2.1 From e1628ad8f3e63428888b42d0c49c3fe6b3c9d006 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 19:04:52 +0100 Subject: init.sh: export LOCALVERSION in set_env Don't do it in set_version Signed-off-by: Leah Rowe --- include/init.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/init.sh b/include/init.sh index 6ccdf13f..1bf52eef 100644 --- a/include/init.sh +++ b/include/init.sh @@ -119,11 +119,12 @@ xbmk_set_version() printf "%s\n" "$versiondate" > ".versiondate" || err "can't save date" relname="$projectname-$version" - export LOCALVERSION="-$projectname-${version%%-*}" } xbmk_set_env() { + export LOCALVERSION="-$projectname-${version%%-*}" + # XBMK_CACHE is a directory, for caching downloads and git repon [ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$xbmkpwd/cache" [ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache" -- cgit v1.2.1 From e1af1055ed11b25df42c8a7a32c250da346b08b7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 19:09:29 +0100 Subject: init.sh: check XBMK_CACHE is a directory instead it doesn't matter if it's not a file. that's the wrong check. Signed-off-by: Leah Rowe --- include/init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/init.sh b/include/init.sh index 1bf52eef..1a01de45 100644 --- a/include/init.sh +++ b/include/init.sh @@ -131,7 +131,7 @@ xbmk_set_env() [ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$xbmkpwd/cache" ] && \ err "cachedir '$xbmkpwd/cache' is a symlink" [ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache" - [ -f "$XBMK_CACHE" ] && err "cachedir '$XBMK_CACHE' is a file"; : + [ -d "$XBMK_CACHE" ] || err "cachedir '$XBMK_CACHE' is a file"; : # if "y": a coreboot target won't be built if target.cfg says release="n" # (this is used to exclude certain build targets from releases) -- cgit v1.2.1 From 570f1417a80224cf73a57febf126bd80e908b32e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 19:12:51 +0100 Subject: init.sh: Resolve XBMK_CACHE via readlink Signed-off-by: Leah Rowe --- include/init.sh | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include') diff --git a/include/init.sh b/include/init.sh index 1a01de45..a322370b 100644 --- a/include/init.sh +++ b/include/init.sh @@ -131,6 +131,9 @@ xbmk_set_env() [ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$xbmkpwd/cache" ] && \ err "cachedir '$xbmkpwd/cache' is a symlink" [ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache" + xbmkcache="`findpath "$XBMK_CACHE"`" || \ + err "Can't resolve cachedir: '$XBMK_CACHE'" + export XBMK_CACHE="$xbmkcache" [ -d "$XBMK_CACHE" ] || err "cachedir '$XBMK_CACHE' is a file"; : # if "y": a coreboot target won't be built if target.cfg says release="n" -- cgit v1.2.1 From 1b0afdcea226ebc4e5f46c50fc21aa835b52ada9 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 19:23:32 +0100 Subject: init.sh: also allow XBMK_RELEASE=Y or N as opposed to =n or =y Signed-off-by: Leah Rowe --- include/init.sh | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/init.sh b/include/init.sh index a322370b..e5e3f564 100644 --- a/include/init.sh +++ b/include/init.sh @@ -139,6 +139,8 @@ xbmk_set_env() # if "y": a coreboot target won't be built if target.cfg says release="n" # (this is used to exclude certain build targets from releases) [ -z "${XBMK_RELEASE+x}" ] && export XBMK_RELEASE="n" + [ "$XBMK_RELEASE" = "N" ] && export XBMK_RELEASE="n" + [ "$XBMK_RELEASE" = "Y" ] && export XBMK_RELEASE="y" [ "$XBMK_RELEASE" = "y" ] || export XBMK_RELEASE="n" [ -z "${XBMK_THREADS+x}" ] && export XBMK_THREADS=1 -- cgit v1.2.1 From 2cea8517f3b6c7f72cdecbcd3e6745db29284852 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 7 May 2025 21:16:50 +0100 Subject: init.sh: remove useless export we already reset to n if not y, afterward just rely on that Signed-off-by: Leah Rowe --- include/init.sh | 1 - 1 file changed, 1 deletion(-) (limited to 'include') diff --git a/include/init.sh b/include/init.sh index e5e3f564..d2db0236 100644 --- a/include/init.sh +++ b/include/init.sh @@ -139,7 +139,6 @@ xbmk_set_env() # if "y": a coreboot target won't be built if target.cfg says release="n" # (this is used to exclude certain build targets from releases) [ -z "${XBMK_RELEASE+x}" ] && export XBMK_RELEASE="n" - [ "$XBMK_RELEASE" = "N" ] && export XBMK_RELEASE="n" [ "$XBMK_RELEASE" = "Y" ] && export XBMK_RELEASE="y" [ "$XBMK_RELEASE" = "y" ] || export XBMK_RELEASE="n" -- cgit v1.2.1