@@ -2099,193 +2099,209 @@ versions of GPL.)
\label{GPLv2s10}
GPLv2~\S10 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~\S11: No Warranty}
\label{GPLv2s11}
Most warranty disclaimer language shout at you. The
\href{http://www.law.cornell.edu/ucc/2/2-316}{Uniform Commercial
Code~\S2-316} requires that disclaimers of warranty be ``conspicuous''.
There is apparently general acceptance that \textsc{all caps} is the
preferred way to make something conspicuous, and that has over decades worked
its way into the 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, GPLv2~\S11
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 GPLv2~\S11 is that GPLv2~\S1
permits the sale of warranty as an additional service, which GPLv2~\S11 affirms.
\section{GPLv2~\S12: Limitation of Liability}
\label{GPLv2s12}
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 GPLv2~\S12.
GPLv2~\S11 thus gets rid of all implied warranties that can legally be
disavowed. GPLv2~\S12, 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, GPLv2~\S11, 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 GPLv2~\S12, 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}
This chapter discussed the text of GPLv3. Much of this material herein
includes text that was adapted (with permission) from text that FSF
originally published as part of the so-called ``rationale documents'' for the
various discussion drafts of GPLv3.
The FSF ran a somewhat public process to develop GPLv3, and it was the first
attempt of its kind to develop a Free Software license this way. Ultimately,
RMS was the primary author of GPLv3, but he listened to feedback from all
sorts of individuals and even for-profit companies. Nevertheless, in
attempting to understand GPLv3 after the fact, the materials available from
the GPLv3 process have a somewhat ``drinking from the firehose'' effect.
This chapter seeks to explain GPLv3 to newcomers, who perhaps are familiar
with GPLv2.
\section{Understanding GPLv3 As An Upgraded GPLv2}
Ultimately, GPLv2 and GPLv3 co-exist as active licenses in regular use. As
discussed in Chapter\~ref{tale-of-two-copylefts}, GPLv1 was never in regular
use alongside GPLv2. However, given GPLv2's widespread popularity and
existing longevity by the time GPLv3 was published, it is not surprising that
some licensors have continued to prefer GPLv2-only or GPLv2-or-later as their
preferred license. GPLv3 has gained major adoption by many projects, old and
new, but many projects have not upgraded due to (in some cases) mere laziness
and (in other cases) policy preference for some of GPLv2's terms.
Given this ``two GPLs'' world is the one we all live in, it makes sense to
consider GPLv3 in terms of how it differs from GPLv2. Also, most of the best
GPL experts in the world must deal regularly with both licenses, and
admittedly have decades of experience of GPLv2 while the most experience with
GPLv3 that's possible is by default less than a decade.
These two factors usually cause even new students of GPL to start with GPLv2
and move on to GPLv3, and this tutorial follows that pattern.
Overall, the changes made in GPLv3 admittedly \textit{increased} the
complexity of the license. The FSF stated at the start of the GPLv3 process
that they would have liked to oblige those who have asked for a simpler and
shorter GPL\@. Ultimately, the FSF gave priority to making GPLv3 do the job
that needs to be done to build a better copyleft. Obsession for concision
should never trump software freedom.
\section{GPLv3~\S0: Giving In On ``Defined Terms''}
% FIXME: intro defined terms
One of lawyers' most common complaints about GPLv2 is that defined terms in
the document appear throughout. Most licenses define terms up-front.
However, GPL was always designed both as a document that should be easily
understood both by lawyers and by software developers: it is a document
designed to give freedom to software developers and users, and therefore it
should be comprehensible to that constituency.
Interestingly enough, one coauthor of this tutorial who is both a lawyer and
a developer pointed out that in law school, she understood defined terms more
quickly than other law students precisely because of her programming
background. For developers, having \verb0#define0 (in the C programming
language) or other types of constants and/or macros that automatically expand
in the place where they are used is second nature. As such, adding a defined
terms section was not terribly problematic for developers, and thus GPLv3
adds one. Most of these defined terms are somewhat straightforward and bring
forward better worded definitions from GPLv2. Herein, this tutorial
discusses a few of the new ones.
% FIXME: rewrite to FOUR new terms
Section 0 includes definitions of two new terms: ``covered work'' and
``propagate.'' The use of the term ``covered work'' enables some of the
wording in the revised GPL to be simpler and clearer.
% FIXME: rewrite propagate
The term ``propagate'' serves two purposes. First, ``propagate'' provides
a simple and convenient means for distinguishing between the kinds of
uses of a work that the GPL imposes conditions on and the kinds of
uses that the GPL does not (for the most part) impose conditions
on.
Second, ``propagate'' furthers our goal of making the license as
global as possible in its wording and effect. When a work is licensed
under the GPL, the copyright law of some particular country will
govern certain legal issues arising under the license. A term like
``distribute,'' or its equivalent in languages other than English, is
used in several national copyright statutes. The scope of
``distribution'' in the copyright context can differ from country to
country. We do not wish to force on the GPL the specific meaning of
``distribution'' that exists under United States copyright law or any
other country's copyright law.
We therefore define the term ``propagate'' by reference to activities
that require permission under ``applicable copyright law,'' but we
exclude execution and private modification from the definition. Our
definition gives examples of activities that may be included within
``propagation,'' but it also makes clear that, under the copyright laws
of a given country, ``propagation'' may include other activities as well.
% FIXME: paragraph number change , and more on Convey once definition comes.
The third paragraph of section 2 represents another effort to compensate for
variation in national copyright law. We distinguish between propagation that
enables parties other than the licensee to make or receive copies, and other
forms of propagation. As noted above, the meaning of ``distribution'' under
copyright law varies from country to country, including with respect to
whether making copies available to other parties (such as related public or
corporate entities) is ``distribution.'' ``Propagation,'' however, is a term
not tied to any statutory language. Propagation that does not enable other
parties to make or receive copies --- for example, making private copies or
privately viewing the program --- is permitted unconditionally. Propagation
that does enable other parties to make or receive copies is permitted as
``distribution,'' subject to the conditions set forth in sections 4--6.
% FIXME: Appropriate Legal Notices
\section{GPLv3~\S1: Understanding CCS}
% FIXME: Talk briefly about importance of CCS and reference compliance guide
% FIXME: reword source code a bit
Section 1 retains GPLv2's definition of ``source code'' and adds an
explicit definition of ``object code'' as ``any non-source version of a
work.'' Object code is not restricted to a narrow technical meaning and
is to be understood broadly as including any form of the work other than
the preferred form for making modifications to it. Object code
therefore includes any kind of transformed version of source code, such
as bytecode. The definition of object code also ensures that licensees
cannot escape their obligations under the GPL by resorting to shrouded
source or obfuscated programming.
% FIXME: CCS Coresponding Source updated to newer definition in later drafts
Keeping with the desire to ``round up'' definitions that were spread
throughout the text of GPLv2, the definition of CCS\footnote{Note that the
preferred term by those who work with both GPLv2 and GPLv3 is ``Complete
Corresponding Source'', abbreviated to ``CCS''. Admittedly, the word
``complete'' no longer appears in GPLv3 (which uses the word ``all''
instead). However, both GPLv2 and the early drafts of GPLv3 itself used
the word complete, and early GPLv3 drafts even included the phrase
``Complete Corresponding Source''. Meanwhile, use of the acronym ``CCS''
(sometimes, ``C&CS'') was so widespread among GPL enforcers that its use
continues even though GPLv3-focused experts tend to say just the defined
term of ``Corresponding Source''.}, or, as GPLv3 officially calls it,
``Corresponding Source'', is given in GPLv3~\S1\P4. This definition is as
broad as necessary to protect users' exercise of their rights under the
GPL. We follow the definition with particular examples to remove any doubt
that they are to be considered Complete Corresponding Source Code. We wish to
make completely clear that a licensee cannot avoid complying with the
requirements of the GPL by dynamically linking an add-on component to the
original version of a program.
Though the definition of Complete Corresponding Source Code in the
second paragraph of section 1 is expansive, it is not sufficient to
protect users' freedoms in many circumstances. For example, a GPL'd
program, or a modified version of such a program, might need to be
signed with a key or authorized with a code in order for it to run on
a particular machine and function properly. Similarly, a program that
produces digitally-restricted files might require a decryption code in
order to read the output.