Question

I've done a spot of Googling, and all I can find is information on using code under the MPL in a larger GPL licensed project. What I really want to know is: can I included GPL(v3) licensed code(/binaries) in a larger MPL(2.0) licensed project?

My understanding so far is that I can't, and that any project which uses GPL software must also be released under the GPL. Is this correct?

If this is correct, can I write software and release it under the MPL, even if it depends on a GPL library, as long as I don't distribute the GPL licensed parts with my MPL licensed parts?

And, if I then want to distribute both parts as a "larger work", how would the overarching GPL affect my MPL code?

Was it helpful?

Solution

Disclaimer, this is similar to my other answer on MIT & GPL, but there are some nuances involved with MPL.

can I included GPL(v3) licensed code(/binaries) in a larger MPL(2.0) licensed project?

Short answer: No, you can't*. They'll become subject to the copyleft.

* See the longer answer as this is one of the trickier ones

Long answer:

Reference 1 ) The Wikipedia article on license compatibility has a good section on GPL compatibility:

Many of the most common free software licenses, such as the original MIT/X license, ... are "GPL-compatible". That is, their code can be combined with a program under the GPL without conflict (the new combination would have the GPL applied to the whole).

[emphasis added]

Reference 2 ) And more explicitly from the FSF FAQ on GPL compatibility:

It means that the other license and the GNU GPL are compatible; you can combine code released under the other license with code released under the GNU GPL in one larger program.

And just for edification, here's the FSF's comments on various licenses

FSF has a number of comments on the MPL license.

Short version is that your combined work must be released as GPL.

Where it gets tricky

Let's say we have project Foo licensed under MPL, and project Bar licensed under GPL and which wants to use Foo.

Bar+Foo is allowed since the licenses are compatible, and the release of Bar+Foo must be GPL as Bar is GPL. Foo, by itself and without Bar or Bar+Foo, is still available under the MPL license. Said another way, Bar+Foo has no license impact upon Foo itself.

The resulting license of the project combination is a forward acting event for the combination only. It is not a retroactive event. MPL takes this a step further with section 3.3 and explicitly requires the owner of Bar+Foo to provide Foo's distribution in MPL form.

So if someone else wants to take Foo and do something else with it, they are still free to do so without the copyleft provision of the GPL. However, if they take Bar+Foo, delete Bar and only use +Foo then they are still bound by the terms of the GPL since Bar+Foo was GPL'd.

In my opinion, this is about as close as a license can get to nullifying the viral effect of GPL. The owners of Foo are making sure that it continues to live and be advertised as MPL while still letting you do what you want with your GPL'd application.

You also asked:

If this is correct, can I write software and release it under the MPL, even if it depends on a GPL library, as long as I don't distribute the GPL licensed parts with my MPL licensed parts?

No, this is not correct. It will be GPL since it depends upon a GPL library.

And, if I then want to distribute both parts as a "larger work", how would the overarching GPL affect my MPL code?

You'll distribute the broader work as GPL.
You'll also need to provide the smaller MPL work as MPL.

Licensed under: CC-BY-SA with attribution
scroll top