RE: Licensing of Haskell code

[ moved to libraries@haskell.org ] Ganesh Sittampalam writes:
Another question is what should happen if there are two "competing" libraries that do the same thing but have different licenses. For example, the existing library Foo.Bar is GPL, and someone needs a BSD version so writes their own.
That's a good question. At the moment, we're allowing for one "reference implementation" which also defines the API for each module in the hierarchy. Of course, there may be any number of actual implementations of any given library, but we require that a reference implementation exists and that it be licensed under an OSI approved license. It occurs to me that if the reference implementation is GPL, then this may encumber the definition of the API such that a commercial reimplementation would not be possible. In some cases this is inevitable - for example, System.Console.Readline wraps a GPL library, so there is probably no way to have an unencumbered API definition for this library. However, we want to avoid having "essential" parts of the library definition covered by the GPL. The library document[1] mentions this problem, but doesn't specify exactly what we mean by "essential" - we should really expand on that. Cheers, Simon [1] http://www.haskell.org/~simonmar/libraries/libraries.html

"Simon Marlow"
It occurs to me that if the reference implementation is GPL, then this may encumber the definition of the API such that a commercial reimplementation would not be possible.
I don't think that this is a valid concern.
In some cases this is inevitable - for example, System.Console.Readline wraps a GPL library, so there is probably no way to have an unencumbered API definition for this library.
You can always put the API of a library under a BSD license and the rest under GPL.
However, we want to avoid having "essential" parts of the library definition covered by the GPL. The library document[1] mentions this problem, but doesn't specify exactly what we mean by "essential" - we should really expand on that.
As soon as the API of a library is defined in an extra document, even under the most paranoid interpretation of the GPL, a library implementation of that API, which is under the GPL will not affect the license of that API. I think it is impossible to define what's "essential", AFAIK the idea was that bindings to, eg, standard system functionality would be part of a core that is under a BSD license (as are the Haskell standard modules). Cheers, Manuel
participants (2)
-
Manuel M T Chakravarty
-
Simon Marlow