The Mozilla Public License version 2.0 (MPL 2.0) is a free and open source software licence published by the Mozilla Foundation, which is its licence steward and the only party that may publish new versions.[1] It was released in January 2012 and approved by the Open Source Initiative on January 9, 2012.[5][4] The SPDX License List marks it as FSF Free/Libre and OSI Approved.[9] Mozilla describes the MPL as a simple copyleft licence whose “file-level” copyleft encourages sharing of modifications while still allowing MPL code to be combined with code under other licences, open or proprietary.[2] The FAQ places it between the Apache License, which does not require modifications to be shared, and the GNU licences, which require sharing in many more circumstances.[2]
Firefox, Thunderbird and most other Mozilla software use MPL 2.0, and many unrelated projects use it too. For a business, the licence splits cleanly in two. Use, internal modification and internal distribution carry no obligations, and distribution to third parties carries specific but narrowly scoped obligations.
Key definitions
The licence’s scope turns on a handful of defined terms in Section 1.[1]
| Term | Meaning (MPL 2.0 Section 1) |
|---|---|
| Covered Software | Source code carrying the Exhibit A notice, its Executable Form and Modifications of it (§1.4) |
| Modifications | A source file that changes Covered Software, or a new source file that contains Covered Software (§1.10) |
| Larger Work | A work combining Covered Software with other material, in separate files, that is not Covered Software (§1.7) |
| Executable Form | Any form of the work other than Source Code Form (§1.6) |
| Source Code Form | The form of the work preferred for making modifications (§1.13) |
| Secondary License | GNU GPL 2.0, LGPL 2.1, AGPL 3.0, or any later versions of those licences (§1.12) |
| You | An individual or legal entity, including entities it controls, is controlled by or is under common control with (§1.14) |
The Section 1.14 definition of “You” covers entities under common control, defined as more than 50% ownership or the power to direct management. This is why the FAQ can treat distribution within a company or organization as private.[1][2]
Grants
Each Contributor grants a world-wide, royalty-free, non-exclusive licence to use, reproduce, make available, modify, display, perform, distribute and otherwise exploit its Contributions. The grant covers unmodified use, use with Modifications and use as part of a Larger Work, and it comes with a patent licence for the Contributor’s Contributions and Contributor Version (rule).[1] The licence has no field-of-use limit and no distinction between commercial and non-commercial use. The patent grant does not cover code a Contributor has removed, infringement caused by third-party modifications or combinations, or claims infringed only in the absence of the Contribution. No trademark rights are granted (Section 2.3, rule).[1] Sections 3.1 to 3.4 are expressly conditions of the grants (Section 2.7).[1]
When obligations apply
The FAQ answers the common cases directly.[2]
| Activity | What the licence requires |
|---|---|
| Using MPL software, for any purpose | Nothing (FAQ Q5, rule) |
| Modifying or distributing it inside the organization | Nothing (FAQ Q6) |
| Passing on unchanged executables built by someone else | Typically nothing, if the upstream distributor complied (FAQ Q7) |
| Distributing executables compiled from unchanged MPL source | Tell recipients where to get the MPL source (FAQ Q8, §3.2) |
| Distributing modified MPL source | License Modifications under the MPL, make the Section 2 grants and keep notices (FAQ Q9) |
| Distributing executables built from modified source | Make the MPL portions of the source available and say how to get them (FAQ Q10) |
| Running MPL code on a server | Not distribution. Code sent to clients (HTML, CSS, JavaScript) is distribution (FAQ Q17, rule) |
Distribution obligations
Source Code Form
Source distribution of Covered Software, including Modifications, must be under the MPL. Recipients must be told that the MPL governs the source and how to obtain a copy of the licence, and the distributor may not restrict their rights in the source (rule).[1] Unlike MPL 1.1, MPL 2.0 does not require a full copy of the licence to accompany the code. Distributors must tell recipients how to get it, although Mozilla still describes including the licence as the easiest approach.[3]
Executable Form
Anyone distributing Covered Software in Executable Form must also make the source available and inform recipients how to obtain it “by reasonable means in a timely manner”, at no more than the cost of distribution (rule).[1] The FAQ considers a courier or similar physical mechanism unreasonable when it adds cost and complexity without a specific need.[2] The Revision FAQ gives examples of informing recipients, such as an About box or a “Legal” or “Notices” section of a website serving MPL JavaScript.[3] Minified JavaScript is Executable Form, so a link to the source satisfies the obligation.[2] The executable itself may be distributed under the MPL or sublicensed under other terms, including a proprietary EULA, as long as those terms do not limit recipients’ rights in the source (rule).[1]
Notices
Licence notices in the source (copyright and patent notices, warranty disclaimers and liability limits) may not be removed or substantively altered, except to correct known factual inaccuracies (rule).[1] The standard per-file notice is Exhibit A. Where a per-file notice is impractical, it may be placed where a recipient would be likely to look, such as a LICENSE file.[1] The FAQ accepts an SPDX-License-Identifier: MPL-2.0 header as meeting the notice goals.[2] Notices displayed when the software runs may be changed. The FAQ discourages this but confirms the licence permits it.[2]
Additional terms and statutory limits
Distributors may charge for warranty, support, indemnity or liability obligations, but only on their own behalf. They must make clear that they alone offer these, and they must indemnify Contributors against resulting liability (rule).[1] If a statute, judicial order or regulation makes compliance impossible, Section 4 requires compliance to the maximum extent possible. It also requires a text file with every distribution that describes the limitation and the affected code.[1]
Copyleft scope and combinations
File-level copyleft
Copyleft attaches to files. A Modification is a file that changes Covered Software or a new file that contains it (rule).[1] New files that contain no MPL code are not Modifications, even when compiled or distributed together with MPL files. The FAQ gives the example of static linking into a larger proprietary program, which “would not generally be possible” under stronger copyleft licences (rule).[2] The FAQ summarises the difference: under the MPL copyleft covers files containing MPL code, under the LGPL it covers a library based on LGPL code, and under the GPL it covers all software based on GPL code.[2]
Secondary Licenses
Section 3.3 allows a Larger Work that combines MPL code with a work under the GPL, LGPL or AGPL to distribute the MPL code additionally under that licence, so that downstream recipients may choose either (rule).[1] The FAQ sets three conditions. The code must not be Incompatible With Secondary Licenses, the combination must be with an existing (L)GPL work, and the MPL code must be made available under both licences.[2] Code is Incompatible With Secondary Licenses if the author attached Exhibit B, or if it was released only under MPL 1.1 or earlier.[1] Shipping a copy of the full MPL text does not attach Exhibit B, so incompatibility requires an active choice by the licensor.[2] SPDX identifies the Exhibit B variant as MPL-2.0-no-copyleft-exception, which “effectively negates the copyleft compatibility clause in section 3.3”.[6]
Other licences
The FAQ confirms that MPL code can be combined with BSD- and Apache-licensed code in the same executable, and the Revision FAQ states that anyone complying with the MPL should also comply with the Apache License.[2][3] For code in Mozilla’s own products, the Source Code License Policy lists CC0, public domain dedications, MIT, New BSD and similar permissive licences, Apache 2.0, and GPL/MPL dual licences as compatible in the same binary. It allows LGPL libraries under some conditions and lists CC-BY and the GPL as incompatible for that purpose.[8]
Termination
Rights terminate automatically on non-compliance. They are reinstated provisionally once the licensee becomes compliant, and permanently if the Contributor gives no notice within 60 days of compliance being restored. Rights are also reinstated permanently when the licensee receives a first notice from that Contributor and cures within 30 days (rule).[1] Starting patent litigation alleging that a Contributor Version infringes terminates the rights granted by all Contributors. Declaratory judgment actions, counter-claims and cross-claims are excluded (rule).[1] End-user licences validly granted before termination survive.[1]
Versions
Covered Software may be distributed under the version under which it was received or under any later version the steward publishes (rule).[1] MPL 1.1 required electronically distributed source to remain available for at least twelve months (rule).[7] MPL 2.0 replaced that fixed period with availability whenever the executable is made available, and the file-level copyleft is essentially unchanged between the two versions.[3] Anyone who received code under MPL 1.1 may upgrade it by replacing the header with Exhibit A of MPL 2.0, and must add Exhibit B if the code was MPL 1.1-only.[3] A modified licence may be created only if it is renamed and references to the steward are removed (Section 10.3), and the FAQ strongly discourages doing so.[1][2]
Metrics, counting and virtualization
Not applicable. The MPL is royalty-free and sets no unit of measure, floor, virtualization or cloud rule.[1]
Out of scope
This article does not cover trademark use, which the MPL expressly excludes and which is covered in Mozilla trademark and distribution policy. It does not analyse the GPL, LGPL or Apache License beyond their interaction with the MPL, or give jurisdiction-specific legal interpretation. Mozilla notes that its FAQ is not a substitute for reading the licence or seeking legal advice.[2]