<!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.32.2">
</HEAD>
<BODY>
On Sun, 2011-12-18 at 16:19 -0800, Jeremy Huddleston wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
    <TT><FONT COLOR="#3c3c3c">For the more dangerous compiler warnings that we made into errors,</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">use -Werror=... if .git exists and -W... if not.&nbsp; This way we still</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">force developers to trip on them but end users will just see</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">warnings.</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#3c3c3c">Signed-off-by: Jeremy Huddleston &lt;<A HREF="mailto:jeremyhu@apple.com">jeremyhu@apple.com</A>&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">---</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">&nbsp;xorg-macros.m4.in |&nbsp;&nbsp; 17 +++++++++++++++++</FONT></TT><BR>
    <TT><FONT COLOR="#3c3c3c">&nbsp;1 files changed, 17 insertions(+), 0 deletions(-)</FONT></TT><BR>
    <BR>
    <BR>
</BLOCKQUOTE>
I am concerned about creating a precedent here regarding the detection of git and the assumption of a &quot;use model&quot;.<BR>
<BR>
We have been confronted with this on numerous occasions where we wanted to do something different depending if the build is from git or from a tarball. I, for one, have been reminded many times by reviewers not to make assumptions about the role of the person who is building and the reason why the build is performed, let alone matching roles with &quot;git vs tarball&quot; builds.<BR>
<BR>
The proposed behavior will appear to be erratic and unpredictable when alternating between git/tarball builds until one realizes what is going on. Some may report bugs or post patches to fix warnings just to be told by others that they cannot reproduce the warning. Invariably we will begin to see questions like &quot;are you building from git or from tarball&quot;?<BR>
<BR>
The concept of a &quot;development build&quot; vs a &quot;production build&quot; where compiler options are different is very common. This should not occur without the builder's knowledge or consent. We can provide some mechanism to help builder select the type of build desired, but we cannot enforce it. The most obvious autotools features are configure options (we have --enable-strict-compilation) and environment variables that would be picked up by makefiles. <BR>
<BR>
There are no centralized builds and therefore no way to enforce a more stringent build. The tinderbox can play a role and the documented development process too.<BR>
<BR>
Some of the readers may recall this (git vs tarball) issue being discussed at length in other areas:<BR>
<BLOCKQUOTE>
    ChangeLog: git is required to generate it.<BR>
    Special tools: like lex and yacc which may not be available when building from tarball which contains the special tool generated code<BR>
</BLOCKQUOTE>
I know these cases are not quite the same, but they always raised the question &quot;if git do this, else do that&quot; but it never worked out and we had to find a different way without explicitly testing for git.<BR>
<BR>
Would it not be possible to modify the content and semantic of --enable-strict-compilation to mean &quot;development build&quot;? Make this option a requirement in the server build process and on tinderbox. It will take time for working habits to adapt, as for any change.<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>