[erlang-questions] GNU GPL, MIT, BSD and compatibility

David-Sarah Hopwood <>
Fri Apr 11 15:52:52 CEST 2008

Alceste Scalas wrote:
> Il giorno ven, 11/04/2008 alle 13.07 +0200, Richard Carlsson ha scritto:
>>   "These requirements apply to the modified work as a whole. If identifiable
>>    sections of that work are not derived from the Program, and can be
>>    reasonably considered independent and separate works in themselves, then
>>    this License, and its terms, do not apply to those sections when you
>>    distribute them as separate works. But when you distribute the same
>>    sections as part of a whole which is a work based on the Program, the
>>    distribution of the whole must be on the terms of this License, whose
>>    permissions for other licensees extend to the entire whole, and thus to
>>    each and every part regardless of who wrote it."
>> Note in particular: "the entire whole, and thus to each and every part".
>> This means that if such a part was previously only published under e.g.
>> an MIT license, it (the particular version used by the combined software)
>> must now also be published *also* under the GPL, and can from that point on
>> be used by anyone under the GPL even as an isolated component, *even if this
>> is not what you as the author of the MIT-licensed part would like*. As
>> far as I can tell, this is precisely what the original post means with
>> "anyone who wants to use it may have to release their code under the GPL",
>> and you claim that that is wrong.
> Yes, I am pretty sure that this is wrong.  Maybe it is necessary to
> specify what "on the terms of the GNU GPL" means in the passage above.
> Let's say that I have a file bar.c, released by some third party under
> the (GPL-compatible) BSD license.  I modify it and make it depend on
> libfoo, which is GNU GPL'ed, in order to create the application gplbar.
> What does it happen?  Let's make two hypothesis:
>      A. the bar.c license is overwritten/substituted by the GNU GPL for
>         further redistributions, even when separated from "the whole"
>         gplbar;
>      B. the (GPL-compatible) bar.c license remains the same, except
>         (maybe) for the changes I made for linking libfoo.  Anyway, the
>         resulting application must now also respect the license of the
>         new component (i.e. libfoo).  And thus, "the whole" gplbar
>         application must now be distributed on the terms of the GNU GPL.
>         If someone later removes my changes, however, the bar.c code
>         will not be bound to the GNU GPL anymore.
> If I understood correctly, you think that "A" is correct, while I think
> that "B" is correct.

"A" is correct. But the GPL is a red herring here. I can take any
MIT-licensed code and redistribute it with the additional license term
"to use this code, you must give me your first-born child", for example [*]
(enforcability aside). This is not a problem, primarily because someone
can still use the code distributed under the original license, and not
give me their first-born child. The fact that the original copyright
holder(s) chose an MIT or BSD-like license entails that they accepted
the possibility of redistribution under any more restrictive license.

[*] http://en.wikipedia.org/wiki/Rumpelstiltskin

David-Sarah Hopwood

More information about the erlang-questions mailing list