mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-09-19 21:20:31 +02:00
Compare commits
9 Commits
ff83f69154
...
a82328904e
| Author | SHA1 | Date | |
|---|---|---|---|
| a82328904e | |||
| 823a1fd011 | |||
| 5fb0d1098f | |||
| dcaa15ab01 | |||
| f5f6464c60 | |||
| 74c374a3a2 | |||
| de09b71e0a | |||
| eb23cd3de8 | |||
| 07ed4e940b |
@@ -1,17 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
. "include/lib.sh"
|
|
||||||
. "include/init.sh"
|
|
||||||
. "include/vendor.sh"
|
|
||||||
. "include/mrc.sh"
|
|
||||||
. "include/inject.sh"
|
|
||||||
. "include/rom.sh"
|
|
||||||
. "include/release.sh"
|
|
||||||
. "include/get.sh"
|
|
||||||
|
|
||||||
xbcommands=" \
|
|
||||||
version \
|
|
||||||
release \
|
|
||||||
download \
|
|
||||||
inject \
|
|
||||||
"
|
|
||||||
+18
-21
@@ -35,10 +35,8 @@ xbmk_init()
|
|||||||
export PWD="$xbmkpwd"
|
export PWD="$xbmkpwd"
|
||||||
x_ mkdir -p "$basetmp" "cache"
|
x_ mkdir -p "$basetmp" "cache"
|
||||||
|
|
||||||
for init_cmd in get_version set_env set_threads git_init child_exec; do
|
eval "$(printf "get_ver set_env set_threads git_init xchild\n" | awk \
|
||||||
xbmk_$init_cmd "$@" || \
|
'{ for (i=1; i<=NF; i++) $i = $i " \"$@\" || return 0;"; print }')"
|
||||||
break; :
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xbmkpkg()
|
xbmkpkg()
|
||||||
@@ -75,19 +73,19 @@ xbmkpkg()
|
|||||||
printf "You need AUR packages: %s\n" "$aur_notice" 1>&2; :
|
printf "You need AUR packages: %s\n" "$aur_notice" 1>&2; :
|
||||||
}
|
}
|
||||||
|
|
||||||
xbmk_get_version()
|
get_ver()
|
||||||
{
|
{
|
||||||
[ ! -f ".version" ] || \
|
[ ! -f ".version" ] || \
|
||||||
read -r version < ".version" || \
|
read -r version < ".version" || \
|
||||||
err "can't read version file" "xbmk_get_version" "$@"
|
err "can't read version file" "get_ver" "$@"
|
||||||
[ ! -f ".versiondate" ] || \
|
[ ! -f ".versiondate" ] || \
|
||||||
read -r versiondate < ".versiondate" || \
|
read -r versiondate < ".versiondate" || \
|
||||||
err "can't read versiondate" xbmk_get_version "$@"
|
err "can't read versiondate" get_ver "$@"
|
||||||
|
|
||||||
[ -f ".version" ] && [ -z "$version" ] && \
|
[ -f ".version" ] && [ -z "$version" ] && \
|
||||||
err "version not set" "xbmk_get_version" "$@"
|
err "version not set" "get_ver" "$@"
|
||||||
[ -f ".versiondate" ] && [ -z "$versiondate" ] && \
|
[ -f ".versiondate" ] && [ -z "$versiondate" ] && \
|
||||||
err "versiondate not set" "xbmk_get_version" "$@"
|
err "versiondate not set" "get_ver" "$@"
|
||||||
|
|
||||||
[ ! -e ".git" ] && [ ! -f ".version" ] && \
|
[ ! -e ".git" ] && [ ! -f ".version" ] && \
|
||||||
version="unknown"
|
version="unknown"
|
||||||
@@ -103,7 +101,7 @@ xbmk_get_version()
|
|||||||
# a parent instance will cause this function to return 0.
|
# a parent instance will cause this function to return 0.
|
||||||
# a child instance will return 1, skipping further initialisation
|
# a child instance will return 1, skipping further initialisation
|
||||||
# after this function is called.
|
# after this function is called.
|
||||||
xbmk_set_env()
|
set_env()
|
||||||
{
|
{
|
||||||
is_child="n"
|
is_child="n"
|
||||||
xbmkpath="$PATH"
|
xbmkpath="$PATH"
|
||||||
@@ -130,9 +128,9 @@ xbmk_child_set_env()
|
|||||||
xbmk_child_set_tmp
|
xbmk_child_set_tmp
|
||||||
|
|
||||||
[ -z "${XBMK_CACHE+x}" ] && \
|
[ -z "${XBMK_CACHE+x}" ] && \
|
||||||
err "XBMK_CACHE unset on child" "xbmk_set_env" "$@"
|
err "XBMK_CACHE unset on child" "set_env" "$@"
|
||||||
[ -z "${XBMK_THREADS+x}" ] && \
|
[ -z "${XBMK_THREADS+x}" ] && \
|
||||||
xbmk_set_threads
|
set_threads
|
||||||
[ -z "${XBMK_CACHE_MIRROR+x}" ] && \
|
[ -z "${XBMK_CACHE_MIRROR+x}" ] && \
|
||||||
xbmk_set_mirror; :
|
xbmk_set_mirror; :
|
||||||
}
|
}
|
||||||
@@ -162,7 +160,7 @@ xbmk_parent_set_env()
|
|||||||
xbmk_parent_check_tmp
|
xbmk_parent_check_tmp
|
||||||
|
|
||||||
printf "%s\n" "$xbtmp" > "$xbmklock" || \
|
printf "%s\n" "$xbtmp" > "$xbmklock" || \
|
||||||
err "cannot create '$xbmklock'" xbmk_set_env "$@"; :
|
err "cannot create '$xbmklock'" set_env "$@"; :
|
||||||
|
|
||||||
# not really critical for security, but it's a barrier
|
# not really critical for security, but it's a barrier
|
||||||
# against the user to make them think twice before deleting it
|
# against the user to make them think twice before deleting it
|
||||||
@@ -190,11 +188,10 @@ xbmk_parent_check_tmp()
|
|||||||
x_ touch "$xbmklist"
|
x_ touch "$xbmklist"
|
||||||
|
|
||||||
for xtmpdir in "$basetmp"/xbmk_*; do
|
for xtmpdir in "$basetmp"/xbmk_*; do
|
||||||
if [ -e "$xtmpdir" ]; then
|
[ ! -e "$xtmpdir" ] || \
|
||||||
printf "%s\n" "$xtmpdir" >> "$xbmklist" || \
|
printf "%s\n" "$xtmpdir" >> "$xbmklist" || \
|
||||||
err "can't write '$xtmpdir' to '$xbmklist'" \
|
err "can't write '$xtmpdir' to '$xbmklist'" \
|
||||||
"xbmk_parent_check_tmp" "$@"; :
|
"xbmk_parent_check_tmp" "$@"; :
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# set up a unified temporary directory, for common deletion later:
|
# set up a unified temporary directory, for common deletion later:
|
||||||
@@ -233,7 +230,7 @@ xbmk_parent_set_export()
|
|||||||
export XBMK_RELEASE="n"; :
|
export XBMK_RELEASE="n"; :
|
||||||
}
|
}
|
||||||
|
|
||||||
xbmk_set_threads()
|
set_threads()
|
||||||
{
|
{
|
||||||
[ -z "${XBMK_THREADS+x}" ] && \
|
[ -z "${XBMK_THREADS+x}" ] && \
|
||||||
export XBMK_THREADS=1
|
export XBMK_THREADS=1
|
||||||
@@ -352,18 +349,18 @@ xbmk_set_mirror()
|
|||||||
export XBMK_CACHE_MIRROR="n"; :
|
export XBMK_CACHE_MIRROR="n"; :
|
||||||
}
|
}
|
||||||
|
|
||||||
xbmk_git_init()
|
git_init()
|
||||||
{
|
{
|
||||||
# the git identity check is only needed for: ./mk -b coreboot [args]
|
# the git identity check is only needed for: ./mk -b coreboot [args]
|
||||||
[ "${2-}" = "-b" ] && [ "${3-}" = "coreboot" ] && \
|
[ "${2-}" = "-b" ] && [ "${3-}" = "coreboot" ] && \
|
||||||
for gitarg in "user.name" "user.email"; do
|
for gitarg in "user.name" "user.email"; do
|
||||||
git config --includes $gitarg 1>/dev/null 2>/dev/null || \
|
git config --includes $gitarg 1>/dev/null 2>/dev/null || \
|
||||||
err "Run this first: $gitcmd \"your ${gitcmd##*.}\"" \
|
err "Run this first: $gitcmd \"your ${gitcmd##*.}\"" \
|
||||||
"xbmk_git_init" "$@"; :
|
"git_init" "$@"; :
|
||||||
done
|
done
|
||||||
|
|
||||||
[ -L ".git" ] && \
|
[ -L ".git" ] && \
|
||||||
err "'$xbmkpwd/.git' is a symlink" "xbmk_git_init" "$@"
|
err "'$xbmkpwd/.git' is a symlink" "git_init" "$@"
|
||||||
[ -e ".git" ] && \
|
[ -e ".git" ] && \
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@@ -380,10 +377,10 @@ xbmk_git_init()
|
|||||||
tag -a "$version" -m "$projectname $version" \
|
tag -a "$version" -m "$projectname $version" \
|
||||||
1>/dev/null 2>/dev/null; :
|
1>/dev/null 2>/dev/null; :
|
||||||
|
|
||||||
) || err "Can't initialise workdir" xbmk_git_init "$@"; :
|
) || err "Can't initialise workdir" git_init "$@"; :
|
||||||
}
|
}
|
||||||
|
|
||||||
xbmk_child_exec()
|
xchild()
|
||||||
{
|
{
|
||||||
xbmk_rval=0
|
xbmk_rval=0
|
||||||
|
|
||||||
@@ -57,9 +57,8 @@ download()
|
|||||||
export PATH="$PATH:/sbin"
|
export PATH="$PATH:/sbin"
|
||||||
board="$1"
|
board="$1"
|
||||||
|
|
||||||
if check_target; then
|
check_target || return 0
|
||||||
readkconfig download
|
readkconfig download
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getfiles()
|
getfiles()
|
||||||
@@ -251,22 +250,19 @@ find_me()
|
|||||||
|
|
||||||
_7ztest="${_7ztest}a"
|
_7ztest="${_7ztest}a"
|
||||||
|
|
||||||
_keep="" # -k: keep fptr modules even if they can be removed
|
|
||||||
_pass="" # -p: skip fptr check
|
|
||||||
_r="-r" # re-locate modules
|
_r="-r" # re-locate modules
|
||||||
_trunc="-t" # -t: truncate the ME size
|
_trunc="-t" # -t: truncate the ME size
|
||||||
|
eval "`newvar _keep _pass`" # -k (keep fptr modules), -p (skip checks)
|
||||||
|
|
||||||
[ "$ME11bootguard" = "y" ] && \
|
[ "$ME11bootguard" = "y" ] && \
|
||||||
mfs="--whitelist MFS"
|
mfs="--whitelist MFS"
|
||||||
if [ "$MEclean" = "n" ]; then
|
if [ "$MEclean" = "n" ]; then
|
||||||
MEshrink="n"
|
MEshrink="n"
|
||||||
|
|
||||||
_keep="-k" # keep ME modules, don't delete anything
|
_keep="-k" # keep ME modules, don't delete anything
|
||||||
mfs="" # no MFS whitelist needed, due to -r:
|
mfs="" # no MFS whitelist needed, due to -r:
|
||||||
fi
|
fi
|
||||||
if [ "$MEclean" = "n" ] || [ "$MEshrink" != "y" ]; then
|
if [ "$MEclean" = "n" ] || [ "$MEshrink" != "y" ]; then
|
||||||
_r="" # don't re-locate ME modules
|
eval "`newvar _r _trunc`"
|
||||||
_trunc="" # don't shrink the me.bin file size
|
|
||||||
fi
|
fi
|
||||||
[ "$MEcheck" = "n" ] && \
|
[ "$MEcheck" = "n" ] && \
|
||||||
_pass="-p" # skip fptr check
|
_pass="-p" # skip fptr check
|
||||||
@@ -304,19 +300,12 @@ apply_deguard_hack()
|
|||||||
|
|
||||||
extract_archive()
|
extract_archive()
|
||||||
{
|
{
|
||||||
if innoextract "$1" -d "$2"; then
|
innoextract "$1" -d "$2" || \
|
||||||
:
|
python "$pfs_extract" "$1" -e || \
|
||||||
elif python "$pfs_extract" "$1" -e; then
|
7z x "$1" -o"$2" || \
|
||||||
:
|
"$bsdtar" -C "$2" -xf "$1" || \
|
||||||
elif 7z x "$1" -o"$2"; then
|
"$bsdunzip" "$1" -d "$2" || \
|
||||||
:
|
|
||||||
elif "$bsdtar" -C "$2" -xf "$1"; then
|
|
||||||
:
|
|
||||||
elif "$bsdunzip" "$1" -d "$2"; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
return 1
|
return 1
|
||||||
fi
|
|
||||||
|
|
||||||
[ -d "${_dl}_extracted" ] && \
|
[ -d "${_dl}_extracted" ] && \
|
||||||
x_ cp -R "${_dl}_extracted" "$2"; :
|
x_ cp -R "${_dl}_extracted" "$2"; :
|
||||||
@@ -338,24 +327,17 @@ extract_kbc1126ec_dump()
|
|||||||
{
|
{
|
||||||
x_ cd "$appdir/"
|
x_ cd "$appdir/"
|
||||||
|
|
||||||
if mv Rompaq/68*.BIN ec.bin; then
|
mv Rompaq/68*.BIN ec.bin || \
|
||||||
:
|
unar -D ROM.CAB Rom.bin || \
|
||||||
elif unar -D ROM.CAB Rom.bin; then
|
unar -D Rom.CAB Rom.bin || \
|
||||||
:
|
unar -D 68*.CAB Rom.bin || \
|
||||||
elif unar -D Rom.CAB Rom.bin; then
|
|
||||||
:
|
|
||||||
elif unar -D 68*.CAB Rom.bin; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
err "!kbc1126 unar" "extract_kbc1126ec" "$@"
|
err "!kbc1126 unar" "extract_kbc1126ec" "$@"
|
||||||
fi
|
|
||||||
|
|
||||||
[ ! -f "ec.bin" ] && \
|
[ ! -f "ec.bin" ] && \
|
||||||
x_ mv Rom.bin ec.bin
|
x_ mv Rom.bin ec.bin
|
||||||
|
|
||||||
if x_ e ec.bin f; then
|
x_ e ec.bin f
|
||||||
x_ "$kbc1126_ec_dump" ec.bin
|
x_ "$kbc1126_ec_dump" ec.bin
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extract_e6400vga()
|
extract_e6400vga()
|
||||||
@@ -376,6 +358,8 @@ extract_e6400vga()
|
|||||||
) || err "can't extract e6400 vga rom" "extract_e6400vga" "$@"
|
) || err "can't extract e6400 vga rom" "extract_e6400vga" "$@"
|
||||||
|
|
||||||
x_ cp "$appdir/$E6400_VGA_romname" "$_pre_dest"
|
x_ cp "$appdir/$E6400_VGA_romname" "$_pre_dest"
|
||||||
|
|
||||||
|
set -u -e
|
||||||
}
|
}
|
||||||
|
|
||||||
extract_sch5545ec()
|
extract_sch5545ec()
|
||||||
@@ -191,30 +191,6 @@ x_()
|
|||||||
"$@" || err "Unhandled error" "x_" "$@"
|
"$@" || err "Unhandled error" "x_" "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
xeq()
|
|
||||||
{
|
|
||||||
[ $# -lt 2 ] && \
|
|
||||||
err "no args" xeq
|
|
||||||
|
|
||||||
xbcmd="$1"
|
|
||||||
chk="$2"
|
|
||||||
shift 2
|
|
||||||
|
|
||||||
case "$chk" in
|
|
||||||
-*)
|
|
||||||
return 1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
for eq in "$@"; do
|
|
||||||
[ "$chk" = "$eq" ] && \
|
|
||||||
return 0; :
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
err "bad command" xeq "$xbcmd" "$chk" "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
xchk()
|
xchk()
|
||||||
{
|
{
|
||||||
if [ $# -lt 3 ]; then
|
if [ $# -lt 3 ]; then
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
eval "`printf "%s\n" "LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE \
|
eval "`printf "LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE \
|
||||||
LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE \
|
LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE \
|
||||||
LC_MEASUREMENT LC_IDENTIFICATION LC_ALL" | \
|
LC_MEASUREMENT LC_IDENTIFICATION LC_ALL\n" | \
|
||||||
awk '{ for (i=1; i<=NF; i++) $i = "export " $i "=C.UTF-8;"; print }'`"
|
awk '{ for (i=1; i<=NF; i++) $i = "export " $i "=C.UTF-8;"; print }'`"
|
||||||
|
|
||||||
(
|
(
|
||||||
@@ -23,21 +23,27 @@ commandv="`readlink -f "$xbarg0" 2>/dev/null`"
|
|||||||
|
|
||||||
cd "${commandv%/*}" || exit 1
|
cd "${commandv%/*}" || exit 1
|
||||||
|
|
||||||
. "include/common.sh"
|
. "include/lib.sh"
|
||||||
|
. "include/env/init.sh"
|
||||||
|
. "include/env/get.sh"
|
||||||
|
|
||||||
if xeq main "${1-}" \
|
. "include/fw/vendor.sh"
|
||||||
$xbcommands; then
|
. "include/fw/mrc.sh"
|
||||||
|
. "include/fw/inject.sh"
|
||||||
|
. "include/fw/rom.sh"
|
||||||
|
|
||||||
"$@" || exit 1
|
. "include/mk/tree.sh"
|
||||||
exit 0
|
. "include/mk/release.sh"
|
||||||
fi
|
|
||||||
|
|
||||||
. "include/tree.sh"
|
_f="${1-}"
|
||||||
|
shift 1 2>/dev/null || :
|
||||||
|
|
||||||
trees "$@" || exit 0
|
eval "$(printf "version release download inject\n" | awk '{ for (i=1; i<=NF; \
|
||||||
|
i++) $i = "[ \""$i"\" = \"$_f\" ] && x_ "$i" \"$@\" && exit 0;"; print }')"
|
||||||
|
|
||||||
|
trees "$_f" "$@" || exit 0
|
||||||
x_ touch "$mkhelpercfg"
|
x_ touch "$mkhelpercfg"
|
||||||
|
|
||||||
. "$mkhelpercfg"
|
. "$mkhelpercfg"
|
||||||
$cmd
|
$cmd
|
||||||
|
|
||||||
) || exit 1; :
|
) || exit 1; :
|
||||||
|
|||||||
Reference in New Issue
Block a user