CroftSoft /
Library /
Tutorials
Promiscuous Source (GPL vs. MPL)
1999-04-01
Subject: Promiscuous Source
Date: Thu, 01 Apr 1999 23:13:09 -0500
From: David Wallace Croft <croftd@nexos.anser.org>
Organization: ANSER WV
CC: croft@alumni.caltech.edu
Newsgroups: netscape.public.mozilla.license
> I want to write free ("freed") software, in the sense used by the Free
> Software Foundation (www.fsf.org) 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:
http://www.gnu.org/philosophy/netscape-npl.html
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:
-
You cannot bear to think of anyone besides yourself being able to
sell the software.
-
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:
-
a single author may initially release code as GPL;
-
the author later decides that the code has commercial viability;
-
the author stops distributing the code with the GPL.
-
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:
-
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;
-
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
-
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.
|