diff options
-rw-r--r-- | include/lib.sh | 35 | ||||
-rw-r--r-- | include/rom.sh | 11 | ||||
-rw-r--r-- | include/vendor.sh | 9 | ||||
-rwxr-xr-x | mk | 31 |
4 files changed, 41 insertions, 45 deletions
diff --git a/include/lib.sh b/include/lib.sh index e0c9b1a2..21066ecc 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -30,9 +30,6 @@ x_() { [ $# -lt 1 ] || "$@" || $err "Unhandled error for: $(echo "$@")"; : } -xbmkpwd="`pwd`" || $err "Cannot generate PWD" -export PWD="$xbmkpwd" - setvars() { _setvars="" && [ $# -lt 2 ] && $err "setvars: too few arguments" @@ -49,13 +46,6 @@ chkvars() done; : } -eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \ - datadir version relname`" - -for fv in version versiondate; do - eval "[ ! -f \".$fv\" ] || read -r $fv < \".$fv\" || :" -done - setcfg() { [ $# -gt 1 ] && printf "e \"%s\" f missing && return %s;\n" "$1" "$2" @@ -88,11 +78,25 @@ install_packages() [ -n "$aur_notice" ] && \ printf "You need AUR packages: %s\n" "$aur_notice" 1>&2; : } + +eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \ + datadir version relname xbmktmp`" + if [ $# -gt 0 ] && [ "$1" = "dependencies" ]; then install_packages "$@" || exit 1 exit 0 fi +id -u 1>/dev/null 2>/dev/null || $err "suid check failed (id -u)" +[ "$(id -u)" != "0" ] || $err "this command as root is not permitted" + +xbmkpwd="`pwd`" || $err "Cannot generate PWD" +export PWD="$xbmkpwd" + +for fv in version versiondate; do + eval "[ ! -f \".$fv\" ] || read -r $fv < \".$fv\" || :" +done + pyver="2" python="python3" command -v python3 1>/dev/null || python="python" @@ -109,9 +113,6 @@ if [ "${pyver%%.*}" != "3" ]; then exit 1 fi -id -u 1>/dev/null 2>/dev/null || $err "suid check failed (id -u)" -[ "$(id -u)" != "0" ] || $err "this command as root is not permitted" - # XBMK_CACHE is a directory, for caching downloads and git repositories [ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$xbmkpwd/cache" [ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache" @@ -127,6 +128,7 @@ if [ -z "${TMPDIR+x}" ]; then [ -f "lock" ] && $err "$xbmkpwd/lock exists. Is a build running?" export TMPDIR="/tmp" export TMPDIR="$(mktemp -d -t xbmk_XXXXXXXX)" + xbmktmp="$TMPDIR" touch lock || $err "cannot create 'lock' file" x_ rm -Rf "$XBMK_CACHE/xbmkpath" "$XBMK_CACHE/gnupath" x_ mkdir -p "$XBMK_CACHE/gnupath" "$XBMK_CACHE/xbmkpath" @@ -140,10 +142,11 @@ if [ -z "${TMPDIR+x}" ]; then xbmk_rval=0 ./mk "$@" || xbmk_rval=1 - rm -Rf "$TMPDIR" || xbmk_rval=1 + rm -Rf "$xbmktmp" || xbmk_rval=1 rm -f lock || xbmk_rval=1 exit $xbmk_rval fi +xbmktmp="$TMPDIR" # 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) @@ -197,9 +200,7 @@ mkrom_tarball() mktarball() { - if [ "${2%/*}" != "$2" ]; then - mkdir -p "${2%/*}" || $err "mk, !mkdir -p \"${2%/*}\"" - fi + [ "${2%/*}" = "$2" ] || x_ mkdir -p "${2%/*}" x_ tar -c "$1" | xz -T$XBMK_THREADS -9e > "$2" || $err "mktarball2, $1" } diff --git a/include/rom.sh b/include/rom.sh index 4ec473e5..710df853 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -12,7 +12,8 @@ mkserprog() [ "$1" = "pico" ] && mkpicotool - basename -as .h "$serdir/"*.h > "$TMPDIR/ser" || $err "!mk $1 $TMPDIR" + basename -as .h "$serdir/"*.h > "$xbmktmp/ser" || \ + $err "!mk $1 $xbmktmp" while read -r sertarget; do [ "$1" = "pico" ] && @@ -31,7 +32,7 @@ mkserprog() "$sersrc" BOARD=$sertarget x_ mkdir -p "bin/serprog_$1" x_ mv "$serx" "bin/serprog_$1/serprog_$sertarget.${serx##*.}" - done < "$TMPDIR/ser" + done < "$xbmktmp/ser" [ "$XBMK_RELEASE" = "y" ] && mkrom_tarball "bin/serprog_$1"; : } @@ -115,7 +116,7 @@ mkcorebootbin() { [ "$target" = "$tree" ] && return 0 - tmprom="$TMPDIR/coreboot.rom" + tmprom="$xbmktmp/coreboot.rom" $dry x_ cp "$srcdir/build/coreboot.rom" "$tmprom" initmode="${defconfig##*/}" @@ -201,8 +202,8 @@ add_grub() _grubname="fallback/payload" cbfs "$tmprom" "$grubelf" "$_grubname" printf "set grub_scan_disk=\"%s\"\n" "$grub_scan_disk" \ - > "$TMPDIR/tmpcfg" || $err "$target: !insert scandisk" - cbfs "$tmprom" "$TMPDIR/tmpcfg" scan.cfg raw + > "$xbmktmp/tmpcfg" || $err "$target: !insert scandisk" + cbfs "$tmprom" "$xbmktmp/tmpcfg" scan.cfg raw [ "$initmode" != "normal" ] && [ "$displaymode" != "txtmode" ] && \ cbfs "$tmprom" "$grubdata/background/background1280x800.png" \ "background.png" raw; : diff --git a/include/vendor.sh b/include/vendor.sh index 239b0e52..c4e57069 100644 --- a/include/vendor.sh +++ b/include/vendor.sh @@ -42,17 +42,16 @@ vendor_download() { [ $# -gt 0 ] || $err "No argument given" export PATH="$PATH:/sbin" - board="$1" - readcfg && readkconfig && bootstrap && getfiles; : + board="$1" && readcfg && readkconfig && bootstrap && getfiles; : } readkconfig() { - x_ rm -f "$TMPDIR/cbcfg" + x_ rm -f "$xbmktmp/cbcfg" cbcfg="`check_defconfig "$boarddir"`" || for cbc in $cv; do - grep "$cbc" "$cbcfg" 1>>"$TMPDIR/cbcfg" 2>/dev/null || : + grep "$cbc" "$cbcfg" 1>>"$xbmktmp/cbcfg" 2>/dev/null || : done - eval "`setcfg "$TMPDIR/cbcfg" 1`" + eval "`setcfg "$xbmktmp/cbcfg" 1`" for c in $cvchk; do eval "[ \"\${$c}\" = \"/dev/null\" ] && continue" @@ -175,7 +175,7 @@ trees() mkhelpercfg="$datadir/mkhelper.cfg" if e "$mkhelpercfg" f missing; then - mkhelpercfg="$TMPDIR/mkhelper.cfg" + mkhelpercfg="$xbmktmp/mkhelper.cfg" x_ touch "$mkhelpercfg" fi @@ -292,30 +292,26 @@ build_dependencies() check_project_hashes() { - x_ mkdir -p "$XBMK_CACHE/hash" - old_pjhash="" + old_pjhash="" && x_ mkdir -p "$XBMK_CACHE/hash" [ ! -f "$XBMK_CACHE/hash/$project$tree" ] || \ read -r old_pjhash < "$XBMK_CACHE/hash/$project$tree" - x_ rm -f "$TMPDIR/project.list" "$TMPDIR/project.hash" \ - "$TMPDIR/project.tmp" - x_ touch "$TMPDIR/project.tmp" - x_ touch "$TMPDIR/project.hash" + x_ rm -f "$xbmktmp/project.list" "$xbmktmp/project.hash" \ + "$xbmktmp/project.tmp" + x_ touch "$xbmktmp/project.tmp" "$xbmktmp/project.hash" for rmchk in "$datadir" "$configdir/$tree" "$mdir"; do - [ -d "$rmchk" ] || continue - find "$rmchk" -type f -not -path "*/.git*/*" >> \ - "$TMPDIR/project.tmp" || $err "!find $rmchk > project.tmp" + [ ! -d "$rmchk" ] || find "$rmchk" -type f -not -path \ + "*/.git*/*" >> "$xbmktmp/project.tmp" || $err "!fh $rmchk" done - sort "$TMPDIR/project.tmp" > "$TMPDIR/project.list" || \ - $err "!sort project tmp/list" + sort "$xbmktmp/project.tmp" > "$xbmktmp/project.list" || $err "!pj srt" while read -r rmchk; do [ ! -f "$rmchk" ] || x_ sha512sum "$rmchk" | awk \ - '{print $1}' >> "$TMPDIR/project.hash" || $err "!h $rmchk" - done < "$TMPDIR/project.list" + '{print $1}' >> "$xbmktmp/project.hash" || $err "!h $rmchk" + done < "$xbmktmp/project.list" - pjhash="$(sha512sum "$TMPDIR/project.hash" | awk '{print $1}')" || : + pjhash="$(sha512sum "$xbmktmp/project.hash" | awk '{print $1}')" || : [ "$pjhash" != "$old_pjhash" ] && badhash="y" [ -f "$XBMK_CACHE/hash/$project$tree" ] || badhash="y" @@ -390,9 +386,8 @@ check_gnu_path() rm -f "$XBMK_CACHE/gnupath/"* || $err "Cannot clear gnupath/" cd "$XBMK_CACHE/gnupath" || $err "Can't cd to gnupath/" for _gnubin in "$_gnudir/$2"*"-$_gnuver"; do - [ -e "$_gnubin" ] || continue - _gnuutil="${_gnubin##*/}" - x_ ln -s "$_gnubin" "${_gnuutil%"-$_gnuver"}" + _gnuutil="${_gnubin##*/}" && [ -e "$_gnubin" ] && \ + x_ ln -s "$_gnubin" "${_gnuutil%"-$_gnuver"}" done ) || $err "Cannot create $2-$_gnuver link in $_gnudir"; : } |