Re: stupid build error

2012-11-27 Thread Andrew Pinski
On Tue, Nov 27, 2012 at 12:55 PM, Mike Stump mikest...@comcast.net wrote:
 This:

 Verify that you have permission to grant a GFDL license for all
 new text in tm.texi, then copy it to ../../gcc/gcc/doc/tm.texi.
 make[3]: *** [s-tm-texi] Error 1
 make[3]: *** Waiting for unfinished jobs….

 is one of the stupidest build errors I've seen all decade.  Can someone fix 
 it please?

This means someone edited gcc/doc/tm.texi.in and/or gcc/target.def
without checking a new version of gcc/doc/tm.texi .
This build failure is to make sure we are not violating the rules
setup by FSF for the licensing for target.def both GPL and GFDL.

Thanks,
Andrew Pinski


Re: stupid build error

2012-11-27 Thread Mike Stump
On Nov 27, 2012, at 1:22 PM, Andrew Pinski pins...@gmail.com wrote:
 On Tue, Nov 27, 2012 at 12:55 PM, Mike Stump mikest...@comcast.net wrote:
 This:
 
 Verify that you have permission to grant a GFDL license for all
 new text in tm.texi, then copy it to ../../gcc/gcc/doc/tm.texi.
 make[3]: *** [s-tm-texi] Error 1
 make[3]: *** Waiting for unfinished jobs….
 
 is one of the stupidest build errors I've seen all decade.  Can someone fix 
 it please?
 
 This means someone edited gcc/doc/tm.texi.in and/or gcc/target.def
 without checking a new version of gcc/doc/tm.texi .
 This build failure is to make sure we are not violating the rules
 setup by FSF for the licensing for target.def both GPL and GFDL.

A review of the change and approval of the change should be enough to catch 
issues going into the FSF tree.  The build should just copy the generated file 
to the source tree, if changed.  The build failed for me, which is wrong, as 
there if absolutely no change I can make that runs afoul of copyright law, save 
copying in content for which would be a violation, which is completely 
uncatchable, so, there is absolutely no way to check for this failure and 
absolutely every other failure is a false positive, so, again, let me state 
that the check is wrong.  What ever condition people are trying to catch, how 
they did it is wrong.


I mean, we could have a check that fails the build if any source file has been 
modified.  This would catch all new copyright volitions with probability 1; 
however, we don't do that?  Why?  Simple, too many false positives.  By 
changing a file, you assert are doing so in a manner consist with law, and that 
is that.  Once so asserted, there _can be_ no non-false positives, ever.


Re: stupid build error

2012-11-27 Thread Joseph S. Myers
On Tue, 27 Nov 2012, Mike Stump wrote:

 A review of the change and approval of the change should be enough to 
 catch issues going into the FSF tree.  The build should just copy the 
 generated file to the source tree, if changed.  The build failed for me, 

The rule from the FSF is that tm.texi is treated more like a source file 
than a generated file, because no actual dual-licensing notice for 
target.def could be produced (if it could, we wouldn't need a checked-in 
tm.texi at all - checked-in generated files are only for cases where they 
are needed in the bootstrap process or to reduce the external dependencies 
for a build).  Someone can write new text and put it in both places for 
licensing in each source file under its respective license - the makefile 
rules are providing a tool to assist someone choosing to do so and so 
ensure that the source files target.def, tm.texi.in, tm.texi are kept in 
sync in a way that we wish to keep them in sync.  Or someone can copy 
existing doc strings from tm.texi to target.def, or from comments to both 
target.def and tm.texi, keeping the three files in sync in the desired 
way, but with approval for the patch from one of the docstring relicensing 
maintainers being required in that case.

Thus, the makefile rules are not rules for updating a generated file in 
the usual sense - they are rules to assist developers, who have made a 
conscious decision to put the same text in multiple source files under 
different licenses, in making changes to those multiple source files in 
sync with each other.

Perhaps the error message should be phrased differently to make clear that 
it is about the three source files not being in sync with each other.

-- 
Joseph S. Myers
jos...@codesourcery.com


Re: stupid build error

2012-11-27 Thread Mike Stump
On Nov 27, 2012, at 4:50 PM, Joseph S. Myers jos...@codesourcery.com wrote:
 On Tue, 27 Nov 2012, Mike Stump wrote:
 
 A review of the change and approval of the change should be enough to 
 catch issues going into the FSF tree.  The build should just copy the 
 generated file to the source tree, if changed.  The build failed for me, 
 
 The rule from the FSF is that tm.texi is treated more like a source file 
 than a generated file, because no actual dual-licensing notice for 
 target.def could be produced (if it could, we wouldn't need a checked-in 
 tm.texi at all - checked-in generated files are only for cases where they 
 are needed in the bootstrap process or to reduce the external dependencies 
 for a build).  Someone can write new text and put it in both places for 
 licensing in each source file under its respective license - the makefile 
 rules are providing a tool to assist someone choosing to do so and so 
 ensure that the source files target.def, tm.texi.in, tm.texi are kept in 
 sync in a way that we wish to keep them in sync. Or someone can copy 
 existing doc strings from tm.texi to target.def, or from comments to both 
 target.def and tm.texi, keeping the three files in sync in the desired 
 way, but with approval for the patch from one of the docstring relicensing 
 maintainers being required in that case.
 
 Thus, the makefile rules are not rules for updating a generated file in 
 the usual sense - they are rules to assist developers, who have made a 
 conscious decision to put the same text in multiple source files under 
 different licenses, in making changes to those multiple source files in 
 sync with each other.
 
 Perhaps the error message should be phrased differently to make clear that 
 it is about the three source files not being in sync with each other.

You failed to state a single case where a violation is caught.  Do that now, 
I'll wait.  If I modify the tree in a way that the generated tm.texi file 
changes, and that file is copied into the source tree, and I distribute it, 
then, there are only two cases to consider, either, I did that in violation of 
the copyright law, or I did not.  If I did, then, exactly how the law is 
violated is beyond the grasp of software, or I did not, and in that case, there 
is no aide to me for failing the build.  You're under the mistaken idea that 
you can write software to catch violations of law, stop.  You cannot.  Failing 
the build because I merely _changed_ the software is _not_ an indication of a 
violation of law is about to take place.

If you want to argue that it is possible to catch a violation of law, go for it.

For the counter proof, there can be no violation of law, without a copy, or, 
say, a distribution.  I'm not going to distribute, therefore, there can be no 
violation of law, QED.  All failures from any development I might undertake 
that fail the build in this way, are _always_ false positives.  Please fix all 
false positives.


Re: stupid build error

2012-11-27 Thread Joseph S. Myers
On Tue, 27 Nov 2012, Mike Stump wrote:

 You failed to state a single case where a violation is caught.

It's not about catching violations of law, it's about catching cases where 
the source tree is in an inconsistent state.  And a not uncommon cause of 
that is that someone didn't know about the relation between the three 
source files, target.def, tm.texi.in and tm.texi, and modified tm.texi 
directly, or modified multiple files by hand inconsistently.  (Although 
the code attempts to use timestamps to distinguish different cases of 
inconsistency, this can be unreliable, especially if someone checked in an 
inconsistent state and someone else is building from a tree updated with 
svn update.  So the rule is that in any case of an inconsistency in the 
source tree, things are passed back to the user to make a determination, 
based on examining the differences, of how to restore consistency to the 
source tree - and of whether the resulting patch submission will need 
docstring relicensing review.)

-- 
Joseph S. Myers
jos...@codesourcery.com