Changeset - 2f2e5f9e4c32
[Not reviewed]
0 3 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-10-16 02:14:45
bkuhn@ebb.org
Rework over-abundant use of term "derivative work"

The older portions of this tutorial tended to favor the term "derivative
work", since that was the popular catch-all term used at the time the
text was written.

However, as the newer text regarding GPLv3 now states, FSF abandoned the
use of the term "derivative work" in the text of GPLv3 itself, for
various reasons we already discuss in the tutorial.

Therefore, the tutorial text itself should likely not rely so heavily on
the phrase "derivative work" throughout. This change herein reworks a
number of places where "derivative work" was used in the tutorial and
replaced it with other terms.

Ultimately, some word-smithing happened as part of the process of doing
this patch.
3 files changed with 90 insertions and 88 deletions:
0 comments (0 inline, 0 general)
compliance-guide.tex
Show inline comments
...
 
@@ -127,65 +127,65 @@ software.\footnote{This document addresses compliance with GPLv2,
 
  compliance.}
 

	
 
\section{Evaluate License Applicability}
 
\label{derivative-works}
 
Political discussion about the GPL often centers around the ``copyleft''
 
requirements of the license.  Indeed, the license was designed primarily
 
to embody this licensing feature.  Most companies adding non-trivial
 
features (beyond mere porting and bug-fixing) to GPL'd software (and
 
thereby invoking these requirements) are already well aware of their
 
more complex obligations under the license.\footnote{There has been much legal
 
  discussion regarding copyleft and derivative works.  In practical
 
  reality, this issue is not relevant to the vast majority of companies
 
  distributing GPL'd software.  Those interested in this issue should study
 
  \tutorialpartsplit{\textit{Detailed Analysis of the GNU GPL and Related
 
      Licenses}'s Section on derivative works}{\S~\ref{derivative-works} of
 
    this tutorial}.}
 

	
 
However, experienced  GPL enforcers find that few redistributors'
 
compliance challenges relate directly to combined work issues in copyleft.
 
Instead, the distributions of GPL'd
 
systems most often encountered typically consist of a full operating system
 
including components under the GPL (e.g., Linux, BusyBox) and components
 
under the LGPL (e.g., the GNU C Library).  Sometimes, these programs have
 
been patched or slightly improved by direct modification of their sources,
 
and thus the result is unequivocally a derivative work.  Alongside these programs,
 
and thus the result is unequivocally a modified version.  Alongside these programs,
 
companies often distribute fully independent, proprietary programs,
 
developed from scratch, which are designed to run on the Free Software operating
 
system but do not combine with, link to, modify, derive from, or otherwise
 
create a combined work with
 
the GPL'd components.\footnote{However, these programs do often combine
 
  with LGPL'd libraries. This is discussed in detail in \S~\ref{lgpl}.}
 
In the latter case, where the work is unquestionably a separate work of
 
creative expression, no copyleft provisions are invoked.
 
The core compliance issue faced, thus, in such a situation, is not an discussion of what is or is not a
 
combined or derivative work, but rather, issues related to distribution and
 
combined, derivative, and/or modified version of the work, but rather, issues related to distribution and
 
conveyance of binary works based on GPL'd source, but without Complete,
 
Corresponding Source.  This tutorial therefore focuses primarily on that issue.
 

	
 
Admittedly, a tiny
 
minority of compliance situations relate to question of derivative and
 
combined words.  Those
 
minority of compliance situations relate to question of derivative,
 
combined, or modified versions of the work.  Those
 
situations are so rare, and the details from situation to situation differ
 
greatly.  Thus, such situations require a highly
 
fact-dependent analysis and cannot be addressed in a general-purpose
 
document such as this one.
 

	
 
\medskip
 

	
 
Most companies accused of violations lack a basic understanding
 
of how to comply even in the straightforward scenario.  This document
 
provides those companies with the fundamental and generally applicable prerequisite knowledge.
 
For answers to rarer and more complicated legal questions, such as whether
 
your software is a derivative or combined work of some copylefted software, consult
 
with an attorney.\footnote{If you would like more information on the
 
  application of derivative works doctrine to software, a detailed legal
 
  discussion is presented in our colleague Dan Ravicher's article,
 
  \textit{Software Derivative Work: A Circuit Dependent Determination} and in
 
  \tutorialpartsplit{\textit{Detailed Analysis of the GNU GPL and Related
 
      Licenses}'s Section on derivative works}{\S~\ref{derivative-works} of
 
    this tutorial}.}
 

	
 
This discussion thus assumes that you have already identified the
 
``work'' covered by the license, and that any components not under the GPL
 
(e.g., applications written entirely by your developers that merely happen
 
to run on a Linux-based operating system) distributed in conjunction with
enforcement-case-studies.tex
Show inline comments
...
 
@@ -247,62 +247,62 @@ produces software and hardware toolkits to assist OEM vendors, makers
 
of consumer electronic devices.
 

	
 
\section{Facts}
 

	
 
One of Bortez's key products is a Software Development Kit (``SDK'')
 
designed to assist developers building software for a specific class of
 
consumer electronics devices.
 

	
 
FSF received a report that the SDK may be based on the GNU Compiler
 
Collection (which is an FSF-copyrighted collection of tools for software
 
development in C, C++ and other popular languages). FSF investigated the
 
claim, but was unable to confirm the violation. The violation reporter
 
was unresponsive to follow-up requests for more information.
 

	
 
Since FSF was unable to confirm the violation, we did not pursue it any
 
further. Bogus reports do happen, and we do not want to burden companies
 
with specious GPL violation complaints. FSF shelved the matter until
 
more evidence was discovered.
 

	
 
FSF was later able to confirm the violation when two additional reports
 
surfaced from other violation reporters, both of whom had used the SDK
 
professionally and noticed clear similarities to FSF's GNU GCC\@. FSF's
 
Compliance Engineer asked the reporters to run standard tests to confirm
 
the violation, and it was confirmed that Bortez's SDK was indeed a
 
derivative work of GCC\@. Bortez had ported to Windows and added a number
 
modified version of GCC\@. Bortez had ported to Windows and added a number
 
of features, including support for a specific consumer device chipset and
 
additional features to aid in the linking process (``LP'') for those
 
specific devices. FSF explained the rights that the GPL afforded these
 
customers and pointed out, for example, that Bortez only needed to provide
 
source to those in possession of the binaries, and that the users may need
 
to request that source (if \S 3(b) was exercised). The violators
 
confirmed that such requests were not answered.
 

	
 
FSF brought the matter to the attention of Bortez, who immediately
 
escalated the matter to their attorneys. After a long negotiation,
 
Bortez acknowledged that their SDK was indeed a derivative work of
 
Bortez acknowledged that their SDK was indeed a modified version of
 
GCC\@. Bortez released most of the source, but some disagreement
 
occurred over whether LP was a derivative work of GCC\@. After repeated
 
occurred over whether LP was also derivative of GCC\@. After repeated
 
FSF inquiries, Bortez reaudited the source to discover that FSF's
 
analysis was correct. Bortez determined that LP included a number of
 
source files copied from the GCC code-base.
 

	
 
\label{davrik-build-problems}
 
Once the full software release was made available, FSF asked the violation
 
reporters if it addressed the problem. Reports came back that the source
 
did not properly build. FSF asked Bortez to provide better build
 
instructions with the software, and such build instructions were
 
incorporated into the next software release.
 

	
 
At FSF's request as well, Bortez informed customers who had previously
 
purchased the product that the source was now available by announcing
 
the availability on its Web site and via a customer newsletter.
 

	
 
Bortez did have some concerns regarding patents. They wished to include a
 
statement with the software release that made sure they were not granting
 
any patent permission other than what was absolutely required by the GPL\@.
 
They understood that their patent assertions could not trump any rights
 
granted by the GPL\@. The following language was negotiated into the release:
 

	
 
\begin{quotation}
 
Subject to the qualifications stated below, Bortez, on behalf of itself
 
and its Subsidiaries, agrees not to assert the Claims against you for your
...
 
@@ -599,70 +599,70 @@ including release of the source from one of Vigorien's divisions overseas
 
where no such restrictions occurred, but Vigorien argued that the problem
 
was insoluble because they operated primarily in the USA\@.
 

	
 
The deadlock on the second issue was resolved when those cryptographic
 
export restrictions were lifted shortly thereafter, and FSF again raised
 
the matter with Vigorien. At that point, they dropped the first claim and
 
agreed to release the remaining source module to their customers. They
 
did so, and the violation was resolved.
 

	
 

	
 
\section{Lessons Learned}
 

	
 
\begin{enumerate}
 

	
 
\item {\bf Removing the GPL'd portion of the product is always an
 
  option.}  Many violators' first response is to simply refuse to
 
  release the source code as the GPL requires. FSF offers the option to
 
  simply remove the GPL'd portions from the product and continue along
 
  without them. Every case where this has been suggested has led to
 
  the same conclusion. Like Vigorien, the violator argues that the
 
  product cannot function without the GPL'd components, and they
 
  cannot effectively replace them.
 

	
 
  Such an outcome is simply further evidence that the combined work in
 
  question is indeed a derivative work of the original GPL'd component.
 
  question is indeed a modified version of the original GPL'd component.
 
  If the other components cannot stand on their own and be useful without
 
  the GPL'd portions, then one cannot effectively argue that the work as a
 
  whole is not a derivative of the GPL'd portions.
 
  whole is not a based on the GPL'd portions.
 

	
 
\item {\bf The whole product is not always covered.}  In this case,
 
  Vigorien had additional works aggregated. The backup system was a suite
 
  of utilities, some of which were the GPL and some of which were not. While
 
  the cryptographic routines were tightly coupled with GNU tar and clearly
 
  derivative works, the various GUI utilities were separate and
 
  made a whole new combined work of both components, the various GUI utilities were separate and
 
  independent works merely aggregated with the distribution of the
 
  GNU-tar-based product.
 

	
 

	
 
\item {\bf ``Security'' concerns do not exonerate a distributor from GPL
 
  obligations, and ``security through obscurity'' does not work anyway.}
 
  The argument that ``this is security software, so it cannot be released
 
  in source form'' is not a valid defense for explaining why the terms of
 
  the GPL are ignored. If companies do not want to release source code
 
  for some reason, then they should not base the work on GPL'd software.
 
  No external argument for noncompliance can hold weight if the work as
 
  a whole is indeed a derivative work of a GPL'd program.
 
  a whole is indeed a modified version of a GPL'd program.
 

	
 
  The ``security concerns'' argument is often floated as a reason to keep
 
  software proprietary, but the computer security community has on
 
  numerous occasions confirmed that such arguments are entirely specious.
 
  Security experts have found --- since the beginnings of the field of
 
  cryptography in the ancient world --- that sharing results about systems
 
  and having such systems withstand peer review and scrutiny builds the
 
  most secure systems. While full disclosure may help some who wish to
 
  compromise security, it helps those who want to fix problems even more
 
  by identifying them early.
 

	
 
\item {\bf External regulatory problems can be difficult to resolve.}
 
  The GPL, though grounded in copyright law, does not have the power to trump
 
  regulations like export controls. While Vigorien's ``security
 
  concerns'' were specious, their export control concerns were not. It is
 
  indeed a difficult problem that FSF acknowledges. We want compliance
 
  with the GPL and respect for users' freedoms, but we certainly do not expect
 
  companies to commit criminal offenses for the sake of compliance. We
 
  will see more about this issue in our next case study.
 
\end{enumerate}
 

	
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{Haxil, Polgara, and Thesulac: Mergers, Upstream Providers and Radio Devices}
...
 
@@ -699,49 +699,49 @@ directly with Polgara's representatives to begin working through the
 
issues on behalf of itself and the Free Software community at large.
 

	
 
Polgara pointed out that the software distribution they used was mostly
 
contributed by an upstream provider, Thesulac, and Haxil's changes to that
 
code base were minimal. Polgara negotiated with Thesulac to obtain the
 
source, although the issue moved very slowly in the channels between
 
Polgara and Thesulac.
 

	
 
FSF encouraged a round-table meeting so that high bandwidth communication
 
could occur between FSF, Polgara and Thesulac. Polgara and Thesulac
 
agreed, and that discussion began. Thesulac provided nearly complete
 
sources to Polgara, and Polgara made a full software release on their
 
Web site. At the time of writing, that software still has some build
 
problems (similar to those that occurred with Bortez, as described in
 
Section~\ref{davrik-build-problems}). FSF continues to negotiate with
 
Polgara and Thesulac to resolve these problems, which have a clear path to
 
a solution and are expected to resolve.
 

	
 
Similar to the Vigorien case, Thesulac has regulatory concerns. In this
 
case, it is not export controls --- an issue that has since been resolved
 
--- but radio spectrum regulation. Since this consumer electronic device
 
contains a software-programmable radio transmitter, regulations in (at
 
least) the USA and Japan prohibit release of those portions of the code
 
that operate the device. Since this is a low-level programming issue, the
 
changes to operate the device are a derivative work of the kernel named
 
changes to operate the device form a single combined work with the kernel named
 
Linux.  A decade later, this situation remains largely unresolved.
 

	
 
\section{Lessons Learned}
 

	
 
\begin{enumerate}
 

	
 
\item {\bf Community outrage, while justified, can often make negotiation
 
  more difficult.}  FSF has a strong policy never to publicize names of
 
  GPL violators if they are negotiating in a friendly way and operating in
 
  good faith toward compliance. Most violations are honest mistakes, and
 
  FSF sees no reason to publicly admonish violators who genuinely want to
 
  come into compliance with the GPL and to work hard staying in compliance.
 

	
 
  This case was so public in the Free Software community that both Haxil's
 
  and Polgara's representatives were nearly shell-shocked by the time FSF
 
  began negotiations. There was much work required to diffuse the
 
  situation. We empathize with our community and their outrage about GPL
 
  violations, but we also want to follow a path that leads expediently
 
  to compliance. In our experience, public outcry works best as a last
 
  resort, not the first.
 

	
 
\item {\bf For software companies, GPL compliance belongs on a corporate
 
  acquisition checklist. }  Polgara was truly amazed that Haxil had used
 
  GPL'd software in a major new product line but never informed Polgara
gpl-lgpl.tex
Show inline comments
...
 
@@ -1040,58 +1040,58 @@ nor determined by a court to be covered, but are common and enjoyed by
 
many users.  An example of unregulated use is reading a printout of the
 
program's source code like an instruction book for the purpose of learning
 
how to be a better programmer.  The right to read something that you have
 
access to is and should remain unregulated and unrestricted.
 

	
 
\medskip
 

	
 
Thus, the GPLv2 protects users' fair and unregulated use rights precisely by
 
not attempting to cover them.  Furthermore, the GPLv2 ensures the freedom
 
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 GPLv2~\S0.
 

	
 
\medskip
 

	
 
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
 
because it clears up a common misconception about the GPL\@.
 

	
 
The GPL is often mistakenly criticized because it fails to give a
 
definition of ``derivative work''.  In fact, it would be incorrect and
 
problematic if the GPL attempted to define this.  A copyright license, in
 
fact, has no control over what may or may not be a derivative work.  This
 
matter is left up to copyright law and the courts --- not the licenses that utilize it.
 
definition of ``derivative work'' or ``combined work''.  In fact, it would be incorrect and
 
problematic if the GPL attempted to define these terms.  A copyright license, in
 
fact, has no control over the rules of copyright themselves.  Such rules are
 
the domain of copyright law and the courts --- not the licenses that utilize
 
those systems.
 

	
 
It is certainly true that copyright law as a whole does not propose clear
 
and straightforward guidelines for what is and is not a derivative
 
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.
 
Copyright law as a whole doesn't propose clear and straightforward guidelines
 
for identifying the derivative and/or combined works of software.  However,
 
no copyright license --- not even the GNU GPL --- can be blamed for this.
 
Legislators and court opinions must give us guidance in borderline cases.
 

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

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

	
 
Preservation of copyright notice and license notifications are mentioned
 
specifically in GPLv2~\S1.  These are in some ways the most important part of
 
the redistribution, which is why they are mentioned by name.  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
 
rights and freedoms under GPL, and to leave no reason that users might be
 
surprised the software is GPL'd. Thus
 
throughout the GPL, there are specific references to the importance of
 
notifying others down the distribution chain that they have rights under
...
 
@@ -1510,155 +1510,154 @@ here as well.  However, there are three additional requirements.
 

	
 
The first (GPLv2~\S2(a)) requires that modified files carry ``prominent
 
notices'' explaining what changes were made and the date of such
 
changes. This section does not prescribe some specific way of
 
marking changes nor does it control the process of how changes are made.
 
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, GPLv2~\S2(a) serves an academic
 
purpose --- ensuring that future developers can use a diachronic
 
approach to understand the software.
 

	
 
\medskip
 

	
 
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
 
GPLv2~\S2(b), and they
 
can be a source of great confusion when not properly understood.
 

	
 
In considering GPLv2~\S2(b), first note the qualifier: it \textit{only} applies to
 
derivative works that ``you distribute or publish''.  Despite years of
 
derivative, combined and/or modified works that ``you distribute or publish''.  Despite years of
 
education efforts on this matter, many still believe that modifiers
 
of GPL'd software \textit{must} publish or otherwise
 
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{Most Free Software enthusiasts believe there is a {\bf
 
    moral} obligation to redistribute changes that are generally useful,
 
  and they often encourage companies and individuals to do so.  However, there
 
  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 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
 
Again, the GPL relies here on copyright law.
 
If, under copyright law, the modified version ``contains or is
 
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 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:
 
The final clause of GPLv2~\S2(b) describes what the licensee must do if she
 
distributes or publishes a modified version of the work --- namely, the following:
 
\begin{quote}
 
[The work must] be licensed as a whole at no charge to all third parties
 
under the terms of this License.
 
\end{quote}
 
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 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
 
programmer is indeed the copyright holder of those new changes.  However,
 
those changes are part and parcel to the original work distributed to
 
the programmer under GPL\@. Thus, the license of the original work
 
affects the license of the new whole derivative work.
 
affects the license of the new whole combined and/or derivative work.
 

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

	
 
\label{separate-and-independent}
 

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

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

	
 
\medskip
 

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

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

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

	
 
\medskip
 

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

	
 
\subsection{Right to Private Modification} 
 
\label{gplv2-private-modification}
 

	
...
 
@@ -1690,110 +1689,110 @@ available, and the
 
This issue is one of many where GPLv3 clarifies in explicit text the implicit
 
policy and intent that was solidified via long-standing interpretation of
 
GPLv2.
 

	
 
\section{GPLv2~\S3: Producing Binaries}
 
\label{GPLv2s3}
 

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

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

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

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

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

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

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

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

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

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

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

	
 
Meanwhile, the binding created by the word ``customarily'' is key.  Many
 
incorrectly believe that distributing binary on CD and source on the
 
Internet is acceptable.  In the corporate world in industrialized countries, it is indeed customary to
 
simply download a CDs' worth of data quickly.  However, even today in the USA, many computer users are not connected to the Internet, and most people connected
...
 
@@ -1918,96 +1917,96 @@ Hewlett-Packard Co. v. Repeat-O-Type Stencil Mfg. Corp., Inc., 123 F.3d
 
Of course, Free Software is licensed, not sold, and there are indeed
 
restrictions placed on the licensee, but those differences are not likely
 
to prevent the application of the implied license doctrine to Free
 
Software, because software licensed under the GPL grants the licensee the
 
right to make, use, and sell the software, each of which are exclusive
 
rights of a patent holder. Therefore, although the GPLv2 does not expressly
 
grant the licensee the right to do those things under any patents the
 
licensor may have that cover the software or its reasonably contemplated
 
uses, by licensing the software under the GPLv2, the distributor impliedly
 
licenses those patents to the GPLv2 licensee with respect to the GPLv2'd
 
software.
 

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

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

	
 

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

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

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

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

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

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

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

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

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...
 
@@ -3784,99 +3783,98 @@ No substantive changes have been made in sections 15 and 16.
 
%% software are created by combination and extension.  There is also the
 
%% real danger that a choice of law clause will specify a jurisdiction
 
%% that is hostile to free software principles.
 

	
 
%% % FIXME-LATER: reword into tutorial, \ref to section 7.
 

	
 
%% Our revised version of section 7 makes explicit our view that the
 
%% inclusion of a choice of law clause by a licensee is the imposition of
 
%% an additional requirement in violation of the GPL.  Moreover, if a
 
%% program author or copyright holder purports to supplement the GPL with
 
%% a choice of law clause, section 7 now permits any licensee to remove
 
%% that clause.
 

	
 

	
 
% FIXME-LATER: does this need to be a section, describing how it was out then in
 
% then out then in? :)
 

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

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

	
 
As we have seen in our consideration of the GPL, its text is specifically
 
designed to cover all possible derivative works under copyright law. Our
 
goal in designing the GPL was to make sure that any derivative work of GPL'd
 
software was itself released under the GPL when distributed. Reaching as far
 
as copyright law will allow is the most direct way to reach that goal.
 
designed to cover all possible derivative, modified and/or combined works under copyright law. Our
 
goal in designing the GPL was to maximize its use of the controls of
 
copyright law to maximize the number of works that were covered by GPL. 
 

	
 
However, while the strategic goal is to bring as much Free Software
 
However, while the strategic goal of software freedom is to bring as much Free Software
 
into the world as possible, particular tactical considerations
 
regarding software freedom dictate different means. Extending the
 
copyleft effect as far as copyright law allows is not always the most
 
prudent course in reaching the goal. In particular situations, even
 
those of us with the goal of building a world where all published
 
software is Free Software realize that full copyleft does not best
 
serve us. The GNU Lesser General Public License (``GNU LGPL'') was
 
designed as a solution for such situations.
 

	
 
\section{The First LGPL'd Program}
 

	
 
The first example that FSF encountered where such altered tactics were
 
needed was when work began on the GNU C Library. The GNU C Library would
 
become (and today, now is) a drop-in replacement for existing C libraries.
 
On a Unix-like operating system, C is the lingua franca and the C library
 
is an essential component for all programs. It is extremely difficult to
 
construct a program that will run with ease on a Unix-like operating
 
system without making use of services provided by the C library --- even
 
if the program is written in a language other than C\@. Effectively, all
 
user application programs that run on any modern Unix-like system must
 
make use of the C library.
 

	
 
By the time work began on the GNU implementation of the C libraries, there
 
were already many C libraries in existence from a variety of vendors.
 
Every proprietary Unix vendor had one, and many third parties produced
 
smaller versions for special purpose use. However, our goal was to create
 
a C library that would provide equivalent functionality to these other C
 
libraries on a Free Software operating system (which in fact happens today
 
on modern GNU/Linux systems, which all use the GNU C Library).
 

	
 
Unlike existing GNU application software, however, the licensing
 
implications of releasing the GNU C Library (``glibc'') under the GPL were
 
somewhat different. Applications released under the GPL would never
 
themselves become part of proprietary software. However, if glibc were
 
released under the GPL, it would require that any application distributed for
 
the GNU/Linux platform be released under the GPL\@.
 

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

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

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

	
 
The Lesser GPL was initially conceived to handle this scenario. It was
 
clear that the existence of proprietary applications for GNU/Linux was
 
inevitable. Since there were so many C libraries already in existence, a
 
new one under the GPL would not stop that tide. However, if the new C library
 
were released under a license that permitted proprietary applications
 
to link with it, but made sure that the library itself remained Free,
 
an ancillary goal could be met. Users of proprietary applications, while
...
 
@@ -3926,273 +3924,274 @@ judgments, do not trump the rights and permissions granted by these
 
licenses, and requires that distribution be halted if such a trump is
 
known to exist.
 

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

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

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

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

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

	
 
\section{Additions to the Preamble}
 

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

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

	
 
\begin{itemize}
 

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

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

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

	
 
\end{itemize}
 

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

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

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

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

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

	
 
In the case of LGPL, these are precisely the types of derivative works
 
we wish to permit. This scenario, defined in LGPL as ``a work that uses
 
the library,'' works as follows:
 
The LGPL, by contrast, allows partial proprietarization of such binary works.
 
This scenario, defined in LGPL as ``a work that uses the library,'' works as
 
follows:
 

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

	
 
\begin{itemize}
 

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

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

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

	
 
\end{itemize}
 

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

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

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

	
 
\begin{enumerate}
 

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

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

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

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

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

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

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

	
 
\begin{enumerate}
 

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

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

	
 

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

	
 
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
 
ways a work based on the library. We overcame this problem by
 
bright. At times, though, we have seen cases where a particularly  large work
 
in some ways seemed to be both to both a work that used the library and 
 
a work based on the library. We overcame this problem by
 
dividing the work into smaller subunits. It was soon discovered that
 
what we actually had were three distinct components: the original
 
LGPL'd work, a specific set of works that used that library, and a
 
specific set of works that were based on the library. Once such
 
distinctions are established, the licensing for each component can be
 
considered independently and the LGPLv2.1 applied to each work as
 
prescribed.
 

	
 

	
 
\section{Subtleties in Defining the Application}
 

	
 
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 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 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 the LGPL continue in the expected way.
 

	
 
To understand this subtle point, we must recall the way that a compiler
 
operates. The compiler first generates object code, which are the binary
 
representations of various programming modules. Each of those modules is
 
usually not useful by itself; it becomes useful to a user of a full program
 
when those modules are {\em linked\/} into a full binary executable.
 

	
 
As we have discussed, the assembly of modules can happen at compile-time
 
or at runtime. Legally, there is no distinction between the two --- both
 
create a derivative work by copying and combining portions of one work and
 
create a modified version of the work by copying and combining portions of one work and
 
mixing them with another. However, under LGPL, there is a case in the
 
compilation process where the legal implications are different.
 
Specifically, while we know that a ``work that uses the library'' is one
 
whose final binary is a derivative work, but whose source is not, there
 
To understand this phenomenon, we consider that a ``work that uses the
 
library'' is typically one whose final binary is a work based on the Program,
 
but whose source is not.  However, sometimes, there
 
are cases where the object code --- that intermediate step between source
 
and final binary --- is a derivative work created by copying verbatim code
 
and final binary --- is a work created by copying and modifying code
 
from the LGPL'd software.
 

	
 
For efficiency, when a compiler turns source code into object code, it
 
sometimes places literal portions of the copyrighted library code into the
 
object code for an otherwise separate independent work. In the normal
 
scenario, the derivative would not be created until final assembly and
 
scenario, the final combined work would not be created until final assembly and
 
linking of the executable occurred. However, when the compiler does this
 
efficiency optimization, at the intermediate object code step, a
 
derivative work is created.
 
combined work is created.
 

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

	
 
As it turns out, we have only once had anyone worry about this specific
 
idiosyncrasy, because that particular vendor wanted to ship object code
 
(rather than final binaries) to their customers and was worried about
 
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 LGPLv2.1 are the same regardless
 
of the details of the compilation progress.
 

	
 
\section{LGPLv2.1~\S6 \& LGPLv2.1~\S5: Combining the Works}
...
 
@@ -4244,49 +4243,49 @@ 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 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 
 
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.
 

	
 
\section{And the Rest}
 

	
 
The remaining variations between the LGPL and the GPL cover the following
 
conditions:
 

	
 
\begin{itemize}
 

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

	
 
\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
 
\item Creating aggregates of libraries that are separate and independent works from
 
  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 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 LGPLv2.1 is close enough to GPL that the concepts discussed in
 
our more extensive GPL unit can be directly applied.
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{Integrating the GPL into Business Practices}
 

	
 
Since GPL'd software is now extremely prevalent through the industry, it
 
is useful to have some basic knowledge about using GPL'd software in
 
business and how to build business models around GPL'd software.
 

	
 
\section{Using GPL'd Software In-House}
 

	
 
As discussed in Sections~\ref{GPLv2s0} and~\ref{GPLv2s5} of this tutorial,
 
the GPL only governs the activities of copying, modifying and
 
distributing software programs that are not governed by the license.
...
 
@@ -4371,51 +4370,54 @@ However, parties can purchase separate proprietary software licensing for
 
a fee.
 

	
 
This business model is at best problematic and at worst predatory because it means that the GPL'd code
 
base must be developed in a somewhat monolithic way, because volunteer
 
Free Software developers may be reluctant to assign their copyrights to
 
the company because it will not promise to always and forever license the
 
software as Free Software. Indeed, the company will surely use such code
 
contributions in proprietary versions licensed for fees.
 

	
 
\section{Ongoing Compliance}
 

	
 
GPL compliance is in fact a very simple matter --- much simpler than
 
typical proprietary software agreements and EULAs. Usually, the most
 
difficult hurdle is changing from a proprietary software mindset to one
 
that seeks to foster a community of sharing and mutual support. Certainly
 
complying with the GPL from a users' perspective gives substantially fewer
 
headaches than proprietary license compliance.
 

	
 
For those who go into the business of distributing {\em modified}
 
versions of GPL'd software, the burden is a bit higher, but not by
 
much. The glib answer is that by releasing the whole product as Free
 
Software, it is always easy to comply with the GPL. However,
 
admittedly to the dismay of FSF, many modern and complex software
 
systems are built using both proprietary and GPL'd components that are
 
not legally derivative works of each other. Sometimes, it is easier simply to
 
clearly and legally separate and independent works, merely aggregated
 
together on the same device.
 

	
 
However, it's sometimes is easier, quicker, and cheaper to simply to
 
improve existing GPL'd application than to start from scratch.  In
 
exchange for that benefit, the license requires that the modifier gives
 
exchange for this amazing benefit, the license requires that the modifier gives
 
back to the commons that made the work easier in the first place. It is a
 
reasonable trade-off and a way to help build a better world while also
 
making a profit.
 

	
 
Note that FSF does provide services to assist companies who need
 
assistance in complying with the GPL. You can contact FSF's GPL
 
Compliance Labs at $<$licensing@fsf.org$>$.
 

	
 
%FIXME-LATER: should have \tutorialpart
 

	
 
If you are particularly interested in matters of GPL compliance, we
 
recommend the next two parts, which include both recommendations on good
 
compliance and compliance case studies.
 

	
 
% =====================================================================
 
% END OF FIRST DAY SEMINAR SECTION
 
% =====================================================================
 

	
 
%%  LocalWords:  Sebro Novalis Ravicher GPLv GPL'd copylefted LGPLv OSI USC
 
%%  LocalWords:  noncommercially counterintuitive Berne copyrightable DRM UC
 
%%  LocalWords:  proprietarize proprietarization Stallman's Tridgell's RMS
 
%%  LocalWords:  Lessig Lessig's Stallman Proto GPLs proto Tai pre GPL's ful
 
%%  LocalWords:  legalbol AGPLv Runtime licensor licensors relicense UCITA
 
%%  LocalWords:  unprotectable Intl nd th Kepner Tregoe Bando Indust Mitel
0 comments (0 inline, 0 general)