This document attempts to answer some frequently asked questions about the Netscape Public License. These answers are for informative purposes only, and do not in any way constitute a legally binding portion of the License.
For more information, including the license itself, see the documents at http://www.mozilla.org/MPL/.
Are there major changes from the last draft version of the license?
No. There were no major substantive changes between the last draft version of the licenses and these final versions. There were several edits made to clarify meanings, improve readability, correct typos, and reorder the definitions (they are now in alphabetical order).
If the source is free, why do you have a license?
First, the source Netscape will be releasing presently may be freely available, but it is still copyright Netscape Communications Corporation. You may only alter copyrighted works with the permission of the copyright holder, and the NPL spells out the conditions under which you may use the source code owned by Netscape.
Second, the idea of both the NPL and the MozPL (Mozilla Public License) is to set the ground rules for the use of both Netscape's code and the code of other developers based on Netscape's code. These rules are designed to maximize the amount of open development that can happen on this code base, striking a balance between the interests of the various parties involved (not limited to developers, but including users as well). From one point of view, the code base can be thought of as a resource such as a lake or the air that we breathe, and we need basic rules to ensure that this resource is preserved and enhanced, for example, by encouraging and even to a certain extent requiring that developers "give back" to the common code base. From another point of view, developers of the code (including Netscape as the original developer of the code) have interests in specifying how their work may be used by others, and we need basic rules to ensure that those various interests are accounted for in some way.
Why do you have two versions of the license?
When we first posted a draft of the NPL for public comment, the aspect of the NPL that received the most comment and criticism was the fact that it granted Netscape special rights; to use code covered by the NPL in other Netscape products without those products falling under the NPL, to issue revised versions of the NPL and MozPL, and most controversially, to re-license code covered by the NPL to third parties under terms different from the NPL. Many commenters suggested that this fact alone would mean that the NPL would not be acceptable to the free source development community.
Netscape knew that these provisions were going to draw a lot of comment, but there were very specific reasons why they have to be there. We share some code between clients and servers, and we wanted to make sure that we could make changes to that code and take advantage of those changes in our server products without having to release those products under the NPL as well. We knew that there might be some unforeseen problems with the license, and we wanted to give ourselves the opportunity to make them right in the future. And finally, we have a number of outstanding contracts to supply source code with which we need to remain in compliance.
In order to balance our goals of engaging the free source development community and continuing to meet our business objectives, we decided to issue two licenses; the Netscape Public License (NPL), and the Mozilla Public License (MozPL). These two licenses will be identical except that the NPL will have amendments granting Netscape additional rights. All of the code that we will be issuing on March 31 of this year will be released under the NPL, and all modifications to that code must be released under the NPL. The following is a good guide to what constitutes a modification.
If you change anything within one of the files contained in the Source Code, that is a Modification, and it is covered by the NPL.
If you take code out of one of the files contained in the Source Code and place it in a new file, whether you add new code or not, that is a Modification, and it is covered by the NPL.
If you rename a file or combine two or more files contained in the Source Code, that is a Modification, and it is covered by the NPL.
However, if you add a new file that does not contain any of the Original Code or subsequent Modified code, it is not a Modification, and is not covered by the NPL. This remains true even if the new file is called or referenced by changes you made in an NPL file; the changes made to the NPL file would need to be covered by the NPL, but the code in the new file could be under any other compatible license.
Having made this last point, though, Netscape believes that it is in the interest of all who develop on the Communicator code base to contribute their changes back to the development community. In this way, they will reap the benefits of distributed development, and the community will be enriched by the addition of their code. It is for this code that Netscape created the MozPL. We believe that this license accomplishes many things; it strikes a balance between allowing a broad range of freedom in source code creation and requiring re-disclosure of source, it is free from any special position towards Netscape that is in the NPL, and it allows code issued under it to be used freely with code covered by the NPL (see also the question "Why should I choose MozPL for my new code?").
The BSD license is another free software license that was developed by the University of California at Berkeley. It is very non-restrictive in its terms, basically allowing anyone to do anything with code covered by the license, but requiring a reference to the copyright holder in accompanying documentation -- essentially requiring only credit where credit is due. This makes the license acceptable to commercial developers, but opens others to the possibility that their work may be incorporated into products that may be proprietary to someone else.
The GNU General Public License (or GPL) was developed by the Free Software Foundation. Unlike the BSD License, it maintains free source code by a fairly complex set of rules. It requires that any "derivative works" based on software covered by the GPL also be covered by the GPL, and that source code to these works be made publicly available. This means than any development that anyone does that is derived from GPLed code must also be made free. This ensures that the resource of free source code will not be diminished by someone taking the code, modifying it slightly, and keeping it to themselves, but it also tends to discourage the use of GPLed code in commercial development by traditional software companies and other for-profit organizations.
The GNU Library General Public License was also developed by the Free Software Foundation. It is similar to the GPL, but it introduces the idea that a library of functions covered by the LGPL may be used by a program without the program being a derivative work of the library. This allows the program to be issued under different terms than the LGPL. This makes the LGPL less restrictive (the developer is compelled to release the source code to less of his work) than the GPL. (Only changes to the library itself would have to be made public.)
The Artistic License is similar to, but in some ways simpler than, the GPL. It requires that if a developer modifies source code covered by the Artistic License, the developer must make those modifications available in source code form, or use those modifications only within the developer's own organization without redistributing them.
The NPL and MozPL both attempt to strike a middle ground between promoting free source development by commercial enterprises and protecting free source developers. Like the GPL, they require that any and all changes to code covered by the license must be made publicly available. However, they also allow you to combine covered code with other code to create a larger work without requiring that other code to be covered by the license. This is similar to, but even less restrictive, than the LGPL. The NPL also grants certain Netscape specific rights that allow the company to make its client source code free while still attending to business needs such as the development of other products (e.g. servers) and the fulfillment of previously existing contracts.
Why didn't you just use the GPL or a slightly amended version of it?
There are a number of reasons for this. The first three points speak to the necessity for the NPL, and the fourth addresses the question of why we didn't just release the code under the NPL and the GPL.
Netscape currently uses third party components in the branded versions of Communicator that it produces. The GPL would require that these components be released in a free source code form. We do not have the rights to do this.
Netscape uses code in branded versions of Communicator that is regulated by law (e.g. cryptographic code). It may not make the source code for cryptography available in an unrestricted way. The GPL states, "If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all." This would prevent Netscape from distributing its code worldwide.
Netscape uses portions of the Communicator code in other products (e.g. servers) to which it is not releasing the source code. Using the GPL would require that the code to these products be released as well.
Netscape is interested in encouraging the use and development of the Communicator source code by other commercial developers. Netscape was concerned that these other companies would hesitate to engage in this development if the code were regulated by a license as strict as the GPL, requiring that all related software also be released as free source. At the very least, every other commercial developer would have to look very closely at the legal ramifications of embarking on free source development. This initial hurdle alone might be enough to keep them from starting at all, so it was decided to remove the hurdle by using a somewhat less restrictive license.
Why didn't you just use the LGPL or a slightly amended version of it?
Although the LGPL offers some of the advantages of being more flexible than the GPL for commercial development, it has many of the same pitfalls of the the GPL for use by Netscape. The NPL adapts some of the basic LGPL concepts, though we felt that altered mechanisms would be most appropriate in our case.
Why didn't you just use the BSD license or a slightly amended version of it?
The BSD license, in Netscape's opinion, does not go far enough to ensure that developers will return their modifications to the Communicator source code to the community. The company feels that this is important to ensure long term viability of the source development effort.
If there are two licenses, why would I want to use NPL?
If you are making a "Modification", you are required to. If you are contributing new code and not a modification to existing code, then the choice between the NPL and another license, such as the MozPL, is up to you. If you are comfortable with the rights that the NPL grants to Netscape, then by all means feel free to use it.
What license should I use to contribute new code?
For new code and not a modifications to existing code, you could choose to use any of a number of different licenses (up to and including keeping your new work completely private and non-free.) Licenses which are legally compatible with NPL include MozPL, BSD, LGPL, and in fact most others. (But not GPL, since GPL is by design incompatible with all licenses that are not themselves GPL.).
Why should I choose the MozPL for my new code?
It's your decision, but as we said above, we believe that the MozPL is a good choice because it strikes a balance between allowing a broad range of freedom in source code creation and requiring re-disclosure of source, and it allows code issued under it to be used freely with code covered by the NPL. We also have tried very hard to make it a clear, readable, and easy to understand document.
Why don't you just release the source under both the NPL and the GPL right from the start?
The NPL and GPL are incompatible, as we explain in the question about using code covered by the GPL with code covered by the NPL. If we were to take this tack, we would cause an immediate and irreparable split in development on the Mozilla code base. This split would greatly minimize the benefit that Netscape would see from free source development, and because of this, the company is not able to consider releasing its code under the GPL.
Does a developer have to sign something or become a member of mozilla.org to get the code?
No. The code is governed by the NPL, or perhaps subsequently by the MozPL. You don't have to actually sign either license, but you are legally bound by them if you make use of the source code in any way.
How can GPL code be incorporated into the Communicator code base?
Under our reading of the GPL, it will not be possible to incorporate code covered by the GPL into the Communicator source code base. It is also not possible to use GPLed code and NPLed code together in a Larger Work. This is different for LGPL code. It is possible to create a larger work using LGPLed code that can then be used in conjunction with NPLed code through an API.
Will the NPL apply to Netscape as well?
When Netscape uses code created under the NPL, it must comply with the NPL. However, under the NPL, Netscape, as the Initial Developer, has unique rights that allow it to use code in ways that others cannot. This was necessary because (1) the code is part of an existing product line, and (2) Netscape has a number of pre-existing contracts to supply source code with which it must be able to comply. These special rights to source code are:
The right to use NPL code in other Netscape products without having those products fall under the NPL.
The right to license the source -- including additions made by non-Netscape developers -- to Netscape-branded products to third parties. This re-licensing may be under different terms than those in the NPL. For example, Netscape may release the third party from the obligation to make changes to the source code available in source form. This allows Netscape to continue to provide Communicator source code to those parties with whom it has contractual obligations to do so.
Having said this, though, Netscape believes that it is in the interest of all who develop on the Communicator code base to contribute their changes back to the development community. In this way, they will reap the benefits of distributed development. When Netscape re-licenses the Communicator source code, it will do so for a particular snapshot of that code on a particular date. If the developer licensing this code from Netscape does not work with the development community to have its changes incorporated back into the code base, the code that it licensed will quickly diverge from that base. Over time, it will become a monumental burden for the re-licensor to keep his code up to date with the freely available code.
In cases where a developer does not wish to grant Netscape any special rights, but still wants to contribute to the Mozilla source code base, they may do this under the MozPL or another compatible license, such as the BSD or LGPL.
What if I don't want Netscape to have special rights to the code I write? Do I have to grant them?
All modifications to the original code released by Netscape are governed by the NPL. If you are writing something that you don't want to be governed by the NPL, then you must make sure that it is not a ``modification'' under the definitions of the NPL. In this case, you may release your code under the MozPL. It is precisely for this purpose that we have provided the alternative license.
We have moved 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.
Why do you have a two year time limit in amendment V.2 of the NPL?
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.
Why do you allow yourselves to license code covered by the NPL under different terms?
First of all, let us reiterate that any alternate licensing only applies to code covered by the NPL, not the MozPL. Netscape has entered into license agreements for its source code in the past. Several of these agreements continue to be in effect, and we are contractually bound to service them. To do this, we must make our original source code, and modifications to it, available under terms different from the NPL (for a detailed discussion of what constitutes a modification, please see the "Why do you have two versions of the license?" question above).
Why are you talking about making changes to the license in section 6?
We believe that situations may arise in the future that require that either the NPL or the MozPL be altered. Therefore Netscape has retained the right for itself to release new versions of either license. For example, although we have tried to keep descriptions of technology broad and open in the licenses, technology may change in the future in a way that necessitates a change to the license. However, we are sensitive to others' concern that the license governing code that they have contributed might change after they have released their code. Under either the NPL or the MozPL, anyone has the right to re-release code covered by a version of either license under a later version of that license, although a version of that code may remain covered by the previous version of the license (in this case there would be two versions of the code, each under a different version of the license).
As an example, take the situation where a developer releases code in May under the MozPL version 1.0. In August, Netscape issues version 2.0 of the MozPL. That developer's code remains covered by MozPL 1.0. In September, another developer decides to make the first developer's code available under MozPL 2.0 (perhaps because the second developer believes that MozPL 2.0 solved an important problem from version 1.0). The original developer may decide to continue to make the code released under MozPL 1.0 available (perhaps because that developer found MozPL 1.0 better suited to his or her needs than version 2.0). Subsequent developers will now be able to choose whether to make modifications to the code in question under MozPL 1.0 or 2.0.
How does Netscape benefit from giving away its source code under such a free license?
Netscape (and the world) benefits from giving away its source code in a number of different ways. First and foremost is from the expected explosion of creative input to the Communicator source code base. Netscape is confident that this will allow Communicator to retain its position as the preeminent communications software. Second, freeing the source code allows it to go places and into products that Netscape may never have had the resources or time to take it on its own, extending internet accessibility to hardware platforms and software products far and wide.
First, Netscape performed a careful analysis of all of the other free software licenses to determine what problems they solved and created. Then the company spent a good deal of time listening to experts and advocates in the free software community as well as to the public conversations about the freeing of the Communicator source. All of this input went into a draft license that went through extensive internal review and was posted to mozilla.org for review and comment by the general public. Netscape considered those comments and criticisms it received (there were nearly a thousand posts to a newsgroup dedicated to discussions of the license) and created a second draft, which it released for a much shorter comment period. The NPL and the MozPL that you now see posted are the results of the second draft posting.