From a4ea2867319471d9fe7d4ee540881e0286b4d3cf Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 25 May 2023 21:54:59 +0100 Subject: [PATCH] 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: 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) * 4c851889 - Add macbook*1 16mb configs (1 year, 6 months ago) 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 --- Makefile | 13 ++++----- blobutil | 2 +- build | 2 +- download | 2 +- gitclone | 7 ++--- modify | 2 +- resources/scripts/blobs/download | 27 +++++++++---------- resources/scripts/blobs/extract | 2 +- resources/scripts/blobs/inject | 7 +++-- resources/scripts/build/boot/roms | 15 +++++------ resources/scripts/build/boot/roms_helper | 26 +++++++++--------- resources/scripts/build/clean/cbutils | 6 ++--- resources/scripts/build/clean/crossgcc | 4 +-- resources/scripts/build/clean/flashrom | 4 +-- resources/scripts/build/clean/grub | 2 +- resources/scripts/build/clean/ich9utils | 2 +- resources/scripts/build/clean/memtest86plus | 2 +- resources/scripts/build/clean/payloads | 2 +- resources/scripts/build/clean/rom_images | 2 +- resources/scripts/build/clean/seabios | 2 +- resources/scripts/build/clean/u-boot | 2 +- resources/scripts/build/dependencies/arch | 2 +- resources/scripts/build/dependencies/debian | 2 +- resources/scripts/build/dependencies/fedora38 | 2 +- resources/scripts/build/dependencies/parabola | 2 +- .../scripts/build/dependencies/ubuntu2004 | 2 +- resources/scripts/build/dependencies/void | 2 +- resources/scripts/build/descriptors/ich9m | 2 +- resources/scripts/build/module/cbutils | 6 ++--- resources/scripts/build/module/flashrom | 2 +- resources/scripts/build/module/grub | 2 +- resources/scripts/build/module/ich9utils | 2 +- resources/scripts/build/module/memtest86plus | 2 +- resources/scripts/build/payload/grub | 4 +-- resources/scripts/build/payload/seabios | 7 ++--- resources/scripts/build/payload/u-boot | 10 ++----- resources/scripts/build/release/roms | 2 +- resources/scripts/build/release/src | 2 +- resources/scripts/download/coreboot | 5 ++-- resources/scripts/download/flashrom | 2 +- resources/scripts/download/grub | 2 +- resources/scripts/download/me_cleaner | 2 +- resources/scripts/download/memtest86plus | 2 +- resources/scripts/download/seabios | 2 +- resources/scripts/download/u-boot | 11 ++++---- resources/scripts/misc/versioncheck | 2 +- resources/scripts/modify/coreboot/configs | 5 ++-- resources/scripts/modify/seabios/configs | 2 +- resources/scripts/modify/u-boot/configs | 5 ++-- resources/scripts/update/coreboot/configs | 5 ++-- resources/scripts/update/u-boot/configs | 4 +-- update | 2 +- 52 files changed, 105 insertions(+), 132 deletions(-) diff --git a/Makefile b/Makefile index e4fbb0d9..bb60bc9b 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,6 @@ # https://libreboot.org/docs/build/ # # Copyright (C) 2020, 2021, 2023 Leah Rowe -# Copyright (C) 2022 Ferass El Hafidi # # 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 . # -.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 0097cd23..2a14bb0b 100755 --- a/blobutil +++ b/blobutil @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash # SPDX-FileCopyrightText: 2022 Caleb La Grange # SPDX-FileCopyrightText: 2023 Leah Rowe # SPDX-License-Identifier: GPL-3.0-only diff --git a/build b/build index d4392698..8c65cb3a 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 27bc5f6b..e2dbfc9b 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 70b4e7f7..4f811b3f 100755 --- a/gitclone +++ b/gitclone @@ -1,7 +1,6 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash # SPDX-FileCopyrightText: 2022 Caleb La Grange -# SPDX-FileCopyrightText: 2022 Ferass El Hafidi # SPDX-FileCopyrightText: 2023 Leah Rowe # 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 f80d3c9e..b3976205 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 7c775ea5..57bdfe62 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 -# SPDX-FileCopyrightText: 2022 Ferass El Hafidi # SPDX-FileCopyrightText: 2023 Leah Rowe # 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 b32ec0ea..8e9c74ed 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 diff --git a/resources/scripts/blobs/inject b/resources/scripts/blobs/inject index ca8aae4c..51f67255 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 -# SPDX-FileCopyrightText: 2022 Ferass El Hafidi # SPDX-FileCopyrightText: 2023 Leah Rowe # 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 f0398273..07f92a83 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 @@ # # Copyright (C) 2015 Klemens Nanni # Copyright (C) 2022 Caleb La Grange -# Copyright (C) 2022 Ferass El Hafidi # # 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 02d8f61f..c5cb5df4 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 -# Copyright (C) 2021,2022 Ferass El Hafidi -# +# Copyright (C) 2021 Ferass El Hafidi # Copyright (C) 2022 Caleb La Grange # Copyright (C) 2022 Alper Nebi Yasak # @@ -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 0c0df0d3..2aff915f 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 -# Copyright (C) 2015 Klemens Nanni +# Copyright (C) 2015 Klemens Nanni # # 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 6c09c878..7dcbf4a4 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 -# Copyright (C) 2015 Klemens Nanni +# Copyright (C) 2015 Klemens Nanni # # 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 744052fc..516a8d87 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 -# Copyright (C) 2015 Klemens Nanni +# Copyright (C) 2015 Klemens Nanni # # 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 dea2c2dd..4330dfca 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 38ad439f..35b9dc4b 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 807b20a7..e4d7b200 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 4d77b9ea..f4dab88a 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 cd41d499..cac69226 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 0757db9d..6362a311 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 6a59a5c1..5d9a324a 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 c20a1faf..91210191 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 fb0ae248..789ee749 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 2389b806..396300e8 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 da284bed..c841c7c2 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 14a1d8c2..dda88fde 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 e46cd5ee..bbd00a15 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 b9a077d9..35cc9570 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 # diff --git a/resources/scripts/build/module/cbutils b/resources/scripts/build/module/cbutils index b362ee7a..526467bd 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 37f57ce0..c1641d94 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 5cf58a67..4d2009ed 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 5473a513..5a9fbe4b 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 7fc46be9..f57b7c57 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 23765f47..7569fd86 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 c05b1b11..e6ae28f9 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 -# Copyright (C) 2022 Ferass El Hafidi # # 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 bff41400..bc1cf997 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 -# Copyright (C) 2022 Ferass El Hafidi # Copyright (C) 2023 Leah Rowe # # 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 33200cc4..4a66ffa3 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 09a9810e..4c5e3bb0 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 2e78636b..75b61a6f 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 # Copyright (C) 2022 Alper Nebi Yasak -# Copyright (C) 2022 Ferass El Hafidi # # 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 def33ffb..6aa3cab4 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 ff1ce55c..0620a775 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 93173257..7dd52be7 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 # diff --git a/resources/scripts/download/memtest86plus b/resources/scripts/download/memtest86plus index e4106f38..bceadbd9 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 666c32ae..fd72de65 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 # diff --git a/resources/scripts/download/u-boot b/resources/scripts/download/u-boot index 161608c9..1af513a4 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 # Copyright (C) 2022 Alper Nebi Yasak -# Copyright (C) 2022 Ferass El Hafidi # # 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 3118e297..e9eea929 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 # diff --git a/resources/scripts/modify/coreboot/configs b/resources/scripts/modify/coreboot/configs index 665ee091..89d253e3 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 -# Copyright (C) 2022 Ferass El Hafidi # # 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 614a4371..30423851 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 9572a5b8..b44aae47 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 -# Copyright (C) 2022 Ferass El Hafidi # Copyright (C) 2023 Leah Rowe # # 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 cd5299b3..6637a340 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 -# Copyright (C) 2022 Ferass El Hafidi # # 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 b01ef0db..9b67eede 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 b9d88391..28ea6559 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 #