Unix Programming - Licensing Issues - Standard Open-Source Licenses
Here are the standard open-source license terms you are likely
to encounter. The abbreviations listed here are in general use.
-
MIT
-
MIT X Consortium license (like BSD's but with no advertising
requirement)
-
BSD
-
University of California at Berkeley Regents copyright (used on
BSD code)
-
Artistic License
-
Same terms as Perl Artistic License
-
GPL
-
GNU General Public License
-
LGPL
-
Library (or ‘Lesser’) GPL
-
MPL
-
Mozilla Public License
We'll discuss these licenses in more detail, from a developer's
point of view, in Chapter19. For the purposes of this chapter, the
only important distinction among them is whether they are infectious
or not. A license is infectious if it requires
that any derivative work of the licensed software also be placed under
its terms.
Under these licenses, the only kind of open-source use you
should really worry about is actual incorporation of the
free-software code into a proprietary product (as opposed, say, to
merely using open-source development tools to make your product).
If you're prepared to include proper license acknowledgements and
pointers to the source code you're using in your product
documentation, even direct incorporation should be safe provided
the license is not infectious.
The GPL is both the most widely used and the most controversial
infectious license. And it is clause 2(b), requiring
that any derivative work of a GPLed program itself be GPLed, that
causes the controversy. (Clause 3(b) requiring licensors to make
source available on physical media on demand used to cause some,
but the Internet explosion has made publishing source code archives
as required by 3(a) so cheap that nobody worries about the source-publication
requirement any more.)
Nobody is quite certain what the “contains or is derived
from” in clause 2(b) means, nor what kinds of use are protected
by the “mere aggregation” language a few paragraphs later.
Contentious issues include library linking and inclusion of
GPL-licensed header files. Part of the problem is that the U.S. copyright
statutes do not define what derivation is; it has been left to the
courts to hammer out definitions in case law, and computer software is
an area in which this process (as of mid-2003) has barely begun.
At one end, the “mere aggregation” certainly makes
it safe to ship GPLed software on the same media with your proprietary
code, provided they do not link to or call each other. They may even
be tools operating on the same file formats or on-disk structures;
that situation, under copyright law, would not make one a derivative
of the other.
At the other end, splicing GPLed code into your proprietary
code, or linking GPLed object code to yours, certainly does make your
code a derivative work and requires it to be GPLed.
It is generally believed that one program may execute a second
program as a subprocess without either program becoming thereby a
derivative work of the other.
The case that causes dispute is dynamic linking of shared
libraries. The Free Software Foundation's position is that if a
program calls another program as a shared library, then that program
is a derivative work of the library. Some programmers think this
claim is overreaching. There are technical, legal, and political
arguments on both sides that we won't rehash here. Since the Free
Software Foundation wrote and owns the license, it would
be prudent to behave as if the FSF's position is correct until a court
rules otherwise.
Some people think the 2(b) language is deliberately designed to
infect every part of any commercial program that uses even a snippet
of GPLed code; such people refer to it as the GPV, or “General
Public Virus”. Others think the “mere aggregation”
language covers everything short of mixing GPL and non-GPL code in the
same compilation or linkage unit.
This uncertainty has caused enough agitation in the open-source
community that the FSF had to develop the special, slightly more
relaxed “Library GPL” (which they have since renamed the
“Lesser GPL”) to reassure people they could continue to
use runtime libraries that came with the FSF's GNU compiler
collection.
You'll have to choose your own interpretation of clause 2(b);
most lawyers will not understand the technical issues involved, and there is no
case law. As a matter of empirical fact, the
FSF
has never (from its founding in 1984 to mid-2003, at least) sued
anyone under the GPL but it has enforced the GPL by threatening
lawsuit, in all known cases successfully. And, as another
empirical fact, Netscape includes the source and object of a GPLed
program with the commercial distribution of its Netscape Navigator
browser.
The MPL and LGPL are infectious in a more limited way than GPL.
They explicitly allow linking with proprietary code without turning
that code into a derivative work, provided all traffic between the
GPLed and non-GPLed code goes through a library API or other
well-defined interface.
[an error occurred while processing this directive]
|