Changeset - e893d9d78296
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-03-18 22:33:18
bkuhn@ebb.org
Wordsmith and typo fixes.
1 file changed with 3 insertions and 3 deletions:
0 comments (0 inline, 0 general)
gpl-lgpl.tex
Show inline comments
...
 
@@ -1586,772 +1586,772 @@ 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.''  No rights
 
are transfered between parties. By contrast, the GPL is a permission
 
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, it needs no acceptance ceremony; the
 
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.
 

	
 
\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, including IBM, the largest patent holder
 
in the world, 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.
 

	
 
It is a partial ``out'' from GPLv2~\S7. Without GPLv2~\S8, if a copyright holder
 
knew of a patent in a particular country licensed in a GPL-incompatible
 
way, then she could not distribute under GPL, because the work could
 
legitimately end up in the hands of citizens of Unfreedonia.
 

	
 
It is an inevitable but sad reality that some countries are freer than
 
others. GPLv2~\S8 exists to permit distribution in those countries that are
 
free without otherwise negating parts of the license.
 

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

	
 
FSF has only released two versions of GPL --- in 1989 and 1991. GPL
 
version 3 is under current internal drafting. FSF's plan is to have a
 
long and engaging comment period. The goal of GPL is to defend freedom, and
 
a gigantic community depends on that freedom now. FSF hopes to take all
 
stakeholders' opinions under advisement.
 

	
 
\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}
 

	
 
All warranty disclaimer language tends to be shouted in all capital
 
letters. Apparently, there was once a case where the disclaimer language
 
of an agreement was negated because it was not ``conspicuous'' to one of
 
the parties. Therefore, to make such language ``conspicuous,'' people
 
started placing it in bold or capitalizing the entire text. It now seems
 
to be 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. \S
 
11 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}
 

	
 
\section{Understanding GPLv3 As An Upgraded GPLv2}
 

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

	
 
\section{GPLv3~\S1: Understanding CCS}
 

	
 
\section{GPLv3~\S2: Basic Permissions}
 

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

	
 
\section{GPLv3~\S5: Modified Source}
 

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

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

	
 
\section{GPLv3~\S7: Explicit Compatibility}
 

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

	
 
\section{GPLv3~\S9: Acceptance}
 

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

	
 
\section{GPLv3~\S11: Explicit Patent Licensing}
 
\label{GPLv3s11}
 
\section{GPLv3~\S12: Familiar as GPLv2 \S 7}
 

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

	
 
\section{GPLv3~\S14: So, When's GPLv4?}
 
\label{GPlv2s14}
 
\section{GPLv3~\S15--17: Warranty Disclaimers and Liability Limitation}
 

	
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\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
0 comments (0 inline, 0 general)