mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-12 14:32:42 +02:00
548872ce8e
courtesy of Angel Pons from the coreboot project
this uses the following patch set from gerrit, as yet
unmerged (in coreboot master) on this date:
https://review.coreboot.org/c/coreboot/+/64198/5
logic for downloading mrc blobs has been deleted from
lbmk, as this is now completely obsolete (for haswell
boards)
if other platforms are added later that need mrc.bin,
then logic will be re-added again for that
115 lines
3.2 KiB
Bash
Executable File
115 lines
3.2 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
|
|
#
|
|
# helper script: generate release archive (ROM images)
|
|
#
|
|
# Copyright (C) 2020,2021,2022 Leah Rowe <info@minifree.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
|
|
# 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/>.
|
|
#
|
|
|
|
# This script assumes that the working directory is the root
|
|
# of git or release archive
|
|
|
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
|
set -u -e
|
|
|
|
projectname="$(cat projectname)"
|
|
|
|
version="version-unknown"
|
|
if [ -f version ]; then
|
|
version="$(cat version)"
|
|
fi
|
|
versiondate="version-date-unknown"
|
|
if [ -f versiondate ]; then
|
|
versiondate="$(cat versiondate)"
|
|
fi
|
|
|
|
if [ ! -d "bin/" ]; then
|
|
printf "build/release/roms: no ROMs built yet. Exiting.\n"
|
|
exit 1
|
|
fi
|
|
|
|
[ ! -d "release/" ] && \
|
|
mkdir -p release/
|
|
[ ! -d "release/${version}/" ] && \
|
|
mkdir -p "release/${version}/"
|
|
[ -d "release/${version}/roms/" ] && \
|
|
rm -Rf "release/${version}/roms/"
|
|
[ ! -d "release/${version}/roms/" ] && \
|
|
mkdir -p "release/${version}/roms/"
|
|
|
|
printf "Building ROM image archives for version %s\n" "${version}"
|
|
|
|
for romdir in bin/*; do
|
|
target="${romdir##*/}"
|
|
|
|
echo ${target}
|
|
if [ ! -d "${romdir}/" ]; then
|
|
continue
|
|
fi
|
|
|
|
CONFIG_HAVE_ME_BIN="y"
|
|
grep "CONFIG_HAVE_ME_BIN=y" "resources/coreboot/${target}/config/"* || CONFIG_HAVE_ME_BIN="n"
|
|
|
|
# remove ME from ROM images
|
|
if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then
|
|
if [ ! -d coreboot/default ]; then
|
|
./download coreboot default || exit 1
|
|
fi
|
|
|
|
ifdtooldir="coreboot/default/util/ifdtool"
|
|
ifdtool="${ifdtooldir}/ifdtool"
|
|
if [ ! -f "${ifdtool}" ]; then
|
|
./build module cbutils default || exit 1
|
|
fi
|
|
|
|
cbfstooldir="coreboot/default/util/cbfstool"
|
|
cbfstool="${cbfstooldir}/cbfstool"
|
|
if [ ! -f "${cbfstool}" ]; then
|
|
./build module cbutils default || exit 1
|
|
fi
|
|
|
|
rm -Rf "${romdir}_tmp" # dirty hack, to reduce disk io later
|
|
# rather than using /tmp, which might not be tmpfs
|
|
mkdir "${romdir}_tmp"
|
|
|
|
for romfile in "${romdir}"/*.rom
|
|
do
|
|
if [ ! -f "${romfile}" ]
|
|
then
|
|
continue
|
|
fi
|
|
${ifdtool} --nuke me "${romfile}" || exit 1
|
|
mv "${romfile}" "${romdir}_tmp"/
|
|
mv "${romfile}.new" "${romfile}"
|
|
done
|
|
fi
|
|
|
|
printf "Generating release/%s/roms/%s-%s_%s.tar.xz\n" "${version}" "${projectname}" "${version}" "${target##*/}"
|
|
printf "%s\n" "${version}" > "${romdir}/version"
|
|
printf "%s\n" "${versiondate}" > "${romdir}/versiondate"
|
|
printf "%s\n" "${projectname}" > "${romdir}/projectname"
|
|
tar -c "${romdir}/" | xz -9e >"release/${version}/roms/${projectname}-${version}_${target##*/}.tar.xz"
|
|
|
|
if [ -d "${romdir}_tmp" ]
|
|
then
|
|
rm -Rf "${romdir}"
|
|
mv "${romdir}_tmp" "${romdir}"
|
|
fi
|
|
done
|
|
|
|
printf "\nROM image release archives available at release/%s/roms/\n\n" "${version}"
|
|
|