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
|
chkvars rev
|
||||||
tmpclone "$1" "$2" "$tmpgit" "$rev" "$_patchdir"
|
tmpclone "$1" "$2" "$tmpgit" "$rev" "$_patchdir"
|
||||||
if singletree "$project" || [ $# -gt 4 ]; then
|
if singletree "$project" || [ $# -gt 4 ]; then
|
||||||
[ -f "$mdir/module.list" ] && while read -r msrcdir; do
|
dx_ fetch_submodule "$mdir/module.list"
|
||||||
fetch_submodule "$msrcdir"
|
|
||||||
done < "$mdir/module.list"; :
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ "$_loc" != "$XBMK_CACHE/repo/$project" ] && \
|
[ "$_loc" != "$XBMK_CACHE/repo/$project" ] && \
|
||||||
@@ -66,15 +64,6 @@ git_prep()
|
|||||||
mv "$tmpgit" "$_loc" || err "git_prep: !mv $tmpgit $_loc"
|
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()
|
fetch_submodule()
|
||||||
{
|
{
|
||||||
mcfgdir="$mdir/${1##*/}"; eval \
|
mcfgdir="$mdir/${1##*/}"; eval \
|
||||||
@@ -119,23 +108,13 @@ tmpclone()
|
|||||||
(
|
(
|
||||||
[ $# -gt 5 ] || git clone "$repodir" "$3" || err "!clone $repodir $3"
|
[ $# -gt 5 ] || git clone "$repodir" "$3" || err "!clone $repodir $3"
|
||||||
git -C "$3" reset --hard "$4" || err "!reset $1 $2 $3 $4 $5"
|
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"
|
||||||
|
|
||||||
[ "$repofail" = "y" ] && [ $# -lt 6 ] && tmpclone "$@" retry
|
[ "$repofail" = "y" ] && [ $# -lt 6 ] && tmpclone "$@" retry
|
||||||
[ "$repofail" = "y" ] && err "!clone $1 $2 $3 $4 $5"; :
|
[ "$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()
|
nuke()
|
||||||
{
|
{
|
||||||
e "config/${1%/}/nuke.list" f missing || while read -r nukefile; do
|
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"
|
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
|
||||||
xbmkpath="$PATH"
|
xbmkpath="$PATH"
|
||||||
|
|
||||||
xbmk_err="err_"
|
|
||||||
|
|
||||||
eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \
|
eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \
|
||||||
datadir version xbmkpwd relname xbmkpwd xbmktmp python pyver xbmklocal \
|
datadir version xbmkpwd relname xbmkpwd xbmktmp python pyver xbmklocal \
|
||||||
xbmklock`"
|
xbmklock`"
|
||||||
|
|||||||
+10
-15
@@ -49,9 +49,8 @@ download()
|
|||||||
readkconfig()
|
readkconfig()
|
||||||
{
|
{
|
||||||
x_ rm -f "$xbmktmp/cbcfg"
|
x_ rm -f "$xbmktmp/cbcfg"
|
||||||
cbcfg="`check_defconfig "$boarddir"`" || for cbc in $cv; do
|
fe_ scankconfig "$boarddir/config" -type f
|
||||||
grep "$cbc" "$cbcfg" 1>>"$xbmktmp/cbcfg" 2>/dev/null || :
|
|
||||||
done
|
|
||||||
eval "`setcfg "$xbmktmp/cbcfg" 1`"
|
eval "`setcfg "$xbmktmp/cbcfg" 1`"
|
||||||
|
|
||||||
for c in $cvchk; do
|
for c in $cvchk; do
|
||||||
@@ -63,6 +62,13 @@ readkconfig()
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scankconfig()
|
||||||
|
{
|
||||||
|
for cbc in $cv; do
|
||||||
|
grep "$cbc" "$1" 1>>"$xbmktmp/cbcfg" 2>/dev/null || :
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
bootstrap()
|
bootstrap()
|
||||||
{
|
{
|
||||||
x_ ./mk -f coreboot ${cbdir##*/}
|
x_ ./mk -f coreboot ${cbdir##*/}
|
||||||
@@ -254,23 +260,12 @@ copy_tbfw()
|
|||||||
extract_fsp()
|
extract_fsp()
|
||||||
{
|
{
|
||||||
x_ python "$cbdir/3rdparty/fsp/Tools/SplitFspBin.py" split -f "$1" \
|
x_ python "$cbdir/3rdparty/fsp/Tools/SplitFspBin.py" split -f "$1" \
|
||||||
-o "$2" -n "Fsp.fd" && x_ cp "$appdir/"Fsp_*.fd "${_dest%/*}"
|
-o "${_dest%/*}" -n "Fsp.fd"
|
||||||
}
|
|
||||||
|
|
||||||
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"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inject()
|
inject()
|
||||||
{
|
{
|
||||||
need_files="n"
|
need_files="n"
|
||||||
xbmk_err="fail_inject"
|
|
||||||
remkdir "$tmpromdel"
|
remkdir "$tmpromdel"
|
||||||
|
|
||||||
set +u +e
|
set +u +e
|
||||||
|
|||||||
+16
-35
@@ -105,14 +105,6 @@ mk()
|
|||||||
done; :
|
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()
|
||||||
{
|
{
|
||||||
_setvars=""
|
_setvars=""
|
||||||
@@ -144,6 +136,13 @@ chkvars()
|
|||||||
done; :
|
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_()
|
fe_()
|
||||||
{
|
{
|
||||||
find_ex "x_" "$@"
|
find_ex "x_" "$@"
|
||||||
@@ -159,17 +158,21 @@ find_ex()
|
|||||||
xmsg="$1" && shift 1
|
xmsg="$1" && shift 1
|
||||||
fd="`mktemp`" && x_ rm -f "$fd" && x_ touch "$fd"
|
fd="`mktemp`" && x_ rm -f "$fd" && x_ touch "$fd"
|
||||||
xx="$1" && shift 1
|
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\""
|
err "!find $(echo "$@") > \"$fd\""
|
||||||
while read -r fx; do
|
dx_ "$xx" "$fd"
|
||||||
$xx "$fx" || break; :
|
|
||||||
done < "$fd"
|
|
||||||
x_ rm -f "$fd"
|
x_ rm -f "$fd"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dx_()
|
||||||
|
{
|
||||||
|
[ -f "$2" ] && while read -r fx; do
|
||||||
|
$1 "$fx"
|
||||||
|
done < "$2"; :
|
||||||
|
}
|
||||||
|
|
||||||
x_()
|
x_()
|
||||||
{
|
{
|
||||||
[ $# -lt 1 ] && printf "WARNING: x_ called without arguments\n" 1>&2
|
|
||||||
[ $# -lt 1 ] || [ -n "$1" ] || err "Empty first arg: x_ $(echo "$@")"
|
[ $# -lt 1 ] || [ -n "$1" ] || err "Empty first arg: x_ $(echo "$@")"
|
||||||
[ $# -lt 1 ] || "$@" || err "Unhandled error for: $(echo "$@")"; :
|
[ $# -lt 1 ] || "$@" || err "Unhandled error for: $(echo "$@")"; :
|
||||||
}
|
}
|
||||||
@@ -177,28 +180,6 @@ x_()
|
|||||||
err()
|
err()
|
||||||
{
|
{
|
||||||
set -u -e
|
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 || :
|
[ $# -lt 1 ] || printf "ERROR %s: %s\n" "$0" "$1" 1>&2 || :
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-11
@@ -192,9 +192,7 @@ mkseagrub()
|
|||||||
[ "$payload_grubsea" = "y" ] && pname="grub"
|
[ "$payload_grubsea" = "y" ] && pname="grub"
|
||||||
[ "$payload_grubsea" = "y" ] || \
|
[ "$payload_grubsea" = "y" ] || \
|
||||||
cbfs "$tmprom" "$grubdata/bootorder" bootorder raw
|
cbfs "$tmprom" "$grubdata/bootorder" bootorder raw
|
||||||
for keymap in config/data/grub/keymap/*.gkb; do
|
fe_ "cprom" "$grubdata/keymap" -type f -name "*.gkb"
|
||||||
[ -f "$keymap" ] && cprom "${keymap##*/}"; :
|
|
||||||
done; :
|
|
||||||
}
|
}
|
||||||
|
|
||||||
add_uboot()
|
add_uboot()
|
||||||
@@ -243,16 +241,25 @@ add_uboot()
|
|||||||
|
|
||||||
cprom()
|
cprom()
|
||||||
{
|
{
|
||||||
newrom="bin/$target/${pname}_${target}_$initmode.rom"
|
cpcmd="cp"
|
||||||
[ -n "$displaymode" ] && newrom="${newrom%.rom}_$displaymode.rom"
|
|
||||||
[ $# -gt 0 ] && [ "$1" != "seauboot" ] && \
|
|
||||||
newrom="${newrom%.rom}_${1%.gkb}.rom"
|
|
||||||
|
|
||||||
x_ mkdir -p "bin/$target"
|
tmpnew=""; newrom="bin/$target/${pname}_${target}_$initmode.rom"
|
||||||
x_ cp "$tmprom" "$newrom" && [ $# -gt 0 ] && [ "$1" != "seauboot" ] && \
|
[ -n "$displaymode" ] && newrom="${newrom%.rom}_$displaymode.rom"
|
||||||
cbfs "$newrom" "config/data/grub/keymap/$1" keymap.gkb raw
|
[ $# -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" ] && \
|
[ $# -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()
|
cbfs()
|
||||||
|
|||||||
@@ -370,10 +370,8 @@ check_defconfig()
|
|||||||
|
|
||||||
elfcheck()
|
elfcheck()
|
||||||
{
|
{
|
||||||
# TODO: very hacky check. do it properly (based on build.list)
|
# TODO: *STILL* very hacky check. do it properly (based on build.list)
|
||||||
for elftest in "$dest_dir"/*; do
|
( fx_ "exit 1" "$dest_dir" -type f ) || return 1; :
|
||||||
[ -e "$elftest" ] && e "$elftest" f && return 1
|
|
||||||
done; :
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handle_makefile()
|
handle_makefile()
|
||||||
|
|||||||
Reference in New Issue
Block a user