@@ -822,96 +822,159 @@ worth noting below the three key changes that GPLv2 brought:
\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.}
\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
@@ -2033,112 +2096,115 @@ 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