Re: [eigen] MPL2 is really compatible with GPL/LGPL

[ Thread Index | Date Index | More Archives ]

2012/6/28 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> 2012/6/28 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
>> Hi,
>> I had a look too, and the FAQ really confuses me, especially the
>> requirements 2 and 3 of this entry
>> 2 - The Larger Work must be "a combination of Covered Software with a
>> work governed by one or more Secondary Licenses." So you can't just
>> say "I really prefer (L)GPL" - you must have a need to combine with
>> another, existing GPL work. (This is different from a traditional
>> dual-license, which does not require you to combine, and instead
>> allows you to simply say "I've decided to be GPL-only.")
>> 3 - You must "additionally distribute" under (L)GPL. In other words,
>> you must make the MPL-licensed source code available to your
>> recipients under both MPL and (L)GPL. Someone downstream from your
>> recipients can then take under (L)GPL-only or MPL-only. This is
>> different from a traditional dual-license, which never requires
>> publication under both licenses, and so always gives you the option of
>> releasing incompatibly-licensed code.
>> Does that means if someone combines MPL2 code and LGPL code to build
>> an app, then the app can be either MPL2 or LGPL?? This does not make
>> sense to me.
> No. That's the whole point here: the MPL2 is trying to strike a
> balance between GPL compatibility, and fixing the loophole whereby
> people can take MPL code, improve it, and only release the
> improvements under GPL-only. This is a compromise between two really
> hard-to-reconcile opposite things, which is why it's complicated.
> So here's how it works, in my understanding. If someone combines
> MPL2-licensed Eigen with their (L)GPL code, then they MUST offer the
> result under MPL, but they are also allowed to dual-license it with
> one of the Secondary Licenses. So for example, they can dual-license
> MPL/GPL. A third-party can then take it and drop either license, but
> they can't directly do it themselves. So the loophole still exists (if
> they can find a complacent/fake "third-party" to drop the MPL license
> for them), but it's a lot more inconvenient/dangerous to exploit.
> In my understanding, the MPL is more liberal than the LGPL here,
> because with LGPL-licensed Eigen, the Larger Works using Eigen are
> definitively subject to LGPL, there is no way for users to drop the
> LGPL for any secondary license.

Actually, I guess they can switch from LGPL to GPL at any time...
exactly the same pattern repeating itslef here: licenses allow to
switch to more copyleft-ish licenses, not to less copyleft-ish


> Before you scream "but I don't want people to strip Eigen code from
> its license", think about what this implies: if people want to drop
> the MPL license in combined works involving Eigen, that can only be to
> switch to one of the Secondary Licenses listed in 1.12, which are...
> the GNU licenses. It's not like we're allowing people to switch to
> more liberal licenses or to whatever licenses they choose.
> Sorry about the confusion I must have created in my first email in
> this thread when I wrongly said that the MPL didn't mention GPL/LGPL
> and was fully generic in this respect. It's not. Section 1.12.
> Benoit
>> Requirement 3 is confusing too: I don't understand how is it different
>> from traditional dual-licensing if the "recipients can then take under
>> (L)GPL-only or MPL-only" ??
>> What does "you must make the MPL-licensed source code available to
>> your recipients under both MPL and (L)GPL" means for us in practice?
>> gael
>> On Thu, Jun 28, 2012 at 10:11 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>>> Hi,
>>> I've finally had a look at it and in fact it's really clear --- sorry,
>>> I don't know why I took so long to get back to it, sometimes you just
>>> need to give your brain some time before you come back to a problem.
>>> I am CC'ing Gerv who is a MPL expert at Mozilla to hopefully check
>>> that I am not saying anything wrong here.
>>> Here goes:
>>> The MPL itself doesn't ever mention the GPL, LGPL, or any other
>>> licenses. So the compatibility is implicit and generic. The FAQ
>>> explains it, though not as simply as I would like for non-lawyers,
>>> which is why I didn't get back to it until today:
>>> Here is my understanding of things from the MPL2 text, regardless of the FAQ:
>>> The license is designed to be GPL compatible by default, but allow you
>>> to opt out from it. This opting-out feature is primarily intended for
>>> existing software that is licensed under MPL1, and not dual-licensed
>>> with GPL and/or LGPL. Such software is not currently GPL-compatible,
>>> so they had to find a way to allow it to upgrade without having to
>>> accept GPL-compatibility (I guess). Anyway, the key is that this is
>>> NOT our case and if we relicense to plain default MPL2 we are NOT
>>> concerned by this at all. The default case, into which we fall by
>>> default, is GPL-compatible.
>>> Here is how this is working in the MPL2 text. The key part is Section 3..3:
>>>> 3.3. Distribution of a Larger Work
>>>> You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).
>>> So as long as we are not "Incompatible With Secondary Licenses", we
>>> are GPL compatible in the sense that if you combine MPL2 and GPL code
>>> to create a Larger Work, you can distribute the Larger Work under dual
>>> MPL/GPL. As explained in the FAQ, "Someone downstream from your
>>> recipients can then take under (L)GPL-only or MPL-only.".
>>> The question becomes then, what decides whether we are "Incompatible
>>> With Secondary Licenses"?
>>> This is explained clearly by Section 1.5: we would be "Incompatible
>>> With Secondary Licenses" if either of the following conditions were
>>> true:
>>>  - either if Eigen had been previously licensed as MPL1 only (does not
>>> apply to dual-licensing with MPL and another license).
>>>  - or if we added the text snippet from Exhibit B to explicitly opt
>>> out from compatibility
>>> Since we are not in either case, we are not  "Incompatible With
>>> Secondary Licenses". Therefore, the provisions of 3.3. Distribution of
>>> a Larger Work apply to us, i.e. we are compatible.
>>> Is this fully clear to everyone?
>>> Benoit

Mail converted by MHonArc 2.6.19+