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

Richard Carlsson <>
Fri Apr 11 13:07:42 CEST 2008

Alceste Scalas wrote:
> It *is* interesting for this discussion, because (I repeat) I started
> this sub-thread in order to correct a very specific misconception:
>         http://erlang.org/pipermail/erlang-questions/2008-April/034274.html
>                 If you were to release your project under the GPL,
>                 anyone who wants to use it may have to release their
>                 code under the GPL (even if it is open source (BSD, MIT,
>                 etc.)) (unless you include a special runtime exception,
>                 but that gets pretty subtle).
> This is actually wrong.  People are free to provide their code under any
> GNU GPL-compatible license (BSD, MIT, etc.).  The program "as a whole"
> will need to follow the terms of the GNU GPL, *but* its parts taken
> alone will retain their (GNU GPL-compatible) license.  Anyone will be
> free to take them, remove dependencies from GNU GPL'ed code and, thus,
> ignore GNU GPL terms.  In other words, the code is not "tainted" or
> "infected" by the GNU GPL.

I see now more exactly what it is you are saying: that the GPL would apply
only to the combined software as a whole. But here is what the license (v2)
actually says:
  "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.

> Ok, then maybe I misunderstood the following sentence:
>         http://erlang.org/pipermail/erlang-questions/2008-April/034307.html
>                 The EPL is not GPL-compatible, and Erlang modules are
>                 dynamically linked, so it is not possible to use GPL:ed
>                 Erlang modules if you want to distribute the result.
>                 LGPL should be ok for Erlang code, however.
> I interpreted it as: "you cannot develop GNU GPL'ed Erlang modules, or
> modules that depend on them, because they would be incompatible with the
> EPL'ed Erlang runtime".  I was explaining why it was not the case (and
> the end of the GNU GPL FAQ passage I quoted referred to this specific
> problem).

Well, I was not making a very clear statement. When I wrote that, I wasn't
referring to the Erlang/OTP distribution itself, but about third-party code
that uses the EPL (for some reason) and would like to use your code. Sorry
about the confusion.


More information about the erlang-questions mailing list