Merge package-source.bash & package-static.bash scripts
This commit is contained in:
parent
4488b5b93a
commit
c33c7aaf0d
97
package-release-tarballs.bash
Executable file
97
package-release-tarballs.bash
Executable file
@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
SIGNME=""
|
||||
|
||||
# git_archive_extra PREFIX EXTRA1 [EXTRA2 ...]
|
||||
#
|
||||
# Call git-archive and add additional files to the tarball.
|
||||
# Output tarball is called "$PREFIX.tar.gz" and contains one folder
|
||||
# called "$PREFIX".
|
||||
git_archive_extra() {
|
||||
local PREFIX=$1
|
||||
shift
|
||||
# Add files tracked in git
|
||||
git archive --prefix "$PREFIX/" -o "$PREFIX.tar" HEAD
|
||||
# Add "extra" files
|
||||
tar --owner=root --group=root --transform "s!^!$PREFIX/!" --append -f "$PREFIX.tar" "$@"
|
||||
# Compress
|
||||
gzip -f "$PREFIX.tar"
|
||||
}
|
||||
|
||||
package_source() {
|
||||
local GITVERSION
|
||||
GITVERSION=$(git describe --tags --dirty)
|
||||
echo "$GITVERSION" > VERSION
|
||||
|
||||
# Render the manpages and include them in the tarball. This
|
||||
# avoids a build-dependency to pandoc.
|
||||
./Documentation/MANPAGE-render.bash
|
||||
|
||||
# gocryptfs source tarball
|
||||
local PREFIX_SRC_ONLY=gocryptfs_${GITVERSION}_src
|
||||
git_archive_extra "$PREFIX_SRC_ONLY" VERSION Documentation/*.1
|
||||
|
||||
# gocryptfs source + dependencies tarball
|
||||
go mod vendor
|
||||
local PREFIX_SRC_DEPS=gocryptfs_${GITVERSION}_src-deps
|
||||
git_archive_extra "$PREFIX_SRC_DEPS" VERSION Documentation/*.1 vendor
|
||||
|
||||
rm VERSION
|
||||
rm -R vendor
|
||||
|
||||
echo "Tars created."
|
||||
SIGNME+=" $PREFIX_SRC_ONLY.tar.gz $PREFIX_SRC_DEPS.tar.gz"
|
||||
}
|
||||
|
||||
package_static_binary() {
|
||||
# Compiles the gocryptfs binary and sets $GITVERSION
|
||||
source build-without-openssl.bash
|
||||
|
||||
if ldd gocryptfs > /dev/null ; then
|
||||
echo "error: compiled gocryptfs binary is not static"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Build man pages gocryptfs.1 & gocryptfs-xray.1
|
||||
./Documentation/MANPAGE-render.bash > /dev/null
|
||||
|
||||
local ARCH
|
||||
ARCH=$(go env GOARCH)
|
||||
local OS
|
||||
OS=$(go env GOOS)
|
||||
|
||||
local TARBALL
|
||||
TARBALL=gocryptfs_${GITVERSION}_${OS}-static_${ARCH}.tar
|
||||
local TARGZ
|
||||
TARGZ=$TARBALL.gz
|
||||
|
||||
tar --owner=root --group=root --create -vf "$TARBALL" gocryptfs
|
||||
tar --owner=root --group=root --append -vf "$TARBALL" -C gocryptfs-xray gocryptfs-xray
|
||||
tar --owner=root --group=root --append -vf "$TARBALL" -C Documentation gocryptfs.1 gocryptfs-xray.1
|
||||
|
||||
gzip -f "$TARBALL"
|
||||
|
||||
echo "Tar created."
|
||||
SIGNME+=" $TARGZ"
|
||||
}
|
||||
|
||||
signing_hint() {
|
||||
local GITVERSION
|
||||
GITVERSION=$(git describe --tags --dirty)
|
||||
|
||||
echo "Hint for signing:"
|
||||
echo " for i in gocryptfs_${GITVERSION}_*.tar.gz ; do gpg -u 23A02740 --armor --detach-sig \$i ; done"
|
||||
}
|
||||
|
||||
if git describe --dirty | grep dirty ; then
|
||||
echo "Tree is dirty - I will not package this!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
package_source
|
||||
package_static_binary
|
||||
signing_hint
|
@ -1,38 +0,0 @@
|
||||
#!/bin/bash -eu
|
||||
|
||||
# git_archive_extra PREFIX EXTRA1 [EXTRA2 ...]
|
||||
# Call git-archive and add additional files to the tarball.
|
||||
git_archive_extra() {
|
||||
local PREFIX=$1
|
||||
shift
|
||||
# Add files tracked in git
|
||||
git archive --prefix "$PREFIX/" -o "$PREFIX.tar" HEAD
|
||||
# Add "extra" files
|
||||
tar --owner=root --group=root --transform "s!^!$PREFIX/!" --append -f "$PREFIX.tar" "$@"
|
||||
# Compress
|
||||
gzip -f "$PREFIX.tar"
|
||||
}
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
GITVERSION=$(git describe --tags --dirty)
|
||||
echo "$GITVERSION" > VERSION
|
||||
|
||||
# Render the manpages and include them in the tarball. This
|
||||
# avoids a build-dependency to pandoc.
|
||||
./Documentation/MANPAGE-render.bash
|
||||
|
||||
# gocryptfs source tarball
|
||||
PREFIX_SRC_ONLY=gocryptfs_${GITVERSION}_src
|
||||
git_archive_extra "$PREFIX_SRC_ONLY" VERSION Documentation/*.1
|
||||
|
||||
# gocryptfs source + dependencies tarball
|
||||
go mod vendor
|
||||
PREFIX_SRC_DEPS=gocryptfs_${GITVERSION}_src-deps
|
||||
git_archive_extra "$PREFIX_SRC_DEPS" VERSION Documentation/*.1 vendor
|
||||
|
||||
rm VERSION
|
||||
|
||||
echo "Tars created."
|
||||
echo "Hint for signing: gpg -u 23A02740 --armor --detach-sig $PREFIX_SRC_ONLY.tar.gz"
|
||||
echo " gpg -u 23A02740 --armor --detach-sig $PREFIX_SRC_DEPS.tar.gz"
|
@ -1,29 +0,0 @@
|
||||
#!/bin/bash -eu
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# Compiles the gocryptfs binary and sets $GITVERSION
|
||||
source build-without-openssl.bash
|
||||
|
||||
if ldd gocryptfs > /dev/null ; then
|
||||
echo "error: compiled gocryptfs binary is not static"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Build man pages gocryptfs.1 & gocryptfs-xray.1
|
||||
./Documentation/MANPAGE-render.bash > /dev/null
|
||||
|
||||
ARCH=$(go env GOARCH)
|
||||
OS=$(go env GOOS)
|
||||
|
||||
TARBALL=gocryptfs_${GITVERSION}_${OS}-static_${ARCH}.tar
|
||||
TARGZ=$TARBALL.gz
|
||||
|
||||
tar --owner=root --group=root --create -vf "$TARBALL" gocryptfs
|
||||
tar --owner=root --group=root --append -vf "$TARBALL" -C gocryptfs-xray gocryptfs-xray
|
||||
tar --owner=root --group=root --append -vf "$TARBALL" -C Documentation gocryptfs.1 gocryptfs-xray.1
|
||||
|
||||
gzip -f "$TARBALL"
|
||||
|
||||
echo "Tar created."
|
||||
echo "Hint for signing: gpg -u 23A02740 --armor --detach-sig $TARGZ"
|
Loading…
Reference in New Issue
Block a user