[Haskell-cafe] GPL License of H-Matrix and prelude numeric

John Millikin jmillikin at gmail.com
Wed Jan 26 06:41:14 CET 2011

On Tue, Jan 25, 2011 at 21:11, David Leimbach <leimy2k at gmail.com> wrote:
> I am not an IP lawyer, but this is my understanding of the GPL and it's
> transitive relationship with bodies of work that aren't GPL'd.
> BSD3 doesn't really state anything about what it links with, but the GPL
> injects itself into the tree of stuff it's linked with via the derivative
> works clause.  The consequence is that the entire derivative work becomes
> GPL'd as well, and those distributing the derivative work must adhere to the
> terms of the GPL for distribution and provide source.

This is correct. If you create a derivative work of BSD3 and GPL code
(eg, a binary), it's covered by both the BSD3 and GPL. The GPL
requires you to provide source code for that binary.

> This is somewhat in the tradition of commercial middleware requiring a
> royalty fee or some per-installation licensing when a work is distributed
> that uses a particular library with such terms.  In other words transitive
> licensing properties are NOT unique to the GPL.

EVERY license propagates down the dependency chain. If a PublicDomain
application depends on a BSD3 library, then compiled versions of that
application must obey the BSD license's copyright, endorsement, and
warranty clauses. It's disingenuous to suggest this only matters to
GPL code.

> At least that's always been my understanding.  A BSD3 library in isolation
> may still remain BSD3, but if it's not useful without being linked to a
> GPL'd library, then the point is kind of moot, except that someone is free
> to implement a replacement for the GPL'd part to avoid the transitive
> properties in the derivative work, in much the same way you could implement
> a free version of a commercial library (barring patent or other violations)
> to avoid transitive properties of the commercial license.

Licensing is a property of the code, not the package; Cabal's
licensing field is only a useful shorthand for "most of the code here
is covered by...". Many people write BSD3 code that depends on GPL
libraries, because they believe 1) their code is not important enough
to protect (eg, one-off libs) or 2) want to encourage commercial forks
(eg, during exploratory design).

Sorry to sound so pedantic about this, but I often field emails along
the lines of:

    Hi! I really like <some library> and want to use it for a program
I'm writing. But
    because its GPL I can't (the program is BSD). Can you please relicense your
    library so BSD code can use it?

And then I have to email them back, and explain, and reassure them
that the GPL is not actually the green-eyed bogeyman portrayed by some
tabloids. At one point, I actually had to offer to sign/mail a
physical letter just to convince some guy I wasn't trying to trick

More information about the Haskell-Cafe mailing list