On Tue, 2010-04-20 at 10:54 +1000, Peter Hutterer wrote: > On Mon, Apr 19, 2010 at 11:00:08PM +0200, Julien Cristau wrote: > > On Mon, Apr 19, 2010 at 14:52:55 -0400, Gaetan Nadon wrote: > > > > > Generates the git module version according to the "git describe HEAD" > > > If the git module has pending changes, it appends "-dirty" to the version > > > tag > > > > > > Signed-off-by: Gaetan Nadon <mems...@videotron.ca> > > > --- > > > xorg-macros.m4.in | 18 ++++++++++++++++++ > > > 1 files changed, 18 insertions(+), 0 deletions(-) > > > > > > diff --git a/xorg-macros.m4.in b/xorg-macros.m4.in > > > index 916b472..efb2e53 100644 > > > --- a/xorg-macros.m4.in > > > +++ b/xorg-macros.m4.in > > > @@ -1009,3 +1009,21 @@ mv \$(top_srcdir)/.INSTALL.tmp > > > \$(top_srcdir)/INSTALL) \ > > > echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: > > > installing possibly empty INSTALL.' >&2)" > > > AC_SUBST([INSTALL_CMD]) > > > ]) # XORG_INSTALL > > > + > > > +# XORG_GIT_MODULE_VERSION() > > > +# ------------------------- > > > +# Minimum version: 1.8.0 > > > +# > > > +# Generates the git module version according to the "git describe HEAD" > > > +# If the git module has pending changes, it appends "-dirty" to the > > > version tag > > > +# > > > +AC_DEFUN([XORG_GIT_MODULE_VERSION], [ > > > +GIT_MODULE_VERSION_CMD="VER=\`GIT_DIR=\$(top_srcdir)/.git git describe > > > HEAD 2>/dev/null\`; \ > > > +DVER=\`GIT_DIR=\$(top_srcdir)/.git git diff-index HEAD 2>/dev/null\`; \ > > > +OUTSTR=\"\#undef XORG_GIT_VERSION\" ; \ > > > +OUTFILE=\"xorg-git-version.h\"; \ > > > +test -n \"\$\$VER\" && OUTSTR=\"\#define XORG_GIT_VERSION \$\$VER\" && > > > test -n \"\$\$DVER\" && OUTSTR=\"\#define XORG_GIT_VERSION > > > \$\$VER-dirty\"; \ > > > +test -e \"\$\$OUTFILE\" || echo \"\$\$OUTSTR\" > \"\$\$OUTFILE\"; \ > > > +CONTENT=\`cat \$\$OUTFILE\` && test \"\$\$CONTENT\" = \"\$\$OUTSTR\" || > > > echo \$\$OUTSTR > \$\$OUTFILE;" > > > +AC_SUBST([GIT_MODULE_VERSION_CMD]) > > > +]) # XORG_GIT_MODULE_VERSION > > my eyes! > > > As I said in reply to the initial patch by Peter I'd like a way to > > disable this, because packages might be built from a git tree, which > > might be unrelated to the xorg one, or outside of any git tree. What's > > the output like if not building from git? Does 'make > > GIT_MODULE_VERSION_CMD=:' work to disable it (I guess not, because > > anything trying to include xorg-git-version.h will be unhappy)? > > it simply sets the #undef and nothing will be printed to the log file. Is > there any specific argument against _running_ the macro as long if it > doesn't add anything to the logfile? > > Gaetan: > I'm not a big fan of the -dirty either but I guess if others want it we can > leave it in. Two questions though:
If you remotely help someone debugging a problem, you would like to know if tag/commit is really the code he is running or if there are local changes. With the commit number you can cross-reference the master repo and detect unpsuhed local commits. With the -dirty (now called -with-uncommitted-changes) you now the code is tainted with local changes you know nothing about. It's just additional info. > - If modules start using this macro, do they stillhave to add to > DISTCLEANFILES and friends? > - This macro only gets invoked on automake runs, right? So if I pull and > just rebuild, would it update the git version? > All options are available in the Makefile.am regarding the invocation of the macro (or your original script). I have not paid attention to that, it looks you had it covered. The problem domain is similar to ChangeLog. You need a trigger when a new commit is available, but the best we could do is a dist hook. And you may not be running off git. What use case was this feature designed for? One suggested a dependency on a git file that changes with the HEAD commit, don't recall what the objections were. I'll think about it some more. > Cheers, > Peter
signature.asc
Description: This is a digitally signed message part
_______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel