Background Note: This was originally written as part of a debate on license terms for releasing the source code to some parts of Unix, with the general intent of promoting use of those parts in GNU/Linux distributions. Given that GNU and Linux are GPL-licensed, I argued that the incompatibility between MPL and GPL should preclude use of MPL. This incompatibility is not immediately obvious to many readers, so I was asked to explain in detail why MPL and GPL are incompatible.
I've made the assertion on several occasions that the Mozilla Public License (MPL) is incompatible with the GNU General Public License (GPL). This is not an original observation on my part. It is the oft-stated opinion of Richard Stallman and others.
The effect of this incompatibility is that if a company releases source code under the MPL, none of that source code can ever be incorporated into GPL programs. Moreover, no GPL-licensed source code can be incorporated into a program containing the MPL source code. This incompatibility is a matter of law: there is no way that one program can satisfy both licenses, so one must choose not to use at least one of the licenses.
I've been asked, on at least two occasions, to explain exactly why the two licenses are incompatible. I will attempt to explain this as best I can. Beware that I am not a lawyer, that I have no legal training of experience whatsoever, and that I have no expertise with the copyright and contract law which these licenses are based on. It is also worth noting that some terms (particularly in the GPL, terms like "work" and "derived work") have been left undefined so as not to conflict with whatever legal definitions may exist or be established.
I will quote from the licenses, but you may wish to look up the entire licenses.
The argument for incompatibility is as follows:
You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder.The "rights hereunder" include the right granted to recipients to link MPL "Covered Code" with private non-MPL code to form a "Larger Work" (MPL 3.7 Larger Works). GPL does not give recipients any such right. Therefore, the recipient cannot change the licensing terms to apply the GPL instead of MPL.
GPL has other requirements, regarding such things as notices of copyright and lack of warranty, which may be construed as limiting recipients' rights.
Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein.MPL permits recipients to subvert the fundamental GPL right "to copy, distribute or modify the Program". In addition to allowing linkage with proprietary code, MPL 3.6 permits the recipient to relicense binaries:
You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License.This section, in turn, fails to satisfy the requirements of GPL 3, which states:
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.MPL only requires that the source code to the covered code (including any modifications to the covered code) be made available, which is not sufficient to ensure that the recipient can actually modify a real program.
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.There are some software licenses which do not conflict with this requirement. In particular:
Note: The Free Software Foundation has an extensive software license list, including notes on which licenses are or are not compatible with GPL.