summaryrefslogtreecommitdiff
path: root/resources/scripts/download/coreboot
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-05-27 11:44:54 +0100
committerLeah Rowe <leah@libreboot.org>2023-05-27 11:44:54 +0100
commitff954c5b73c4010f9984e0c543779f3692767c0c (patch)
tree06ea78331b0ffd849c5334f33514de4c311b9f36 /resources/scripts/download/coreboot
parent092600d163e771d31da07d88a03fe669aa4708f1 (diff)
unify download/build scripts
move resources/scripts/download/ to: resources/scripts/update/module/ This: ./download coreboot Is now: ./update module coreboot However, running "./download coreboot" still works, via backwards compatibility. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'resources/scripts/download/coreboot')
-rwxr-xr-xresources/scripts/download/coreboot182
1 files changed, 0 insertions, 182 deletions
diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot
deleted file mode 100755
index 75b61a6f..00000000
--- a/resources/scripts/download/coreboot
+++ /dev/null
@@ -1,182 +0,0 @@
-#!/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>
-#
-# 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
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-[ "x${DEBUG+set}" = 'xset' ] && set -v
-set -u -e
-
-_board=""
-cbtree=""
-cbrevision=""
-
-cbcfgsdir="resources/coreboot"
-
-main()
-{
- rm -f ${cbcfgsdir}/*/seen
-
- printf "Downloading coreboot and (if available) applying patches\n"
-
- boards=""
- if [ $# -gt 0 ]; then
- boards=$@
- else
- for board in "${cbcfgsdir}/"*; do
- [ ! -d "${board}" ] && continue
- boards="${boards} ${board##*/}"
- done
- fi
- for board in ${boards}; do
- rm -f "${cbcfgsdir}"/*/seen
- download_coreboot_for_board "${board}"
- done
-
- rm -f ${cbcfgsdir}/*/seen
-}
-
-download_coreboot_for_board()
-{
- _board="${1}"
- cbtree="undefined"
- cbrevision="undefined"
-
- fetch_coreboot_config "${_board}" || exit 1
-
- rm -f "${cbcfgsdir}"/*/seen
-
- if [ -d "coreboot/${cbtree}" ]; then
- printf "REMARK: download/coreboot %s: exists. Skipping.\n" \
- ${cbtree}
- [ "${cbtree}" != "${1}" ] && \
- printf "(for board: '%s}')\n" ${1}
- return 0
- fi
-
- gitclone_coreboot_from_upstream || exit 1
-
- prepare_new_coreboot_tree "${1}" "${cbtree}" "${cbrevision}" \
- || exit 1
-}
-
-fetch_coreboot_config()
-{
- _board=${1}
-
- while true; do
- cbrevision="undefined"
- cbtree="undefined"
-
- check_config_for_board "${_board}" || return 1
-
- # This is to override $cbrevision and $cbtree
- source "${cbcfgsdir}/${_board}/board.cfg" || exit 1
-
- if [ "${_board}" != "${cbtree}" ]; then
- _board="${cbtree}"
- continue
- elif [ "${cbtree}" = "undefined" ]; then
- printf "ERROR: download/coreboot:"
- printf " tree name undefined for '%s\n'" \
- ${_board}
- return 1
- elif [ "${cbrevision}" = "undefined" ]; then
- printf "ERROR: download/coreboot:"
- printf " commit ID undefined for '%s'\n" \
- ${_board}
- return 1
- else
- break
- fi
- done
-}
-
-check_config_for_board()
-{
- _board=${1}
-
- if [ ! -f "${cbcfgsdir}/${_board}/board.cfg" ]; then
- printf "ERROR: download/coreboot: board.cfg does not"
- printf " exist for '%s'\n" ${_board}
- return 1
- elif [ -f "${cbcfgsdir}/${_board}/seen" ]; then
- printf "ERROR: download/coreboot: logical loop:"
- printf " '%s' board.cfg refers to another tree," ${_board}
- printf " which ultimately refers back to '%s'." ${_board}
- return 1
- fi
- touch "${cbcfgsdir}/${_board}/seen"
-}
-
-gitclone_coreboot_from_upstream()
-{
- [ ! -d coreboot ] && \
- mkdir -p coreboot
- [ ! -d coreboot ] && \
- return 1
- [ -d coreboot/coreboot ] && \
- return 0
- ./gitclone coreboot || \
- return 1
-}
-
-prepare_new_coreboot_tree()
-{
- target=${1}
- cbtree=${2}
- cbrevision=${3}
-
- printf "Preparing coreboot tree: %s\n" ${cbtree}
- [ "${cbtree}" != "${target}" ] && \
- printf "(for board: %s)\n" "${target}"
-
- cp -R coreboot/coreboot "coreboot/${cbtree}" || exit 1
- (
- cd "coreboot/${cbtree}" \
- || err "cannot cd to coreboot/${cbtree}"
- git reset --hard ${cbrevision} \
- || err "cannot reset coreboot revision for tree, ${cbtree}"
- git submodule update --init --checkout \
- || err "cannot update coreboot submodules for tree, ${cbtree}"
-
- for patch in ../../"${cbcfgsdir}"/"${cbtree}"/patches/*.patch; do
- [ ! -f "${patch}" ] && \
- continue
- if ! git am "${patch}"; then
- git am --abort
- err "cannot patch ${cbtree}"
- fi
- done
-
- # extra.sh can be used for anything
- # but should *only* be a last resort
- if [ -f "../../${cbcfgsdir}/${cbtree}/extra.sh" ]; then
- "../../${cbcfgsdir}/${cbtree}/extra.sh" || \
- err "${cbtree} extra.sh"
- fi
- )
-}
-
-err()
-{
- printf "ERROR: %s: %s\n" $0 $1 1>&2
- exit 1
-}
-
-main $@