@@ -2491,104 +2491,104 @@ from a designated place, such as by enabling electronic access to a network
server. Subsection 6d clarifies that the distributor must offer equivalent
access to copy the source code ``in the same way through the same place.''
This wording permits a distributor to offer a third party access to both
object code and source code on a single network portal or web page, even
though the access may include links to different physical servers. For
example, a downstream distributor may provide a link to an upstream
distributor's server and arrange with the operator of that server to keep the
source code available for copying for as long as the downstream distributor
enables access to the object code. This codifies what has been our
interpretation of GPLv2.
%FIXME: 6e, peer-to-peer
% FIXME: Not final paragraph anymore.
The final paragraph of section 6 takes account of the fact that the Complete
Corresponding Source Code may include added parts that carry non-GPL terms,
as permitted by section 7.
% FIXME: update lock-down section to work with more recent drafts
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.
The third paragraph of section 1 addresses this problem by making clear that
Complete Corresponding Source Code includes any such encryption,
authorization, and decryption codes. By requiring the inclusion of this
information whenever the GPL requires distribution of Complete Corresponding
Source Code, we thwart efforts to obstruct the goals of the GPL, and we
ensure that users will remain in control over their own machines. We
recognize an exception where use of the program normally implies that the
user already has the codes. For example, in secure systems a computer owner
might possess any keys needed to run a program, while the distributor of the
program might not have the keys.
% FIXME: installation information
%FIXME: publicly documented format
\section{Understanding License Compatibility}
\label{license-compatibility}
% FIXME: reword intro to license compatibility
Another challenge facing the free software community is the proliferation of
incompatible free software licenses. Of course, we cannot make the GPL
compatible with all such licenses. GPLv3 contains provisions that are
designed to reduce license incompatibility by making it easier for developers
to combine code carrying non-GPL terms with GPL'd code.
% FIXME: more about license compatibility here.
A challenge that faced the Free Software community heavily through out the
early 2000s was the proliferation of incompatible Free Software licenses. Of
course, we cannot make the GPL compatible with all such licenses. GPLv3
contains provisions that are designed to reduce license incompatibility by
making it easier for developers to combine code carrying non-GPL terms with
GPL'd code.
\section{GPLv3~\S7: Explicit Compatibility}
% FIXME: probably mostly still right, needs some updates, though.
In GPLv3 we take a new approach to the issue of combining GPL'd code with
code governed by the terms of other free software licenses. Our view, though
it was not explicitly stated in GPLv2 itself, was that GPLv2 allowed such
combinations only if the non-GPL licensing terms permitted distribution under
the GPL and imposed no restrictions on the code that were not also imposed by
the GPL. In practice, we supplemented this policy with a structure of
exceptions for certain kinds of combinations.
Section 7 of GPLv3 implements a more explicit policy on license
compatibility. It formalizes the circumstances under which a licensee may
release a covered work that includes an added part carrying non-GPL terms. We
distinguish between terms that provide additional permissions, and terms that
place additional requirements on the code, relative to the permissions and
requirements established by applying the GPL to the code.
Section 7 first explicitly allows added parts covered by terms with
additional permissions to be combined with GPL'd code. This codifies our
existing practice of regarding such licensing terms as compatible with the
GPL. A downstream user of a combined GPL'd work who modifies such an added
part may remove the additional permissions, in which case the broader
permissions no longer apply to the modified version, and only the terms of
the GPL apply to it.
In its treatment of terms that impose additional requirements, section 7
extends the range of licensing terms with which the GPL is compatible. An
added part carrying additional requirements may be combined with GPL'd code,
but only if those requirements belong to an set enumerated in section 7. We
must, of course, place some limit on the kinds of additional requirements
that we will accept, to ensure that enhanced license compatibility does not
defeat the broader freedoms advanced by the GPL. Unlike terms that grant
additional permissions, terms that impose additional requirements cannot be
removed by a downstream user of the combined GPL'd work, because no such user
would have the right to do so.
Under subsections 7a and 7b, the requirements may include preservation of