u-boot-libre: Add help and support for multiple versions

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
This commit is contained in:
Denis 'GNUtoo' Carikli 2022-02-16 15:16:33 +01:00
parent 1afdbaad1a
commit 414aa56287
Signed by: GNUtoo
GPG Key ID: 5F5DFCC14177E263
1 changed files with 88 additions and 30 deletions

View File

@ -23,44 +23,102 @@
[ "x${DEBUG+set}" = 'xset' ] && set -v [ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e set -u -e
version="2021.07"
revision="r1" revision="r1"
topdir="$(realpath $(dirname $(realpath $0))/../../../../)" supported_uboot_versions=" \
tmpdir="${topdir}/release/u-boot-libre/${version}-${revision}/u-boot-libre-${version}-${revision}" 2021.07 \
tarball="${tmpdir}.tar" "
printf "Building source code archive, version %s revision %s\n" "${version}" "${revision}" usage()
{
progname="resources/scripts/build/release/u-boot-libre"
cd "${topdir}" printf "Usage:\n"
"${topdir}/download" u-boot 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 \ 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}/" \ "${tmpdir}/" \
"${tarball}" \ "${tarball}" \
"${tarball}.lz" \ "${tarball}.lz" \
"${tarball}.xz" "${tarball}.xz"
mkdir -p "$(dirname ${tmpdir})" mkdir -p "$(dirname ${tmpdir})"
cp -R "u-boot/u-boot/" "${tmpdir}" cp -R "u-boot/u-boot/" "${tmpdir}"
rm -rf ${tmpdir}/.git ${tmpdir}/.gitignore rm -rf ${tmpdir}/.git ${tmpdir}/.gitignore
make -C ${tmpdir} distclean make -C ${tmpdir} distclean
prefix="$(dirname ${tmpdir} | sed 's#^/*##')/" prefix="$(dirname ${tmpdir} | sed 's#^/*##')/"
tar cf "${tarball}" "${tmpdir}" \ tar cf "${tarball}" "${tmpdir}" \
--transform="s#${prefix}##" \ --transform="s#${prefix}##" \
--format=gnu \ --format=gnu \
--sort=name \ --sort=name \
--owner=0 --group=0 --numeric-owner \ --owner=0 --group=0 --numeric-owner \
--mtime="1970-01-01" \ --mtime="1970-01-01" \
lzip -9 --keep -vv "${tarball}" lzip -9 --keep -vv "${tarball}"
xz -9 --keep -vv "${tarball}" xz -9 --keep -vv "${tarball}"
rm -rf "${tmpdir}/" rm -rf "${tmpdir}/"
printf "Source code archives available at:\n\t%s\n\t%s\n\t%s\n" \ printf "Source code archives available at:\n\t%s\n\t%s\n\t%s\n" \
"${tarball}" \ "${tarball}" \
"${tarball}.lz" \ "${tarball}.lz" \
"${tarball}.xz" "${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