diff options
author | Werner Koch <[email protected]> | 2024-06-18 13:44:06 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2024-06-18 13:44:06 +0000 |
commit | 1fe7aa346dfea46520d1e62e0ebc66352924d994 (patch) | |
tree | 6d01ea1c55fd89b464da3e17fb5283d96372003a | |
parent | Update copyright notices (diff) | |
download | libassuan-1fe7aa346dfea46520d1e62e0ebc66352924d994.tar.gz libassuan-1fe7aa346dfea46520d1e62e0ebc66352924d994.zip |
Add release targets
--
-rw-r--r-- | Makefile.am | 71 |
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 ' */' ;\ + ) |