diff options
author | Leah Rowe <leah@libreboot.org> | 2023-10-08 02:34:50 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-10-08 08:08:39 +0100 |
commit | d1ba94ea0842c2e464f2c9177529de5319c8a33f (patch) | |
tree | 50498b862e2d7cc8e1decbf0ffce3229374930d9 /script/update/release/src | |
parent | e7a77b50e865c715bbf7c7566e87967c53136d8b (diff) |
update/release/*: merge to update/project/release
The logic has been re-written, where source archives are
concerned. This clones the current repository, and starts
a new build from scratch. A custom release directory is
possible, by passing -d
This eliminates a step during build-testing, saving hours
of time, because it builds the release archive *inside* the
release archive, with git files removed, thus replicating
the same setup that the user would have.
This also makes everything a bit more consistent, because
it's guaranteed that a release archive will always have
the same files; previously, the release build script would
only copy what was already built, without building anything.
Now, this script builds everything itself.
The script also builds serprog images, not just coreboot.
Usage:
./update project release
If -d is not passed, release/ is used inside lbmk.
Otherwise, you could do:
./update project release -d /path/to/directory
If the directory exists, this script will exit (error).
Other minor fixes: build/fw/coreboot: make version in
coreboot-version (file) not contain hyphens, to work
around a quirk in coreboot's build system when not building
on regular libreboot releases. this quirk only appears
when lbmk is not being compiled under git.
The other main benefit of this change is that the new
script will probably require a lot less maintenance.
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'script/update/release/src')
-rwxr-xr-x | script/update/release/src | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/script/update/release/src b/script/update/release/src deleted file mode 100755 index d75ec170..00000000 --- a/script/update/release/src +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/env sh -# SPDX-License-Identifier: GPL-3.0-or-later -# SPDX-FileCopyrightText: 2020,2021,2023 Leah Rowe <leah@libreboot.org> - -[ "x${DEBUG+set}" = 'xset' ] && set -v -set -u -e - -. "include/err.sh" - -trees_fetch_list="coreboot u-boot seabios" -simple_fetch_list="flashrom grub memtest86plus me_cleaner uefitool" -simple_fetch_list="${simple_fetch_list} bios_extract biosutilities" -download_only_list="pico-serprog stm32-vserprog" - -dirlist="config util script include" -linklist="update" # symlinks in main directory, to script: lbmk -filelist="build README.md COPYING version versiondate projectname .gitignore" - -eval "$(setvars "" reldir dirname srcdir)" - -printf "Building source code archive, version %s\n" "${version}" - -main() -{ - create_release_directory - download_modules - copy_files - purge_files - - create_release_archive - printf "Source code archive available at %s.tar.xz\n\n" "${srcdir}" -} - -create_release_directory() -{ - reldir="release/${version}" - dirname="${projectname}-${version}_src" - srcdir="${reldir}/${dirname}" - - xx_ mkdir -p "${reldir}" - xx_ rm -Rf "${srcdir}" "${srcdir}.tar.xz" - xx_ mkdir -p "${srcdir}" -} - -download_modules() -{ - for modname in ${trees_fetch_list} ${simple_fetch_list} \ - ${download_only_list}; do - [ -d "src/${modname}/" ] || \ - xx_ ./update project trees -f ${modname} - done -} - -copy_files() -{ - xx_ cp -R "src" "${srcdir}/src" - for dir in ${trees_fetch_list}; do - xx_ rm -Rf "${srcdir}/src/${dir}/${dir}" - done - for dir in ${dirlist}; do - xx_ cp -R "${dir}/" "${srcdir}/" - done - - for i in ${filelist}; do - [ -f "${i}" ] || fail "copy_files: '${i}' does not exist" - xx_ cp "${i}" "${srcdir}/" - done - ( - xx_ cd "${srcdir}/" - for i in ${linklist}; do - xx_ ln -s build "${i}" - done - ) -} - -purge_files() -{ - ( - xx_ cd "${srcdir}" - [ ! -d "src/coreboot/default/util/kbc1126" ] || \ - xx_ ./update project trees -c "src/coreboot/default/util/kbc1126" - xx_ ./update project trees -x coreboot - for p in u-boot seabios coreboot; do - xx_ ./update project trees -c "${p}" - done - xx_ ./update project trees -c bios_extract flashrom grub uefitool \ - stm32-vserprog stm32-vserprog/libopencm3 util/* memtest86plus - - xx_ rm -Rf .git */.git* */*/.git* */*/*/.git* */*/*/*/.git* \ - */*/*/*/*/.git* */*/*/*/*/*/.git* */*/*/*/*/*/*/.git* \ - */*/*/*/*/*/*/*/.git* - xx_ rm -Rf cbutils elf src/pico-serprog/build - ) -} - -create_release_archive() -{ - ( - xx_ cd "${reldir}/" - xx_ tar -c "${dirname}/" | xz -T0 -9e >"${dirname}.tar.xz" - xx_ rm -Rf "${dirname}/" - ) -} - -fail() -{ - [ -z "${srcdir}" ] || rm -Rf "${srcdir}" 1>/dev/null 2>/dev/null || : - fail "${1}" -} - -main $@ |