<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>