#!/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 revision="r1" supported_uboot_versions=" \ 2021.07 \ " usage() { progname="resources/scripts/build/release/u-boot-libre" 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" } 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}" tarball="${tmpdir}.tar" printf "Building source code archive, version %s revision %s\n" \ "${version}" "${revision}" cd "${topdir}" "${topdir}/download" u-boot "v${version}" 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}##" \ --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