Merge branch 'master' into 25.04_branch

This commit is contained in:
Leah Rowe
2025-05-06 14:56:33 +01:00
6 changed files with 48 additions and 90 deletions
+2 -23
View File
@@ -54,9 +54,7 @@ git_prep()
chkvars rev
tmpclone "$1" "$2" "$tmpgit" "$rev" "$_patchdir"
if singletree "$project" || [ $# -gt 4 ]; then
[ -f "$mdir/module.list" ] && while read -r msrcdir; do
fetch_submodule "$msrcdir"
done < "$mdir/module.list"; :
dx_ fetch_submodule "$mdir/module.list"
fi
[ "$_loc" != "$XBMK_CACHE/repo/$project" ] && \
@@ -66,15 +64,6 @@ git_prep()
mv "$tmpgit" "$_loc" || err "git_prep: !mv $tmpgit $_loc"
}
# return 0 if project is single-tree, otherwise 1
# e.g. coreboot is multi-tree, so 1
singletree()
{
for targetfile in "config/${1}/"*/target.cfg; do
[ -e "$targetfile" ] && [ -f "$targetfile" ] && return 1; :
done; :
}
fetch_submodule()
{
mcfgdir="$mdir/${1##*/}"; eval \
@@ -119,23 +108,13 @@ tmpclone()
(
[ $# -gt 5 ] || git clone "$repodir" "$3" || err "!clone $repodir $3"
git -C "$3" reset --hard "$4" || err "!reset $1 $2 $3 $4 $5"
git_am_patches "$3" "$5"
fx_ "eval x_ git -C \"$3\" am" "$5" -type f
) || repofail="y"
[ "$repofail" = "y" ] && [ $# -lt 6 ] && tmpclone "$@" retry
[ "$repofail" = "y" ] && err "!clone $1 $2 $3 $4 $5"; :
}
git_am_patches()
{
for p in "$2/"*; do
[ -L "$p" ] && continue
[ -e "$p" ] || continue
[ -d "$p" ] && git_am_patches "$1" "$p" && continue
[ ! -f "$p" ] || git -C "$1" am "$p" || err "$1 $2: !am $p"
done; :
}
nuke()
{
e "config/${1%/}/nuke.list" f missing || while read -r nukefile; do
-2
View File
@@ -14,8 +14,6 @@ projectsite="https://libreboot.org/"
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
xbmkpath="$PATH"
xbmk_err="err_"
eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \
datadir version xbmkpwd relname xbmkpwd xbmktmp python pyver xbmklocal \
xbmklock`"
+10 -15
View File
@@ -49,9 +49,8 @@ download()
readkconfig()
{
x_ rm -f "$xbmktmp/cbcfg"
cbcfg="`check_defconfig "$boarddir"`" || for cbc in $cv; do
grep "$cbc" "$cbcfg" 1>>"$xbmktmp/cbcfg" 2>/dev/null || :
done
fe_ scankconfig "$boarddir/config" -type f
eval "`setcfg "$xbmktmp/cbcfg" 1`"
for c in $cvchk; do
@@ -63,6 +62,13 @@ readkconfig()
return 1
}
scankconfig()
{
for cbc in $cv; do
grep "$cbc" "$1" 1>>"$xbmktmp/cbcfg" 2>/dev/null || :
done
}
bootstrap()
{
x_ ./mk -f coreboot ${cbdir##*/}
@@ -254,23 +260,12 @@ copy_tbfw()
extract_fsp()
{
x_ python "$cbdir/3rdparty/fsp/Tools/SplitFspBin.py" split -f "$1" \
-o "$2" -n "Fsp.fd" && x_ cp "$appdir/"Fsp_*.fd "${_dest%/*}"
}
fail_inject()
{
[ -L "$tmpromdel" ] || [ ! -d "$tmpromdel" ] || \
rm -Rf "$tmpromdel" || :
printf "\n\n%s\n\n" "$dontflash" 1>&2
printf "WARNING: File '%s' was NOT modified.\n\n" "$archive" 1>&2
printf "Please MAKE SURE vendor files are inserted before flashing\n\n"
err_ "$1"
-o "${_dest%/*}" -n "Fsp.fd"
}
inject()
{
need_files="n"
xbmk_err="fail_inject"
remkdir "$tmpromdel"
set +u +e
+16 -35
View File
@@ -105,14 +105,6 @@ mk()
done; :
}
check_defconfig()
{
[ -d "$1" ] || err "Target '$1' not defined."
for x in "$1"/config/*; do
[ -f "$x" ] && printf "%s\n" "$x" && return 1
done; :
}
setvars()
{
_setvars=""
@@ -144,6 +136,13 @@ chkvars()
done; :
}
# return 0 if project is single-tree, otherwise 1
# e.g. coreboot is multi-tree, so 1
singletree()
{
( fx_ "exit 1" "config/$1/"*/ -type f -name "target.cfg" ) || return 1
}
fe_()
{
find_ex "x_" "$@"
@@ -159,17 +158,21 @@ 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 > "$fd" || \
$xmsg find "$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || \
err "!find $(echo "$@") > \"$fd\""
while read -r fx; do
$xx "$fx" || break; :
done < "$fd"
dx_ "$xx" "$fd"
x_ rm -f "$fd"
}
dx_()
{
[ -f "$2" ] && while read -r fx; do
$1 "$fx"
done < "$2"; :
}
x_()
{
[ $# -lt 1 ] && printf "WARNING: x_ called without arguments\n" 1>&2
[ $# -lt 1 ] || [ -n "$1" ] || err "Empty first arg: x_ $(echo "$@")"
[ $# -lt 1 ] || "$@" || err "Unhandled error for: $(echo "$@")"; :
}
@@ -177,28 +180,6 @@ x_()
err()
{
set -u -e
xbmk_err_val=0
real_err="" && [ -n "${xbmk_err+x}" ] && real_err="$xbmk_err"
if [ -z "$real_err" ]; then
printf "WARNING: err not set. Defaulting to 'err_'\n" 1>&2
real_err="err_"
fi
(
$real_err "$@" || err_ "Error function '$real_err' *returned* 1"
err_ "Error function '$real_err' didn't exit"
exit 1 # just in case!
) || xbmk_err_val=1 # otherwise, it wrongly did exit 0, not exit 1
[ $xbmk_err_val -eq 0 ] && err_ "Error function '$real_err' did exit 0"
exit 1 # just in case!
}
err_()
{
[ $# -lt 1 ] && printf "ERROR (but no error message provided)\n" 1>&2
[ $# -lt 1 ] || printf "ERROR %s: %s\n" "$0" "$1" 1>&2 || :
exit 1
}
+18 -11
View File
@@ -192,9 +192,7 @@ mkseagrub()
[ "$payload_grubsea" = "y" ] && pname="grub"
[ "$payload_grubsea" = "y" ] || \
cbfs "$tmprom" "$grubdata/bootorder" bootorder raw
for keymap in config/data/grub/keymap/*.gkb; do
[ -f "$keymap" ] && cprom "${keymap##*/}"; :
done; :
fe_ "cprom" "$grubdata/keymap" -type f -name "*.gkb"
}
add_uboot()
@@ -243,16 +241,25 @@ add_uboot()
cprom()
{
newrom="bin/$target/${pname}_${target}_$initmode.rom"
[ -n "$displaymode" ] && newrom="${newrom%.rom}_$displaymode.rom"
[ $# -gt 0 ] && [ "$1" != "seauboot" ] && \
newrom="${newrom%.rom}_${1%.gkb}.rom"
cpcmd="cp"
x_ mkdir -p "bin/$target"
x_ cp "$tmprom" "$newrom" && [ $# -gt 0 ] && [ "$1" != "seauboot" ] && \
cbfs "$newrom" "config/data/grub/keymap/$1" keymap.gkb raw
tmpnew=""; newrom="bin/$target/${pname}_${target}_$initmode.rom"
[ -n "$displaymode" ] && newrom="${newrom%.rom}_$displaymode.rom"
[ $# -gt 0 ] && [ "${1%.gkb}" != "$1" ] && tmpnew="${1##*/}" && \
newrom="${newrom%.rom}_${tmpnew%.gkb}.rom"
irom="$tmprom"
[ $# -lt 1 ] || irom="`mktemp`" || err "!mk irom, $(echo "$@")"
[ $# -gt 0 ] && x_ cp "$tmprom" "$irom" && cpcmd="mv"
[ $# -gt 0 ] && [ "${1%.gkb}" != "$1" ] && \
cbfs "$irom" "$grubdata/keymap/$tmpnew" keymap.gkb raw
[ $# -gt 0 ] && [ "$1" = "seauboot" ] && \
cbfs "$newrom" "config/data/grub/bootorder_uboot" bootorder raw; :
cbfs "$irom" "$grubdata/bootorder_uboot" bootorder raw; :
printf "Creating new %s image: '%s'\n" "$projectname" "$newrom"
x_ mkdir -p "bin/$target"
x_ $cpcmd "$irom" "$newrom"
}
cbfs()
+2 -4
View File
@@ -370,10 +370,8 @@ check_defconfig()
elfcheck()
{
# TODO: very hacky check. do it properly (based on build.list)
for elftest in "$dest_dir"/*; do
[ -e "$elftest" ] && e "$elftest" f && return 1
done; :
# TODO: *STILL* very hacky check. do it properly (based on build.list)
( fx_ "exit 1" "$dest_dir" -type f ) || return 1; :
}
handle_makefile()