CroftSoft / Library / Tutorials

Promiscuous Source (GPL vs. MPL)


Subject: Promiscuous Source

Date: Thu, 01 Apr 1999 23:13:09 -0500

From: David Wallace Croft <>

Organization: ANSER WV


Newsgroups: netscape.public.mozilla.license

> I want to write free ("freed") software, in the sense used by the Free

> Software Foundation ( whilst avoiding the GPL because of

> license-virus effects. Should I use the Mozilla Public License (MPL) or the

> GNU Library General Public License (LGPL)?

I realize that you were asking about the LGPL, not the GPL, but I want to take this opportunity to launch into the GPL versus MPL debate.

There are discussions and comparisons of the various Open Source the recently released book "Open Sources: Voices from the Open Source Revolution".

Also, Richard Stallman gives his view of the GPL vs. MPL debate here:
I disagree.

It is my opinion that MPL is more free than GPL. It is certainly less restrictive given the "viral" nature of GPL that you mentioned. Public Domain release and the X Consortium/MIT style licenses are by far the most free in that they have little to no restrictions. Why then, if you want your code to be free, would you not simply release the code as Public Domain?

There are two potential reasons:

  1. You cannot bear to think of anyone besides yourself being able to sell the software.
  2. You wish to see your code propagate and evolve as far and as long as possible.

GPL meets the first objective while MPL meets the second.

1. You cannot bear to think of anyone besides yourself being able to sell the software.

The GPL prevents code from being sold by itself or as part of a larger work. However, it leaves the door open for the authors to commercially sell the code under different licensing terms if they so choose. For example, this can easily occur:

  1. a single author may initially release code as GPL;
  2. the author later decides that the code has commercial viability;
  3. the author stops distributing the code with the GPL.
  4. the author then reissues the exact same code with a fee-based license.
What does this mean? It means that the GPL is a nice hedge for an author or organization who wants to reserve the exclusive right to commercially sell the software at some future point without competition.

How can this be?

First, realize that the GPL only binds the licensees, not the original author that holds the unrestricted copyright. The originator can always release the code under other licenses if he so chooses. I have seen a number of websites where the authors release the code as GPL but also advertise that they would be willing to accept licensing fees from those who would wish to sell their code as part of a proprietary larger work. Again, they maintain the exclusive license for commercial sale because the GPL does not release this right to the public.

The MPL, on the other hand, releases this right to all licensees thereby ensuring that if any originating author or organization wanted to stop distributing the code as Open Source and sell it commercially under a different license, they would have to compete. The threat of commercial competition is what dissuades the originator from doing so. Likewise, the commercial competition is unlikely to arise due to the same threat from yet other parties since everyone has been granted the right to commercialize. Thus, the code remains free. True of MPL, not true of GPL.

To be fair to GPL, when there are a large number of contributors in the creation of derivative works, it is really impossible to track down all of those individuals, or their heirs, and get them to unanimously agree to license their rights for commercial sale. So, in effect, on a work with a large number of contributors, the code can never be sold nor mixed with any non-GPL larger work. I believe this was Stallman's intent, that no one should be allowed to sell code.

Even if the number of contributors is small or none, it achieves the goal of preventing even the original copyright holder and cooperating contributors from being able to exclusively sell the code under different license terms so long as one individual is willing to archive the code with the original GPL attached at some public site. This defeats the commercial sale incentive. However, this assumes that the original copyright holder cannot stamp out the GPL distribution sites, by simply discontinuing support from its own sites and by offering compensatory incentives to others, quickly enough before it spreads. As the original copyright holder maintains the exclusive right to sell the code, i.e., others can give away the code but not sell it, only the original copyright holder has the resources and the incentive to stamp out the distribution site. As a contributing factor, as the other distribution sites do not have the exclusive right to sell the software, they only way the can make money off of the code is to accept a fee from the originator in exchange for signing an agreement not to continue to distribute the code with the GPL attached.

For example, an organization releases its code as GPL. Soon thereafter it changes its mind and decides to commercially sell the code. It then goes to the employees, perhaps the employees who authored the code but do not actually own the copyright, and offers them incentives not to distribute the code as a GPL licensee from their personal websites. For those former employees who have left the organization but have taken the source code with them as GPL licensees, the organization makes similar arrangements with them but perhaps must offer greater compensation for signing the agreement.

MPL does not have this weakness. Assume the above scenario but swap GPL with MPL. The organization changes its mind and decides to commercially sell the code as before, with the difference being that it has already licensed the ability to sell the code to the public; it no longer has the right to sell the code exclusively. The costs of buying back the exclusive right to sell the code would be prohibitive, even if no one from the public bothered to archive the code at an alternative site, because the employees and former employees now get to weigh the financial incentives of competing with their employer against taking the lump sum for agreeing not to compete. Again, this is because those who release their code under the MPL give up their right to sell the code exclusively; not so under the GPL.

2. You wish to see your code propagate and evolve as far and as long as possible.

First, MPL allows code to propagate and evolve better than GPL because it removes any financial incentive from the originator to attempt to later "close" the source since it effectively terminates the original copyright holder's right to sell the code exclusively, as described in depth above.

Second, MPL possesses a prolific reproduction and evolution feature that simple Public Domain release and the X consortium/MIT licenses lack. This is the requirement that all licensees must distribute the source code with any compiled work, including derivative works.

The GPL also contains this reproduction/evolution feature but the GPL version is inferior to that of MPL in that it is "viral", causing many individuals and organizations to immunize themselves against the use of such. The GPL requires that any larger work that encompasses even just a single component of GPL code be released in its entirety as GPL.

Why is this a bad thing?

First, it prevents the use of code released under other Open Source licenses, with the exception of Public Domain, from being used in combination to create a larger work. For example, suppose that you have located a third of the source code components that you need for your project under the GPL, another third under the X consortium/MIT style licenses, and the final third as Public Domain. Problem solved? No, you will either have to rewrite the GPL or the X consortium/MIT components as GPL will not co-exist with the other.

Second, even if one were willing to blindly port or write code as entirely GPL, it reduces innovation in the evolution of Open Source licenses themselves. Requiring that the only Open Source license to be used be GPL is pure arrogance in assuming that the GPL is final culmination in the development of the expression of a license that will "free" source code.

Third, the GPL prevents developers in commercial environments from contributing to the Open Source movement. For example, suppose an employed software developer in a commercial organization desperately wishes to contribute code to be released to the public as Open Source. The component which he will be writing may not be considered to have commercial interest to the organization but may have much use to the public in other application domains. Furthermore, the developer may wish to be able to not to have to rewrite the code from scratch but to build upon and improve upon the work of others and contribute the derivative work back to the public. If the prior work is in GPL, the organization will immediately rule out the use of such because it would require the larger work as a whole to be released as GPL, components of which they do have a commercial interest in. This restriction comes to be despite the fact that the component that the developer will be working on has no commercial interest to the organization. In fact, the organization, not just the developer, might be pleased to contribute the work on the component back to the public if they could do in such a way that would not interfere with their proprietary interests.

The GPL in effect eliminates the ability of software developers that work for commercial entities, which is the overwhelming share of the developers at large, from participating in the Open Source movement.

Why, then, do not the organizations and developers simply release their work, for which they have no commercial interest, under the terms of some Open Source license other than GPL? They can certainly do that but it sometimes means that they must then develop the code from scratch instead of building upon the work of others. This is especially true if other developers, in their lack of knowledge of how GPL is less open and less free than other more promiscuous Open Source licenses such as MPL, are reluctant to release their work under Open Source licenses beyond GPL which the developers working for commercial organizations could then improve and return.

Furthermore, the commercial organization may not be willing to originate Open Source code but might be willing to allow a developer to build upon an existing Open Source work and release the derivative work back to the public. That is to say, if the organization has to employ the developer to build it from scratch, the management might, in their failure to understand the indirect benefits of releasing code as Open Source, decide to keep the software closed for some possible potential commercial interest that might pop up in the far future. If, on the other hand, Open Source code is available that can be reused and adapted that would require less man-hour efforts on the part of their employed developer, the management would happily allow the developer to use, evolve, and distribute the derivative work -- so long as the use of such did not require the organization to abandon their commercial interests in the larger work.

If originators who have already released their code as GPL are understanding of the situation the commercial developer is in and are willing to release the code under another Open Source license such as MPL as well, the commercial developer would happily reciprocate by returning as much code as possible to the public as a derivative work under the terms of the Open Source license which allows him to do so in his given environment.

While this does imply that the commercial organization that employs the developer will now have the ability to sell a larger work that incorporates code that used to be exclusively GPL, so long as the originators do not mind giving up their exclusive right to commercially sell the code themselves in exchange for the good of seeing their code disseminated and evolved as much as possible, it will work out for the best for everyone.

The MPL avoids the three problems associated with the "viral" nature of GPL in that it:

  1. allows for the combination of MPL code with other code in a larger work without requiring that all code in the entire work be distributed under the same license;
  2. in turn allows for innovation in Open Source licensing evolution, in that, if an Open Source license that is more free and open than MPL comes along, the Open Source movement can adopt it without having to abandon a potentially large body of MPL work, as would be required with the GPL; and
  3. gives developers employed by commercial organizations the opportunity to contribute to the Open Source movement and the body of public knowledge since the MPL only requires that just the derivative works be released as MPL, not the entire larger work which the employing commercial entity may have a proprietary interest.
I state in this essay that MPL is more free and open than GPL. If what we believe about the organic nature of Open Source is true, then time will either prove or disprove my thesis that MPL is superior to GPL in that, over the long-run and on the whole, MPL source code will tend to live longer, grow larger, and be adapted to more uses than the equivalent code released under the terms of the GPL. If time proves me wrong, it means that the "viral" nature that GPL possesses is a superior evolutionary trait. Given what I know about the cross-fertilization advantages of sexual reproduction over asexual reproduction, I'm betting on MPL and any other and future licenses in the subset of Open Source licenses that are not merely prolific, but Promiscuous as well.

Let the experiment begin.

CroftSoft Web

Creative Commons License
© 2005 CroftSoft Inc.
You may copy this webpage under the terms of the
Creative Commons Attribution License.