Mozilla Public License

The Mozilla Public License (MPL) is a free and open-source weak copyleft license for most Mozilla Foundation software such as Firefox and Thunderbird. The MPL license is developed and maintained by Mozilla, which seeks to balance the concerns of both open-source and proprietary developers. It is distinguished from others as a middle ground between the permissive software BSD-style licenses and the GNU General Public License. So under the terms of the MPL, it allows the integration of MPL-licensed code into proprietary codebases, but only on condition those components remain accessible.

MPL 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' Common Development and Distribution License. It has undergone two revisions: the minor update 1.1, and a major update version 2.0 nearing the goals of greater simplicity and better compatibility with other licenses.

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[ation]" of the work, but does not grant the licensee any rights to a contributor's trademarks. These rights will terminate if the licensee fails to comply with the license's 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 contributor's code only. A patent retaliation clause, similar to that of the Apache License, is included to protect an auxiliary distributor's 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 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. 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.

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 that an open-source strategy for developing its own Netscape web browser would allow it to compete better with Microsoft's browser, Internet Explorer. To cover the browser's 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 Netscape's 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.

Notable users

 * Apache Flex (Formerly known as Adobe Flex)
 * Armadillo
 * Boulder, the software that runs the Let's Encrypt certificate authority
 * Cairo
 * Celtx
 * Cemu
 * Eigen
 * H2 (DBMS)
 * Internet Systems Consortium
 * LibreOffice
 * Mozilla Firefox
 * OpenMRS
 * Syncthing
 * Servo
 * Brave Browser
 * MonetDB (marked as "Incompatible With Secondary Licenses")
 * RabbitMQ
 * VLC (iOS Version)

Licenses based on pre-MPL 2.0

 * AROS Public License 1.1 (based on MPL 1.1)
 * Common Development and Distribution License
 * Common Public Attribution License
 * Erlang Public License 1.1 (modified MPL 1.0, where "disagreements are settled under Swedish law in English" )


 * Firebird's Initial Developer's Public License (based on MPL v1.1)
 * Sun Public License
 * Yahoo! Public License
 * Openbravo's Openbravo Public License (based on MPL v1.1)