From 1afdbaad1af3376b64cf7e9f7264db8da7070046 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Wed, 16 Feb 2022 14:56:13 +0100 Subject: u-boot-libre: Add reproducible builds and tests The tar options come from the tutorial to remove archives metadata at reproducible-builds.org[1]. [1]https://reproducible-builds.org/docs/archives/ Signed-off-by: Denis 'GNUtoo' Carikli --- Makefile | 9 ++++++--- resources/scripts/build/release/u-boot-libre | 8 +++++++- tests/u-boot-libre | 29 ++++++++++++++++++++++++++++ tests/u-boot-libre.sha512 | 3 +++ 4 files changed, 45 insertions(+), 4 deletions(-) create mode 100755 tests/u-boot-libre create mode 100644 tests/u-boot-libre.sha512 diff --git a/Makefile b/Makefile index 5749c974..2fcb7553 100644 --- a/Makefile +++ b/Makefile @@ -20,9 +20,10 @@ # along with this program. If not, see . # -.PHONY: all download modules ich9m-descriptors payloads roms release clean \ - crossgcc-clean install-dependencies-ubuntu install-dependencies-debian \ - install-dependencies-arch install-dependencies-void +.PHONY: all check download modules ich9m-descriptors payloads roms release \ + clean crossgcc-clean install-dependencies-ubuntu \ + install-dependencies-debian install-dependencies-arch \ + install-dependencies-void all: roms @@ -69,3 +70,5 @@ install-dependencies-arch: install-dependencies-void: ./build dependencies void +check: + ./tests/u-boot-libre diff --git a/resources/scripts/build/release/u-boot-libre b/resources/scripts/build/release/u-boot-libre index 97a97628..0f492421 100755 --- a/resources/scripts/build/release/u-boot-libre +++ b/resources/scripts/build/release/u-boot-libre @@ -48,7 +48,13 @@ rm -rf ${tmpdir}/.git ${tmpdir}/.gitignore make -C ${tmpdir} distclean prefix="$(dirname ${tmpdir} | sed 's#^/*##')/" -tar cf "${tarball}" "${tmpdir}" --transform="s#${prefix}##" +tar cf "${tarball}" "${tmpdir}" \ + --transform="s#${prefix}##" \ + --format=gnu \ + --sort=name \ + --owner=0 --group=0 --numeric-owner \ + --mtime="1970-01-01" \ + lzip -9 --keep -vv "${tarball}" xz -9 --keep -vv "${tarball}" diff --git a/tests/u-boot-libre b/tests/u-boot-libre new file mode 100755 index 00000000..de234024 --- /dev/null +++ b/tests/u-boot-libre @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +# +# tests for resources/scripts/build/release/u-boot-stable-src-release +# +# Copyright (C) 2022 Denis 'GNUtoo' Carikli +# +# 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 . +# + +[ "x${DEBUG+set}" = 'xset' ] && set -v +set -u -e + +topdir="$(realpath $(dirname $(realpath $0))/../)" +progname="$(basename $(realpath $0))" + +"${topdir}/resources/scripts/build/release/u-boot-libre" +sha512sum -c "${topdir}/tests/${progname}.sha512" diff --git a/tests/u-boot-libre.sha512 b/tests/u-boot-libre.sha512 new file mode 100644 index 00000000..2254c000 --- /dev/null +++ b/tests/u-boot-libre.sha512 @@ -0,0 +1,3 @@ +1684a70273e177cdc4f94da7214198cde5e86bebf76ff29a8e7a7ed8c2470bd392eb4b1ec7eda55ee95335e76123dc28429e90b2015453734f07c28f83358bf2 release/u-boot-libre/2021.07-r1/u-boot-libre-2021.07-r1.tar +3e26aa796759dd5af01795963cc35b1ae9c9e93844c73f22a4881bae30e98f68f8d1695983da76ab5fb8aa9785b0c37d3b8a1186ed5d64b11758a4ae2b146e2c release/u-boot-libre/2021.07-r1/u-boot-libre-2021.07-r1.tar.lz +d6bbd0c311fa7d73a018d2195618a9cff9984502624e83097e94c310557eb47da85f43a9e06bb3bc15828b050d9af0799fbaa828aff0a73e7f0592cccc4a2f47 release/u-boot-libre/2021.07-r1/u-boot-libre-2021.07-r1.tar.xz -- cgit v1.2.1