The Mozilla Public Licence version 2 - An Overview

by Rowan Wilson on 6 March 2012 , last updated

Introduction

On 3rd January 2012, version 2 of the Mozilla Public License (MPL) was approved by the Open Source Initiative. It is also considered to be a Free Software licence by the Free Software Foundation. Like its predecessor, the Mozilla Public License v 1.1, it seeks to impose a moderate level of ‘copyleft’ restriction on adaptations of code that it covers. The licence can be read at http://www.opensource.org/licenses/MPL-2.0.

History of the MPL v2

Twelve years after the creation of the original Mozilla Public License, the Mozilla Foundation decided that certain issues could be usefully addressed with that licence. In early 2010 they put in place a consultation process that - much in the same manner that they developed and released software - would invite input from interested members of the public and other organisations.

Among the issues that the Mozilla Foundation wanted to address were compatibility of MPL code with code under other popular Free and Open Source Software (FOSS) licences and the clarity and US-specificity of the MPL v1.1’s language. Over the course of almost two years, three alpha releases, two beta releases and two release candidates, a large community of interested parties worked to improve and modernise the licence.

Main Features of the MPL v2

The MPL v2’s copyleft provision is ‘weak’ - meaning that it covers a subset of works that are ‘based upon’ its covered code. Like its predecessor, the rule which governs whether a specific adaptation must bear the MPL v2 or not is based upon file divisions within the software. Adapted files must remain MPL v2, but entirely new files may bear a licence of the adaptor’s choice. The MPL v2 also allows its covered code to be incorporated into projects under a specific set of other ‘secondary’ FOSS licences (GNU GPLv2, GNU LGPL v2.1, GNU Affero GPL v3 and all subsequent versions of those licences), thereby expanding compatibility of software it covers.

As software which was distributed under the MPL v1.1 can automatically be distributed under the MPL v2 (thanks to section 6.2 of the former licence) the new compatibility features raised an interesting question: what if the original owner does not want this expanded compatibility, with its attendant implication that their code could end up within a project under a different licence? The MPL v2 deals with this by providing an additional notice that can be added to software it covers, stating that the author does not wish the compatibility features of the licence to be used with their code. When ‘upgrading’ a piece of MPL v1.1 software to MPL v2, only the original owner of the code can decide that such a notice need not be applied. If anyone other than the original owner is upgrading the licence, the notice must be included.

Also to this end, the MPL v2 has amended conditions around patent licence termination. These bring the licence into compatibility with the Apache License v2, and therefore allow Apache License v2 code to be incorporated directly into MPL v2 covered files. For both these compatibility measures it is important to realise their limitations. They allow Apache License v2 code to be used in MPL v2 programs, and MPL v2 code to be used under certain conditions in programs under various versions of the GNU GPL. They do not allow code combination in the opposite direction; for example, including GNU GPLv3 code in an MPL v2-licensed program, or MPL v2-licensed code in an Apache License v2 program would still be impossible without additional permissions from the software’s owners.

As well as expanded compatibility, the MPL v2 provides amended legal language to make it accord better with uses and enforcement outside the US. In rewriting, the licence has also been made shorter and clearer.

What makes the MPL 2 different from MPL 1.1?

These bullet points are intended to summarise what is distinct about the MPL v2. They are not intended as a full description of its features. In comparison with the Mozilla Public License v1.1, the Mozilla Public License v2:

  • amended conditions around patent licence termination, making it compatible with the Apache Software License v2
  • introduces compatibility with the GNU GPLv2, GNU LGPL v2.1, GNU Affero GPL v3 and all subsequent versions of those licences
  • is simpler and shorter

OSS Watch has produced a document that highlights the main legal issues to consider when making your code available under an open source licence.

Further reading

Links:

Related information from OSS Watch: