aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2024-06-18 13:44:06 +0000
committerWerner Koch <[email protected]>2024-06-18 13:44:06 +0000
commit1fe7aa346dfea46520d1e62e0ebc66352924d994 (patch)
tree6d01ea1c55fd89b464da3e17fb5283d96372003a
parentUpdate copyright notices (diff)
downloadlibassuan-1fe7aa346dfea46520d1e62e0ebc66352924d994.tar.gz
libassuan-1fe7aa346dfea46520d1e62e0ebc66352924d994.zip
Add release targets
--
-rw-r--r--Makefile.am71
1 files changed, 70 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index c6a2afb..064bc8a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -18,6 +18,17 @@
# SPDX-License-Identifier: LGPL-2.1+
## Process this file with automake to produce Makefile.in
+# Location of the released tarball archives. This is prefixed by the
+# variable RELEASE_ARCHIVE in ~/.gnupg-autogen.rc. The variable
+# RELEASE_SIGNKEY is used to specify the key for signing. Use
+# gpg-authcode-sign-sh --template
+# to create a template for ~/.gnupg-autogen.rc
+
+# Rhe suffix used in the rrelease archive.
+RELEASE_ARCHIVE_SUFFIX = libassuan
+
+# Macro to help the release target.
+RELEASE_NAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
ACLOCAL_AMFLAGS = -I m4
DISTCHECK_CONFIGURE_FLAGS = --enable-doc
@@ -58,7 +69,7 @@ distcheck-hook:
gen_start_date = 2011-12-01T00:00:00
-.PHONY: gen-ChangeLog
+.PHONY: gen-ChangeLog release sign-release
gen-ChangeLog:
set -e; \
if test -d $(top_srcdir)/.git; then \
@@ -74,3 +85,61 @@ gen-ChangeLog:
stowinstall:
$(MAKE) $(AM_MAKEFLAGS) install prefix=/usr/local/stow/libassuan
+
+release:
+ +(set -e;\
+ if [ "$(abs_top_builddir)" = "$(abs_top_srcdir)" ]; then \
+ echo "error: build directory must not be the source directory" >&2;\
+ exit 2;\
+ fi ;\
+ echo "/* Build started at $$(date -uIseconds) */" ;\
+ cd $(top_srcdir); \
+ ./autogen.sh --force; \
+ cd $(abs_top_builddir); \
+ rm -rf dist; mkdir dist ; cd dist ; \
+ $(abs_top_srcdir)/configure --enable-maintainer-mode; \
+ $(MAKE) distcheck; \
+ echo "/* Build finished at $$(date -uIseconds) */" ;\
+ echo "/*" ;\
+ echo " * Please run the final step interactivly:" ;\
+ echo " * make sign-release" ;\
+ echo " */" ;\
+ ) 2>&1 | tee "$(RELEASE_NAME).buildlog"
+
+sign-release:
+ +(set -e; \
+ test $$(pwd | sed 's,.*/,,') = dist || cd dist; \
+ x=$$(grep '^[[:blank:]]*RELEASE_ARCHIVE[[:blank:]]*=' \
+ $$HOME/.gnupg-autogen.rc|cut -d= -f2|xargs);\
+ if [ -z "$$x" ]; then \
+ echo "error: RELEASE_ARCHIVE missing in ~/.gnupg-autogen.rc">&2; \
+ exit 2;\
+ fi;\
+ myarchive="$$x/$(RELEASE_ARCHIVE_SUFFIX)";\
+ x=$$(grep '^[[:blank:]]*RELEASE_SIGNKEY[[:blank:]]*=' \
+ $$HOME/.gnupg-autogen.rc|cut -d= -f2|xargs);\
+ if [ -z "$$x" ]; then \
+ echo "error: RELEASE_SIGNKEY missing in ~/.gnupg-autogen.rc">&2; \
+ exit 2;\
+ fi;\
+ mysignkey="$$x";\
+ files1="$(RELEASE_NAME).tar.bz2 \
+ $(RELEASE_NAME).tar.gz" ; \
+ files2="$(RELEASE_NAME).tar.bz2.sig \
+ $(RELEASE_NAME).tar.gz.sig \
+ $(RELEASE_NAME).swdb \
+ $(RELEASE_NAME).buildlog" ;\
+ echo "/* Signing the source tarball ..." ;\
+ gpg -sbu $$mysignkey $(RELEASE_NAME).tar.bz2 ;\
+ gpg -sbu $$mysignkey $(RELEASE_NAME).tar.gz ;\
+ cat $(RELEASE_NAME).swdb >swdb.snippet;\
+ echo >>swdb.snippet ;\
+ sha1sum $${files1} >>swdb.snippet ;\
+ cat "../$(RELEASE_NAME).buildlog" swdb.snippet \
+ | gzip >$(RELEASE_NAME).buildlog ;\
+ echo "Copying to archive $$myarchive ..." ;\
+ scp -p $${files1} $${files2} $${myarchive}/ || true;\
+ echo '/*' ;\
+ echo ' * All done; for checksums see dist/swdb.snippet' ;\
+ echo ' */' ;\
+ )