@@ -2198,194 +2198,194 @@ 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.
GPLv3~\S0 includes definitions of four new terms not found in any form in
GPLv2: ``covered work'', ``propagate'', ``convey'', and ``Appropriate Legal
Notices''.
While ``covered by this license'' is a phrase found in GPLv2, defining it
more complete in a single as ``covered work'' enables some of the wording in
GPLv3 to be simpler and clearer than its GPLv2 counterparts.
% FIXME: does propagate definition still work the same way in final draft?
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. The GPL does not seek to necessarily use the specific
meaning of ``distribution'' that exists under United States copyright law or
any other country's copyright law.
Therefore, the GPL defines the term ``propagate'' by reference to activities
that require permission under ``applicable copyright law'', but excludes
execution and private modification from the definition. GPLv3's definition
also 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: verify this still matches final GPLv3 text.
% FIXME: link to GPLv2 tutorial sections if possible and where appropriate.
GPLv3\~S1 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 or minified
Javascript. 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
GPL\@. We follow the definition with particular examples to remove any doubt
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.
% FIXME: Standard Interface
% FIXME: System Libraries: it's in a different place and changed in later drafts
The final paragraph of section 1 revises the exception to the source code
distribution requirement in GPLv2 that we have sometimes called the system
library exception. This exception has been read to prohibit certain
distribution arrangements that we consider reasonable and have not sought to
prevent, such as distribution of gcc linked with a non-free C library that is
included as part of a larger non-free system. This is not to say that such
non-free libraries are legitimate; rather, preventing free software from
linking with these libraries would hurt free software more than it would hurt
proprietary software.
As revised, the exception has two parts. Part (a) rewords the GPLv2
exception for clarity but also removes the words ``unless that
component itself accompanies the executable.'' By itself, (a) would
be too permissive, allowing distributors to evade their
responsibilities under the GPL. We have therefore added part (b) to
specify when a system library that is an adjunct of a major essential
operating system component, compiler, or interpreter does not trigger
the requirement to distribute source code. The more low-level the
functionality provided by the library, the more likely it is to be
qualified for this exception.
\section{GPLv3~\S2: Basic Permissions}
% FIXME: phrase ``unmodified Program'' appears due to User Products exception
We have included the first sentence of section 2 to further internationalize
the GPL. Under the copyright laws of some countries, it may be necessary for
a copyright license to include an explicit provision setting forth the
duration of the rights being granted. In other countries, including the
United States, such a provision is unnecessary but permissible.
The first paragraph of section 2 also acknowledges that licensees under the
GPL enjoy rights of copyright fair use, or the equivalent under applicable
law. These rights are compatible with, and not in conflict with, the freedoms
that the GPL seeks to protect, and the GPL cannot and should not restrict
them.
% FIXME: propagate and convey
Section 2 distinguishes between activities of a licensee that are permitted
without limitation and activities that trigger additional requirements. The
second paragraph of section 2 guarantees the basic freedoms of privately
modifying and running the program. However, the right to privately modify and
run the program is terminated if the licensee brings a patent infringement
lawsuit against anyone for activities relating to a work based on the
program.
\section{GPLv3~\S3: What Hath DMCA Wrought}
\label{GPLv3s3}
% FIXME: reference the section in DMCA about this, maybe already there in
% GPLv2 section?
% FIXME: Wrong paragraph now.
The second paragraph of section 3 declares that no GPL'd program is part of
an effective technological protection measure, regardless of what the program
does. Ill-advised legislation in the United States and other countries has
prohibited circumvention of such technological measures. If a covered work is
distributed as part of a system for generating or accessing certain data, the
effect of this paragraph is to prevent someone from claiming that some other
GPL'd program that accesses the same data is an illegal circumvention.
\section{GPLv3~\S4: Verbatim Copying}
% FIXME: there appear to be minor changes here in later drafts, fix that.
Section 4 has been revised from its corresponding section in GPLv2 in light
of the new section 7 on license compatibility. A distributor of verbatim
copies of the program's source code must obey any existing additional terms
that apply to parts of the program. In addition, the distributor is required
to keep intact all license notices, including notices of such additional
terms.
\section{GPLv3~\S5: Modified Source}
% FIXME: 5(a) is slightly different in final version