MOZILLA PUBLIC LICENSE, Annotated
Note that these explanations are not the license. The explanations are not a legal document, or legal advice. If you need to know exactly what the license requires, you need to read and understand the license itself; if you need legal advice, you need to talk to a lawyer. The annotations are merely a good faith effort to explain the license in simpler language.
Back to the MPL page.
1. Definitions.
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.
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.
1.4. ``Electronic Distribution Mechanism'' means a mechanism generally accepted in the software development community for the electronic transfer of data.
1.5. ``Executable'' means Covered Code in any form other than Source Code.
1.6. ``Initial Developer'' means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A.
1.7. ``Larger Work'' means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.
1.8. ``License'' means this document.
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.
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.
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 a list of 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.
1.12. ``You'' 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. 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 fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity.
(a) to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, or as part of a Larger Work; and
(b) under patents now or hereafter owned or controlled by Initial Developer, to make, have made, use and sell (``Utilize'') the Original Code (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to Utilize the Original Code (or portions thereof) and not to any greater extent that may be necessary to Utilize further Modifications or combinations.
2.2. Contributor Grant.
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license, subject to third party intellectual property
claims:
(a) 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 or as part of a Larger Work; and
(b) under patents now or hereafter owned or controlled by Contributor, to Utilize the Contributor Version (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to Utilize the Contributor Version (or portions thereof), and not to any greater extent that may be necessary to Utilize further Modifications or combinations.
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.
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.
3.4. Intellectual Property Matters
(a) Third Party Claims.
If You have knowledge that a party claims an intellectual
property right in particular functionality or code (or its
utilization under this License), you 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 you obtain such knowledge
after You make Your Modification available as described in Section
3.2, You shall promptly modify the LEGAL file in all copies
You make 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.
(b) Contributor APIs.
If Your Modification is an application programming interface and
You own or control patents which are reasonably necessary to
implement that API, you must also include this information in the
LEGAL file.
3.5. Required Notices.
You must duplicate the notice in Exhibit A in each file of the
Source Code, and this License in any documentation for the Source Code,
where You describe recipients' rights relating to Covered Code. If You
created one or more Modification(s), You may add your name as a
Contributor to the notice described in Exhibit A. 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 file) where a user would be likely to look for such a
notice. 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.
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. You
may distribute the Executable version of Covered Code 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.
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.
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 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.
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.
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'', ``NPL''
or any confusingly similar phrase do not appear anywhere in your 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.)
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 specific language 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): ______________________________________.''
Annotations to the Netscape Public License
(These annotations are meant for descriptive purposes only and do not in any way constitute a legally binding portion of the License.)
``Netscape / Mozilla
Public License''
We wanted easy names that people could remember. We also wanted names
that is distinguishable from other licenses, so we shied away from more
generic names like "Source Code License".
``Covered Code''
This means any software or code that is covered by this License.
``Source Code'' vs
``Executable''
These licenses make a distinction between covered Source Code, and
the binary executable products that can be made from them. It defines
all possible forms of the Mozilla code as either one or the other.
They have different restrictions and requirements placed on their use and
distribution.
``Initial Developer''
In the NPL, the Initial Developer is Netscape Communications Corporation.
In the MozPL, it is whomever contributes code and places it under the MozPL.
``Larger Work''
This is the definition that allows you, provided that you have taken
the proper care in your coding, to combine NPL or MozPL covered code with
other code -- such as code governed by a proprietary license -- to make
a product.
``Modifications''
This is a very important definition, as it specifies precisely what
code you write must be made public and what you can keep.
This definition also refers only the modifications themselves, not the complete file as modified. Later in the License, we require that the Source Code to Modifications be made available, and this way a developer need only post his changes to the Source, not the entire source in changed form. This should cut down on the need for quite a bit of FTP space.
``Original Code''
In this case, it is the Mozilla Communicator code released by Netscape
on March 31, 1998. In the case of the MozPL used in the future, this
definition will apply to code released by other developers. This
definition makes clear that a Modification is not Original code.
``You''
This definition of You allows either an individual or an organization
to use code covered by these licenses.
``Source Code License''
This is the part of the License in which it is spelled out precisely
what permissions the contributors to the Source Code are granting.
``Initial Developer Grant'' and ``Contributor
Grant''
This section is derived from the basic principles below.
1. It is not OK for someone to create a Modification for which he or she has a patent, make the Modification available free of charge as required under the License, and then come back and try to charge everyone for the patent rights.
2. On the other hand, the patent rights of contributors should be protected in a manner consistent with the goal of the License.
``Availability of
Source Code''
This provision is intended to ensure availability of code, while minimizing
the burden on each Contributor. It is based on the principle of ``code follows
the executable'' that is found in the GPL. It does not require that
you return Modifications to mozilla.org or any other named organization.
However, you may do so if you choose, and we hope that you wish to participate
in the development community that mozilla.org is chartered to foster.
``Third Party Claims''
We considered whether we should prohibit the use of any functionality
where a contested intellectual property claim exists. But because these
claims are often in contention, or unclear, or limited in their geographical
scope so that they do not apply in some areas, we decided that this would
limit the range of products that could be created from the Mozilla Communicator
code too severely. Instead, we decided that contested intellectual property
claims should be clearly disclosed so that each developer understands to
the greatest extent possible the intellectual property issues surrounding
the Source Code. This will help them to choose, on a case-by-case basis,
whether or not they are interested enough in using the functionality to
deal with the rights issues that surround that functionality.
``Contributor APIs''
This section is designed to protect developers using code covered by
the NPL or MozPL against stealthy patent attacks.
``Required Notices''
This section is intended to allow Contributors to receive proper recognition
for their contributions and to provide additional value-added services
as long as they take the appropriate precautions to protect other Contributors
from liability associated with such services.
``Distribution of
Executable Versions''
The goal of the NPL and the MozPL is to encourage as much innovation
as possible. We anticipate that people will take the code licensed under
the NPL and MozPL and combine it with code developed or licensed under
other terms. We also anticipate that the combined code will be licensed
under a variety of terms, including different payment terms, support terms
and use restrictions. Netscape does not wish to dictate the terms under
which any such executables will be available. The NPL and MozPL are designed
to make sure that the Source Code Modifications are freely available. After
that, the creator of a larger work is free to license the executable of
the work as he or she sees fit.
``Inability to Comply
Due to Statute or Regulation''
This section was included so that the license could allow for the inclusion
in the Source Code of regulated software such as cryptographic code which
may have legal restrictions placed on its broad and public distribution.
``Versions of the License''
We realize that we are not perfect and may not have thought of all
possible contentious situations that may arise because of this License.
This clause give us the opportunity to address problems that may arise
in the future.
``Effect of New Versions''
This clause guarantees that Netscape will never be able to take away
rights that you have under the version of the license under which your
code or modifications were created.
``Derivative Works''
We think that the NPL and MozPL are pretty good licenses, and we've
done our best to make them serviceable for both Modifications and new code.
However, if someone wants to make a new license based on either the NPL
or MozPL, they need to distinguish their license from ours to avoid unnecessary
confusion.
Required Legalese
These last sections of the License are the inevitable legal statements.
Where they are in CAPS, we are not shouting, but are required to write
these sections in capital letters by law.
``Responsibility for Claims''
This section is designed to spread the burden of intellectual property
claims made on Mozilla based code over the group of developers responsible
for distributing copies of covered code that contain the offense that leads
to the claim.
We believe wholeheartedly in the benefits of open source development, but not everyone does. Some people or groups may try to take advantage of the work of open source development through claims of patent infringement. This is unfortunate, but it is also reality. We suggest that you be aware of the intellectual property implications of what you are working on to protect yourself and others from falling afoul of someone else's patent.
``Amendments''
The NPL and the MozPL are virtually identical, except that the NPL
contains a set of rights that Netscape is reserving for itself in the Amendments
section.
``Mozilla''
We used ``Mozilla'' rather than Netscape for several reasons. First,
``Netscape Communicator'' is a trademarked name that we want to reserve for
our branded products. Mozilla helps to differentiate between them and what
many people will soon be developing from the Source Code.
The mozilla.org version is derived from Netscape Communicator Standard Edition, but there are several critical differences of which the following are examples. First, we've removed the cryptographic capabilities of the Netscape product due to US export control issues. We've also removed code licensed from third parties which Netscape doesn't have the right to license under the NPL. Finally, we may remove some functionality for patented inventions which Netscape may not have the right to distribute in Source Code form at this time.
``Communicator client code''
We used ``Communicator client code'' because the code being released
is the mozilla.org version of the Netscape Communicator Standard Edition
product.
``Netscape and logo''
We've been moving very quickly to ready our code for release on March
31, and we may have missed something. All this section says is that if
you come across something that we've missed, that doesn't give you the
rights to use our trademarks. It doesn't require you to do our work for
us. This section is designed to protect us from our screw ups, not to screw
you up.
``Other Products''
This section is here because of the state of Netscape's code today.
Netscape has a number of server products that contain NPL code. We intend
to make sure those products can comply with the terms of NPL license as
soon as practical. This is why we have included the two year time
limit.
``Alternative Licensing''
This is included because Netscape already has certain source code licenses
in place whose terms differ from those of this NPL. These licenses may
not require the license back of code, although in many cases such licensees
do return code voluntarily.
``Exhibit A''
This is the text that you must include in all files that are covered
by the NPL or MozPL.