@@ -2246,97 +2246,97 @@ but it also makes clear that, under the copyright laws of a given country,
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
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.
% 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.