From 914852dd4086f54e24b865790b72920c76f70a18 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 26 May 2024 12:10:27 +0100 Subject: rename include/option.sh to include/lib.sh Signed-off-by: Leah Rowe --- build | 2 +- include/lib.sh | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ include/option.sh | 202 ------------------------------------------------------ script/roms | 2 +- script/trees | 2 +- 5 files changed, 205 insertions(+), 205 deletions(-) create mode 100755 include/lib.sh delete mode 100755 include/option.sh diff --git a/build b/build index 5ae62b23..2877a8fb 100755 --- a/build +++ b/build @@ -12,7 +12,7 @@ if [ "./${0##*/}" != "${0}" ] || [ ! -f "build" ] || [ -L "build" ]; then exit 1 fi -. "include/option.sh" +. "include/lib.sh" . "include/vendor.sh" . "include/mrc.sh" diff --git a/include/lib.sh b/include/lib.sh new file mode 100755 index 00000000..eff55511 --- /dev/null +++ b/include/lib.sh @@ -0,0 +1,202 @@ +# SPDX-License-Identifier: GPL-3.0-only +# Copyright (c) 2022 Caleb La Grange +# Copyright (c) 2022 Ferass El Hafidi +# Copyright (c) 2020-2024 Leah Rowe + +export LC_COLLATE=C +export LC_ALL=C + +tmpdir_was_set="y" +cbdir="src/coreboot/default" +cbcfgsdir="config/coreboot" +ifdtool="cbutils/default/ifdtool" +cbfstool="cbutils/default/cbfstool" +grubcfgsdir="config/grub" +layoutdir="/boot/grub/layouts" +. "$grubcfgsdir/modules.list" +tmpgit="$PWD/tmp/gitclone" +err="err_" + +err_() +{ + printf "ERROR %s: %s\n" "$0" "$1" 1>&2 + exit 1 +} + +setvars() +{ + _setvars="" + [ $# -lt 2 ] && $err "setvars: too few arguments" + val="$1" && shift 1 + for var in $@; do + _setvars="$var=\"$val\"; $_setvars" + done + printf "%s\n" "${_setvars% }" +} +eval "$(setvars "" xbmk_release tmpdir _nogit version board boarddir relname \ + versiondate threads projectname)" + +# 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) +set | grep XBMK_RELEASE 1>/dev/null 2>/dev/null || xbmk_release="n" || : +[ -z "$xbmk_release" ] && xbmk_release="$XBMK_RELEASE" +[ "$xbmk_release" = "n" ] || [ "$xbmk_release" = "y" ] || xbmk_release="n" +export XBMK_RELEASE="$xbmk_release" + +set | grep TMPDIR 1>/dev/null 2>/dev/null || tmpdir_was_set="n" +if [ "$tmpdir_was_set" = "y" ]; then + [ "${TMPDIR%_*}" = "/tmp/xbmk" ] || tmpdir_was_set="n" +fi +if [ "$tmpdir_was_set" = "n" ]; then + export TMPDIR="/tmp" + tmpdir="$(mktemp -d -t xbmk_XXXXXXXX)" + export TMPDIR="$tmpdir" +else + export TMPDIR="$TMPDIR" + tmpdir="$TMPDIR" +fi + +set | grep XBMK_THREADS 1>/dev/null 2>/dev/null && threads="$XBMK_THREADS" +[ -z "$threads" ] && threads=1 +expr "X$threads" : "X-\{0,1\}[0123456789][0123456789]*$" \ + 1>/dev/null 2>/dev/null || threads=1 # user specified a non-integer +export XBMK_THREADS="$threads" + +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" + +read -r projectname < projectname || : +[ ! -f version ] || read -r version < version || : +version_="$version" +[ ! -e ".git" ] || version="$(git describe --tags HEAD 2>&1)" || \ + version="git-$(git rev-parse HEAD 2>&1)" || version="$version_" +[ ! -f versiondate ] || read -r versiondate < versiondate || : +versiondate_="$versiondate" +[ ! -e ".git" ] || versiondate="$(git show --no-patch --no-notes \ + --pretty='%ct' HEAD)" || versiondate="$versiondate_" +for p in projectname version versiondate; do + eval "[ -n \"\$$p\" ] || $err \"$p unset\"" + eval "x_ printf \"%s\\n\" \"\$$p\" > $p" +done +relname="$projectname-$version" +export LOCALVERSION="-$projectname-${version%%-*}" + +items() +{ + rval=1 + e "$1" d not && return 1 + for x in "$1/"*; do + # -e used because this is for files *or* directories + [ -e "$x" ] || continue + [ "${x##*/}" = "build.list" ] && continue + printf "%s\n" "${x##*/}" 2>/dev/null + rval=0 + done + return $rval +} + +scan_config() +{ + awkstr=" /\{.*$1.*}{/ {flag=1;next} /\}/{flag=0} flag { print }" + confdir="$2" + revfile="$(mktemp -t sources.XXXXXXXXXX)" + cat "$confdir/"* > "$revfile" || $err "$confdir: can't cat files" + while read -r line ; do + set $line 1>/dev/null 2>/dev/null || : + if [ "${1%:}" = "depend" ]; then + depend="$depend $2" + else + eval "${1%:}=\"$2\"" + fi + done << EOF + $(eval "awk '$awkstr' \"$revfile\"") +EOF + rm -f "$revfile" || $err "scan_config: Cannot remove tmpfile" +} + +check_defconfig() +{ + [ -d "$1" ] || $err "Target '$1' not defined." + for x in "$1"/config/*; do + [ -f "$x" ] && printf "%s\n" "$x" && return 1 + done +} + +handle_coreboot_utils() +{ + for util in cbfstool ifdtool; do + x_ ./update trees $_f "src/coreboot/$1/util/$util" + [ -z "$mode" ] && [ ! -f "cbutils/$1/$util" ] && \ + x_ mkdir -p "cbutils/$1" && \ + x_ cp "src/coreboot/$1/util/$util/$util" "cbutils/$1" + [ -z "$mode" ] || x_ rm -Rf "cbutils/$1" + done +} + +remkdir() +{ + rm -Rf "$1" || $err "remkdir: !rm -Rf \"$1\"" + mkdir -p "$1" || $err "remkdir: !mkdir -p \"$1\"" +} + +git_err() +{ + printf "You need to set git name/email, like so:\n%s\n\n" "$1" 1>&2 + $err "Git name/email not configured" +} + +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$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" +} + +e() +{ + es_t="e" + [ $# -gt 1 ] && es_t="$2" + es2="" + estr="[ -$es_t \"\$1\" ] || return 1" + [ $# -gt 2 ] && estr="[ -$es_t \"\$1\" ] && return 1" && es2="not " + + eval "$estr" + printf "%s %sfound\n" "$1" "$es2" 1>&2 +} diff --git a/include/option.sh b/include/option.sh deleted file mode 100755 index eff55511..00000000 --- a/include/option.sh +++ /dev/null @@ -1,202 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-only -# Copyright (c) 2022 Caleb La Grange -# Copyright (c) 2022 Ferass El Hafidi -# Copyright (c) 2020-2024 Leah Rowe - -export LC_COLLATE=C -export LC_ALL=C - -tmpdir_was_set="y" -cbdir="src/coreboot/default" -cbcfgsdir="config/coreboot" -ifdtool="cbutils/default/ifdtool" -cbfstool="cbutils/default/cbfstool" -grubcfgsdir="config/grub" -layoutdir="/boot/grub/layouts" -. "$grubcfgsdir/modules.list" -tmpgit="$PWD/tmp/gitclone" -err="err_" - -err_() -{ - printf "ERROR %s: %s\n" "$0" "$1" 1>&2 - exit 1 -} - -setvars() -{ - _setvars="" - [ $# -lt 2 ] && $err "setvars: too few arguments" - val="$1" && shift 1 - for var in $@; do - _setvars="$var=\"$val\"; $_setvars" - done - printf "%s\n" "${_setvars% }" -} -eval "$(setvars "" xbmk_release tmpdir _nogit version board boarddir relname \ - versiondate threads projectname)" - -# 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) -set | grep XBMK_RELEASE 1>/dev/null 2>/dev/null || xbmk_release="n" || : -[ -z "$xbmk_release" ] && xbmk_release="$XBMK_RELEASE" -[ "$xbmk_release" = "n" ] || [ "$xbmk_release" = "y" ] || xbmk_release="n" -export XBMK_RELEASE="$xbmk_release" - -set | grep TMPDIR 1>/dev/null 2>/dev/null || tmpdir_was_set="n" -if [ "$tmpdir_was_set" = "y" ]; then - [ "${TMPDIR%_*}" = "/tmp/xbmk" ] || tmpdir_was_set="n" -fi -if [ "$tmpdir_was_set" = "n" ]; then - export TMPDIR="/tmp" - tmpdir="$(mktemp -d -t xbmk_XXXXXXXX)" - export TMPDIR="$tmpdir" -else - export TMPDIR="$TMPDIR" - tmpdir="$TMPDIR" -fi - -set | grep XBMK_THREADS 1>/dev/null 2>/dev/null && threads="$XBMK_THREADS" -[ -z "$threads" ] && threads=1 -expr "X$threads" : "X-\{0,1\}[0123456789][0123456789]*$" \ - 1>/dev/null 2>/dev/null || threads=1 # user specified a non-integer -export XBMK_THREADS="$threads" - -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" - -read -r projectname < projectname || : -[ ! -f version ] || read -r version < version || : -version_="$version" -[ ! -e ".git" ] || version="$(git describe --tags HEAD 2>&1)" || \ - version="git-$(git rev-parse HEAD 2>&1)" || version="$version_" -[ ! -f versiondate ] || read -r versiondate < versiondate || : -versiondate_="$versiondate" -[ ! -e ".git" ] || versiondate="$(git show --no-patch --no-notes \ - --pretty='%ct' HEAD)" || versiondate="$versiondate_" -for p in projectname version versiondate; do - eval "[ -n \"\$$p\" ] || $err \"$p unset\"" - eval "x_ printf \"%s\\n\" \"\$$p\" > $p" -done -relname="$projectname-$version" -export LOCALVERSION="-$projectname-${version%%-*}" - -items() -{ - rval=1 - e "$1" d not && return 1 - for x in "$1/"*; do - # -e used because this is for files *or* directories - [ -e "$x" ] || continue - [ "${x##*/}" = "build.list" ] && continue - printf "%s\n" "${x##*/}" 2>/dev/null - rval=0 - done - return $rval -} - -scan_config() -{ - awkstr=" /\{.*$1.*}{/ {flag=1;next} /\}/{flag=0} flag { print }" - confdir="$2" - revfile="$(mktemp -t sources.XXXXXXXXXX)" - cat "$confdir/"* > "$revfile" || $err "$confdir: can't cat files" - while read -r line ; do - set $line 1>/dev/null 2>/dev/null || : - if [ "${1%:}" = "depend" ]; then - depend="$depend $2" - else - eval "${1%:}=\"$2\"" - fi - done << EOF - $(eval "awk '$awkstr' \"$revfile\"") -EOF - rm -f "$revfile" || $err "scan_config: Cannot remove tmpfile" -} - -check_defconfig() -{ - [ -d "$1" ] || $err "Target '$1' not defined." - for x in "$1"/config/*; do - [ -f "$x" ] && printf "%s\n" "$x" && return 1 - done -} - -handle_coreboot_utils() -{ - for util in cbfstool ifdtool; do - x_ ./update trees $_f "src/coreboot/$1/util/$util" - [ -z "$mode" ] && [ ! -f "cbutils/$1/$util" ] && \ - x_ mkdir -p "cbutils/$1" && \ - x_ cp "src/coreboot/$1/util/$util/$util" "cbutils/$1" - [ -z "$mode" ] || x_ rm -Rf "cbutils/$1" - done -} - -remkdir() -{ - rm -Rf "$1" || $err "remkdir: !rm -Rf \"$1\"" - mkdir -p "$1" || $err "remkdir: !mkdir -p \"$1\"" -} - -git_err() -{ - printf "You need to set git name/email, like so:\n%s\n\n" "$1" 1>&2 - $err "Git name/email not configured" -} - -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$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" -} - -e() -{ - es_t="e" - [ $# -gt 1 ] && es_t="$2" - es2="" - estr="[ -$es_t \"\$1\" ] || return 1" - [ $# -gt 2 ] && estr="[ -$es_t \"\$1\" ] && return 1" && es2="not " - - eval "$estr" - printf "%s %sfound\n" "$1" "$es2" 1>&2 -} diff --git a/script/roms b/script/roms index e3f3853c..3ca0de20 100755 --- a/script/roms +++ b/script/roms @@ -8,7 +8,7 @@ set -u -e -. "include/option.sh" +. "include/lib.sh" seavgabiosrom="elf/seabios/default/libgfxinit/vgabios.bin" grub_background="background1280x800.png" diff --git a/script/trees b/script/trees index 1c2a3843..6eeac8f1 100755 --- a/script/trees +++ b/script/trees @@ -6,7 +6,7 @@ set -u -e -. "include/option.sh" +. "include/lib.sh" . "include/git.sh" eval "$(setvars "" xarch cfgsdir cdir config config_name xlang mode makeargs \ -- cgit v1.2.1