File diff 79941dd33445 → 163368ebf89b
gpl-lgpl.tex
Show inline comments
...
 
@@ -678,384 +678,447 @@ Code writing is not litigation.  It is better, richer, more
 
productive.  But the law is an obvious instance of how creativity and
 
incentives do not depend upon perfect control over the products
 
created.  Like jazz, or novels, or architecture, the law gets built
 
upon the work that went before. This adding and changing is what
 
creativity always is.  And a free society is one that assures that its
 
most important resources remain free in just this sense.\footnote{This
 
quotation is Copyright \copyright{} 2002, Lawrence Lessig. It is
 
licensed under the terms of
 
\href{http://creativecommons.org/licenses/by/1.0/}{the ``Attribution
 
License'' version 1.0} or any later version as published by Creative
 
Commons.}
 
\end{quotation}
 

	
 
In essence, lawyers are paid to service the shared commons of legal
 
infrastructure.  Few citizens defend themselves in court or write their
 
own briefs (even though they are legally permitted to do so) because
 
everyone would prefer to have an expert do that job.
 

	
 
The Free Software economy is a market ripe for experts.  It
 
functions similarly to other well established professional fields like the
 
law. The GPL, in turn, serves as the legal scaffolding that permits the
 
creation of this vibrant commercial and noncommercial Free Software
 
economy.
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{A Tale of Two Copyleft Licenses}
 

	
 
While determining the proper methodology and criteria to yield an accurate
 
count remains difficult, the GPL is generally considered one of the most
 
widely used Free Software licenses.  For most of its history --- for 16 years
 
from June 1991 to June 2007 --- there was really only one version of the GPL,
 
version 2.
 

	
 
However, the GPL had both earlier versions before version 2, and, more well
 
known, a revision to version 3. 
 

	
 
\section{Historical Motivations for the General Public License}
 

	
 
The earliest license to grant software freedom was likely the Berkeley
 
Software Distribution (``BSD'') license.  This license is typical of what are
 
often called lax, highly permissive licenses.  Not unlike software in the
 
public domain, these non-copyleft licenses (usually) grant software freedom
 
to users, but they do not go to any effort to uphold that software freedom
 
for users.  The so-called ``downstream'' (those who receive the software and
 
then build new things based on that software) can restrict the software and
 
distribute further.
 

	
 
The GNU's Not Unix (``GNU'') project, which Richard M.~Stallman (``RMS'')
 
founded in 1984 to make a complete Unix-compatible operating system
 
implementation that assured software freedom for all.  However, RMS saw that
 
using a license that gave but did not assure software freedom would be
 
counter to the goals of the GNU project.  RMS invented ``copyleft'' as an
 
answer to that problem, and began using various copyleft licenses for the
 
early GNU project programs\footnote{RMS writes more fully about this topic in
 
  his essay entitled simply
 
  \href{http://www.gnu.org/gnu/thegnuproject.html}{\textit{The GNU Project}}.
 
    For those who want to hear the story in his own voice,
 
    \href{http://audio-video.gnu.org/audio/}{speech recordings} of his talk,
 
    \textit{The Free Software Movement and the GNU/Linux Operating System}
 
    are also widely available}.
 

	
 
\section{Proto-GPLs And Their Impact}
 

	
 
The earliest copyleft licenses were specific to various GNU programs.  For
 
example, \href{http://www.free-soft.org/gpl_history/emacs_gpl.html}{The Emacs
 
  General Public License} was likely the first copyleft license ever
 
published.  Interesting to note that even this earliest copyleft license
 
contains a version of the well-known GPL copyleft clause:
 

	
 
\begin{quotation}
 
You may modify your copy or copies of GNU Emacs \ldots provided that you also
 
\ldots cause the whole of any work that you distribute or publish, that in
 
whole or in part contains or is a derivative of GNU Emacs or any part
 
thereof, to be licensed at no charge to all third parties on terms identical
 
to those contained in this License Agreement.
 
\end{quotation}
 

	
 
This simply stated clause is the fundamental innovation of copyleft.
 
Specifically, copyleft \textit{uses} the copyright holders' controls on
 
permission to modify the work to add a conditional requirement.  Namely,
 
downstream users may only have permission to modify  the work if they pass
 
along the same permissions on the modified version that came originally to
 
them.
 

	
 
These original program-specific proto-GPLs give an interesting window into
 
the central ideas and development of copyleft.  In particular, reviewing them
 
shows how the text of the GPL we know has evolved to address more of the
 
issues discussed earlier in \S~\ref{software-and-non-copyright}.
 

	
 
\section{The GNU General Public License, Version 1}
 

	
 
In January 1989, the FSF announced that the GPL had been converted into a
 
``subroutine'' that could be reused not just for all FSF-copyrighted
 
programs, but also by anyone else.  As the FSF claimed in its announcement of
 
the GPLv1\footnote{The announcement of GPLv1 was published in the
 
  \href{http://www.gnu.org/bulletins/bull6.html\#SEC8}{GNU'S Bulletin, vol 1,
 
    number 6 dated January 1989}.  (Thanks very much to Andy Tai for his
 
  \href{http://www.free-soft.org/gpl_history/}{consolidation of research on
 
    the history of the pre-v1 GPL's}.)}:
 
\begin{quotation}
 
To make it easier to copyleft programs, we have been improving on the
 
legalbol architecture of the General Public License to produce a new version
 
that serves as a general-purpose subroutine: it can apply to any program
 
without modification, no matter who is publishing it.
 
\end{quotation}
 

	
 
This, like many inventive ideas, seems somewhat obvious in retrospect.  But,
 
the FSF had some bright people and access to good lawyers when it started.
 
It took almost five years from the first copyleft licenses to get to a
 
generalized, reusable GPLv1.  In the context and mindset of the 1980s, this
 
is not surprising.  The idea of reusable licensing infrastructure was not
 
only uncommon, it was virtually nonexistent!  Even the early BSD licenses
 
were simply copied and rewritten slightly for each new use\footnote{It
 
  remains an interesting accident of history that the early BSD problematic
 
  ``advertising clause'' (discussion of which is somewhat beyond the scope of
 
  this tutorial) lives on into current day, simply because while the
 
  University of California at Berkeley gave unilateral permission to remove
 
  the clause from \textit{its} copyrighted works, others who adapted the BSD
 
  license with their own names in place of UC-Berkeley's never have.}.  The
 
GPLv1's innovation of reuable licensing infrastructure, an obvious fact
 
today, was indeed a novel invention for its day\footnote{We're all just
 
  grateful that the FSF also opposes business method patents, since the FSF's
 
  patent on a ``method for reusable licensing infrastructure'' would have
 
  not expired until 2006!}.
 

	
 
\section{The GNU General Public License, Version 2}
 

	
 
The GPLv2 was released two and a half years after GPLv1, and over the
 
following sixteen years, it became the standard for copyleft licensing until
 
the release of GPLv3 in 2007 (discussed in more detail in the next section).
 

	
 
While this tutorial does not discuss the terms of GPLv1 in detail, it is
 
worth noting below the three key changes that GPLv2 brought:
 

	
 
\begin{itemize}
 

	
 
\item Software patents and their danger are explicitly mentioned, inspiring
 
  (in part) the addition of GPLv2\S\S5--7.  (These sections are discussed in
 
  detail in \S~\ref{GPLv2s5}, \S~\ref{GPLv2s6} and \S~\ref{GPLv2s7} of this
 
  tutorial.)
 

	
 
\item GPLv2\S2's copyleft terms are expanded to more explicitly discuss the
 
  issue of combined works.  (GPLv2\S2 is discussed in detail in
 
  \S~\ref{GPLv2s2} in this tutorial).
 

	
 
\item GPLv2\S3 includes more detailed requirements, including the phrase
 
 ``the scripts used to control compilation and installation of the
 
  executable'', which is a central component of current GPLv2 enforcement
 
  .  (GPLv2\S3 is discussed in detail in
 
  \S~\ref{GPLv2s3} in this tutorial).
 
\end{itemize}
 

	
 
The next chapter discusses GPLv2 in full detail, and readers who wish to dive
 
into the section-by-section discussion of the GPL should jump ahead now to
 
that chapter.  However, the most interesting fact to note here is how GPLv2
 
was published with little fanfare and limited commentary.  This contrasts
 
greatly with the creation of GPLv3.
 

	
 
\section{The GNU General Public License, Version 3}
 

	
 
RMS began drafting GPLv2.2 in mid-2002, and FSF ran a few discussion groups
 
during that era about new text of that license.  However, rampant violations
 
of the GPL required more immediate attention of FSF's licensing staff, and as
 
such, much of the early 2000's was spent doing GPL enforcement
 
work\footnote{More on GPL enforcement is discussed in \tutorialpartsplit{a
 
    companion tutorial, \texit{A Practical Guide to GPL
 
      Compliance}}{Part~\ref{gpl-compliance-guide} of this tutorial}.}.  In
 
2006, FSF began in earnest drafting work for GPLv3.
 

	
 
The GPLv3 process began in earnest in January 2006.  It became clear that
 
many provisions of the GPL could benefit from modification to fit new
 
circumstances and to reflect what the entire community learned from
 
experience with version 2.  Given the scale of revision it seems proper to
 
approach the work through public discussion in a transparent and accessible
 
manner.
 

	
 
The GPLv3 process continued through June 2007, culminating in publication of
 
GPLv3 and LGPLv3 on 29 June 2007, AGPLv3 on 19 November 2007, and the GCC
 
Runtime Library Exception on 27 January 2009.
 

	
 
All told, four discussion drafts of GPLv3, two discussion drafts of LGPLv3
 
and two discussion drafts of AGPLv3 were published and discussed.
 
Ultimately, FSF remained the final arbiter and publisher of the licenses, and
 
RMS himself their primary author, but input was sought from many parties, and
 
these licenses do admittedly look and read more like legislation as a result.
 
Nevertheless, all of the ``v3'' group are substantially better and improved
 
licenses.
 

	
 
GPLv3 and its terms are discussed in detail in Chapter\~ref{GPLv3}.
 

	
 
\section{The Innovation of Optional ``Or Any Later'' Version}
 

	
 
An interesting fact of all GPL licenses is that the are ultimate multiple
 
choices for use of the license.  The FSF is the primary steward of GPL (as
 
discussed later in \S~\ref{GPLv2s9} and \S~\ref{GPLv2s14}).  However, those
 
who wish to license works under GPL are not required to automatically accept
 
changes made by the FSF for their own copyrighted works.
 

	
 
Each licensor may chose three different methods of licensing, as follows:
 

	
 
\begin{itemize}
 

	
 
\item explicitly name a single version of GPL for their work (usually
 
  indicated in shorthand by saying the license is ``GPLv$X$-only''), or
 

	
 
\item name no version of the GPL, thus they allow their downstream recipients
 
  to select any version of the GPL they chose (usually indicated in shorthand
 
  by saying the license is simply ``GPL''), or
 

	
 
\item name a specific version of GPL and give downstream recipients the
 
  option to chose that version ``or any later version as published by the
 
  FSF'' (usually indicated by saying the license is
 
  ``GPLv$X$-or-later'')\footnote{The shorthand of ``GPL$X+$'' is also popular
 
    for this situation.  The authors of this tutorial prefer ``-or-later''
 
    syntax, because it (a) mirrors the words ``or'' and ``later from the
 
    licensing statement, (b) the $X+$ doesn't make it abundantly clear that
 
    $X$ is clearly included as a license option and (c) the $+$ symbol has
 
    other uses in computing (such as with regular expressions) that mean
 
    something different.}
 
\end{itemize}
 

	
 
\label{license-compatibility-first-mentioned}
 

	
 
Oddly, this flexibility has received (in the opinion of the authors, undue)
 
criticism, primarily because of the complex and oft-debated notion of
 
``license compatibility'' (which is explained in detail in
 
\S~\ref{license-compatibility}).  Copyleft licenses are generally
 
incompatible with each other, because the details of how they implement
 
copyleft differs.  Specifically, copyleft works only because of its
 
requirement that downstream licensors use the \texit{same} license for
 
combined and modified works.  As such, software licensed under the terms of
 
``GPLv2-only'' cannot be combined with works licensed ``GPLv3-or-later''.
 
This is admittedly a frustrating outcome.
 

	
 
Other copyleft licenses that appeared after GPL, such
 
as the Creative Commons ``Share Alike'' licenses, the Eclipse Public License
 
and the Mozilla Public License \textbf{require} all copyright holders chosing
 
to use any version of those licenses to automatically accept and relicense
 
their copyrighted works under new versions.  Of course ,Creative Commons, the
 
Eclipse Foundation, and the Mozilla Foundation (like the FSF) have generally
 
served as excellent stewards of their licenses.  Copyright holders using
 
those licenses seems to find it acceptable that to fully delegate all future
 
licensing decisions for their copyrights to these organizations without a
 
second thought.
 

	
 
However, note that FSF gives herein the control of copyright holders to
 
decide whether or not to implicitly trust the FSF in its work of drafting
 
future GPL versions.  The FSF, for its part, does encourage copyright holders
 
to chose by default ``GPLv$X$-or-later'' (where $X$ is the most recent
 
version of the GPL published by the FSF).  However, the FSF \textbf{does not
 
  mandate} that a choice to use any GPL requires a copyright holder ceding
 
its authority for future licensing decisions to the FSF.  In fact, the FSF
 
considered this possibility for GPLv3 and chose not to do so, instead opting
 
for the third-party steward designation clause discussed in
 
Section~\ref{GPlv3S14}.
 

	
 
\section{Complexities of Two Simultaneously Popular Copylefts}
 

	
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{GPLv2: Running Software and Verbatim Copying}
 
\label{run-and-verbatim}
 

	
 

	
 
This chapter begins the deep discussion of the details of the terms of
 
GPLv2\@. In this chapter, we consider the first two sections: GPLv2 \S\S
 
0--2. These are the straightforward sections of the GPL that define the
 
simplest rights that the user receives.
 

	
 
\section{GPLv2 \S 0: Freedom to Run}
 
\label{GPLs0}
 

	
 
\S 0, the opening section of GPLv2, sets forth that the work is governed by
 
copyright law. It specifically points out that it is the ``copyright
 
holder'' who decides if a work is licensed under its terms and explains
 
how the copyright holder might indicate this fact.
 

	
 
A bit more subtly, \S 0 makes an inference that copyright law is the only
 
system under which it is governed. Specifically, it states:
 
\begin{quote}
 
Activities other than copying, distribution and modification are not
 
covered by this License; they are outside its scope.
 
\end{quote}
 
In essence, the license governs \emph{only} those activities, and all other
 
activities are unrestricted, provided that no other agreements trump GPLv2
 
(which they cannot; see Sections~\ref{GPLs6} and~\ref{GPLs7}). This is
 
very important, because the Free Software community heavily supports
 
users' rights to ``fair use'' and ``unregulated use'' of copyrighted
 
material. GPLv2 asserts through this clause that it supports users' rights
 
to fair and unregulated uses.
 

	
 
Fair use of copyrighted material is an established legal doctrine that
 
permits certain activities. Discussion of the various types of fair
 
use activity are beyond the scope of this tutorial. However, one
 
important example of fair use is the right to quote a very few lines
 
(less than seven or so) and reuse them as you would with or without
 
licensing restrictions.
 

	
 
Fair use is a doctrine established by the courts or by statute. By
 
contrast, unregulated uses are those that are not covered by the statue
 
nor determined by a court to be covered, but are common and enjoyed by
 
many users. An example of unregulated use is reading a printout of the
 
program's source code like an instruction book for the purpose of learning
 
how to be a better programmer.
 

	
 
\medskip
 

	
 
Thus, the GPLv2 protects users fair and unregulated use rights precisely by
 
not attempting to cover them. Furthermore, the GPLv2 ensures the freedom
 
to run specifically by stating the following:
 
\begin{quote}
 
''The act of running the Program is not restricted.''
 
\end{quote}
 
Thus, users are explicitly given the freedom to run by \S 0.
 

	
 
\medskip
 

	
 
The bulk of \S 0 not yet discussed gives definitions for other terms used
 
throughout. The only one worth discussing in detail is ``work based on
 
the Program.''  The reason this definition is particularly interesting is
 
not for the definition itself, which is rather straightforward, but
 
because it clears up a common misconception about the GPL\@.
 

	
 
The GPL is often mistakenly criticized because it fails to give a
 
definition of ``derivative work.''  In fact, it would be incorrect and
 
problematic if the GPL attempted to define this. A copyright license, in
 
fact, has no control over what may or may not be a derivative work. This
 
matter is left up to copyright law, not the licenses that utilize it.
 

	
 
It is certainly true that copyright law as a whole does not propose clear
 
and straightforward guidelines for what is and is not a derivative
 
software work under copyright law. However, no copyright license --- not
 
even the GNU GPL --- can be blamed for this. Legislators and court
 
opinions must give us guidance to decide the border cases.
 

	
 
\section{GPLv2 \S 1: Verbatim Copying}
 
\label{GPLs1}
 

	
 
GPLv2 \S 1 covers the matter of redistributing the source code of a program
 
exactly as it was received. This section is quite straightforward.
 
However, there are a few details worth noting here.
 

	
 
The phrase ``in any medium'' is important. This, for example, gives the
 
freedom to publish a book that is the printed copy of the program's source
 
code. It also allows for changes in the medium of distribution. Some
 
vendors may ship Free Software on a CD, but others may place it right on
 
the hard drive of a pre-installed computer. Any such redistribution media
 
is allowed.
 

	
 
Preservation of copyright notice and license notifications are mentioned
 
specifically in \S 1. These are in some ways the most important part of
 
the redistribution, which is why they are mentioned by name. The GPL
 
always strives to make it abundantly clear to anyone who receives the
 
software what its license is. The goal is to make sure users know their
 
rights and freedoms under GPL, and to leave no reason that someone would be
 
surprised the software she got was licensed under GPL\@. Thus
 
throughout the GPL, there are specific references to the importance of
 
notifying others down the distribution chain that they have rights under
 
GPL.
 

	
 
Also mentioned by name is the warranty disclaimer. Most people today do
 
not believe that software comes with any warranty. Notwithstanding the
 
proposed state-level UCITA bills (which have never obtained widespread
 
adoption), there are few or no implied warranties with software.
 
However, just to be on the safe side, GPL clearly disclaims them, and the
 
GPL requires redistributors to keep the disclaimer very visible. (See
 
Sections~\ref{GPLs11} and~\ref{GPLs12} of this tutorial for more on GPL's
 
warranty disclaimers.)
 

	
 
Note finally that \S 1 begins to set forth the important defense of
 
commercial freedom. \S 1 clearly states that in the case of verbatim
 
copies, one may make money. Redistributors are fully permitted to charge
 
for the redistribution of copies of Free Software. In addition, they may
 
provide the warranty protection that the GPL disclaims as an additional
 
service for a fee. (See Section~\ref{Business Models} for more discussion
 
on making a profit from Free Software redistribution.)
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 

	
 
\chapter{Derivative Works: Statute and Case Law}
 

	
 
We digress for this chapter from our discussion of GPL's exact text to
 
consider the matter of derivative works --- a concept that we must
 
understand fully before considering \S\S 2--3 of GPLv2\@. GPL, and Free
 
Software licensing in general, relies critically on the concept of
 
``derivative work'' since software that is ``independent,'' (i.e., not
 
``derivative'') of Free Software need not abide by the terms of the
 
applicable Free Software license. As much is required by \S 106 of the
 
Copyright Act, 17 U.S.C. \S 106 (2002), and admitted by Free Software
 
licenses, such as the GPL, which (as we have seen) states in \S 0 that ``a
 
`work based on the Program' means either the Program or any derivative
 
work under copyright law.'' It is being a derivative work of Free Software
 
that triggers the necessity to comply with the terms of the Free Software
 
license under which the original work is distributed. Therefore, one is
 
left to ask, just what is a ``derivative work''? The answer to that
 
question differs depending on which court is being asked.
 

	
 
The analysis in this chapter sets forth the differing definitions of
 
derivative work by the circuit courts. The broadest and most
 
established definition of derivative work for software is the
 
abstraction, filtration, and comparison test (``the AFC test'') as
 
created and developed by the Second Circuit. Some circuits, including
 
the Ninth Circuit and the First Circuit, have either adopted narrower
 
versions of the AFC test or have expressly rejected the AFC test in
 
favor of a narrower standard. Further, several other circuits have yet
 
to adopt any definition of derivative work for software.
 

	
 
As an introductory matter, it is important to note that literal copying of
 
a significant portion of source code is not always sufficient to establish
 
that a second work is a derivative work of an original
 
program. Conversely, a second work can be a derivative work of an original
 
program even though absolutely no copying of the literal source code of
 
the original program has been made. This is the case because copyright
 
protection does not always extend to all portions of a program's code,
 
while, at the same time, it can extend beyond the literal code of a
 
program to its non-literal aspects, such as its architecture, structure,
 
sequence, organization, operational modules, and computer-user interface.
 

	
 
\section{The Copyright Act}
 

	
 
The copyright act is of little, if any, help in determining the definition
 
of a derivative work of software. However, the applicable provisions do
 
provide some, albeit quite cursory, guidance. Section 101 of the Copyright
 
Act sets forth the following definitions:
 

	
 
\begin{quotation}
 
A ``computer program'' is a set of statements or instructions to be used
 
directly or indirectly in a computer in order to bring about a certain
 
result.
 

	
 
A ``derivative work'' is a work based upon one or more preexisting works,
 
such as a translation, musical arrangement, dramatization,
 
fictionalization, motion picture version, sound recording, art
 
reproduction, abridgment, condensation, or any other form in which a work
 
may be recast, transformed, or adapted. A work consisting of editorial
 
revisions, annotations, elaborations, or other modifications which, as a
 
whole, represent an original work of authorship, is a ``derivative work.''
 
\end{quotation}
 

	
 
These are the only provisions in the Copyright Act relevant to the
 
determination of what constitutes a derivative work of a computer
 
program. Another provision of the Copyright Act that is also relevant to
 
the definition of derivative work is \S 102(b), which reads as follows:
 

	
 
\begin{quotation}
 
In no case does copyright protection for an original work of authorship
 
extend to any idea, procedure, process, system, method of operation,
...
 
@@ -1889,400 +1952,403 @@ EULAs. EULAs are believed by their authors to be contracts, requiring
 
formal agreement between the licensee and the software distributor to be
 
valid. This has led to mechanisms like ``shrink-wrap'' and ``click-wrap''
 
as mechanisms to perform acceptance ceremonies with EULAs.
 

	
 
The GPL does not need contract law to ``transfer rights.''  No rights
 
are transfered between parties. By contrast, the GPL is a permission
 
slip to undertake activities that would otherwise have been prohibited
 
by copyright law. As such, it needs no acceptance ceremony; the
 
licensee is not even required to accept the license.
 

	
 
However, without the GPL, the activities of copying, modifying and
 
distributing the software would have otherwise been prohibited. So, the
 
GPL says that you only accepted the license by undertaking activities that
 
you would have otherwise been prohibited without your license under GPL\@.
 
This is a certainly subtle point, and requires a mindset quite different
 
from the contractual approach taken by EULA authors.
 

	
 
An interesting side benefit to \S 5 is that the bulk of users of Free
 
Software are not required to accept the license. Undertaking fair and
 
unregulated use of the work, for example, does not bind you to the GPL,
 
since you are not engaging in activity that is otherwise controlled by
 
copyright law. Only when you engage in those activities that might have an
 
impact on the freedom of others does license acceptance occur, and the
 
terms begin to bind you to fair and equitable sharing of the software. In
 
other words, the GPL only kicks in when it needs to for the sake of
 
freedom.
 

	
 
\section{Using GPL Both as a Contract and Copyright License}
 

	
 
\section{GPLv2 \S 6: GPL, My One and Only}
 
\label{GPLs6}
 

	
 
A point that was glossed over in Section~\ref{GPLs4}'s discussion of \S 4
 
was the irrevocable nature of the GPL\@. The GPLv2 is indeed irrevocable,
 
and it is made so formally by \S 6.
 

	
 
The first sentence in \S 6 ensures that as software propagates down the
 
distribution chain, that each licensor can pass along the license to each
 
new licensee. Under \S 6, the act of distributing automatically grants a
 
license from the original licensor to the next recipient. This creates a
 
chain of grants that ensure that everyone in the distribution has rights
 
under the GPLv2\@. In a mathematical sense, this bounds the bottom ---
 
making sure that future licensees get no fewer rights than the licensee before.
 

	
 
The second sentence of \S 6 does the opposite; it bounds from the top. It
 
prohibits any licensor along the distribution chain from placing
 
additional restrictions on the user. In other words, no additional
 
requirements may trump the rights and freedoms given by GPLv2\@.
 

	
 
The final sentence of \S 6 makes it abundantly clear that no individual
 
entity in the distribution chain is responsible for the compliance of any
 
other. This is particularly important for noncommercial users who have
 
passed along a source offer under \S 3(c), as they cannot be assured that
 
the issuer of the offer will honor their \S 3 obligations.
 

	
 
In short, \S 6 says that your license for the software is your one and
 
only copyright license allowing you to copy, modify and distribute the
 
software.
 

	
 
\section{GPLv2 \S 7: ``Give Software Liberty or Give It Death!''}
 
\label{GPLs7}
 

	
 
In essence, \S 7 is a verbosely worded way of saying for non-copyright
 
systems what \S 6 says for copyright. If there exists any reason that a
 
distributor knows of that would prohibit later licensees from exercising
 
their full rights under GPL, then distribution is prohibited.
 

	
 
Originally, this was designed as the title of this section suggests --- as
 
a last ditch effort to make sure that freedom was upheld. However, in
 
modern times, it has come to give much more. Now that the body of GPL'd
 
software is so large, patent holders who would want to be distributors of
 
GPL'd software have a tough choice. They must choose between avoiding
 
distribution of GPL'd software that exercises the teachings of their
 
patents, or grant a royalty-free, irrevocable, non-exclusive license to
 
those patents. Many companies, including IBM, the largest patent holder
 
in the world, have chosen the latter.
 

	
 
Thus, \S 7 rarely gives software death by stopping its distribution.
 
Instead, it is inspiring patent holders to share their patents in the same
 
freedom-defending way that they share their copyrighted works.
 

	
 
\section{GPLv2 \S 8: Excluding Problematic Jurisdictions}
 
\label{GPLs8}
 

	
 
\S 8 is rarely used by copyright holders. Its intention is that if a
 
particular country, say Unfreedonia, grants particular patents or allows
 
copyrighted interfaces (no country to our knowledge even permits those
 
yet), that the GPLv2'd software can continue in free and unabated
 
distribution in the countries where such controls do not exist.
 

	
 
It is a partial ``out'' from \S 7. Without \S 8, if a copyright holder
 
knew of a patent in a particular country licensed in a GPL-incompatible
 
way, then she could not distribute under GPL, because the work could
 
legitimately end up in the hands of citizens of Unfreedonia.
 

	
 
It is an inevitable but sad reality that some countries are freer than
 
others. \S 8 exists to permit distribution in those countries that are
 
free without otherwise negating parts of the license.
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{Odds, Ends, and Absolutely No Warranty}
 

	
 
\S 0--7 constitute the freedom-defending terms of the GPLv2. The remainder
 
of the GPLv2 handles administrivia and issues concerning warranties and
 
liability.
 

	
 
\section{GPLv2 \S 9: FSF as Stewards of GPL}
 
\label{GPLs9}
 

	
 
FSF reserves the exclusive right to publish future versions of the GPL\@;
 
\S 9 expresses this. While the stewardship of the copyrights on the body
 
of GPL'd software around the world is shared among thousands of
 
individuals and organizations, the license itself needs a single steward.
 
Forking of the code is often regrettable but basically innocuous. Forking
 
of licensing is disastrous.
 

	
 
FSF has only released two versions of GPL --- in 1989 and 1991. GPL
 
version 3 is under current internal drafting. FSF's plan is to have a
 
long and engaging comment period. The goal of GPL is to defend freedom, and
 
a gigantic community depends on that freedom now. FSF hopes to take all
 
stakeholders' opinions under advisement.
 

	
 
\section{GPLv2 \S 10: Relicensing Permitted}
 
\label{GPLs10}
 

	
 
\S 10 reminds the licensee of what is already implied by the nature of
 
copyright law. Namely, the copyright holder of a particular software
 
program has the prerogative to grant alternative agreements under separate
 
copyright licenses.
 

	
 
\section{GPLv2 \S 11: No Warranty}
 
\label{GPLs11}
 

	
 
All warranty disclaimer language tends to be shouted in all capital
 
letters. Apparently, there was once a case where the disclaimer language
 
of an agreement was negated because it was not ``conspicuous'' to one of
 
the parties. Therefore, to make such language ``conspicuous,'' people
 
started placing it in bold or capitalizing the entire text. It now seems
 
to be voodoo tradition of warranty disclaimer writing.
 

	
 
Some have argued the GPL is unenforceable in some jurisdictions because
 
its disclaimer of warranties is impermissibly broad. However, \S 11
 
contains a jurisdictional savings provision, which states that it is to be
 
interpreted only as broadly as allowed by applicable law. Such a
 
provision ensures that both it, and the entire GPL, is enforceable in any
 
jurisdiction, regardless of any particular law regarding the
 
permissibility of certain warranty disclaimers.
 

	
 
Finally, one important point to remember when reading \S 11 is that \S 1
 
permits the sale of warranty as an additional service, which \S 11 affirms.
 

	
 
\section{GPLv2 \S 12: Limitation of Liability}
 
\label{GPLs12}
 

	
 
There are many types of warranties, and in some jurisdictions some of them
 
cannot be disclaimed. Therefore, usually agreements will have both a
 
warranty disclaimer and a limitation of liability, as we have in \S 12. \S
 
11 thus gets rid of all implied warranties that can legally be
 
disavowed. \S 12, in turn, limits the liability of the actor for any
 
warranties that cannot legally be disclaimed in a particular jurisdiction.
 

	
 
Again, some have argued the GPL is unenforceable in some jurisdictions
 
because its limitation of liability is impermissibly broad. However, \S
 
12, just like its sister, \S 11, contains a jurisdictional savings
 
provision, which states that it is to be interpreted only as broadly as
 
allowed by applicable law. As stated above, such a provision ensures that
 
both \S 12, and the entire GPL, is enforceable in any jurisdiction,
 
regardless of any particular law regarding the permissibility of limiting
 
liability.
 

	
 
So end the terms and conditions of the GNU General Public License.
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{GPLv3}
 
\label{GPLv3}
 

	
 
\section{Understanding GPLv3 As An Upgraded GPLv2}
 

	
 
\section{GPLv3 \S 0: Giving In On ``Defined Terms''}
 

	
 
\section{GPLv3 \S 1: Understanding CCS}
 

	
 
\section{GPLv3 \S 2: Basic Permissions}
 

	
 
\section{GPLv3 \S 3: What Hath DMCA Wrought}
 
\label{GPLv3s3}
 
\section{GPLv3 \S 4: Verbatim Copying}
 

	
 
\section{GPLv3 \S 5: Modified Source}
 

	
 
\section{GPLv3 \S 6: Non-Source and Corresponding Source}
 

	
 
\section{Understanding License Compatibility}
 
\label{license-compatibility}
 

	
 
\section{GPLv3 \S 7: Explicit Compatibility}
 

	
 
\section{GPLv3 \S 8: A Lighter Termination}
 

	
 
\section{GPLv3 \S 9: Acceptance}
 

	
 
\section{GPLv3 \S 10: Explicit Downstream License}
 

	
 
\section{GPLv3 \S 11: Explicit Patent Licensing}
 
\label{GPLv3s11}
 
\section{GPLv3 \S 12: Familiar as GPLv2 \S 7}
 

	
 
\section{GPLv3 \S 13: The Great Affero Compromise}
 

	
 
\section{GPLv3 \S 14: So, When's GPLv4?}
 

	
 
\label{GPlv2s14}
 
\section{GPLv3 \S 15--17: Warranty Disclaimers and Liability Limitation}
 

	
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{The Lesser GPL}
 

	
 
As we have seen in our consideration of the GPL, its text is specifically
 
designed to cover all possible derivative works under copyright law. Our
 
goal in designing GPL was to make sure that any derivative work of GPL'd
 
software was itself released under GPL when distributed. Reaching as far
 
as copyright law will allow is the most direct way to reach that goal.
 

	
 
However, while the strategic goal is to bring as much Free Software
 
into the world as possible, particular tactical considerations
 
regarding software freedom dictate different means. Extending the
 
copyleft effect as far as copyright law allows is not always the most
 
prudent course in reaching the goal. In particular situations, even
 
those of us with the goal of building a world where all published
 
software is Free Software realize that full copyleft does not best
 
serve us. The GNU Lesser General Public License (``GNU LGPL'') was
 
designed as a solution for such situations.
 

	
 
\section{The First LGPL'd Program}
 

	
 
The first example that FSF encountered where such altered tactics were
 
needed was when work began on the GNU C Library. The GNU C Library would
 
become (and today, now is) a drop-in replacement for existing C libraries.
 
On a Unix-like operating system, C is the lingua franca and the C library
 
is an essential component for all programs. It is extremely difficult to
 
construct a program that will run with ease on a Unix-like operating
 
system without making use of services provided by the C library --- even
 
if the program is written in a language other than C\@. Effectively, all
 
user application programs that run on any modern Unix-like system must
 
make use of the C library.
 

	
 
By the time work began on the GNU implementation of the C libraries, there
 
were already many C libraries in existence from a variety of vendors.
 
Every proprietary Unix vendor had one, and many third parties produced
 
smaller versions for special purpose use. However, our goal was to create
 
a C library that would provide equivalent functionality to these other C
 
libraries on a Free Software operating system (which in fact happens today
 
on modern GNU/Linux systems, which all use the GNU C Library).
 

	
 
Unlike existing GNU application software, however, the licensing
 
implications of releasing the GNU C Library (``glibc'') under GPL were
 
somewhat different. Applications released under GPL would never
 
themselves become part of proprietary software. However, if glibc were
 
released under GPL, it would require that any application distributed for
 
the GNU/Linux platform be released under GPL\@.
 

	
 
Since all applications on a Unix-like system depend on the C library, it
 
means that they must link with that library to function on the system. In
 
other words, all applications running on a Unix-like system must be
 
combined with the C library to form a new whole derivative work that is
 
composed of the original application and the C library. Thus, if glibc
 
were GPL'd, each and every application distributed for use on GNU/Linux
 
would also need to be GPL'd, since to even function, such applications
 
would need to be combined into larger derivative works by linking with
 
glibc.
 

	
 
At first glance, such an outcome seems like a windfall for Free Software
 
advocates, since it stops all proprietary software development on
 
GNU/Linux systems. However, the outcome is a bit more subtle. In a world
 
where many C libraries already exist, many of which could easily be ported
 
to GNU/Linux, a GPL'd glibc would be unlikely to succeed. Proprietary
 
vendors would see the excellent opportunity to license their C libraries
 
to anyone who wished to write proprietary software for GNU/Linux systems.
 
The de-facto standard for the C library on GNU/Linux would likely be not
 
glibc, but the most popular proprietary one.
 

	
 
Meanwhile, the actual goal of releasing glibc under GPL --- to ensure no
 
proprietary applications on GNU/Linux --- would be unattainable in this
 
scenario. Furthermore, users of those proprietary applications would also
 
be users of a proprietary C library, not the Free glibc.
 

	
 
The Lesser GPL was initially conceived to handle this scenario. It was
 
clear that the existence of proprietary applications for GNU/Linux was
 
inevitable. Since there were so many C libraries already in existence, a
 
new one under GPL would not stop that tide. However, if the new C library
 
were released under a license that permitted proprietary applications
 
to link with it, but made sure that the library itself remained Free,
 
an ancillary goal could be met. Users of proprietary applications, while
 
they would not have the freedom to copy, share, modify and redistribute
 
the application itself, would have the freedom to do so with respect to
 
the C library.
 

	
 
There was no way the license of glibc could stop or even slow the creation
 
of proprietary applications on GNU/Linux. However, loosening the
 
restrictions on the licensing of glibc ensured that nearly all proprietary
 
applications at least used a Free C library rather than a proprietary one.
 
This trade-off is central to the reasoning behind the LGPL\@.
 

	
 
Of course, many people who use the LGPL today are not thinking in these
 
terms. In fact, they are often choosing the LGPL because they are looking
 
for a ``compromise'' between the GPL and the X11-style liberal licensing.
 
However, understanding FSF's reasoning behind the creation of the LGPL is
 
helpful when studying the license.
 

	
 

	
 
\section{What's the Same?}
 

	
 
Much of the text of the LGPL is identical to the GPL\@. As we begin our
 
discussion of the LGPL, we will first eliminate the sections that are
 
identical, or that have the minor modification changing the word
 
``Program'' to ``Library.''
 

	
 
First, \S 1 of LGPL, the rules for verbatim copying of source, are
 
equivalent to those in GPL's \S 1.
 

	
 
Second, \S 8 of LGPL is equivalent \S 4 of GPL\@. In both licenses, this
 
section handles termination in precisely the same manner.
 

	
 
\S 9 in LGPL is equivalent to \S 5 in GPL\@. Both sections assert that
 
the license is a copyright license, and handle the acceptance of those
 
copyright terms.
 

	
 
LGPL's \S 10 is equivalent to GPL's \S 6. They both protect the
 
distribution system of Free Software under these licenses, to ensure that
 
up, down, and throughout the distribution chain, each recipient of the
 
software receives identical rights under the license and no other
 
restrictions are imposed.
 

	
 
LGPL's \S 11 is GPL's \S 7. As discussed, it is used to ensure that
 
other claims and legal realities, such as patent licenses and court
 
judgments, do not trump the rights and permissions granted by these
 
licenses, and requires that distribution be halted if such a trump is
 
known to exist.
 

	
 
LGPL's \S 12 adds the same features as GPL's \S 8. These sections are
 
used to allow original copyright holders to forbid distribution in
 
countries with draconian laws that would otherwise contradict these
 
licenses.
 

	
 
LGPL's \S 13 sets up FSF as the steward of the LGPL, just as GPL's \S 9
 
does for GPL. Meanwhile, LGPL's \S 14 reminds licensees that copyright
 
holders can grant exceptions to the terms of LGPL, just as GPL's \S 10
 
reminds licensees of the same thing.
 

	
 
Finally, the assertions of no warranty and limitations of liability are
 
identical; thus LGPL's \S 15 and \S 16 are the same as GPL's \S 11 and \S
 
12.
 

	
 
As we see, the entire latter half of the license is identical.
 
The parts which set up the legal boundaries and meta-rules for the license
 
are the same. It is our intent that the two licenses operate under the
 
same legal mechanisms and are enforced precisely the same way.
 

	
 
We strike a difference only in the early portions of the license.
 
Namely, in the LGPL we go into deeper detail of granting various permissions to
 
create derivative works, so the redistributors can make
 
some proprietary derivatives. Since we simply do not allow the
 
license to stretch as far as copyright law does regarding what
 
derivative works must be relicensed under the same terms, we must go
 
further to explain which derivative works we will allow to be
 
proprietary. Thus, we'll see that the front matter of the LGPL is a
 
bit more wordy and detailed with regards to the permissions granted to
 
those who modify or redistribute the software.
 

	
 
\section{Additions to the Preamble}
 

	
 
Most of LGPL's Preamble is identical, but the last seven paragraphs
 
introduce the concepts and reasoning behind creation of the license,
 
presenting a more generalized and briefer version of the story with which
 
we began our consideration of LGPL\@.
 

	
 
In short, FSF designed LGPL for those edge cases where the freedom of the
 
public can better be served by a more lax licensing system. FSF doesn't
 
encourage use of LGPL automatically for any software that happens to be a
 
library; rather, FSF suggests that it only be used in specific cases, such
 
as the following:
 

	
 
\begin{itemize}
 

	
 
\item To encourage the widest possible use of a Free Software library, so
 
  it becomes a de-facto standard over similar, although not
 
  interface-identical, proprietary alternatives
 

	
 
\item To encourage use of a Free Software library that already has
 
  interface-identical proprietary competitors that are more developed
 

	
 
\item To allow a greater number of users to get freedom, by encouraging
 
  proprietary companies to pick a Free alternative for its otherwise
 
  proprietary products
 

	
 
\end{itemize}
 

	
 
LGPL's preamble sets forth the limits to which the license seeks to go in
 
chasing these goals. LGPL is designed to ensure that users who happen to
 
acquire software linked with such libraries have full freedoms with
 
respect to that library. They should have the ability to upgrade to a newer
 
or modified Free version or to make their own modifications, even if they
 
cannot modify the primary software program that links to that library.