I am working a project that is licensed under the MPL 1.1 and would like to incorporate some code that is licensed under the APL 2.0.

I know in 2010 Mozilla announced they were updating the MPL to make it more "Apache compatible" among other things.

I'm no lawyer. Exactly what part(s) of the MPL 1.1 don't jive with the APL 2.0 and vice versa? The project has very few of its original contributers still actively involved so I doubt I'd be able to contact all of them to get permission to change the license.

  • 2
    We are not lawyers either. You'd better ask a real lawyer for legal advice. Sep 14, 2011 at 16:52

3 Answers 3


Unless your project has been using "Mozilla 1.1 only", it is implicitly using "Mozilla 1.1 or higher". Therefore, the project can be upgraded to Mozilla 2.0 (or even forked, without the consent of the contributors).

If you want to stay with Mozilla 1.1, all you need to do is to not mix Apache and Mozilla licensed code in the same source file. Your project will then be a mixed-license work. Browse the "copyright" files at http://packages.debian.org to see how ordinary this situation is.

=========== full background

The Apache license (2.0; 1.0 is unrelated!) is "permissive", meaning derivates can be be commercial and closed. Prior to Apache, all of the popular permissive licenses (BSD, Athena(MIT/X11), zLib, ~ Public Domain) were quite simple. So they are compatible with nearly all other licenses (well, except if there was an advertizement clause, which is now rare).

The Apache license tries to address more modern needs. It has procedures for tracking the history of a work. It has a MAD (Mutually Assured Destruction)-style patent clause. None of that is really opposed by GPL or Mozilla, it's just not among the "restrictions" that they allow.

The Mozilla license requires less crediting, but requires deriviatives to be made available to the "initial developer" of the project without restriction, and made available to the public under the Mozilla license. It was intended allow code to be open sourced without the owner losing her advantage over competitors.

The Mozilla license infects up to the source code file boundary, but generally, no further than that. (The GPL infects much more, up to the linker / kernel-call boundary.) Patch files are an exception, since they tend to be derived works of the target of the patch.

You can freely aggregate files under Mozilla, LGPL, and any permissive license such as Apache. This is the norm in large open-source applications. Especially so for Java, where GPL is considered too infective, and Apache.org is the biggest infrastructure provider.

A single file of source code cannot comply with both Mozilla 1.1 AND Apache license, because Mozilla (like GPL) does not tolerate any additional encumberance. A single piece of source can comply with Mozilla OR Apache, or almost any other license. For example, Firefox is released under Mozilla OR GNU OR LGNU license.

Due to Apache's growing influence, GPLv3 and Mozilla v2 made sure that they were compatible. Opting out of the "version upgrade clause" is the only encumberance that GPL and Mozilla allow a user to add. The only major license that users actually did "opt out" of was GPLv3, due to it being more infective than GPLv2. The Linux kernel, for example, is GPLv2 only.


As Diphan said, APL 2.0 is less restrict than MPL 1.1 so you wouldn't have problems probably. See the Wikipedia table: Comparison of free and open source software licenses


"We wanted MPL users to be able to use code from other permissively-licensed projects (particularly Apache-licensed code)" meaning Apache code (1.0, 1.1, and 2.0, because 2.0 was released in 2004 and MPL 2.0 was released in 2012) could not be used in pre-2.0 MPL licensed code. The poster is specifically asking about MPL 1.1. So no, he should not include Apache 2.0 code in MPL 1.1 code.

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