871da8e580
tar doesn't sort by default and takes the order of the OS which is in most cases the order of creation. Sort by name and set influencing environment TZ and language to be reproducible. Change-Id: I3d043952417000d12e81353677f1ea4aa2da4fc1 Signed-off-by: Alexander Couzens <lynxis@fe80.eu> Reviewed-on: https://review.coreboot.org/16556 Tested-by: build bot (Jenkins) Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@googlemail.com>
47 lines
1.9 KiB
Bash
Executable file
47 lines
1.9 KiB
Bash
Executable file
#!/bin/bash
|
|
# ${VERSION_NAME}: new version name
|
|
# ${GPG_KEY_ID}: gpg key id (if not don't sign)
|
|
# ${USERNAME}: username (if not default to https)
|
|
# ${COMMIT_ID}: commit id (if not master)
|
|
VERSION_NAME=${1}
|
|
COMMIT_ID=${2}
|
|
USERNAME=${3}
|
|
GPG_KEY_ID=${4}
|
|
|
|
set -e
|
|
|
|
# set local + tz to be reproducible
|
|
LC_ALL=C
|
|
LANG=C
|
|
TZ=UTC
|
|
export LC_ALL LANG TZ
|
|
|
|
if [ -z "${VERSION_NAME}" ] || [ "${VERSION_NAME}" = "--help" ]; then
|
|
echo "usage: $0 <version> [commit id] [gpg key id] [username]"
|
|
echo "tags a new coreboot version and creates a tar archive"
|
|
exit 1
|
|
fi
|
|
if [ -n "${USERNAME}" ]; then
|
|
git clone --recurse-submodules ssh://${USERNAME}@review.coreboot.org:29418/coreboot.git coreboot-${VERSION_NAME}
|
|
else
|
|
git clone --recurse-submodules https://review.coreboot.org/coreboot.git coreboot-${VERSION_NAME}
|
|
fi
|
|
cd coreboot-${VERSION_NAME}
|
|
if [ -n "${COMMIT_ID}" ]; then
|
|
git reset --hard ${COMMIT_ID}
|
|
fi
|
|
git submodule update --init --checkout
|
|
if [ -n "${GPG_KEY_ID}" ]; then
|
|
git tag -a -s -u ${GPG_KEY_ID} --force ${VERSION_NAME} -m "coreboot version ${VERSION_NAME}"
|
|
else
|
|
git tag -a --force ${VERSION_NAME} -m "coreboot version ${VERSION_NAME}"
|
|
fi
|
|
printf "${VERSION_NAME}-$(git log --pretty=%H|head -1)\n" > .coreboot-version
|
|
tstamp=$(git log --pretty=format:%ci -1)
|
|
cd ..
|
|
tar --sort=name --mtime="$tstamp" --owner=coreboot:1000 --group=coreboot:1000 --exclude-vcs --exclude=coreboot-${VERSION_NAME}/3rdparty/blobs -cvf - coreboot-${VERSION_NAME} |xz -9 > coreboot-${VERSION_NAME}.tar.xz
|
|
tar --sort=name --mtime="$tstamp" --owner=coreboot:1000 --group=coreboot:1000 --exclude-vcs -cvf - coreboot-${VERSION_NAME}/3rdparty/blobs |xz -9 > coreboot-blobs-${VERSION_NAME}.tar.xz
|
|
if [ -n "${GPG_KEY_ID}" ]; then
|
|
gpg2 --armor --local-user ${GPG_KEY_ID} --output coreboot-${VERSION_NAME}.tar.xz.sig --detach-sig coreboot-${VERSION_NAME}.tar.xz
|
|
gpg2 --armor --local-user ${GPG_KEY_ID} --output coreboot-blobs-${VERSION_NAME}.tar.xz.sig --detach-sig coreboot-blobs-${VERSION_NAME}.tar.xz
|
|
fi
|