diff --git a/ChangeLog b/ChangeLog index de8101f1..2765bda9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2010-01-05 Eric Blake + Improve release automation. + * maint.mk (gnulib_dir, gnulib-version, bootstrap-tools) + (announcement): Copy from latest gnulib maint.mk. + * cfg.mk (announce_gen, gpg_key_ID): Delete. + (bootstrap-tools): Override the default. + Update upstream files. * GNUmakefile: Update via 'make fetch'. * build-aux/announce-gen: Likewise. diff --git a/cfg.mk b/cfg.mk index 7b1eb938..4bdf97f9 100644 --- a/cfg.mk +++ b/cfg.mk @@ -23,19 +23,16 @@ export PATH = $(shell echo "`pwd`/tests:$$PATH") # Remove the autoreconf-provided INSTALL, so that we regenerate it. _autoreconf = autoreconf -i -v && rm -f INSTALL -# Version management. -announce_gen = $(srcdir)/build-aux/announce-gen - # Used in maint.mk's web-manual rule manual_title = Creating Automatic Configuration Scripts -# The GnuPG ID of the key used to sign the tarballs. -gpg_key_ID = F4850180 - # The local directory containing the checked-out copy of gnulib used in this -# release. +# release (override the default). gnulib_dir = '$(abs_srcdir)'/../gnulib +# The bootstrap tools (override the default). +bootstrap-tools = automake + # Update files from gnulib. .PHONY: fetch gnulib-update autom4te-update fetch: gnulib-update autom4te-update diff --git a/maint.mk b/maint.mk index 119a52a6..7696c96d 100644 --- a/maint.mk +++ b/maint.mk @@ -546,15 +546,29 @@ my-distcheck: $(local-check) $(release_archive_dir)/$(prev-tgz) prev-tgz = $(PACKAGE)-$(PREV_VERSION).tar.gz rel-files = $(DIST_ARCHIVES) + +gnulib_dir ?= $(srcdir)/gnulib +gnulib-version = $$(cd $(gnulib_dir) && git describe) +bootstrap-tools ?= autoconf,automake,gnulib + +# If it's not already specified, derive the GPG key ID from +# the signed tag we've just applied to mark this release. +gpg_key_ID ?= \ + $$(git cat-file tag v$(VERSION) > .ann-sig \ + && gpgv .ann-sig - < /dev/null 2>&1 \ + | sed -n '/.*key ID \([0-9A-F]*\)/s//\1/p'; rm -f .ann-sig) + announcement: NEWS ChangeLog $(rel-files) - @$(announce_gen) \ + @$(build_aux)/announce_gen \ --release-type=$(RELEASE_TYPE) \ --package=$(PACKAGE) \ --prev=$(PREV_VERSION) \ --curr=$(VERSION) \ --gpg-key-id=$(gpg_key_ID) \ --news=$(srcdir)/NEWS \ - --bootstrap-tools=automake \ + --bootstrap-tools=$(bootstrap-tools) \ + --gnulib-version=$(gnulib-version) \ + --no-print-checksums \ $(addprefix --url-dir=, $(url_dir_list)) ## ---------------- ##