[PATCH util-macros] XORG_GIT_MODULE_VERSION: writes module version in xorg-git-version.h

Gaetan Nadon memsize at videotron.ca
Mon Apr 19 19:01:06 PDT 2010


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 <memsize at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-devel/attachments/20100419/aca4d264/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg-devel/attachments/20100419/aca4d264/attachment-0001.pgp>


More information about the xorg-devel mailing list