The Mozilla Public License 1.1 (MPL 1.1)

In January, 1998, Netscape Communications decided to release the binary code of its Communicator web-brower for free. Less than 24 hours later, it decided to release the Communicator source code as well. As a result, at the same time that Netscape was addressing the many technical problems with transitioning Communicator into open source (including removing substantial amounts of code written by third parties who were unwilling to have their code "open sourced"), Netscape had to address the complex licensing issues involved.[14]

The Netscape Public License (NPL) and the Mozilla Public License (MPL) were the result of these efforts.[15] The NPL was substantially similar to the MPL, but it reserved certain rights to Netscape, most importantly, the right on the part of Netscape to relicense code developed by third parties that is derived from Communicator code under a proprietary or other license. Third-party modifiers of NPL-licensed code could thus lose any benefits that might flow from their contributions, without the guarantee, as for instance under the GPL, that their code will remain available to the community of programmers. The MPL does not contain the particular provisions embodying this grant of rights to Netscape.

The MPL constitutes an interesting hybrid of the ideas of the GPL and the BSD licenses already described. While code that falls within the scope of what the license describes as "Covered Code" is subject to many of the restrictions present in the GPL, such as the requirement that it be made available in open source form, the MPL, through its Section 3.7, also permits the use of such "Covered Code" in "Larger Works," meaning that MPL-licensed code can be combined with code licensed under another license. This latter result is expressly prohibited by the GPL and permitted by the BSD License. The MPL establishes something of a middle ground between the two licenses.

Thanks to its heritage as the product of a large American corporation, the MPL reads much more like a standard corporate contract, beginning with a long list of definitions, before going into another long list of numbered paragraphs and sub-paragraphs. Section 1 of the MPL consists entirely of definitions.

1. Definitions.

1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party.

Commercial Use is defined in a somewhat counterintuitive way. As defined, it includes any form of distribution, whether in exchange for payment or not.

1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications.

The explicit definition of the term "Contributor," and the use of that term throughout the MPL 1.1, distinguishes this license from the others we have previously examined. In the BSD and GPL, for example, no distinction is made between the "Contributor" and "You" the licensee: it is presumed that those persons are one and the same. Such a "Contributor" is also distinguished from the "Initial Developer," which is identified in Appendix A to the license. Obviously, with regard to the Mozilla project itself, the Initial Developer was Netscape.

This idea of "Contributors" to the code reflects the centralized notion behind the MPL and the Mozilla project that it was intended to license. Although it was certainly not mandated by the license itself, the MPL reflects a development model under which "Contributors" would be supplying their work to a continuing project, not one under which licensees would be free to appropriate the code to their own uses, subject to certain restrictions on their distribution of the code.

1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.

This provision is a natural outgrowth of the use of the idea of Contributor, as that term is used in the license. This has important effects as the Contributor retains a number of important rights over his contribution, as described in more detail later in the license.

1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof.

This is one of the fundamental terms in the license: Covered Code, Modifications, and Original Code are the three works that are governed by the terms of the license.

1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data.

This idea is one that has been described in previous licenses, for example, the GPL's requirement that source code be made available through FTP sites or comparable methods.

1.5. "Executable" means Covered Code in any form other than Source Code.

Again, this definition of Executable is somewhat different than the form of binary or executable that has been described previously. Rather than define Executable in terms of its function—i.e., as a program that does work—the MPL defines it by what it is not, as not-Source Code, which is defined later. This provides a broader definition than would be provided by a function driven definition.

1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A.

This term has already been addressed, as contrasted to Contributor.

1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.

Unlike the GPL, as will be seen shortly, the MPL permits the combination of work governed by the license—i.e. the Covered Code—with code not governed by the license as part of a Larger Work. This is subject to certain restrictions relating to the making available of the Covered Code; but if those restrictions are satisfied, a Larger Work may otherwise be distributed as the licensee sees fit, including under a proprietary or other license.

1.8. "License" means this document.

This term is self-explanatory.

1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.

This term is probably not strictly necessary, as the term is used in the license in a manner that does not vary from that in common usage. It does preserve, with the clause "whether at the time of the initial grant or subsequently acquired," the licensee from liability if the Initial Developer or Contributor lacks the right to license certain pieces of intellectual property, say, a patent, at the time the licensee exercises rights under the license, but subsequently acquires such a right. One would hope that such situations would be fairly rare, as the licensee (as well as the infringing Initial Developer or Contributor) could probably be held liable for infringement during that interim period.

1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is:

A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications.

B. Any new file that contains any part of the Original Code or previous Modifications.

This term is also largely self-explanatory, including any works made by modifying the Original Code, which is defined immediately below as that code contributed by the Initial Developer, whether by the licensee (the "You" that is also defined below) or by a Contributor. The "Modifications" definition is important because it marks the extent of Covered Code as distinct from a possible larger work, as described in Section 3.7. The decision about what code constitutes Original Code or a Modification is made on a file-by-file basis.

1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License.

The Original Code, as would be expected, is that source code providing the foundation for the license.

1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.

As described in later clauses, both the Initial Developer and any Contributor grant royalty free licenses to any licensee of the MPL for patents held by them, which are related to the MPL software. The use of the term Patent Claims is a means to grant the broadest rights possible in such patents.

1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge.

As with many of the terms given specific definitions under the MPL, the term Source Code is somewhat different than the term "source code" discussed in connection with previous licenses. There are two principal distinctions. First, Source Code can mean one of two things: either, "the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable," which is substantially identical to the use of source code that has been discussed previously; or "source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice," i.e., only that part of the source code that is different from the source code in the Original Code or another well-known version of the Covered Code, the source code of which is presumably available. Using this second option may make distribution of Source Code under the MPL logistically simpler and use less bandwidth.

Second, and to the same end of easing distribution, the MPL permits distribution of the Soure Code, defined either way, in the form of compressed or archived files, so long as the file can be decompressed using widely available free (free as in no-charge) software.

1.12. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1.

The first part of this definition is similar to the use of "You" as licensee in the GPL and other licenses. One variation is that compliance with the terms of the license is expressly made a condition of the exercise of the rights of the license in the definition of itself.

For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.

This second part of the definition is present to include within the scope of the restrictions of the license, with regard to "legal entities," i.e., corporations, partnerships, limited liability companies or other artificial persons recognized by the law, parents, subsidiaries, and sister corporations of the licensee, and is included in similar form in other licenses, as already noted. Any exercise of rights under the license by modification or distribution of the Covered Code or the like would almost certainly bind the related entity to the terms of the license directly, without need for recourse to this provision. Moreover, to the extent such a related entity had not itself exercised any rights under the license, it could argue, perhaps successfully, that it was not bound by the agreement of the licensee.

Nonetheless, this part of the license does narrow the obligation to distribute source code, as required by Section 3.2, at least within the organization. If related entities were deemed to be distinct, they would each have obligation to distribute source code along with executable versions of the code to each other—a result that might be unnecessarily cumbersome, and which is avoided by this definition.

Section 2 of the MPL embodies the first of the two licenses contained in the MPL. As already noted, the MPL distinguishes between the Initial Developer and subsequent Contributors to the program. This distinction is embodied in the two different grants of rights in the MPL, the first of which is the grant of rights by the Initial Developer.

2. Source Code License.

2.1. The Initial Developer Grant.

The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:

(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and

(b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof).

This grant distinguishes between the category of rights applicable to distribution, modifications, and sublicenses of the Original Code when included as part of a Larger Work, as that term is defined earlier or with modifications, and the Original Code when distributed not as part of such a Larger Work. Simply put, the MPL grants a license only of rights excluding patent and trademark rights, i.e., only those rights arising under copyright, when the Original Code is distributed as part of a Larger Work or when the Original Code is distributed with Modifications. Rights under any patent applicable to the Original Code are only granted to the distribution (including by sale) of the Original Code (or portions thereof), which stand alone.

This is an important distinction, and any person intending to distribute the Original Code with Modifications or as part of a Larger Work should be wary of it. In the event that such patent or trademark rights do apply to the Original Code, the user should contact the Initial Developer to see if such rights could be obtained separate from the license before proceeding.[16] In addition, no trademark rights are granted, even for distribution of the unmodified Original Code.[17]

(c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License.

This provision is largely self-explanatory and is not likely to have much practical effect. If the Original Code has not yet been released under the License, then the Initial Developer retains all intellectual property rights over it and any subsequent user is limited to that very narrow set of rights described in Chapter 1, such as the "fair use" of copyright material. The License would simply not come into effect at all.

(d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices.

This section acts largely as a savings clause to the limitation of patent rights provided in Section 2.1(b). Section 2.1(d)(1) and (2) provide that any patent rights granted by the license are limited to their application in the Original Code. Accordingly, a licensee may not use that patent in another piece of code. Section 2.1(d)(3) appears to reiterate what is already stated by the distinction between Section 2.1(a) and (b): the MPL does not license patent rights for modified versions of the Original Code or Larger Works incorporating the Original Code.

Section 2.2 parallels Section 2.1 but governs contributions to the Covered Code made by Contributors.

2.2. Contributor Grant.

Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license

This echoes Section 2.1, applying similar terms to grants from Contributors as to the grant from the Initial Developer.

(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and

Like Section 2.1(a), Section 2.2(a) makes an important distinction between the licensing of patent and trademark rights and the licensing of "other" rights, i.e., rights under copyright. Only the latter rights are granted when the the Contributor's code is used with Modifications or as part of a Larger Work.

(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).

This provision works much like the equivalent provision governing the Original Code. The one addition is that the patent rights are granted both for the Original Code plus the Contributor's modifications, the "Contributor Version," and for the Modifications made by that Contributor standing alone.

(c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code.

This provision seems to make fairly restrictive the conditions under which the Contributor Version falls within the scope of the license, i.e., not until "Commercial Use." However, as we have already seen in the definitions used in the MPL, Commercial Use simply means any distribution to a third party. Emailing a copy of the Contributor Version to a friend make the license effective on the code, with all that entails. Again, this is something contributors (or potential contributors) need to be wary of.

This distinction becomes important in light of the following section:

(d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version;

2) separate from the Contributor Version;

As with the Original Code, patent rights are granted for use only in the Contributor Version, a point already made clear by Section 2.2(b). The last two numbered subparts of this section state what is essentially a legal truism: the Contributor does not (and, legally, cannot) grant patent rights that he does not hold.

Subpart 3 states that the Contributor does not grant patent licenses for patents infringed by modifications to the Contributor Version by a third party.

3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices;

Subpart 4 states that the Contributor does not purport to license parts of the Covered Code (either from the Original Code or modifications made by another contributor) that infringe patent rights that are not the Contributor's own work.

or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor.

These last two subparts of Section 2.2(d) may seem meaningless because they merely state a legal truism: a person cannot license that which he does not own. However, they are meaningful in that they protect the Contributor from legal liability in that they make clear that the Contributor is not purporting to license that which he lacks a right to license.

Much of this license's provisions regarding the fine points of software patents will likely be of little or no importance to most contributors to open source projects: if the contributor's intent is to meaningfully contribute to an open source project without (substantial at least) payment in return, the costs and difficulty of applying for and defending a patent may not be justified.

Section 3 of the MPL imposes the generational limitations of the license, which parallel fairly closely those of the GPL.

3. Distribution Obligations.

3.1. Application of License.

The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2.

The modifications made by any licensee to the Covered Code must be licensed by the terms applicable to Contributors, as provided for by Section 2.2. Section 3.1 continues:

The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. 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. However, You may include an additional document offering the additional rights described in Section 3.5.

The Source Code, the distribution of which on the same terms as the Executable Code is made mandatory by Section 3.2, can only be distributed under this or a future version of the MPL and the License must be distributed with it. "Additional rights," however, may be granted as provided below.

3.2. Availability of Source Code.

Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party.

Section 3.2 makes mandatory the distribution of the Source Code on terms no less favorable than that of the Executable, much like the GPL.

Like the BSD License, the MPL also requires certain attributions of credit for developing the software, albeit only for the Initial Developer and not for any subsequent Contributor.

3.3. Description of Modifications.

You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code.

This section also requires a "comment" document describing the type and date of any Modifications to the Covered Code. The practical importance of such a requirement is clear. If Contributors scrupulously adhere to this, the decisions by future users (and Contributors) as to which version of a licensed distribution they want to use should be made signficantly easier.

Section 3.4 reflects the MPL's concerns with patent laws and patent infringements.

3.4. Intellectual Property Matters

(a) Third Party Claims.

If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained.

This section says, in so many, words that to the extent a Contributor is aware of third-party patent claims to the Contributor Version, reasonable efforts—i.e., the inclusion of the "LEGAL" file—should be taken to alert future users or contributors that they must secure the appropriate rights from that third party prior to using, distributing, or modifying the Contributor Version. The legal effect of this provision, in terms of protecting the Contributor from claims of infringement, is questionable at best. A holder of a third-party patent certainly could consent to such an arrangement and reach independently negotiated licenses of his patent rights with each of the users or potential contributors that would be interested in licensing his patent. But such a patent holder could probably just as easily object and sue the Contributor for patent infringement for distributing the (admittedly) infringing code, "LEGAL" file or not. Accordingly, to the extent that any Contributor would want to take advantage of this mechanism, it is imperative that such a Contributor reach an understanding with the third-party patent holder before proceeding.

Section 3.4(b) states that the same model (with all the same defects and potential for liability) governs the Contributor Version's use of application programming interfaces. This was included to address issues raised by standards created by participants who later disclose that they have patents on basic mechanisms required to work with those standards.

(b) Contributor APIs.

If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file.

Finally, Section 3.4(c) contains representations implicitly made in Section 2.2, to the effect that the Contributor represents that he believes he has the rights to grant the license he licenses as part of the Contributor Version.

(c) Representations.

Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License.

As with many provisions of this license, its legal effects are unclear at best. To the extent the Contributor Version infringes on a third-party patent, the holder of that patent can still sue users, modifiers, or distributors of that version for infringement, representation or not. This subsections is designed to avoid that situation by ensuring that Contributors don't knowingly add patent-infringing code to the project.

Section 3.5 requires that certain notices be attached and provided with the Covered Code with the intention of giving future users of that code notice of the provisions governing it, through inclusion of a notice (attached as Exhibit A) and a copy of the MPL.

3.5. Required Notices.

You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code.

The second part of Section 3.5, like similar provisions in the GPL, explicitly permits licensees to offer and to charge fees for warranty and support agreements in connection with the Covered Code. Such permission is contingent upon making clear that the licensee is the only person undertaking any such obligation, not the Initial Developer or any Contributor.

You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.

Section 3.6 governs the terms of the distribution of the executable version of Covered Code. It has two principal effects. First, it conditions any distribution of the executable version on compliance with Sections 3.1 through 3.5 already described. Second, it permits distribution of the executable under a different license than the source code, including under a proprietary license.

3.6. Distribution of Executable Versions.

You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code.

The second part governs the terms of distribution of the Executable Code.

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. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.

The ability of a licensee or Contributor to "cash in" on the distribution of the Executable Code under a proprietary license is limited by the ability of any licensee to access and compile the source code for himself. Distribution of the executable under different terms also requires indemnifying the Initial Developer and Contributors for any liability that might be incurred—although it is hard to see what, if any, additional liability could possibly accrue to them that would not accrue from the distribution of the source code.

3.7. Larger Works.

You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code.

This provision works hand in hand with the second part of Section 3.6. The Executable Version of the Covered Code can be distributed as part of a Larger Work with code licensed under proprietary or other licenses, subject to the limitations of the MPL, most importantly that the source code of the Covered Code be made available as required by Section 3.2.

This provision is the most important distinction between the MPL and the GPL, which, as already discussed, does not permit integration with non-GPL licensed work, and the LGPL, which permits such integration only on fairly restrictive terms. This is an elegant solution to the problem in its simplicity but is subject to a couple of caveats. First, the other code that is combined with the Covered Code to make the Larger Work must itself be susceptible to such combined distribution: for example, such Larger Work cannot include any GPL-licensed code. It does, however, permit combination with proprietary code, at least to the extent the distributor has the right to distribute such code. Second, and perhaps more importantly, Section 3.7 may provide a substantial incentive for putative or potential Contributors to implement their work where possible as "other code" as opposed to Modifications, which become part of the Covered Code as Contributions upon the first Commercial Distribution of that code, as already described. By adding utility to the Covered Code without falling within its restrictions, such "other code" gives licensees the possibility to profit from the contributions (or Contributions) of others, by selling or otherwise distributing the Larger Work, without sharing the benefits of their own code with that community.

Section 3.7 is the key provision of the license and the permission it gives to Contributors and distributors of Covered Code to incorporate that code into larger works may be seen as a real advantage over the GPL. It avoids the GPL's strict limitations on combining GPL-licensed code with code under other licenses, and it also avoids some of the uncertainties and complexities associated with the LGPL.

The MPL also takes a different approach than the GPL to the situations when statutes, regulations, or judicial decisions invalidate or make impossible the enforcement of terms of the license. As already noted, the GPL and the LGPL forbid exercise of the rights under the license in that situation. The MPL does not.

4. Inability to Comply Due to Statute or Regulation.

If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.

The licensee simply must comply with the License to the extent possible and notify other licensees of limitations on the license that result from statute, regulation, or judicial decisions. It is still possible for software to be distributed under the MPL after a hypothetical judicial decision prohibits distribution of some but not all the source code of a given Contributor Version or requires payment of royalties to one or more Contributors but not to others.

5. Application of this License.

This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code.

This provision is self-explanatory. Section 6 substantially provides that Netscape has the right to revise and update the MPL (although they have not done so since issuing MPL 1.1), and have those modified terms govern all code licensed under the MPL. This, obviously, could substantially change the rights or standing of licensees and Contributors to the MPL.

6. Versions of the License.

6.1. New Versions.

Netscape Communications Corporation ("Netscape") may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number.

6.2. Effect of New Versions.

Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License.

Persons exercising rights under the license, such as users of Covered Code, will not lose their rights—they will still be able to use them as defined by previous versions of the license. However, Contributors to the Covered Code might find that the rights they are required to grant have substantially changed or expanded by the new license. Netscape transferred the right to modify the MPL to the Mozilla Foundation when it was founded in July, 2003, and Mitchell Baker reports that there will be a Version 1.2 of the MPL reflecting this at some point.

Developers who are interested in using the MPL, but not in connection with the Mozilla project, are permitted by Section 6.3 to use their own version of the MPL, free of any third party's ability to change its terms.

6.3. Derivative Works.

If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.)

Such a license must not be called the MPL and must otherwise be distinct from the MPL and the related NPL. This provision again contrasts with the GPL and the LGPL, which explicitly prohibit the creation of derivative licenses.

Section 7 provides the now-familiar disclaimer of warranties.

7. DISCLAIMER OF WARRANTY.

COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.

Section 7 includes among its disclaimers, in addition to other things, that the Covered Code is "non-infringing." This disclaims all warranties regarding the effect of Sections 2.1, 2.2, and 3.4(c) to the extent that they may be read as representations that the Initial Developer or a Contributor has the right to license a given piece of code under copyright, patent, or trademark law. While the licensee can feel some assurance that he will not be sued by the Initial Developer or Contributor for infringement, provided of course that he complies with the terms of the MPL, he is on his own with regards to third-party intellectual property claims. By using the Covered Code, he undertakes the risk that he may be sued for infringement, without any recourse to the Initial Developer or the Contributors.[18] (As noted in Chapter 1, this is true of other open source licenses as well, and it is not unique to the MPL.)

Section 8 of the MPL governs the termination of the license. Like much of the rest of MPL, it is similar to, but more forgiving than, parallel provisions of the GPL.

8. TERMINATION.

8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.

This is more permissive than Section 4 of the GPL, which voids all rights under the license upon its infringement. The MPL, by contrast, provides a 30-day "cure" period following the discovery of such a breach for the licensee to cure. In addition, like the GPL, the breach of the MPL by a distributor does not void sublicenses granted by that distributor to distributees.

The MPL provides that the license terminates as a consequence of patent litigation brought by a putative licensee with, however, some important limitations. It should be noted that these termination provisions apply only to patent claims and not claims alleging infringement of other forms of intellectual property, such as copyright and trademark.

8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that:

(a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above.

If it occurs, the termination of rights under the license is prospective only, i.e., only bars future use of the licensed code, and does not create liability for past uses of the licensed code. The termination is also subject to a 60-day "cooling off period" in which the person alleging infringement can either withdraw the claim or negotiate another resolution with the person against whom the claim is brought, whether the Initial Developer or a Contributor.

Curiously enough, the MPL provides for more punitive termination provisions if the patent infringement alleged against the Initial Developer or a Contributor does not relate to Covered Code but to some other action of such persons.

(b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant.

Such termination has no "cooling off period" and is, moreover, retroactive. The revocation is "backdated" from the first use of the code under the license by the person suing. The threat of enforcement of this provision creates a strong disincentive for the filing of such patent litigations.

8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license.

This provision has no binding effect and can really be read as exhortatory only. Such a pre-litigation termination would presumably be reached through settlement, which could be done on any terms agreed to by the parties involved, taking into consideration such "reasonable value of the licenses" granted by the MPL.

8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination.

This duplicates the effect of Section 8.1.

The following section disclaims liability to the extent permitted by law, like many of the other open source licenses already examined.

9. LIMITATION OF LIABILITY.

UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.

Except as provided by separate agreement to warranty or otherwise indemnify against loss, as permitted under Section 3.5, any software provided under the MPL is provided "as is," with the user taking responsibility for its use, except to the extent such a disclaimer is prohibited by law.

10. U.S. GOVERNMENT END USERS.

The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein.

These provisions ensure that United States government agencies may be bound by commercial software licensing agreements.

Section 11 contains a bundle of provisions typical in a commercial contract.

11. MISCELLANEOUS.

This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License.

This section provides that California law governs interpretation of the contract and provides that the venue for all disputes—in which one of the participants (i.e., either the plaintiff or the defendant) is a citizen or an entity registered to do business in the United States—shall be the federal district court in Santa Clara, California (not coincidentally a venue that was convenient for Netscape when the contract was written, before their acquisition by AOL). It also explicitly provides for shifting of attorneys fees and costs, meaning that whoever loses the lawsuit (if there is a loser) is responsible for paying all the costs associated with the lawsuit, including the other side's "reasonable" attorneys fees.

The next section of the license addresses the situation in which a legal claim is made against the Initial Developer and one or more Contributors and attempts to impose a responsibility on both to jointly address such a claim.

12. RESPONSIBILITY FOR CLAIMS.

As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.

It is not clear what legal effect this section has, if any. It is certainly possible that both the Initial Developer and a Contributor could be held jointly and severally liable (meaning that each is fully responsible for the violation of the other), say, if the Covered Code was found to infringe on a patent or copyright held by a third party, and both the Initial Developer and the Contributor had distributed the Covered Code. Courts, however, are typically reluctant to enforce such relatively vague obligations. Agreeing to "work with" Initial Developer is exactly such a vague obligation: it may have an exhortative effect, but that is likely to be it.

Section 13 describes a legal arrangement for multiple licensing of the Covered Code.

13. MULTIPLE-LICENSED CODE.

Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the NPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A.

With the MPL, as with any other license, the creator of the work (in this case, the Initial Developer) may issue the work under one or more licenses, and potential licensees are free to choose, at the beginning, the license regime under which they will use the work. Once that choice is made regarding the licensee's own contributions to the work or modifications, the licensee is bound to the terms of the license that was chosen and cannot "go back." For example, the Covered Code may be licensed by the Initial Developer both under the MPL and the GPL. A Contributor chooses to work with the Covered Code under the GPL, makes modifications, and distributes those modifications. Having done so, the Contributor then discovers that his Contribution includes a patentable process, which he would much rather license under the more protective MPL. Now, he cannot do this. Having distributed the code under the GPL, with all the terms applicable thereto, the genie cannot be put back in the bottle. The Contributor is, of course, not required to continue to maintain or develop the Covered Code. But he would be prevented from enforcing patent claims to subsequent users or modifiers of that program who adhere to the terms of the GPL. This example is not unique to the MPL, but rather arises under any situation in which a piece of code is multiple-licensed.

Section 13 is the last section of the license. A model "fill-in-the-blanks" Exhibit A follows, for those who choose to become Initial Developers of their programs under the MPL.

EXHIBIT A -Mozilla Public License.

"The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.mozilla.org/MPL/

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specificlanguage governing rights and limitations under the License.

The Original Code is _____________________________________ .

The Initial Developer of the Original Code is _______________________ .

Portions created by ______________________ are Copyright (C) ___________________________. All Rights Reserved.

Contributor(s): _____________________________________ .

Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the MPL or the [___] License."

[NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.]

The MPL provides a novel solution to the problems faced by Netscape in bringing into open source an already well-established set of code and setting up terms and conditions that would both protect its rights and encourge contributors to modify and improve that work. Its terms and focus reflect its origins: its distinction between the Initial Developer and subsequent Contributors sets it apart from, say, the more freeform development contemplated by the GPL. Its emphasis on patent rights and the limited grant of them provided by the license also reflects its corporate origin and the intent on the part of Netscape to limit, to the extent possible, the grant of rights while still remaining consistent with an open source model. By doing so, the MPL attempts to ensure that both open source volunteers and commercial developers are comfortable cooperating in this legal environment.



[14] For a full description of the considerations that went into the decision to release Navigator as an open source project and the development of the Netscape Public License and the Mozilla Public License, see Freeing the Source: The Story of Mozilla in Open Sources: Voices From the Open Source Revolution, p. 197 and following. (O'Reilly, 1999).

[15] The name "Mozilla" is derived from the name for the Navigator code used at Netscape—a combination of "Mosaic," an early web browser, and Godzilla.

[16] Mitchell Baker, the original drafter of this license, says that "It's possible [this] interpretation is correct, but this was not the intent. The intent was that the patent grant would be for the Original Code whether or not combined with other code, but not for changes to the Original Code." Baker's comment applies to both Section 2.1 and 2.2 of the MPL.

[17] Assuming that such a user is not seeking to associate such a derivative work with the name or trade dress of the Initial Developer, it is hard to see how a right arising under trademark would effect the use of a piece of functional code. Nonetheless, this is the type of situation in which consultation with an experienced attorney is not only advisable but necessary before proceeding.

[18] To the extent that the Covered Code infringes on third-party intellectual property rights, either the Initial Developer and/or the Contributors are in the same position as the licensee and would have similar liability.

Get Understanding Open Source and Free Software Licensing now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.