mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-11 05:52:36 +02:00
Merge branch 'master' into 25.04_branch
This commit is contained in:
+2
-23
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user