summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-05-25 21:54:59 +0100
committerLeah Rowe <leah@libreboot.org>2023-05-27 08:10:50 +0100
commita4ea2867319471d9fe7d4ee540881e0286b4d3cf (patch)
tree208e9c462ceab67c30c8a51885e7032fd12f4283
parent2be1a8ea76cc33be4ec359155d2276046f1007a6 (diff)
Remove most of Ferass's lbmk contributions
The primary purpose of my intense auditing has been to improve lbmk's coding style and fix bugs but there is a secondary purpose: know precisely who owns what, because I want to re-license as much as possible of lbmk under *MIT*, instead of the current GNU licensing. MIT is vastly superior, because it grants *actual* freedom to the user, permits *sublicensing* and it is vastly more compatible with other GPL combinations; for example, MIT license is compatible with GPL2-only whereas lbmk's current mix of GPLv3-or-later and GPLv3-only is legally incompatible with GPLv2-only. Re-licensing under MIT will most likely result in more contributions to Libreboot's build system in the future, especially as it will attract a lot more commercial interest. Contrary to the popular arguments, copyleft is a liability to the free software movement and results in less code being written; in practise, permissively licensed code gets more public contributions, including from commercial entities, even if companies can theoretically make something proprietary out of it (in practise, anyone inclined can just use the upstream and proprietary forks almost always die). Copyleft propaganda is fundamentally flawed. See: <https://unixsheikh.com/articles/the-problems-with-the-gpl.html> Anyway, I've been doing a combination of: * Seeking permission from other copyright holders, for re-licensing * Deleting, or moving, other contributions; for example, splitting certain contributions into separate files so that originally modified files become unencumbered. This latter solution is a result of *code cleanup* arising from the audit. For Ferass's contributions, I opted to seek *permission*, and permission was denied. In full compliance with this legal imperative, I'm acting accordingly; this commit removes all of Ferass's changes that converted lbmk to posix shell scripts, thus removing his copyright on the affected files, bypassing his authority entirely. Therefore, lbmk is largely now bash-dependent. In practise, nobody is going to use anything other than a GNU system to build Libreboot, because many projects that Libreboot makes use of rely heavily on GNU; for example, coreboot's build system makes heavy use of GNU-specific extensions in *GNU Make*, and likely contains many bashisms. Of course, Libreboot also compiles GNU GRUB. I would much rather have MIT-licensed Bash scripts than GPL-licensed posix SCL scripts. This reverts the changes from Ferass El Hafidi, for the following commits, with some exceptions: * 7f5dfebf7d37c56d9c7993aaa17c59070cb5aec9 * f787044642236917c9c4dbcaa48a6b0648097db0 Exception: download/mrc not reverted, because that was already a fork of an existing script under coreboot's build system, and their script was GPLv2. i cannot/will not re-license this file (ergo, 7f5dfebf7d37c56d9c7993aaa17c59070cb5aec9 change remains intact, on this file) resources/scripts/build/boot/roms_helper, these changes have been kept: * 7e6691e9 - Add ARMv7 and AArch64 support * dec2d720 - add myself in the build/roms_helper script (added 2021 copyright for the change below) * b7405656 - Workaround for grub's slow boot ^ these changes will be re-factored, splitting them out of the file into a new file. This will be done in a future lbmk revision. (in some cases, it makes sense to keep a change but split it, allowing the main file to be re-licensed without the change in it) This is part of a much larger series of licensing audits. It's likely that lbmk will be posix-compliant (in its shell scripts) again some day, because I'm planning to rewrite most of these scripts (the ones modified in this patch), and many of them (e.g. individual download scripts) are subject to future deletion in a planned overhaul of the download logic for third party projects. In addition: these changes are being kept (no attempt to re-license them will be made): * cff081c6 - Fix grub's slow boot (1 year, 5 months ago) <Vitali64> * 4c851889 - Add macbook*1 16mb configs (1 year, 6 months ago) <Vitali64> Ferass's work that remains will be split into dedicated files containing them, where feasible. In the case of grub.cfg (for GNU GRUB), I don't care because it's a script for an engine (GRUB shell) that's under GPL anyway, so who really cares about MIT license. Signed-off-by: Leah Rowe <leah@libreboot.org>
-rw-r--r--Makefile13
-rwxr-xr-xblobutil2
-rwxr-xr-xbuild2
-rwxr-xr-xdownload2
-rwxr-xr-xgitclone7
-rwxr-xr-xmodify2
-rwxr-xr-xresources/scripts/blobs/download27
-rwxr-xr-xresources/scripts/blobs/extract2
-rwxr-xr-xresources/scripts/blobs/inject7
-rwxr-xr-xresources/scripts/build/boot/roms15
-rwxr-xr-xresources/scripts/build/boot/roms_helper26
-rwxr-xr-xresources/scripts/build/clean/cbutils6
-rwxr-xr-xresources/scripts/build/clean/crossgcc4
-rwxr-xr-xresources/scripts/build/clean/flashrom4
-rwxr-xr-xresources/scripts/build/clean/grub2
-rwxr-xr-xresources/scripts/build/clean/ich9utils2
-rwxr-xr-xresources/scripts/build/clean/memtest86plus2
-rwxr-xr-xresources/scripts/build/clean/payloads2
-rwxr-xr-xresources/scripts/build/clean/rom_images2
-rwxr-xr-xresources/scripts/build/clean/seabios2
-rwxr-xr-xresources/scripts/build/clean/u-boot2
-rw-r--r--resources/scripts/build/dependencies/arch2
-rwxr-xr-xresources/scripts/build/dependencies/debian2
-rwxr-xr-xresources/scripts/build/dependencies/fedora382
-rwxr-xr-xresources/scripts/build/dependencies/parabola2
-rwxr-xr-xresources/scripts/build/dependencies/ubuntu20042
-rwxr-xr-xresources/scripts/build/dependencies/void2
-rwxr-xr-xresources/scripts/build/descriptors/ich9m2
-rwxr-xr-xresources/scripts/build/module/cbutils6
-rwxr-xr-xresources/scripts/build/module/flashrom2
-rwxr-xr-xresources/scripts/build/module/grub2
-rwxr-xr-xresources/scripts/build/module/ich9utils2
-rwxr-xr-xresources/scripts/build/module/memtest86plus2
-rwxr-xr-xresources/scripts/build/payload/grub4
-rwxr-xr-xresources/scripts/build/payload/seabios7
-rwxr-xr-xresources/scripts/build/payload/u-boot10
-rwxr-xr-xresources/scripts/build/release/roms2
-rwxr-xr-xresources/scripts/build/release/src2
-rwxr-xr-xresources/scripts/download/coreboot5
-rwxr-xr-xresources/scripts/download/flashrom2
-rwxr-xr-xresources/scripts/download/grub2
-rwxr-xr-xresources/scripts/download/me_cleaner2
-rwxr-xr-xresources/scripts/download/memtest86plus2
-rwxr-xr-xresources/scripts/download/seabios2
-rwxr-xr-xresources/scripts/download/u-boot11
-rwxr-xr-xresources/scripts/misc/versioncheck2
-rwxr-xr-xresources/scripts/modify/coreboot/configs5
-rwxr-xr-xresources/scripts/modify/seabios/configs2
-rwxr-xr-xresources/scripts/modify/u-boot/configs5
-rwxr-xr-xresources/scripts/update/coreboot/configs5
-rwxr-xr-xresources/scripts/update/u-boot/configs4
-rwxr-xr-xupdate2
52 files changed, 105 insertions, 132 deletions
diff --git a/Makefile b/Makefile
index e4fbb0d..bb60bc9 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,6 @@
# https://libreboot.org/docs/build/
#
# Copyright (C) 2020, 2021, 2023 Leah Rowe <info@minifree.org>
-# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,13 +22,11 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-.POSIX:
-
-#.PHONY: all check download modules ich9m-descriptors payloads roms release \
-# clean crossgcc-clean install-dependencies-ubuntu \
-# install-dependencies-debian install-dependencies-arch \
-# install-dependencies-void install-dependencies-fedora38 \
-# install-dependencies-parabola
+.PHONY: all check download modules ich9m-descriptors payloads roms release \
+ clean crossgcc-clean install-dependencies-ubuntu \
+ install-dependencies-debian install-dependencies-arch \
+ install-dependencies-void install-dependencies-fedora38 \
+ install-dependencies-parabola
all: roms
diff --git a/blobutil b/blobutil
index 0097cd2..2a14bb0 100755
--- a/blobutil
+++ b/blobutil
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
# SPDX-License-Identifier: GPL-3.0-only
diff --git a/build b/build
index d439269..8c65cb3 100755
--- a/build
+++ b/build
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# generic build script, for building components (all of them)
#
diff --git a/download b/download
index 27bc5f6..e2dbfc9 100755
--- a/download
+++ b/download
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# Generic script for downloading programs used by the build system
#
diff --git a/gitclone b/gitclone
index 70b4e7f..4f811b3 100755
--- a/gitclone
+++ b/gitclone
@@ -1,7 +1,6 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
-# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
# SPDX-License-Identifier: GPL-3.0-only
@@ -48,9 +47,7 @@ read_config()
bkup_url=${2}
;;
esac
- done << EOF
- $(eval "awk '${awkstr}' resources/git/revisions")
-EOF
+ done <<< $(eval "awk '${awkstr}' resources/git/revisions")
}
verify_config()
diff --git a/modify b/modify
index f80d3c9..b397620 100755
--- a/modify
+++ b/modify
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# generic scripts for modifying configs and such
#
diff --git a/resources/scripts/blobs/download b/resources/scripts/blobs/download
index 7c775ea..57bdfe6 100755
--- a/resources/scripts/blobs/download
+++ b/resources/scripts/blobs/download
@@ -1,7 +1,6 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
-# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# SPDX-FileCopyrightText: 2023 Leah Rowe <info@minifree.org>
# SPDX-License-Identifier: GPL-3.0-only
@@ -64,23 +63,23 @@ detect_firmware()
. "${boarddir}/board.cfg"
if [ "${CONFIG_HAVE_MRC}" = "y" ]; then
- needs="${needs} MRC"
+ needs+=" MRC"
fi
if [ "${CONFIG_HAVE_IFD_BIN}" = "y" ]; then
- needs="${needs} IFD"
+ needs+=" IFD"
fi
if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then
- needs="${needs} ME"
+ needs+=" ME"
fi
if [ "${CONFIG_HAVE_GBE_BIN}" = "y" ]; then
- needs="${needs} GBE"
+ needs+=" GBE"
fi
if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then
- needs="${needs} EC"
+ needs+=" EC"
fi
if [ "${CONFIG_BOARD_DELL_E6400}" = "y" ] \
&& [ "${CONFIG_VGA_BIOS_FILE}" != "" ]; then
- needs="${needs} E6400VGA"
+ needs+=" E6400VGA"
fi
if [ -z ${needs+x} ]; then
printf 'No binary blobs needed for this board\n'
@@ -143,9 +142,7 @@ scan_sources_config()
e6400_vga_romname=${2}
;;
esac
- done << EOF
- $(eval "awk '${awkstr}' resources/blobs/sources")
-EOF
+ done <<< $(eval "awk '${awkstr}' resources/blobs/sources")
}
build_dependencies()
@@ -181,16 +178,16 @@ download_blobs()
for need in ${needs}; do
case ${need} in
*ME*)
- download_blob_intel_me || _failed="${_failed} me"
+ download_blob_intel_me || _failed+=" me"
;;
*EC*)
- download_ec || _failed="${_failed} ec"
+ download_ec || _failed+=" ec"
;;
*E6400VGA*)
- download_e6400vga || _failed="${_failed} e6400vga"
+ download_e6400vga || _failed+=" e6400vga"
;;
*MRC*)
- ./download mrc || _failed="${_failed} mrc"
+ ./download mrc || _failed+=" mrc"
;;
esac
done
diff --git a/resources/scripts/blobs/extract b/resources/scripts/blobs/extract
index b32ec0e..8e9c74e 100755
--- a/resources/scripts/blobs/extract
+++ b/resources/scripts/blobs/extract
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# script to automate extracting blobs from an existing vendor bios
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject
index ca8aae4..51f6725 100755
--- a/resources/scripts/blobs/inject
+++ b/resources/scripts/blobs/inject
@@ -1,7 +1,6 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
-# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# SPDX-FileCopyrightText: 2023 Leah Rowe <info@minifree.org>
# SPDX-License-Identifier: GPL-3.0-only
@@ -112,10 +111,10 @@ detect_board()
filename=$(basename ${path})
case ${filename} in
grub_*)
- board=$(echo "${filename}" | cut -d '_' -f2-3)
+ board=$(cut -d '_' -f2-3 <<<${filename})
;;
seabios_withgrub_*)
- board=$(echo "${filename}" | cut -d '_' -f3-4)
+ board=$(cut -d '_' -f3-4 <<<${filename})
;;
*.tar.xz)
_stripped_prefix=${filename#*_}
diff --git a/resources/scripts/build/boot/roms b/resources/scripts/build/boot/roms
index f039827..07f92a8 100755
--- a/resources/scripts/build/boot/roms
+++ b/resources/scripts/build/boot/roms
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
#
# helper script: build coreboot images with various payloads
@@ -7,7 +7,6 @@
# <info@minifree.org>
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
# Copyright (C) 2022 Caleb La Grange <thonkpeasant@protonmail.com>
-# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -31,7 +30,7 @@ set -u -e
projectname="$(cat projectname)"
opts=""
-boards=
+boards=""
firstoption="${1}"
main()
@@ -50,19 +49,19 @@ main()
exit 0
fi
- while [ $# -gt 0 ]; do
+ while [[ $# > 0 ]]; do
case ${1} in
-d)
- opts="${opts} -d ${2}"
+ opts+=" -d ${2}"
shift ;;
-p)
- opts="${opts} -p ${2}"
+ opts+=" -p ${2}"
shift ;;
-k)
- opts="${opts} -k ${2}"
+ opts+=" -k ${2}"
shift ;;
*)
- boards="${boards} ${1} " ;;
+ boards+=" ${1} " ;;
esac
shift
done
diff --git a/resources/scripts/build/boot/roms_helper b/resources/scripts/build/boot/roms_helper
index 02d8f61..c5cb5df 100755
--- a/resources/scripts/build/boot/roms_helper
+++ b/resources/scripts/build/boot/roms_helper
@@ -1,10 +1,9 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: create ROM images for a given mainboard
#
# Copyright (C) 2020,2021,2023 Leah Rowe <info@minifree.org>
-# Copyright (C) 2021,2022 Ferass El Hafidi
-# <vitali64pmemail@protonmail.com>
+# Copyright (C) 2021 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# Copyright (C) 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
#
@@ -64,16 +63,16 @@ CROSS_COMPILE=""
main()
{
- while [ $# -gt 0 ]; do
+ while [[ $# > 0 ]]; do
case ${1} in
-d)
- displaymodes="${displaymodes}${2}"
+ displaymodes+="${2}"
shift ;;
-p)
- payloads="${payloads}${2}"
+ payloads+="${2}"
shift ;;
-k)
- keyboard_layouts="${keyboard_layouts}${2}"
+ keyboard_layouts+="${2}"
shift ;;
*)
board=${1} ;;
@@ -108,7 +107,7 @@ load_config()
exit 1
fi
- . "${boardcfgdir}/board.cfg"
+ source "${boardcfgdir}/board.cfg"
if [ "${board}" != "${cbtree}" ]; then
cbdir="coreboot/${cbtree}"
@@ -555,11 +554,11 @@ mkRomsWithGrub()
keymaps=""
if [ -z ${keyboard_layouts} ]; then
for kmapfile in "${kmapdir}"/*; do
- keymaps="${keymaps} ${kmapfile}"
+ keymaps+=" ${kmapfile}"
done
else
for keymapname in ${keyboard_layouts}; do
- keymaps="${keymaps} ${kmapdir}/${keymapname}.gkb"
+ keymaps+=" ${kmapdir}/${keymapname}.gkb"
done
fi
for keymapfile in ${keymaps}; do
@@ -695,11 +694,10 @@ moverom()
if [ "${cuttype}" = "i945 laptop" ]; then
dd if=${_newrom} of=top64k.bin bs=1 \
- skip=$(($(stat -c %s ${_newrom}) - 0x10000)) \
+ skip=$[$(stat -c %s ${_newrom}) - 0x10000] \
count=64k
- dd if=top64k.bin of=${_newrom} bs=1 \
- seek=$(($(stat -c %s ${_newrom}) - 0x20000)) \
- count=64k conv=notrunc
+ dd if=top64k.bin of=${_newrom} bs=1 seek=$[$(stat -c %s \
+ ${_newrom}) - 0x20000] count=64k conv=notrunc
rm -f top64k.bin
return 0
fi
diff --git a/resources/scripts/build/clean/cbutils b/resources/scripts/build/clean/cbutils
index 0c0df0d..2aff915 100755
--- a/resources/scripts/build/clean/cbutils
+++ b/resources/scripts/build/clean/cbutils
@@ -1,9 +1,9 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: clean the dependencies that were built in coreboot
#
# Copyright (C) 2014, 2015, 2016, 2020 Leah Rowe <info@minifree.org>
-# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
+# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -38,7 +38,7 @@ for board in coreboot/*; do
make -C "${board}/" distclean
# Clean its utilities as well
- for util in cbfstool ifdtool nvramtool cbmem; do
+ for util in {cbfs,ifd,nvram}tool cbmem; do
make -C "${board}/util/${util}/" clean
done
make -C "${board}/payloads/libpayload/" distclean
diff --git a/resources/scripts/build/clean/crossgcc b/resources/scripts/build/clean/crossgcc
index 6c09c87..7dcbf4a 100755
--- a/resources/scripts/build/clean/crossgcc
+++ b/resources/scripts/build/clean/crossgcc
@@ -1,9 +1,9 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: clean the crossgcc builds
#
# Copyright (C) 2014-2016, 2020, 2023 Leah Rowe <info@minifree.org>
-# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
+# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/resources/scripts/build/clean/flashrom b/resources/scripts/build/clean/flashrom
index 744052f..516a8d8 100755
--- a/resources/scripts/build/clean/flashrom
+++ b/resources/scripts/build/clean/flashrom
@@ -1,9 +1,9 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: clean the dependencies that were built in flashrom
#
# Copyright (C) 2014, 2015 Leah Rowe <info@minifree.org>
-# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
+# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/resources/scripts/build/clean/grub b/resources/scripts/build/clean/grub
index dea2c2d..4330dfc 100755
--- a/resources/scripts/build/clean/grub
+++ b/resources/scripts/build/clean/grub
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: clean the dependencies that were built in GRUB
#
diff --git a/resources/scripts/build/clean/ich9utils b/resources/scripts/build/clean/ich9utils
index 38ad439..35b9dc4 100755
--- a/resources/scripts/build/clean/ich9utils
+++ b/resources/scripts/build/clean/ich9utils
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: clean the previous build of ich9utils
#
diff --git a/resources/scripts/build/clean/memtest86plus b/resources/scripts/build/clean/memtest86plus
index 807b20a..e4d7b20 100755
--- a/resources/scripts/build/clean/memtest86plus
+++ b/resources/scripts/build/clean/memtest86plus
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: clean the dependencies that were built in memtest86+
#
diff --git a/resources/scripts/build/clean/payloads b/resources/scripts/build/clean/payloads
index 4d77b9e..f4dab88 100755
--- a/resources/scripts/build/clean/payloads
+++ b/resources/scripts/build/clean/payloads
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: nothing to see here, forks!
#
diff --git a/resources/scripts/build/clean/rom_images b/resources/scripts/build/clean/rom_images
index cd41d49..cac6922 100755
--- a/resources/scripts/build/clean/rom_images
+++ b/resources/scripts/build/clean/rom_images
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: delete the ROM images
#
diff --git a/resources/scripts/build/clean/seabios b/resources/scripts/build/clean/seabios
index 0757db9..6362a31 100755
--- a/resources/scripts/build/clean/seabios
+++ b/resources/scripts/build/clean/seabios
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: clean the dependencies that were built in seabios
#
diff --git a/resources/scripts/build/clean/u-boot b/resources/scripts/build/clean/u-boot
index 6a59a5c..5d9a324 100755
--- a/resources/scripts/build/clean/u-boot
+++ b/resources/scripts/build/clean/u-boot
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: clean the u-boot builds
#
diff --git a/resources/scripts/build/dependencies/arch b/resources/scripts/build/dependencies/arch
index c20a1fa..9121019 100644
--- a/resources/scripts/build/dependencies/arch
+++ b/resources/scripts/build/dependencies/arch
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# arch script: installs build dependencies for Arch Linux
#
diff --git a/resources/scripts/build/dependencies/debian b/resources/scripts/build/dependencies/debian
index fb0ae24..789ee74 100755
--- a/resources/scripts/build/dependencies/debian
+++ b/resources/scripts/build/dependencies/debian
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# ubuntu2004 script: installs build dependencies for Ubuntu 20.04
#
diff --git a/resources/scripts/build/dependencies/fedora38 b/resources/scripts/build/dependencies/fedora38
index 2389b80..396300e 100755
--- a/resources/scripts/build/dependencies/fedora38
+++ b/resources/scripts/build/dependencies/fedora38
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# Fedora script: installs build dependencies for Fedora
#
diff --git a/resources/scripts/build/dependencies/parabola b/resources/scripts/build/dependencies/parabola
index da284be..c841c7c 100755
--- a/resources/scripts/build/dependencies/parabola
+++ b/resources/scripts/build/dependencies/parabola
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# parabola script: installs build dependencies for Parabola GNU/Linux-libre
# based on the arch script
diff --git a/resources/scripts/build/dependencies/ubuntu2004 b/resources/scripts/build/dependencies/ubuntu2004
index 14a1d8c..dda88fd 100755
--- a/resources/scripts/build/dependencies/ubuntu2004
+++ b/resources/scripts/build/dependencies/ubuntu2004
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# ubuntu2004 script: installs build dependencies for Ubuntu 20.04
#
diff --git a/resources/scripts/build/dependencies/void b/resources/scripts/build/dependencies/void
index e46cd5e..bbd00a1 100755
--- a/resources/scripts/build/dependencies/void
+++ b/resources/scripts/build/dependencies/void
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# void script: installs build dependencies for Void Linux
#
diff --git a/resources/scripts/build/descriptors/ich9m b/resources/scripts/build/descriptors/ich9m
index b9a077d..35cc957 100755
--- a/resources/scripts/build/descriptors/ich9m
+++ b/resources/scripts/build/descriptors/ich9m
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# Copyright (C) 2020, 2023 Leah Rowe <info@minifree.org>
#
diff --git a/resources/scripts/build/module/cbutils b/resources/scripts/build/module/cbutils
index b362ee7..526467b 100755
--- a/resources/scripts/build/module/cbutils
+++ b/resources/scripts/build/module/cbutils
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: build various coreboot utilities
#
@@ -44,7 +44,7 @@ build_for_mainboard() {
[ ! -f "resources/coreboot/${board}/board.cfg" ] && \
continue
cbtree="undefined"
- . "resources/coreboot/${board}/board.cfg" # source
+ source "resources/coreboot/${board}/board.cfg" # source
if [ "${cbtree}" = "undefined" ]; then
printf "build/cbutils: improper cbtree definition for '%s'" \
"${board}"
@@ -58,7 +58,7 @@ buildutils() {
if [ ! -d "coreboot/${cbtree}/" ]; then
./download coreboot $cbtree || return 1
fi
- for util in cbfstool ifdtool; do
+ for util in {cbfs,ifd}tool; do
make -j$(nproc) -BC "coreboot/${cbtree}/util/${util}/" \
|| return 1
done
diff --git a/resources/scripts/build/module/flashrom b/resources/scripts/build/module/flashrom
index 37f57ce..c1641d9 100755
--- a/resources/scripts/build/module/flashrom
+++ b/resources/scripts/build/module/flashrom
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: builds flashrom source code
#
diff --git a/resources/scripts/build/module/grub b/resources/scripts/build/module/grub
index 5cf58a6..4d2009e 100755
--- a/resources/scripts/build/module/grub
+++ b/resources/scripts/build/module/grub
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: builds GRUB2 source code
#
diff --git a/resources/scripts/build/module/ich9utils b/resources/scripts/build/module/ich9utils
index 5473a51..5a9fbe4 100755
--- a/resources/scripts/build/module/ich9utils
+++ b/resources/scripts/build/module/ich9utils
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: build ich9utils
#
diff --git a/resources/scripts/build/module/memtest86plus b/resources/scripts/build/module/memtest86plus
index 7fc46be..f57b7c5 100755
--- a/resources/scripts/build/module/memtest86plus
+++ b/resources/scripts/build/module/memtest86plus
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: builds memtest86+ source code
#
diff --git a/resources/scripts/build/payload/grub b/resources/scripts/build/payload/grub
index 23765f4..7569fd8 100755
--- a/resources/scripts/build/payload/grub
+++ b/resources/scripts/build/payload/grub
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# generate GRUB ELF files (coreboot payload) and configuration files
#
@@ -24,7 +24,7 @@ set -u -e
grubcfgsdir="resources/grub"
keymap=""
-. "${grubcfgsdir}/modules.list"
+source "${grubcfgsdir}/modules.list"
main()
{
diff --git a/resources/scripts/build/payload/seabios b/resources/scripts/build/payload/seabios
index c05b1b1..e6ae28f 100755
--- a/resources/scripts/build/payload/seabios
+++ b/resources/scripts/build/payload/seabios
@@ -1,9 +1,8 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: builds SeaBIOS source code
#
# Copyright (C) 2020, 2021, 2023 Leah Rowe <info@minifree.org>
-# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -34,9 +33,7 @@ main()
build_seabios_payloads
# clean it again. gotta keep it clean!
- if [ -f seabios/Makefile ]; then
- make distclean -BC seabios || exit 1
- fi
+ [[ -f Makefile ]] && make -C seabios distclean
printf "Done! SeaBIOS files are in %s/\n\n" ${payloaddir}
}
diff --git a/resources/scripts/build/payload/u-boot b/resources/scripts/build/payload/u-boot
index bff4140..bc1cf99 100755
--- a/resources/scripts/build/payload/u-boot
+++ b/resources/scripts/build/payload/u-boot
@@ -3,7 +3,6 @@
# helper script: builds U-Boot source code
#
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
-# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# Copyright (C) 2023 Leah Rowe <leah@libreboot.org>
#
# This program is free software: you can redistribute it and/or modify
@@ -97,7 +96,7 @@ handle_dependencies()
fi
# Override the above defaults using board.cfg
- . "${board_dir}/board.cfg" # source
+ source "${board_dir}/board.cfg" # source
if [ "${ubtree}" = "undefined" ]; then
printf "build/u-boot %s: ubtree undefined\n" \
@@ -162,12 +161,7 @@ build_uboot_elf()
make -C "${ubdir}" olddefconfig
make -C "${ubdir}" -j"$(nproc)" all
- for f in "${ubdir}"/u-boot "${ubdir}"/u-boot.bin \
- "${ubdir}"/u-boot.dtb \
- "${ubdir}"/u-boot.img \
- "${ubdir}"/u-boot.itb \
- "${ubdir}"/u-boot.elf
- do
+ for f in "${ubdir}"/u-boot{,.bin,.dtb,.img,.itb,.elf}; do
if [ -f "$f" ]; then
mv "$f" "${dest_dir}/"
fi
diff --git a/resources/scripts/build/release/roms b/resources/scripts/build/release/roms
index 33200cc..4a66ffa 100755
--- a/resources/scripts/build/release/roms
+++ b/resources/scripts/build/release/roms
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: generate release archive (ROM images)
#
diff --git a/resources/scripts/build/release/src b/resources/scripts/build/release/src
index 09a9810..4c5e3bb 100755
--- a/resources/scripts/build/release/src
+++ b/resources/scripts/build/release/src
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: generate release archive (source code)
#
diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot
index 2e78636..75b61a6 100755
--- a/resources/scripts/download/coreboot
+++ b/resources/scripts/download/coreboot
@@ -1,10 +1,9 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: download coreboot
#
# Copyright (C) 2014-2016,2020,2021,2023 Leah Rowe <info@minifree.org>
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
-# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -87,7 +86,7 @@ fetch_coreboot_config()
check_config_for_board "${_board}" || return 1
# This is to override $cbrevision and $cbtree
- . "${cbcfgsdir}/${_board}/board.cfg" || exit 1
+ source "${cbcfgsdir}/${_board}/board.cfg" || exit 1
if [ "${_board}" != "${cbtree}" ]; then
_board="${cbtree}"
diff --git a/resources/scripts/download/flashrom b/resources/scripts/download/flashrom
index def33ff..6aa3cab 100755
--- a/resources/scripts/download/flashrom
+++ b/resources/scripts/download/flashrom
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: downloads flashrom and patches it
#
diff --git a/resources/scripts/download/grub b/resources/scripts/download/grub
index ff1ce55..0620a77 100755
--- a/resources/scripts/download/grub
+++ b/resources/scripts/download/grub
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: Downloads GRUB and patches it.
#
diff --git a/resources/scripts/download/me_cleaner b/resources/scripts/download/me_cleaner
index 9317325..7dd52be 100755
--- a/resources/scripts/download/me_cleaner
+++ b/resources/scripts/download/me_cleaner
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
#
# Copyright (C) 2020 Leah Rowe <info@minifree.org>
#
diff --git a/resources/scripts/download/memtest86plus b/resources/scripts/download/memtest86plus
index e4106f3..bceadbd 100755
--- a/resources/scripts/download/memtest86plus
+++ b/resources/scripts/download/memtest86plus
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: Downloads MemTest86+ and patches it
#
diff --git a/resources/scripts/download/seabios b/resources/scripts/download/seabios
index 666c32a..fd72de6 100755
--- a/resources/scripts/download/seabios
+++ b/resources/scripts/download/seabios
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
#
# Copyright (C) 2015, 2016, 2021 Leah Rowe <info@minifree.org>
#
diff --git a/resources/scripts/download/u-boot b/resources/scripts/download/u-boot
index 161608c..1af513a 100755
--- a/resources/scripts/download/u-boot
+++ b/resources/scripts/download/u-boot
@@ -1,10 +1,9 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: download u-boot
#
# Copyright (C) 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
-# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,7 +22,7 @@
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
-[ -f build_error ] && rm -f build_error
+[[ -f build_error ]] && rm -f build_error
list_supported_boards() {
for board in resources/u-boot/*; do
@@ -56,7 +55,7 @@ downloadfor() {
fi
# This is to override $ubrevision and $ubtree
- . "resources/u-boot/${board}/board.cfg" || touch build_error
+ source "resources/u-boot/${board}/board.cfg" || touch build_error
if [ -f build_error ]; then
printf "ERROR: %s: problem sourcing %s/board.cfg\n" \
"download/u-boot" "${board}"
@@ -240,10 +239,10 @@ if [ $# -eq 0 ] ; then
download_uboot_board "${board}"
done
exit 0
-elif [ $# -eq 1 ] && [ "$1" = "--help" ] ; then
+elif [ $# -eq 1 -a "$1" == "--help" ] ; then
usage
exit 0
-elif [ $# -eq 1 ] && [ "$1" = "--list-boards" ] ; then
+elif [ $# -eq 1 -a "$1" == "--list-boards" ] ; then
list_supported_boards
exit 0
elif [ $# -eq 1 ] ; then
diff --git a/resources/scripts/misc/versioncheck b/resources/scripts/misc/versioncheck
index 3118e29..e9eea92 100755
--- a/resources/scripts/misc/versioncheck
+++ b/resources/scripts/misc/versioncheck
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# Copyright (C) 2021 Leah Rowe <info@minifree.org>
#
diff --git a/resources/scripts/modify/coreboot/configs b/resources/scripts/modify/coreboot/configs
index 665ee09..89d253e 100755
--- a/resources/scripts/modify/coreboot/configs
+++ b/resources/scripts/modify/coreboot/configs
@@ -1,9 +1,8 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: modify coreboot configs (run make menuconfig)
#
# Copyright (C) 2021, 2023 Leah Rowe <info@minifree.org>
-# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -50,7 +49,7 @@ modifyconf() {
fi
cbtree=""
- . "resources/coreboot/${board}/board.cfg" # source
+ source "resources/coreboot/${board}/board.cfg" # source
if [ -z ${cbtree} ]; then
return 0
diff --git a/resources/scripts/modify/seabios/configs b/resources/scripts/modify/seabios/configs
index 614a437..3042385 100755
--- a/resources/scripts/modify/seabios/configs
+++ b/resources/scripts/modify/seabios/configs
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: modify coreboot configs (run make menuconfig)
#
diff --git a/resources/scripts/modify/u-boot/configs b/resources/scripts/modify/u-boot/configs
index 9572a5b..b44aae4 100755
--- a/resources/scripts/modify/u-boot/configs
+++ b/resources/scripts/modify/u-boot/configs
@@ -1,9 +1,8 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# helper script: modify U-Boot configs (run make menuconfig)
#
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
-# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# Copyright (C) 2023 Leah Rowe <info@minifree.org>
#
# This program is free software: you can redistribute it and/or modify
@@ -51,7 +50,7 @@ modifyconf()
fi
ubtree="undefined"
- . "resources/u-boot/${board}/board.cfg" # source
+ source "resources/u-boot/${board}/board.cfg" # source
if [ "${ubtree}" = "undefined" ]; then
return 0
diff --git a/resources/scripts/update/coreboot/configs b/resources/scripts/update/coreboot/configs
index cd5299b..6637a34 100755
--- a/resources/scripts/update/coreboot/configs
+++ b/resources/scripts/update/coreboot/configs
@@ -1,10 +1,9 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
#
# helper script: update coreboot configs (run make oldconfig)
#
# Copyright (C) 2021 Leah Rowe <info@minifree.org>
-# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -55,7 +54,7 @@ updateconf()
if [ -f "${boarddir}/board.cfg" ]; then
cbtree="undefined"
- . "${boarddir}/board.cfg" # source
+ source "${boarddir}/board.cfg" # source
if [ "${cbtree}" = "undefined" ]; then
return 0
fi
diff --git a/resources/scripts/update/u-boot/configs b/resources/scripts/update/u-boot/configs
index b01ef0d..9b67eed 100755
--- a/resources/scripts/update/u-boot/configs
+++ b/resources/scripts/update/u-boot/configs
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
#
# helper script: update U-Boot configs (run make oldconfig)
@@ -33,7 +33,7 @@ updateconf() {
board="$1"
if [ -f "resources/u-boot/${board}/board.cfg" ]; then
ubtree="undefined"
- . "resources/u-boot/${board}/board.cfg" # source
+ source "resources/u-boot/${board}/board.cfg" # source
if [ "${ubtree}" = "undefined" ]; then
return 0
fi
diff --git a/update b/update
index b9d8839..28ea655 100755
--- a/update
+++ b/update
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
# generic update scripts for updating configs and such
#