@@ -2443,200 +2443,200 @@ distribution of object code may either be accompanied by the machine-readable
source code, or it may be accompanied by a written offer to provide the
machine-readable source code to any third party. GPLv3 clarifies that the
medium for software interchange on which the machine-readable source code is
provided must be a durable physical medium. Subsection 6b does not prevent a
distributor from offering to provide source code to a third party by some
other means, such as transmission over a network, so long as the option of
obtaining source code on a physical medium is presented.
% FIXME: probably mostly still right, needs some updates, though.
Subsection 6b revises the requirements for the written offer to provide
source code. As before, the offer must remain valid for at least three
years. In addition, even after three years, a distributor of a product
containing GPL'd object code must offer to provide source code for as long as
the distributor also continues to offer spare parts or customer support for
the product model. We believe that this is a reasonable and appropriate
requirement; a distributor should be prepared to provide source code if he or
she is prepared to provide support for other aspects of a physical product.
% FIXME: 10x language is gone.
Subsection 6b also increases the maximum permitted price for providing a copy
of the source code. GPLv2 stated that the price could be no more than the
cost of physically performing source distribution; GPLv3 allows the price to
be up to ten times the distributor's cost. It may not be practical to expect
some organizations to provide such copies at cost. Moreover, permitting such
organizations to charge ten times the cost is not particularly harmful, since
some recipient of the code can be expected to make the code freely available
on a public network server. We also recognize that there is nothing wrong
with profiting from providing copies of source code, provided that the price
of a copy is not so unreasonably high as to make it effectively unavailable.
Subsection 6c gives narrower permission than the corresponding subsection in
GPLv2. The option of including a copy of an offer received in accordance
with subsection 6b is available only for private distribution of object code;
moreover, such private distribution is restricted to ``occasional
non-commercial distribution.'' This subsection makes clear that a
distributor cannot comply with the GPL merely by making object code available
on a publicly-accessible network server accompanied by a copy of the written
offer to provide source code received from an upstream distributor.
New subsection 6d, which revises the final paragraph of GPLv2 section 3,
addresses distribution of object code by offering access to copy the code
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}
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
copyright notices, information about the origins of the code or alterations
of the code, and different warranty disclaimers. Under subsection 7c, the
requirements may include limitations on the use of names of contributors and
on the use of trademarks for publicity purposes. In general, we permit these
requirements in added terms because many free software licenses include them
and we consider them to be unobjectionable. Because we support trademark fair
use, the limitations on the use of trademarks may seek to enforce only what
is required by trademark law, and may not prohibit what would constitute fair
use.
% FIXME: 7d-f
% FIXME: removing additional restrictions
Section 7 requires a downstream user of a covered work to preserve the
non-GPL terms covering the added parts just as they must preserve the GPL, as
long as any substantial portion of those parts is present in the user's
version.
\section{GPLv3~\S8: A Lighter Termination}
GPLv2 provided for automatic termination of the rights of a person who
copied, modified, sublicensed, or distributed a work in violation of the
license. Automatic termination can be too harsh for those who have committed
an inadvertent violation, particularly in cases involving distribution of
large collections of software having numerous copyright holders. A violator
who resumes compliance with GPLv2 would need to obtain forgiveness from all
copyright holders, but even to contact them all might be impossible.
% FIXME: needs to be updated to describe more complex termination
Section 8 of GPLv3 replaces automatic termination with a non-automatic
termination process. Any copyright holder for the licensed work may opt to
terminate the rights of a violator of the license, provided that the
copyright holder has first given notice of the violation within 60 days of
its most recent occurrence. A violator who has been given notice may make
efforts to enter into compliance and may request that the copyright holder
agree not exercise the right of termination; the copyright holder may choose
to grant or refuse this request.
If a licensee who is in violation of GPLv3 acts to correct the violation and