@@ -2400,49 +2400,49 @@ GPLv2 and other licenses that grant software freedom showed throughout the
conveyance were more broad that merely the copyright notices. The
Appropriate Legal Notice definition consolidates the material that GPLv2
traditionally required preserved into one definition.
\subsection{Other Defined Terms}
Note finally that not all defined terms in GPLv3 appear in GPLv3~\S0.
Specifically, those defined terms that are confined in use to a single
section are defined in the section in which they are used, and GPLv3~\S1
contains those definitions focused on source code. In this tutorial, those
defined terms are discussed in the section where they are defined and/or
used.
\section{GPLv3~\S1: Understanding CCS}
\label{GPLv3s1}
Ensuring that users have the source code to the software they receive and the
freedom to modify remains the paramount right embodied in the Free Software
Definition (found in \S~\ref{Free Software Definition} of this tutorial). As
such, GPLv3~\S1 is likely one of the most important sections of GPLv3, as it
contains all the defined terms related to this important software freedom.
\subsection{Source Code Definition}
First, GPLv3\~S1 retains GPLv2's definition of ``source code'' and adds an
First, 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
understood broadly to include 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.
\subsection{CCS Definition}
The definition of CCS\footnote{Note that the preferred term for those who
work regularly 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 called this defined term ``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'' in GPLv3~\S1\P4 is possibly the most complex
definition in the license.
@@ -2532,49 +2532,49 @@ interpretation of this tutorial's authors: the harder and more strained the
reader must study and read the system library exception, the more likely it
is that the library in question does not qualify for it.
\section{GPLv3~\S2: Basic Permissions}
GPLv3~\S2 can roughly be considered as an equivalent to GPLv2~\S0 (discussed
in \S~\ref{GPLv2s0} of this tutorial). However, the usual style of
improvements found in GPLv3 are found here as well. For example, the first
sentence of GPLv3~\S2 furthers the goal internationalization. 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 USA, such a provision is
unnecessary but permissible.
GPLv3~\S2\P1 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.
However, note that (sadly to some copyleft advocates) the unlimited freedom
to run is confined to the \textit{unmodified} Program. This confinement is
unfortunately necessary since Programs that do not qualify as a User Product
in GPLv3~\S6 (see \S~\ref{user-product} in this tutorial) might have certain
unfortunate restrictions on the freedom to run\footnote{See
\S~ref{freedom-to-run} of this tutorial for the details on ``the freedom to
\S~\ref{freedom-to-run} of this tutorial for the details on ``the freedom to
run''.}
GPLv3~\S2\P2 distinguishes between activities of a licensee that are
permitted without limitation and activities that trigger additional
requirements. Specifically, GPLv3~\S2\P2 guarantees the basic freedoms of
privately modifying and running the program.
Also, GPLv3~\S2\P2 gives an explicit permission for a client to provide a
copy of its modified software to a contractor exclusively for that contractor
to modify it further, or run it, on behalf of the client. However, the
client can \textit{only} exercise this control over its own copyrighted
changes to the GPL-covered program. The parts of the program it obtained
from other contributors must be provided to the contractor with the usual GPL
freedoms. Thus, GPLv3 permits users to convey covered works to contractors
operating exclusively on the users' behalf, under the users' direction and
control, and to require the contractors to keep the users' copyrighted
changes confidential, but \textit{only if} the contractor is limited to acting
on the users' behalf (just as the users' employees would have to act).
The strict conditions in this ``contractors provision'' are needed so that it
cannot be twisted to fit other activities, such as making a program available
to downstream users or customers. By making the limits on this provision
very narrow, GPLv3 ensures that, in all other cases, contractors gets the
full freedoms of the GPL that they deserve.