[SC] Identify XEmacs build from Mercurial changeset

Michael Sperber sperber at deinprogramm.de
Thu Feb 7 04:05:56 EST 2008


Sorry this took so long---I've been swamped.  I've removed the
fallback "extra-name" thing.  Otherwise, it's as submitted.  I hope
we'll eventually improve upon this.

Michael Sperber <sperber at deinprogramm.de> writes:

2008-01-25  Michael Sperber  <mike at xemacs.org>

	* Makefile.in.in:
	* configure.ac:
	* version.sh.in: Use Mercurial tip hash to identify version
	instead of old CVS method.

2008-01-25  Michael Sperber  <mike at xemacs.org>

	* build-report.el (build-report-version-file-regexp): Adjust to
	handle Mercurial hash.

2008-01-25  Michael Sperber  <mike at xemacs.org>

	* xemacs.mak (version.sh): Generate version.sh via Mercurial.

2008-01-25  Michael Sperber  <mike at xemacs.org>

	* emacs.c (vars_of_emacs): Zap mention of CVS.

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla
-------------- next part --------------
changeset:   4419:eb82fbb675ea
tag:         tip
user:        Mike Sperber <sperber at deinprogramm.de>
date:        Thu Feb 07 10:03:49 2008 +0100
summary:     Use Mercurial changeset hash to identify build version.

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -52,3 +52,4 @@ info/.*\.info(-[0-9]+)?$
 ^src/REBUILD_AUTOLOADS$
 ^src/(temacs|xemacs)\.(exe|exe\.manifest|pdb|map|bsc)$
 ^TAGS$
+^version\.sh$
\ No newline at end of file
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,13 @@ 2008-01-25  Stephen J. Turnbull  <stephe
 2008-01-25  Stephen J. Turnbull  <stephen at xemacs.org>
 
 	* configure.ac (--with-database): 'gnudbm' -> 'gdbm' in docstrings.
+
+2008-01-25  Michael Sperber  <mike at xemacs.org>
+
+	* Makefile.in.in:
+	* configure.ac:
+	* version.sh.in: Use Mercurial tip hash to identify version
+	instead of old CVS method.
 
 2008-01-17  Aidan Kehoe  <kehoea at parhasard.net>
 
diff --git a/Makefile.in.in b/Makefile.in.in
--- a/Makefile.in.in
+++ b/Makefile.in.in
@@ -256,7 +256,7 @@ all: Makefile ${GENERATED_HEADERS} ${MAK
 .PHONY: ${SUBDIR} all beta
 
 ## Convenience target for XEmacs beta testers
-beta: elcclean all
+beta: elcclean update-version all
 
 ## Convenience target for XEmacs maintainers
 ## This would run `make-xemacsdist' if I were really confident that everything
@@ -315,6 +315,13 @@ FRC.lisp.finder-inf.el:
 
 ${SUBDIR}: ${SUBDIR_MAKEFILES} ${GENERATED_HEADERS} FRC
 	cd ./$@ && $(MAKE) $(RECURSIVE_MAKE_ARGS) all
+
+## This should be the same code as in configure.ac.
+update-version:
+	cp ${srcdir}/version.sh.in ${srcdir}/version.sh
+	if test -d ${srcdir}/.hg; then \
+	    (cd ${srcdir}; hg identify | cut -d " " -f 1 >> version.sh); \
+	fi
 
 ## Building modules depends on ellcc, found in lib-src.
 modules/sample modules/ldap modules/zlib modules/base64: lib-src
diff --git a/configure b/configure
--- a/configure
+++ b/configure
@@ -4779,6 +4779,10 @@ case $build_os in *\ *) build_os=`echo "
 
 
 
+cp "$srcdir/version.sh.in" "$srcdir/version.sh"
+if test -d "$srcdir/.hg"; then
+    (cd "$srcdir"; hg identify | cut -d " " -f 1 >> version.sh)
+fi
 . "$srcdir/version.sh" || exit 1;
 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi
 : "${verbose=$beta}"
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -1176,6 +1176,11 @@ dnl ------------------------------------
 dnl ----------------------------------------
 dnl Find out which version of XEmacs this is
 dnl ----------------------------------------
+dnl This should be the same code as in Makefile.in.in
+cp "$srcdir/version.sh.in" "$srcdir/version.sh"
+if test -d "$srcdir/.hg"; then
+    (cd "$srcdir"; hg identify | cut -d " " -f 1 >> version.sh)
+fi
 . "$srcdir/version.sh" || exit 1;
 dnl Must do the following first to determine verbosity for AC_DEFINE
 if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -2,6 +2,11 @@ 2008-02-03  Aidan Kehoe  <kehoea at parhasa
 
 	* iso8859-1.el (ascii-case-table): 
 	Correct the order of the arguments to #'put-case-table-pair. 
+
+2008-01-25  Michael Sperber  <mike at xemacs.org>
+
+	* build-report.el (build-report-version-file-regexp): Adjust to
+	handle Mercurial hash.
 
 2008-01-21  Aidan Kehoe  <kehoea at parhasard.net>
 
diff --git a/lisp/build-report.el b/lisp/build-report.el
--- a/lisp/build-report.el
+++ b/lisp/build-report.el
@@ -69,7 +69,7 @@ emacs_minor_version\\s-*=\\s-*\\([0-9]+\
 emacs_minor_version\\s-*=\\s-*\\([0-9]+\\)
 emacs_beta_version\\s-*=\\s-*\\([0-9]+\\)?
 xemacs_codename\\s-*=\\s-*\"\\([^\"]+\\)\"\\(
-xemacs_extra_name\\s-*=\\s-*\"\\([^\"]+\\)\"\\)?"
+xemacs_extra_name\\s-*=\\s-*\"?\\([^\"]+\\)\"?\\)?"
   "*REGEXP matching XEmacs Beta Version variable assignments in
 `build-report-version-file' file.  This variable is used by
 `build-report-version-file-data'.")
diff --git a/nt/ChangeLog b/nt/ChangeLog
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,7 @@ 2008-01-24 Mike Sperber   <mike at xemacs.o
+2008-01-25  Michael Sperber  <mike at xemacs.org>
+
+	* xemacs.mak (version.sh): Generate version.sh via Mercurial.
+
 2008-01-24 Mike Sperber   <mike at xemacs.org>
 
 	* config.inc.samp: Fix URL for optional libraries.
diff --git a/nt/xemacs.mak b/nt/xemacs.mak
--- a/nt/xemacs.mak
+++ b/nt/xemacs.mak
@@ -71,6 +71,13 @@ SEPARATE_BUILD=0
 SEPARATE_BUILD=0
 SRCROOT=$(MAKEROOT)
 BLDROOT=$(MAKEROOT)
+!endif
+!endif
+
+!if [copy $(SRCROOT)\version.sh.in $(SRCROOT)\version.sh]
+!endif
+!if exist($(SRCROOT)\.hg)
+!if [hg identify >> $(SRCROOT)\version.sh]
 !endif
 !endif
 
@@ -816,7 +823,7 @@ TEMACS_CPP_FLAGS_NO_CFLAGS=-c $(CPLUSPLU
  $(EMACS_BETA_VERSION) $(EMACS_PATCH_LEVEL) \
  -DXEMACS_CODENAME=\"$(xemacs_codename:&=and)\" \
 !if defined(xemacs_extra_name)
- -DXEMACS_EXTRA_NAME=\"$(xemacs_extra_name:"=)\" \
+ -DXEMACS_EXTRA_NAME=\""$(xemacs_extra_name:"=)"\" \
 !endif
 !if defined(PATH_LATE_PACKAGE_DIRECTORIES)
  -DPATH_LATE_PACKAGE_DIRECTORIES=\"$(PATH_LATE_PACKAGE_DIRECTORIES)\" \
diff --git a/src/ChangeLog b/src/ChangeLog
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -23,6 +23,10 @@ 2008-01-30  Aidan Kehoe  <kehoea at parhasa
 	documentation. Correct an assertion dealing with equivalence
 	tables; we may end up looking through the equivalence table if a
 	non-ASCII non-case character was searched for. 
+
+2008-01-25  Michael Sperber  <mike at xemacs.org>
+
+	* emacs.c (vars_of_emacs): Zap mention of CVS.
 
 2008-01-24 Mike Sperber   <mike at xemacs.org>
 
diff --git a/src/emacs.c b/src/emacs.c
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -4246,10 +4246,9 @@ Appropriate surrounding whitespace will 
 Appropriate surrounding whitespace will be added, but typically looks best
 if enclosed in parentheses.
 
-A standard use is to indicate the date version.sh was last updated from
-the CVS mainline, where it is automatically given a value similar to
-\"(+CVS-20050221)\".  Developers may also use it to indicate particular
-branches, etc.
+A standard use is to indicate the topmost hash id of the Mercurial
+changeset from which XEmacs was compiled.  Developers may also use it
+to indicate particular branches, etc.
 */ );
 #ifdef XEMACS_EXTRA_NAME
   Vxemacs_extra_name = build_string (XEMACS_EXTRA_NAME);
diff --git a/version.sh b/version.sh.in
rename from version.sh
rename to version.sh.in
--- a/version.sh.in
+++ b/version.sh.in
@@ -8,5 +8,5 @@ infodock_major_version=4
 infodock_major_version=4
 infodock_minor_version=0
 infodock_build_version=8
-xemacs_extra_name="(+CVS-20071205)"
 xemacs_release_date="2007-05-21"
+xemacs_extra_name=
\ No newline at end of file



More information about the XEmacs-Patches mailing list