Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
We are not lawyers either. You'd better ask a real lawyer for legal advice. –  Federico Culloca Sep 14 '11 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.

share|improve this answer

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

share|improve this answer

Using an MPL licensed Code in a project cannot be licensed under APL because APL is weaker! But, using APL licensed code can be easily included under MPL based licensed code.

share|improve this answer
Could you clarify your answer with some citations? –  Jonathan Rich Feb 10 '12 at 20:48

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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