#!/bin/sh # # helper script: generate the source release archive # # Copyright (C) 2014, 2015 Francis Rowe # Copyright (C) 2015 Patrick "P. J." McDermott # # 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 printf 'Building the source release archive\n' if [ -f version ]; then version="$(cat version)" distdir="libreboot_${version}_src" else distdir='libreboot_src' fi printf 'Deleting old source release archives\n' rm -f "${distdir}.tar.xz" rm -f "release/${distdir}.tar.xz" rm -Rf "${distdir}/" mkdir "${distdir}/" printf 'Copying sources to %s/\n' "${distdir}" for resource in *; do case "${resource}" in libreboot_* | release | tobuild* | docs);; *) cp -R "${resource}" "${distdir}/";; esac done if [ -f version ]; then printf '%s\n' "${version}" >"${distdir}/version" else git rev-parse HEAD >"${distdir}/commitid" fi printf 'Cleaning files in %s/\n' "${distdir}" # Clean old builds. (cd "${distdir}/" && ./build clean all) printf '\n' # Delete Git repositories and properties and Subversion administrative # directories and properties. rm -Rf "${distdir}/bucts/".git* rm -Rf "${distdir}/flashrom/".svn* rm -Rf "${distdir}/grub/".git* # Delete useless files. rm -Rf "${distdir}/TODO/" rm -f "${distdir}/push" # Delete the deblob scripts. # Since the source archive doesn't distribute the download scripts and already # comes with a deblobbed coreboot, the deblobbing scripts aren't needed at all. rm -Rf "${distdir}/resources/utilities/coreboot-libre/" # We don't want to encourage development to happen on the release archives. # Development goes in Git. These scripts are not needed in the source archive, # because the files that they download are already included and trimmed. rm -Rf "${distdir}/resources/scripts/helpers/build/release/" rm -f "${distdir}/download" rm -Rf "${distdir}/resources/scripts/helpers/download/" rm -Rf "${distdir}/resources/scripts/helpers/build/trim/" # Patches are not needed, because they are already applied to coreboot sources. rm -Rf "${distdir}/resources/libreboot/patch/" # coreboot's crossgcc archives are distributed separately. rm -Rf "${distdir}/coreboot/util/crossgcc/tarballs/" # ich9deblob: There are certain files in there that the user most likely does # not want to share. rm -f "${distdir}/resources/utilities/ich9deblob/deblobbed_descriptor.bin" rm -f "${distdir}/resources/utilities/ich9deblob/factory.rom" rm -f "${distdir}/resources/utilities/ich9deblob/libreboot.rom" rm -f "${distdir}/resources/utilities/ich9deblob/mkdescriptor.c" rm -f "${distdir}/resources/utilities/ich9deblob/mkdescriptor.h" rm -f "${distdir}/resources/utilities/ich9deblob/mkgbe.c" rm -f "${distdir}/resources/utilities/ich9deblob/mkgbe.h" rm -f "${distdir}/resources/utilities/ich9deblob/ich9fdgbe_4m.bin" rm -f "${distdir}/resources/utilities/ich9deblob/ich9fdgbe_8m.bin" rm -f "${distdir}/resources/utilities/ich9deblob/demefactory_4kdescriptor.bin" rm -f "${distdir}/mkgbe.c" rm -f "${distdir}/mkgbe.h" rm -f "${distdir}/ich9fdgbe_8m.bin" rm -f "${distdir}/ich9fdgbe_4m.bin" printf 'Creating %s.tar.xz\n' "${distdir}" tar -c "${distdir}/" | xz -9e >"${distdir}.tar.xz" # Move the archives to the release/ directory. [ -d release/ ] || mkdir release/ mv "${distdir}.tar.xz" release/ rm -Rf "${distdir}/" printf 'Source release archives are stored in release/\n'