From 7f5dfebf7d37c56d9c7993aaa17c59070cb5aec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferass=20=27Vitali64=27=20EL=C2=A0HAFIDI?= Date: Wed, 28 Dec 2022 19:29:18 +0100 Subject: [PATCH] Do not rely on bashisms and behaviour undefined by the POSIX specification. Part 2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ferass 'Vitali64' EL HAFIDI --- resources/scripts/blobs/download | 22 +++++++++++----------- resources/scripts/blobs/extract | 2 +- resources/scripts/blobs/inject | 7 ++++--- resources/scripts/download/coreboot | 13 +++++++------ resources/scripts/download/flashrom | 2 +- resources/scripts/download/gitmodule | 8 +++++--- resources/scripts/download/grub | 2 +- resources/scripts/download/ich9utils | 2 +- resources/scripts/download/me_cleaner | 2 +- resources/scripts/download/memtest86plus | 2 +- resources/scripts/download/mrc | 2 +- resources/scripts/download/seabios | 2 +- resources/scripts/download/u-boot | 11 ++++++----- resources/scripts/misc/versioncheck | 2 +- 14 files changed, 42 insertions(+), 37 deletions(-) diff --git a/resources/scripts/blobs/download b/resources/scripts/blobs/download index f1898899..3c185477 100755 --- a/resources/scripts/blobs/download +++ b/resources/scripts/blobs/download @@ -1,6 +1,7 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # SPDX-FileCopyrightText: 2022 Caleb La Grange +# SPDX-FileCopyrightText: 2022 Ferass El Hafidi # SPDX-License-Identifier: GPL-3.0-only board="${1}" @@ -16,10 +17,10 @@ Download_needed(){ for need in ${needs}; do case ${need} in *ME*) - Extract_me || _failed+=" me" + Extract_me || _failed="${_failed} me" ;; *MRC*) - ./download mrc || _failed+=" mrc" + ./download mrc || _failed="${_failed} mrc" ;; esac done @@ -96,23 +97,23 @@ set -- "resources/coreboot/${board}/config/*" if [ "${CONFIG_HAVE_MRC}" = "y" ]; then printf 'haswell board detected, downloading mrc\n' - needs+=" MRC" + needs="${needs} MRC" fi if [ "${CONFIG_HAVE_IFD_BIN}" = "y" ]; then printf 'board needs intel firmware descriptor\n' - needs+=" IFD" + needs="${needs} IFD" fi if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then printf 'board needs intel management engine\n' - needs+=" ME" + needs="${needs} ME" fi if [ "${CONFIG_HAVE_GBE_BIN}" = "y" ]; then printf 'board needs gigabit ethernet firmware\n' - needs+=" GBE" + needs="${needs} GBE" fi # Quickly exit without wasting more time if there are no blobs needed (GM45) @@ -138,8 +139,7 @@ while read -r line ; do me_dl_bkup=${2} ;; esac -done <<< $(eval "awk ' /\{.*${board_short}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }' resources/blobs/sources") - +done << EOF +$(eval "awk ' /\{.*${board_short}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }' resources/blobs/sources") +EOF Download_needed - - diff --git a/resources/scripts/blobs/extract b/resources/scripts/blobs/extract index b88741a7..9080207e 100755 --- a/resources/scripts/blobs/extract +++ b/resources/scripts/blobs/extract @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # 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 92fdd628..d74b147a 100755 --- a/resources/scripts/blobs/inject +++ b/resources/scripts/blobs/inject @@ -1,6 +1,7 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # SPDX-FileCopyrightText: 2022 Caleb La Grange +# SPDX-FileCopyrightText: 2022 Ferass El Hafidi # SPDX-License-Identifier: GPL-3.0-only Fail(){ @@ -53,10 +54,10 @@ Detect_board(){ filename=$(basename ${rom}) case ${filename} in grub_*) - board=$(cut -d '_' -f2-3 <<<${filename}) + board=$(echo "${filename}" | cut -d '_' -f2-3) ;; seabios_withgrub_*) - board=$(cut -d '_' -f3-4 <<<${filename}) + board=$(echo "${filename}" | cut -d '_' -f3-4) ;; *) return 1 diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 727aacc2..821ee321 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -1,9 +1,10 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # helper script: download coreboot # # Copyright (C) 2014, 2015, 2016, 2020, 2021 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 @@ -52,17 +53,17 @@ usage() # In this script, set -u is used to check for undefined variables, and # the test command doesn't do any lazy evaluation, so we can't use -# a syntax like that: [ $# -eq 1 -a "$1" == "--help" ]. +# a syntax like that: [ $# -eq 1 -a "$1" = "--help" ]. -if [ $# -eq 1 ] && [ "$1" == "--help" ] ; then +if [ $# -eq 1 ] && [ "$1" = "--help" ] ; then usage exit 0 -elif [ $# -eq 1 ] && [ "$1" == "--list-boards" ] ; then +elif [ $# -eq 1 ] && [ "$1" = "--list-boards" ] ; then list_supported_boards exit 0 fi -[[ -f build_error ]] && rm -f build_error +[ -f build_error ] && rm -f build_error rm -f resources/coreboot/*/seen @@ -90,7 +91,7 @@ downloadfor() { fi # This is to override $cbrevision and $cbtree - source "resources/coreboot/${board}/board.cfg" || touch ../build_error + . "resources/coreboot/${board}/board.cfg" || touch ../build_error if [ -f build_error ]; then printf "ERROR: download/coreboot: problem sourcing %s/board.cfg\n" "${board}" return 1 diff --git a/resources/scripts/download/flashrom b/resources/scripts/download/flashrom index 8a4cf829..c94ecc6f 100755 --- a/resources/scripts/download/flashrom +++ b/resources/scripts/download/flashrom @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # helper script: downloads flashrom and patches it # diff --git a/resources/scripts/download/gitmodule b/resources/scripts/download/gitmodule index 1879fac0..603961e4 100755 --- a/resources/scripts/download/gitmodule +++ b/resources/scripts/download/gitmodule @@ -1,6 +1,7 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # SPDX-FileCopyrightText: 2022 Caleb La Grange +# SPDX-FileCopyrightText: 2022 Ferass El Hafidi # SPDX-License-Identifier: GPL-3.0-only Print_help(){ @@ -72,8 +73,9 @@ while read -r line ; do bkup_url=${2} ;; esac -done <<< $(eval "awk ' /\{.*${name}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }' resources/git/revisions") - +done << EOF +$(eval "awk ' /\{.*${name}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }' resources/git/revisions") +EOF Check_vars tmp_dir=$(mktemp -dt "${name}_XXXXX") diff --git a/resources/scripts/download/grub b/resources/scripts/download/grub index 5a8cc041..1d59ad09 100755 --- a/resources/scripts/download/grub +++ b/resources/scripts/download/grub @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # helper script: Downloads GRUB and patches it. # diff --git a/resources/scripts/download/ich9utils b/resources/scripts/download/ich9utils index 72489f81..2e11fac1 100755 --- a/resources/scripts/download/ich9utils +++ b/resources/scripts/download/ich9utils @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # helper script: downloads ich9utils # diff --git a/resources/scripts/download/me_cleaner b/resources/scripts/download/me_cleaner index 3f6ea3db..bb26a000 100755 --- a/resources/scripts/download/me_cleaner +++ b/resources/scripts/download/me_cleaner @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # # Copyright (C) 2020 Leah Rowe # diff --git a/resources/scripts/download/memtest86plus b/resources/scripts/download/memtest86plus index 92672a48..0e01b3a0 100755 --- a/resources/scripts/download/memtest86plus +++ b/resources/scripts/download/memtest86plus @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # helper script: Downloads MemTest86+ and patches it # diff --git a/resources/scripts/download/mrc b/resources/scripts/download/mrc index 2b33ddb9..49657fec 100755 --- a/resources/scripts/download/mrc +++ b/resources/scripts/download/mrc @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env sh # Download Intel MRC images # diff --git a/resources/scripts/download/seabios b/resources/scripts/download/seabios index 189e148b..f441986f 100755 --- a/resources/scripts/download/seabios +++ b/resources/scripts/download/seabios @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # # Copyright (C) 2015, 2016, 2021 Leah Rowe # diff --git a/resources/scripts/download/u-boot b/resources/scripts/download/u-boot index 1af513a4..161608c9 100755 --- a/resources/scripts/download/u-boot +++ b/resources/scripts/download/u-boot @@ -1,9 +1,10 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # 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 @@ -22,7 +23,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 @@ -55,7 +56,7 @@ downloadfor() { fi # This is to override $ubrevision and $ubtree - source "resources/u-boot/${board}/board.cfg" || touch build_error + . "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}" @@ -239,10 +240,10 @@ if [ $# -eq 0 ] ; then download_uboot_board "${board}" done exit 0 -elif [ $# -eq 1 -a "$1" == "--help" ] ; then +elif [ $# -eq 1 ] && [ "$1" = "--help" ] ; then usage exit 0 -elif [ $# -eq 1 -a "$1" == "--list-boards" ] ; then +elif [ $# -eq 1 ] && [ "$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 e9eea929..3118e297 100755 --- a/resources/scripts/misc/versioncheck +++ b/resources/scripts/misc/versioncheck @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # Copyright (C) 2021 Leah Rowe #