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

Alceste Scalas <>
Mon Apr 14 09:47:38 CEST 2008

Il giorno ven, 11/04/2008 alle 16.33 +0200, Richard Carlsson ha scritto:
> Alceste Scalas wrote:
> > 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.
> I think that is clear: the entire GNU GPL, every word of it, applies.

But *all* software released under a GNU GPL-compatible license can, by
definition, be distributed "on the terms of the GNU GPL": you just need
to apply the GNU GPL terms and abstain from further permissions.

In the case of BSD-licensed software, you should just avoid the
binary-only distribution.  If you choose to do so, you're still
complying with the terms of *both* licenses, and you *don't* need
relicensing at all.

However, you and the recipients of that software will still be free to
use all the permissions given by the BSD license, and redistribute in
binary-only format.  But if you choose the latter, then you won't be
allowed to distribute that software as part of a GNU GPL'ed "whole"

That's why I emphasized that "distributing under the terms of the GNU
GPL" is *not* equivalent to a license change/addition/whatever, as long
as you deal with GNU GPL-compatible software.

> I think that C is correct:
>      C. The GNU GPL is *added* to the licensing of bar.c (the
>         version shipped in the combined work gplbar). It does
>         not invalidate the existing licenses. This is why
>         license compatibility is an issue. The previous 
>         licenses must not contain restrictions that go against
>         the GPL, otherwise the programs cannot be combined and
>         distributed.

"Adding" the GNU GPL terms to software developed by others is equivalent
to relicensing it.  You need an explicit permission to do it.

> The MIT and Rodified BSD licenses, for example, both allow this
> [relicensing under the GNU GPL] (mainly because they do not
> *disallow* relicensing as long as it is in a compatible way)

But under the copyright law of every country I know about, everything
that is not explicitly permitted by the author (or the copyright holder
in general) is forbidden [1].  And the BSD license does *not* permit
such relicensing.

On the contrary, the BSD license explicitly *forbids* it, because it
says that the distribution in source form must "retain the above
copyright notice, this list of conditions and the following disclaimer".
When you "add" the GNU GPL terms to BSD-licensed software, you're
basically nullifying the 2nd condition (i.e. the one that allows
binary-only distribution).

I repeat: under your interpretation of the GNU GPL, most of the GNU
GPL-compatible licenses suddenly become incompatible.  Only MIT-licensed
and public domain software could be considered compatible (maybe).

The explanations I've given so far just solve all these problems: when
you combine code and libraries for developing an application, *all* the
licenses are preserved, and the final product "as a whole" must be
distributed complying with the terms of *all* of them.  And since the
GNU GPL is the stricter license in the lot, then the final product, in
all its parts, must be distributed under its terms.

But nothing is relicensed at all: when single parts of the product are
taken alone and don't depend on GNU GPL'ed software, then the GNU GPL
simply does not apply.




[1] Except for "fair use" clauses, when/where they apply.

Alceste Scalas <>
CRS4 - http://www.crs4.it/

More information about the erlang-questions mailing list