<p>Mike Banon has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/23856">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">tint: introduce the new tint build system with checksum verification<br><br>Three stages of the new tint build system:<br><br> 1) generate_core.sh extracts the core part from buildgcc script,<br> most importantly the checksum calculation/verification functions<br><br> 2) tintify_core.sh adds the tint-specific footer/header to the core,<br> such as the properties of current version including its checksum<br><br> 3) tint.sh - generated and "tintified" core script - builds a tint<br><br>Change-Id: I1d24f222d1b92030b81bba3951e243a2a9f37290<br>Signed-off-by: Mike Banon <mikebdp2@gmail.com><br>---<br>M payloads/external/tint/Makefile<br>A payloads/external/tint/generate_core.sh<br>R payloads/external/tint/tint-0.04+nmu1_libpayload.patch<br>A payloads/external/tint/tintify_core.sh<br>4 files changed, 215 insertions(+), 21 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/56/23856/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/payloads/external/tint/Makefile b/payloads/external/tint/Makefile</span><br><span>index 253bfea..0c0300a 100644</span><br><span>--- a/payloads/external/tint/Makefile</span><br><span>+++ b/payloads/external/tint/Makefile</span><br><span>@@ -1,5 +1,23 @@</span><br><span style="color: hsl(0, 100%, 40%);">-project_url=https://mirror.fsf.org/trisquel/pool/main/t/tint/tint_0.04+nmu1.tar.gz</span><br><span style="color: hsl(0, 100%, 40%);">-archive_name=tint_0.04+nmu1.tar.gz</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# TINT build system</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Properties of the current TINT version</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+TINT_VERSION=0.04+nmu1</span><br><span style="color: hsl(120, 100%, 40%);">+TINT_ARCHIVE="https://mirror.fsf.org/trisquel/pool/main/t/tint/tint_${TINT_VERSION}.tar.gz"</span><br><span style="color: hsl(120, 100%, 40%);">+TINT_DIR="tint-${TINT_VERSION}"</span><br><span style="color: hsl(120, 100%, 40%);">+TINT_CHECKSUM=7fcaa428c6d0de7096d1e4fbfd14848096ae5aad</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Locations of the input/output scripts</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+buildgcc="./../../../util/crossgcc/buildgcc"</span><br><span style="color: hsl(120, 100%, 40%);">+corescript="./core.sh"</span><br><span style="color: hsl(120, 100%, 40%);">+tintified="./tint.sh"</span><br><span> </span><br><span> unexport KCONFIG_AUTOHEADER</span><br><span> unexport KCONFIG_AUTOCONFIG</span><br><span>@@ -10,28 +28,33 @@</span><br><span> </span><br><span> all: tint</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-tint: patch</span><br><span style="color: hsl(0, 100%, 40%);">- echo " MAKE TINT "</span><br><span style="color: hsl(0, 100%, 40%);">- $(MAKE) -C tint</span><br><span style="color: hsl(120, 100%, 40%);">+################################################################################</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Three stages of TINT build system:</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# 1) generate_core.sh extracts the core part from buildgcc script,</span><br><span style="color: hsl(120, 100%, 40%);">+# most importantly the checksum calculation/verification functions</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# 2) tintify_core.sh adds the TINT-specific footer/header to the core,</span><br><span style="color: hsl(120, 100%, 40%);">+# such as the properties of current version including its checksum</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# 3) tint.sh - generated and "tintified" core script - builds a TINT</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+################################################################################</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-patch: download</span><br><span style="color: hsl(0, 100%, 40%);">- cd tint; \</span><br><span style="color: hsl(0, 100%, 40%);">- if [ -e debian ]; then \</span><br><span style="color: hsl(0, 100%, 40%);">- rm -rf debian typedefs.h Makefile; \</span><br><span style="color: hsl(0, 100%, 40%);">- touch Makefile; \</span><br><span style="color: hsl(0, 100%, 40%);">- patch -l -p1 < ../libpayload_tint.patch; \</span><br><span style="color: hsl(0, 100%, 40%);">- fi</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-download:</span><br><span style="color: hsl(0, 100%, 40%);">- test -d tint || { wget $(project_url); \</span><br><span style="color: hsl(0, 100%, 40%);">- tar -xvf $(archive_name); \</span><br><span style="color: hsl(0, 100%, 40%);">- rm $(archive_name); \</span><br><span style="color: hsl(0, 100%, 40%);">- mv tint-0.04+nmu1 tint; }</span><br><span style="color: hsl(120, 100%, 40%);">+tint:</span><br><span style="color: hsl(120, 100%, 40%);">+ ./generate_core.sh ${buildgcc} ${corescript} prepare_before_patch</span><br><span style="color: hsl(120, 100%, 40%);">+ ./tintify_core.sh ${corescript} ${tintified} \</span><br><span style="color: hsl(120, 100%, 40%);">+ ${TINT_VERSION} ${TINT_ARCHIVE} ${TINT_DIR} ${TINT_CHECKSUM}</span><br><span style="color: hsl(120, 100%, 40%);">+ ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+ mv ./${TINT_DIR} ./tint</span><br><span> </span><br><span> clean:</span><br><span style="color: hsl(0, 100%, 40%);">- test -d tint && $(MAKE) -C tint clean || exit 0</span><br><span style="color: hsl(120, 100%, 40%);">+ test -d ./tint && $(MAKE) -C ./tint clean || exit 0</span><br><span> </span><br><span> distclean:</span><br><span style="color: hsl(0, 100%, 40%);">- rm -rf tint</span><br><span style="color: hsl(120, 100%, 40%);">+ rm -rf ./tint</span><br><span style="color: hsl(120, 100%, 40%);">+ rm -f ${corescript}</span><br><span style="color: hsl(120, 100%, 40%);">+ rm -f ${tintified}</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-.PHONY: download patch tint clean distclean</span><br><span style="color: hsl(120, 100%, 40%);">+.PHONY: tint clean distclean</span><br><span>diff --git a/payloads/external/tint/generate_core.sh b/payloads/external/tint/generate_core.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..f891178</span><br><span>--- /dev/null</span><br><span>+++ b/payloads/external/tint/generate_core.sh</span><br><span>@@ -0,0 +1,100 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/sh</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# generate_core.sh extracts the core part from buildgcc script,</span><br><span style="color: hsl(120, 100%, 40%);">+# most importantly the checksum calculation/verification functions</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Copyright (C) 2018 Mike Banon <mikebdp2@gmail.com></span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################################</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# USAGE:</span><br><span style="color: hsl(120, 100%, 40%);">+# ./generate_core.sh <buildgcc> <corescript> prepare_before_patch</span><br><span style="color: hsl(120, 100%, 40%);">+# where</span><br><span style="color: hsl(120, 100%, 40%);">+# buildgcc - path to input buildgcc script</span><br><span style="color: hsl(120, 100%, 40%);">+# corescript - path to output core part script</span><br><span style="color: hsl(120, 100%, 40%);">+# prepare_before_patch - optional argument to insert prepare_${package}</span><br><span style="color: hsl(120, 100%, 40%);">+# call into the unpack_and_patch function, e.g.</span><br><span style="color: hsl(120, 100%, 40%);">+# for removing some files with rm command</span><br><span style="color: hsl(120, 100%, 40%);">+# in order to reduce the size of patch file</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################################</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+buildgcc=$1</span><br><span style="color: hsl(120, 100%, 40%);">+corescript=$2</span><br><span style="color: hsl(120, 100%, 40%);">+prepare_before_patch=$3</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Imports the source file fragment between start and end into the</span><br><span style="color: hsl(120, 100%, 40%);">+# destination file, optionally excluding the last line if not needed</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+import_from_file() {</span><br><span style="color: hsl(120, 100%, 40%);">+ source=$1</span><br><span style="color: hsl(120, 100%, 40%);">+ destination=$2</span><br><span style="color: hsl(120, 100%, 40%);">+ start=$3</span><br><span style="color: hsl(120, 100%, 40%);">+ end=$4</span><br><span style="color: hsl(120, 100%, 40%);">+ last_line_disabled=$5</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ -z ${last_line_disabled} ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ sed -n "/^${start}/,/^${end}/{/^${start}/{p;n};{p}}" $source >> $destination</span><br><span style="color: hsl(120, 100%, 40%);">+ else</span><br><span style="color: hsl(120, 100%, 40%);">+ sed -n "/^${start}/,/^${end}/{/^${start}/{p;n};/^${end}/{q};{p}}" $source >> $destination</span><br><span style="color: hsl(120, 100%, 40%);">+ fi</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Import the color defines together with UNAME/HALT_FOR_TOOLS variables</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+import_from_file $buildgcc $corescript "red=" "HALT_FOR_TOOLS=0" || exit "$?"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Import the core functions</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+FUNCTIONS="please_install searchtool download compute_hash error_hash_mismatch verify_hash unpack_and_patch"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+for F in $FUNCTIONS; do</span><br><span style="color: hsl(120, 100%, 40%);">+ import_from_file $buildgcc $corescript "$F()" "}" || exit "$?"</span><br><span style="color: hsl(120, 100%, 40%);">+done</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Import a fragment where we find tar/patch/make and other essential tools</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+import_from_file $buildgcc $corescript "# Find all the required tools" "# Allow" last_line_disabled || exit "$?"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Import a fragment with conditional exit if some required tools were not found</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+import_from_file $buildgcc $corescript "if \[ \"\$HALT_FOR_TOOLS" "fi" || exit "$?"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Avoid the unnecessary subdirectories holding a single file each</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+sed -i -e "s/patches\///g" $corescript</span><br><span style="color: hsl(120, 100%, 40%);">+sed -i -e "s/sum\///g" $corescript</span><br><span style="color: hsl(120, 100%, 40%);">+sed -i -e "s/tarballs\///g" $corescript</span><br><span style="color: hsl(120, 100%, 40%);">+sed -i -e "s/cd tarballs//g" $corescript</span><br><span style="color: hsl(120, 100%, 40%);">+sed -i -e "s/cd \.\.//g" $corescript</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Get the known checksum without using a dedicated single-line file</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+sed -i -e "s/\tknown_hash=\"\$(get_known_hash.*/\tknown_hash=\"\$2\"/g" $corescript</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Update the paths printed at the error messages</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+sed -i -e "s/util\/crossgcc\///g" $corescript</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Insert prepare_${package} function call between the unpack and patch operations</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+if [ ! -z ${prepare_before_patch} ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ sed -i -e "/\$TAR \$FLAGS \$(basename \$archive)/a prepare_\${package} || exit \"\$?\"" $corescript</span><br><span style="color: hsl(120, 100%, 40%);">+fi</span><br><span>diff --git a/payloads/external/tint/libpayload_tint.patch b/payloads/external/tint/tint-0.04+nmu1_libpayload.patch</span><br><span>similarity index 100%</span><br><span>rename from payloads/external/tint/libpayload_tint.patch</span><br><span>rename to payloads/external/tint/tint-0.04+nmu1_libpayload.patch</span><br><span>diff --git a/payloads/external/tint/tintify_core.sh b/payloads/external/tint/tintify_core.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..a12020d</span><br><span>--- /dev/null</span><br><span>+++ b/payloads/external/tint/tintify_core.sh</span><br><span>@@ -0,0 +1,71 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/sh</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# tintify_core.sh adds the TINT-specific footer/header to the core,</span><br><span style="color: hsl(120, 100%, 40%);">+# such as the properties of current TINT version including its checksum</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Copyright (C) 2018 Mike Banon <mikebdp2@gmail.com></span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+################################################################################</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# USAGE:</span><br><span style="color: hsl(120, 100%, 40%);">+# ./tintify_core.sh <corescript> <tintified> \</span><br><span style="color: hsl(120, 100%, 40%);">+# <TINT_VERSION> <TINT_ARCHIVE> <TINT_DIR> <TINT_CHECKSUM></span><br><span style="color: hsl(120, 100%, 40%);">+# where</span><br><span style="color: hsl(120, 100%, 40%);">+# corescript - path to input core script</span><br><span style="color: hsl(120, 100%, 40%);">+# tintified - path to output tint script</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+################################################################################</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+corescript=$1</span><br><span style="color: hsl(120, 100%, 40%);">+tintified=$2</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# TINT-specific header</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Insert the properties of the current TINT version</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+echo "#!/bin/sh" > $tintified</span><br><span style="color: hsl(120, 100%, 40%);">+echo "TINT_VERSION=${3}" >> $tintified</span><br><span style="color: hsl(120, 100%, 40%);">+echo "TINT_ARCHIVE=${4}" >> $tintified</span><br><span style="color: hsl(120, 100%, 40%);">+echo "TINT_DIR=${5}" >> $tintified</span><br><span style="color: hsl(120, 100%, 40%);">+echo "TINT_CHECKSUM=${6}" >> $tintified</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Add the prepare_TINT() function, it will remove the unneeded debian directory</span><br><span style="color: hsl(120, 100%, 40%);">+# as well as typedefs.h and old Makefile to significantly reduce the patch size</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+echo "prepare_TINT() {" >> $tintified</span><br><span style="color: hsl(120, 100%, 40%);">+echo "if [ ! -z ./\${TINT_DIR} ] && [ -e ./\${TINT_DIR}/debian ]; then" >> $tintified</span><br><span style="color: hsl(120, 100%, 40%);">+echo "rm -rf ./\${TINT_DIR}/debian ./\${TINT_DIR}/typedefs.h ./\${TINT_DIR}/Makefile;" >> $tintified</span><br><span style="color: hsl(120, 100%, 40%);">+echo "touch ./\${TINT_DIR}/Makefile;" >> $tintified</span><br><span style="color: hsl(120, 100%, 40%);">+echo "fi" >> $tintified</span><br><span style="color: hsl(120, 100%, 40%);">+echo "}" >> $tintified</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Importing the core script</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+cat ${corescript} >> ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# TINT-specific footer</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+echo "printf \"Downloading and verifing TINT tarball ... \\n\"" >> ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+echo "download TINT || exit \"\$?\"" >> ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+echo "verify_hash TINT \${TINT_CHECKSUM} || exit \"\$?\"" >> ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+echo "printf \"Downloaded TINT tarball ... \${green}ok\${NC}\\n\"" >> ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+echo "printf \"Unpacking and patching TINT... \\n\"" >> ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+echo "unpack_and_patch TINT || exit 1" >> ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+echo "printf \"Unpacked and patched TINT... \${green}ok\${NC}\\n\"" >> ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+echo "printf \"Building TINT ... \\n\"" >> ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+echo "make -C ./\${TINT_DIR}" >> ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+echo "printf \"TINT built ... \${green}ok\${NC}\\n\"" >> ${tintified}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chmod +x ${tintified}</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/23856">change 23856</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/23856"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I1d24f222d1b92030b81bba3951e243a2a9f37290 </div>
<div style="display:none"> Gerrit-Change-Number: 23856 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Mike Banon <mikebdp2@gmail.com> </div>