<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
On Tue, 2010-04-20 at 10:54 +1000, Peter Hutterer wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
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 <<A HREF="mailto:memsize@videotron.ca">memsize@videotron.ca</A>>
> > ---
> > 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:
</PRE>
</BLOCKQUOTE>
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.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
- 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?
</PRE>
</BLOCKQUOTE>
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?<BR>
<BR>
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.<BR>
<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
Cheers,
Peter
</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>