Changeset - f8a919928413
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-03-21 00:46:27
bkuhn@ebb.org
Affero GPL section, not doing this justice now, but this is good enough to
print for Monday's class.
1 file changed with 83 insertions and 86 deletions:
0 comments (0 inline, 0 general)
gpl-lgpl.tex
Show inline comments
...
 
@@ -3492,279 +3492,276 @@ contributor, it will already have granted a patent sublicense anyway, and so
 
it need not do anything further to comply with the third paragraph.)
 

	
 
Admittedly, public disclosure of CCS is not necessarily required in by other
 
sections of the GPL, and the FSF in drafting GPLv3 did not necessarily wish
 
to impose a general requirement to make source code available to all, which
 
has never been a GPL condition.  However, many vendors who produce products
 
that include copylefted software, and who most likely to be affected by the
 
downstream shielding provision, lobbied for the addition of the source code
 
availability option, so it remains.
 

	
 
Meanwhile, two specific alternatives to the source code availability option
 
are also available. The distributor may comply by disclaiming the patent
 
license it has been granted for the conveyed work, or by arranging to extend
 
the patent license to downstream recipients\footnote{The latter option, if
 
  chosen, must be done ``in a manner consistent with the requirements of this
 
  License''; for example, it is unavailable if extension of the patent
 
  license would result in a violation of GPLv3~\S 12.}.  The GPL is intended
 
to permit private distribution as well as public distribution, and the
 
addition of these options ensures that this remains the case, even though it
 
remains likely that distributors in this situation will usually choose the
 
source code availability option.
 

	
 
Note that GPLv3~\S11\P5 is activated only if the CCS is not already otherwise
 
publicly available.  (Most often it will, in fact, already be available on
 
some network server operated by a third party.)  Even if it is not already
 
available, the option to ``cause the Corresponding Source to be so
 
available'' can then be satisfied by verifying that a third party has acted
 
to make it available.  That is to say, the affected distributor need not
 
itself host the CCS to take advantage of the source code availability option.
 
This subtlety may help the distributor avoid certain peculiar assumptions of
 
liability.
 

	
 
Note that GPLv3~\S11\P6--7 are designed to stop distributors from colluding with
 
third parties to offer selective patent protection.  GPLv3 is designed to
 
ensure that all users receive the same rights; arrangements that circumvent
 
this make a mockery of free software, and we must do everything in our power
 
to stop them.
 

	
 
First, GPLv3~\S11\P6 states that any license that protects some recipients of
 
GPLed software must be extended to all recipients of the software.  
 
If conveyors arrange to provide patent
 
protection to some of the people who get the software from you, that
 
protection is automatically extended to everyone who receives the software,
 
no matter how they get it. 
 

	
 
Second, GPLv3~\S11\P7
 
prohibit anyone who made such an agreement from distributing software
 
released under GPLv3.    Conveyors are prohibited from
 
distributing software under GPLv3 if the conveyor makes an agreement of that
 
nature in the future.
 

	
 
The date in GPLv3~\S11\P7 likely seems arbitrary to those who did not follow
 
the GPLv3 drafting process.  This issue was hotly debated during the drafting of
 
GPLv3, but ultimately one specific deal of this type --- a deal between Microsoft
 
and Novell for Microsoft to provide so-called ``coupons'' to Microsoft customers to redeem
 
for copies of Novell's GNU/Linux distribution with a Microsoft patent license -- was
 
designed to be excluded.
 

	
 
The main reason for this was a tactical decision by the FSF.  FSF believed they can do more to
 
protect the community by allowing Novell to use software under GPLv3
 
than by forbidding it to do so.  This is because of
 
paragraph 6 of section 11 (corresponding to paragraph 4 in Draft 3).
 
It will apply, under the Microsoft/Novell deal, because of the coupons
 
that Microsoft has acquired that essentially commit it to participate
 
in the distribution of the Novell SLES GNU/Linux system.
 

	
 
The FSF also gave a secondary reason:  to avoid affecting other kinds of agreements for
 
other kinds of activities.  While GPLv3 sought to 
 
distinguish pernicious deals of the Microsoft/Novell type from
 
business conduct that is not particularly harmful, the FSF also did not
 
assume success in that drafting, and thus there remained some risk that other
 
unchangeable past agreements could fall within the  scope of GPLv3~\S11\P7.
 
In future deals, distributors engaging in ordinary business practices
 
can structure the agreements so that they do not fall under GPLv3~\S11\P7.
 

	
 
\section{GPLv3~\S12: Familiar as GPLv2~\S7}
 

	
 
GPLv2~\S12 remains almost completely unchanged from the text that appears
 
GPLv2~\S7.  This is an important provision that ensures a catch-all to ensure
 
that nothing ``surprising'' interferes with the continued conveyance safely
 
under copyleft.
 

	
 
The wording in the first sentence of GPLv3~\S12 has been revised slightly to
 
clarify that an agreement -- such as a litigation settlement agreement or a
 
patent license agreement -- is one of the ways in which conditions may be
 
``imposed'' on a GPL licensee that may contradict the conditions of the GPL,
 
but which do not excuse the licensee from compliance with those conditions.
 
This change codifies the historical interpretation of GPLv2.
 

	
 
GPLv3 removed the limited severability clause of GPLv2~\S7 as a
 
matter of tactical judgment, believing that this is the best way to ensure
 
that all provisions of the GPL will be upheld in court. GPLv3 also removed
 
the final sentence of GPLv2 section 7, which the FSF consider to be unnecessary.
 

	
 
\section{GPLv3~\S13: The Great Affero Compromise}
 

	
 
The main purpose of clause 7b4 was to attain GPLv3 compatibility for the
 
additional condition of version 1 of the Affero GPL, with a view to
 
achieving compatibility for a future version, since version 1 was
 
incompatible with GPLv3.\footnote{Version 1 of the Affero GPL contains
 
its own copyleft clause, worded identically to that in GPLv2, which
 
conflicts with the copyleft clause in GPLv3.  The Affero GPL permits
 
relicensing under versions of the GPL later than version 2, but only if
 
the later version ``includes terms and conditions substantially
 
equivalent to those of this license'' (Affero GPL, version 1, section
 
9). The Affero license was written with the expectation that its
 
The Affero GPL was written with the expectation that its
 
additional requirement would be incorporated into the terms of GPLv3
 
itself, rather than being placeable on parts added to a covered work
 
through the mechanism of section 7 of GPLv3.}  However, we wrote the
 
clause broadly enough to cover a range of other possible terms that
 
would differ from the Affero condition in their details. Draft 3 no
 
longer pursues the more ambitious goal of allowing compatibility for a
 
whole category of Affero-like terms.  In place of 7b4, we have added a
 
new section 13 that simply permits GPLv3-covered code to be linked with
 
code covered by the forthcoming version 2 of the Affero GPL.
 

	
 
We have made this decision in the face of irreconcilable views from
 
different parts of our community.  While we had known that many
 
commercial users of free software were opposed to the inclusion of a
 
mandatory Affero-like requirement in the body of GPLv3 itself, we were
 
surprised at their opposition to its availability through section 7.
 
Free software vendors allied to these users joined in their objections,
 
as did a number of free software developers arguing on ethical as well
 
as practical grounds.
 

	
 
Some of this hostility seemed to be based on a misapprehension that
 
Affero-like terms placed on part of a covered work would somehow extend
 
to the whole of the work.\footnote{It is possible that the presence of
 
the GPLv2-derived copyleft clause in the existing Affero GPL contributed
 
to this misunderstanding.}  Our explanations to the contrary did little
 
to satisfy these critics; their objections to 7b4 instead evolved into a
 
broader indictment of the additional requirements scheme of section 7.
 
It was clear, however, that much of the concern about 7b4 stemmed from
 
its general formulation.  Many were alarmed at the prospect of GPLv3
 
compatibility for numerous Affero-like licensing conditions,
 
unpredictable in their details but potentially having significant
 
commercial consequences.
 

	
 
On the other hand, many developers, otherwise sympathetic to the policy
 
goals of the Affero GPL, have objected to the form of the additional
 
requirement in that license.  These developers were generally
 
disappointed with our decision to allow Affero-like terms through
 
section 7, rather than adopt a condition for GPLv3.  Echoing their
 
concerns about the Affero GPL itself, they found fault with the wording
 
of the section 7 clause in both of the earlier drafts.  We drafted 7b4
 
at a higher level than its Draft 1 counterpart based in part on comments
 
from these developers. They considered the Draft 1 clause too closely
 
tied to the Affero mechanism of preserving functioning facilities for
 
downloading source, which they found too restrictive of the right of
 
modification.  The 7b4 rewording did not satisfy them, however. They
 
objected to its limitation to terms requiring compliance by network
 
transmission of source, and to the technically imprecise or inaccurate
 
use of the phrase ``same network session.''
 

	
 
We have concluded that any redrafting of the 7b4 clause would fail to
 
satisfy the concerns of both sets of its critics.  The first group
 
maintains that GPLv3 should do nothing about the problem of public
 
use. The second group would prefer for GPLv3 itself to have an
 
Affero-like condition, but that seems to us too drastic. By permitting
 
GPLv3-covered code to be linked with code covered by version 2 of the
 
Affero GPL, the new section 13 honors our original commitment to
 
achieving GPL compatibility for the Affero license.
 

	
 
Version 2 of the Affero GPL is not yet published.  We will work with
 
Affero, Inc., and with all other interested members of our community, to
 
complete the drafting of this license following the release of Draft 3,
 
with a goal of having a final version available by the time of our
 
adoption of the final version of GPLv3.  We hope the new Affero license
 
will satisfy those developers who are concerned about the issue of
 
public use of unconveyed versions but who have concerns about the
 
narrowness of the condition in the existing Affero license.
 

	
 
As the second sentence in section 13 indicates, when a combined work is
 
made by linking GPLv3-covered code with Affero-covered code, the
 
copyleft on one part will not extend to the other part.\footnote{The
 
plan is that the additional requirement of the new Affero license will
 
state a reciprocal limitation.} That is to say, in such combinations,
 
the Affero requirement will apply only to the part that was brought into
 
the combination under the Affero license.  Those who receive such a
 
combination and do not wish to use code under the Affero requirement may
 
remove the Affero-covered portion of the combination.
 

	
 
Those who criticize the permission to link with code under the Affero
 
itself.  Many software freedom advocates, including some authors of this
 
tutorial, advocated heavily for that, and fully expected it to happen.
 

	
 
The FSF, however, chose not to include the Affero clause in GPLv3, due to
 
what it called  ``irreconcilable views from
 
different parts of the community''.  Many
 
commercial users of Free Software were opposed to the inclusion of a
 
mandatory Affero-like requirement in the body of GPLv3 itself.  In fact, some
 
wealthier companies even threatened to permanently fund forks of many FSF
 
copyrighted-programs under GPLv2 if the Affero clause appeared in GPLv3.
 

	
 
Meanwhile, there was disagreement even among copyleft enthusiasts about the
 
importance of the provision.  A coalition never formed, and ultimately the
 
more powerful interest implicitly allied with the companies who deeply opposed
 
the Affero clause such that the FSF felt the Affero clause would need its own
 
license, but one compatible with GPLv3. 
 

	
 
GPLv3~\S13 makes GPLv3 compatible with the AGPLv3, so that at least code can
 
be shared between AGPLv3'd and GPLv3' projects, even if the Affero clause
 
does not automatically apply to all GPLv3'd works.
 

	
 
%FIXME-LATER:  no time to do this justice, will come back later, instead the
 
%above.
 

	
 
%% Some of this hostility seemed to be based on a misapprehension that
 
%% Affero-like terms placed on part of a covered work would somehow extend
 
%% to the whole of the work.\footnote{It is possible that the presence of
 
%% the GPLv2-derived copyleft clause in the existing Affero GPL contributed
 
%% to this misunderstanding.}  Our explanations to the contrary did little
 
%% to satisfy these critics; their objections to 7b4 instead evolved into a
 
%% broader indictment of the additional requirements scheme of section 7.
 
%% It was clear, however, that much of the concern about 7b4 stemmed from
 
%% its general formulation.  Many were alarmed at the prospect of GPLv3
 
%% compatibility for numerous Affero-like licensing conditions,
 
%% unpredictable in their details but potentially having significant
 
%% commercial consequences.
 

	
 
%% On the other hand, many developers, otherwise sympathetic to the policy
 
%% goals of the Affero GPL, have objected to the form of the additional
 
%% requirement in that license.  These developers were generally
 
%% disappointed with our decision to allow Affero-like terms through
 
%% section 7, rather than adopt a condition for GPLv3.  Echoing their
 
%% concerns about the Affero GPL itself, they found fault with the wording
 
%% of the section 7 clause in both of the earlier drafts.  We drafted 7b4
 
%% at a higher level than its Draft 1 counterpart based in part on comments
 
%% from these developers. They considered the Draft 1 clause too closely
 
%% tied to the Affero mechanism of preserving functioning facilities for
 
%% downloading source, which they found too restrictive of the right of
 
%% modification.  The 7b4 rewording did not satisfy them, however. They
 
%% objected to its limitation to terms requiring compliance by network
 
%% transmission of source, and to the technically imprecise or inaccurate
 
%% use of the phrase ``same network session.''
 

	
 
%% We have concluded that any redrafting of the 7b4 clause would fail to
 
%% satisfy the concerns of both sets of its critics.  The first group
 
%% maintains that GPLv3 should do nothing about the problem of public
 
%% use. The second group would prefer for GPLv3 itself to have an
 
%% Affero-like condition, but that seems to us too drastic. By permitting
 
%% GPLv3-covered code to be linked with code covered by version 2 of the
 
%% Affero GPL, the new section 13 honors our original commitment to
 
%% achieving GPL compatibility for the Affero license.
 

	
 
%% Version 2 of the Affero GPL is not yet published.  We will work with
 
%% Affero, Inc., and with all other interested members of our community, to
 
%% complete the drafting of this license following the release of Draft 3,
 
%% with a goal of having a final version available by the time of our
 
%% adoption of the final version of GPLv3.  We hope the new Affero license
 
%% will satisfy those developers who are concerned about the issue of
 
%% public use of unconveyed versions but who have concerns about the
 
%% narrowness of the condition in the existing Affero license.
 

	
 
%% As the second sentence in section 13 indicates, when a combined work is
 
%% made by linking GPLv3-covered code with Affero-covered code, the
 
%% copyleft on one part will not extend to the other part.\footnote{The
 
%% plan is that the additional requirement of the new Affero license will
 
%% state a reciprocal limitation.} That is to say, in such combinations,
 
%% the Affero requirement will apply only to the part that was brought into
 
%% the combination under the Affero license.  Those who receive such a
 
%% combination and do not wish to use code under the Affero requirement may
 
%% remove the Affero-covered portion of the combination.
 

	
 
Meanwhile, those who criticize the permission to link with code under the Affero
 
GPL should recognize that most other free software licenses also permit
 
such linking. 
 

	
 
\section{GPLv3~\S14: So, When's GPLv4?}
 
\label{GPLv3s14}
 

	
 
% FIXME Say more
 

	
 
No substantive change has been made in section 14. The wording of the section
 
has been revised slightly to make it clearer.
 

	
 
% FIXME; proxy
 

	
 
\section{GPLv3~\S15--17: Warranty Disclaimers and Liability Limitation}
 

	
 
No substantive changes have been made in sections 15 and 16.
 

	
 
% FIXME: more, plus 17
 

	
 
% FIXME: Section header needed here about choice of law.
 

	
 
% FIXME: reword into tutorial
 

	
 
Some have asked us to address the difficulties of internationalization
 
by including, or permitting the inclusion of, a choice of law
 
provision.  We maintain that this is the wrong approach.  Free
 
software licenses should not contain choice of law clauses, for both
 
legal and pragmatic reasons.  Choice of law clauses are creatures of
 
contract, but the substantive rights granted by the GPL are defined
 
under applicable local copyright law. Contractual free software
 
licenses can operate only to diminish these rights.  Choice of law
 
clauses also raise complex questions of interpretation when works of
 
software are created by combination and extension.  There is also the
 
real danger that a choice of law clause will specify a jurisdiction
 
that is hostile to free software principles.
 

	
 
% FIXME: reword into tutorial, \ref to section 7.
 

	
 
Our revised version of section 7 makes explicit our view that the
 
inclusion of a choice of law clause by a licensee is the imposition of
 
an additional requirement in violation of the GPL.  Moreover, if a
 
program author or copyright holder purports to supplement the GPL with
 
a choice of law clause, section 7 now permits any licensee to remove
 
that clause.
 

	
 

	
 
% FIXME: does this need to be a section, describing how it was out then in
 
% then out then in? :)
 

	
 
We have removed from this draft the appended section on ``How to Apply These
 
Terms to Your New Programs.'' For brevity, the license document can instead
 
refer to a web page containing these instructions as a separate document.
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{The Lesser GPL}
 

	
 
As we have seen in our consideration of the GPL, its text is specifically
 
designed to cover all possible derivative works under copyright law. Our
 
goal in designing GPL was to make sure that any derivative work of GPL'd
 
software was itself released under GPL when distributed. Reaching as far
 
as copyright law will allow is the most direct way to reach that goal.
 

	
 
However, while the strategic goal is to bring as much Free Software
 
into the world as possible, particular tactical considerations
 
regarding software freedom dictate different means. Extending the
 
copyleft effect as far as copyright law allows is not always the most
 
prudent course in reaching the goal. In particular situations, even
 
those of us with the goal of building a world where all published
 
software is Free Software realize that full copyleft does not best
 
serve us. The GNU Lesser General Public License (``GNU LGPL'') was
 
designed as a solution for such situations.
 

	
 
\section{The First LGPL'd Program}
 

	
 
The first example that FSF encountered where such altered tactics were
 
needed was when work began on the GNU C Library. The GNU C Library would
 
become (and today, now is) a drop-in replacement for existing C libraries.
 
On a Unix-like operating system, C is the lingua franca and the C library
 
is an essential component for all programs. It is extremely difficult to
 
construct a program that will run with ease on a Unix-like operating
 
system without making use of services provided by the C library --- even
 
if the program is written in a language other than C\@. Effectively, all
 
user application programs that run on any modern Unix-like system must
 
make use of the C library.
 

	
 
By the time work began on the GNU implementation of the C libraries, there
 
were already many C libraries in existence from a variety of vendors.
 
Every proprietary Unix vendor had one, and many third parties produced
 
smaller versions for special purpose use. However, our goal was to create
 
a C library that would provide equivalent functionality to these other C
 
libraries on a Free Software operating system (which in fact happens today
 
on modern GNU/Linux systems, which all use the GNU C Library).
 

	
 
Unlike existing GNU application software, however, the licensing
 
implications of releasing the GNU C Library (``glibc'') under GPL were
 
somewhat different. Applications released under GPL would never
0 comments (0 inline, 0 general)