mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-14 23:39:33 +02:00
quackboot (same idea as klompboot), from audit6
this is based directly on the audit6 final revision. same idea as klompboot. remove u-boot and arm support, remove pico-serprog, remove support for making release archives, and basically see how small the build system can possible get. quackboot *beats* the very first klompboot, at 790 lines, because klompboot 1 was just over 800 lines. klompboot 2 was 701 lines. vendor file logic is about 200 sloc so the next klompboot will be about 600 lines. this is the very first quackboot. Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
+4
-72
@@ -3,14 +3,12 @@
|
||||
# Copyright (c) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
|
||||
# Copyright (c) 2020-2024 Leah Rowe <leah@libreboot.org>
|
||||
|
||||
export LOCALVERSION="-quackboot-69"
|
||||
export LC_COLLATE=C
|
||||
export LC_ALL=C
|
||||
|
||||
_ua="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"
|
||||
kbnotice="Insert a .gkb file from config/data/grub/keymap/ as keymap.gkb \
|
||||
if you want a custom keymap in GRUB; use cbfstool from elf/cbfstool."
|
||||
|
||||
ifdtool="elf/ifdtool/default/ifdtool"
|
||||
cbfstool="elf/cbfstool/default/cbfstool"
|
||||
tmpgit="$PWD/tmp/gitclone"
|
||||
grubdata="config/data/grub"
|
||||
@@ -36,18 +34,12 @@ chkvars()
|
||||
done; return 0
|
||||
}
|
||||
|
||||
eval `setvars "" _nogit board xbmk_parent versiondate projectsite projectname \
|
||||
aur_notice configdir datadir version relname`
|
||||
|
||||
for fv in projectname projectsite version versiondate; do
|
||||
eval "[ ! -f "$fv" ] || read -r $fv < \"$fv\" || :"
|
||||
done; chkvars projectname projectsite
|
||||
eval `setvars "" board xbmk_parent aur_notice configdir datadir`
|
||||
|
||||
setcfg()
|
||||
{
|
||||
[ $# -gt 1 ] && printf "e \"%s\" f missing && return %s;\n" "$1" "$2"
|
||||
[ $# -gt 1 ] || \
|
||||
printf "e \"%s\" f not && %s \"Missing config\";\n" "$1" "$err"
|
||||
[ $# -gt 1 ] || printf "e \"%s\" f not && %s \"!f cfg\";\n" "$1" "$err"
|
||||
printf ". \"%s\" || %s \"Could not read config\";\n" "$1" "$err"
|
||||
}
|
||||
|
||||
@@ -96,11 +88,6 @@ fi
|
||||
[ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache"
|
||||
[ -f "$XBMK_CACHE" ] && $err "cachedir '$XBMK_CACHE' exists but it's 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 # user gave a non-integer
|
||||
@@ -109,24 +96,6 @@ x_() {
|
||||
[ $# -lt 1 ] || $@ || $err "Unhandled non-zero exit: $@"; return 0
|
||||
}
|
||||
|
||||
[ -e ".git" ] || [ -f "version" ] || printf "unknown\n" > version || \
|
||||
$err "Cannot generate unknown version file"
|
||||
[ -e ".git" ] || [ -f "versiondate" ] || printf "1716415872\n" > versiondate \
|
||||
|| $err "Cannot generate unknown versiondate file"
|
||||
|
||||
version_="$version"
|
||||
[ ! -e ".git" ] || version="$(git describe --tags HEAD 2>&1)" || \
|
||||
version="git-$(git rev-parse HEAD 2>&1)" || version="$version_"
|
||||
versiondate_="$versiondate"
|
||||
[ ! -e ".git" ] || versiondate="$(git show --no-patch --no-notes \
|
||||
--pretty='%ct' HEAD)" || versiondate="$versiondate_"
|
||||
for p in projectname version versiondate projectsite; do
|
||||
chkvars "$p"
|
||||
eval "x_ printf \"%s\\n\" \"\$$p\" > $p"
|
||||
done
|
||||
relname="$projectname-$version"
|
||||
export LOCALVERSION="-$projectname-${version%%-*}"
|
||||
|
||||
check_defconfig()
|
||||
{
|
||||
[ -d "$1" ] || $err "Target '$1' not defined."
|
||||
@@ -141,42 +110,6 @@ remkdir()
|
||||
mkdir -p "$1" || $err "remkdir: !mkdir -p \"$1\""
|
||||
}
|
||||
|
||||
mkrom_tarball()
|
||||
{
|
||||
printf "%s\n" "$version" > "$1/version" || $err "$1 !version"
|
||||
printf "%s\n" "$versiondate" > "$1/versiondate" || $err "$1 !vdate"
|
||||
printf "%s\n" "$projectname" > "$1/projectname" || $err "$1 !pname"
|
||||
|
||||
mktarball "$1" "${1%/*}/${relname}_${1##*/}.tar.xz"
|
||||
x_ rm -Rf "$1"
|
||||
}
|
||||
|
||||
mktarball()
|
||||
{
|
||||
[ "${2%/*}" = "$2" ] || \
|
||||
mkdir -p "${2%/*}" || $err "mk, !mkdir -p \"${2%/*}\""
|
||||
printf "\nCreating archive: %s\n\n" "$2"
|
||||
tar -c "$1" | xz -T$XBMK_THREADS -9e > "$2" || $err "mktarball 2, $1"
|
||||
mksha512sum "$2" "${2##*/}.sha512"
|
||||
}
|
||||
|
||||
mksha512sum()
|
||||
{
|
||||
(
|
||||
[ "${1%/*}" != "$1" ] && x_ cd "${1%/*}"
|
||||
sha512sum ./"${1##*/}" >> "$2" || $err "!sha512sum \"$1\" > \"$2\""
|
||||
) || $err "failed to create tarball checksum"
|
||||
}
|
||||
|
||||
rmgit()
|
||||
{
|
||||
(
|
||||
cd "$1" || $err "!cd gitrepo $1"
|
||||
find . -name ".git" -exec rm -Rf {} + || $err "!rm .git $1"
|
||||
find . -name ".gitmodules" -exec rm -Rf {} + || $err "!rm .gitmod $1"
|
||||
) || $err "Cannot remove .git/.gitmodules in $1"
|
||||
}
|
||||
|
||||
# return 0 if project is single-tree, otherwise 1
|
||||
# e.g. coreboot is multi-tree, so 1
|
||||
singletree()
|
||||
@@ -208,8 +141,7 @@ download()
|
||||
vendor_checksum()
|
||||
{
|
||||
[ "$(sha512sum "$2" | awk '{print $1}')" != "$1" ] || return 1
|
||||
printf "Bad checksum for file: %s\n" "$2" 1>&2
|
||||
rm -f "$2" || :
|
||||
printf "Bad checksum for file: %s\n" "$2" 1>&2; rm -f "$2" || :
|
||||
}
|
||||
|
||||
cbfs()
|
||||
|
||||
Reference in New Issue
Block a user