Changeset - a03479ec1b00
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-03-20 22:25:39
bkuhn@ebb.org
Rewrite text on GPLv3ยง7.
1 file changed with 20 insertions and 25 deletions:
0 comments (0 inline, 0 general)
gpl-lgpl.tex
Show inline comments
...
 
@@ -3120,137 +3120,132 @@ and it permits relicensing under the GPL\@.
 
These practices are now generalized via GPLv3~\S7.
 
A licensee may remove any additional permission from
 
a covered work, whether it was placed by the original author or by an
 
upstream distributor.  A licensee may also add any kind of additional
 
permission to any part of a work for which the licensee has, or can give,
 
appropriate copyright permission. For example, if the licensee has written
 
that part, the licensee is the copyright holder for that part and can
 
therefore give additional permissions that are applicable to it.
 
Alternatively, the part may have been written by someone else and licensed,
 
with the additional permissions, to that licensee.  Any additional
 
permissions on that part are, in turn, removable by downstream recipients.
 
As GPLv3~\S7\P1 explains, the effect of an additional permission depends on
 
whether the permission applies to the whole work or a part.
 

	
 
% FIXME-LATER: LGPLv3 will have its own section
 

	
 
Indeed, LGPLv3 is itself simply  a list of additional permissions supplementing the
 
terms of GPLv3.  GPLv3\S7 has thus provided the basis for recasting a
 
formally complex license as an elegant set of added terms, without changing
 
any of the fundamental features of the existing LGPL\@.  LGPLv3 is thus  a model for developers wishing to license their works under the
 
GPL with permissive exceptions.  The removability of additional permissions
 
under GPLv3\S7 does not alter any existing behavior of the LGPL since the LGPL
 
has always allowed relicensing under the ordinary GPL\@.
 

	
 
\section{GPLv3~\S7: Understanding License Compatibility}
 
\label{license-compatibility}
 

	
 
A challenge that faced the Free Software community heavily through out the
 
early 2000s was the proliferation of incompatible Free Software licenses.  Of
 
course, the GPL cannot possibly be compatible with all such licenses.
 
However, 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.
 

	
 
This license compatibility issue arises for
 
three reasons.  First, the GPL is a strong copyleft license, requiring
 
modified versions to be distributed under the GPL\@.  Second, the GPL states
 
that no further restrictions may be placed on the rights of recipients.
 
Third, all other software freedom respecting licenses in common use contain certain
 
requirements, many of which are not conditions made by the GPL\@.  Thus, when
 
GPL'd code is modified by combination with code covered by another formal
 
license that specifies other requirements, and that modified code is then
 
distributed to others, the freedom of recipients may be burdened by
 
additional requirements in violation of the GPL.  It can be seen that
 
additional permissions in other licenses do not raise any problems of license
 
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
 
GPLv3  took a new approach to the issue of combining GPL'd code with
 
code governed by the terms of other software freedom licenses.  Traditional
 
GPLv2 license compatibility theory (which was not explicitly stated in GPLv2
 
itself, but treated as a license interpretation matter by the FSF) held 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
 
the GPL\@.  In practice, the FSF historically supplemented that policy with a structure of
 
exceptions for certain kinds of combinations.
 

	
 
% FIXME:  probably mostly still right, needs some updates, though.
 

	
 
Section 7 of GPLv3 implements a more explicit policy on license
 
GPLv3~\S7  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
 
release a covered work that includes an added part carrying non-GPL terms. 
 
GPLv3~\S7 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.
 

	
 
% FIXME:  probably mostly still right, needs some updates, though.
 

	
 
Section 7 first explicitly allows added parts covered by terms with
 
additional permissions to be combined with GPL'd code. This codifies our
 
As discussed in the previous section of this tutorial, GPLv3~\S7 first and foremost explicitly allows added parts covered by terms with
 
additional permissions to be combined with GPL'd code. This codifies the
 
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
 
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.
 

	
 
% FIXME:  probably mostly still right, needs some updates, though.
 

	
 
In its treatment of terms that impose additional requirements, section 7
 
In its treatment of terms that impose additional requirements, GPLv3\S7
 
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
 
but only if those requirements belong to an set enumerated in GPLv3\S7. There
 
are, of course,  limits on the acceptable additional requirements, which to
 
ensures that enhanced license compatibility does not
 
defeat the broader software-freedom-defending terms of 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.
 

	
 
% FIXME:  probably mostly still right, needs some updates, though.
 
removed by a downstream user of the combined GPL'd work, because only in the
 
pathological case\footnote{Theoretically, a user could collect copyright
 
  assignment from all known contributors and then do this, but this would
 
  indeed be the pathological case.}  would a user 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
 

	
 
% FIXME:  probably mostly still right, needs some updates, though.
 

	
 
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.
 

	
 
% FIXME: minor rewrites needed
 

	
 
Section 7 points out that GPLv3 itself makes no assertion that an additional
 
requirement is enforceable by the copyright holder.  However, section 7 makes
 
clear that enforcement of such requirements is expected to be by the
 
termination procedure given in section 8 of GPLv3.
 

	
 
% FIXME: better context, etc.
 

	
 
Some have questioned whether section 7 is needed, and some have suggested
 
that it creates complexity that did not previously exist.  We point out to
 
those readers that there is already GPLv2-licensed code that carries
 
additional terms.  One of the objectives of section 7 is to rationalize
 
existing practices of program authors and modifiers by setting clear
 
guidelines regarding the removal and addition of such terms.  With its
 
carefully limited list of allowed additional requirements, section 7
 
accomplishes additional objectives, permitting the expansion of the base of
 
code available for GPL developers, while also encouraging useful
 
experimentation with requirements we do not include in the GPL itself.
 

	
 
\section{GPLv3~\S8: A Lighter Termination}
 

	
 
% FIXME:  probably mostly still right, needs some updates, though.
 

	
0 comments (0 inline, 0 general)