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

Chris Smith cdsmith at gmail.com
Wed Jan 26 18:19:21 CET 2011

On Wed, 2011-01-26 at 12:08 +0100, Ketil Malde wrote:
> I disagree, I've always interpreted the license to cover the text in
> that particular package.

There seems to be a difference in focus here that's confusing to me.
When I write a library, my primary concern is generally with helping
others use that library by linking it in their programs.  As such, I
generally consider that the most important set of licensing restrictions
attached to my library are the ones that will apply to people linking
the library in their programs.

While I'm happy that people have the legal right to copy and paste my
source code into their own projects, I also hope to prevent them from
needing to do so.  The licensing restrictions covering this last-ditch
work-around for my failure to adequately package my code are a minor
concern.  As a result, if I were to write a package that depends on
someone else's GPLed library, I don't see it being anywhere near worth
the conceptual weight to apply a different license to the source code in
the current package; since ultimately, the terms of the GPL are going to
apply to anyone who builds a program with the library anyway.

Sure, that occasionally creates questions like the one that was asked
about hmatrix.  So what?  It's not a bad thing if people occasionally
ask about relicensing.

> At any rate we need a different way to deal
> with this, since the license for the resulting binary can vary depending
> on build flags, different binaries from the same package can end up
> having different licensing,

The other (somewhat obvious, in my mind) possibility is to consider this
a poor use of build flags and packagine binaries together.  One would
then remain aware of the problem, and strive to avoid it by splitting up
packaging better in the future.

>  licensing can change if the licencing of a dependency changes, and so on.

I suppose this is another reason to specify upper bounds on
dependencies. :)  In this case, it's a matter of legal compatibility
rather than technical compatibility, but it amounts to the same thing.

> Perhaps cabal should look over the licenses involved, and inform the
> user after building?
>   :
> Installing executable(s) in /home/ketil/.cabal/bin
> Executable 'foo' incorporates components with the following licenses:
> Executable 'bar' ...

That certainly seems like overkill.  First of all, as mentioned above,
it's confusing and unnecessary to package things in such a way that
different licenses will apply to different pieces or build options.

Furthermore, the example above could be greatly shortened by just saying
"GPL".  Complying with the terms of the GPL automatically implies
complying with the terms of both the BSD3 and LGPL licenses.  In
practice, either this happens, or the licenses are incompatible... or
the third option is that they may as well be incompatible because it's
kinder to users to just consider the licenses incompatible and find
different libraries to depend on, rather than dumping lists of multiple
licenses on them.

Chris Smith

More information about the Haskell-Cafe mailing list