1. Apache-2.0 code may be relicensed as MPL-2.0 (1).
  2. Apache-2.0 code is incompatible with GPL-2 (2).
  3. MPL-2.0 code may also be distributed under GPL-2 when done as a larger work (3 - Q14).

The riddle: How can all three of these be true at once?

EDIT: To be clear, I have no idea. But it does have implications for assuming that a piece of MPL-2.0 work can just be included in a GPL-2 project.

  • 1
    As the end of [1] says (and requires to be documented in the code), MPL2+Apache2 code does not become MPL2 code; it becomes code with some sections that are MPL2 and some sections that are Apache2. Apache 2.0 is compatible into MPL code, but it seems it does not become MPL-licensed. (My understanding of the MPL is not strong enough to write an answer, however.) If I've got that right, then the clear implication is that the Apache2 sections of that code could not be incorporated into GPLv2 code, i.e., code where [1] applies cannot be code where [3] also applies.
    – apsillers
    Aug 10, 2020 at 2:46
  • 1
    I'd venture to say this complexity (and the danger in making the assumption that you identify in your final paragraph) is one reason why the first two sections of [1] basically say, "1. Don't do this. 2. See if you can make it so you don't have to do this."
    – apsillers
    Aug 10, 2020 at 2:49

1 Answer 1


Apache-2.0 code may be relicensed as MPL-2.0 (1).

This statement is misleading on 2 accounts.

  1. Actual relicensing of code requires the permission of all the copyright holders, but when they give permission, you can relicense from any license A to any licence B regardless of the compatibility between the licenses. This is what gets described in point 2 of [1].

  2. What is described in point 3 of [1] (Boilerplate) is actually creating a file whose contents are subject to multiple licenses. When using such a file in your project, you need to comply with all the applicable licenses, so both the MPL-2.0 and the Apache-2.0 licenses.

How can all three of these be true at once?

The MPL terms of the file may allow using it in a GPLv2 project, but the Apache terms that equally apply block the usage in a GPLv2 project, because those Apache terms are incompatible with the GPL as you identified.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.