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

Alceste Scalas <>
Thu Apr 10 10:07:18 CEST 2008

Il giorno mer, 09/04/2008 alle 11.02 -0600, Brian Granger ha scritto:
> The biggest problem is that GPL code can't be used in open source BSD
> style projects (the GPL would require releasing the resulting work
> under the GPL license).  Perfect example:  Erlang is not GPL.  Thus
> Erlang cannot be distributed with code that links to or uses GPL code:
>  readline and FFTW begin examples.
> 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 wrong.

In general, when you create a software product that depends on existing
libraries, then you must comply with *all* the licenses of these
libraries --- MIT, GNU GPL, BSD, proprietary, whatever.  Otherwise, you
are not allowed to use them at all.

The GNU GPL does *not* require that the linked software is released (or
re-licensed) under the terms of the GNU GPL itself.

But the copyright law *does* require that the final product (new code +
libraries) complies with all the involved software licenses.  And since
the GNU GPL (either v2 or v3) prohibits that additional restrictions are
placed on resulting software, then the final product cannot be
distributed under a proprietary, restrictive license.

If there are no such additional restrictions, then there are no problems
at all; and if the final product is composed by GNU GPL-compatible
licenses, then there are no such additional restrictions.

Practical example:

      * "libfoo" is GNU GPL'ed;
      * program "bar" depends on libfoo;
      * therefore, "bar" must be released under *any* GNU GPL-compatible
        license --- otherwise the "libfoo+bar" bundle is not legally
        usable/distributable at all.

"bar" could thus be released under the terms of the MIT or BSD license.
If someone modifies it and removes the "libfoo" dependency, or replaces
"libfoo" with a non-GPL'ed version, then the GNU GPL conditions do not
apply anymore, and future users of "bar" will be able to make it
proprietary, add restrictive licensing terms, etc.

In other words, the GNU GPL is not "viral" (as someone else wrote on
this thread), or at least is not any more viral than any other software

> Bottom line:  if you want your code to play well with other open
> source project that don't use the GPL, pick something like the

...or, in general, choose any GNU GPL-compatible license :-)


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

More information about the erlang-questions mailing list