LWN.net Logo

Advertisement

GStreamer, Embedded Linux, Android, VoD, Smooth Streaming, DRM, RTSP, HEVC, PulseAudio, OpenGL. Register now to attend.

Advertise here

Mozilla releases a beta of the revised MPL

January 5, 2011

This article was contributed by Nathan Willis

The Mozilla Foundation released "beta 1" of its upcoming revision to the Mozilla Public License (MPL) last month — the license's first update in more than a decade. Mozilla first set out to shorten, simplify, and modernize the MPL in March of 2010, developing the preliminary revisions based on feedback from its own license compliance team and talks with the Free Software Foundation (FSF) and Open Source Initiative (OSI). MPL 2.0 Beta 1 is open for public comment, which the project hopes to incorporate into a final release candidate in the coming months.

Rewriting in public

The current MPL is at version 1.1, which debuted in 1999. Back at the beginning of the update effort, Mozilla defined a set of issues it wanted to address in the new revision. These started with simplifying both the language of the license as well as its requirements; common terminology in software licensing has changed over the last ten years, and downstream MPL users found several of the notification and re-licensing requirements confusing or difficult. Although the MPL is specific to Mozilla, and derivative licenses could alter jurisdiction-specific terms, Mozilla's global developer community reportedly had trouble with US-centric copyright- and contract-law language, necessitating some globalization work.

Perhaps the most far-reaching changes to the MPL are those that affect its compatibility with the other top-tier FLOSS licenses: namely the GPL, LGPL, and the Apache license, which is a popular choice for web-oriented projects. In addition to Mozilla itself, some high-profile projects use derivatives of the existing MPL, including Sun's Common Development and Distribution License (CDDL), the Yahoo Public License, and several individual projects, such as Erlang and SugarCRM.

Mozilla made it clear at the outset that it was committed to remaining an open source license as defined by the OSI and both a copyleft and free software license as defined by the FSF. However, the project also stated clearly that it would not be considering two potential changes: moving from the existing "weak copyleft" to a "strong copyleft," and incorporating a Software-as-a-Service (SaaS) clause à la the AGPL. Mozilla reasoned that the former change would radically impact the way Mozilla projects function, and the latter — although an important issue — is controversial enough that it would overshadow the work of updating and modernizing the rest of the license.

The first "alpha" draft of MPL 2.0 was released in July, written by Mozilla's MPL team, and was followed by two more alphas in September and October. Although the initial feedback mechanism was the MPL-Update mailing list, beginning with alpha 2 an HTML version of the license was published at the web-annotation site co-ment.com so that interested parties could mark up and comment on specific lines and phrases. Using that system, interested parties can add comments to a shared version of the the current revision, which will be reviewed by the project team.

The co-ment.com utility is very easy to work with, although it allows any user to attach a name and email address to their mark-up without address verification — so be wary if you spot suspiciously-exuberant cheers attributed to key FSF officials (for the record, I did submit four grammatical comments under the username "n8willis" just to see how it worked). Mozilla notes that co-ment.com itself was inspired by the FSF's online annotation tool used in the GPLv3 comment process. It seems a bit ironic that Mozilla chose to utilize a closed-source tool rather than the original — although FSF's own description of the tool as "daunting-to-install" suggests one simple explanation.

The MPL 2.0 alphas were low-profile announcements, but the December beta was the subject of a blog announcement by Mozilla's Mitchell Baker, soliciting comments from the public at large. The draft license is available as plain text, HTML, and PDF, and is accompanied by a discussion document [PDF] that includes justifications for the major changes, plus a full diff between beta 1 and alpha 3 and a full diff between beta 1 and MPL version 1.1.

The terms they are a-changin'

Most of the changes, naturally, took place between MPL 1.1 and the alphas, though 2.0 beta 1 brought its share of tweaks. The new license is approximately 38% shorter (2289 words, down from 3702), thanks to the removal of several definitions in section 1 and some redundant language, plus the consolidation of several sections (such as independent references to requirements that persist in future versions of the MPL). The substantive changes begin with the removal of all instances of the terms "Original Software" and "Initial Developer." These terms were used in MPL 1.1 to make distinctions between the creator of an MPL-licensed work and subsequent contributors; now all "Contributors" and "Contributions" are treated equally.

There are also simplifications in section 3 about distributing executables. MPL 1.1 spends some time discussing the differences between distributing source code and executables, enumerating rules about placing source code on the same physical media as executables, and honoring written offers. The 2.0 beta dispenses with most of that in favor of a much shorter "You must inform third-party recipients of the Executable form how they can obtain a copy of such Source Code form by reasonable means, at no more than a nominal charge." In a related change, section 1 also abbreviates the older version's discussion of what constitutes "source code" — calling it the "form of the work preferred for making modifications." This is meant to simplify debate over things like scripting languages, where the line between executable and source becomes fuzzy.

The beta also simplifies the notification process required of derivative software makers in section 3 considerably. MPL 1.1 required them describe any changes that they made to the MPL source code, to inform their users of all third-party intellectual property claims they were aware of that pertained to the code, and to document API changes that would be affected by patent claims. In several places it even specified that these notifications must be done in a file named LEGAL.The revised section 3.1 states that source distribution requires you to "inform recipients that the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License." Section 3.2 says that executable distribution requires you to make the source available as described in 3.1, and "inform third-party recipients of the Executable form how they can obtain a copy of such Source Code form by reasonable means, at no more than a nominal charge." Reasonable means and nominal charge are not explicitly defined.

Section 5.2 is the "patent defense" clause, stating that initiating litigation (against any entity) involving a patent claim against the software terminates the license. This section was rewritten so that its language was compatible with the Apache license, closing a much-lamented inconsistency between the two. It also explicitly excludes several types of defensive litigation (such as seeking a declaratory judgment) from triggering the termination clause, and clarifies some grace-period language pertaining to restoring someone's right to redistribute the software if they come back into compliance with the license.

The globalization improvements are found in the "Miscellaneous" section, section 8. While the MPL 1.1 specified that litigation about the license could only be brought in the Northern District of California, the new license requires it to be brought in "the courts of a jurisdiction wherein the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction" — which is seen as simplifying the situation for third-party code contributors.

Section 9 updates and clarifies the Mozilla Foundation as the sole steward of the MPL, removing all lingering mention of Netscape Corporation, and simplifies the language dealing with creating new licenses based on the MPL (essentially, references to Mozilla must be removed and the name of the license changed).

Compatibility with the FSF's license portfolio is dealt with in a new manner in section 10. While MPL 1.1 touched on other licenses only in a "Multiple Licensed Code" section which permitted the Initial Developer to provide a license choice, MPL 2.0 beta 1 allows anyone to designate their own contributions as "Compatible Software" with the GPL (2.0 or later), LGPL (2.1 or later), or AGPL (3.0 or later). Section 10.3 further specifies that developers may distribute a combined, derivative work based on MPL 2.0 code under one of those licenses, provided that they make their own contributions available under the MPL.

These requirements attempt to deal with one of the Mozilla community's unique sticking points, the "single-license fork". The problem occurs when a project builds on top of Mozilla code (which is tri-licensed under the MPL, GPL, or LGPL), but only releases modifications under one of the non-MPL licenses, thus effectively cutting it off from use by other tri-licensed Mozilla projects.

Impact

The revised MPL will probably only have a direct impact on two distinct sets of users: contributors to official Mozilla projects that live in non-US jurisdictions, and developers of outside, derivative projects. The former group benefits from the clearer language around copyrights and patents along with the generalized rules about litigation and jurisdiction. The latter group gets a mixed bag; better compatibility with GPL and Apache licensed works is a definite plus, while those players not interested in licensing their contributions under the MPL may not like the closing of the single-license fork loophole.

On the other hand, the reorganization and simplification of the license text benefits everyone. Ten years is a long time in this industry, and although most people's understanding of the issues and terms used in the MPL has not changed in that time, Mozilla has learned from experience that some of the requirements and clauses were not having the desired effect. The principle example of this is MPL 1.1's section 3.3 — the requirement that downstream redistributors describe all modifications made to the original code and include a statement telling users that the files have been modified from their original forms. Mozilla admits in practice this requirement is usually ignored, and in the era of distributed version control it adds little value.

It will be interesting to see how many of the changes proposed for MPL 2.0 are adopted by downstream licenses. Some, particularly those from projects that build on the Mozilla codebase like Celtx, will likely release new versions of their own licenses to maintain language compatibility.

It's less clear what will happen to the corporate controlled licenses like CDDL. CDDL has entertained proposed revisions on its own development path since its creation, and few if any of Sun's CDDL-licensed products interact with official Mozilla code. It is interesting to note, however, that several of the changes made to CDDL from MPL 1.1 are also incorporated in MPL 2.0 beta 1: use of the term "Software" instead of "Code," elimination of several definitions, and simplifying the distribution requirement language.

On that subject, however, it is also interesting that the CDDL's authors chose to widen the definition of distribution so that it includes application service providers, while Mozilla chose not address network applications at all. The project clearly needs to do so at some point, not just because of its stated commitment to the open web philosophy, but because it develops several high-profile web applications itself: Bugzilla, Bonsai, Tinderbox, Skywriter, Firefox Sync, and the Mozilla Labs Raindrop experiment.

Looking at the comments and the mailing list, there does not appear to be much call from the public as a whole for Mozilla to take a stronger copyleft stance. To review, MPL is regarded by the FSF as a "weak" copyleft because it uses a "per file" copyleft model. In other words, if you make changes to a source file, the modified file must be released under the MPL. But you can link the original MPL-ed software to other code that is published under any license at all (including a proprietary one). In contrast, the LGPL regards linking two applications or libraries as triggering the LGPL's license on the combined work.

Luis Villa, who has spearheaded the public comment and feedback process for MPL, says that the final MPL 2.0 is a "'release when ready' old-school open source process" that may involve another beta before any release candidate version is published, if there are enough comments or questions. The comment system for beta 1 remains open to the public until the team decides otherwise, as does the MPL-Update mailing list. Finally, for those with comments they wish to share away from the public's prying eyes, Mozilla has also established a "private feedback" email address.

Licenses are rarely regarded as exciting and cool, but as everyone in the FOSS universe knows, they constitute the backbone of what keeps free software free and open source open. Of the major licenses in use today, MPL is the second oldest in terms of when it was last updated — only the minimal and unrestrictive MIT/X11 license has gone longer without a refresh. Opportunities to participate in the license-drafting process are rare — so if you have a concern, the time to speak up is now.


(Log in to post comments)

Correction: isn't co-ment (mostly) free software?

Posted Jan 6, 2011 3:37 UTC (Thu) by mstone (subscriber, #58824) [Link]

Isn't COMT, the commenting software behind co-ment.com, available from http://www.co-ment.org/ under the AGPLv3 with a trademark restriction?

Correction: isn't co-ment (mostly) free software?

Posted Jan 6, 2011 5:39 UTC (Thu) by louie (subscriber, #3285) [Link]

Yes, it is; that's one of the reasons we chose it. That may not be obvious from our "themed" mini-site, I suppose, though the "powered by co-ment" links to a page that pretty prominently says "an open web service powered by free software."

Correction: isn't co-ment (mostly) free software?

Posted Jan 6, 2011 13:36 UTC (Thu) by n8willis (editor, #43041) [Link]

Well that's good; to clarify, when I was researching the service the first part of this week, there was no mention of COMT anywhere, nor a source code offer. And where the "open Web service w/ free software" link at the bottom is, it was instead "a fair-trade Web service" which led to something about the company's business model, which had a dead link to another page on the words 'open Web'... Maybe those were temporary site issues....

Nate

Correction: isn't co-ment (mostly) free software?

Posted Jan 7, 2011 7:35 UTC (Fri) by hugoroy (guest, #60577) [Link]

co-ment is definitely Free Software :)
http://www.co-ment.com/2010/03/02/free-software-open-serv...

(and that's not a surprise considering who's behind it!)

distinctions between contributors

Posted Jan 6, 2011 5:43 UTC (Thu) by louie (subscriber, #3285) [Link]

These terms were used in MPL 1.1 to make distinctions between the creator of an MPL-licensed work and subsequent contributors; now all "Contributors" and "Contributions" are treated equally.

Note that these distinctions were purely in matters of timing of the patent grants; otherwise, everyone was already treated the same, and MPL 2 merely makes that more clear. The mailing list archives have more details on this in this post and followups.

MPL nominal charge for source code

Posted Jan 6, 2011 22:09 UTC (Thu) by giraffedata (subscriber, #1954) [Link]

I hope they find a better way than "nominal charge" to describe what you can charge for source code and still be licensed under MPL. "Nominal" doesn't mean "small." It means "in name." A nominal charge is one so small that if it were any smaller, you couldn't call it a charge.

The only reason I can see for allowing smaller charges and not larger ones is to accomodate distributors recovering the cost of source code distribution, while not accomodating distributors getting paid for anything else. If that's it, they should just say that.

MPL nominal charge for source code

Posted Jan 7, 2011 14:36 UTC (Fri) by gerv (subscriber, #3376) [Link]

http://dictionary.reference.com/browse/nominal :

2. (of a price, consideration, etc.) named as a mere matter of form, being trifling in comparison with the actual value; minimal.

One other way to put it would be "less than the court filing fee of the lawsuit I could file about the fact that your 'nominal' fee is too large to be nominal" :-)

Remember, of course, once one person has the code, they can distribute it for free if they like. And if some company is obstructive, there's no better way of ensuring the first guy to pay the money distributes it loudly and widely at no charge.

Gerv

MPL nominal charge for source code

Posted Jan 7, 2011 16:55 UTC (Fri) by giraffedata (subscriber, #1954) [Link]

2. (of a price, consideration, etc.) named as a mere matter of form, being trifling in comparison with the actual value; minimal.

That's a corollary of the simpler, more fundamental definition I gave ("in name"), and even in this extended form, I don't think that's what the authors had in mind. I don't think they wanted to preserve a distributor's right to claim that he didn't give it away for free -- what would be the point of that?

Remember, of course, once one person has the code, they can distribute it for free if they like. And if some company is obstructive, there's no better way of ensuring the first guy to pay the money distributes it loudly and widely at no charge.
Apparently, the authors don't believe that this market force is enough to stop a distributor from requiring a large payment for the source code, or they wouldn't have mentioned a charge at all.

So I still think they should come up with a better way than "more than nominal" of describing what kind of charge for source code disqualifies the distributor from the license.

MPL nominal charge for source code

Posted Jan 8, 2011 7:45 UTC (Sat) by gerv (subscriber, #3376) [Link]

So I still think they should come up with a better way than "more than nominal" of describing what kind of charge for source code disqualifies the distributor from the license.

Do you have a suggestion? GPL 3 section 6 spent a lot of words on this, but one of the features of the new MPL is brevity.

MPL nominal charge for source code

Posted Jan 8, 2011 17:38 UTC (Sat) by rahulsundaram (subscriber, #21946) [Link]

Brevity is important but clarity is more important in a license to avoid getting into expensive litigation. Perhaps spending a lot of words is precisely what is needed here.

MPL nominal charge for source code

Posted Jan 8, 2011 21:15 UTC (Sat) by giraffedata (subscriber, #1954) [Link]

Brevity, or perhaps more to the point, simplicity, is a good goal. If it's important enough, I suggest replacing "at no more than a nominal charge" with "at no charge." That's brief, simple, and probably would not make the license much less useful.

But if it's important to extend the license to people who charge for source code, then my suggestion would have to depend on what kind of charge the authors had in mind (I'm pretty sure it wasn't a nominal one). If my guess is correct that they want to accomodate charging for the cost of distribution and not for anything else, then I suggest, "for no charge other than the cost of creating and delivering the copy."

MPL nominal charge for source code

Posted Jan 8, 2011 22:52 UTC (Sat) by dlang (✭ supporter ✭, #313) [Link]

so you say that companies must pay for mailing costs, CD costs, etc and cannot charge _anything_ for this?

if you make a license with this restriction, you will find that many companies are not going to be willing to use that license

MPL nominal charge for source code

Posted Jan 9, 2011 0:26 UTC (Sun) by giraffedata (subscriber, #1954) [Link]

so you say that companies must pay for mailing costs, CD costs, etc and cannot charge _anything_ for this?

Well, let's word it more clearly: I say that if companies have to pay for mailing costs, CD costs, etc. when they supply source code and can't charge anything for this, companies will still license code to and from others with MPL.

The main reason I believe that is that they can avoid those costs just by distributing the source code on the Internet or including it somehow with the object code. How often does an open source software distributor distribute source code by a separate CD today?

However, I suspect that even if a mailed CD is the only way to distribute source code, a company of any size would still not balk at paying for it, because there would be a very small number of requests.

MPL nominal charge for source code

Posted Jan 10, 2011 3:33 UTC (Mon) by nybble41 (subscriber, #55106) [Link]

Why not simply say "at cost"? That seems more in line with the author's intent: distributors can charge recipients (at most) the actual cost of providing a copy. Or, to give distributors a profit-based motive to point out that source code is available, perhaps something like "up to 5% over cost".

MPL nominal charge for source code

Posted Jan 10, 2011 3:43 UTC (Mon) by giraffedata (subscriber, #1954) [Link]

The problem with a simple "at cost" is that that can reasonably be interpreted to include the cost of developing the code. It's probably worth a few extra words to make sure those costs are excluded.

Mozilla releases a beta of the revised MPL

Posted Jan 7, 2011 14:40 UTC (Fri) by gerv (subscriber, #3376) [Link]

The 'single license fork' problem can never be eliminated unless we ditch the license compatibility; the GPL requires that any code compatible with the GPL must be able to eventually be licensable under the GPL with no additional restrictions. The MPL 2.0 makes the process of turning MPLed code into GPLed code a little more involved (in summary: you have to combine with existing GPLed code, and the _combiner's_ distribution of the code has to be under the terms of both licenses) but there's no legal way of preventing such forking altogether.

Just as BSD or Apache code can be "forked" in a GPL-only version, so can MPL 2.0 code.

Fortunately, forks rarely succeed if they don't carry the community with them.

Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds