mozilla.org License Policy
Introduction
mozilla.org has created this formal policy governing licenses to be used for source files stored in our CVS repository; this version of the policy covers only licenses used for Mozilla code. (A future version of this policy will also address licenses used for code for other mozilla.org-hosted projects.) Developers with check-in privileges to the mozilla.org CVS repository must comply with this policy unless specifically advised otherwise in writing by mozilla.org staff.
The following is a brief summary of the mozilla.org license policy:
- If you're adding a new Mozilla source file then you must license it under an MPL/GPL/LGPL "triple license," unless the new file contains code taken from a file under another license. (In the latter case you may need to talk to mozilla.org staff before adding the new file.)
- If you're making a modification to an existing Mozilla source file then the file must remain under its current license, unless the modification contains code taken from a file under another license. (In the latter case you may need to talk to mozilla.org staff before checking in the change.)
- If your code is added to a file not under the tri-license, you must be willing for your code to be relicensed under that license once permission has been obtained from the other copyright holders for that file.
For the complete license policy see the following sections.
Mozilla Code vs. Other Code
"Mozilla code" means all files located in the directory
hierarchy rooted at the top-level directory mozilla
in the mozilla.org CVS repository, except for
files located under the
following subdirectories of the mozilla
directory:
apache calendar cck directory/java-sdk directory/perldap ef grendel js/rhino mstone sun-java webtools xpfc
(Note: because our CVS repository is not as organised as it might
be, the above list may not necessarily be complete. Please consult
staff@mozilla.org if in any
doubt as to the status of particular files.) Files in the above
directory hierarchies are not considered to
be Mozilla code, nor are files in the mozilla.org CVS repository
located under top-level directories
other than mozilla
.
This version of the mozilla.org License Policy addresses only files considered to be Mozilla code; a future version of this policy will address other code in the mozilla.org CVS repository.
New Original Source Files
The following policies apply to new original Mozilla source files added to the mozilla.org CVS repository; "new original source files" are source files which have not previously existed in the mozilla.org CVS repository, and which do not contain any code from other previously existing source files (whether hosted at mozilla.org or not):
All new original Mozilla source files must be licensed under an MPL/GPL/LGPL triple license, using the appropriate license boilerplate notices approved by mozilla.org. The only exceptions to this policy are for the following Mozilla (sub)directories:
dbm expat gc/boehm jpeg modules/libimg/mng modules/libimg/png modules/zlib xpcom/typelib/xpidl
New original source files added to one of these directories
(or subdirectories thereof) should be licensed under the
license already used for existing source files in that
directory. (For more information see the COPYING
,
LICENSE
, and/or README
files for
each of the above directories.)
New Non-Original Source Files
The following policies apply to new non-original Mozilla source files added to the mozilla.org CVS repository; "new non-original source files" are source files which have not previously existed in the mozilla.org CVS repository, and which do contain code taken from other previously existing source files (whether hosted at mozilla.org or not):
New non-original Mozilla source files must be licensed under the license of the file from which the pre-existing code was taken, except if that file was NPL or NPL/<something>, in which case the new code should be placed under the MPL/GPL/LGPL triple license. (mozilla.org has the right to automatically relicense NPLed code.) If you have taken code from two or more files which have different licenses, then you should contact mozilla.org staff prior to checking in the new file, in order to determine the proper license to be used for the file.
Original Modifications to Existing Source Files
The following policies apply to original modifications to be checked in to Mozilla source files already existing in the mozilla.org CVS respository; "original modifications" are changes which do not incorporate code taken from other files existing in the mozilla.org source repository or elsewhere:
When making such modifications, do not add new license notices to the existing source files or delete or modify existing license notices in the files, without the express written consent of mozilla.org staff.
In addition, do not delete or modify copyright notices in existing source files, or delete or modify lists of contributors to such files, without the express written consent of mozilla.org staff, except as described below.
When making original modifications to existing source files you may add the names of new contributors to those files (including yourself, if you are contributing code and not simply checking code in for someone else.) You may also add additional copyright notices to existing files if and when appropriate. (For example, if you check in code contributed by J. Random Hacker, but the code in question is copyright by his employer, then you may add J. Random Hacker as a contributor and also add a new copyright notice referencing his employer.) If you do this, please duplicate the three lines of the header starting with "Portions created by:" and fill them in appropriately. Place the new text underneath the existing instance(s) of those three lines, separated from them by an empty line.
Non-Original Modifications to Existing Source Files
The following policies apply to non-original modifications to be checked in to Mozilla source files already existing in the mozilla.org CVS repository; "non-original modifications" are changes which do incorporate code taken from other files existing in the mozilla.org source repository or elsewhere:
When making such a modification to an existing Mozilla source file, if the existing file is licensed under a license different to the file from which you took the non-original modification, you should contact mozilla.org staff prior to checking in the changed file, in order to determine the proper license to be used for the file.
When making the modification you must not change the license on the existing Mozilla source file, except that you may and should add any new contributors to the existing list of contributors, and add any new copyright notices needed, as previously discussed in the section "Original Modifications to Existing Source Files."
Acceptable Licenses
The following licenses have been determined to be acceptable to mozilla.org for use with Mozilla code. Note that not all licenses are acceptable in every possible context.
The following license is acceptable for both new Mozilla source files and modifications to existing source files, for any directory in the Mozilla source tree (except those specified below):
- MPL/GPL/LGPL triple license, allowing use of the file under the terms of any one of the Mozilla Public License, version 1.1 (MPL), the GNU General Public License, version 2 or later (GPL), or the GNU Lesser General Public License, version 2.1 or later (LGPL). This is the standard license for all new Mozilla code. For new source files please use the boilerplate license notice appropriate for the type of file you are creating.
The following licenses are acceptable only for modifications to existing files already under the license in question:
- The MPL.
- MPL/GPL dual license. Allows use of the file under the terms of either the MPL or the GPL.
If you contribute Mozilla code to files under one of the above licenses, you must be willing for your code to be relicensed under the tri-license after permission has been obtained from the other copyright holders for that file.
The following directories (and subdirectories thereof) contain code under licenses other than those above; these licenses are acceptable to mozilla.org only for new files in those directories and modifications to existing files in those directories:
dbm expat gc/boehm jpeg modules/libimg/mng modules/libimg/png modules/zlib xpcom/typelib/xpidl
For more information on the license terms for code in these
directories, see the files COPYING
,
LICENSE
, and/or README
in each
directory.
This concludes the list of licenses acceptable to mozilla.org for use with Mozilla code. If you happen to find a file in the Mozilla source tree under a license different from those above, please report it to mozilla.org staff.