Changeset - 52695626f092
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-03-19 13:58:46
bkuhn@ebb.org
Paragraph refill only.
1 file changed with 8 insertions and 9 deletions:
0 comments (0 inline, 0 general)
gpl-lgpl.tex
Show inline comments
...
 
@@ -1500,1545 +1500,1544 @@ affects the license of the new whole derivative work.
 

	
 
% {\cal I}
 
\newcommand{\gplusi}{$\mathcal{G\!\!+\!\!I}$}
 
\newcommand{\worki}{$\mathcal{I}$}
 
\newcommand{\workg}{$\mathcal{G}$}
 

	
 
\label{separate-and-independent}
 

	
 
It is certainly possible to take an existing independent work (called
 
\worki{}) and combine it with a GPL'd program (called \workg{}).  The
 
license of \worki{}, when it is distributed as a separate and independent
 
work, remains the prerogative of the copyright holder of \worki{}.
 
However, when \worki{} is combined with \workg{}, it produces a new work
 
that is the combination of the two (called \gplusi{}). The copyright of
 
this combined work, \gplusi{}, is held by the original copyright
 
holder of each of the two works.
 

	
 
In this case, GPLv2~\S2 lays out the terms by which \gplusi{} may be
 
distributed and copied.  By default, under copyright law, the copyright
 
holder of \worki{} would not have been permitted to distribute \gplusi{};
 
copyright law forbids it without the expressed permission of the copyright
 
holder of \workg{}. (Imagine, for a moment, if \workg{} were a proprietary
 
product --- would its copyright holders  give you permission to create and distribute
 
\gplusi{} without paying them a hefty sum?)  The license of \workg{}, the
 
GPL, states the  options for the copyright holder of \worki{}
 
who may want to create and distribute \gplusi{}.  GPL's pregranted
 
permission to create and distribute derivative works, provided the terms
 
of GPL are upheld, goes far above and beyond the permissions that one
 
would get with a typical work not covered by a copyleft license.  (Thus, to
 
say that this restriction is any way unreasonable is simply ludicrous.)
 

	
 
\medskip
 

	
 
The next phrase of note in GPLv2~\S2(b) is ``licensed \ldots at no charge.''
 
This phrase  confuses many.  The sloppy reader points out this as ``a
 
contradiction in GPL'' because (in their confused view) that clause of GPLv2~\S2 says that redistributors cannot
 
charge for modified versions of GPL'd software, but GPLv2~\S1 says that
 
they can.  Avoid this confusion: the ``at no charge'' \textbf{does not} prohibit redistributors from
 
charging when performing the acts governed by copyright
 
law,\footnote{Recall that you could by default charge for any acts not
 
governed by copyright law, because the license controls are confined
 
by copyright.} but rather that they cannot charge a fee for the
 
\emph{license itself}.  In other words, redistributors of (modified
 
and unmodified) GPL'd works may charge any amount they choose for
 
performing the modifications on contract or the act of transferring
 
the copy to the customer, but they may not charge a separate licensing
 
fee for the software.
 

	
 
GPLv2~\S2(b) further states that the software must ``be licensed \ldots to all
 
third parties.''  This too yields some confusion, and feeds the
 
misconception mentioned earlier --- that all modified versions must made
 
available to the public at large.  However, the text here does not say
 
that.  Instead, it says that the licensing under terms of the GPL must
 
extend to anyone who might, through the distribution chain, receive a copy
 
of the software.  Distribution to all third parties is not mandated here,
 
but GPLv2~\S2(b) does require redistributors to license the derivative works in
 
a way that extends to all third parties who may ultimately receive a
 
copy of the software.
 

	
 
In summary, GPLv2\ 2(b) says what terms under which the third parties must
 
receive this no-charge license.  Namely, they receive it ``under the terms
 
of this License'', the GPLv2.  When an entity \emph{chooses} to redistribute
 
a derivative work of GPL'd software, the license of that whole 
 
work must be GPL and only GPL\@.  In this manner, GPLv2~\S2(b) dovetails nicely
 
with GPLv2~\S6 (as discussed in Section~\ref{GPLv2s6} of this tutorial).
 

	
 
\medskip
 

	
 
The final paragraph of GPLv2~\S2 is worth special mention.  It is possible and
 
quite common to aggregate various software programs together on one
 
distribution medium.  Computer manufacturers do this when they ship a
 
pre-installed hard drive, and GNU/Linux distribution vendors do this to
 
give a one-stop CD or URL for a complete operating system with necessary
 
applications.  The GPL very clearly permits such ``mere aggregation'' with
 
programs under any license.  Despite what you hear from its critics, the
 
GPL is nothing like a virus, not only because the GPL is good for you and
 
a virus is bad for you, but also because simple contact with a GPL'd
 
code-base does not impact the license of other programs.  A programmer must
 
expended actual effort  to cause a work to fall under the terms
 
of the GPL.  Redistributors are always welcome to simply ship GPL'd
 
software alongside proprietary software or other unrelated Free Software,
 
as long as the terms of GPL are adhered to for those packages that are
 
truly GPL'd.
 

	
 
\section{GPLv2~\S3: Producing Binaries}
 
\label{GPL-Section-3}
 

	
 
Software is a strange beast when compared to other copyrightable works.
 
It is currently impossible to make a film or a book that can be truly
 
obscured.  Ultimately, the full text of a novel, even one written by
 
William Faulkner, must presented to the reader as words in some
 
human-readable language so that they can enjoy the work.  A film, even one
 
directed by David Lynch, must be perceptible by human eyes and ears to
 
have any value.
 

	
 
Software is not so.  While the source code --- the human-readable
 
representation of software is of keen interest to programmers -- users and
 
programmers alike cannot make the proper use of software in that
 
human-readable form.  Binary code --- the ones and zeros that the computer
 
can understand --- must be predicable and attainable for the software to
 
be fully useful.  Without the binaries, be they in object or executable
 
form, the software serves only the didactic purposes of computer science.
 

	
 
Under copyright law, binary representations of the software are simply
 
derivative works of the source code.  Applying a systematic process (i.e.,
 
``compilation''\footnote{``Compilation'' in this context refers to the
 
  automated computing process of converting source code into binaries.  It
 
  has absolutely nothing to do with the term ``compilation'' in copyright statues.}) to a work of source code yields binary code. The binary
 
code is now a new work of expression fixed in the tangible medium of
 
electronic file storage.
 

	
 
Therefore, for GPL'd software to be useful, the GPL, since it governs the
 
rules for creation of derivative works, must grant permission for the
 
generation of binaries.  Furthermore, notwithstanding the relative
 
popularity of source-based GNU/Linux distributions like Gentoo, users find
 
it extremely convenient to receive distribution of binary software.  Such
 
distribution is the redistribution of derivative works of the software's
 
source code.  GPLv2~\S3 addresses the matter of creation and distribution of
 
binary versions.
 

	
 
Under GPLv2~\S3, binary versions may be created and distributed under the
 
terms of GPLv2~\S1--2, so all the material previously discussed applies
 
here.  However, GPLv2~\S3 must go a bit further.  Access to the software's
 
source code is an incontestable prerequisite for the exercise of the
 
fundamental freedoms to modify and improve the software.  Making even
 
the most trivial changes to a software program at the binary level is
 
effectively impossible.  GPLv2~\S3 must ensure that the binaries are never
 
distributed without the source code, so that these freedoms are passed
 
through the distribution chain.
 

	
 
GPLv2~\S3 permits distribution of binaries, and then offers three options for
 
distribution of source code along with binaries. The most common and the
 
least complicated is the option given under GPLv2~\S3(a).
 

	
 
GPLv2~\S3(a) offers the option to directly accompany the source code alongside
 
the distribution of the binaries.  This is by far the most convenient
 
option for most distributors, because it means that the source-code
 
provision obligations are fully completed at the time of binary
 
distribution (more on that later).
 

	
 
Under GPLv2~\S3(a), the source code provided must be the ``corresponding source
 
code.''  Here ``corresponding'' primarily means that the source code
 
provided must be that code used to produce the binaries being distributed.
 
That source code must also be ``complete''.   GPLv2~\S3's penultimate paragraph
 
explains in detail what is meant by ``complete''.  In essence, it is all
 
the material that a programmer of average skill would need to actually use
 
the source code to produce the binaries she has received.  Complete source
 
is required so that, if the licensee chooses, she should be able to
 
exercise her freedoms to modify and redistribute changes.  Without the
 
complete source, it would not be possible to make changes that were
 
actually directly derived from the version received.
 

	
 
Furthermore, GPLv2~\S3 is defending against a tactic that has in fact been
 
seen in GPL enforcement.  Under GPL, if you pay a high price for
 
a copy of GPL'd binaries (which comes with corresponding source, of
 
course), you have the freedom to redistribute that work at any fee you
 
choose, or not at all.  Sometimes, companies attempt a GPL-violating
 
cozenage whereby they produce very specialized binaries (perhaps for
 
an obscure architecture).  They then give source code that does
 
correspond, but withhold the ``incantations'' and build plans they
 
used to make that source compile into the specialized binaries.
 
Therefore, GPLv2~\S3 requires that the source code include ``meta-material'' like
 
scripts, interface definitions, and other material that is used to
 
``control compilation and installation'' of the binaries.  In this
 
manner, those further down the distribution chain are assured that
 
they have the unabated freedom to build their own derivative works
 
from the sources provided.
 

	
 
Software distribution comes in many
 
forms.  Embedded manufacturers, for example, have the freedom to put
 
GPL'd software into mobile devices with very tight memory and space
 
constraints.  In such cases, putting the source right alongside the
 
binaries on the machine itself might not be an option.  While it is
 
recommended that this be the default way that people comply with GPL, the
 
GPL does provide options when such distribution is infeasible.
 

	
 
GPLv2~\S3, therefore, allows source code to be provided on any physical
 
``medium customarily used for software interchange.''  By design, this
 
phrase covers a broad spectrum --- the phrase seeks to pre-adapt to
 
changes in  technology.  When GPLv22 was first published in June
 
1991, distribution on magnetic tape was still common, and CD was
 
relatively new.  By 2002, CD is the default.  By 2007, DVD's were the
 
default.  Now, it's common to give software on USB drives and SD card.  This
 
language in the license must adapt with changing technology.
 

	
 
Meanwhile, the binding created by the word ``customarily'' is key.  Many
 
incorrectly believe that distributing binary on CD and source on the
 
Internet is acceptable.  In the corporate world in industrialized countries, it is indeed customary to
 
simply download a CDs' worth of data quickly.  However, even today in the USA, many computer users are not connected to the Internet, and most people connected
 
to the Internet still have limited download speeds.  Downloading
 
CDs full of data is not customary for them in the least.  In some cities
 
in Africa, computers are becoming more common, but Internet connectivity
 
is still available only at a few centralized locations.  Thus, the
 
``customs'' here are normalized for a worldwide userbase.  Simply
 
providing source on the Internet --- while it is a kind, friendly and
 
useful thing to do --- is not usually sufficient.
 

	
 
Note, however, a major exception to this rule, given by the last paragraph
 
of GPLv2~\S3. \emph{If} distribution of the binary files is made only on the
 
Internet (i.e., ``from a designated place''), \emph{then} simply providing
 
the source code right alongside the binaries in the same place is
 
sufficient to comply with GPLv2~\S3.
 

	
 
\medskip
 

	
 
As is shown above, Under GPLv2~\S3(a), embedded manufacturers can put the
 
binaries on the device and ship the source code along on a CD\@.  However,
 
sometimes this turns out to be too costly.  Including a CD with every
 
device could prove too costly, and may practically (although not legally)
 
prohibit using GPL'd software. For this situation and others like it, GPlv2\S~3(b) is available.
 

	
 
GPLv2~\S3(b) allows a distributor of binaries to instead provide a written
 
offer for source code alongside those binaries.  This is useful in two
 
specific ways.  First, it may turn out that most users do not request the
 
source, and thus the cost of producing the CDs is saved --- a financial
 
and environmental windfall.  In addition, along with a GPLv2~\S3(b) compliant
 
offer for source, a binary distributor might choose to \emph{also} give a
 
URL for source code.  Many who would otherwise need a CD with source might
 
turn out to have those coveted high bandwidth connections, and are able to
 
download the source instead --- again yielding environmental and financial
 
windfalls.
 

	
 
However, note that regardless of how many users prefer to get the
 
source online, GPLv2~\S3(b) does place lasting long-term obligations on the
 
binary distributor.  The binary distributor must be prepared to honor
 
that offer for source for three years and ship it out (just as they
 
would have had to do under GPLv2~\S3(a)) at a moment's notice when they
 
receive such a request.  There is real organizational cost here:
 
support engineers must be trained how to route source requests, and
 
source CD images for every release version for the last three years
 
must be kept on hand to burn such CDs quickly. The requests might not
 
even come from actual customers; the offer for source must be valid
 
for ``any third party''.
 

	
 
That phrase is another place where some get confused --- thinking again
 
that full public distribution of source is required.  The offer for source
 
must be valid for ``any third party'' because of the freedoms of
 
redistribution granted by GPLv2~\S\S1--2.  A company may ship a binary image
 
and an offer for source to only one customer.  However, under GPL, that
 
customer has the right to redistribute that software to the world if she
 
likes.  When she does, that customer has an obligation to make sure that
 
those who receive the software from her can exercise their freedoms under
 
GPL --- including the freedom to modify, rebuild, and redistribute the
 
source code.
 

	
 
GPLv2~\S3(c) is created to save her some trouble, because by itself GPLv2~\S3(b)
 
would unfairly favor large companies.  GPLv2~\S3(b) allows the
 
separation of the binary software from the key tool that people can use
 
to exercise their freedom. The GPL permits this separation because it is
 
good for redistributors, and those users who turn out not to need the
 
source.  However, to ensure equal rights for all software users, anyone
 
along the distribution chain must have the right to get the source and
 
exercise those freedoms that require it.
 

	
 
Meanwhile, GPLv2~\S3(b)'s compromise primarily benefits companies who
 
distribute binary software commercially.  Without GPLv2~\S3(c), that benefit
 
would be at the detriment of the companies' customers; the burden of
 
source code provision would be unfairly shifted to the companies'
 
customers.  A customer, who had received binaries with a GPLv2~\S3(b)-compliant
 
offer, would be required under GPLv2 (sans GPLv2~\S3(c)) to acquire the source,
 
merely to give a copy of the software to a friend who needed it.  GPLv2~\S3(c)
 
reshifts this burden to entity who benefits from GPLv2~\S3(b).
 

	
 
GPLv2~\S3(c) allows those who undertake \emph{noncommercial} distribution to
 
simply pass along a GPLv2~\S3(b)-compliant source code offer.  The customer who
 
wishes to give a copy to her friend can now do so without provisioning the
 
source, as long as she gives that offer to her friend.  By contrast, if
 
she wanted to go into business for herself selling CDs of that software,
 
she would have to acquire the source and either comply via GPLv2~\S3(a), or
 
write her own GPLv2~\S3(b)-compliant source offer.
 

	
 
This process is precisely the reason why a GPLv2~\S3(b) source offer must be
 
valid for all third parties.  At the time the offer is made, there is no
 
way of knowing who might end up noncommercially receiving a copy of the
 
software.  Companies who choose to comply via GPLv2~\S3(b) must thus be
 
prepared to honor all incoming source code requests.  For this and the
 
many other additional necessary complications under GPLv2~\S\S3(b--c), it is
 
only rarely a better option than complying via GPLv2~\S3(a).
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{GPL's Implied Patent Grant}
 
\label{gpl-implied-patent-grant}
 

	
 
We digress again briefly from our section-by-section consideration of GPLv2
 
to consider the interaction between the terms of GPL and patent law. The
 
GPLv2, despite being silent with respect to patents, actually confers on its
 
licensees more rights to a licensor's patents than those licenses that
 
purport to address the issue. This is the case because patent law, under
 
the doctrine of implied license, gives to each distributee of a patented
 
article a license from the distributor to practice any patent claims owned
 
or held by the distributor that cover the distributed article. The
 
implied license also extends to any patent claims owned or held by the
 
distributor that cover ``reasonably contemplated uses'' of the patented
 
article. To quote the Federal Circuit Court of Appeals, the highest court
 
for patent cases other than the Supreme Court:
 

	
 
\begin{quotation}
 
Generally, when a seller sells a product without restriction, it in
 
effect promises the purchaser that in exchange for the price paid, it will
 
not interfere with the purchaser's full enjoyment of the product
 
purchased. The buyer has an implied license under any patents of the
 
seller that dominate the product or any uses of the product to which the
 
parties might reasonably contemplate the product will be put.
 
\end{quotation}
 
Hewlett-Packard Co. v. Repeat-O-Type Stencil Mfg. Corp., Inc., 123 F.3d
 
1445 (Fed. Cir. 1997).
 

	
 
Of course, Free Software is licensed, not sold, and there are indeed
 
restrictions placed on the licensee, but those differences are not likely
 
to prevent the application of the implied license doctrine to Free
 
Software, because software licensed under the GPL grants the licensee the
 
right to make, use, and sell the software, each of which are exclusive
 
rights of a patent holder. Therefore, although the GPLv2 does not expressly
 
grant the licensee the right to do those things under any patents the
 
licensor may have that cover the software or its reasonably contemplated
 
uses, by licensing the software under the GPLv2, the distributor impliedly
 
licenses those patents to the GPLv2 licensee with respect to the GPLv2'd
 
software.
 

	
 
An interesting issue regarding this implied patent license of GPLv2'd
 
software is what would be considered ``uses of the [software] to which
 
the parties might reasonably contemplate the product will be put.'' A
 
clever advocate may argue that the implied license granted by GPLv2 is
 
larger in scope than the express license in other Free Software
 
licenses with express patent grants, in that, the patent license
 
clause of many of those licenses are specifically limited to the
 
patent claims covered by the code as licensed by the patentee.
 

	
 
To the contrary, GPLv2's implied patent license grants the GPLv2 licensee a
 
patent license to do much more than just that because the GPLv2 licensee,
 
under the doctrine of implied patent license, is free to practice any
 
patent claims held by the licensor that cover ``reasonably contemplated
 
uses'' of the GPL'd code, which may very well include creation and
 
distribution of derivative works since the GPL's terms, under which the
 
patented code is distributed, expressly permits such activity.
 

	
 
Further supporting this result is the Federal Circuit's pronouncement that
 
the recipient of a patented article has, not only an implied license to
 
make, use, and sell the article, but also an implied patent license to
 
repair the article to enable it to function properly, Bottom Line Mgmt.,
 
Inc. v. Pan Man, Inc., 228 F.3d 1352 (Fed. Cir. 2000). Additionally, the
 
Federal Circuit extended that rule to include any future recipients of the
 
patented article, not just the direct recipient from the distributor.
 
This theory comports well with the idea of Free Software, whereby software
 
is distributed amongst many entities within the community for the purpose
 
of constant evolution and improvement. In this way, the law of implied
 
patent license used by the GPLv2 ensures that the community mutually
 
benefits from the licensing of patents to any single community member.
 

	
 
Note that simply because GPLv2'd software has an implied patent license does
 
not mean that any patents held by a distributor of GPLv2'd code become
 
worthless. To the contrary, the patents are still valid and enforceable
 
against either:
 

	
 
\begin{enumerate}
 
 \renewcommand{\theenumi}{\alph{enumi}}
 
 \renewcommand{\labelenumi}{\textup{(\theenumi)}}
 

	
 
\item any software other than that licensed under the GPLv2 by the patent
 
  holder, and
 

	
 
\item any party that does not comply with the GPLv2
 
with respect to the licensed software.
 
\end{enumerate}
 

	
 
\newcommand{\compB}{$\mathcal{B}$}
 
\newcommand{\compA}{$\mathcal{A}$}
 

	
 
For example, if Company \compA{} has a patent on advanced Web browsing, but
 
also licenses a Web browsing software program under the GPLv2, then it
 
cannot assert the patent against any party that takes a license to its
 
program under the GPLv2. However, if a party uses that program without
 
complying with the GPLv2, then Company \compA{} can assert, not just copyright
 
infringement claims against the non-GPLv2-compliant party, but also
 
infringement of the patent, because the implied patent license only
 
extends to use of the software in accordance with the GPLv2. Further, if
 
Company \compB{} distributes a competitive advanced Web browsing program,
 
Company \compA{} is free to assert its patent against any user or
 
distributor of that product. It is irrelevant whether Company \compB's
 
program is distributed under the GPLv2, as Company \compB{} can not grant
 
implied licenses to Company \compA's patent.
 

	
 
This result also reassures companies that they need not fear losing their
 
proprietary value in patents to competitors through the GPLv2 implied patent
 
license, as only those competitors who adopt and comply with the GPLv2's
 
terms can benefit from the implied patent license. To continue the
 
example above, Company \compB{} does not receive a free ride on Company
 
\compA's patent, as Company \compB{} has not licensed-in and then
 
redistributed Company A's advanced Web browser under the GPLv2. If Company
 
\compB{} does do that, however, Company \compA{} still has not lost
 
competitive advantage against Company \compB{}, as Company \compB{} must then,
 
when it re-distributes Company \compA's program, grant an implied license
 
to any of its patents that cover the program. Further, if Company \compB{}
 
relicenses an improved version of Company A's program, it must do so under
 
the GPLv2, meaning that any patents it holds that cover the improved version
 
are impliedly licensed to any licensee. As such, the only way Company
 
\compB{} can benefit from Company \compA's implied patent license, is if it,
 
itself, distributes Company \compA's software program and grants an
 
implied patent license to any of its patents that cover that program.
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{Defending Freedom on Many Fronts}
 

	
 
Chapters~\ref{run-and-verbatim} and~\ref{source-and-binary} presented the
 
core freedom-defending provisions of GPLv2\@, which are in GPLv2~\S\S0--3.
 
GPLv2\S\S~4--7 of the GPLv2 are designed to ensure that GPLv2~\S\S0--3 are
 
not infringed, are enforceable, are kept to the confines of copyright law but
 
also  not trumped by other copyright agreements or components of other
 
entirely separate legal systems.  In short, while GPLv2~\S\S0--3 are the parts
 
of the license that defend the freedoms of users and programmers,
 
GPLv2~\S\S4--7 are the parts of the license that keep the playing field clear
 
so that \S\S 0--3 can do their jobs.
 

	
 
\section{GPLv2~\S4: Termination on Violation}
 
\label{GPLv2s4}
 

	
 
GPLv2~\S4 is GPLv2's termination clause.  Upon first examination, it seems
 
strange that a license with the goal of defending users' and programmers'
 
freedoms for perpetuity in an irrevocable way would have such a clause.
 
However, upon further examination, the difference between irrevocability
 
and this termination clause becomes clear.
 

	
 
The GPL is irrevocable in the sense that once a copyright holder grants
 
rights for someone to copy, modify and redistribute the software under terms
 
of the GPL, they cannot later revoke that grant.  Since the GPL has no
 
provision allowing the copyright holder to take such a prerogative, the
 
license is granted as long as the copyright remains in effect.\footnote{In
 
  the USA, due to unfortunate legislation, the length of copyright is nearly
 
  perpetual, even though the Constitution forbids perpetual copyright.} The
 
copyright holders have the right to relicense the same work under different
 
licenses (see Section~\ref{Proprietary Relicensing} of this tutorial), or to
 
stop distributing the GPLv2'd version (assuming GPLv2~\S3(b) was never used),
 
but they may not revoke the rights under GPLv2 already granted.
 

	
 
In fact, when an entity looses their right to copy, modify and distribute
 
GPL'd software, it is because of their \emph{own actions}, not that of the
 
copyright holder.  The copyright holder does not decided when GPLv2~\S4
 
termination occurs (if ever); rather, the actions of the licensee determine
 
that.
 

	
 
Under copyright law, the GPL has granted various rights and freedoms to
 
the licensee to perform specific types of copying, modification, and
 
redistribution.  By default, all other types of copying, modification, and
 
redistribution are prohibited.  GPLv2~\S4 says that if you undertake any of
 
those other types (e.g., redistributing binary-only in violation of GPLv2~\S3),
 
then all rights under the license --- even those otherwise permitted for
 
those who have not violated --- terminate automatically.
 

	
 
GPLv2~\S4 makes GPLv2 enforceable.  If licensees fail to adhere to the
 
license, then they are stuck without any permission under to engage in
 
activities covered by copyright law.  They must completely cease and desist
 
from all copying, modification and distribution of the GPL'd software.
 

	
 
At that point, violating licensees must gain the forgiveness of the copyright
 
holders to have their rights restored.  Alternatively, the violators could
 
negotiate another agreement, separate from GPL, with the copyright
 
holder.  Both are common practice, although
 
\tutorialpartsplit{as discussed in \textit{A Practical Guide to GPL
 
    Compliance}, there are }{Chapter~\ref{compliance-understanding-whos-enforcing}
 
  explains further } key differences between these two very different uses of GPL.
 

	
 
\section{GPLv2~\S5: Acceptance, Copyright Style}
 
\label{GPLv2s5}
 

	
 
GPLv2~\S5 brings us to perhaps the most fundamental misconception and common
 
confusion about GPLv2\@. Because of the prevalence of proprietary software,
 
most users, programmers, and lawyers alike tend to be more familiar with
 
EULAs. EULAs are believed by their authors to be contracts, requiring
 
formal agreement between the licensee and the software distributor to be
 
valid. This has led to mechanisms like ``shrink-wrap'' and ``click-wrap''
 
as mechanisms to perform acceptance ceremonies with EULAs.
 

	
 
The GPL does not need contract law to ``transfer rights.''  Usually, no rights
 
are transfered between parties.  By contrast, the GPL is primarily a permission
 
slip to undertake activities that would otherwise have been prohibited
 
by copyright law.  As such, GPL needs no acceptance ceremony; the
 
licensee is not even required to accept the license.
 

	
 
However, without the GPL, the activities of copying, modifying and
 
distributing the software would have otherwise been prohibited.  So, the
 
GPL says that you only accepted the license by undertaking activities that
 
you would have otherwise been prohibited without your license under GPL\@.
 
This is a certainly subtle point, and requires a mindset quite different
 
from the contractual approach taken by EULA authors.
 

	
 
An interesting side benefit to GPLv2~\S5 is that the bulk of users of Free
 
Software are not required to accept the license.  Undertaking fair and
 
unregulated use of the work, for example, does not bind you to the GPL,
 
since you are not engaging in activity that is otherwise controlled by
 
copyright law.  Only when you engage in those activities that might have an
 
impact on the freedom of others does license acceptance occur, and the
 
terms begin to bind you to fair and equitable sharing of the software.  In
 
other words, the GPL only kicks in when it needs to for the sake of
 
freedom.
 

	
 
While GPL is by default a copyright license, it is certainly still possible
 
to consider GPL as a contract as well.  For example, some distributors chose
 
to ``wrap'' their software in an acceptance ceremony to GPL, and nothing in
 
GPL prohibits that use.  Furthermore, the ruling in \textit{Jacobsen
 
  v. Katzer, 535 F.3d 1373, 1380 (Fed.Cir.2008)} indicates that \textbf{both}
 
copyright and contractual remedies may be sought by a copyright holder
 
seeking to enforce a license designed to uphold software freedom.
 

	
 
\section{Using GPL Both as a Contract and Copyright License}
 

	
 
\section{GPLv2~\S6: GPL, My One and Only}
 
\label{GPLv2s6}
 

	
 
A point that was glossed over in Section~\ref{GPLv2s4}'s discussion of GPLv2~\S4
 
was the irrevocable nature of the GPL\@. The GPLv2 is indeed irrevocable,
 
and it is made so formally by GPLv2~\S6.
 

	
 
The first sentence in GPLv2~\S6 ensures that as software propagates down the
 
distribution chain, that each licensor can pass along the license to each
 
new licensee.  Under GPLv2~\S6, the act of distributing automatically grants a
 
license from the original licensor to the next recipient.  This creates a
 
chain of grants that ensure that everyone in the distribution has rights
 
under the GPLv2\@.  In a mathematical sense, this bounds the bottom ---
 
making sure that future licensees get no fewer rights than the licensee before.
 

	
 
The second sentence of GPLv2~\S6 does the opposite; it bounds from the top.  It
 
prohibits any licensor along the distribution chain from placing
 
additional restrictions on the user.  In other words, no additional
 
requirements may trump the rights and freedoms given by GPLv2\@.
 

	
 
The final sentence of GPLv2~\S6 makes it abundantly clear that no individual
 
entity in the distribution chain is responsible for the compliance of any
 
other.  This is particularly important for noncommercial users who have
 
passed along a source offer under GPLv2~\S3(c), as they cannot be assured that
 
the issuer of the offer will honor their GPLv2~\S3 obligations.
 

	
 
In short, GPLv2~\S6 says that your license for the software is your one and
 
only copyright license allowing you to copy, modify and distribute the
 
software.
 

	
 
\section{GPLv2~\S7: ``Give Software Liberty or Give It Death!''}
 
\label{GPLv2s7}
 

	
 
In essence, GPLv2~\S7 is a verbosely worded way of saying for non-copyright
 
systems what GPLv2~\S6 says for copyright.  If there exists any reason that a
 
distributor knows of that would prohibit later licensees from exercising
 
their full rights under GPL, then distribution is prohibited.
 

	
 
Originally, this was designed as the title of this section suggests --- as
 
a last ditch effort to make sure that freedom was upheld.  However, in
 
modern times, it has come to give much more.  Now that the body of GPL'd
 
software is so large, patent holders who would want to be distributors of
 
GPL'd software have a tough choice.  They must choose between avoiding
 
distribution of GPL'd software that exercises the teachings of their
 
patents, or grant a royalty-free, irrevocable, non-exclusive license to
 
those patents.  Many companies have chosen the latter.
 

	
 
Thus, GPLv2~\S7 rarely gives software death by stopping its distribution.
 
Instead, it is inspiring patent holders to share their patents in the same
 
freedom-defending way that they share their copyrighted works.
 

	
 
\section{GPLv2~\S8: Excluding Problematic Jurisdictions}
 
\label{GPLv2s8}
 

	
 
GPLv2~\S8 is rarely used by copyright holders.  Its intention is that if a
 
particular country, say Unfreedonia, grants particular patents or allows
 
copyrighted interfaces (no country to our knowledge even permits those
 
yet), that the GPLv2'd software can continue in free and unabated
 
distribution in the countries where such controls do not exist.
 

	
 
As far as is currently known, GPLv2~\S8 has never been formally used by any
 
copyright holders.  Some have used GPLv2~\S8 to explain various odd special
 
topics of distribution, but generally speaking, this section is not
 
particularly useful and was actually removed in GPLv3.
 

	
 
% FIXME: integrate this into this section.
 

	
 
To our knowledge, no one has invoked this section to add an explicit
 
geographical distribution limitation since GPLv2 was released in 1991. We
 
have concluded that this provision is not needed and is not expected to be
 
needed in the future, and that it therefore should be removed.
 

	
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{Odds, Ends, and Absolutely No Warranty}
 

	
 
GPLv2~\S\S0--7 constitute the freedom-defending terms of the GPLv2.  The remainder
 
of the GPLv2 handles administrivia and issues concerning warranties and
 
liability.
 

	
 
\section{GPLv2~\S9: FSF as Stewards of GPL}
 
\label{GPLv2s9}
 

	
 
FSF reserves the exclusive right to publish future versions of the GPL\@;
 
GPLv2~\S9 expresses this.  While the stewardship of the copyrights on the body
 
of GPL'd software around the world is shared among thousands of
 
individuals and organizations, the license itself needs a single steward.
 
Forking of the code is often regrettable but basically innocuous.  Forking
 
of licensing is disastrous.
 

	
 
(Chapter~\ref{tale-of-two-copylefts} discusses more about the various
 
versions of GPL.)
 

	
 
\section{GPLv2~\S10: Relicensing Permitted}
 
\label{GPLv2s10}
 

	
 
GPLv2~\S10 reminds the licensee of what is already implied by the nature of
 
copyright law.  Namely, the copyright holder of a particular software
 
program has the prerogative to grant alternative agreements under separate
 
copyright licenses.
 

	
 
\section{GPLv2~\S11: No Warranty}
 
\label{GPLv2s11}
 

	
 
Most warranty disclaimer language shout at you.  The
 
\href{http://www.law.cornell.edu/ucc/2/2-316}{Uniform Commercial
 
  Code~\S2-316} requires that disclaimers of warranty be ``conspicuous''.
 
There is apparently general acceptance that \textsc{all caps} is the
 
preferred way to make something conspicuous, and that has over decades worked
 
its way into the voodoo tradition of warranty disclaimer writing.
 

	
 
Some have argued the GPL is unenforceable in some jurisdictions because
 
its disclaimer of warranties is impermissibly broad.  However, GPLv2~\S11
 
contains a jurisdictional savings provision, which states that it is to be
 
interpreted only as broadly as allowed by applicable law.  Such a
 
provision ensures that both it, and the entire GPL, is enforceable in any
 
jurisdiction, regardless of any particular law regarding the
 
permissibility of certain warranty disclaimers.
 

	
 
Finally, one important point to remember when reading GPLv2~\S11 is that GPLv2~\S1
 
permits the sale of warranty as an additional service, which GPLv2~\S11 affirms.
 

	
 
\section{GPLv2~\S12: Limitation of Liability}
 
\label{GPLv2s12}
 

	
 
There are many types of warranties, and in some jurisdictions some of them
 
cannot be disclaimed.  Therefore, usually agreements will have both a
 
warranty disclaimer and a limitation of liability, as we have in GPLv2~\S12.
 
GPLv2~\S11 thus gets rid of all implied warranties that can legally be
 
disavowed. GPLv2~\S12, in turn, limits the liability of the actor for any
 
warranties that cannot legally be disclaimed in a particular jurisdiction.
 

	
 
Again, some have argued the GPL is unenforceable in some jurisdictions
 
because its limitation of liability is impermissibly broad. However, \S
 
12, just like its sister, GPLv2~\S11, contains a jurisdictional savings
 
provision, which states that it is to be interpreted only as broadly as
 
allowed by applicable law.  As stated above, such a provision ensures that
 
both GPLv2~\S12, and the entire GPL, is enforceable in any jurisdiction,
 
regardless of any particular law regarding the permissibility of limiting
 
liability.
 

	
 
So end the terms and conditions of the GNU General Public License.
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{GPLv3}
 
\label{GPLv3}
 

	
 
This chapter discussed the text of GPLv3.  Much of this material herein
 
includes text that was adapted (with permission) from text that FSF
 
originally published as part of the so-called ``rationale documents'' for the
 
various discussion drafts of GPLv3.
 

	
 
The FSF ran a somewhat public process to develop GPLv3, and it was the first
 
attempt of its kind to develop a Free Software license this way.  Ultimately,
 
RMS was the primary author of GPLv3, but he listened to feedback from all
 
sorts of individuals and even for-profit companies.  Nevertheless, in
 
attempting to understand GPLv3 after the fact, the materials available from
 
the GPLv3 process have a somewhat ``drinking from the firehose'' effect.
 
This chapter seeks to explain GPLv3 to newcomers, who perhaps are familiar
 
with GPLv2.
 

	
 
\section{Understanding GPLv3 As An Upgraded GPLv2}
 

	
 
Ultimately, GPLv2 and GPLv3 co-exist as active licenses in regular use.  As
 
discussed in Chapter\~ref{tale-of-two-copylefts}, GPLv1 was never in regular
 
use alongside GPLv2.  However, given GPLv2's widespread popularity and
 
existing longevity by the time GPLv3 was published, it is not surprising that
 
some licensors have continued to prefer GPLv2-only or GPLv2-or-later as their
 
preferred license.  GPLv3 has gained major adoption by many projects, old and
 
new, but many projects have not upgraded due to (in some cases) mere laziness
 
and (in other cases) policy preference for some of GPLv2's terms.
 

	
 
Given this ``two GPLs'' world is the one we all live in, it makes sense to
 
consider GPLv3 in terms of how it differs from GPLv2.  Also, most of the best
 
GPL experts in the world must deal regularly with both licenses, and
 
admittedly have decades of experience of GPLv2 while the most experience with
 
GPLv3 that's possible is by default less than a decade.
 

	
 
These two factors usually cause even new students of GPL to start with GPLv2
 
and move on to GPLv3, and this tutorial follows that pattern.
 

	
 
Overall, the changes made in GPLv3 admittedly \textit{increased} the
 
complexity of the license.  The FSF stated at the start of the GPLv3 process
 
that they would have liked to oblige those who have asked for a simpler and
 
shorter GPL\@.  Ultimately, the FSF gave priority to making GPLv3 do the job
 
that needs to be done to build a better copyleft.  Obsession for concision
 
should never trump software freedom.
 

	
 
\section{GPLv3~\S0: Giving In On ``Defined Terms''}
 

	
 
One of lawyers' most common complaints about GPLv2 is that defined terms in
 
the document appear throughout.  Most licenses define terms up-front.
 
However, GPL was always designed both as a document that should be easily
 
understood both by lawyers and by software developers: it is a document
 
designed to give freedom to software developers and users, and therefore it
 
should be comprehensible to that constituency.
 

	
 
Interestingly enough, one coauthor of this tutorial who is both a lawyer and
 
a developer pointed out that in law school, she understood defined terms more
 
quickly than other law students precisely because of her programming
 
background.  For developers, having \verb0#define0 (in the C programming
 
language) or other types of constants and/or macros that automatically expand
 
in the place where they are used is second nature.  As such, adding a defined
 
terms section was not terribly problematic for developers, and thus GPLv3
 
adds one.  Most of these defined terms are somewhat straightforward and bring
 
forward better worded definitions from GPLv2.  Herein, this tutorial
 
discusses a few of the new ones.
 

	
 
GPLv3~\S0 includes definitions of four new terms not found in any form in
 
GPLv2: ``covered work'', ``propagate'', ``convey'', and ``Appropriate Legal
 
Notices''.
 

	
 
While ``covered by this license'' is a phrase found in GPLv2, defining it
 
more complete in a single as ``covered work'' enables some of the wording in
 
GPLv3 to be simpler and clearer than its GPLv2 counterparts.
 

	
 
% FIXME: does propagate  definition still work the same way in final draft?
 

	
 
The term ``propagate'' serves two purposes.  First, ``propagate'' provides a
 
simple and convenient means for distinguishing between the kinds of uses of a
 
work that the GPL imposes conditions on and the kinds of uses that the GPL
 
does not (for the most part) impose conditions on.
 

	
 
Second, ``propagate'' furthers our goal of making the license as global as
 
possible in its wording and effect.  When a work is licensed under the GPL,
 
the copyright law of some particular country will govern certain legal issues
 
arising under the license.  A term like ``distribute'' or its equivalent in
 
languages other than English, is used in several national copyright statutes.
 
The scope of ``distribution'' in the copyright context can differ from
 
country to country.  The GPL does not seek to necessarily use the specific
 
meaning of ``distribution'' that exists under United States copyright law or
 
any other country's copyright law.
 

	
 
Therefore, the GPL defines the term ``propagate'' by reference to activities
 
that require permission under ``applicable copyright law'', but excludes
 
execution and private modification from the definition.  GPLv3's definition
 
also gives examples of activities that may be included within ``propagation''
 
but it also makes clear that, under the copyright laws of a given country,
 
``propagation'' may include other activities as well.
 

	
 
% FIXME: paragraph number change , and more on Convey once definition comes.
 

	
 
The third paragraph of section 2 represents another effort to compensate for
 
variation in national copyright law.  We distinguish between propagation that
 
enables parties other than the licensee to make or receive copies, and other
 
forms of propagation.  As noted above, the meaning of ``distribution'' under
 
copyright law varies from country to country, including with respect to
 
whether making copies available to other parties (such as related public or
 
corporate entities) is ``distribution.'' ``Propagation,'' however, is a term
 
not tied to any statutory language.  Propagation that does not enable other
 
parties to make or receive copies --- for example, making private copies or
 
privately viewing the program --- is permitted unconditionally.  Propagation
 
that does enable other parties to make or receive copies is permitted as
 
``distribution,'' subject to the conditions set forth in sections 4--6.
 

	
 
% FIXME: Appropriate Legal Notices
 

	
 
\section{GPLv3~\S1: Understanding CCS}
 

	
 
% FIXME: Talk briefly about importance of CCS and reference compliance guide
 

	
 
% FIXME: reword source code a bit
 

	
 
Section 1 retains GPLv2's definition of ``source code'' and adds an
 
explicit definition of ``object code'' as ``any non-source version of a
 
work.''  Object code is not restricted to a narrow technical meaning and
 
is to be understood broadly as including any form of the work other than
 
the preferred form for making modifications to it.  Object code
 
therefore includes any kind of transformed version of source code, such
 
as bytecode.  The definition of object code also ensures that licensees
 
cannot escape their obligations under the GPL by resorting to shrouded
 
source or obfuscated programming.
 
Section 1 retains GPLv2's definition of ``source code'' and adds an explicit
 
definition of ``object code'' as ``any non-source version of a work.''
 
Object code is not restricted to a narrow technical meaning and is to be
 
understood broadly as including any form of the work other than the preferred
 
form for making modifications to it.  Object code therefore includes any kind
 
of transformed version of source code, such as bytecode.  The definition of
 
object code also ensures that licensees cannot escape their obligations under
 
the GPL by resorting to shrouded source or obfuscated programming.
 

	
 
% FIXME: CCS Coresponding Source updated to newer definition in later drafts
 

	
 
Keeping with the desire to ``round up'' definitions that were spread
 
throughout the text of GPLv2, the definition of CCS\footnote{Note that the
 
  preferred term by those who work with both GPLv2 and GPLv3 is ``Complete
 
  Corresponding Source'', abbreviated to ``CCS''.  Admittedly, the word
 
  ``complete'' no longer appears in GPLv3 (which uses the word ``all''
 
  instead).  However, both GPLv2 and the early drafts of GPLv3 itself used
 
  the word complete, and early GPLv3 drafts even included the phrase
 
  ``Complete Corresponding Source''.  Meanwhile, use of the acronym ``CCS''
 
  (sometimes, ``C&CS'') was so widespread among GPL enforcers that its use
 
  continues even though GPLv3-focused experts tend to say just the defined
 
  term of ``Corresponding Source''.}, or, as GPLv3 officially calls it,
 
``Corresponding Source'', is given in GPLv3~\S1\P4.  This definition is as
 
broad as necessary to protect users' exercise of their rights under the
 
GPL. We follow the definition with particular examples to remove any doubt
 
that they are to be considered Complete Corresponding Source Code. We wish to
 
make completely clear that a licensee cannot avoid complying with the
 
requirements of the GPL by dynamically linking an add-on component to the
 
original version of a program.
 

	
 
Though the definition of Complete Corresponding Source Code in the
 
second paragraph of section 1 is expansive, it is not sufficient to
 
protect users' freedoms in many circumstances.  For example, a GPL'd
 
program, or a modified version of such a program, might need to be
 
signed with a key or authorized with a code in order for it to run on
 
a particular machine and function properly. Similarly, a program that
 
produces digitally-restricted files might require a decryption code in
 
order to read the output.  
 

	
 
% FIXME: Standard Interface
 

	
 
% FIXME: System Libraries: it's in a different place and changed in later drafts
 

	
 
The final paragraph of section 1 revises the exception to the source code
 
distribution requirement in GPLv2 that we have sometimes called the system
 
library exception. This exception has been read to prohibit certain
 
distribution arrangements that we consider reasonable and have not sought to
 
prevent, such as distribution of gcc linked with a non-free C library that is
 
included as part of a larger non-free system. This is not to say that such
 
non-free libraries are legitimate; rather, preventing free software from
 
linking with these libraries would hurt free software more than it would hurt
 
proprietary software.
 

	
 
As revised, the exception has two parts. Part (a) rewords the GPLv2
 
exception for clarity but also removes the words ``unless that
 
component itself accompanies the executable.''  By itself, (a) would
 
be too permissive, allowing distributors to evade their
 
responsibilities under the GPL.  We have therefore added part (b) to
 
specify when a system library that is an adjunct of a major essential
 
operating system component, compiler, or interpreter does not trigger
 
the requirement to distribute source code.  The more low-level the
 
functionality provided by the library, the more likely it is to be
 
qualified for this exception.
 

	
 
\section{GPLv3~\S2: Basic Permissions}
 

	
 
% FIXME: phrase ``unmodified Program'' appears due to User Products exception
 

	
 
We have included the first sentence of section 2 to further internationalize
 
the GPL. Under the copyright laws of some countries, it may be necessary for
 
a copyright license to include an explicit provision setting forth the
 
duration of the rights being granted. In other countries, including the
 
United States, such a provision is unnecessary but permissible.
 

	
 
The first paragraph of section 2 also acknowledges that licensees under the
 
GPL enjoy rights of copyright fair use, or the equivalent under applicable
 
law. These rights are compatible with, and not in conflict with, the freedoms
 
that the GPL seeks to protect, and the GPL cannot and should not restrict
 
them.
 

	
 
% FIXME: propagate and convey
 

	
 
Section 2 distinguishes between activities of a licensee that are permitted
 
without limitation and activities that trigger additional requirements. The
 
second paragraph of section 2 guarantees the basic freedoms of privately
 
modifying and running the program. However, the right to privately modify and
 
run the program is terminated if the licensee brings a patent infringement
 
lawsuit against anyone for activities relating to a work based on the
 
program.
 

	
 

	
 
\section{GPLv3~\S3: What Hath DMCA Wrought}
 
\label{GPLv3s3}
 

	
 
% FIXME: reference the section in DMCA about this, maybe already there in
 
%        GPLv2 section?
 

	
 
% FIXME: Wrong paragraph now.
 

	
 
The second paragraph of section 3 declares that no GPL'd program is part of
 
an effective technological protection measure, regardless of what the program
 
does. Ill-advised legislation in the United States and other countries has
 
prohibited circumvention of such technological measures. If a covered work is
 
distributed as part of a system for generating or accessing certain data, the
 
effect of this paragraph is to prevent someone from claiming that some other
 
GPL'd program that accesses the same data is an illegal circumvention.
 

	
 
\section{GPLv3~\S4: Verbatim Copying}
 

	
 
% FIXME: there appear to be minor changes here in later drafts, fix that.
 

	
 
Section 4 has been revised from its corresponding section in GPLv2 in light
 
of the new section 7 on license compatibility. A distributor of verbatim
 
copies of the program's source code must obey any existing additional terms
 
that apply to parts of the program. In addition, the distributor is required
 
to keep intact all license notices, including notices of such additional
 
terms.
 

	
 
\section{GPLv3~\S5: Modified Source}
 

	
 
% FIXME: 5(a) is slightly different in final version
 

	
 
Section 5 contains a number of changes relative to the corresponding section
 
in GPLv2. Subsection 5a 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.
 

	
 
Under subsection 5a, as in the corresponding provision of GPLv2, the notices
 
must state ``the date of any change,'' which we interpret to mean the date of
 
one or more of the licensee's changes.  The best practice would be to include
 
the date of the latest change.  However, in order to avoid requiring revision
 
of programs distributed under ``GPL version 2 or later,'' we have retained
 
the existing wording.
 

	
 
% FIXME:  It's now (b) and (c).  Also, ``validity'' of proprietary
 
%         relicensing?  Give me a break.  I'll fix that.
 

	
 
Subsection 5b is the central copyleft provision of the license.  It now
 
states that the GPL applies to the whole of the work.  The license must be
 
unmodified, except as permitted by section 7, which allows GPL'd code to be
 
combined with parts covered by certain other kinds of free software licensing
 
terms. Another change in subsection 5b is the removal of the words ``at no
 
charge,'' which was often misinterpreted by commentators.  The last sentence
 
of subsection 5b explicitly recognizes the validity of disjunctive
 
dual-licensing.
 

	
 
%  FIXME: 5d.  Related to Appropriatey Legal notices
 

	
 

	
 
% follows 5d now, call it the ``final paragraph''
 

	
 
The paragraph following subsection 5c has been revised for clarity, but the
 
underlying meaning is unchanged. When independent non-derivative sections are
 
distributed for use in a combination that is a covered work, the whole of the
 
combination must be licensed under the GPL, regardless of the form in which
 
such combination occurs, including combination by dynamic linking. The final
 
sentence of the paragraph adapts this requirement to the new compatibility
 
provisions of section 7.
 

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

	
 
Section 6 of GPLv3, which clarifies and revises GPLv2 section 3, requires
 
distributors of GPL'd object code to provide access to the corresponding
 
source code, in one of four specified ways. As noted above, ``object code''
 
in GPLv3 is defined broadly to mean any non-source version of a work.
 

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

	
 
Subsections 6a and 6b 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, the
 
distribution of object code may either be accompanied by the machine-readable
 
source code, or it may be accompanied by a written offer to provide the
 
machine-readable source code to any third party. GPLv3 clarifies that the
 
medium for software interchange on which the machine-readable source code is
 
provided must be a durable physical medium. Subsection 6b does not prevent a
 
distributor from offering to provide source code to a third party by some
 
other means, such as transmission over a network, so long as the option of
 
obtaining source code on a physical medium is presented.
 

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

	
 
Subsection 6b revises the requirements for the written offer to provide
 
source code. As before, the offer must remain valid for at least three
 
years. In addition, even after three years, a distributor of a product
 
containing GPL'd object code must offer to provide source code for as long as
 
the distributor also continues to offer spare parts or customer support for
 
the product model. We believe that this is a reasonable and appropriate
 
requirement; a distributor should be prepared to provide source code if he or
 
she is prepared to provide support for other aspects of a physical product.
 

	
 
% FIXME: 10x language is gone.
 

	
 
Subsection 6b also increases the maximum permitted price for providing a copy
 
of the source code. GPLv2 stated that the price could be no more than the
 
cost of physically performing source distribution; GPLv3 allows the price to
 
be up to ten times the distributor's cost. It may not be practical to expect
 
some organizations to provide such copies at cost. Moreover, permitting such
 
organizations to charge ten times the cost is not particularly harmful, since
 
some recipient of the code can be expected to make the code freely available
 
on a public network server. We also recognize that there is nothing wrong
 
with profiting from providing copies of source code, provided that the price
 
of a copy is not so unreasonably high as to make it effectively unavailable.
 

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

	
 
Subsection 6c gives narrower permission than the corresponding subsection in
 
GPLv2.  The option of including a copy of an offer received in accordance
 
with subsection 6b is available only for private distribution of object code;
 
moreover, such private distribution is restricted to ``occasional
 
non-commercial distribution.''  This subsection makes clear that a
 
distributor cannot comply with the GPL merely by making object code available
 
on a publicly-accessible network server accompanied by a copy of the written
 
offer to provide source code received from an upstream distributor.
 

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

	
 
New subsection 6d, which revises the final paragraph of GPLv2 section 3,
 
addresses distribution of object code by offering access to copy the code
 
from a designated place, such as by enabling electronic access to a network
 
server.  Subsection 6d clarifies that the distributor must offer equivalent
 
access to copy the source code ``in the same way through the same place.''
 
This wording permits a distributor to offer a third party access to both
 
object code and source code on a single network portal or web page, even
 
though the access may include links to different physical servers.  For
 
example, a downstream distributor may provide a link to an upstream
 
distributor's server and arrange with the operator of that server to keep the
 
source code available for copying for as long as the downstream distributor
 
enables access to the object code.  This codifies what has been our
 
interpretation of GPLv2.
 

	
 
%FIXME: 6e, peer-to-peer
 

	
 

	
 
%  FIXME: Not final paragraph anymore. 
 

	
 
The final paragraph of section 6 takes account of the fact that the Complete
 
Corresponding Source Code may include added parts that carry non-GPL terms,
 
as permitted by section 7.
 

	
 
% FIXME: update lock-down section to work with more recent drafts
 

	
 
Though the definition of Complete Corresponding Source Code in the second
 
paragraph of section 1 is expansive, it is not sufficient to protect users'
 
freedoms in many circumstances. For example, a GPL'd program, or a modified
 
version of such a program, might need to be signed with a key or authorized
 
with a code in order for it to run on a particular machine and function
 
properly. Similarly, a program that produces digitally-restricted files might
 
require a decryption code in order to read the output.
 

	
 
The third paragraph of section 1 addresses this problem by making clear that
 
Complete Corresponding Source Code includes any such encryption,
 
authorization, and decryption codes. By requiring the inclusion of this
 
information whenever the GPL requires distribution of Complete Corresponding
 
Source Code, we thwart efforts to obstruct the goals of the GPL, and we
 
ensure that users will remain in control over their own machines. We
 
recognize an exception where use of the program normally implies that the
 
user already has the codes. For example, in secure systems a computer owner
 
might possess any keys needed to run a program, while the distributor of the
 
program might not have the keys.
 

	
 
% FIXME: installation information
 

	
 
%FIXME: publicly documented format
 

	
 
\section{Understanding License Compatibility}
 
\label{license-compatibility}
 

	
 
% FIXME: reword intro to license compatibility
 

	
 
Another challenge facing the free software community is the proliferation of
 
incompatible free software licenses. Of course, we cannot make the GPL
 
compatible with all such licenses. GPLv3 contains provisions that are
 
designed to reduce license incompatibility by making it easier for developers
 
to combine code carrying non-GPL terms with GPL'd code.
 

	
 

	
 
\section{GPLv3~\S7: Explicit Compatibility}
 

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

	
 
In GPLv3 we take a new approach to the issue of combining GPL'd code with
 
code governed by the terms of other free software licenses. Our view, though
 
it was not explicitly stated in GPLv2 itself, was that GPLv2 allowed such
 
combinations only if the non-GPL licensing terms permitted distribution under
 
the GPL and imposed no restrictions on the code that were not also imposed by
 
the GPL. In practice, we supplemented this policy with a structure of
 
exceptions for certain kinds of combinations.
 

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

	
 
Section 7 of GPLv3 implements a more explicit policy on license
 
compatibility. It formalizes the circumstances under which a licensee may
 
release a covered work that includes an added part carrying non-GPL terms. We
 
distinguish between terms that provide additional permissions, and terms that
 
place additional requirements on the code, relative to the permissions and
 
requirements established by applying the GPL to the code.
 

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

	
 
Section 7 first explicitly allows added parts covered by terms with
 
additional permissions to be combined with GPL'd code. This codifies our
 
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.
 

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

	
 
In its treatment of terms that impose additional requirements, section 7
 
extends the range of licensing terms with which the GPL is compatible. An
 
added part carrying additional requirements may be combined with GPL'd code,
 
but only if those requirements belong to an set enumerated in section 7. We
 
must, of course, place some limit on the kinds of additional requirements
 
that we will accept, to ensure that enhanced license compatibility does not
 
defeat the broader freedoms advanced by the GPL. Unlike terms that grant
 
additional permissions, terms that impose additional requirements cannot be
 
removed by a downstream user of the combined GPL'd work, because no such user
 
would have the right to do so.
 

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

	
 
Under subsections 7a and 7b, the requirements may include preservation of
 
copyright notices, information about the origins of the code or alterations
 
of the code, and different warranty disclaimers. Under subsection 7c, the
 
requirements may include limitations on the use of names of contributors and
 
on the use of trademarks for publicity purposes. In general, we permit these
 
requirements in added terms because many free software licenses include them
 
and we consider them to be unobjectionable. Because we support trademark fair
 
use, the limitations on the use of trademarks may seek to enforce only what
 
is required by trademark law, and may not prohibit what would constitute fair
 
use.
 

	
 
% FIXME: 7d-f
 

	
 
% FIXME:  removing additional restrictions
 

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

	
 
Section 7 requires a downstream user of a covered work to preserve the
 
non-GPL terms covering the added parts just as they must preserve the GPL, as
 
long as any substantial portion of those parts is present in the user's
 
version.
 

	
 

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

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

	
 
GPLv2 provided for automatic termination of the rights of a person who
 
copied, modified, sublicensed, or distributed a work in violation of the
 
license.  Automatic termination can be too harsh for those who have committed
 
an inadvertent violation, particularly in cases involving distribution of
 
large collections of software having numerous copyright holders.  A violator
 
who resumes compliance with GPLv2 would need to obtain forgiveness from all
 
copyright holders, but even to contact them all might be impossible.
 

	
 
% FIXME: needs to be updated to describe more complex termination
 

	
 
Section 8 of GPLv3 replaces automatic termination with a non-automatic
 
termination process.  Any copyright holder for the licensed work may opt to
 
terminate the rights of a violator of the license, provided that the
 
copyright holder has first given notice of the violation within 60 days of
 
its most recent occurrence. A violator who has been given notice may make
 
efforts to enter into compliance and may request that the copyright holder
 
agree not exercise the right of termination; the copyright holder may choose
 
to grant or refuse this request.
 

	
 
% FIXME: needs to be updated to describe more complex termination
 

	
 
If a licensee who is in violation of GPLv3 acts to correct the violation and
 
enter into compliance, and the licensee receives no notice of the past
 
violation within 60 days, then the licensee need not worry about termination
 
of rights under the license.
 

	
 
\section{GPLv3~\S9: Acceptance}
 

	
 
% FIXME
 

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

	
 
% FIXME
 

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

	
 
% FIXME:  probably needs a lot of work, these provisions changed over time.
 

	
 
GPLv3 adds a new section on licensing of patents. GPLv2 relies on an implied
 
patent license. The doctrine of implied license is one that is recognized
 
under United States patent law but may not be recognized in other
 
jurisdictions. We have therefore decided to make the patent license grant
 
explicit in GPLv3. Under section 11, a redistributor of a GPL'd work
 
automatically grants a nonexclusive, royalty-free and worldwide license for
 
any patent claims held by the redistributor, if those claims would be
 
infringed by the work or a reasonably contemplated use of the work.
 

	
 
% FIXME:  probably needs a lot of work, these provisions changed over time.
 

	
 
The patent license is granted both to recipients of the redistributed work
 
and to any other users who have received any version of the work. Section 11
 
therefore ensures that downstream users of GPL'd code and works derived from
 
GPL'd code are protected from the threat of patent infringement allegations
 
made by upstream distributors, regardless of which country's laws are held to
 
apply to any particular aspect of the distribution or licensing of the GPL'd
 
code.
 

	
 
% FIXME:  probably needs a lot of work, these provisions changed over time.
 

	
 
A redistributor of GPL'd code may benefit from a patent license that has been
 
granted by a third party, where the third party otherwise could bring a
 
patent infringement lawsuit against the redistributor based on the
 
distribution or other use of the code. In such a case, downstream users of
 
the redistributed code generally remain vulnerable to the applicable patent
 
claims of the third party. This threatens to defeat the purposes of the GPL,
 
for the third party could prevent any downstream users from exercising the
 
freedoms that the license seeks to guarantee.
 

	
 
% FIXME:  probably needs a lot of work, these provisions changed over time.
 

	
 
The second paragraph of section 11 addresses this problem by requiring the
 
redistributor to act to shield downstream users from these patent claims. The
 
requirement applies only to those redistributors who distribute knowingly
 
relying on a patent license. Many companies enter into blanket patent
 
cross-licensing agreements. With respect to some such agreements, it would
 
not be reasonable to expect a company to know that a particular patent
 
license covered by the agreement, but not specifically mentioned in it,
 
protects the company's distribution of GPL'd code.
 

	
 
% FIXME: does this still fit with the final retaliation provision?
 

	
 
This narrowly-targeted patent retaliation provision is the only form of
 
patent retaliation that GPLv3 imposes by its own force. We believe that it
 
strikes a proper balance between preserving the freedom of a user to run and
 
modify a program, and protecting the rights of other users to run, modify,
 
copy, and distribute code free from threats by patent holders. It is
 
particularly intended to discourage a GPL licensee from securing a patent
 
directed to unreleased modifications of GPL'd code and then suing the
 
original developers or others for making their own equivalent modifications.
 

	
 
Several other free software licenses include significantly broader patent
 
retaliation provisions. In our view, too little is known about the
 
consequences of these forms of patent retaliation. As we explain below,
 
section 7 permits distribution of a GPL'd work that includes added parts
 
covered by terms other than those of the GPL. Such terms may include certain
 
kinds of patent retaliation provisions that are broader than those of section
 
2.
 

	
 
\section{GPLv3~\S12: Familiar as GPLv2 \S 7}
 

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

	
 
The wording in the first sentence of section 12 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 what has been
 
our interpretation of GPLv2.  
 

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

	
 
We have removed the limited severability clause of GPLv2 section 7 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. We have also removed
 
the final sentence of GPLv2 section 7, which we consider to be unnecessary.
 

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

	
 
% FIXME
 

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

	
 
% 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
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\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
 
themselves become part of proprietary software. However, if glibc were
 
released under GPL, it would require that any application distributed for
 
the GNU/Linux platform be released under 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 derivative 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 derivative 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 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 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 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 derivative works, so the redistributors can make
 
some proprietary derivatives. Since we simply do not allow the
 
license to stretch as far as copyright law does regarding what
 
derivative works must be relicensed under the same terms, we must go
 
further to explain which derivative works we will allow to 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 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 LGPL\@.
 

	
 
In short, FSF designed 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 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}
 

	
 
LGPL's preamble sets forth the limits to which the license seeks to go in
 
chasing these goals. 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 derivative works: ``works that use
 
the library,'' and ``works based on the library.''  Unlike GPL, LGPL must
 
draw some lines regarding derivative works. We do this here in this
 
license because we specifically seek to liberalize the rights afforded to
 
those who make derivative works. In GPL, we reach as far as copyright law
 
allows. In 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 derivative works and prohibit
 
others, LGPL distinguishes between two classes of derivative works:
 
``works based on the library,'' and ``works that use the library.''  The
 
distinction is drawn on the bright line of binary (or runtime) derivative
 
works and source code derivatives. 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{GPL-Section-3} of this document) that binary programs when
 
compiled and linked with GPL'd software are derivative works of that GPL'd
 
software. 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 derivative works are controlled by the terms of the license (in GPLv2~\S3),
 
and distributors of such binary derivatives must release full
 
corresponding source\@.
 

	
 
In the case of LGPL, these are precisely the types of derivative works
 
we wish to permit. 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 derivative work, called \lplusi{}, that the user can
 
  run.
 

	
 
\item Since \lplusi{} is a derivative work of both \worki{} and \workl{},
 
  the license of \workl{} (the LGPL) can put restrictions on the license
 
  of \lplusi{}. In fact, this is what 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 derivative work of
 
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 create a derivative work
 
  by combining 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
0 comments (0 inline, 0 general)