[Haskell-cafe] GPL License of H-Matrix and prelude numeric
wren ng thornton
wren at freegeek.org
Fri Jan 28 01:36:09 CET 2011
On 1/27/11 2:21 PM, Maciej Piechotka wrote:
> On Thu, 2011-01-27 at 00:45 -0500, wren ng thornton wrote:
>> On 1/26/11 5:51 AM, Maciej Piechotka wrote:
>>> Some projects (like Linux) remove this clause and I'm not sure how many
>>> projects are marked on hackage as GPL2 being GPL2-only.
>> Technically GPLx and GPLy are incompatible for all x and y such that x
>> /= y.The problem is that *technically* the phrasing of the viral clause
>> prohibits dual licensing, despite the obvious intention.
> Could you elaborate? I cannot see any problem why author, having all
> rights, cannot publish code under GPL-2 and MPL. Sure GPL-2 allows
> someone to fork it into single-licence fork.
IANAL, but that is the synopsis that was given to me by and old friend
who was. ISTR that the FSF may have a page on the matter too (circa "how
to upgrade to GPL3" pages), though I'm loo lazy to look for it now.
The problem is in the exact wording of how the viral clause is phrased,
which is somewhat at odds with the intention. Basically, if you license
your work under GPL2, and someone else wants to use it in a derivative
work, then they must distribute the composite work under GPL2. All well
and good, since this is the intention of the viral clause. However,
copyright law doesn't have any built-in notion of "versioning". So if
you distribute your work as GPL2 and someone does some derivative work
that they want to distribute as GPL3, then technically they must
distribute the composite work under the *joint* license (GPL2 && GPL3);
however, since parts of the GPL3 were specifically written as "bugfixes"
to the GPL2, this means the joint license is inconsistent and so noone
can simultaneously adhere to both of them, so the composite work cannot
be (non-vacuously) distributed.
Conversely, if your work was distributed as GPL2+ then you are providing
a disjunction of licenses for users to choose from. The person making
their derivative work would be free to choose the GPL3 (or GPL3+)
license(s) for their use of your work, and this is clearly compatible
with their own GPL3 (or GPL3+) license, so the composite work can be
released under GPL3 && GPL3 == GPL3 (or GPL3+ && GPL3+ == GPL3+, or
GPL3+ && GPL3 == GPL3,...)
If you're familiar with linear logic, this is basically the same kind of
differentiation between multiplicative and additive conjunction.
> Hmm. By GPL I understend FSF version which allows relicensing.
I'm not sure exactly what you're meaning by "relicensing"...
> I'm not sure about the interpretation (and IANAL) but I'm not entirely
> sure if GPLx+ and GPLx-only are compatible at all.
If one project is released under "GPL version x (or, at your option, any
later version)" and the other is released under "GPL version x" (only),
then the composite work can satisfy both by being released under "GPL
version x" (only), since they have the option to choose "GPL version x"
as their license for the first project.
It's only a problem when x-only is not in the range of y+.
More information about the Haskell-Cafe