#!/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="v2022.04" revision="r1" printf "Building source code archive, version %s revision %s\n" "${version}" "${revision}" this_dir=$(realpath $(dirname $(realpath $0))) if [[ -x "${this_dir}/../../../../download" ]] # in libreboot tree? then topdir="${this_dir}/../../../../" download_dir=u-boot/u-boot tmpdir="${topdir}/release/u-boot-libre" download=( "${topdir}/download" u-boot ) bloblist="resources/u-boot/default/blobs.list" elif [[ -x ./u-boot-download.sh ]] # standalone? then topdir="${this_dir}" download_dir="${this_dir}" tmpdir="${this_dir}" download=( "${this_dir}"/u-boot-download.sh ) bloblist="${this_dir}"/u-boot-blobs.list else exit 1 fi cd "${topdir}" "${download[@]}" "${version}" "${download_dir}" "${bloblist}" release="u-boot-libre-${version/v/}-${revision}" tarball="${tmpdir}/${release}.tar" rm -rf \ "${tmpdir}/" \ "${tarball}" \ "${tarball}.lz" \ "${tarball}.xz" mkdir -p "${tmpdir}" cp -R "${download_dir}/" "${tmpdir}/${release}" rm -rf ${tmpdir}/.git ${tmpdir}/${release}/.gitignore make -C ${tmpdir} distclean prefix="$(sed 's#^/*##' <<<${tmpdir})/" tar cf "${tarball}" "${tmpdir}/${release}" --transform="s#${prefix}##" lzip -9 --keep -vv "${tarball}" xz -9 --keep -vv "${tarball}" rm -rf "${tmpdir}/${release}/" printf "Source code archives available at:\n\t%s\n\t%s\n\t%s\n" \ "${tarball}" \ "${tarball}.lz" \ "${tarball}.xz"