[Haskell-cafe] GPL License of H-Matrix and prelude numeric
wren ng thornton
wren at freegeek.org
Sat Jan 29 04:22:46 CET 2011
On 1/28/11 7:25 AM, Maciej Piechotka wrote:
> On Thu, 2011-01-27 at 19:36 -0500, wren ng thornton wrote:
>> 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,...)
> Sorry - I misunderstood you. Dual licensing corresponds in my mind to ||
> not&&. I.e. program dual-licensed on MPL and GPL-2 is (MPL || GPL-2)
> and user can choose to which license he wants to adhere. I believe
> similar nomenclature is used on Wikipedia.
Yes, "dual licensing" is disjunctive in the sense that clients are free
to choose. However, the issue about GPL versions has to do with *joint*
licensing, which is more like an intersection between the licenses since
both must be satisfied simultaneously.
Elsewhere on the thread I brought up the example of joint licenses
arising from multiple versions of the BSD3 (namely the person named by
the third clause varies). We can form the join of many BSD3 licenses by
just concatenating them together, which is exactly what Apple does for
all the licenses of the code they build off of. It's just that the join
of GPL2 and GPL3 is inconsistent, so technically they aren't
"GPL-compatible" with one another (until you get around the issue by
dual licensing as GPLx+).
> The problem you are describing corresponds to compatibility and, of
> course, GPL-2 and GPL-3 are not compatible (I believe that GPL-2+&&
> GPL-3+ == GPL-3+).
Yes, GPL2+ && GPL3+ == GPL3+.
More information about the Haskell-Cafe