[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Question]:Question about bison adding GPL copyright to the parser f
From: |
Hans Åberg |
Subject: |
Re: [Question]:Question about bison adding GPL copyright to the parser files generated by bison and yacc.c |
Date: |
Sun, 27 Jan 2019 00:40:12 +0100 |
> On 26 Jan 2019, at 23:54, Christian Schoenebeck <address@hidden> wrote:
>
> On Samstag, 26. Januar 2019 22:29:08 CET Hans Åberg wrote:
>>> No, that's not what the exception sais. The exception applies (and hence
>>> the freedom to distribute a Bison generated parser under any arbitrary,
>>> different license than GPL) only if the generated parser is not itself a
>>> parser generator. This is not as obvious as you might think. It really
>>> depends on what his generated parser is capable to do.
>>
>> From a legal point of view, copyright applies to the code in the skeleton
>> file, as the other part is considered machine generated, like in an editor,
>> and not copyrightable.
>
> Yes, the copyright applies to the skeleton. But if the exception does not
> apply, and since your Bison generated parser contains the skeleton, the
> result
> would be that your entire application would be subject to the GPL.
And that was the case in some earlier versions.
> So the point of whether or not the exception applies to your Bison generated
> parser, is crucial if you intend to use Bison for developing a proprietary
> application.
Indeed.
>>> I give you a simple example: let's say you used Bison to develop a tool
>>> which converts source code from one programming language A to B. Now you
>>> might think this is not a parser generator. Well, it was obviously not
>>> your intention. But now consider somebody uses that conversion tool for
>>> converting a parser originally written in programming language A to
>>> language B.
>>>
>>> Right, your Bison generated conversion tool just generated a parser.
>>
>> A parser generator is not merely a program that generates a parser, but does
>> so from a grammar [1]. So the intent of the exception, I think, is that you
>> cannot use the skeleton as a part of a program like Bison, but perhaps
>> there is the need for some clarification.
>>
>> 1. https://en.wikipedia.org/wiki/Compiler-compiler
>
> That Wikipedia article sais "The input *may* be a text file containing the
> grammar written in BNF ... , although *other* definitions exist.",
> immediately
> followed by another type that is analogous to my example: meta compilers.
>
> It is clear what the intention of the exception was: a) allowing people to
> use
> Bison for generating parsers also for propriety projects, but preventing b)
> that somebody simply takes Bison's skeleton source code, adds the missing
> pieces and distributes an entire unGPLed version of Bison.
That is how I parse it, too.
> But if you intend to use Bison for proprietary purposes, you should be aware
> that the current wordings of the exception go far beyond of what was probably
> intended for case b) and might thus indeed lead to a potential legal issue
> for
> your company if your Bison generated parser only has the smallest chance of
> being capable to generate another parser.
The term "compiler-compiler" felt out of use, replaced by "parser generator",
which I also prefer, and other renderings of that latter might be what confuses
it.
> Many big IT companies out there are using Bison extensively for generating
> their arsenal of meta compilers, and if you take the exception text
> literally,
> and if they even used a GPLv3 Bison version ... well you get the idea.
The idea of GPL is to block proprietary use.
> And this issue is not just limited to meta compilers. There are many other
> non
> obvious use cases where you might theoretically get into the same situation.
Maybe Akim can clarify.