[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: release 1.4.10b
From: |
Eric Blake |
Subject: |
Re: release 1.4.10b |
Date: |
Mon, 25 Feb 2008 21:49:30 -0700 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071031 Thunderbird/2.0.0.9 Mnenhy/0.7.5.666 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
According to Eric Blake on 2/25/2008 8:53 PM:
| I applied this before making the beta release of 1.4.10b, along with some
| followups learned during the process:
And this makes --version information more informative on the branch. I
can't quite port it to head until head has a signed tag of the form v1.9x;
I'm also waiting for git 1.5.5 to come out with the "git describe --match
'v[0-9]*'" command. I'm not sure whether I want to cut the release for
1.9b to alpha.gnu.org right now, or just tag a non-released version just
to have something for git-version-gen to work with.
- --
Don't work too hard, make some time for fun as well!
Eric Blake address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHw5pa84KuGfSFAYARApcWAJ9f35776JCFxG47KgFAnUNOsjfNPQCfYTXG
I1oV8en8rYhDaDogiL4LkoU=
=Nf7w
-----END PGP SIGNATURE-----
>From b923bc9492314627b690c7a41d4625aae95cb2fd Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Mon, 25 Feb 2008 21:45:30 -0700
Subject: [PATCH] Make intra-release version numbers more intelligent.
* m4/gnulib-cache.m4: Import git-version-gen module.
* GNUmakefile (_curr-ver): Add rules to ensure releases have
up-to-date version string.
* Makefile.am (EXTRA_DIST): Distribute .version.
(.version, dist-hook): New rule for generating it.
* configure.ac (AC_INIT): Make version track intermediate
commits.
* .gitignore: Don't version-control version files.
Signed-off-by: Eric Blake <address@hidden>
---
.cvsignore | 2 ++
.gitignore | 2 ++
ChangeLog | 10 ++++++++++
GNUmakefile | 24 ++++++++++++++++++++++++
Makefile.am | 11 ++++++++++-
configure.ac | 3 ++-
m4/gnulib-cache.m4 | 4 ++--
7 files changed, 52 insertions(+), 4 deletions(-)
diff --git a/.cvsignore b/.cvsignore
index e24f01a..ecbb873 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,5 +1,7 @@
*.tar.bz2
*.tar.gz
+.tarball-version
+.version
aclocal.m4
autom4te.cache
build-aux
diff --git a/.gitignore b/.gitignore
index 2b4139a..ff3c4c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,8 @@
*.rej
*.tar.bz2
*.tar.gz
+.tarball-version
+.version
aclocal.m4
autom4te.cache
build-aux
diff --git a/ChangeLog b/ChangeLog
index a9af282..b38dd6d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2008-02-25 Eric Blake <address@hidden>
+ Make intra-release version numbers more intelligent.
+ * m4/gnulib-cache.m4: Import git-version-gen module.
+ * GNUmakefile (_curr-ver): Add rules to ensure releases have
+ up-to-date version string.
+ * Makefile.am (EXTRA_DIST): Distribute .version.
+ (.version, dist-hook): New rule for generating it.
+ * configure.ac (AC_INIT): Make version track intermediate
+ commits.
+ * .gitignore: Don't version-control version files.
+
* Makefile.cfg (url_dir_list): Fix location.
Minor tweaks, learned from the release.
diff --git a/GNUmakefile b/GNUmakefile
index 800330e..4fc9393 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -42,6 +42,30 @@ ifeq ($(have-Makefile),yes)
export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
include Makefile
+_curr-ver := $(VERSION)
+
+# Ensure that $(VERSION) is up to date for dist-related targets, but not
+# for others: running autoreconf and recompiling everything isn't cheap.
+ifeq (0,$(MAKELEVEL))
+ _is-dist-target = $(filter dist% alpha beta major,$(MAKECMDGOALS))
+ ifneq (,$(_is-dist-target))
+ _curr-ver := $(shell build-aux/git-version-gen .tarball-version)
+ ifneq ($(_curr-ver),$(VERSION))
+ $(info INFO: running autoreconf for new version string: $(_curr-ver))
+ dummy := $(shell rm -rf autom4te.cache; autoreconf)
+ _created_version_file = 1
+ endif
+ endif
+endif
+
+ifneq ($(_curr-ver),$(VERSION))
+ dummy := $(shell echo $(_curr-ver) > .version)
+endif
+
+ifneq ($(_created_version_file),1)
+ dummy := $(shell test -f .version || echo $(VERSION) > .version)
+endif
+
include $(srcdir)/Makefile.cfg
include $(srcdir)/Makefile.maint
diff --git a/Makefile.am b/Makefile.am
index 4c1ff26..1d6ab39 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,7 +22,7 @@
SUBDIRS = . examples lib src doc tests checks
EXTRA_DIST = bootstrap c-boxes.el GNUmakefile Makefile.cfg Makefile.maint \
- m4/gnulib-cache.m4
+ .version m4/gnulib-cache.m4
DISTCLEANFILES = stamp-h
## maintainer-clean should remove as much as possible that ./bootstrap can
## recreate. In the m4 directory, keep only gnulib-cache.m4.
@@ -33,3 +33,12 @@ MAINTAINERCLEANFILES = COPYING INSTALL Makefile.in
aclocal.m4 \
ACLOCAL_AMFLAGS = -I m4
DISTCHECK_CONFIGURE_FLAGS = --enable-changeword
+
+BUILT_SOURCES = .version
+.version:
+ echo $(VERSION) > address@hidden && mv address@hidden $@
+
+# Arrange so that .tarball-version appears only in the distribution
+# tarball, and never in a checked-out repository.
+dist-hook:
+ echo $(VERSION) > $(distdir)/.tarball-version
diff --git a/configure.ac b/configure.ac
index e7d6a07..2eb699c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,7 +18,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ([2.60])
-AC_INIT([GNU M4], [1.4.10c], address@hidden)
+AC_INIT([GNU M4], m4_esyscmd([build-aux/git-version-gen .version]),
+ address@hidden)
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([1.10.1 dist-bzip2 dist-lzma gnu])
diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4
index d41f158..0dbf39c 100644
--- a/m4/gnulib-cache.m4
+++ b/m4/gnulib-cache.m4
@@ -15,11 +15,11 @@
# Specification in the form of a command-line invocation:
-# gnulib-tool --import --dir=. --local-dir=local --lib=libm4
--source-base=lib --m4-base=m4 --doc-base=doc --aux-dir=build-aux --with-tests
--no-libtool --macro-prefix=M4 announce-gen assert avltree-oset binary-io
clean-temp cloexec close-stream closein config-h error fdl fflush flexmember
fopen-safer free fseeko gendocs getopt gnupload gpl-3.0 intprops memmem mkstemp
obstack quote regex stdbool stdint stdlib-safer strtod strtol unlocked-io
vasnprintf-posix verror version-etc version-etc-fsf xalloc xprintf
xvasprintf-posix
+# gnulib-tool --import --dir=. --local-dir=local --lib=libm4
--source-base=lib --m4-base=m4 --doc-base=doc --aux-dir=build-aux --with-tests
--no-libtool --macro-prefix=M4 announce-gen assert avltree-oset binary-io
clean-temp cloexec close-stream closein config-h error fdl fflush flexmember
fopen-safer free fseeko gendocs getopt git-version-gen gnupload gpl-3.0
intprops memmem mkstemp obstack quote regex stdbool stdint stdlib-safer strtod
strtol unlocked-io vasnprintf-posix verror version-etc version-etc-fsf xalloc
xprintf xvasprintf-posix
# Specification in the form of a few gnulib-tool.m4 macro invocations:
gl_LOCAL_DIR([local])
-gl_MODULES([announce-gen assert avltree-oset binary-io clean-temp cloexec
close-stream closein config-h error fdl fflush flexmember fopen-safer free
fseeko gendocs getopt gnupload gpl-3.0 intprops memmem mkstemp obstack quote
regex stdbool stdint stdlib-safer strtod strtol unlocked-io vasnprintf-posix
verror version-etc version-etc-fsf xalloc xprintf xvasprintf-posix])
+gl_MODULES([announce-gen assert avltree-oset binary-io clean-temp cloexec
close-stream closein config-h error fdl fflush flexmember fopen-safer free
fseeko gendocs getopt git-version-gen gnupload gpl-3.0 intprops memmem mkstemp
obstack quote regex stdbool stdint stdlib-safer strtod strtol unlocked-io
vasnprintf-posix verror version-etc version-etc-fsf xalloc xprintf
xvasprintf-posix])
gl_AVOID([])
gl_SOURCE_BASE([lib])
gl_M4_BASE([m4])
--
1.5.4