Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

MPL and GPL

40 views
Skip to first unread message

Julien Vehent

unread,
Sep 9, 2014, 10:34:47 AM9/9/14
to le...@lists.mozilla.org
Hi,

I would like some clarifications on the usage and distribution of GPL
code under the MPL 2.0 license.
I work on a project that may need to use, modify and redistribute GPL
source code. The FAQ at [1] indicates that this is possible by "creating
a "Larger Work" under the terms of Section 3.3". The project is
currently licensed under MPL 2.0 only. What wording do I need to use
in order to publish this project under both licenses? If there are any
examples you could point me too, that would be great.

Thank you,
Julien Vehent

[1] https://www.mozilla.org/MPL/2.0/FAQ.html#mpl-and-lgpl

Gervase Markham

unread,
Sep 10, 2014, 9:11:49 AM9/10/14
to Julien Vehent
Hi Julien,


On 09/09/14 15:34, Julien Vehent wrote:
> I would like some clarifications on the usage and distribution of GPL
> code under the MPL 2.0 license.
> I work on a project that may need to use, modify and redistribute GPL
> source code.

Is this a Mozilla project or something else?

What do you mean by "use, modify and redistribute". Do you implicitly
mean "as a linked-in part of the application"?

> The FAQ at [1] indicates that this is possible by "creating
> a "Larger Work" under the terms of Section 3.3". The project is
> currently licensed under MPL 2.0 only. What wording do I need to use
> in order to publish this project under both licenses? If there are any
> examples you could point me too, that would be great.

It is not permitted to just take a body of MPL 2'd code and say "OK,
this is now GPLed". In this way, the MPL 2 is not exactly like the dual
license we used to use. It has a little bit more license-forking
resistance.

MPL 2'd code can be turned (effectively) into MPL2/GPL dual-licensed
code by combining it with some existing GPL-only code to make a Larger
Work. This might mean, for example, linking to a GPLed library. If you
do this, then the source code of the result is distributed under the
GPL, with the originally-MPL2 bits also distributed under the MPL.

So if your problem actually is: "We have an MPLed project and we want to
link in GPLed code", then you can legally do that. (Although if it were
an official Mozilla project, that may well be against policy for our
official codebase of this code.)

Someone else other than you then does have the right to take your Larger
Work, take the GPL/MPL2 dual-licensed parts and remove the MPL option,
making the code GPL-only. Although we would discourage them from doing
that, because it makes it impossible to contribute back to the original
codebase.

Does that help?

Gerv

Julien Vehent

unread,
Sep 17, 2014, 6:42:44 PM9/17/14
to Gervase Markham, le...@lists.mozilla.org
Hi Gerv,

Thanks for the reply. It definitely helps clarify a rather complex topic.
I have a couple more questions below.

On Wed 10.Sep'14 at 14:11:49 +0100, Gervase Markham wrote:
> Hi Julien,
>
> On 09/09/14 15:34, Julien Vehent wrote:
> > I would like some clarifications on the usage and distribution of GPL
> > code under the MPL 2.0 license.
> > I work on a project that may need to use, modify and redistribute GPL
> > source code.
>
> Is this a Mozilla project or something else?
>

It is a Mozilla project called Masche: https://github.com/mozilla/masche
We are considering using part of the GDB source code to generate core
dumps, which is under GPL3. We *may* have to modify some of that GPL3 code.

> What do you mean by "use, modify and redistribute". Do you implicitly
> mean "as a linked-in part of the application"?
>

I mean that we want to use and modify GPL3 source code, and distribute
binaries that are built from MPL2 and GPL3 source code.

> > The FAQ at [1] indicates that this is possible by "creating
> > a "Larger Work" under the terms of Section 3.3". The project is
> > currently licensed under MPL 2.0 only. What wording do I need to use
> > in order to publish this project under both licenses? If there are any
> > examples you could point me too, that would be great.
>
> It is not permitted to just take a body of MPL 2'd code and say "OK,
> this is now GPLed". In this way, the MPL 2 is not exactly like the dual
> license we used to use. It has a little bit more license-forking
> resistance.
>
> MPL 2'd code can be turned (effectively) into MPL2/GPL dual-licensed
> code by combining it with some existing GPL-only code to make a Larger
> Work. This might mean, for example, linking to a GPLed library. If you
> do this, then the source code of the result is distributed under the
> GPL, with the originally-MPL2 bits also distributed under the MPL.
>
> So if your problem actually is: "We have an MPLed project and we want to
> link in GPLed code", then you can legally do that. (Although if it were
> an official Mozilla project, that may well be against policy for our
> official codebase of this code.)
>

So, if I understand correctly, all Mozilla code, including our own
modifications to GPL3 code, stay under the MPL2 license. And all
original linked code stays under the GPL3 license. Is this correct?

Do we need to change the wording of the LICENSE file of the project? Or
is a License header at the top of each file sufficient?

> Someone else other than you then does have the right to take your Larger
> Work, take the GPL/MPL2 dual-licensed parts and remove the MPL option,
> making the code GPL-only. Although we would discourage them from doing
> that, because it makes it impossible to contribute back to the original
> codebase.
>
> Does that help?
>
> Gerv
>

Thanks a lot!

- Julien

Gervase Markham

unread,
Sep 22, 2014, 10:26:30 AM9/22/14
to Julien Vehent
On 17/09/14 23:42, Julien Vehent wrote:
> It is a Mozilla project called Masche: https://github.com/mozilla/masche
> We are considering using part of the GDB source code to generate core
> dumps, which is under GPL3. We *may* have to modify some of that GPL3 code.

I'm sorry I can't tell by reading the docs on that site: is Masche a
standalone tool, or something which is linked into e.g. Firefox? If the
latter, are you hoping to distribute builds of Firefox with Masche built in?

Why is Mozilla building Masche?

>> What do you mean by "use, modify and redistribute". Do you implicitly
>> mean "as a linked-in part of the application"?
>
> I mean that we want to use and modify GPL3 source code, and distribute
> binaries that are built from MPL2 and GPL3 source code.

OK. Those binaries would be under GPLv3. You would be required to
provide source code. Of that source code, the originally-GPLv3 bits
would still be GPLv3, and the originally-MPL2 bits would be
dual-licensed MPL2/GPLv3, when you provided them. However, a 3rd party
could choose to resolve the dual license down to a single (in either
direction) if they wished.

> So, if I understand correctly, all Mozilla code, including our own
> modifications to GPL3 code, stay under the MPL2 license.

No; see above. The Mozilla code would become dual-licensed GPLv3/MPL2.

You would probably choose to license modifications to the GPLv3ed code
as GPLv3-only; there's not much point making them MPL2 as well.

> Do we need to change the wording of the LICENSE file of the project? Or
> is a License header at the top of each file sufficient?

The question you need to ask before this is: is this something Mozilla
policy allows us to do? :-)

To answer that, I'd need to understand the answer to my first question
above.

Gerv

Julien Vehent

unread,
Sep 22, 2014, 11:33:50 AM9/22/14
to Gervase Markham, mozill...@lists.mozilla.org
On Mon 22.Sep'14 at 15:26:30 +0100, Gervase Markham wrote:
> On 17/09/14 23:42, Julien Vehent wrote:
> > It is a Mozilla project called Masche: https://github.com/mozilla/masche
> > We are considering using part of the GDB source code to generate core
> > dumps, which is under GPL3. We *may* have to modify some of that GPL3 code.
>
> I'm sorry I can't tell by reading the docs on that site: is Masche a
> standalone tool, or something which is linked into e.g. Firefox? If the
> latter, are you hoping to distribute builds of Firefox with Masche built in?
>
> Why is Mozilla building Masche?
>

I should have clarified this bit earlier: Masche is not related to
Firefox in any way. It's a standalone memory forensic library that will
be used in another project - MIG: Mozilla Investigator - to perform live
forensic on servers. It's not a product we distribute to end users. It's
an operation security tool that we are building for our own needs.

> >> What do you mean by "use, modify and redistribute". Do you implicitly
> >> mean "as a linked-in part of the application"?
> >
> > I mean that we want to use and modify GPL3 source code, and distribute
> > binaries that are built from MPL2 and GPL3 source code.
>
> OK. Those binaries would be under GPLv3. You would be required to
> provide source code. Of that source code, the originally-GPLv3 bits
> would still be GPLv3, and the originally-MPL2 bits would be
> dual-licensed MPL2/GPLv3, when you provided them. However, a 3rd party
> could choose to resolve the dual license down to a single (in either
> direction) if they wished.
>
> > So, if I understand correctly, all Mozilla code, including our own
> > modifications to GPL3 code, stay under the MPL2 license.
>
> No; see above. The Mozilla code would become dual-licensed GPLv3/MPL2.
>
> You would probably choose to license modifications to the GPLv3ed code
> as GPLv3-only; there's not much point making them MPL2 as well.
>
> > Do we need to change the wording of the LICENSE file of the project? Or
> > is a License header at the top of each file sufficient?
>
> The question you need to ask before this is: is this something Mozilla
> policy allows us to do? :-)
>
> To answer that, I'd need to understand the answer to my first question
> above.

I think I got my answer:
- all original Mozilla code is under MPL2.
- all modified GPL3, or code added to the GPL3 source, is under GPL3

This is a difficult subject to navigate. I very much appreciate your
help in the matter!

Thanks.
Julien

Gervase Markham

unread,
Sep 22, 2014, 12:06:06 PM9/22/14
to jve...@mozilla.com
On 22/09/14 16:33, Julien Vehent wrote:
> I should have clarified this bit earlier: Masche is not related to
> Firefox in any way. It's a standalone memory forensic library that will
> be used in another project - MIG: Mozilla Investigator - to perform live
> forensic on servers. It's not a product we distribute to end users. It's
> an operation security tool that we are building for our own needs.

OK. So what MPLed code are you hoping to use in it? Are you talking
about code you wrote yourselves for Masche, or code imported from other
bits of the Mozilla codebase?

Gerv

0 new messages