123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- #!/bin/bash
- [ "x${DEBUG+set}" = 'xset' ] && set -v
- set -u -e
- if [ -f "version" ]; then
-
- version="libreboot-$(cat version)"
- else
-
- version="libreboot-$(git describe --tags HEAD)"
- fi
- make_coreboot_src_directory() {
- payload="${1}"
- cbrevision="${2}"
- vbootrevision="${3}"
- firmwarepath="${4}"
- (
- cd "${firmwarepath}/"
-
- rm -Rf "${payload:?}/${cbrevision:?}/"
- if [ ! -d "${payload}/" ]; then
- mkdir -p "${payload}/"
- fi
- cp -R "coreboot/" "${payload}/${cbrevision}/"
-
- cd "${payload}/${cbrevision}/"
- git reset --hard ${cbrevision}
- if [ "${vbootrevision}" != "no_vboot_revision" ]; then
-
-
- cd "3rdparty/vboot/"
- git reset --hard ${vbootrevision}
- fi
- )
- }
- printf "Downloading coreboot, patching coreboot and deblobbing coreboot\n"
- rm -Rf "coreboot/"
- mkdir "coreboot/"
- cd "coreboot/"
- git clone https://review.coreboot.org/coreboot || git clone https://github.com/coreboot/coreboot.git
- cd "coreboot/"
- printf '%s\n' "${version}" >".coreboot-version"
- git submodule update --init --checkout -- 3rdparty/vboot/
- for payloads in ../../resources/libreboot/config/*; do
- if [ ! -d "${payloads}/" ]; then
- continue
- fi
- payload="${payloads##*/}"
- for boardconfig in ../../resources/libreboot/config/${payload}/*; do
- if [ ! -d "${boardconfig}/" ]; then
- continue
- fi
- cbrevision=$(cat "${boardconfig}/cbrevision")
- vbootrevision=$(cat "${boardconfig}/vbootrevision")
-
-
- if [ -d "../${cbrevision}/${cbrevision}" ]; then
- continue
-
- fi
- make_coreboot_src_directory ${cbrevision} ${cbrevision} ${vbootrevision} ..
- done
- done
- cd "../"
- rm -Rf "coreboot/"
- printf "Deleting .git* in coreboot/ (history inside .git contains the blobs that were deleted)\n"
- rm -Rf */*/.git*
- rm -Rf */*/3rdparty/*/.git*
- for payload in *; do
- if [ "${payload##*/}" != "crossgcc" ]; then
- rm -Rf ${payload:?}/*/util/crossgcc/
- fi
- done
- cd "../"
- printf "Deblobbing coreboot\n"
- ./resources/utilities/coreboot-libre/deblob
- printf "\n\n"
|