@@ -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:
''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,10 +1037,10 @@ 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.
@@ -1052,7 +1052,7 @@ 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.
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:
``...that in whole or part contains or is derived from the Program or any part thereof.''
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:
@@ -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.
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).
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.
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
@@ -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:
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
\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:
\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)
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