Laurence Finston wrote:
Frank Heckenbach wrote:
It makes a part of Bison, namely it's parsing code that it copied almost literally, part of your package. Bison contains a special exception to allow linking of it's output (LALR(1) only, up to now) with non-GPL programs.
It certainly does not make my package part of the Bison package, which has been claimed in this discussion, if I've understood the posters correctly.
You're right, this is clearly not so.
Nor do I believe that including a file generated by Bison makes the Bison package part of my package.
Here I disagree. Not the entire Bison package, of course, but a part of Bison (as I wrote) becomes part of your package.
The licenses involved specifically allow this use.
If it wouldn't become part of your package, you wouldn't need to refer to the license in the first place. (E.g., if you use a tool like sed to produce part of your package from your own input, nobody would ask about the particular license of sed, as long as you can use it at all.)
In addition, I do not currently distribute any preprocessed code or object code.
Do you distribute the output of Bison? If you don't, it may be possible to distribute your package under a different license (if you wanted to), but anybody who wanted to compile the package would either have to use another parser generator, or would run into trouble with the GPL. (Strictly speaking, using such a thing for oneself is allowed, but distributing it in any way would violate the GPL.)
I don't know whether a court would consider the line `#include "parser.h"' in one of my source files and the line `g++ -c -o parser.o parser.c++' and the string "parser.o" in the linking command in my `Makefile.am' file to be "making Bison part of my package".
I suppose not, but how about running `bison parser.y' and using or distributing the resulting output?
This was discussed very recently on help-bison, so you might have been aware of this, BTW.
I am, and also that it was never the intention of the Bison project that the files output by Bison should fall under the GPL,
: From: Akim Demaille akim@lrde.epita.fr : Date: Thu, 10 Mar 2005 10:33:28 +0100 : : >>> "Paul" == Paul Hilfinger hilfingr@EECS.Berkeley.EDU writes: : : > In fact, this issue did get discussed when the GLR skeleton got : > introduced, and the language (or lack of it) is, AIR, deliberate on : > the part of the lead maintainers at the time. On consideration, I : > would prefer that the same terms apply to all skeletons as now apply : > to the C LALR(1) skeleton. I think that there does come a point at : > which copylefting becomes shooting oneself in the foot. : : That decision was made by RMS, prompted by me. I'm fine with putting : the exception on all the skeletons.
So it really was the intention (for the GLR skeleton), and they've now discussed changing it. (And as Alfred noted, originally it even was the intention for all skeletons.)
To avoid confusion, the issue with Bison is not about the tables etc. that it builds from your grammar, or with the semantic actions it copies literally (with substitutions) from your input, but from the parsing code that it copies almost literally from the Bison skeleton, and which is a nontrivial amount of code in itself.
just as text files written using GNU Emacs do not.
If Emacs contained, e.g., a macro that inserted a longish (and thus copyrightable) text into your editor, and this text was distributed with Emacs under the GPL without a special exception, it might actually. For an editor, this seems uncommon, but for a parser generator that's what it normally does.
So you can't generalize from Bison to other packages that don't have such an exception.
I believe the problem was a copyright notice in Bison's output.
Which didn't get there by chance ...
IANAL.
Frank