Changeset - 54d57e9281d9
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-03-18 21:02:29
bkuhn@ebb.org
Properly label license names and proper formatting of section symbol.

Throughout the document, there were inconsistencies in how the \S was used,
and also there were many places where it was used to refer to section numbers
but not the document they were in.

Since the tutorial now covers so many different licenses, be pedantic about
this throughout and ensure the \S is never without its document name.
1 file changed with 208 insertions and 208 deletions:
gpl-lgpl.tex
208
208
0 comments (0 inline, 0 general)
gpl-lgpl.tex
Show inline comments
...
 
@@ -324,8 +324,8 @@ law.\footnote{This statement is admittedly an oversimplification. Patents and
 
  restrictions make software proprietary.} Copyright law, with respect to
 
software, typically governs copying, modifying, and redistributing that
 
software (For details of this in the USA, see
 
\href{http://www.copyright.gov/title17/92chap1.html#106}{\S 106} and
 
\href{http://www.copyright.gov/title17/92chap1.html#117}{\S 117} of
 
\href{http://www.copyright.gov/title17/92chap1.html#106}{\S~106} and
 
\href{http://www.copyright.gov/title17/92chap1.html#117}{\S~117} of
 
\href{http://www.law.cornell.edu/uscode/text/17}{Title 17} of the
 
\textit{United States Code}).\footnote{Copyright law in general also governs
 
  ``public performance'' of copyrighted works. There is no generally agreed
...
 
@@ -344,7 +344,7 @@ federal legislation.  Software, since it is ``an original works of authorship
 
fixed in any tangible medium of expression ...  from which they can be
 
perceived, reproduced, or otherwise communicated, either directly or with the
 
aid of a machine or device'' (as stated in
 
\href{http://www.law.cornell.edu/uscode/text/17/102}{17 USC \S 102}), is thus
 
\href{http://www.law.cornell.edu/uscode/text/17/102}{17 USC \S~102}), is thus
 
covered by the statues, and is copyrighted by default.
 

	
 
However, software, in its natural state without copyright, is Free
...
 
@@ -406,7 +406,7 @@ the passage of time.
 

	
 
The best example of software known to be in the public domain is software
 
that is published exclusively produced by the USA government.  Under
 
\href{http://www.law.cornell.edu/uscode/text/17/105}{17 USC 101 \S 105}, all
 
\href{http://www.law.cornell.edu/uscode/text/17/105}{17 USC 101 \S~105}, all
 
works published by the USA Government are not copyrightable.
 

	
 
\subsection{Why Copyright Free Software?}
...
 
@@ -813,18 +813,18 @@ worth noting below the three key changes that GPLv2 brought:
 
\begin{itemize}
 

	
 
\item Software patents and their danger are explicitly mentioned, inspiring
 
  (in part) the addition of GPLv2\S\S5--7.  (These sections are discussed in
 
  (in part) the addition of GPLv2~\S\S5--7.  (These sections are discussed in
 
  detail in \S~\ref{GPLv2s5}, \S~\ref{GPLv2s6} and \S~\ref{GPLv2s7} of this
 
  tutorial.)
 

	
 
\item GPLv2\S2's copyleft terms are expanded to more explicitly discuss the
 
  issue of combined works.  (GPLv2\S2 is discussed in detail in
 
\item GPLv2~\S2's copyleft terms are expanded to more explicitly discuss the
 
  issue of combined works.  (GPLv2~\S2 is discussed in detail in
 
  \S~\ref{GPLv2s2} in this tutorial).
 

	
 
\item GPLv2\S3 includes more detailed requirements, including the phrase
 
\item GPLv2~\S3 includes more detailed requirements, including the phrase
 
 ``the scripts used to control compilation and installation of the
 
  executable'', which is a central component of current GPLv2 enforcement
 
  .  (GPLv2\S3 is discussed in detail in
 
  .  (GPLv2~\S3 is discussed in detail in
 
  \S~\ref{GPLv2s3} in this tutorial).
 
\end{itemize}
 

	
...
 
@@ -968,15 +968,15 @@ GPLv2\@. In this chapter, we consider the first two sections: GPLv2 \S\S
 
0--2. These are the straightforward sections of the GPL that define the
 
simplest rights that the user receives.
 

	
 
\section{GPLv2 \S 0: Freedom to Run}
 
\section{GPLv2~\S0: Freedom to Run}
 
\label{GPLv2s0}
 

	
 
\S 0, the opening section of GPLv2, sets forth that the copyright law governs
 
GPLv2~\S0, the opening section of GPLv2, sets forth that the copyright law governs
 
the work.  It specifically points out that it is the ``copyright
 
holder'' who decides if a work is licensed under its terms and explains
 
how the copyright holder might indicate this fact.
 

	
 
A bit more subtly, \S 0 makes an inference that copyright law is the only
 
A bit more subtly, GPLv2~\S0 makes an inference that copyright law is the only
 
system that can restrict the software.  Specifically, it states:
 
\begin{quote}
 
Activities other than copying, distribution and modification are not
...
 
@@ -1015,11 +1015,11 @@ to run specifically by stating the following:
 
\begin{quote}
 
''The act of running the Program is not restricted.''
 
\end{quote}
 
Thus, users are explicitly given the freedom to run by \S 0.
 
Thus, users are explicitly given the freedom to run by GPLv2~\S0.
 

	
 
\medskip
 

	
 
The bulk of \S 0 not yet discussed gives definitions for other terms used
 
The bulk of GPLv2~\S0 not yet discussed gives definitions for other terms used
 
throughout.  The only one worth discussing in detail is ``work based on
 
the Program''.  The reason this definition is particularly interesting is
 
not for the definition itself, which is rather straightforward, but
...
 
@@ -1037,22 +1037,22 @@ software work under copyright law.  However, no copyright license --- not
 
even the GNU GPL --- can be blamed for this.  Legislators and court
 
opinions must give us guidance to decide the border cases.
 

	
 
\section{GPLv2 \S 1: Verbatim Copying}
 
\section{GPLv2~\S1: Verbatim Copying}
 
\label{GPLv2s1}
 

	
 
GPLv2 \S 1 covers the matter of redistributing the source code of a program
 
GPLv2~\S1 covers the matter of redistributing the source code of a program
 
exactly as it was received. This section is quite straightforward.
 
However, there are a few details worth noting here.
 

	
 
The phrase ``in any medium'' is important. This, for example, gives the
 
The phrase ``in any medium'' is important.  This, for example, gives the
 
freedom to publish a book that is the printed copy of the program's source
 
code. It also allows for changes in the medium of distribution. Some
 
code.  It also allows for changes in the medium of distribution.  Some
 
vendors may ship Free Software on a CD, but others may place it right on
 
the hard drive of a pre-installed computer. Any such redistribution media
 
the hard drive of a pre-installed computer.  Any such redistribution media
 
is allowed.
 

	
 
Preservation of copyright notice and license notifications are mentioned
 
specifically in \S 1. These are in some ways the most important part of
 
specifically in GPLv2~\S1.  These are in some ways the most important part of
 
the redistribution, which is why they are mentioned by name. The GPL
 
always strives to make it abundantly clear to anyone who receives the
 
software what its license is. The goal is to make sure users know their
...
 
@@ -1071,8 +1071,8 @@ GPL requires redistributors to keep the disclaimer very visible. (See
 
Sections~\ref{GPLv2s11} and~\ref{GPLv2s12} of this tutorial for more on GPL's
 
warranty disclaimers.)
 

	
 
Note finally that \S 1 begins to set forth the important defense of
 
commercial freedom. \S 1 clearly states that in the case of verbatim
 
Note finally that GPLv2~\S1 begins to set forth the important defense of
 
commercial freedom. GPLv2~\S1 clearly states that in the case of verbatim
 
copies, one may make money. Redistributors are fully permitted to charge
 
for the redistribution of copies of Free Software. In addition, they may
 
provide the warranty protection that the GPL disclaims as an additional
...
 
@@ -1085,13 +1085,13 @@ on making a profit from Free Software redistribution.)
 

	
 
We digress for this chapter from our discussion of GPL's exact text to
 
consider the matter of derivative works --- a concept that we must
 
understand fully before considering \S\S 2--3 of GPLv2\@. GPL, and Free
 
understand fully before considering GPLv2~\S\S2--3\@. GPL, and Free
 
Software licensing in general, relies critically on the concept of
 
``derivative work'' since software that is ``independent,'' (i.e., not
 
``derivative'') of Free Software need not abide by the terms of the
 
applicable Free Software license. As much is required by \S 106 of the
 
Copyright Act, 17 U.S.C. \S 106 (2002), and admitted by Free Software
 
licenses, such as the GPL, which (as we have seen) states in \S 0 that ``a
 
applicable Free Software license. As much is required by \S~106 of the
 
Copyright Act, 17 U.S.C. \S~106 (2002), and admitted by Free Software
 
licenses, such as the GPL, which (as we have seen) states in GPLv2~\S0 that ``a
 
`work based on the Program' means either the Program or any derivative
 
work under copyright law.'' It is being a derivative work of Free Software
 
that triggers the necessity to comply with the terms of the Free Software
...
 
@@ -1144,7 +1144,7 @@ whole, represent an original work of authorship, is a ``derivative work.''
 
These are the only provisions in the Copyright Act relevant to the
 
determination of what constitutes a derivative work of a computer
 
program. Another provision of the Copyright Act that is also relevant to
 
the definition of derivative work is \S 102(b), which reads as follows:
 
the definition of derivative work is \S~102(b), which reads as follows:
 

	
 
\begin{quotation}
 
In no case does copyright protection for an original work of authorship
...
 
@@ -1232,7 +1232,7 @@ determining which elements of a program are unprotectable, courts employ a
 
myriad of rules and procedures to sift from a program all the portions
 
that are not eligible for copyright protection.
 

	
 
First, as set forth in \S 102(b) of the Copyright Act, any and all ideas
 
First, as set forth in \S~102(b) of the Copyright Act, any and all ideas
 
embodied in the program are to be denied copyright protection. However,
 
implementing this rule is not as easy as it first appears. The courts
 
readily recognize the intrinsic difficulty in distinguishing between ideas
...
 
@@ -1338,7 +1338,7 @@ identical in order to be held a derivative work of an original, while
 

	
 
The First Circuit expressly rejected the AFC test and, instead, takes a
 
much narrower view of the meaning of derivative work for software. The
 
First Circuit holds that ``method of operation,'' as used in \S 102(b) of
 
First Circuit holds that ``method of operation,'' as used in \S~102(b) of
 
the Copyright Act, refers to the means by which users operate
 
computers. Lotus Development Corp. v. Borland IntÂ’l., Inc., 49 F.3d 807
 
(1st Cir. 1995). More specifically, the court held that a menu command
...
 
@@ -1349,7 +1349,7 @@ controlled. As a result, under the First CircuitÂ’s test, literal copying
 
of a menu command hierarchy, or any other ``method of operation,'' cannot
 
form the basis for a determination that one work is a derivative of
 
another. It is also reasonable to expect that the First Circuit will read
 
the unprotectable elements set forth in \S 102(b) broadly, and, as such,
 
the unprotectable elements set forth in \S~102(b) broadly, and, as such,
 
promulgate a definition of derivative work that is much narrower than that
 
which exists under the AFC test.
 

	
...
 
@@ -1412,50 +1412,50 @@ adopts norms avoiding such risk.
 

	
 
In this chapter, we discuss the two core sections that define the rights
 
and obligations for those who modify, improve, and/or redistribute GPL'd
 
software. These sections, \S\S 2--3, define the central core rights and
 
software. These sections, GPLv2~\S\S2--3, define the central core rights and
 
requirements of GPLv2\@.
 

	
 
\section{GPLv2 \S 2: Share and Share Alike}
 
\section{GPLv2~\S2: Share and Share Alike}
 

	
 
For many, this is where the ``magic'' happens that defends software
 
freedom along the distribution chain. \S 2 is the only place in the GPL
 
freedom along the distribution chain. GPLv2~\S2 is the only place in the GPL
 
that governs the modification controls of copyright law. If someone
 
modifies a GPL'd program, she is bound in the making those changes by \S
 
2. The goal here is to ensure that the body of GPL'd software, as it
 
modifies a GPL'd program, she is bound in the making those changes by
 
GPLv2~\S2.  The goal here is to ensure that the body of GPL'd software, as it
 
continues and develops, remains Free as in freedom.
 

	
 
To achieve that goal, \S 2 first sets forth that the rights of
 
To achieve that goal, GPLv2~\S2 first sets forth that the rights of
 
redistribution of modified versions are the same as those for verbatim
 
copying, as presented in \S 1. Therefore, the details of charging,
 
keeping copyright notices intact, and other \S 1 provisions are in tact
 
copying, as presented in GPLv2~\S1. Therefore, the details of charging,
 
keeping copyright notices intact, and other GPLv2~\S1 provisions are in tact
 
here as well. However, there are three additional requirements.
 

	
 
The first (\S 2(a)) requires that modified files carry ``prominent
 
The first (GPLv2~\S2(a)) requires that modified files carry ``prominent
 
notices'' explaining what changes were made and the date of such
 
changes. The goal here is not to put forward some specific way of
 
marking changes nor controlling the process of how changes get made.
 
Primarily, \S 2(a) seeks to ensure that those receiving modified
 
Primarily, GPLv2~\S2(a) seeks to ensure that those receiving modified
 
versions know the history of changes to the software. For some users,
 
it is important to know that they are using the standard version of
 
program, because while there are many advantages to using a fork,
 
there are a few disadvantages. Users should be informed about the
 
historical context of the software version they use, so that they can
 
make proper support choices. Finally, \S 2(a) serves an academic
 
make proper support choices. Finally, GPLv2~\S2(a) serves an academic
 
purpose --- ensuring that future developers can use a diachronic
 
approach to understand the software.
 

	
 
\medskip
 

	
 
The second requirement (\S 2(b)) contains the four short lines that embody
 
The second requirement (GPLv2~\S2(b)) contains the four short lines that embody
 
the legal details of ``share and share alike.''  These 46 words are
 
considered by some to be the most worthy of careful scrutiny because \S
 
2(b) can be a source of great confusion when not properly understood.
 
considered by some to be the most worthy of careful scrutiny because GPLv2~\S2(b)
 
can be a source of great confusion when not properly understood.
 

	
 
In considering \S 2(b), first note the qualifier: it only applies to
 
In considering GPLv2~\S2(b), first note the qualifier: it only applies to
 
derivative works that ``you distribute or publish.''  Despite years of
 
education efforts by FSF on this matter, many still believe that modifiers
 
of GPL'd software are required by the license to publish or otherwise
 
share their changes. On the contrary, \S 2(b) {\bf does not apply if} the
 
share their changes. On the contrary, GPLv2~\S2(b) {\bf does not apply if} the
 
changes are never distributed. Indeed, the freedom to make private,
 
personal, unshared changes to software for personal use only should be
 
protected and defended.\footnote{FSF does maintain that there is an {\bf
...
 
@@ -1464,19 +1464,19 @@ protected and defended.\footnote{FSF does maintain that there is an {\bf
 
  is a clear distinction between what one {\bf ought} to do and what one
 
  {\bf must} do.}
 

	
 
Next, we again encounter the same matter that appears in \S 0, in the
 
Next, we again encounter the same matter that appears in GPLv2~\S0, in the
 
following text:
 
\begin{quote}
 
``...that in whole or part contains or is derived from the Program or any part thereof.''
 
\end{quote}
 
Again, the GPL relies here on what the copyright law says is a derivative
 
work. If, under copyright law, the modified version ``contains or is
 
derived from'' the GPL'd software, then the requirements of \S 2(b)
 
derived from'' the GPL'd software, then the requirements of GPLv2~\S2(b)
 
apply. The GPL invokes its control as a copyright license over the
 
modification of the work in combination with its control over distribution
 
of the work.
 

	
 
The final clause of \S 2(b) describes what the licensee must do if she is
 
The final clause of GPLv2~\S2(b) describes what the licensee must do if she is
 
distributing or publishing a work that is deemed a derivative work under
 
copyright law --- namely, the following:
 
\begin{quote}
...
 
@@ -1487,7 +1487,7 @@ That is probably the most tightly-packed phrase in all of the GPL\@.
 
Consider each subpart carefully.
 

	
 
The work ``as a whole'' is what is to be licensed. This is an important
 
point that \S 2 spends an entire paragraph explaining; thus this phrase is
 
point that GPLv2~\S2 spends an entire paragraph explaining; thus this phrase is
 
worthy of a lengthy discussion here. As a programmer modifies a software
 
program, she generates new copyrighted material --- fixing expressions of
 
ideas into the tangible medium of electronic file storage. That
...
 
@@ -1512,7 +1512,7 @@ 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, \S 2 lays out the terms by which \gplusi{} may be
 
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
...
 
@@ -1528,11 +1528,11 @@ say that this restriction is any way unreasonable is simply ludicrous.
 

	
 
\medskip
 

	
 
The next phrase of note in \S 2(b) is ``licensed...at no charge.''
 
The next phrase of note in GPLv2~\S2(b) is ``licensed...at no charge.''
 
This is a source of great confusion to many. Not a month goes by that
 
FSF does not receive an email that claims to point out ``a
 
contradiction in GPL'' because \S 2 says that redistributors cannot
 
charge for modified versions of GPL'd software, but \S 1 says that
 
contradiction in GPL'' because GPLv2~\S2 says that redistributors cannot
 
charge for modified versions of GPL'd software, but GPLv2~\S1 says that
 
they can. The ``at no charge'' 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
...
 
@@ -1544,27 +1544,27 @@ 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.
 

	
 
\S 2(b) further states that the software must ``be licensed...to all
 
GPLv2~\S2(b) further states that the software must ``be licensed...to all
 
third parties.''  This too has led to some confusions, 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 \S 2(b) does require redistributors to license the derivative works in
 
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, \S 2(b) says what terms under which the third parties must
 
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 GPL. When an entity \emph{chooses} to redistribute
 
a derivative work of GPL'd software, the license of that whole derivative
 
work must be GPL and only GPL\@. In this manner, \S 2(b) dovetails nicely
 
with \S 6 (as discussed in Section~\ref{GPLv2s6} of this tutorial).
 
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 \S 2 is worth special mention. It is possible and
 
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
...
 
@@ -1580,7 +1580,7 @@ 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 \S 3: Producing Binaries}
 
\section{GPLv2~\S3: Producing Binaries}
 
\label{GPL-Section-3}
 
% FIXME: need name of a novelist who writes very obscurely and obliquely.
 

	
...
 
@@ -1612,33 +1612,33 @@ 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. \S 3 addresses the matter of creation and distribution of
 
source code. GPLv2~\S3 addresses the matter of creation and distribution of
 
binary versions.
 

	
 
Under GPLv2\S 3, binary versions may be created and distributed under the
 
terms of \S\S 1--2, so all the material previously discussed applies
 
here. However, \S 3 must go a bit further. Access to the software's
 
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. \S 3 must ensure that the binaries are never
 
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.
 

	
 
\S 3 permits distribution of binaries, and then offers three options for
 
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 \S 3(a).
 
least complicated is the option given under GPLv2~\S3(a).
 

	
 
\S 3(a) offers the option to directly accompany the source code alongside
 
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 \S 3(a), the source code provided must be the ``corresponding source
 
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.''  A later paragraph of \S 3
 
That source code must also be ``complete.''  A later paragraph of GPLv2~\S3
 
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
...
 
@@ -1647,7 +1647,7 @@ 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\S 3 is defending against a tactic that has in fact been
 
Furthermore, GPLv2~\S3 is defending against a tactic that has in fact been
 
seen in FSF's 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
...
 
@@ -1656,7 +1656,7 @@ 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, \S 3 requires that the source code include ``meta-material'' like
 
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
...
 
@@ -1671,7 +1671,7 @@ 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.
 

	
 
\S 3, therefore, allows source code to be provided on any physical
 
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. At best, FSF can viably release a new GPL
 
every ten years or so. Thus, phrases like this must be adaptive to
...
 
@@ -1695,25 +1695,25 @@ 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 \S 3. \emph{If} distribution of the binary files is made only on the
 
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 \S 3.
 
sufficient to comply with GPLv2~\S3.
 

	
 
\medskip
 

	
 
As is shown above, Under \S 3(a), embedded manufacturers can put the
 
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, \S
 
3(b) is available.
 

	
 
\S 3(b) allows a distributor of binaries to instead provide a written
 
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 \S 3(b) compliant
 
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
...
 
@@ -1721,10 +1721,10 @@ download the source instead --- again yielding environmental and financial
 
windfalls.
 

	
 
However, note that regardless of how many users prefer to get the
 
source online, \S 3(b) does place lasting long-term obligations on 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 \S 3(a)) at a moment's notice when 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
...
 
@@ -1735,7 +1735,7 @@ 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 \S\S 1--2. A company may ship a binary image
 
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
...
 
@@ -1743,8 +1743,8 @@ 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\S 3(c) is created to save her some trouble, because by itself \S 3(b)
 
would unfairly favor large companies. \S 3(b) allows the
 
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
...
 
@@ -1752,30 +1752,30 @@ 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, \S 3(b)'s compromise primarily benefits companies who
 
distribute binary software commercially. Without \S 3(c), that benefit
 
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 \S 3(b)-compliant
 
offer, would be required under GPLv2 (sans \S 3(c)) to acquire the source,
 
merely to give a copy of the software to a friend who needed it. \S 3(c)
 
reshifts this burden to entity who benefits from \S 3(b).
 
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).
 

	
 
\S 3(c) allows those who undertake \emph{noncommercial} distribution to
 
simply pass along a \S 3(b)-compliant source code offer. The customer who
 
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 \S 3(a), or
 
write her own \S 3(b)-compliant source offer.
 
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 \S 3(b) source offer must be
 
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 \S 3(b) must thus be
 
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 \S\S 3(b--c), it is
 
only rarely a better option than complying via \S 3(a).
 
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}
...
 
@@ -1902,19 +1902,19 @@ 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 \S\S 0--3. \S\S
 
4--7 of the GPLv2 are designed to ensure that \S\S 0--3 are not infringed,
 
core freedom-defending provisions of GPLv2\@, which are in GPLv2~\S\S0--3. \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, and are not
 
trumped by other copyright agreements or components of other entirely
 
separate legal systems. In short, while \S\S 0--3 are the parts of the
 
license that defend the freedoms of users and programmers, \S\S 4--7 are
 
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 \S 4: Termination on Violation}
 
\section{GPLv2~\S4: Termination on Violation}
 
\label{GPLv2s4}
 

	
 
\S 4 is GPLv2's termination clause. Upon first examination, it seems
 
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
...
 
@@ -1935,18 +1935,18 @@ 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 \S 4
 
the copyright holder. The copyright holder does not decided when GPLv2~\S4
 
termination occurs (if ever), the actions of the licensee does.
 

	
 
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. \S 4 says that if you undertake any of
 
those other types (e.g., redistributing binary-only in violation of \S 3),
 
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.
 

	
 
\S 4 gives GPLv2 teeth. If licensees fail to adhere to the license, then
 
GPLv2~\S4 gives GPLv2 teeth. If licensees fail to adhere to the license, then
 
they are stuck. They must completely cease and desist from all
 
copying, modification and distribution of that GPL'd software.
 

	
...
 
@@ -1969,10 +1969,10 @@ license separately for a fee. While this practice is not one that FSF
 
would ever consider undertaking or even endorsing, it is a legal way for
 
copyright holders to proceed.
 

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

	
 
\S 5 brings us to perhaps the most fundamental misconception and common
 
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
...
 
@@ -1993,7 +1993,7 @@ 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 \S 5 is that the bulk of users of Free
 
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
...
 
@@ -2005,41 +2005,41 @@ freedom.
 

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

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

	
 
A point that was glossed over in Section~\ref{GPLv2s4}'s discussion of \S 4
 
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 \S 6.
 
and it is made so formally by GPLv2~\S6.
 

	
 
The first sentence in \S 6 ensures that as software propagates down the
 
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 \S 6, the act of distributing automatically grants a
 
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 \S 6 does the opposite; it bounds from the top. It
 
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 \S 6 makes it abundantly clear that no individual
 
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 \S 3(c), as they cannot be assured that
 
the issuer of the offer will honor their \S 3 obligations.
 
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, \S 6 says that your license for the software is your one and
 
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 \S 7: ``Give Software Liberty or Give It Death!''}
 
\section{GPLv2~\S7: ``Give Software Liberty or Give It Death!''}
 
\label{GPLv2s7}
 

	
 
In essence, \S 7 is a verbosely worded way of saying for non-copyright
 
systems what \S 6 says for copyright. If there exists any reason that a
 
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.
 

	
...
 
@@ -2053,40 +2053,40 @@ 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, \S 7 rarely gives software death by stopping its distribution.
 
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 \S 8: Excluding Problematic Jurisdictions}
 
\section{GPLv2~\S8: Excluding Problematic Jurisdictions}
 
\label{GPLv2s8}
 

	
 
\S 8 is rarely used by copyright holders. Its intention is that if a
 
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 \S 7. Without \S 8, if a copyright holder
 
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. \S 8 exists to permit distribution in those countries that are
 
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}
 

	
 
\S 0--7 constitute the freedom-defending terms of the GPLv2. The remainder
 
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 \S 9: FSF as Stewards of GPL}
 
\section{GPLv2~\S9: FSF as Stewards of GPL}
 
\label{GPLv2s9}
 

	
 
FSF reserves the exclusive right to publish future versions of the GPL\@;
 
\S 9 expresses this. While the stewardship of the copyrights on the body
 
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
...
 
@@ -2098,15 +2098,15 @@ 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 \S 10: Relicensing Permitted}
 
\section{GPLv2~\S10: Relicensing Permitted}
 
\label{GPLv2s10}
 

	
 
\S 10 reminds the licensee of what is already implied by the nature of
 
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 \S 11: No Warranty}
 
\section{GPLv2~\S11: No Warranty}
 
\label{GPLv2s11}
 

	
 
All warranty disclaimer language tends to be shouted in all capital
...
 
@@ -2117,32 +2117,32 @@ 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, \S 11
 
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 \S 11 is that \S 1
 
permits the sale of warranty as an additional service, which \S 11 affirms.
 
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 \S 12: Limitation of Liability}
 
\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 \S 12. \S
 
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. \S 12, in turn, limits the liability of the actor for any
 
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, \S 11, contains a jurisdictional savings
 
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 \S 12, and the entire GPL, is enforceable in any jurisdiction,
 
both GPLv2~\S12, and the entire GPL, is enforceable in any jurisdiction,
 
regardless of any particular law regarding the permissibility of limiting
 
liability.
 

	
...
 
@@ -2154,40 +2154,40 @@ So end the terms and conditions of the GNU General Public License.
 

	
 
\section{Understanding GPLv3 As An Upgraded GPLv2}
 

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

	
 
\section{GPLv3 \S 1: Understanding CCS}
 
\section{GPLv3~\S1: Understanding CCS}
 

	
 
\section{GPLv3 \S 2: Basic Permissions}
 
\section{GPLv3~\S2: Basic Permissions}
 

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

	
 
\section{GPLv3 \S 5: Modified Source}
 
\section{GPLv3~\S5: Modified Source}
 

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

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

	
 
\section{GPLv3 \S 7: Explicit Compatibility}
 
\section{GPLv3~\S7: Explicit Compatibility}
 

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

	
 
\section{GPLv3 \S 9: Acceptance}
 
\section{GPLv3~\S9: Acceptance}
 

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

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

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

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

	
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...
 
@@ -2293,40 +2293,40 @@ 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, \S 1 of LGPL, the rules for verbatim copying of source, are
 
equivalent to those in GPL's \S 1.
 
First, LGPLv2.1~\S1, the rules for verbatim copying of source, are
 
equivalent to those in GPLv2~\S1.
 

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

	
 
\S 9 in LGPL is equivalent to \S 5 in GPL\@. Both sections assert that
 
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.
 

	
 
LGPL's \S 10 is equivalent to GPL's \S 6. They both protect the
 
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.
 

	
 
LGPL's \S 11 is GPL's \S 7. As discussed, it is used to ensure that
 
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.
 

	
 
LGPL's \S 12 adds the same features as GPL's \S 8. These sections are
 
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.
 

	
 
LGPL's \S 13 sets up FSF as the steward of the LGPL, just as GPL's \S 9
 
does for GPL. Meanwhile, LGPL's \S 14 reminds licensees that copyright
 
holders can grant exceptions to the terms of LGPL, just as GPL's \S 10
 
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 LGPL's \S 15 and \S 16 are the same as GPL's \S 11 and \S
 
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.
...
 
@@ -2397,16 +2397,16 @@ 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 LGPL \S 5.
 
of a ``work that uses the library,'' which is set forth in LGPLv2.1~\S5.
 

	
 
We noted in our discussion of GPL \S 3 (discussed in
 
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 GPL
 
\S 3), and distributors of such binary derivatives must release full
 
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
...
 
@@ -2438,26 +2438,26 @@ the library,'' works as follows:
 

	
 
\end{itemize}
 

	
 
We will talk about the specific restrictions LGPL places on ``works
 
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 LGPL places requirements on
 
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 LGPL does is say that when a
 
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 LGPL has any control over the licensing
 
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 LGPL'd software (\workl{}).
 
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 LGPL is as follows:
 
a ``work that uses the library'' under LGPLv2.1 is as follows:
 

	
 
\begin{enumerate}
 

	
...
 
@@ -2511,7 +2511,7 @@ have a ``work based on the library.''  If the answer is ``no'' to the
 
first but ``yes'' to the second, you are in a gray area between ``work
 
based on the library'' and a ``work that uses the library.''
 

	
 
In our years of work with the LGPL, however, we have never seen a work
 
In our years of work with the LGPLv2.1, however, we have never seen a work
 
of software that was not clearly one or the other; the line is quite
 
bright. At times, though, we have seen cases where a derivative work
 
appeared in some ways to be a work that used the library and in other
...
 
@@ -2521,7 +2521,7 @@ what we actually had were three distinct components: the original
 
LGPL'd work, a specific set of works that used that library, and a
 
specific set of works that were based on the library. Once such
 
distinctions are established, the licensing for each component can be
 
considered independently and the LGPL applied to each work as
 
considered independently and the LGPLv2.1 applied to each work as
 
prescribed.
 

	
 

	
...
 
@@ -2529,10 +2529,10 @@ prescribed.
 

	
 
In our discussion of the definition of ``works that use the library,'' we
 
left out a few more complex details that relate to lower-level programming
 
details. The fourth paragraph of LGPL's \S 5 covers these complexities,
 
details. The fourth paragraph of LGPLv2.1~\S5 covers these complexities,
 
and it has been a source of great confusion. Part of the confusion comes
 
because a deep understanding of how compiler programs work is nearly
 
mandatory to grasp the subtle nature of what \S 5, \P 4 seeks to
 
mandatory to grasp the subtle nature of what LGPLv2.1~\S5, \P 4 seeks to
 
cover. It helps some to note that this is a border case that we cover in
 
the license only so that when such a border case is hit, the implications
 
of using LGPL continue in the expected way.
...
 
@@ -2562,7 +2562,7 @@ linking of the executable occurred. However, when the compiler does this
 
efficiency optimization, at the intermediate object code step, a
 
derivative work is created.
 

	
 
LGPL's \S 5, \P 4 is designed to handle this specific case. The intent of
 
LGPLv2.1~\S5\P4 is designed to handle this specific case. The intent of
 
the license is clearly that simply compiling software to ``make use'' of
 
the library does not in itself cause the compiled work to be a ``work
 
based on the library.''  However, since the compiler copies verbatim,
...
 
@@ -2570,7 +2570,7 @@ copyrighted portions of the library into the object code for the otherwise
 
separate and independent work, it would actually cause that object file to be a
 
``work based on the library.''  It is not FSF's intent that a mere
 
compilation idiosyncrasy would change the requirements on the users of the
 
LGPL'd software. This paragraph removes that restriction, allowing the
 
LGPLv2.1'd software. This paragraph removes that restriction, allowing the
 
implications of the license to be the same regardless of the specific
 
mechanisms the compiler uses underneath to create the ``work that uses the
 
library.''
...
 
@@ -2581,30 +2581,30 @@ idiosyncrasy, because that particular vendor wanted to ship object code
 
this edge condition. The intent of clarifying this edge condition is
 
primarily to quell the worries of software engineers who understand the
 
level of verbatim code copying that a compiler often does, and to help
 
them understand that the full implications of LGPL are the same regardless
 
them understand that the full implications of LGPLv2.1 are the same regardless
 
of the details of the compilation progress.
 

	
 
\section{LGPLv2 \S 6 \& LGPLv3 \S 5: Combining the Works}
 
\section{LGPLv2.1~\S6 \& LGPLv2.1~\S5: Combining the Works}
 
\label{lgpl-section-6}
 
Now that we have established a good working definition of works that
 
``use'' and works that ``are based on'' the library, we will consider the
 
rules for distributing these two different works.
 

	
 
The rules for distributing ``works that use the library'' are covered in
 
\S 6 of LGPL\@. \S 6 is much like GPL's \S 3, as it requires the release
 
LGPLv2.1~\S6\@. LGPLv2.1~\S6 is much like GPLv2~\S3, as it requires the release
 
of source when a binary version of the LGPL'd software is released. Of
 
course, it only requires that source code for the library itself be made
 
available. The work that ``uses'' the library need not be provided in
 
source form. However, there are also conditions in LGPL \S 6 to make sure
 
source form. However, there are also conditions in LGPLv2.1~\S6 to make sure
 
that a user who wishes to modify or update the library can do so.
 

	
 
LGPL \S 6 lists five choices with regard to supplying library source
 
LGPLv2.1~\S6 lists five choices with regard to supplying library source
 
and granting the freedom to modify that library source to users. We
 
will first consider the option given by \S 6(b), which describes the
 
most common way currently used for LGPL compliance on a ``work that
 
most common way currently used for LGPLv2.1 compliance on a ``work that
 
uses the library.''
 

	
 
\S 6(b) allows the distributor of a ``work that uses the library'' to
 
LGPLv2.1~\S6(b) allows the distributor of a ``work that uses the library'' to
 
simply use a dynamically linked, shared library mechanism to link with the
 
library. This is by far the easiest and most straightforward option for
 
distribution. In this case, the executable of the work that uses the
...
 
@@ -2614,11 +2614,11 @@ the shared version of the library already resident on the user's computer.
 
If such a mechanism is used, it must allow the user to upgrade and
 
replace the library with interface-compatible versions and still be able
 
to use the ``work that uses the library.''  However, all modern shared
 
library mechanisms function as such, and thus \S 6(b) is the simplest
 
library mechanisms function as such, and thus LGPLv2.1~\S6(b) is the simplest
 
option, since it does not even require that the distributor of the ``work
 
based on the library'' ship copies of the library itself.
 
2based on the library'' ship copies of the library itself.
 

	
 
\S 6(a) is the option to use when, for some reason, a shared library
 
LGPLv2.1~\S6(a) is the option to use when, for some reason, a shared library
 
mechanism cannot be used. It requires that the source for the library be
 
included, in the typical GPL fashion, but it also has a requirement beyond
 
that. The user must be able to exercise her freedom to modify the library
...
 
@@ -2628,17 +2628,17 @@ mechanism, the user must have available the object code for the ``work
 
based on the library,'' so that the user can relink the application and
 
build a new binary.
 

	
 
The remaining options in \S 6 are very similar to the other choices
 
provided by GPL \S 3. There are some additional options, but time does
 
The remaining options in LGPLv2.1~\S6 are very similar to the other choices
 
provided by GPLv2~\S3. There are some additional options, but time does
 
not permit us in this course to go into those additional options. In
 
almost all cases of distribution under LGPL, either \S 6(a) or \S 6(b) are
 
almost all cases of distribution under LGPL, either LGPLv2.1~\S6(a) or LGPLv2.1~\S6(b) are
 
exercised.
 

	
 
\section{Distribution of the Combined Works}
 

	
 
Essentially, ``works based on the library'' must be distributed under the
 
same conditions as works under full GPL\@. In fact, we note that LGPL's
 
\S 2 is nearly identical in its terms and requirements to GPL's \S 2.
 
same conditions as works under full GPL\@. In fact, we note that 
 
LGPLv2.1~\S2 is nearly identical in its terms and requirements to GPLv2~\S2.
 
There are again subtle differences and additions, which time does not
 
permit us to cover in this course.
 

	
...
 
@@ -2649,22 +2649,22 @@ conditions:
 

	
 
\begin{itemize}
 

	
 
\item Allowing a licensing ``upgrade'' from LGPL to GPL\@ (in LGPL \S 3)
 
\item Allowing a licensing ``upgrade'' from LGPL to GPL\@ (in LGPLv2.1~\S3)
 

	
 
\item Binary distribution of the library only, covered in LGPL \S 4,
 
  which is effectively equivalent to LGPL \S 3
 
\item Binary distribution of the library only, covered in LGPLv2.1~\S4,
 
  which is effectively equivalent to LGPLv2.1~\S3
 

	
 
\item Creating aggregates of libraries that are not derivative works of
 
  each other, and distributing them as a unit (in LGPL \S 7)
 
  each other, and distributing them as a unit (in LGPLv2.1~\S7)
 

	
 
\end{itemize}
 

	
 

	
 
Due to time constraints, we cannot cover these additional terms in detail,
 
but they are mostly straightforward. The key to understanding LGPL is
 
but they are mostly straightforward. The key to understanding LGPLv2.1 is
 
understanding the difference between a ``work based on the library'' and a
 
``work that uses the library.''  Once that distinction is clear, the
 
remainder of LGPL is close enough to GPL that the concepts discussed in
 
remainder of LGPLv2.1 is close enough to GPL that the concepts discussed in
 
our more extensive GPL unit can be directly applied.
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...
 
@@ -2685,7 +2685,7 @@ Software in general requires substantially fewer agreements and less
 
license compliance activity than any known proprietary software.
 

	
 
Even if a company engages heavily in copying the software throughout the
 
enterprise, such copying is not only permitted by \S\S 1 and 3, but it is
 
enterprise, such copying is not only permitted by GPLv2~\S\S1 and 3, but it is
 
encouraged!  If the company simply deploys unmodified (or even modified)
 
Free Software throughout the organization for its employees to use, the
 
obligations under the license are very minimal. Using Free Software has a
0 comments (0 inline, 0 general)