Changeset - dc0714a3ef85
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 9 years ago 2015-02-02 14:56:03
bkuhn@ebb.org
Formatting change: use itemize here instead.
1 file changed with 8 insertions and 2 deletions:
0 comments (0 inline, 0 general)
gpl-lgpl.tex
Show inline comments
...
 
@@ -2940,1543 +2940,1549 @@ enforce or invoke rights arising under anticircumvention law.
 
These disclaimers by each licensor of any intention to use GPL'd software to
 
stringently control access to other copyrighted works should effectively
 
prevent any private or public parties from invoking DMCA-like laws against
 
users who escape technical restriction measures implemented by GPL'd
 
software.
 

	
 
\section{GPLv3~\S4: Verbatim Copying}
 
\label{GPLv3s4}
 

	
 
GPLv3~\S4 is a revision of GPLv2~\S1 (as discussed in \S~\ref{GPLv2s1} of
 
this tutorial).   There are almost no changes to this section from the
 
GPLv2~\S1, other than to use the new defined terms.
 

	
 
The only notable change, of ``a fee'' to ``any price or no price'', is in the
 
first sentence of GPLv3\S4\P2.  The GPLv2\S1\P1 means that the GPL permits
 
one to charge money for the distribution of software.  Despite efforts by
 
copyleft advocates to explain this in GPLv2 itself and in other documents,
 
there are evidently some people who still believe that GPLv2 allows charging
 
for services but not for selling copies of software and/or that the GPL
 
requires downloads to be gratis.  Perhaps this is because GPLv2 referred to
 
charging a ``fee''; the term ``fee'' is generally used in connection with
 
services.
 

	
 
GPLv2's wording also referred to ``the physical act of transferring.''  The
 
intention was to distinguish charging for transfers from attempts to impose
 
licensing fees on all third parties.  ``Physical'' might be read, however, as
 
suggesting ``distribution in a physical medium only''.
 

	
 
To address these two issues, GPLv3 says ``price'' in place of ``fee,'' and
 
removes the term ``physical.''
 

	
 
GPLv3~\S4 has also been revised from its corresponding section in GPLv2 in
 
light of the GPLv3~\S7 (see \S~\ref{GPLv3s7} in this tutorial for more).
 
Specifically, a distributor of verbatim copies of the program's source code
 
must obey any existing additional terms that apply to parts of the program
 
pursuant to GPLv3~\S7.  In addition, the distributor is required to keep
 
intact all license notices, including notices of such additional terms.
 

	
 
Finally, there is no harm in explicitly pointing out what ought to be
 
obvious: that those who convey GPL-covered software may offer commercial
 
services for the support of that software.
 

	
 
\section{GPLv3~\S5: Modified Source}
 
\label{GPLv3s5}
 

	
 
GPLv3\S5 is the rewrite of GPLv2\S2, which was discussed in \S~\ref{GPLv2s2}
 
of this tutorial.  This section discusses the changes found in GPLv3\S5
 
compared to GPLv2\S2.
 

	
 
GPLv3\S5(a) still requires modified versions be marked with ``relevant
 
date'', but no longer says ``the date of any change''.  The best practice is
 
to include the date of the latest and/or most significant changes and who
 
made those.  Of course, compared to its GPLv2\S2(a), GPLv3\S5(a) slightly
 
relaxes the requirements regarding notice of changes to the program.  In
 
particular, the modified files themselves need no longer be marked.  This
 
reduces administrative burdens for developers of modified versions of GPL'd
 
software.
 

	
 
GPLv3\S5(b) is a new but simple provision. GPLv3\S5(b)  requires that the
 
license text itself must be unmodified (except as permitted by GPLv3\S7; see
 
\S~\ref{GPLv3s7} in this tutorial).  Furthermore, it  removes any perceived
 
conflict between the words ``keep intact all notices'' in GPLv3\S4, since
 
operating under GPLv3\S5 still includes all the requirements of GPLv3\S4 by
 
reference.
 

	
 
GPLv3\S5(c) is the primary source-code-related copyleft provision of GPL. (The
 
object-code-related copyleft provisions are in GPLv3\S6, discussed in
 
\S~\ref{GPLv3s6} of this tutorial).  Compared to GPLv2\S2(b), GPLv3\S5(c)
 
states that the GPL applies to the whole of the work.  Such was stated
 
already in GPLv2\S2(b), in ``in whole or in part'', but this simplified
 
wording makes it clear it applies to the entire covered work.
 

	
 
Another change in GPLv3\S5(c) is the removal of the
 
words ``at no charge,'' which was often is misunderstood upon na\"{i}ve
 
reading of in GPLv2\S(b) (as discussed in \S~\ref{GPLv2s2-at-no-charge} of this
 
tutorial).
 

	
 
%  FIXME-LATER: Write up something on 5d, and related it to Appropriate Legal Notices.
 

	
 

	
 
Note that of GPLv2~\S2's penultimate and ante-penultimate paragraphs are now
 
handled adequately by the definitions in GPLv3\S0 and as such, have no direct
 
analogs in GPLv3.
 

	
 
GPLv2~\S2's final paragraph, however, is reworded and expanded into the final
 
paragraph of GPLv3\S5, which now also covers issues related to copyright
 
compilations (but not compilations into object code --- that's in the next
 
section!).  The intent and scope is the same as was intended in GPLv2.
 

	
 
\section{GPLv3~\S6: Non-Source and Corresponding Source}
 
\label{GPLv3s6}
 

	
 
GPLv3~\S6 states the compliance obligations for distributing ``non-source
 
forms'' of a program (which means any form other than CCS).  As noted in \S~\ref{GPLv3s0}, ``object code'' in GPLv3
 
is defined broadly to mean any non-source version of a work, and thus
 
includes not only binaries or executables, but also obfuscated, minimized, compressed or otherwise
 
non-preferred forms for modification.  Thus, GPLv3~\S6 clarifies and revises GPLv2~\S3.
 
Indeed, GPLv3~\S6's CCS requirement under
 
closely parallels the provisions of \hyperref[GPLv2s3]{GPLv2~\S3}, with changes
 
designed to make compliant provisioning easier under contemporary
 
technological conditions.  Distributors of GPLv3'd
 
object code must provide access to the corresponding source code, in one of
 
four specified ways.
 

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

	
 
GPLv3~\S6(a--b) now apply specifically to distribution of object code in a
 
physical product.  Physical products include embedded systems, as well as
 
physical software distribution media such as CDs.  As in GPLv2~\S3 (discussed
 
in \S~\ref{GPLv2s3} of this tutorial), the distribution of object code may
 
either be accompanied by the machine-readable source code, or it may be
 
accompanied by a valid written offer to provide the machine-readable source
 
code.  However, unlike in GPLv2, that offer cannot be exercised by any third
 
party; rather, only those ``who possess the object code'' can exercise
 
the offer.  (Note that this is a substantial narrowing of requirements of
 
offer fulfillment, and is a wonderful counterexample to dispute claims that
 
the GPLv3 has more requirements than GPLv2.)
 

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

	
 
GPLv3~\S6(b) further 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.  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.
 

	
 
GPLv3~\S6(a--b) clarifies that the medium for software interchange on which
 
the machine-readable source code is provided must be a durable physical
 
medium.  GPLv3~\S6(b)(2), however, permits a distributor to instead offer to
 
provide source code from a network server instead, which is yet another
 
example GPLv3 looser in its requirements than GPLv2 (see
 
\S~\ref{GPLv2s3-medium-customarily} for details).
 

	
 
% FIXME-LATER: more information about source provision, cost of physically
 
% performing, reasonable fees, medium customary clearly being said durable
 
% connecting back to previous text
 

	
 
GPLv3\S6(c) gives narrower permission than GPLv2\S3(c).  The ``pass along''
 
option for GPLv3\S6(c)(1) offers is now available only for individual
 
distribution of object code; moreover, such individual distribution can occur
 
only ``occasionally and noncommercially.''  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.
 

	
 
%FIXME-LATER: tie back to the discussion of the occasional offer pass along
 
%             stuff in GPLv2 this tutorial.
 

	
 
GPLv3~\S6(d) revises and improves GPLv2~\S3's final paragraph.  When object
 
code is provided by offering access to copy the code from a designated place
 
(such as by enabling electronic access to a network server), the distributor
 
must merely offer equivalent access to copy the source code ``in the same way
 
through the same place''.  This wording also 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.  Thus,
 
the obligation remains on the party distributing object code to point
 
prominently (``next to'' the object code download) to the third-party source
 
code provisioning server, and to ensure that this third-party server remains
 
in operation for required period.  This codifies formally the typical
 
historical interpretation of GPLv2.
 

	
 
% FIXME-LATER: perhaps in enforcement section, but maybe here, note about
 
% ``slow down'' on source downloads being a compliance problem. 
 

	
 
Furthermore, under GPLv3~\S6(d), distributors may charge for the conveyed
 
object code; however, those who pay to obtain the object code must be given
 
equivalent and gratis access to obtain the CCS.  (If distributors convey the
 
object code gratis, distributors must likewise make CCS available without
 
charge.)  Those who do not obtain the object code from that distributors
 
(perhaps because they choose not to pay the fee for object code) are outside
 
the scope of the provision; distributors are under no specific obligation to
 
give CCS to someone who has not purchased an object code download under
 
GPLv3~\S6(d).  (Note: this does not change nor impact any obligations under
 
GPLv3~\S6(b)(2); GPLv3~\S6(d) is a wholly different provision.)
 

	
 
\subsection{GPLv3~\S6(e): Peer-to-Peer Sharing Networks}
 

	
 
GPLv3~\S6(e) allows provision of CCS via another server when the binary or
 
other non-source form is distributed by peer-to-peer protocols such as
 
BitTorrent.  Here the requirement is only that each peer be effectively
 
informed of the location of the source code on a server as above.
 

	
 
GPLv3 really did require this addition, even though it adds  complexity to
 
a key section of GPL\@.  In particular,
 
Decentralized peer-to-peer file sharing present a challenge
 
to the unidirectional view of distribution that is implicit in GPLv2 and
 
initial drafts of GPLv3.  Identification of an upstream/downstream link in
 
BitTorrent distribution is neither straightforward nor reasonable; such
 
distribution is multidirectional, cooperative and (somewhat) anonymous.  In peer-to-peer
 
distribution systems, participants act both as transmitters and recipients of
 
blocks of a particular file, but they perceive the experience merely as users
 
and receivers, and not as distributors in any conventional sense.  At any
 
given moment of time, most peers will not have the complete file.
 

	
 
Meanwhile, GPLv3~\S6(d) permits distribution of a work in object code form
 
over a network, provided that the distributor offers equivalent access to
 
copy the Corresponding Source Code ``in the same way through the same
 
place''.  This wording might be interpreted to permit peer-to-peer
 
distribution of binaries \textit{if} they are packaged together with the CCS,
 
but such packaging is impractical, for at least three reasons.  First, even if
 
the CCS is packaged with the object code, it will only be available to a
 
non-seeding peer at the end of the distribution process, but the peer will
 
already have been providing parts of the binary to others in the network.
 
Second, in practice, peer-to-peer forms of transmission are poorly suited
 
means for distributing CCS.  In large distributions, packaging CCS with the
 
object code may result in a substantial increase in file size and
 
transmission time.  Third, in current practice, CCS packages themselves tend
 
\textit{not} to be transmitted through BitTorrent --- owing to reduced demand
 
-- thus, there generally will be too few participants downloading the same
 
source package at the same time to enable effective seeding and distribution.
 

	
 
GPLv3~\S6(e) addresses these issues.  If a licensee conveys such a work of
 
object code using peer-to-peer transmission, that licensee is in compliance
 
with GPLv3~\S6 if the licensee informs other peers where the object code and
 
its CCS are publicly available at no charge under subsection GPLv3~\S6(d).
 
The CCS therefore need not be provided through the peer-to-peer system that
 
was used for providing the binary.
 

	
 
Second, GPLv3\S9 also clarifies that ancillary propagation of a covered work
 
that occurs as part of the process of peer-to-peer file transmission does not
 
require acceptance, just as mere receipt and execution of the Program does
 
not require acceptance.  Such ancillary propagation is permitted without
 
limitation or further obligation.
 

	
 
% FIXME-LATER: Would be nice to explain much more about interactions between
 
% the various options of GPLv3~\S6(a-e), which might all be in play at once!
 

	
 
\subsection{User Products, Installation Information and Device Lock-Down}
 

	
 
As discussed in \S~\ref{GPLv3-drm} of this tutorial, GPLv3 seeks to thwart
 
technical measures such as signature checks in hardware to prevent
 
modification of GPL'd software on a device.
 

	
 
To address this issue, GPLv3~\S6 requires that parties distributing object
 
code provide recipients with the source code through certain means.  When
 
those distributors pass on the CCS, they are also required to pass on any
 
information or data necessary to install modified software on the particular
 
device that included it.  (This strategy is not unlike that used in LGPLv2.1
 
to enable users to link proprietary programs to modified libraries.)
 

	
 
% FIXME-LATER: LGPLv2.1 section should talk about this explicitly and this
 
%              should be a forward reference here
 

	
 
\subsubsection{User Products}
 

	
 
\label{user-product}
 

	
 
The scope of these requirements is narrow.  GPLv3~\S6 introduces the concept
 
of a ``User Product'', which includes devices that are sold for personal,
 
family, or household use.  Distributors are only required to provide
 
Installation Information when they convey object code in a User Product.
 

	
 
In brief, the right to convey object code in a defined class of ``User
 
Products,'' under certain circumstances, depends on providing whatever information
 
is required to enable a recipient to replace the object code with a functioning
 
modified version.
 

	
 
This was a compromise that was difficult for the FSF to agree to during the
 
GPLv3 drafting process.  However, companies and governments that use
 
specialized or enterprise-level computer facilities reported that they
 
actually \textit{want} their systems not to be under their own control.
 
Rather than agreeing to this as a concession, or bowing to pressure, they ask
 
for this as a \textit{preference}.  It is not clear that the GPL should interfere
 
here, since the main problem lies elsewhere.
 

	
 
While imposing technical barriers to modification is wrong regardless of
 
circumstances, the areas where restricted devices are of the greatest
 
practical concern today fall within the User Product definition.  Most, if
 
not all, technically-restricted devices running GPL-covered programs are
 
consumer electronics devices.  Moreover, the disparity in clout between the
 
manufacturers and these users makes it difficult for the users to reject
 
technical restrictions through their weak and unorganized market power.  Even
 
limited to User Products, this provision addresses the fundamental problem.
 

	
 
% FIXME-LATER: link \href to USC 2301
 

	
 
The core of the User Product definition is a subdefinition of ``consumer
 
product'' adapted from the Magnuson-Moss Warranty Act, a federal
 
consumer protection law in the USA found in 15~USC~\S2301: ``any tangible
 
personal property which is normally used for personal, family, or household
 
purposes.''  The USA has had three decades of experience of liberal
 
judicial and administrative interpretation of this definition in a manner
 
favorable to consumer rights.\footnote{The Magnuson-Moss consumer product
 
  definition itself has been influential in the USA and Canada, having been
 
  adopted in several state and provincial consumer protection laws.}
 
Ideally, this body of interpretation\footnote{The FSF, however, was very
 
  clear that incorporation of such legal interpretation was in no way
 
  intended to work as a general choice of USA law for GPLv3.} will guide
 
interpretation of the consumer product subdefinition in GPLv3~\S6, and this
 
will hopefully provide a degree of legal certainty advantageous to device
 
manufacturers and downstream licensees alike.
 

	
 
One well-established interpretive principle under Magnuson-Moss is that
 
ambiguities are resolved in favor of coverage.  That is, in cases where
 
it is not clear whether a product falls under the definition of consumer
 
product, the product will be treated as a consumer product.\footnote{16
 
CFR~\S\ 700.1(a); \textit{McFadden v.~Dryvit Systems, Inc.}, 54
 
UCC~Rep.~Serv.2d 934 (D.~Ore.~2004).}  Moreover, for a given product,
 
``normally used'' is understood to refer to the typical use of that type
 
of product, rather than a particular use by a particular buyer.
 
Products that are commonly used for personal as well as commercial
 
purposes are consumer products, even if the person invoking rights is a
 
commercial entity intending to use the product for commercial
 
purposes.\footnote{16 CFR \S \ 700.1(a).  Numerous court decisions
 
interpreting Magnuson-Moss are in accord; see, e.g., \textit{Stroebner
 
Motors, Inc.~v.~Automobili Lamborghini S.p.A.}, 459 F.~Supp.2d 1028,
 
1033 (D.~Hawaii 2006).}  Even a small amount of ``normal'' personal use
 
is enough to cause an entire product line to be treated as a consumer
 
product under Magnuson-Moss.\footnote{\textit{Tandy Corp.~v.~Marymac
 
Industries, Inc.}, 213 U.S.P.Q.~702 (S.D.~Tex.~1981). In this case, the
 
court concluded that TRS-80 microcomputers were consumer products, where
 
such computers were designed and advertised for a variety of users,
 
including small businesses and schools, and had only recently been
 
promoted for use in the home.}
 

	
 
However, Magnuson-Moss is not a perfect fit because in the area of components
 
of dwellings, the settled interpretation under Magnuson-Moss is under-inclusive.
 
Depending on how such components are manufactured or sold, they may or may
 
not be considered Magnuson-Moss consumer products.\footnote{Building
 
  materials that are purchased directly by a consumer from a retailer, for
 
  improving or modifying an existing dwelling, are consumer products under
 
  Magnuson-Moss, but building materials that are integral component parts of
 
  the structure of a dwelling at the time that the consumer buys the dwelling
 
  are not consumer products. 16 C.F.R.~\S\S~700.1(c)--(f); Federal Trade
 
  Commission, Final Action Concerning Review of Interpretations of
 
  Magnuson-Moss Warranty Act, 64 Fed.~Reg.~19,700 (April 22, 1999); see also,
 
  e.g., \textit{McFadden}, 54 U.C.C.~Rep.~Serv.2d at 934.}  Therefore, GPLv3
 
defines User Products as a superset of consumer products that also includes
 
``anything designed or sold for incorporation into a dwelling.''
 

	
 
Thus, the three sentences in the center of GPLv3's User Product definition
 
encapsulate the judicial and administrative principles established over the
 
past three decades in the USA concerning the Magnuson-Moss consumer product
 
definition.  First, it states that doubtful cases are resolved in favor of
 
coverage under the definition.  Second, it indicates that the words ``normally
 
used'' in the consumer product definition refer to a typical or common use of
 
a class of product, and not the status of a particular user or expected or
 
actual uses by a particular user.  Third, it clearly states that the
 
existence of substantial non-consumer uses of a product does not negate a
 
determination that it is a consumer product, unless such non-consumer uses
 
represent the only significant mode of use of that product.
 

	
 
It should be clear from these added sentences that it is the general mode of
 
use of a product that determines objectively whether or not it is a consumer
 
product.  One could not escape the effects of the User Products provisions by
 
labeling what is demonstrably a consumer product in ways that suggest it is
 
``for professionals'', for example.
 

	
 

	
 
\subsubsection{Installation Information}
 

	
 
\label{GPLv3-installation-information}
 

	
 
With the User Products definition complete, the ``Installation Information''
 
definition uses that to define what those receiving object code inside a User
 
Product must receive.
 

	
 
Installation Information is information that is ``required to install and
 
execute modified versions of a covered work \dots from a modified version of
 
its'' CCS, in the same User Product for which the covered work is conveyed.
 
GPLv3 provides guidance concerning how much information must be provided: it
 
``must suffice to ensure that the continued functioning of the modified
 
object code is in no case prevented or interfered with solely because
 
modification has been made.''  For example, the information provided would be
 
insufficient if it enabled a modified version to run only in a disabled
 
fashion, solely because of the fact of modification (regardless of the actual
 
nature of the modification).  The information need not consist of
 
cryptographic keys; Installation Information may be ``any methods,
 
procedures, authorization keys, or other information''.
 

	
 
Note that GPLv3 does not define ``continued functioning'' further.  However,
 
GPLv3 does provide some additional guidance concerning the scope of
 
GPLv3-compliant action or inaction that distributors of
 
technically-restricted User Products can take with respect to a downstream
 
recipient who replaces the conveyed object code with a modified version.
 
First of all, GPLv3 makes clear that GPLv3 implies no obligation ``to
 
continue to provide support service, warranty, or updates'' for such a work.
 

	
 
Second, most technically-restricted User Products are designed to communicate
 
across networks.  It is important for both users and network providers to
 
know when denial of network access to devices running modified versions
 
becomes a GPL violation.  GPLv3 permits denial of access in two cases: ``when
 
the modification itself materially and adversely affects the operation of the
 
network,'' and when the modification itself ``violates the rules and
 
protocols for communication across the network''.  The second case is
 
deliberately drawn in general terms, and it serves as a foundation for
 
reasonable enforcement policies that respect recipients' right to modify
 
while recognizing the legitimate interests of network providers.
 

	
 
Note that GPLv3 permits the practice of conveying object code in a mode not
 
practically susceptible to modification by any party, such as code burned in
 
ROM or embedded in silicon.  The goal of the Installation Information
 
requirement is to ensure the downstream licensee receives the real right to
 
modify when the device manufacturer or some other party retains that right.
 
Accordingly, GPLv3\S6's ante-penultimate paragraph states that the
 
requirement to provide Installation Information ``does not apply if neither
 
you nor any third party retains the ability to install modified object code
 
on the User Product''.
 

	
 
Finally, GPLv3\S6 makes it clear that there is also no requirement to
 
provide warranty or support for the User Product itself.
 

	
 
\subsection{GPLv3~\S7: Additional Permissions}
 
\label{GPLv3s7}
 

	
 
The GPL is a statement of permissions, some of which have conditions.
 
Additional terms --- terms that supplement those of the GPL --- may come to be
 
placed on, or removed from, GPL-covered code in certain common ways.
 
Copyleft licensing theorists have generally called
 
 those added terms ``additional permissions'' if they grant
 
exceptions from the conditions of the GPL, and ``additional requirements'' if
 
they add conditions to the basic permissions of the GPL\@. The treatment of
 
additional permissions and additional requirements under GPLv3 is necessarily
 
asymmetrical, because they do not raise the same interpretive
 
issues; in particular, additional requirements, if allowed without careful
 
limitation, could transform a GPL'd program into a non-free one.
 

	
 
Due to the latter fear, historically,  GPLv2 did not permit any additional
 
requirements.  However, over time,
 
many copyright holders generally tolerated certain types of benign additional requirements
 
merely through a ``failure to enforce'' estoppel-esque scenario.  Therefore, GPLv3 allows
 
for some specific limited requirement variations that GPLv2 technically prohibits.
 

	
 
With these principles in the background, GPLv3~\S7  answers the following
 
questions: 
 
\begin{enumerate}
 
\item How does the presence of additional terms on all or part of a GPL'd program
 
affect users' rights?
 

	
 
\item When and how may a licensee add terms to code being
 
distributed under the GPL? 
 

	
 
\item When may a licensee remove additional terms?
 
\end{enumerate}
 

	
 
Additional permissions present the easier case.  Since the mid-1990s,
 
permissive exceptions often appeared alongside GPLv2 to allow combination
 
with certain non-free code.  Typically, downstream
 
stream recipients could remove those exceptions and operate under pure GPLv2.
 
Similarly, LGPLv2.1 is in essence a permissive variant of GPLv2,
 
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.
 

	
 
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, the FSF historically supplemented that policy with a structure of
 
exceptions for certain kinds of combinations.
 

	
 
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. 
 
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.
 

	
 
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
 
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, 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 a set enumerated in GPLv3\S7. There
 
are, of course, limits on the acceptable additional requirements, which 
 
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 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.
 

	
 
In general, the types of additional requirements were those terms in regular
 
use by other non-copyleft Free Software licenses that the FSF found
 
unobjectionable.  The specific details GPLv3's permitted additional
 
requirements hat GPLv3 are as follows:
 

	
 
\begin{enumerate}[label=7(\alph*):,ref=GPLv3s7\alph*]
 

	
 
\item This provision allows alternative ``disclaimer of warranty''
 
  forms. Copyright holders can disclaim warranty or limit liability
 
  differently from the terms as provided under GPLv3\S~\S15--16.  Drafters
 
  included this permission to advance the internationalization goals of
 
  GPLv3; international treaties lack adequate harmonization for laws
 
  regarding warranty and disclaimer.
 

	
 
\item This provision allows alternative requirements for preservation of
 
  appropriate legal notices.  GPLv3 permits additional requirements regarding
 
  preservation of legal notices, including on output from execution of
 
  covered works.  Preserved information can include information about the
 
  origins of the code or alterations of the code.
 

	
 
\item This provision allows prohibition of misrepresentation of original
 
  material.  The provision yields compatibility with non-copyleft Free
 
  Software licenses that require marking of modified versions in
 
  ``reasonable''ways which differ from GPL's own precise marking
 
  requirements.
 

	
 
\item This provision allows limitations on the use of names of licensor for
 
  publicity purposes.  This provision also yields additional compatibility
 
  with non-copyleft Free Software licenses that prohibit the use of the
 
  licensor's name on unmodified versions (or other prohibitions on
 
  advertising rights).  The third clause of the
 
  \href{http://opensource.org/licenses/BSD-3-Clause}{3-Clause BSD
 
  License}, for example, long considered de-facto compatible with GPLv2
 
    anyway, is via this clause unequivocally compatible with GPLv3.  However,
 
    \href{https://www.gnu.org/licenses/license-list.html#OriginalBSD}{this
 
      clause \textit{does not} make GPL compatible with the old BSD
 
      advertising clause} that the FSF
 
    \href{https://www.gnu.org/philosophy/bsd.html}{long ago identified as
 
      problematic}.
 
 
 
\item This provision clarifies that refusal to grant trademark rights for a
 
  GPLv3'd covered work remains compatible with GPLv3.  Again, some
 
  non-copyleft permissive licenses include such clauses.
 

	
 
\item This provision allows indemnification requirements of authors and
 
  licensors.  The FSF specifically designed this clause to achieve GPLv3
 
  compatibility for the
 
  \href{http://www.apache.org/licenses/LICENSE-2.0.html}{Apache Software
 
    License, Version 2.0}.
 

	
 
\end{enumerate}
 

	
 
During the GPLv3 drafting process, some questioned the necessity of GPLv3~\S7;
 
those critics suggested that it creates complexity that did not previously
 
exist.  However, by the time of GPLv3's drafting, many existing GPLv2'd
 
software packages already combined with various non-copylefted Free Software
 
licensed code that carried such additional terms.  Therefore, GPLv3~\S7 is
 
rationalized existing practices of those package authors and modifiers, since
 
it sets clear guidelines regarding the removal and addition of these
 
additional terms.  With its carefully limited list of allowed additional
 
requirements, GPLv3\S7 accomplishes additional objectives as well, since it
 
permits the expansion of the base of code available for GPL developers, while
 
also encouraging useful experimentation with requirements the GPLv3 does not
 
include by default.
 

	
 
However, any other non-permissive additional terms apart from those stated
 
above are considered ``further'' restrictions which
 
\hyperref[GPLv3s10]{GPLv3~\S10} prohibits.  Furthermore, as a compliance
 
matter, if you add additional terms in accordance with GPLv3~\S7, you must
 
ensure that the terms are placed in the relevant source files or provide a
 
conspicuous notice about where to find the additional terms.
 

	
 
\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 technically needs to obtain forgiveness
 
from all copyright holders, and even contacting them all might be impossible.
 

	
 
GPLv3~\S8 now grants opportunities for provisional and permanent
 
reinstatement of rights. The termination procedure provides a limited
 
opportunity to cure license violations.  If a licensee has committed a
 
first-time violation of the GPL with respect to a given copyright holder, but
 
the licensee cures the violation within 30 days following receipt of notice
 
of the violation, then any of the licensee's GPL rights that have been
 
terminated by the copyright holder are ``automatically reinstated''.
 

	
 

	
 
Finally, if a licensee violates the GPL, a contributor may terminate any
 
patent licenses that it granted under GPLv3~\S11, in addition to any
 
copyright permissions the contributor granted to the licensee.
 

	
 
% FIXME-LATER: write more here, perhaps linking up to enforcement
 

	
 
\section{GPLv3~\S9: Acceptance}
 

	
 
GPLv3~\S9 means what it says: mere receipt or execution of code neither
 
requires nor signifies contractual acceptance under the GPL.  Speaking more
 
broadly, GPLv3 is intentionally structured as a unilateral grant
 
of copyright permissions, the basic operation of which exists outside of any
 
law of contract.  Whether and when a contractual relationship is formed
 
between licensor and licensee under local law do not necessarily matter to
 
the working of the license.
 

	
 
\section{GPLv3~\S10: Explicit Downstream License}
 
\label{GPLv3s10}
 

	
 
GPLv3~\S10 is a generally straightforward section that ensures that everyone
 
downstream receives licenses from all copyright holders.  Each time you
 
redistribute a GPL'd program, the recipient automatically receives a license,
 
under the terms of GPL, from every upstream licensor whose copyrighted
 
material is present in the work you redistribute.  You could think of this as
 
creating a three-dimensional rather than linear flow of license rights.
 
Every recipient of the work is ``in privity,'' or is directly receiving a
 
license from every licensor.
 

	
 
This mechanism of automatic downstream licensing is central to copyleft's
 
function.  Every licensor independently grants licenses, and every licensor
 
independently terminates the license on violation.  Parties further
 
downstream from the infringing party remain licensed, so long as they don't
 
themselves commit infringing actions.  Their licenses come directly from all
 
the upstream copyright holders, and are not dependent on the license of the breaching
 
party who distributed to them.  For the same reason, an infringer who acquires
 
another copy of the program has not thereby acquired any new license rights:
 
once any upstream licensor of that program has terminated the license for
 
breach of its terms, no new automatic license will issue to the recipient
 
just by acquiring another
 
copy\footnote{Footnote~\ref{German-reinstatement-footnote} also applies here
 
  in discussion of GPLv3 just as it did in discussion of GPLv2.}
 

	
 
Meanwhile, one specific addition in GPLv3 here in GPLv3~\S10 deserves special
 
mention.  Specifically, GPLv3 removed the words ``at no charge'' from
 
GPLv2~\S2(b) (which, BTW, became GPLv3~\S5(b)) because it contributed to a misconception that the GPL did not
 
permit charging for distribution of copies.  The purpose of the ``at no
 
charge'' wording was to prevent attempts to collect royalties from third
 
parties.  The removal of these words created the danger that the imposition
 
of licensing fees would no longer be seen as a license violation.  Therefore,
 
GPLv3~\S10 adds a new explicit prohibition on imposition of licensing fees or
 
royalties.  This section is an appropriate place for such a clause, since it
 
is a specific consequence of the general requirement that no further
 
restrictions be imposed on downstream recipients of GPL-covered code.
 

	
 
% FIXME-LATER: This text needs further study before I can conclude it belongs
 
% in this tutorial:
 

	
 
%% Careful readers of the GPL have suggested that its explicit prohibition
 
%% against imposition of further restrictions\footnote{GPLv2, section 6; Draft
 
%%   3, section 10, third paragraph.} has, or ought to have, implications for
 
%% those who assert patents against other licensees.  Draft 2 took some steps to
 
%% clarify this point in a manner not specific to patents, by describing the
 
%% imposition of ``a license fee, royalty, or other charge'' for exercising GPL
 
%% rights as one example of an impermissible further restriction.  In Draft 3 we
 
%% have clarified further that the requirement of non-imposition of further
 
%% restrictions has specific consequences for litigation accusing GPL-covered
 
%% programs of infringement.  Section 10 now states that ``you may not initiate
 
%% litigation (including a cross-claim or counterclaim in a lawsuit) alleging
 
%% that any patent claim is infringed by making, using, selling, offering for
 
%% sale, or importing the Program (or the contribution of any contributor).''
 
%% That is to say, a patent holder's licensed permissions to use a work under
 
%% GPLv3 may be terminated under section 8 if the patent holder files a lawsuit
 
%% alleging that use of the work, or of any upstream GPLv3-licensed work on
 
%% which the work is based, infringes a patent.
 

	
 
\section{GPLv3~\S11: Explicit Patent Licensing}
 
\label{GPLv3s11}
 

	
 
Software patenting is a harmful and unjust policy, and should be abolished;
 
recent experience makes this all the more evident. Since many countries grant
 
patents that can apply to and prohibit software packages, in various guises
 
and to varying degrees, GPLv3 seeks to protect the users of GPL-covered programs
 
from those patents, while at the same time making it feasible for patent
 
holders to contribute to and distribute GPL-covered programs as long as they
 
do not attack the users of those programs.
 

	
 
It is generally understood that GPLv2 implies some limits on a licensee's
 
power to assert patent claims against the use of GPL-covered works.
 
However, the patent licensing practice that GPLv2~\S7 (corresponding to
 
GPLv3~\S12) is designed to prevent is only one of several ways in which
 
software patents threaten to make free programs non-free and to prevent users
 
from exercising their rights under the GPL. GPLv3 takes a more comprehensive
 
approach to combating the danger of patents.
 

	
 
GPLv2~\S7 has seen some success in deterring conduct that would otherwise
 
result in denial of full downstream enjoyment of GPL rights, and thus it is
 
preserved in GPLv3~\S12.  Experience has shown that more is necessary,
 
however, to ensure adequate community safety where companies act in concert
 
to heighten the anticompetitive use of patents that they hold or license.
 

	
 
Therefore,  GPLv3 is designed to reduce the patent risks that distort and
 
threaten the activities of users who make, run, modify and share Free
 
Software.  At the same time, GPLv3 gives favorable consideration to practical
 
goals such as certainty and administrability for patent holders that
 
participate in distribution and development of GPL-covered software.  GPLv3's
 
policy requires each such patent holder to provide appropriate levels of
 
patent assurance to users, according to the nature of the patent holder's
 
relationship to the program.
 

	
 
In general, GPLv3 provides for two classes of patent commitments:
 

	
 
\begin{itemize}
 
\item Grant of license to claims in contributor versions: GPLv3~\S11
 
  introduces an affirmative grant of rights to patent claims by those who
 
  contribute code to GPL'd programs. The intent is to prevent parties from
 
  aggressively asserting patents against users of code those parties have
 
  themselves modified --- in theory preventing betrayal by ``insiders'' of
 
  the copyleft community.  A contributor's patent claims necessarily
 
  infringed by the version of the program created by the incorporation of its
 
  modifications are licensed to all subsequent users and modifiers of the
 
  program, or programs based on the program.  No patent claims only infringed
 
  by subsequent modifications by other parties are thus licensed.  Patent
 
  claims acquired after the making of the ``contributor version'' necessarily
 
  infringed by that version are also licensed by this provision at the time
 
  of their acquisition or perfection.
 

	
 
\item Prohibition of enforcement of patent claims against those to whom you
 
  distribute: GPLv3~\S10 makes explicit that licensees who directly
 
  distribute may not make demands for acceptance of patent licenses or
 
  payment of patent royalties from distribution recipients.  This provision
 
  establishes a uniform rule of patent exhaustion with respect to GPL'd
 
  programs regardless of the domestic patent law in any particular system or
 
  locale.
 
\end{itemize}
 

	
 
The following two subsections discuss in order each of the above mentioned
 
classes of patent commitments.
 

	
 
\subsection{The Contributor's Explicit Patent License}
 

	
 
Specifically, the ideal might have been for GPLv3 to feature a patent license
 
grant triggered by all acts of distribution of GPLv3-covered works.  The FSF
 
considered it during the GPLv3 drafting process, but many patent-holding
 
companies objected to this policy.  They have made two objections: (1) the
 
companies objected to this policy.  They have made two objections:
 

	
 
\begin{enumerate}
 
    \item the
 
far-reaching impact of the patent license grant on the patent holder is
 
disproportionate to the act of merely distributing code without modification
 
or transformation, and (2) it is unreasonable to expect an owner of vast
 
or transformation, and
 

	
 
    \item it is unreasonable to expect an owner of vast
 
patent assets to exercise requisite diligence in reviewing all the
 
GPL-covered software that it provides to others.  Some expressed particular
 
concern about the consequences of ``inadvertent'' distribution.
 
\end{enumerate}
 

	
 
The argument that the impact of the patent license grant would be
 
``disproportionate'',  that is to say unfair, is not valid. Since
 
software patents are weapons that no one should have, and using them for
 
aggression against free software developers is an egregious act (thus
 
preventing that act cannot be unfair). 
 

	
 
However, the second argument seems valid in a practical sense.  A
 
typical GNU/Linux distribution includes thousands of programs.  It would
 
be quite difficult for a re-distributor with a large patent portfolio to
 
review all those programs against that portfolio every time it receives
 
and passes on a new version of the distribution.  Moreover, this question
 
raises a strategic issue. If the GPLv3 patent license requirements
 
convince patent-holding companies to remain outside the distribution
 
path of all GPL-covered software, then these requirements, no matter how
 
strong, will cover few patents. 
 

	
 
GPLv3 therefore makes a partial concession
 
which would lead these companies to feel secure in doing the
 
distribution themselves. GPLv3~\S11
 
applies only to those distributors that have
 
modified the program.  The other changes we have made in sections 10 and
 
11 provide strengthened defenses against patent assertion and compensate
 
partly for this concession. 
 

	
 
Therefore, GPLv3~\S11 introduces the terms ``contributor'', ``contributor version'', and
 
``essential patent claims'', which are
 
used in the GPLv3~\S11\P3.   Viewed from the perspective of a recipient of the
 
Program, contributors include all the copyright holders for the Program,
 
other than copyright holders of material originally licensed under non-GPL
 
terms and later incorporated into a GPL-covered work.  The contributors are
 
therefore the initial GPLv3 licensors of the Program and all subsequent
 
upstream licensors who convey, under the terms of GPLv3~\S5, modified covered
 
works.
 
Thus, the ``contributor version'' includes the material the contributor has copied from the
 
upstream version that the contributor has modified.  GPLv3~\S11\P3
 
 does not apply to those that redistribute the program
 
without change.\footnote{An implied patent license from the distributor,
 
however, often arises.  See \S~\ref{gpl-implied-patent-grant} in this tutorial}
 
In other words, the ``contributor version'' includes not just
 
the material added or altered by the contributor, but also the pre-existing
 
material the contributor copied from the upstream version and retained in the
 
modified version.  (GPLv3's usage of ``contributor'' and ``contribution'' should
 
not be confused with the various other ways in which those terms are used in
 
certain other free software licenses.\footnote{Cf., e.g., Apache License,
 
  version 2.0, section 1; Eclipse Public License, version 1.0, section 1;
 
  Mozilla Public License, version 1.1, section 1.1.})
 

	
 
Some details of the ``essential patent claims'' definition deserve special
 
mention.  ``Essential patent claims'', for a given party, are a subset of the
 
claims ``owned or controlled'' by the party.  They do include sublicensable
 
claims that have been licensed to the contributor by a third
 
party.\footnote{This issue is typically handled in other software freedom
 
  licenses having patent licensing provisions by use of the unhelpful term
 
  ``licensable,'' which is either left undefined or is given an ambiguous
 
  definition.}  Most commercial patent license agreements that permit
 
sublicensing do so under restrictive terms that are inconsistent with the
 
requirements of the GPL\@.  For example, some patent licenses allow the
 
patent licensee to sublicense but require collection of royalties from any
 
sublicensees.  The patent licensee could not distribute a GPL-covered program
 
and grant the recipient a patent sublicense for the program without violating
 
section 12 of GPLv3.\footnote{GPLv3 also provides an example in section 12
 
  that makes this point clear.}  In rare cases, however, a conveying party
 
can freely grant patent sublicenses to downstream recipients without
 
violating the GPL\@.
 

	
 
Additionally, ``essential patent claims'' are those patents ``that would be
 
infringed by some manner, permitted by this License, of making, using, or
 
selling the work''.  This intends to make clear that a patent claim is
 
``essential'' if some mode of usage would infringe that claim, even if there
 
are other modes of usage that would not infringe.
 

	
 
Finally, ``essential patent claims \ldots do not include
 
claims that would be infringed only as a consequence of further
 
modification of the work.''  The set of essential patent
 
claims licensed  is fixed by the
 
particular version of the work that was contributed.  The claim set
 
cannot expand as a work is further modified downstream.  (If it could,
 
then any software patent claim would be included, since any software
 
patent claim can be infringed by some further modification of the
 
work.)\footnote{However, ``the work'' should not be understood to be
 
restricted to a particular mechanical affixation of, or medium for
 
distributing, a program, where the same program might be provided in
 
other forms or in other ways that may be captured by other patent claims
 
held by the contributor.}
 

	
 
\medskip
 

	
 
Ideally, this contributor patent policy will result in fairly frequent licensing of patent
 
claims by contributors.  A contributor is charged with awareness of the fact
 
that it has modified a work and provided it to others; no act of contribution
 
should be treated as inadvertent.  GPLv3's rule also requires no more work, for a
 
contributor, than the weaker rule proposed by the patent holders.  Under
 
their rule, the contributor must always compare the entire work against its
 
patent portfolio to determine whether the combination of the modifications
 
with the remainder of the work cause it to read on any of the contributor's
 
patent claims.
 

	
 
Finally, GPLv3's explicit patent license for contributors has an interesting
 
and useful side effect.  When a company with a large number of such claims
 
acquires the program's modifier, all claims held or thereafter acquired by
 
the purchaser are automatically licensed under this provision.  For example,
 
Microsoft's acquisition of Nokia resulted in the automatic licensing of all
 
Microsoft patent claims now or hereafter acquired which read on any
 
contributor version of any GPLv3 program ever modified by Nokia.
 

	
 
\subsection{Conveyors' Patent Licensing}
 

	
 
The remaining patent licensing in GPLv3 deals with patent licenses that are
 
granted by conveyance.  The licensing is not as complete or far reaching as
 
the contributor patent licenses discussed in the preceding section.
 

	
 
The term ``patent license,'' as used in GPLv3~\S11\P4--6, is not meant to be
 
confined to agreements formally identified or classified as patent licenses.
 
GPLv3~\S11\P3  makes this clear by defining ``patent
 
license,'' for purposes of the subsequent three paragraphs, as ``any express
 
agreement or commitment, however denominated, not to enforce a patent
 
(such as an express permission to practice a patent or covenant not to
 
sue for patent infringement)''
 

	
 
The definition does not include patent licenses that arise by
 
implication or operation of law, because the third through fifth paragraphs
 
of section 11 are specifically concerned with explicit promises that purport
 
to be legally enforceable. The final paragraph of section 11 explicitly
 
preserves the availability of patent licenses arising by implication or
 
operation of law.
 

	
 
GPLv3~\S11\P5 is commonly called GPLv3's downstream shielding provision.  It
 
responds particularly to the problem of exclusive deals between patent
 
holders and distributors, which threaten to distort the free software
 
distribution system in a manner adverse to developers and users.  The
 
fundamental idea is to make a trade-off between assuring a patent license for
 
downstream and making  (possibly patent-encumbered) CCS publicly available.
 

	
 
Simply put, in nearly all cases in which the ``knowingly relying'' test is
 
met, the patent license will indeed not be sublicensable or generally
 
available to all on free terms.  If, on the other hand, the patent license is
 
generally available under terms consistent with the requirements of the GPL,
 
the distributor is automatically in compliance, because the patent license
 
has already been extended to all downstream recipients.  Finally, if the
 
patent license is sublicensable on GPL-consistent terms, the distributor may
 
choose to grant sublicenses to downstream recipients instead of causing the
 
CCS to be publicly available.  (In such a case, if the distributor is also a
 
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 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 are most likely to be affected by the
 
downstream shielding provision, lobbied for the addition of the source code
 
availability option, so it remains.
 

	
 
% FIXME-LATER: This text is likely redundant and a bit confusing.  Needs work
 
% to use.
 

	
 
%% If A takes a patent license from B that benefits A only, rather than A's
 
%% customers or their distributees, A imposes risk from B's patents on others
 
%% that it does not suffer itself. Under many circumstances, this is an
 
%% acceptable outcome. If, however, A is the only possible source of the
 
%% program, by taking such a license and distributing in reliance on it, A is in
 
%% effect helping B to ``take the program private.''
 

	
 
% FIXME-LATER: end
 

	
 
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
 
GPL'd 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
 
prohibits 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}
 
\label{GPLv3s12}
 

	
 
GPLv2~\S12 remains almost completely unchanged from the text that appears in
 
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 Affero GPL was written with the expectation that its
 
additional requirement would be incorporated into the terms of GPLv3
 
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 interests 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'd 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.  In particular, when a combined work is made by linking GPLv3-covered code
 
with AGPLv3-covered code, the copyleft on one part will not extend to the
 
other part. In such combinations, the Affero requirement will apply only to
 
the part originally brought into the combination under the Affero license.
 
In theory, 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.  (Admittedly, in practice, de-mingling of combined code can be
 
technically difficult.)
 

	
 

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

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

	
 
It's unclear when the FSF might consider publishing GPLv4.  However, this
 
section makes it clear that the FSF is the sole authority who can decide
 
such.
 

	
 
The main addition to this section allows a third-party proxy to be appointed
 
by contributors who wish someone else to make relicensing to new versions of
 
GPL when they are released.  This is a ``halfway'' point between using ``-only''
 
or ``-or-later'' by consolidating the decision-making on that issue to a
 
single authority.
 

	
 
% FIXME-LATER: better proxy description
 

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

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

	
 
% FIXME-LATER: more, plus 17
 

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

	
 
% FIXME-LATER: 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-LATER: 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-LATER: does this need to be a section, describing how it was out then in
 
% then out then in? :)
 

	
 
Finally, the FSF shortened the section on ``How to Apply These
 
Terms to Your New Programs'' to just the bare essentials.
 

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

	
 
As we have seen in our consideration of the GPL, its text is specifically
 
designed to cover all possible derivative, modified and/or combined works under copyright law. Our
 
goal in designing the GPL was to maximize its use of the controls of
 
copyright law to maximize the number of works that were covered by GPL. 
 

	
 
However, while the strategic goal of software freedom 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.
 
The Lesser General Public License is sometimes described as a ``weak copyleft''
 
license, because code licensed under LGPL's terms can be combined with code
 
under non-free licenses, and is sometimes used in that fashion.
 

	
 
\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 the GPL were
 
somewhat different. Applications released under the GPL would never
 
themselves become part of proprietary software. However, if glibc were
 
released under the GPL, it would require that any application distributed for
 
the GNU/Linux platform be released under the GPL\@.
 

	
 
Since all applications on a Unix-like system depend on the C library, it
 
means that they must link with that library to function on the system. In
 
other words, all applications running on a Unix-like system must be
 
combined with the C library to form a new whole work that is
 
composed of the original application and the C library. Thus, if glibc
 
were GPL'd, each and every application distributed for use on GNU/Linux
 
would also need to be GPL'd, since to even function, such applications
 
would need to be combined into larger works by linking with
 
glibc.
 

	
 
At first glance, such an outcome seems like a windfall for Free Software
 
advocates, since it stops all proprietary software development on
 
GNU/Linux systems. However, the outcome is a bit more subtle. In a world
 
where many C libraries already exist, many of which could easily be ported
 
to GNU/Linux, a GPL'd glibc would be unlikely to succeed. Proprietary
 
vendors would see the excellent opportunity to license their C libraries
 
to anyone who wished to write proprietary software for GNU/Linux systems.
 
The de-facto standard for the C library on GNU/Linux would likely be not
 
glibc, but the most popular proprietary one.
 

	
 
Meanwhile, the actual goal of releasing glibc under the GPL --- to ensure no
 
proprietary applications on GNU/Linux --- would be unattainable in this
 
scenario. Furthermore, users of those proprietary applications would also
 
be users of a proprietary C library, not the Free glibc.
 

	
 
The Lesser GPL was initially conceived to handle this scenario. It was
 
clear that the existence of proprietary applications for GNU/Linux was
 
inevitable. Since there were so many C libraries already in existence, a
 
new one under the GPL would not stop that tide. However, if the new C library
 
were released under a license that permitted proprietary applications
 
to link with it, but made sure that the library itself remained Free,
 
an ancillary goal could be met. Users of proprietary applications, while
 
they would not have the freedom to copy, share, modify and redistribute
 
the application itself, would have the freedom to do so with respect to
 
the C library.
 

	
 
There was no way the license of glibc could stop or even slow the creation
 
of proprietary applications on GNU/Linux. However, loosening the
 
restrictions on the licensing of glibc ensured that nearly all proprietary
 
applications at least used a Free C library rather than a proprietary one.
 
This trade-off is central to the reasoning behind the LGPL\@.
 

	
 
Of course, many people who use the LGPL today are not thinking in these
 
terms. In fact, they are often choosing the LGPL because they are looking
 
for a ``compromise'' between the GPL and the X11-style liberal licensing.
 
However, understanding FSF's reasoning behind the creation of the LGPL is
 
helpful when studying the license.
 

	
 

	
 
\section{What's the Same?}
 

	
 
Much of the text of the LGPL is identical to the GPL\@. As we begin our
 
discussion of the LGPL, we will first eliminate the sections that are
 
identical, or that have the minor modification changing the word
 
``Program'' to ``Library.''
 

	
 
First, LGPLv2.1~\S1, the rules for verbatim copying of source, are
 
equivalent to those in GPLv2~\S1.
 

	
 
Second, LGPLv2.1~\S8 is equivalent GPLv2~\S4\@. In both licenses, this
 
section handles termination in precisely the same manner.
 

	
 
LGPLv2.1~\S9 is equivalent to GPLv2~\S5\@. Both sections assert that
 
the license is a copyright license, and handle the acceptance of those
 
copyright terms.
 

	
 
LGPLv2.1~\S10 is equivalent to GPLv2~\S6. They both protect the
 
distribution system of Free Software under these licenses, to ensure that
 
up, down, and throughout the distribution chain, each recipient of the
 
software receives identical rights under the license and no other
 
restrictions are imposed.
 

	
 
LGPLv2.1~\S11 is GPLv2~\S7. As discussed, it is used to ensure that
 
other claims and legal realities, such as patent licenses and court
 
judgments, do not trump the rights and permissions granted by these
 
licenses, and requires that distribution be halted if such a trump is
 
known to exist.
 

	
 
LGPLv2.1~\S12 adds the same features as GPLv2~\S8. These sections are
 
used to allow original copyright holders to forbid distribution in
 
countries with draconian laws that would otherwise contradict these
 
licenses.
 

	
 
LGPLv2.1~\S13 sets up the FSF as the steward of the LGPL, just as GPLv2~\S9
 
does for GPL. Meanwhile, LGPLv2.1~\S14 reminds licensees that copyright
 
holders can grant exceptions to the terms of LGPL, just as GPLv2~\S10
 
reminds licensees of the same thing.
 

	
 
Finally, the assertions of no warranty and limitations of liability are
 
identical; thus LGPLv2.1~\S15 and LGPLv2.1~\S16 are the same as GPLv2~\S11 and \S
 
12.
 

	
 
As we see, the entire latter half of the license is identical.
 
The parts which set up the legal boundaries and meta-rules for the license
 
are the same. It is our intent that the two licenses operate under the
 
same legal mechanisms and are enforced precisely the same way.
 

	
 
We strike a difference only in the early portions of the license.
 
Namely, in the LGPL we go into deeper detail of granting various permissions to
 
create certain types of combinations, modifications and derivations.
 
The LGPL does not stretch the requirements as far as copyright law does regarding what
 
works must be relicensed under the same terms.  Therefore, LGPL must
 
in detail explain which works can be proprietary.  Thus, we'll see that the front matter of the LGPL is a
 
bit more wordy and detailed with regards to the permissions granted to
 
those who modify or redistribute the software.
 

	
 
\section{Additions to the Preamble}
 

	
 
Most of the LGPL's Preamble is identical, but the last seven paragraphs
 
introduce the concepts and reasoning behind creation of the license,
 
presenting a more generalized and briefer version of the story with which
 
we began our consideration of the LGPL\@.
 

	
 
In short, FSF designed the LGPL for those edge cases where the freedom of the
 
public can better be served by a more lax licensing system. FSF doesn't
 
encourage use of the LGPL automatically for any software that happens to be a
 
library; rather, FSF suggests that it only be used in specific cases, such
 
as the following:
 

	
 
\begin{itemize}
 

	
 
\item To encourage the widest possible use of a Free Software library, so
 
  it becomes a de-facto standard over similar, although not
 
  interface-identical, proprietary alternatives
 

	
 
\item To encourage use of a Free Software library that already has
 
  interface-identical proprietary competitors that are more developed
 

	
 
\item To allow a greater number of users to get freedom, by encouraging
 
  proprietary companies to pick a Free alternative for its otherwise
 
  proprietary products
 

	
 
\end{itemize}
 

	
 
The LGPL's preamble sets forth the limits to which the license seeks to go in
 
chasing these goals. The LGPL is designed to ensure that users who happen to
 
acquire software linked with such libraries have full freedoms with
 
respect to that library. They should have the ability to upgrade to a newer
 
or modified Free version or to make their own modifications, even if they
 
cannot modify the primary software program that links to that library.
 

	
 
Finally, the preamble introduces two terms used throughout the license to
 
clarify between the different types of combined works: ``works that use
 
the library,'' and ``works based on the library.''  Unlike the GPL, the LGPL must
 
draw some lines regarding permissibly proprietary combined works.  We do this here in this
 
license because we specifically seek to liberalize the rights afforded to
 
those who make combined works. In the GPL, we reach as far as copyright law
 
allows. In the LGPL, we want to draw a line that allows some derivative works
 
copyright law would otherwise prohibit if the copyright holder exercised
 
his full permitted controls over the work.
 

	
 
\section{An Application: A Work that Uses the Library}
 

	
 
In the effort to allow certain proprietary works and prohibit
 
others, the LGPL distinguishes between two classes of works:
 
``works based on the library,'' and ``works that use the library.''  The
 
distinction is drawn on the bright line of binary (or runtime) combined
 
works and modified versions of source code. We will first consider the definition
 
of a ``work that uses the library,'' which is set forth in LGPLv2.1~\S5.
 

	
 
We noted in our discussion of GPLv2~\S3 (discussed in
 
Section~\ref{GPLv2s3} of this document) that binary programs when
 
compiled and linked with GPL'd software are covered as a whole by GPL\@.
 
This includes both linking that happens at compile-time (when
 
the binary is created) or at runtime (when the binary -- including library
 
and main program both -- is loaded into memory by the user). In GPL,
 
binary works are controlled by the terms of the license (in GPLv2~\S3),
 
and distributors of such binary works must release full
 
corresponding source\@.
 

	
 
The LGPL, by contrast, allows partial proprietarization of such binary works.
 
This scenario, defined in LGPL as ``a work that uses the library,'' works as
 
follows:
 

	
 
\newcommand{\workl}{$\mathcal{L}$}
 
\newcommand{\lplusi}{$\mathcal{L\!\!+\!\!I}$}
 

	
 
\begin{itemize}
 

	
 
\item A new copyright holder creates a separate and independent work,
 
  \worki{}, that makes interface calls (e.g., function calls) to the
 
  LGPL'd work, called \workl{}, whose copyright is held by some other
 
  party. Note that since \worki{} and \workl{} are separate and
 
  independent works, there is no copyright obligation on this new copyright
 
  holder with regard to the licensing of \worki{}, at least with regard to
 
  the source code.
 

	
 
\item The new copyright holder, for her software to be useful, realizes
 
  that it cannot run without combining \worki{} and \workl{}.
 
  Specifically, when she creates a running binary program, that running
 
  binary must be a combined work, called \lplusi{}, that the user can
 
  run.
 

	
 
\item Since \lplusi{} is a based on both \worki{} and \workl{},
 
  the license of \workl{} (the LGPL) can put restrictions on the license
 
  of \lplusi{}. In fact, this is what the LGPL does.
 

	
 
\end{itemize}
 

	
 
We will talk about the specific restrictions LGPLv2.1 places on ``works
 
that use the library'' in detail in Section~\ref{lgpl-section-6}. For
 
now, focus on the logic related to how the LGPLv2.1 places requirements on
 
the license of \lplusi{}. Note, first of all, the similarity between
 
this explanation and that in Section~\ref{separate-and-independent},
 
which discussed the combination of otherwise separate and independent
 
works with GPL'd code. Effectively, what LGPLv2.1 does is say that when a
 
new work is otherwise separate and independent, but has interface
 
calls out to an LGPL'd library, then it is considered a ``work that
 
uses the library.''
 

	
 
In addition, the only reason that LGPLv2.1 has any control over the licensing
 
of a ``work that uses the library'' is for the same reason that GPL has
 
some say over separate and independent works. Namely, such controls exist
 
because the {\em binary combination\/} (\lplusi{}) that must be created to
 
make the separate work (\worki{}) at all useful is a  work based on
 
the LGPLv2.1'd software (\workl{}).
 

	
 
Thus, a two-question test that will help indicate if a particular work is
 
a ``work that uses the library'' under LGPLv2.1 is as follows:
 

	
 
\begin{enumerate}
 

	
 
\item Is the source code of the new copyrighted work, \worki{}, a
 
  completely independent work that stands by itself, and includes no
 
  source code from \workl{}?
 

	
 
\item When the source code is compiled, does it combine into a single work
 
  with \workl{}, either by static (compile-time) or dynamic
 
  (runtime) linking, to create a new binary work, \lplusi{}?
 
\end{enumerate}
 

	
 
If the answers to both questions are ``yes,'' then \worki{} is most likely
 
a ``work that uses the library.''  If the answer to the first question
 
``yes,'' but the answer to the second question is ``no,'' then most likely
 
\worki{} is neither a ``work that uses the library'' nor a ``work based on
 
the library.''  If the answer to the first question is ``no,'' but the
 
answer to the second question is ``yes,'' then an investigation into
 
whether or not \worki{} is in fact a ``work based on the library'' is
 
warranted.
 

	
 
\section{The Library, and Works Based On It}
 

	
 
In short, a ``work based on the library'' could be defined as any
 
work based on the LGPL'd software that cannot otherwise fit the
 
definition of a ``work that uses the library.''  A ``work based on the
 
library'' extends the full width and depth of derivative, combined and/or
 
modified works under copyright law, in the same sense that the GPL does.
 

	
 
Most typically, one creates a ``work based on the library'' by directly
 
modifying the source of the library. Such a work could also be created by
 
tightly integrating new software with the library. The lines are no doubt
 
fuzzy, just as they are with GPL'd works, since copyright law gives us no
 
litmus test for determining if a given work is a derivative or otherwise a
 
modified version of another software program.
 

	
 
Thus, the test to use when considering whether something is a ``work
 
based on the library'' is as follows:
 

	
 
\begin{enumerate}
 

	
 
\item Is the new work, when in source form, a derivative and/or modified
 
  work of, and/or a combined work with the LGPL'd work under
 
  copyright law?
 

	
 
\item Is there no way in which the new work fits the definition of a
 
  ``work that uses the library''?
 
\end{enumerate}
 

	
 

	
 
If the answer is ``yes'' to both these questions, then you most likely
 
have a ``work based on the library.''  If the answer is ``no'' to the
 
first but ``yes'' to the second, you are in a gray area between ``work
 
based on the library'' and a ``work that uses the library.''
 

	
 
You can also perform a similar same analysis through careful consideration of
 
the license text itself.  LGPLv2~\S2(a) states that if a licensed work is a
 
software library (defined in LGPLv2~\S0 as ``a collection of software
 
functions and/or data prepared so as to be conveniently linked with
 
application programs (which use some of those functions and data) to form
 
executables''), you have permission to distribute modified versions only if
 
those versions are themselves libraries.  LGPLv2.1 code can therefore not be
 
compliantly taken from its context in a library and placed in a non-library
 
modified version or work based on the work.  For its part, LGPLv2~\S6 does
 
not provide an exception for this rule: a combination may be made of a
 
modified version of an LGPL'd library with other code, but the LGPL'd code
 
must continue to be structured as a library, and to that library the terms of
 
the license continue to apply.
 

	
 

	
 
Either way you view the rules, these issues are admittedly complicated.
 
Nevertheless, In our years of work with the LGPLv2.1, however, we have never
 
seen a work of software that was not clearly one or the other; the line is
 
quite bright. At times, though, we have seen cases where a particularly large
 
work in some ways seemed to be both to both a work that used the library and
 
a work based on the library. We overcame this problem by dividing the work
 
into smaller subunits.  It was soon discovered that what we actually had were
 
three distinct components: the original LGPL'd work, a specific set of works
 
that used that library, and a specific set of works that were based on the
 
library. Once such distinctions are established, the licensing for each
 
component can be considered independently and the LGPLv2.1 applied to each
 
work as prescribed.
 

	
 
Finally, note though that, since the LGPLv2.1 can be easily upgraded to
 
GPLv2-or-later, in the worst case you simply need to comply as if the
 
software was licensed under GPLv2.  The only reason you must consider the
 
question of whether you have a ``work that uses the library'' or a ``work
 
based on the library'' is when you wish to take advantage of the ``weak
 
copyleft'' effect of the Lesser GPL\@.  If GPLv2-or-later is an acceptable
 
license (i.e., if you plan to copyleft the entire work anyway), you may find
 
this an easier option.
 

	
 
\section{Subtleties in Defining the Application}
 

	
0 comments (0 inline, 0 general)