GPL3 Re: packaging

Glynn Clements glynn at gclements.plus.com
Thu Feb 28 01:57:14 PST 2008


Jay R. Ashworth wrote:

> On Thu, Feb 14, 2008 at 08:57:35PM +0000, Glynn Clements wrote:
> > Jay R. Ashworth wrote:
> > > Except for Bison, for good reasons that I understand.
> > 
> > FWIW, bison >= 2.2 has essentially the same exception as gcc etc
> > regarding code which is copied into the output:
> > 
> > /* As a special exception, you may create a larger work that contains
> >    part or all of the Bison parser skeleton and distribute that work
> >    under terms of your choice, so long as that work isn't itself a
> >    parser generator using the skeleton or a modified version thereof
> >    as a parser skeleton.  Alternatively, if you modify or redistribute
> >    the parser skeleton itself, you may (at your option) remove this
> >    special exception, which will cause the skeleton and the resulting
> >    Bison output files to be licensed under the GNU General Public
> >    License without this special exception.
> > 
> > For versions between 1.24 and 2.2, the exception only applies to
> > LALR(1) parsers using C (i.e. not GLR parsers or C++ parsers).
> 
> Intriguing.
> 
> Was a rationale given for this, as FSF has occasionally provided for
> other such relicensings/relaxations of restrictions?  The license
> lawyer in me wants to know...

The bison Info file says:

    Conditions for Using Bison
    **************************
    
    The distribution terms for Bison-generated parsers permit using the
    parsers in nonfree programs.  Before Bison version 2.2, these extra
    permissions applied only when Bison was generating LALR(1) parsers in
    C.  And before Bison version 1.24, Bison-generated parsers could be
    used only in programs that were free software.
    
       The other GNU programming tools, such as the GNU C compiler, have
    never had such a requirement.  They could always be used for nonfree
    software.  The reason Bison was different was not due to a special
    policy decision; it resulted from applying the usual General Public
    License to all of the Bison source code.
    
       The output of the Bison utility--the Bison parser file--contains a
    verbatim copy of a sizable piece of Bison, which is the code for the
    parser's implementation.  (The actions from your grammar are inserted
    into this implementation at one point, but most of the rest of the
    implementation is not changed.)  When we applied the GPL terms to the
    skeleton code for the parser's implementation, the effect was to
    restrict the use of Bison output to free software.
    
       We didn't change the terms because of sympathy for people who want to
    make software proprietary.  *Software should be free.*  But we
    concluded that limiting Bison's use to free software was doing little to
    encourage people to make other software free.  So we decided to make the
    practical conditions for using Bison match the practical conditions for
    using the other GNU tools.
    
       This exception applies when Bison is generating code for a parser.
    You can tell whether the exception applies to a Bison output file by
    inspecting the file for text beginning with "As a special
    exception...".  The text spells out the exact terms of the exception.

-- 
Glynn Clements <glynn at gclements.plus.com>



More information about the xorg mailing list