Changeset - 017c6ae1b510
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-03-20 22:18:45
bkuhn@ebb.org
Redraft paragraph.
1 file changed with 4 insertions and 8 deletions:
0 comments (0 inline, 0 general)
gpl-lgpl.tex
Show inline comments
...
 
@@ -3131,58 +3131,54 @@ 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.
 

	
 
\subsection{GPLv3~\S7: Additional Requirements and License Compatibility}
 

	
 
We broadened the title of section 7 because license compatibility, as it is
 
conventionally understood, is only one of several facets of the placement of
 
additional terms on GPL'd code.  The license compatibility issue arises for
 
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
 
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 free software licenses in common use contain certain
 
requirements, many of which are not conditions made by the GPL.  Thus, when
 
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
 
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.
 

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

	
 
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.
 

	
0 comments (0 inline, 0 general)