summaryrefslogtreecommitdiff
path: root/resources/scripts/build/release/u-boot-stable-src-release
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2021-12-18 01:46:19 +0100
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2022-02-10 10:55:03 +0100
commit7422411b247945e000911f3f738227d17c337b20 (patch)
treeaa8e06a16936e3efe844739b286a2d14c43c6e4a /resources/scripts/build/release/u-boot-stable-src-release
parentae0be6f8b4af05ba8ea959690c2aa4e17609f0e7 (diff)
Add support for releasing deblobbed u-boot 2020.07 source tarballs
Once the tarball are released, it will enable distributions to use these tarballs to produce deblobbed u-boot packages. Note that the produced tarball is not reproducible yet. Because of that it has to be trusted. During a release, it's a good idea to sign the uncompressed tarball as the various compression formats and associated tools make different tradeoffs. For instance with xz, xz -9e tends to compress really well with the the most used xz[1] implementation, and most GNU/Linux users probably already have it installed, but and the drawbacks is that the format is very fragile[2]. The lzip format is more suited for long term archiving but its most packaged implementation[3] is less likely to be already installed by users than more well known formats like xz, bzip2 or gzip. Being able to add more compression formats after the release is also useful, for instance to accommodate different build systems or use cases (like being able to build u-boot with less dependencies in distributions like Guix, or building u-boot directly on devices which don't have enough RAM for xz for instance). [1]https://tukaani.org/xz/ [2]https://www.nongnu.org/lzip/xz_inadequate.html [3]https://www.nongnu.org/lzip/ Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'resources/scripts/build/release/u-boot-stable-src-release')
-rwxr-xr-xresources/scripts/build/release/u-boot-stable-src-release60
1 files changed, 60 insertions, 0 deletions
diff --git a/resources/scripts/build/release/u-boot-stable-src-release b/resources/scripts/build/release/u-boot-stable-src-release
new file mode 100755
index 00000000..357338cf
--- /dev/null
+++ b/resources/scripts/build/release/u-boot-stable-src-release
@@ -0,0 +1,60 @@
+#!/usr/bin/env bash
+
+#
+# helper script: generate deblobbed stable u-boot source code releases
+#
+# Copyright (C) 2020,2021 Leah Rowe <info@minifree.org>
+# Copyright (C) 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+#
+# 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 <http://www.gnu.org/licenses/>.
+#
+
+[ "x${DEBUG+set}" = 'xset' ] && set -v
+set -u -e
+
+version="v2021.07"
+revision="r1"
+
+topdir="$(realpath $(dirname $(realpath $0))/../../../../)"
+tmpdir="${topdir}/release/u-boot/u-boot-${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"