tint: introduce the new tint build system with checksum verification

Three stages of the new tint build system:

 1) generate_core.sh extracts the core part from buildgcc script,
     most importantly the checksum calculation/verification functions.

 2) tintify_core.sh adds the tint-specific footer/header to the core,
     such as the properties of current version including its checksum.

 3) tint.sh - generated and "tintified" core script - builds a tint.

Signed-off-by: Mike Banon <mikebdp2@gmail.com>
Change-Id: Ib71f5b861ecf91949a5af12812258e60873f0498
Reviewed-on: https://review.coreboot.org/c/coreboot/+/50991
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Mike Banon
2021-02-21 19:20:40 +03:00
committed by Patrick Georgi
parent a7696adbeb
commit 40df8aa84b
4 changed files with 252 additions and 21 deletions

View File

@@ -1,5 +1,25 @@
project_url=https://mirror.fsf.org/trisquel/pool/main/t/tint/tint_0.05.tar.xz
archive_name=tint_0.05.tar.xz
#
# TINT build system - helps to securely download TINT with a checksum verification and build it.
#
#
# Properties of the current TINT version
#
TINT_VERSION=0.05
TINT_EXT_VERSION=0.05
TINT_ARCHIVE_LINK="https://mirror.fsf.org/trisquel/pool/main/t/tint/tint_${TINT_EXT_VERSION}.tar.xz"
TINT_ARCHIVE="tint_${TINT_VERSION}.tar.xz"
TINT_DIR="tint-${TINT_VERSION}"
TINT_SHA1SUM="859008216930a4584e622d0df41fd75c44d2b47f"
#
# Locations of the input/output scripts
#
buildgcc="./../../../util/crossgcc/buildgcc"
corescript="./core.sh"
tintified="./tint.sh"
unexport KCONFIG_AUTOHEADER
unexport KCONFIG_AUTOCONFIG
@@ -10,28 +30,39 @@ unexport KCONFIG_NEGATIVES
all: tint
tint: patch
echo " MAKE TINT "
$(MAKE) -C tint
################################################################################
#
# Three stages of TINT build system:
#
# 1) generate_core.sh extracts the core part from buildgcc script,
# most importantly the checksum calculation/verification functions.
#
# 2) tintify_core.sh adds the TINT-specific footer/header to the core,
# such as the properties of current version including its checksum.
#
# 3) tint.sh - generated and "tintified" core script - builds a TINT.
#
################################################################################
patch: download
cd tint; \
if [ -e debian ]; then \
rm -rf debian typedefs.h Makefile; \
touch Makefile; \
patch -l -p1 < ../libpayload_tint.patch; \
fi
download:
test -d tint || { wget $(project_url); \
tar -xvf $(archive_name); \
rm $(archive_name); \
mv tint-0.05 tint; }
tint:
if [ ! -f ${tintified} ]; then \
chmod +x "./generate_core.sh" ; \
"./generate_core.sh" ${buildgcc} ${corescript} "prepare_before_patch" ; \
chmod +x "./tintify_core.sh" ; \
"./tintify_core.sh" ${corescript} ${tintified} \
${TINT_ARCHIVE_LINK} ${TINT_ARCHIVE} ${TINT_DIR} ${TINT_SHA1SUM} ; \
fi ; \
chmod +x ${tintified}
${tintified}
clean:
test -d tint && $(MAKE) -C tint clean || exit 0
test -d "./tint/" && $(MAKE) -C "./tint/" clean || exit 0
distclean:
rm -rf tint
rm -rf "./tint/"
rm -f ${corescript}
rm -f ${tintified}
.PHONY: download patch tint clean distclean
.PHONY: tint clean distclean
#