ⓘ Mozilla Public License


ⓘ Mozilla Public License

The Mozilla Public License is a free and open source software license developed and maintained by the Mozilla Foundation. It is a weak copyleft license, characterized as a middle ground between permissive free software licenses and the GNU General Public License, that seeks to balance the concerns of proprietary and open source developers. As such, it allows re-licensing. MPL software can thus be converted into a copyleft license such as the GPL, or to a proprietary license.

It has undergone two revisions, a minor update to version 1.1, and a major update to version 2.0 with the goals of greater simplicity and better compatibility with other licenses.

The MPL is the license for Mozilla Firefox, Mozilla Thunderbird, and most other Mozilla software, but it has been used by others, such as Adobe to license their Flex product line, and The Document Foundation to license LibreOffice 4.0 also on LGPL 3+. Version 1.1 was adapted by several projects to form derivative licenses like Sun Microsystems own Common Development and Distribution License.


1. Terms

The MPL defines rights as passing from "Contributors" who create or modify source code, through an optional auxiliary distributor itself a licensee, to the licensee. It grants liberal copyright and patent licenses allowing for free use, modification, distribution, and "exploit" of the work, but does not grant the licensee any rights to a contributors trademarks. These rights will terminate if the licensee fails to comply with the licenses terms and conditions, but a violating licensee who returns to compliance regains its rights, and even receiving written notice from a Contributor will result in losing rights to that Contributors code only. A patent retaliation clause, similar to that of the Apache License, is included to protect an auxiliary distributors further recipients against patent trolling. The contributors disclaim warranty and liability, but allow auxiliary distributors to offer such things on their own behalf.

In exchange for the rights granted by license, the licensee must meet certain responsibilities concerning the distribution of licensed source code. Covered source code files must remain under the MPL, and distributors "may not attempt to alter or restrict recipients rights" to it. The MPL treats the source code file as the boundary between MPL-licensed and proprietary parts, meaning that all or none of the code in a given source file falls under the MPL. An executable consisting solely of MPL-covered files may be sublicensed, but the licensee must ensure access to or provide all the source code within it. Recipients can combine licensed source code with other files under a different, even proprietary license, thereby forming a "Larger Work" which can be distributed under any terms, but again the MPL-covered source files must be made freely available. This makes the MPL a compromise between the MIT or BSD licenses, which permit all derived works to be relicensed as proprietary, and the GPL, which requires the derived work as a whole to be licensed under the GPL. By allowing proprietary modules in derived projects while requiring core files to remain open source, the MPL is designed to motivate both businesses and the open-source community to help develop core software.

The one exception to covered source files remaining under the MPL occurs when code under version 2.0 or later is combined with separate code files under the GNU GPL, GNU Lesser GPL LGPL, or GNU Affero GPL AGPL. In this case, the program as a whole will be under the chosen GNU license, but the MPL-covered files will be dual-licensed, so that recipients can choose to distribute them under that GNU License or the MPL. The initial author of MPL code may choose to opt out of this GPL-compatibility by adding a notice to its source files.

It is explicitly granted that MPL-covered code may be distributed under the terms of the license version under which it was received, or any later version.: 10.2 If code under version 1.0 or 1.1 is upgraded to version 2.0 by this mechanism, the 1.x-covered code must be marked with the aforementioned GPL-incompatible notice. The MPL can be modified to form a new license, provided that said license does not refer to Mozilla or Netscape.


2. History

Version 1.0 of the MPL was written by Mitchell Baker in 1998 while working as a lawyer at Netscape Communications Corporation. Netscape was hoping an open source strategy for developing its own Netscape web browser would allow it to compete better with Microsofts browser, Internet Explorer. To cover the browsers code, the company drafted a license known as the Netscape Public License NPL, which included a clause allowing even openly developed code to be theoretically relicensed as proprietary.

However, at the same time, Baker developed a second license similar to the NPL. It was called the Mozilla Public License after Netscapes project name for the new open source codebase, and, although it was originally only intended for software that supplemented core modules covered by the NPL, it would become much more popular than the NPL and eventually earn approval from the Open Source Initiative.

Less than a year later, Baker and the Mozilla Organization would make some changes to the MPL, resulting in version 1.1, a minor update. This revision was done through an open process that considered comments from both institutional and individual contributors. The primary goals were to clarify terms regarding patents and allow for multiple licensing. This last feature was meant to encourage cooperation with developers that preferred stricter licenses like the GPL. Not only would many projects derive their own licenses from this version, but its structure, legal precision, and explicit terms for patent rights would strongly influence later revisions of popular licenses like the GPL version 3.

Both versions 1.0 and 1.1 are incompatible with the GPL, which led the Free Software Foundation to discourage using version 1.1. For these reasons, earlier versions of Firefox were released under multiple licenses: the MPL 1.1, GPL 2.0, and LGPL 2.1. Some old software, such as the Mozilla Application Suite is still under the three licenses. Therefore, in early 2010, after more than a decade without modification, an open process for creating version 2.0 of the MPL began. Over the next 21 months, the MPL was not only changed to make the license clearer and easier to apply, but also to achieve compatibility with the GPL and Apache licenses. The revision team was overseen by Baker and led by Luis Villa with key support from Gervase Markham and Harvey Anderson. They would publish three alpha drafts, two beta drafts, and two release candidates for comment before releasing the final draft of version 2.0 on January 3, 2012.


3. Notable users

  • Armadillo
  • Apache Flex Formerly known as Adobe Flex
  • Mozilla Firefox
  • Cairo
  • Eigen
  • OpenMRS
  • LibreOffice
  • Celtx
  • Syncthing
  • Internet Systems Consortium
  • Boulder, an ACME-based certificate authority.
  • H2 DBMS

4. Licenses based on pre-MPL 2.0

  • Openbravos Openbravo Public License based on MPL v1.1
  • AROS Public License 1.1 based on MPL 1.1
  • MonetDB Public License based on MPL 1.1
  • Erlang Public License 1.1 modified MPL 1.0, where "disagreements are settled under Swedish law in English"
  • Yahoo! Public License
  • Firebirds Initial Developers Public License based on MPL v1.1
  • Sun Public License
  • Common Development and Distribution License
  • Common Public Attribution License