License Policy: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 299: Line 299:
     <td class="pathname">modules/libimg/png</td>
     <td class="pathname">modules/libimg/png</td>
     <td>PNG License</td>
     <td>PNG License</td>
  </tr>
  <tr>
    <td>[http://www.sqlite.org/ sqlite]</td>
    <td>CVS, Mercurial</td>
    <td class="pathname">db/sqlite3</td>
    <td>[http://www.sqlite.org/copyright.html Public Domain]</td>
   </tr>
   </tr>
   <tr>
   <tr>
Line 307: Line 313:
   </tr>
   </tr>
</table>
</table>


<h2>Copying Code</h2>
<h2>Copying Code</h2>

Revision as of 11:04, 14 April 2008


N.B.: This is a draft, and also not the master copy.

Mozilla Foundation License Policy

Version 2.0 draft 3

Introduction

The Mozilla Foundation has created this formal policy governing licenses to be used for source files stored in our code repositories. Developers with check-in privileges to the mozilla.org code repositories must comply with this policy unless specifically advised otherwise in writing by The Mozilla Foundation.

The following is a brief summary of the Mozilla Foundation license policy:

  • Newly-added code must be licensed under the terms pertaining to that part of the repository to which it is added.
  • You must consult the licensing team before adding code not under one of the mozilla.org-approved licenses.

For the complete license policy see the following sections.

Definitions

  • Mozilla Code is code in our repositories which originated with the Mozilla Project.
  • Third Party Code is code in our repositories which did not originate with the Mozilla Project. It is usually, but not always, under its own specific license.
  • Product Code means all files any part of which end up in nightly binaries of the Mozilla family of Internet clients - Firefox, Thunderbird, SeaMonkey and Camino. Note that this definition excludes the code of tools used merely to build these products. Code may be both Product Code and Third Party Code.
  • Support Code is code in our repositories which originated with the Mozilla Project but is not Product Code.

Please see the diagram for the relationship between the four definitions.

Code-diagram.png

Acceptable Licenses

  1. The following license (the "Mozilla tri-license") is acceptable in all circumstances except for those covered by point 4, below:

    For new source files please use the boilerplate license notice appropriate for the type of file you are creating. Please don't copy boilerplate from existing files.

  2. The following license is acceptable for trivial pieces of Support Code, such as testcases:

    • Creative Commons Public Domain Dedication, using the following boilerplate:
      Any copyright is dedicated to the Public Domain.
      http://creativecommons.org/licenses/publicdomain/
  3. The following licenses are acceptable only for Support Code in directories whose files are already under the license in question, as outlined later in this policy:

  4. For Third Party Code, you should use the license pertaining to that code when modifying it or adding new files to it, and the tri-license when adding Mozilla-specific files such as build system files. See below for a list of directories this applies to.

  5. All Product Code must be under either the tri-license or, for Third Party Product Code, a license compatible with all three sets of terms in the tri-license. The purpose of this rule is to make sure that users of our code can take and use the same code under any one of the three licenses; no group is disadvantaged.

  6. If importing new Third Party Code, always inform licensing@mozilla.org. They can then check whether the license is compatible - even simple-looking licenses can have twists in them - and make sure we are meeting the requirements.

Repositories

The Mozilla project runs a number of source code repositories, plus repositories for documentation and websites which are out of scope for this policy. Here is a list of repositories plus a summary of the licensing situation.

Repository Domain Name Summary
CVS cvs.mozilla.org Mozilla Code is mostly MPL/GPL/LGPL, with some exceptions - see below.
Subversion svn.mozilla.org All non-website Mozilla Code is MPL/GPL/LGPL.
Mercurial hg.mozilla.org All Mozilla Code except other-licenses/branding is MPL/GPL/LGPL.

Support Code (Not Tri-Licensed)

The following directories contain Support Code which is not tri-licensed. (See Acceptable Licenses item 3, above.)

Webtools

Software Repository Directory License
APIDocCVSwebtools/apidocNPL/GPL
BonsaiCVSwebtools/bonsaiNPL
Browser BusterCVSwebtools/browser-busterMPL
BuildCVSwebtools/buildNPL
BugzillaCVSwebtools/bugzillaMPL
"Bugzilla 3" (defunct)CVSwebtools/bugzilla3MPL/GPL
DespotCVSwebtools/despotMPL
DoctorCVSwebtools/doctorMPL
GraphCVSwebtools/graphMPL
HendrixCVSwebtools/hendrixMPL
Leak-O-MaticCVSwebtools/leak-o-maticMPL
LitmusCVSwebtools/litmusMPL
LXRCVSwebtools/lxrOur fork is unlabelled, but the original version is GPL
MiscStatsCVSwebtools/miscstatsMPL
MozBotCVSwebtools/mozbotMPL
NewsBotCVSwebtools/newsbotMPL
Party ToolCVSwebtools/partytoolMPL/GPL/LGPL, MIT and The Open Group Test Suite License (for CakePHP)
PLIFCVSwebtools/plifMPL/GPL
RegistryCVSwebtools/registryNPL
TestopiaCVSwebtools/testopiaMPL
Tinderbox 1CVSwebtools/tinderboxNPL
Tinderbox 2CVSwebtools/tinderbox2MPL
Tinderbox 3CVSwebtools/tinderbox3MPL
Web SnifferCVSwebtools/web-snifferMPL
webstatsCVSwebtools/webstatsMPL
whack-licenseCVSwebtools/whack-licenseMPL/GPL

Not Webtools

Software Repository Directory License
Branding CVS, Mercurial other-licenses/branding See the trademark licensing pages
Client Customization Kit CVS cck Some MPL 1.1 or later, some MPL/GPL/LGPL
Rhino (JavaScript in Java) CVS js/rhino MPL 1.1 or later/GPL 2.0 or later

Third Party Code

The following is a complete list of directories containing Third Party Code. (See Acceptable Licenses item 4, above.) Some of this code is also Product Code; if so, it will be under a license compatible with the tri-license.

Software Repository Directory License
7-zip CVS, Mercurial other-licenses/7zstub LGPL
ATK CVS, Mercurial other-licenses/atk-1.0 LGPL
bsdiff CVS, Mercurial other-licenses/bsdiff BSD Protection License
cairo CVS, Mercurial gfx/cairo/cairo LGPL 2.1/MPL 1.0 or later
IAccessible2 CVS, Mercurial other-licenses/ia2 LGPL
jemalloc CVS, Mercurial memory/jemalloc BSD-like License
libart CVS other-licenses/libart_lgpl LGPL
libical CVS calendar/libical LGPL 2.1/MPL 1.0 or later
libjpeg CVS, Mercurial jpeg JPEG License
libpixman CVS, Mercurial gfx/cairo/libpixman BSD-like License
libpng CVS, Mercurial modules/libimg/png PNG License
sqlite CVS, Mercurial db/sqlite3 Public Domain
zlib CVS, Mercurial modules/zlib ZLib License

Copying Code

You may copy code between files with identical licensing terms, or between files where the target file has a subset of the licenses of the source file (e.g. MPL/LGPL/GPL -> MPL). For any other transfer, consult the licensing team first.


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 which does not conform to the pattern above, please report it to licensing@mozilla.org.