From f955248044767504fb7c6c0e67e545b84cb1008c Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Wed, 16 Feb 2022 17:58:43 +0100 Subject: u-boot-stable-src-release: rename to u-boot-libre If the script is named u-boot-stable-src-release and that users see an u-boot-libre tarball they will not make the link between both unless we rename the script. Signed-off-by: Denis 'GNUtoo' Carikli --- resources/scripts/build/release/u-boot-libre | 60 ++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100755 resources/scripts/build/release/u-boot-libre (limited to 'resources/scripts/build/release/u-boot-libre') diff --git a/resources/scripts/build/release/u-boot-libre b/resources/scripts/build/release/u-boot-libre new file mode 100755 index 00000000..97a97628 --- /dev/null +++ b/resources/scripts/build/release/u-boot-libre @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +# +# helper script: generate deblobbed stable u-boot source code releases +# +# Copyright (C) 2020,2021 Leah Rowe +# 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 + +version="2021.07" +revision="r1" + +topdir="$(realpath $(dirname $(realpath $0))/../../../../)" +tmpdir="${topdir}/release/u-boot-libre/${version}-${revision}/u-boot-libre-${version}-${revision}" +tarball="${tmpdir}.tar" + +printf "Building source code archive, version %s revision %s\n" "${version}" "${revision}" + +cd "${topdir}" +"${topdir}/download" u-boot + +rm -rf \ + "${tmpdir}/" \ + "${tarball}" \ + "${tarball}.lz" \ + "${tarball}.xz" + +mkdir -p "$(dirname ${tmpdir})" +cp -R "u-boot/u-boot/" "${tmpdir}" + +rm -rf ${tmpdir}/.git ${tmpdir}/.gitignore +make -C ${tmpdir} distclean + +prefix="$(dirname ${tmpdir} | sed 's#^/*##')/" +tar cf "${tarball}" "${tmpdir}" --transform="s#${prefix}##" +lzip -9 --keep -vv "${tarball}" +xz -9 --keep -vv "${tarball}" + +rm -rf "${tmpdir}/" + +printf "Source code archives available at:\n\t%s\n\t%s\n\t%s\n" \ + "${tarball}" \ + "${tarball}.lz" \ + "${tarball}.xz" -- cgit v1.2.1 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 --- resources/scripts/build/release/u-boot-libre | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'resources/scripts/build/release/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}" -- cgit v1.2.1 From 414aa562875477e58684d40d9472cd2b94c3e9b4 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Wed, 16 Feb 2022 15:16:33 +0100 Subject: u-boot-libre: Add help and support for multiple versions Signed-off-by: Denis 'GNUtoo' Carikli --- resources/scripts/build/release/u-boot-libre | 118 ++++++++++++++++++++------- 1 file changed, 88 insertions(+), 30 deletions(-) (limited to 'resources/scripts/build/release/u-boot-libre') diff --git a/resources/scripts/build/release/u-boot-libre b/resources/scripts/build/release/u-boot-libre index 0f492421..7aaff3bf 100755 --- a/resources/scripts/build/release/u-boot-libre +++ b/resources/scripts/build/release/u-boot-libre @@ -23,44 +23,102 @@ [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e -version="2021.07" revision="r1" -topdir="$(realpath $(dirname $(realpath $0))/../../../../)" -tmpdir="${topdir}/release/u-boot-libre/${version}-${revision}/u-boot-libre-${version}-${revision}" -tarball="${tmpdir}.tar" +supported_uboot_versions=" \ + 2021.07 \ +" -printf "Building source code archive, version %s revision %s\n" "${version}" "${revision}" +usage() +{ + progname="resources/scripts/build/release/u-boot-libre" -cd "${topdir}" -"${topdir}/download" u-boot + printf "Usage:\n" + printf "\t%s # %s\n" \ + "${progname}" \ + "Release deblobbed u-boot tarballs for all supported versions" + printf "\t%s [version] # %s\n" \ + "${progname}" \ + "Release deblobbed u-boot tarballs for the given versions" + printf "\t%s --list-versions # %s\n" \ + "${progname}" \ + "List supported u-boot versions" + printf "\t%s --help # %s\n" \ + "${progname}" \ + "Prints this help" +} -rm -rf \ - "${tmpdir}/" \ - "${tarball}" \ - "${tarball}.lz" \ - "${tarball}.xz" +release_deblobbed_uboot() +{ + version="$1" -mkdir -p "$(dirname ${tmpdir})" -cp -R "u-boot/u-boot/" "${tmpdir}" + topdir="$(realpath $(dirname $(realpath $0))/../../../../)" + versiondir="${topdir}/release/u-boot-libre/${version}-${revision}" + tmpdir="${versiondir}/u-boot-libre-${version}-${revision}" + tarball="${tmpdir}.tar" -rm -rf ${tmpdir}/.git ${tmpdir}/.gitignore -make -C ${tmpdir} distclean + printf "Building source code archive, version %s revision %s\n" \ + "${version}" "${revision}" -prefix="$(dirname ${tmpdir} | sed 's#^/*##')/" -tar cf "${tarball}" "${tmpdir}" \ - --transform="s#${prefix}##" \ - --format=gnu \ - --sort=name \ - --owner=0 --group=0 --numeric-owner \ - --mtime="1970-01-01" \ + cd "${topdir}" + "${topdir}/download" u-boot "v${version}" -lzip -9 --keep -vv "${tarball}" -xz -9 --keep -vv "${tarball}" + rm -rf \ + "${tmpdir}/" \ + "${tarball}" \ + "${tarball}.lz" \ + "${tarball}.xz" -rm -rf "${tmpdir}/" + mkdir -p "$(dirname ${tmpdir})" + cp -R "u-boot/u-boot/" "${tmpdir}" -printf "Source code archives available at:\n\t%s\n\t%s\n\t%s\n" \ - "${tarball}" \ - "${tarball}.lz" \ - "${tarball}.xz" + rm -rf ${tmpdir}/.git ${tmpdir}/.gitignore + make -C ${tmpdir} distclean + + prefix="$(dirname ${tmpdir} | sed 's#^/*##')/" + 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}" + + rm -rf "${tmpdir}/" + + printf "Source code archives available at:\n\t%s\n\t%s\n\t%s\n" \ + "${tarball}" \ + "${tarball}.lz" \ + "${tarball}.xz" +} + +if [ $# -eq 0 ] ; then + for version in ${supported_uboot_versions} ; do + release_deblobbed_uboot "${version}" + done + exit 0 +elif [ $# -eq 1 -a "$1" == "--help" ] ; then + usage + exit 0 +elif [ $# -eq 1 -a "$1" == "--list-versions" ] ; then + for version in ${supported_uboot_versions} ; do + printf "${version}\n" + done + exit 0 +elif [ $# -eq 1 ] ; then + found=0 + for revision in ${supported_uboot_revisions} ; do + if [ "${revision}" = "$1" ] ; then + release_deblobbed_uboot "$1" + exit 0 + fi + done + + printf "Error: Version '${1}' is not supported\n" + + exit 1 +fi + +exit 0 -- cgit v1.2.1 From ee2731af4493e0e9510e1a5f9bb48bb91feaddcc Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Wed, 16 Feb 2022 15:31:08 +0100 Subject: boot-libre: ship the blob list too This should enable various distributions and build system to reuse that blob to deblob u-boot releases themselves. Signed-off-by: Denis 'GNUtoo' Carikli --- resources/scripts/build/release/u-boot-libre | 66 ++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 4 deletions(-) (limited to 'resources/scripts/build/release/u-boot-libre') diff --git a/resources/scripts/build/release/u-boot-libre b/resources/scripts/build/release/u-boot-libre index 7aaff3bf..30c5a0ab 100755 --- a/resources/scripts/build/release/u-boot-libre +++ b/resources/scripts/build/release/u-boot-libre @@ -29,6 +29,11 @@ supported_uboot_versions=" \ 2021.07 \ " +topdir="$(realpath $(dirname $(realpath $0))/../../../../)" +uboot_release_topdir="${topdir}/release/u-boot-libre" + +release_files="" + usage() { progname="resources/scripts/build/release/u-boot-libre" @@ -48,13 +53,36 @@ usage() "Prints this help" } +append_release_file() +{ + if [ -z "${release_files}" ] ; then + release_files="${release_files}$1" + else + release_files="${release_files} $1" + fi +} + +append_release_files() +{ + for file in "$@" ; do + append_release_file "${file}" + done +} + +print_release_files() +{ + printf "Source code archives available at:\n" + for file in "${release_files}" ; do + printf "\t${file}\n" + done +} + release_deblobbed_uboot() { version="$1" - topdir="$(realpath $(dirname $(realpath $0))/../../../../)" - versiondir="${topdir}/release/u-boot-libre/${version}-${revision}" - tmpdir="${versiondir}/u-boot-libre-${version}-${revision}" + release_version_dir="${uboot_release_topdir}/${version}-${revision}" + tmpdir="${release_version_dir}/u-boot-libre-${version}-${revision}" tarball="${tmpdir}.tar" printf "Building source code archive, version %s revision %s\n" \ @@ -88,15 +116,44 @@ release_deblobbed_uboot() rm -rf "${tmpdir}/" - printf "Source code archives available at:\n\t%s\n\t%s\n\t%s\n" \ + append_release_files \ "${tarball}" \ "${tarball}.lz" \ "${tarball}.xz" } +release_uboot_blobs_list() +{ + version="$1" + + blobs_list="$(${topdir}/download u-boot --blobs-list v${version})" + + release_version_dir="${uboot_release_topdir}/${version}-${revision}" + destination="${release_version_dir}/blobs-${version}-${revision}.list" + + cd "${topdir}" + + rm -rf \ + "${destination}" \ + "${destination}.lz" \ + "${destination}.xz" + + install -m 755 -d "${release_version_dir}" + install -m 644 -T "${blobs_list}" "${destination}" + + lzip -9 --keep -vv "${destination}" + xz -9 --keep -vv "${destination}" + + append_release_files \ + "${destination}" \ + "${destination}.lz" \ + "${destination}.xz" +} + if [ $# -eq 0 ] ; then for version in ${supported_uboot_versions} ; do release_deblobbed_uboot "${version}" + release_uboot_blobs_list "${version}" done exit 0 elif [ $# -eq 1 -a "$1" == "--help" ] ; then @@ -112,6 +169,7 @@ elif [ $# -eq 1 ] ; then for revision in ${supported_uboot_revisions} ; do if [ "${revision}" = "$1" ] ; then release_deblobbed_uboot "$1" + release_uboot_blobs_list "$1" exit 0 fi done -- cgit v1.2.1 From 425162db93c50033df08ada44f3a08142bf1ed12 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Wed, 16 Feb 2022 17:37:26 +0100 Subject: boot-libre: add --gen-blob-script to generate a deblob script This should enable various distributions and build system to reuse the generated script to deblob u-boot releases themselves. Signed-off-by: Denis 'GNUtoo' Carikli --- resources/scripts/build/release/u-boot-libre | 39 ++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) (limited to 'resources/scripts/build/release/u-boot-libre') diff --git a/resources/scripts/build/release/u-boot-libre b/resources/scripts/build/release/u-boot-libre index 30c5a0ab..a871aab7 100755 --- a/resources/scripts/build/release/u-boot-libre +++ b/resources/scripts/build/release/u-boot-libre @@ -71,8 +71,11 @@ append_release_files() print_release_files() { - printf "Source code archives available at:\n" - for file in "${release_files}" ; do + version="$1" + printf "Source code archives for u-boot-libre-%s-%s available at:\n" \ + "${version}" "${revision}" + + for file in ${release_files} ; do printf "\t${file}\n" done } @@ -150,10 +153,40 @@ release_uboot_blobs_list() "${destination}.xz" } +release_uboot_deblob_script() +{ + version="$1" + + deblob_script="$(${topdir}/download u-boot --gen-deblob-script v${version})" + + release_version_dir="${uboot_release_topdir}/${version}-${revision}" + destination="${release_version_dir}/deblob-${version}-${revision}.sh" + + cd "${topdir}" + + rm -rf \ + "${destination}" \ + "${destination}.lz" \ + "${destination}.xz" + + install -m 755 -d "${release_version_dir}" + install -m 644 -T "${blobs_list}" "${destination}" + + lzip -9 --keep -vv "${destination}" + xz -9 --keep -vv "${destination}" + + append_release_files \ + "${destination}" \ + "${destination}.lz" \ + "${destination}.xz" +} + if [ $# -eq 0 ] ; then for version in ${supported_uboot_versions} ; do release_deblobbed_uboot "${version}" release_uboot_blobs_list "${version}" + release_uboot_deblob_script "${version}" + print_release_files "${version}" done exit 0 elif [ $# -eq 1 -a "$1" == "--help" ] ; then @@ -170,6 +203,8 @@ elif [ $# -eq 1 ] ; then if [ "${revision}" = "$1" ] ; then release_deblobbed_uboot "$1" release_uboot_blobs_list "$1" + release_uboot_deblob_script "$1" + print_release_files "$1" exit 0 fi done -- cgit v1.2.1