2004-08-20 23:26:46 +00:00
|
|
|
|
% gpl-lgpl.tex -*- LaTeX -*-
|
2004-01-07 21:00:06 +00:00
|
|
|
|
% Tutorial Text for the Detailed Study and Analysis of GPL and LGPL course
|
2003-05-23 21:31:04 +00:00
|
|
|
|
%
|
2004-01-07 21:00:06 +00:00
|
|
|
|
% Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
% Verbatim copying and distribution of this entire document is permitted in
|
|
|
|
|
% any medium, provided this notice is preserved.
|
|
|
|
|
|
2004-09-01 19:43:08 +00:00
|
|
|
|
\documentclass[11pt, letterpaper]{book}
|
2003-05-23 21:31:04 +00:00
|
|
|
|
% FILTER_PS: \input{generate-ps-file}
|
|
|
|
|
% FILTER_PDF: \input{generate-pdf-file}
|
|
|
|
|
% FILTER_HTML: \input{generate-html-file}
|
2004-08-20 23:26:46 +00:00
|
|
|
|
% NOT FOUND \input{one-inch-margins}
|
2004-01-15 22:25:49 +00:00
|
|
|
|
\usepackage{enumerate}
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\usepackage[dvips]{graphicx}
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
%\setlength\parskip{0.7em}
|
|
|
|
|
%\setlength\parindent{0pt}
|
|
|
|
|
|
2003-05-28 18:44:16 +00:00
|
|
|
|
\newcommand{\defn}[1]{\emph{#1}}
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2003-05-26 19:06:48 +00:00
|
|
|
|
%\pagestyle{empty}
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\frontmatter
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\begin{titlepage}
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
%\vspace{.5in}
|
|
|
|
|
\vfill
|
|
|
|
|
|
|
|
|
|
\includegraphics{fsf-logo.eps}
|
|
|
|
|
|
|
|
|
|
\vfill
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-01-07 21:00:06 +00:00
|
|
|
|
{\Large
|
2004-08-20 23:26:46 +00:00
|
|
|
|
{\sc Detailed Study and Analysis of the GPL and LGPL } \\
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\vfill
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
%\vspace{.7in}
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
% \vspace{.3in}
|
|
|
|
|
|
|
|
|
|
Stanford University, Stanford, CA, USA \\
|
2004-01-07 21:24:33 +00:00
|
|
|
|
\vspace{.1in}
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Tuesday, 24 August 2004
|
2004-01-07 21:24:33 +00:00
|
|
|
|
}
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
%\vspace{.7in}
|
|
|
|
|
\vfill
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
|
|
|
|
{\large
|
2003-05-23 21:31:04 +00:00
|
|
|
|
Bradley M. Kuhn
|
|
|
|
|
|
|
|
|
|
Executive Director
|
|
|
|
|
|
|
|
|
|
Free Software Foundation
|
2004-01-07 21:00:06 +00:00
|
|
|
|
}
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-01-07 21:24:33 +00:00
|
|
|
|
\vspace{.3in}
|
|
|
|
|
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-01-07 21:00:06 +00:00
|
|
|
|
{\large
|
|
|
|
|
Daniel Ravicher
|
|
|
|
|
|
|
|
|
|
Senior Counsel
|
|
|
|
|
|
|
|
|
|
Free Software Foundation
|
2004-08-20 23:26:46 +00:00
|
|
|
|
|
|
|
|
|
President and Executive Director
|
|
|
|
|
|
|
|
|
|
Public Patent Foundation
|
|
|
|
|
|
2003-05-23 21:31:04 +00:00
|
|
|
|
}
|
|
|
|
|
|
2004-01-07 21:00:06 +00:00
|
|
|
|
\end{center}
|
|
|
|
|
|
2003-05-23 21:31:04 +00:00
|
|
|
|
\vfill
|
|
|
|
|
|
|
|
|
|
{\parindent 0in
|
2004-01-07 21:00:06 +00:00
|
|
|
|
Copyright \copyright{} 2003, 2004 \hspace{.2in} Free Software Foundation, Inc.
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
\vspace{.3in}
|
|
|
|
|
|
|
|
|
|
Verbatim copying and distribution of this entire document is permitted in
|
|
|
|
|
any medium, provided this notice is preserved.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\end{titlepage}
|
|
|
|
|
|
2003-05-28 18:44:16 +00:00
|
|
|
|
\pagestyle{plain}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\pagenumbering{roman}
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\chapter*{Detailed Study and Analysis of the GPL and LGPL}
|
|
|
|
|
|
|
|
|
|
\textit{Stanford University, Stanford, CA, 24 August 2004}
|
|
|
|
|
|
|
|
|
|
\begin{tabular}[t]{ll}
|
|
|
|
|
09:00 - 09:25 & Registration / Check-in / Continental Breakfast\\
|
|
|
|
|
&\\
|
|
|
|
|
09:25 - 09:30 & Welcome\\
|
|
|
|
|
&\\
|
|
|
|
|
09:30 - 10:00 & Free Software Principles and the Free Software Definition\\
|
|
|
|
|
& \textit{Bradley M. Kuhn}\\
|
|
|
|
|
&\\
|
|
|
|
|
10:00 - 10:10 & Preamble of the GNU General Public License (GPL)\\
|
|
|
|
|
& \textit{Bradley M. Kuhn}\\
|
|
|
|
|
&\\
|
|
|
|
|
10:10 - 10:35 & GPL, \S 0: Definitions, etc.\\
|
|
|
|
|
& \textit{Bradley M. Kuhn}\\
|
|
|
|
|
&\\
|
|
|
|
|
10:35 - 10:50 & GPL, \S 1: Grant for Verbatim Source Copying\\
|
|
|
|
|
& \textit{Bradley M. Kuhn}\\
|
|
|
|
|
&\\
|
|
|
|
|
10:50 - 11:00 & Q \& A\\
|
|
|
|
|
&\\
|
|
|
|
|
11:00 - 11:10 & Break\\
|
|
|
|
|
&\\
|
|
|
|
|
11:10 - 11:55 & Derivative Works: Statute and Case Law\\
|
|
|
|
|
& \textit{Daniel Ravicher}\\
|
|
|
|
|
&\\
|
|
|
|
|
\end{tabular}
|
|
|
|
|
|
|
|
|
|
\begin{tabular}[t]{ll}
|
|
|
|
|
11:55 - 12:20 & GPL, \S 2: Grants for Source Derivative Works\\
|
|
|
|
|
& \textit{Bradley M. Kuhn}\\
|
|
|
|
|
&\\
|
|
|
|
|
12:20 - 12:30 & Q \& A\\
|
|
|
|
|
&\\
|
|
|
|
|
12:30 - 14:00 & Lunch with Lecture "Patents and Free Software"\\
|
|
|
|
|
& \textit{Prof. Eben Moglen}\\
|
|
|
|
|
&\\
|
|
|
|
|
14:00 - 14:20 & GPL, \S 3 Grants for Creating Binary Derivative Works\\
|
|
|
|
|
& \textit{Bradley M. Kuhn}\\
|
|
|
|
|
&\\
|
|
|
|
|
14:20 - 14:40 & The Implied Patent Grant in the GPL\\
|
|
|
|
|
& \textit{Daniel Ravicher}\\
|
|
|
|
|
&\\
|
|
|
|
|
14:40 - 15:25 & GPL, \S 4: Termination of License\\
|
|
|
|
|
& GPL, \S 5: Acceptance of License\\
|
|
|
|
|
& GPL, \S 6: Prohibition on Further Restrictions\\
|
|
|
|
|
& GPL, \S 7: Conflicts with other Agreements or Orders\\
|
|
|
|
|
& GPL, \S 8: International Licensing Issues\\
|
|
|
|
|
& GPL, \S 10: Copyright Holder's Exceptions to the GPL\\
|
|
|
|
|
& \textit{Bradley M. Kuhn}\\
|
|
|
|
|
&\\
|
|
|
|
|
15:25 - 15:35 & GPL, \S 11: Disclaimer of Warranties\\
|
|
|
|
|
& GPL, \S 12: Limitation of Liability\\
|
|
|
|
|
& \textit{Daniel Ravicher}\\
|
|
|
|
|
&\\
|
|
|
|
|
15:35 - 15:45 & Q \& A\\
|
|
|
|
|
&\\
|
|
|
|
|
15:45 - 16:00 & Break\\
|
|
|
|
|
&\\
|
|
|
|
|
16:00 - 17:30 & GNU Lesser General Public License (LGPL)\\
|
|
|
|
|
& \textit{Bradley M. Kuhn}\\
|
|
|
|
|
&\\
|
|
|
|
|
17:30 - 18:00 & Q \& A\\
|
|
|
|
|
\end{tabular}
|
|
|
|
|
|
|
|
|
|
\chapter*{Preface}
|
2003-05-29 19:00:18 +00:00
|
|
|
|
|
2004-01-07 21:00:06 +00:00
|
|
|
|
This one-day course gives a section-by-section explanation of the most
|
|
|
|
|
popular Free Software copyright license, the GNU General Public License
|
|
|
|
|
(GNU GPL), and teaches lawyers, software developers, managers and business
|
2004-01-14 19:04:11 +00:00
|
|
|
|
people how to use the GPL (and GPL'd software) successfully in a new Free
|
2004-01-07 21:00:06 +00:00
|
|
|
|
Software business and in existing, successful enterprises.
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
Attendees should have a general familiarity with software development
|
2004-08-20 23:26:46 +00:00
|
|
|
|
processes. A vague understanding of how copyright law applies to software
|
|
|
|
|
is also helpful. The tutorial is of most interest to lawyers, software
|
2004-01-07 21:00:06 +00:00
|
|
|
|
developers and managers who run software businesses that modify and/or
|
|
|
|
|
redistribute software under terms of the GNU GPL (or who wish to do so in
|
2004-01-14 19:04:11 +00:00
|
|
|
|
the future), and those who wish to make use of existing GPL'd software in
|
2004-01-07 21:00:06 +00:00
|
|
|
|
their enterprise.
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
Upon completion of the tutorial, successful attendees can expect to have
|
|
|
|
|
learned the following:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item The freedom-defending purpose of each term of the GNU GPL
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item The redistribution options under the GPL
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item The obligations when modifying GPL'd software
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item How to build a plan for proper and successful compliance with the GPL
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item The business advantages that the GPL provides
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item The most common business models used in conjunction with the GPL
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item How existing GPL'd software can be used in existing enterprises
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item The basics of the LGPL and how it differs from the GPL
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item How best to understand the complexities regarding derivative
|
|
|
|
|
works of software
|
2003-05-23 21:31:04 +00:00
|
|
|
|
\end{itemize}
|
|
|
|
|
|
2004-02-12 21:08:33 +00:00
|
|
|
|
\bigskip
|
|
|
|
|
|
|
|
|
|
These course materials are merely a summary of the highlights of the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
course presented. Please be aware that during the actual GPL course, class
|
|
|
|
|
discussion supplements this printed curriculum. Simply reading it is
|
|
|
|
|
not equivalent to attending the course.
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2003-05-28 18:44:16 +00:00
|
|
|
|
\tableofcontents
|
|
|
|
|
|
|
|
|
|
\pagebreak
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
% END OF ABSTRACTS SECTION
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
% START OF DAY ONE COURSE
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
\mainmatter
|
|
|
|
|
|
2003-05-28 18:44:16 +00:00
|
|
|
|
\pagenumbering{arabic}
|
|
|
|
|
|
2003-05-23 21:31:04 +00:00
|
|
|
|
\chapter{What Is Free Software?}
|
|
|
|
|
|
2003-05-26 19:06:48 +00:00
|
|
|
|
Consideration of the GNU General Public License (herein, abbreviated as
|
2003-05-28 18:44:16 +00:00
|
|
|
|
\defn{GNU GPL} or just \defn{GPL}) must begin by first considering the broader
|
2004-08-20 23:26:46 +00:00
|
|
|
|
world of Free Software. The GPL was not created from a void, rather,
|
2003-05-26 19:06:48 +00:00
|
|
|
|
it was created to embody and defend a set of principles that were set
|
|
|
|
|
forth at the founding of the GNU project and the Free Software Foundation
|
|
|
|
|
(FSF)---the organization that upholds, defends and promotes the philosophy
|
2004-08-20 23:26:46 +00:00
|
|
|
|
of software freedom. A prerequisite for understanding the GPL and its
|
2003-05-26 19:06:48 +00:00
|
|
|
|
terms and conditions is a basic understanding of the principles behind it.
|
|
|
|
|
The GPL is unlike almost all other software licenses in that it is
|
|
|
|
|
designed to defend and uphold these principles.
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
\section{The Free Software Definition}
|
2003-05-28 18:44:16 +00:00
|
|
|
|
\label{Free Software Definition}
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The Free Software Definition is set forth in full on FSF's Web site at
|
|
|
|
|
\verb0http://www.fsf.org/0 \verb0philosophy/free-sw.html0. This section
|
2003-05-29 23:44:11 +00:00
|
|
|
|
presents an abbreviated version that will focus on the parts that are most
|
|
|
|
|
pertinent to the terms of the GPL\@.
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2003-05-26 19:06:48 +00:00
|
|
|
|
A particular program is Free Software if it grants a particular user of
|
|
|
|
|
that program, the following freedoms:
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item The freedom to run the program for any purpose
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item The freedom to change and modify the program
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item The freedom to copy and share the program
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item The freedom to share improved versions of the program
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The focus on ``a particular user'' is very pertinent here. It is not
|
2003-05-26 19:06:48 +00:00
|
|
|
|
uncommon for the same version of a specific program to grant these
|
|
|
|
|
freedoms to some subset of its user base, while others have none or only
|
2004-08-20 23:26:46 +00:00
|
|
|
|
some of these freedoms. Section~\ref{Proprietary Relicensing} talks in
|
2003-05-29 18:09:03 +00:00
|
|
|
|
detail about how this can happen even if a program is released under the
|
|
|
|
|
GPL\@.
|
2003-05-26 19:06:48 +00:00
|
|
|
|
|
|
|
|
|
Some people refer to software that gives these freedoms as ``Open
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Source.'' Besides having a different political focus than those who
|
|
|
|
|
call it Free Software,\footnote{The political differences between the
|
|
|
|
|
Free Software Movement and the Open Source Movement are documented
|
|
|
|
|
on FSF's Web site at {\tt
|
|
|
|
|
http://www.fsf.org/philosophy/free-software-for-freedom.html}.}
|
|
|
|
|
those who call the software ``Open Source'' are focused on a side
|
|
|
|
|
issue. User access to the source code of a program is a prerequisite
|
|
|
|
|
to make use of the freedom to modify. However, the important issue is
|
|
|
|
|
what freedoms are granted in the license of that source code.
|
|
|
|
|
Microsoft's ``Shared Source'' program, for example, gives various
|
|
|
|
|
types of access to source code, but almost none of the freedoms
|
|
|
|
|
described in this section.
|
|
|
|
|
|
|
|
|
|
One key issue central to these freedoms is that there are no
|
|
|
|
|
restrictions on how these freedoms can be exercised. Specifically, users
|
|
|
|
|
and programmers can exercise these freedoms noncommercially or
|
|
|
|
|
commercially. Licenses that grant these freedoms for noncommercial
|
2003-05-28 18:44:16 +00:00
|
|
|
|
activities but prohibit them for commercial activities are considered
|
2003-05-26 19:06:48 +00:00
|
|
|
|
non-Free.
|
|
|
|
|
|
|
|
|
|
In general, software for which most or all of these freedoms are
|
2004-08-20 23:26:46 +00:00
|
|
|
|
restricted in any way is called ``non-Free Software.'' Typically, the
|
2003-05-28 18:44:16 +00:00
|
|
|
|
term ``proprietary software'' is used more or less interchangeably with
|
2004-08-20 23:26:46 +00:00
|
|
|
|
``non-Free Software.'' Personally, I tend to use the term ``non-Free
|
|
|
|
|
Software'' to refer to noncommercial software that restricts freedom
|
2003-05-28 18:44:16 +00:00
|
|
|
|
(such as ``shareware'') and ``proprietary software'' to refer to
|
2003-05-26 19:06:48 +00:00
|
|
|
|
commercial software that restricts freedom (such as nearly all of
|
|
|
|
|
Microsoft's and Oracle's offerings).
|
|
|
|
|
|
|
|
|
|
The remainder of this section considers each of the four freedoms in
|
|
|
|
|
detail.
|
|
|
|
|
|
2003-05-23 21:31:04 +00:00
|
|
|
|
\subsection{The Freedom to Run}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
For a program to be Free Software, the freedom to run the program must
|
|
|
|
|
be completely unrestricted. This means any use for software the user
|
|
|
|
|
can come up with must be permitted. Perhaps, for example, the user
|
|
|
|
|
has discovered an innovative use for a particular program, one
|
|
|
|
|
that the programmer never could have predicted. Such a use must not
|
|
|
|
|
be restricted.
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2003-05-26 19:06:48 +00:00
|
|
|
|
It was once rare that this freedom was restricted by even proprietary
|
2004-08-20 23:26:46 +00:00
|
|
|
|
software; today it is not so rare. Most End User Licensing Agreements
|
|
|
|
|
(EULAs) that cover most proprietary software restrict some types of
|
|
|
|
|
use. For example, some versions of Microsoft's FrontPage software
|
|
|
|
|
prohibit use of the software to create Web sites that generate
|
|
|
|
|
negative publicity for Microsoft. Free Software has no such
|
|
|
|
|
restrictions; everyone is free to use Free Software for any purpose
|
|
|
|
|
whatsoever.
|
2003-05-26 19:06:48 +00:00
|
|
|
|
|
|
|
|
|
\subsection{The Freedom to Change and Modify}
|
|
|
|
|
|
|
|
|
|
Free Software programs allow users to change, modify and adapt the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
software to suit their needs. Access to the source code and related build
|
|
|
|
|
scripts are an essential part of this freedom. Without the source code
|
2003-05-26 19:06:48 +00:00
|
|
|
|
and the ability to build the binary applications from that source, the
|
|
|
|
|
freedom cannot be properly exercised.
|
|
|
|
|
|
|
|
|
|
Programmers can take direct benefit from this freedom, and often do.
|
2003-05-29 19:47:01 +00:00
|
|
|
|
However, this freedom is also important to users who are not programmers.
|
|
|
|
|
Users must have the right to exercise this freedom indirectly in both
|
2004-08-20 23:26:46 +00:00
|
|
|
|
commercial and noncommercial settings. For example, users often seek
|
|
|
|
|
noncommercial help with the software on email lists and in users groups.
|
2003-05-29 19:47:01 +00:00
|
|
|
|
When they find such help, they must have the freedom to recruit
|
2003-05-28 18:44:16 +00:00
|
|
|
|
programmers who might altruistically assist them to modify their software.
|
2003-05-26 19:06:48 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The commercial exercise of this freedom is also essential for users. Each
|
2003-05-29 19:47:01 +00:00
|
|
|
|
user, or group of users, must have the right to hire anyone they wish in a
|
2004-08-20 23:26:46 +00:00
|
|
|
|
competitive free market to modify and change the software. This means
|
2003-05-26 19:06:48 +00:00
|
|
|
|
that companies have a right to hire anyone they wish to modify their Free
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Software. Additionally, such companies may contract with other companies
|
2003-05-26 19:06:48 +00:00
|
|
|
|
to commission software modification.
|
|
|
|
|
|
|
|
|
|
\subsection{The Freedom to Copy and Share}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Users may share Free Software in a variety of ways. Free Software
|
2003-05-29 23:44:11 +00:00
|
|
|
|
advocates work to eliminate a fundamental ethical dilemma of the software
|
2003-05-26 19:06:48 +00:00
|
|
|
|
age: choosing between obeying a software license, and friendship (by
|
2004-08-20 23:26:46 +00:00
|
|
|
|
giving away a copy of a program to your friend who likes the software you are
|
|
|
|
|
using). Free Software licenses, therefore, must permit this sort of
|
2003-05-28 18:44:16 +00:00
|
|
|
|
altruistic sharing of software among friends.
|
2003-05-26 19:06:48 +00:00
|
|
|
|
|
2003-05-28 18:44:16 +00:00
|
|
|
|
The commercial environment must also have the benefits of this freedom.
|
2003-05-26 19:06:48 +00:00
|
|
|
|
Commercial sharing typically takes the form of selling copies of Free
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Software. Free Software can be sold at any price to anyone. Those who
|
2003-05-26 19:06:48 +00:00
|
|
|
|
redistribute Free Software commercially have the freedom to selectively
|
|
|
|
|
distribute (you can pick your customers) and to set prices at any level
|
|
|
|
|
the redistributor sees fit.
|
|
|
|
|
|
|
|
|
|
It is true that many people get copies of Free Software very cheaply (and
|
|
|
|
|
sometimes without charge). The competitive free market of Free Software
|
2004-08-20 23:26:46 +00:00
|
|
|
|
tends to keep prices low and reasonable. However, if someone is willing
|
2003-05-26 19:06:48 +00:00
|
|
|
|
to pay a billion dollars for one copy of the GNU Compiler Collection, such
|
2003-05-28 18:44:16 +00:00
|
|
|
|
a sale is completely permitted.
|
2003-05-26 19:06:48 +00:00
|
|
|
|
|
|
|
|
|
Another common instance of commercial sharing is service-oriented
|
2004-08-20 23:26:46 +00:00
|
|
|
|
distribution. For example, a distribution vendor may provide immediate
|
|
|
|
|
security and upgrade distribution via a special network service. Such
|
2003-05-26 19:06:48 +00:00
|
|
|
|
distribution is completely permitted for Free Software.
|
|
|
|
|
|
2003-05-29 19:47:01 +00:00
|
|
|
|
(Section~\ref{Business Models} of this tutorial talks in detail about
|
|
|
|
|
various Free Software business models that take advantage of the freedom
|
|
|
|
|
to share commercially.)
|
|
|
|
|
|
2003-05-26 19:06:48 +00:00
|
|
|
|
\subsection{The Freedom to Share Improvements}
|
|
|
|
|
|
|
|
|
|
The freedom to modify and improve is somewhat empty without the freedom to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
share those improvements. The Free Software community is built on the
|
|
|
|
|
pillar of altruistic sharing of improved Free Software. Inevitably, a
|
2003-05-26 19:06:48 +00:00
|
|
|
|
Free Software project sprouts a mailing list where improvements are shared
|
2004-08-20 23:26:46 +00:00
|
|
|
|
freely among members of the development community. Such noncommercial
|
2003-05-26 19:06:48 +00:00
|
|
|
|
sharing must be permitted for Free Software to thrive.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Commercial sharing of modified Free Software is equally important.
|
|
|
|
|
For commercial support to exist in a competitive free market, all
|
|
|
|
|
developers --- from single-person contractors to large software
|
|
|
|
|
companies --- must have the freedom to market their services as
|
|
|
|
|
improvers of Free Software. All forms of such service marketing must
|
|
|
|
|
be equally available to all.
|
2003-05-26 19:06:48 +00:00
|
|
|
|
|
|
|
|
|
For example, selling support services for Free Software is fully
|
2004-08-20 23:26:46 +00:00
|
|
|
|
permitted. Companies and individuals can offer themselves as ``the place
|
|
|
|
|
to call'' when software fails or does not function properly. For such a
|
2003-05-26 19:06:48 +00:00
|
|
|
|
service to be meaningful, the entity offering that service must have the
|
|
|
|
|
right to modify and improve the software for the customer to correct any
|
|
|
|
|
problems that are beyond mere user error.
|
|
|
|
|
|
|
|
|
|
Entities must also be permitted to make available modified versions of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Free Software. Most Free Software programs have a ``standard version''
|
2003-05-29 19:47:01 +00:00
|
|
|
|
that is made available from the primary developers of the software.
|
|
|
|
|
However, all who have the software have the ``freedom to fork'' --- that
|
2004-08-20 23:26:46 +00:00
|
|
|
|
is, make available nontrivial modified versions of the software on a
|
|
|
|
|
permanent or semi-permanent basis. Such freedom is central to vibrant
|
2003-05-29 19:47:01 +00:00
|
|
|
|
developer and user interaction.
|
2003-05-26 19:06:48 +00:00
|
|
|
|
|
|
|
|
|
Companies and individuals have the right to make true value-added versions
|
2004-08-20 23:26:46 +00:00
|
|
|
|
of Free Software. They may use freedom to share improvements to
|
2003-05-26 19:06:48 +00:00
|
|
|
|
distribute distinct versions of Free Software with different functionality
|
2004-08-20 23:26:46 +00:00
|
|
|
|
and features. Furthermore, this freedom can be exercised to serve a
|
|
|
|
|
disenfranchised subset of the user community. If the developers of the
|
2003-05-29 19:47:01 +00:00
|
|
|
|
standard version refuse to serve the needs of some of the software's
|
2004-08-20 23:26:46 +00:00
|
|
|
|
users, other entities have the right to create a long- or short-lived fork
|
|
|
|
|
to serve that sub-community.
|
2003-05-26 19:06:48 +00:00
|
|
|
|
|
|
|
|
|
\section{How Does Software Become Free?}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The last section set forth the freedoms and rights respected by Free
|
|
|
|
|
Software. It presupposed, however, that such software exists. This
|
|
|
|
|
section discusses how Free Software comes into existence. But first, it
|
|
|
|
|
addresses how software can be non-Free in the first place.
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
|
|
|
|
Software can be made proprietary only because it is governed by copyright
|
2004-08-20 23:26:46 +00:00
|
|
|
|
law.\footnote{This statement is a bit of an oversimplification. Patents
|
|
|
|
|
and trade secrets can cover software and make it effectively non-Free,
|
2003-05-29 19:47:01 +00:00
|
|
|
|
one can contract away their rights and freedoms regarding software, or
|
|
|
|
|
source code can be practically obscured in binary-only distribution
|
2004-08-20 23:26:46 +00:00
|
|
|
|
without reliance on any legal system. However, the primary control
|
|
|
|
|
mechanism for software is copyright.} Copyright law, with respect to
|
2003-05-29 23:44:11 +00:00
|
|
|
|
software, governs copying, modifying, and redistributing that
|
2004-08-20 23:26:46 +00:00
|
|
|
|
software.\footnote{Copyright law in general also governs ``public
|
|
|
|
|
performance'' of copyrighted works. There is no generally agreed
|
2003-05-29 19:47:01 +00:00
|
|
|
|
definition for public performance of software and version 2 of the GPL
|
2004-08-20 23:26:46 +00:00
|
|
|
|
does not govern public performance.} By law, the copyright holder (a.k.a.
|
2003-05-29 19:47:01 +00:00
|
|
|
|
the author) of the work controls how others may copy, modify and/or
|
2004-08-20 23:26:46 +00:00
|
|
|
|
distribute the work. For proprietary software, these controls are used to
|
|
|
|
|
prohibit these activities. In addition, proprietary software distributors
|
2003-05-29 19:47:01 +00:00
|
|
|
|
further impede modification in a practical sense by distributing only
|
|
|
|
|
binary code and keeping the source code of the software secret.
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Copyright law is a construction. In the USA, the Constitution permits,
|
2003-05-28 18:44:16 +00:00
|
|
|
|
but does not require, the creation of copyright law as federal
|
2004-08-20 23:26:46 +00:00
|
|
|
|
legislation. Software, since it is an idea fixed in a tangible medium, is
|
2003-05-28 18:44:16 +00:00
|
|
|
|
thus covered by the statues, and is copyrighted by default.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
However, this legal construction is not necessarily natural. Software, in
|
|
|
|
|
its natural state without copyright, is Free Software. In an imaginary
|
|
|
|
|
world with no copyright, the rules would be different. In this
|
2003-05-29 19:47:01 +00:00
|
|
|
|
world, when you received a copy of a program's source code, there would be
|
|
|
|
|
no default legal system to restrict you from sharing it with others,
|
|
|
|
|
making modifications, or redistributing those modified
|
2004-08-20 23:26:46 +00:00
|
|
|
|
versions.\footnote{There could still exist legal systems, like our modern
|
|
|
|
|
patent system, which could restrict the software in other ways.}
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Software in the real world is copyrighted by default and is
|
|
|
|
|
automatically covered by that legal system. However, it is possible
|
|
|
|
|
to move software out of the domain of the copyright system. A
|
|
|
|
|
copyright holder is always permitted to \defn{disclaim} their
|
|
|
|
|
copyright. If copyright is disclaimed, the software is not governed
|
|
|
|
|
by copyright law. Software not governed by copyright is in the
|
|
|
|
|
``public domain.''
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
|
|
|
|
\subsection{Public Domain Software}
|
|
|
|
|
|
|
|
|
|
An author can create public domain software by disclaiming all copyright
|
2004-08-20 23:26:46 +00:00
|
|
|
|
interest on the work. In the USA and other countries that have signed the
|
2003-05-28 18:44:16 +00:00
|
|
|
|
Berne convention on copyright, software is copyrighted automatically by
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the author when she ``fixes the software into a tangible medium.'' In
|
2003-05-28 18:44:16 +00:00
|
|
|
|
the software world, this usually means typing the source code of the
|
|
|
|
|
software into a file.
|
|
|
|
|
|
|
|
|
|
However, an author can disclaim that default control given to her by the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
copyright laws. Once this is done, the software is in the public domain
|
|
|
|
|
--- it is no longer covered by copyright. Since it is copyright law that
|
2003-05-28 18:44:16 +00:00
|
|
|
|
allows for various controls on software (i.e., prohibition of copying,
|
|
|
|
|
modification, and redistribution), removing the software from the
|
|
|
|
|
copyright system and placing it into the public domain does yield Free
|
|
|
|
|
Software.
|
|
|
|
|
|
|
|
|
|
Carefully note that software in the public domain is \emph{not} licensed
|
2004-08-20 23:26:46 +00:00
|
|
|
|
in any way. It is nonsensical to say software is ``licensed for the
|
|
|
|
|
public domain,'' or any phrase that implies the copyright holder gave
|
2003-05-28 18:44:16 +00:00
|
|
|
|
expressed permission to take actions governed by copyright law.
|
|
|
|
|
|
|
|
|
|
By contrast, what the copyright holder has done is renounce her copyright
|
2004-08-20 23:26:46 +00:00
|
|
|
|
controls on the work. The law gave her controls over the work, and she
|
|
|
|
|
has chosen to waive those controls. Software in the public domain is
|
|
|
|
|
absent copyright and absent a license. The software freedoms discussed in
|
2003-05-28 18:44:16 +00:00
|
|
|
|
Section~\ref{Free Software Definition} are all granted because there is no
|
|
|
|
|
legal system in play to take them away.
|
|
|
|
|
|
|
|
|
|
\subsection{Why Copyright Free Software?}
|
|
|
|
|
|
|
|
|
|
If simply disclaiming copyright on software yields Free Software, then it
|
|
|
|
|
stands to reason that putting software into the public domain is the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
easiest and most straightforward way to produce Free Software. Indeed,
|
2003-05-28 18:44:16 +00:00
|
|
|
|
some major Free Software projects have chosen this method for making their
|
2004-08-20 23:26:46 +00:00
|
|
|
|
software Free. However, most of the Free Software in existence \emph{is}
|
|
|
|
|
copyrighted. In most cases (particularly in those of FSF and the GNU
|
2003-05-28 18:44:16 +00:00
|
|
|
|
Project), this was done due to very careful planning.
|
|
|
|
|
|
|
|
|
|
Software released into the public domain does grant freedom to those users
|
2003-05-29 19:47:01 +00:00
|
|
|
|
who receive the standard versions on which the original author disclaimed
|
2004-08-20 23:26:46 +00:00
|
|
|
|
copyright. However, since the work is not copyrighted, any nontrivial
|
2003-05-28 18:44:16 +00:00
|
|
|
|
modification made to the work is fully copyrightable.
|
|
|
|
|
|
|
|
|
|
Free Software released into the public domain initially is Free, and
|
|
|
|
|
perhaps some who modify the software choose to place their work into the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
public domain as well. However, over time, some entities will choose to
|
|
|
|
|
proprietarize their modified versions. The public domain body of software
|
|
|
|
|
feeds the proprietary software. The public commons disappears, because
|
2003-05-28 18:44:16 +00:00
|
|
|
|
fewer and fewer entities have an incentive to contribute back to the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
commons. They know that any of their competitors can proprietarize their
|
|
|
|
|
enhancements. Over time, almost no interesting work is left in the public
|
2003-05-29 19:47:01 +00:00
|
|
|
|
domain, because nearly all new work is done by proprietarization.
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
A legal mechanism is needed to redress this problem. FSF was in fact
|
2003-05-28 18:44:16 +00:00
|
|
|
|
originally created primarily as a legal entity to defend software freedom,
|
2004-08-20 23:26:46 +00:00
|
|
|
|
and that work of defending software freedom is a substantial part of
|
|
|
|
|
its work today. Specifically because of this ``embrace, proprietarize and
|
2003-05-28 18:44:16 +00:00
|
|
|
|
extend'' cycle, FSF made a conscious choice to copyright its Free Software,
|
2004-08-20 23:26:46 +00:00
|
|
|
|
and then license it under ``copyleft'' terms. Many, including the
|
2003-05-29 23:44:11 +00:00
|
|
|
|
developers of the kernel named Linux, have chosen to follow this paradigm.
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
|
|
|
|
Copyleft is a legal strategy to defend, uphold and propagate software
|
2004-08-20 23:26:46 +00:00
|
|
|
|
freedom. The basic technique of copyleft is as follows: copyright the
|
2003-05-28 18:44:16 +00:00
|
|
|
|
software, license it under terms that give all the software freedoms, but
|
|
|
|
|
use the copyright law controls to ensure that all who receive a copy of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the software have equal rights and freedom. In essence, copyleft grants
|
|
|
|
|
freedom, but forbids others to forbid that freedom to anyone else along
|
2003-05-28 18:44:16 +00:00
|
|
|
|
the distribution and modification chains.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Copyleft is a general concept. Much like ideas for what a computer might
|
2003-05-28 18:44:16 +00:00
|
|
|
|
do must be \emph{implemented} by a program that actually does the job, so
|
|
|
|
|
too must copyleft be implemented in some concrete legal structure.
|
2004-08-20 23:26:46 +00:00
|
|
|
|
``Share and share alike'' is a phrase that is used often enough to explain the
|
2003-05-28 18:44:16 +00:00
|
|
|
|
concept behind copyleft, but to actually make it work in the real world, a
|
2004-08-20 23:26:46 +00:00
|
|
|
|
true implementation in legal text must exist. The GPL is the primary
|
2003-05-28 18:44:16 +00:00
|
|
|
|
implementation of copyleft in copyright licensing language.
|
|
|
|
|
|
|
|
|
|
\section{An Ecosystem of Equality}
|
|
|
|
|
|
|
|
|
|
The GPL uses copyright law to defend freedom and equally ensure users'
|
2004-08-20 23:26:46 +00:00
|
|
|
|
rights. This ultimately creates an ecosystem of equality for both
|
|
|
|
|
business and noncommercial users.
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\subsection{The Noncommercial Ecosystem}
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
2004-01-14 19:04:11 +00:00
|
|
|
|
A GPL'd code base becomes a center of a vibrant development and user
|
2004-08-20 23:26:46 +00:00
|
|
|
|
community. Traditionally, volunteers, operating noncommercially out of
|
2003-05-28 18:44:16 +00:00
|
|
|
|
keen interest or ``scratch an itch'' motivations, produce initial versions
|
2004-08-20 23:26:46 +00:00
|
|
|
|
of a GPL'd system. Because of the efficient distribution channels of the
|
|
|
|
|
Internet, any useful GPL'd system is adopted quickly by noncommercial
|
2003-05-28 18:44:16 +00:00
|
|
|
|
users.
|
|
|
|
|
|
|
|
|
|
Fundamentally, the early release and quick distribution of the software
|
2004-08-20 23:26:46 +00:00
|
|
|
|
gives birth to a thriving noncommercial community. Users and developers
|
2003-05-28 18:44:16 +00:00
|
|
|
|
begin sharing bug reports and bug fixes across a shared intellectual
|
2004-08-20 23:26:46 +00:00
|
|
|
|
commons. Users can trust the developers, because they know that if the
|
2003-05-28 18:44:16 +00:00
|
|
|
|
developers fail to address their needs or abandon the project, the GPL
|
|
|
|
|
ensures that someone else has the right to pick up development.
|
|
|
|
|
Developers know that the users cannot redistribute their software without
|
|
|
|
|
passing along the rights granted by GPL, so they are assured that every
|
|
|
|
|
one of their users is treated equally.
|
|
|
|
|
|
2004-01-14 19:04:11 +00:00
|
|
|
|
Because of the symmetry and fairness inherent in GPL'd distribution,
|
2004-08-20 23:26:46 +00:00
|
|
|
|
nearly every GPL'd package in existence has a vibrant noncommercial user
|
2003-05-28 18:44:16 +00:00
|
|
|
|
and developer base.
|
|
|
|
|
|
|
|
|
|
\subsection{The Commercial Ecosystem}
|
|
|
|
|
|
2004-01-14 19:04:11 +00:00
|
|
|
|
By the same token, nearly all established GPL'd software systems have a
|
2004-08-20 23:26:46 +00:00
|
|
|
|
vibrant commercial community. Nearly every GPL'd system that has gained
|
|
|
|
|
wide adoption from noncommercial users and developers eventually begins
|
2003-05-28 18:44:16 +00:00
|
|
|
|
to fuel a commercial system around that software.
|
|
|
|
|
|
|
|
|
|
For example, consider the Samba file server system that allows Unix-like
|
|
|
|
|
systems (including GNU/Linux) to serve files to Microsoft Windows systems.
|
|
|
|
|
Two graduate students originally developed Samba in their spare time and
|
2004-08-20 23:26:46 +00:00
|
|
|
|
it was deployed noncommercially in academic environments. However, very
|
2003-05-28 18:44:16 +00:00
|
|
|
|
soon for-profit companies discovered that the software could work for them
|
|
|
|
|
as well, and their system administrators began to use it in place of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Microsoft Windows NT file-servers. This served to lower the cost of
|
|
|
|
|
running such servers by orders of magnitude. There was suddenly room in
|
|
|
|
|
Windows file-server budgets to hire contractors to improve Samba. Some of
|
2003-05-29 23:44:11 +00:00
|
|
|
|
the first people hired to do such work were those same two graduate
|
|
|
|
|
students who originally developed the software.
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The noncommercial users, however, were not concerned when these two
|
|
|
|
|
fellows began collecting paychecks off of their GPL'd work. They knew
|
2003-05-28 18:44:16 +00:00
|
|
|
|
that because of the nature of the GPL that improvements that were
|
|
|
|
|
distributed in the commercial environment could easily be folded back into
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the standard version. Companies are not permitted to proprietarize
|
|
|
|
|
Samba, so the noncommercial users, and even other commercial users are
|
2003-05-28 18:44:16 +00:00
|
|
|
|
safe in the knowledge that the software freedom ensured by GPL will remain
|
|
|
|
|
protected.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Commercial developers also work in concert with noncommercial
|
|
|
|
|
developers. Those two now-long-since graduated students continue to
|
|
|
|
|
contribute to Samba altruistically, but also get paid work doing it.
|
|
|
|
|
Priorities change when a client is in the mix, but all the code is
|
|
|
|
|
contributed back to the standard version. Meanwhile, many other
|
|
|
|
|
individuals have gotten involved noncommercially as developers,
|
|
|
|
|
because they want to ``cut their teeth on Free Software,'' or because
|
|
|
|
|
the problems interest them. When they get good at it, perhaps they
|
|
|
|
|
will move on to another project, or perhaps they will become
|
|
|
|
|
commercial developers of the software themselves.
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
|
|
|
|
No party is a threat to another in the GPL software scenario because
|
2004-08-20 23:26:46 +00:00
|
|
|
|
everyone is on equal ground. The GPL protects rights of the commercial
|
|
|
|
|
and noncommercial contributors and users equally. The GPL creates trust,
|
2003-05-28 18:44:16 +00:00
|
|
|
|
because it is a level playing field for all.
|
|
|
|
|
|
|
|
|
|
\subsection{Law Analogy}
|
|
|
|
|
|
|
|
|
|
In his introduction to Stallman's \emph{Free Software, Free Society},
|
|
|
|
|
Lawrence Lessig draws an interesting analogy between the law and Free
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Software. He argues that the laws of a free society must be protected
|
|
|
|
|
much like the GPL protects software. So that I might do true justice to
|
2003-05-28 18:44:16 +00:00
|
|
|
|
Lessig's argument, I quote it verbatim:
|
|
|
|
|
|
|
|
|
|
\begin{quotation}
|
|
|
|
|
|
|
|
|
|
A ``free society'' is regulated by law. But there are limits that any free
|
|
|
|
|
society places on this regulation through law: No society that kept its
|
|
|
|
|
laws secret could ever be called free. No government that hid its
|
|
|
|
|
regulations from the regulated could ever stand in our tradition. Law
|
2004-08-20 23:26:46 +00:00
|
|
|
|
controls. But it does so justly only when visibly. And law is visible
|
2003-05-28 18:44:16 +00:00
|
|
|
|
only when its terms are knowable and controllable by those it regulates,
|
|
|
|
|
or by the agents of those it regulates (lawyers, legislatures).
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
This condition on law extends beyond the work of a legislature. Think
|
|
|
|
|
about the practice of law in American courts. Lawyers are hired by their
|
2003-05-28 18:44:16 +00:00
|
|
|
|
clients to advance their clients' interests. Sometimes that interest is
|
|
|
|
|
advanced through litigation. In the course of this litigation, lawyers
|
2004-08-20 23:26:46 +00:00
|
|
|
|
write briefs. These briefs in turn affect opinions written by judges.
|
2003-05-28 18:44:16 +00:00
|
|
|
|
These opinions decide who wins a particular case, or whether a certain law
|
|
|
|
|
can stand consistently with a constitution.
|
|
|
|
|
|
|
|
|
|
All the material in this process is free in the sense that Stallman means.
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Legal briefs are open and free for others to use. The arguments are
|
|
|
|
|
transparent (which is different from saying they are good), and the
|
2003-05-28 18:44:16 +00:00
|
|
|
|
reasoning can be taken without the permission of the original lawyers.
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The opinions they produce can be quoted in later briefs. They can be
|
|
|
|
|
copied and integrated into another brief or opinion. The ``source code''
|
2003-05-28 18:44:16 +00:00
|
|
|
|
for American law is by design, and by principle, open and free for anyone
|
|
|
|
|
to take. And take lawyers do---for it is a measure of a great brief that
|
2004-08-20 23:26:46 +00:00
|
|
|
|
it achieves its creativity through the reuse of what happened before. The
|
2003-05-28 18:44:16 +00:00
|
|
|
|
source is free; creativity and an economy is built upon it.
|
|
|
|
|
|
|
|
|
|
This economy of free code (and here I mean free legal code) doesn't starve
|
2004-08-20 23:26:46 +00:00
|
|
|
|
lawyers. Law firms have enough incentive to produce great briefs even
|
|
|
|
|
though the stuff they build can be taken and copied by anyone else. The
|
|
|
|
|
lawyer is a craftsman; his or her product is public. Yet the crafting is
|
|
|
|
|
not charity. Lawyers get paid; the public doesn't demand such work
|
|
|
|
|
without price. Instead this economy flourishes, with later work added to
|
2003-05-28 18:44:16 +00:00
|
|
|
|
the earlier.
|
|
|
|
|
|
|
|
|
|
We could imagine a legal practice that was different---briefs and
|
|
|
|
|
arguments that were kept secret; rulings that announced a result but not
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the reasoning. Laws that were kept by the police but published to no one
|
|
|
|
|
else. Regulation that operated without explaining its rule.
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
|
|
|
|
We could imagine this society, but we could not imagine calling it
|
|
|
|
|
``free.'' Whether or not the incentives in such a society would be better
|
|
|
|
|
or more efficiently allocated, such a society could not be known as free.
|
|
|
|
|
The ideals of freedom, of life within a free society, demand more than
|
2004-08-20 23:26:46 +00:00
|
|
|
|
efficient application. Instead, openness and transparency are the
|
2003-05-28 18:44:16 +00:00
|
|
|
|
constraints within which a legal system gets built, not options to be
|
2004-08-20 23:26:46 +00:00
|
|
|
|
added if convenient to the leaders. Life governed by software code should
|
2003-05-28 18:44:16 +00:00
|
|
|
|
be no less.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Code writing is not litigation. It is better, richer, more
|
2003-05-28 18:44:16 +00:00
|
|
|
|
productive. But the law is an obvious instance of how creativity and
|
2004-08-20 23:26:46 +00:00
|
|
|
|
incentives do not depend upon perfect control over the products
|
|
|
|
|
created. Like jazz, or novels, or architecture, the law gets built
|
|
|
|
|
upon the work that went before. This adding and changing is what
|
|
|
|
|
creativity always is. And a free society is one that assures that its
|
|
|
|
|
most important resources remain free in just this sense.\footnote{This
|
|
|
|
|
quotation is Copyright \copyright{} 2002, Lawrence Lessig. It is
|
|
|
|
|
licensed under the terms of
|
|
|
|
|
\texttt{http://creativecommons.org/licenses/by/1.0/}{the ``Attribution
|
|
|
|
|
License'' version 1.0} or any later version as published by Creative
|
|
|
|
|
Commons.}
|
2003-05-28 18:44:16 +00:00
|
|
|
|
\end{quotation}
|
|
|
|
|
|
|
|
|
|
In essence, lawyers are paid to service the shared commons of legal
|
2004-08-20 23:26:46 +00:00
|
|
|
|
infrastructure. Few citizens defend themselves in court or write their
|
2003-05-29 19:47:01 +00:00
|
|
|
|
own briefs (even though they are legally permitted to do so) because
|
|
|
|
|
everyone would prefer to have an expert do that job.
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The Free Software economy is a market ripe for experts. It
|
2003-05-28 18:44:16 +00:00
|
|
|
|
functions similarly to other well established professional fields like the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
law. The GPL, in turn, serves as the legal scaffolding that permits the
|
|
|
|
|
creation of this vibrant commercial and noncommercial Free Software
|
2003-05-28 18:44:16 +00:00
|
|
|
|
economy.
|
|
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\chapter{Running Software and Verbatim Copying}
|
2004-02-12 21:08:33 +00:00
|
|
|
|
\label{run-and-verbatim}
|
|
|
|
|
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
2003-05-28 23:01:46 +00:00
|
|
|
|
This chapter begins the deep discussion of the details of the terms of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
GPL\@. In this chapter, we consider the first two sections: GPL \S\S
|
|
|
|
|
0--2. These are the straightforward sections of the GPL that define the
|
2004-01-15 22:25:49 +00:00
|
|
|
|
simplest rights that the user receives.
|
2003-05-28 23:01:46 +00:00
|
|
|
|
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\section{GPL \S 0: Freedom to Run}
|
2003-05-29 23:44:11 +00:00
|
|
|
|
\label{GPLs0}
|
2003-05-28 23:01:46 +00:00
|
|
|
|
|
|
|
|
|
\S 0, the opening section of GPL, sets forth that the work is governed by
|
2004-08-20 23:26:46 +00:00
|
|
|
|
copyright law. It specifically points out that it is the ``copyright
|
|
|
|
|
holder'' who decides if a work is licensed under its terms and explains
|
2003-05-28 23:01:46 +00:00
|
|
|
|
how the copyright holder might indicate this fact.
|
|
|
|
|
|
|
|
|
|
A bit more subtly, \S 0 makes an inference that copyright law is the only
|
2004-08-20 23:26:46 +00:00
|
|
|
|
system under which it is governed. Specifically, it states:
|
2003-05-28 23:01:46 +00:00
|
|
|
|
\begin{quote}
|
|
|
|
|
Activities other than copying, distribution and modification are not
|
|
|
|
|
covered by this License; they are outside its scope.
|
|
|
|
|
\end{quote}
|
2004-08-20 23:26:46 +00:00
|
|
|
|
In essence, the license governs \emph{only} those activities, and all other
|
2003-05-28 23:01:46 +00:00
|
|
|
|
activities are unrestricted, provided that no other agreements trump GPL
|
2004-08-20 23:26:46 +00:00
|
|
|
|
(which they cannot; see Sections~\ref{GPLs6} and~\ref{GPLs7}). This is
|
2003-05-28 23:01:46 +00:00
|
|
|
|
very important, because the Free Software community heavily supports
|
|
|
|
|
users' rights to ``fair use'' and ``unregulated use'' of copyrighted
|
2004-08-20 23:26:46 +00:00
|
|
|
|
material. GPL asserts through this clause that it supports users' rights
|
2003-05-28 23:01:46 +00:00
|
|
|
|
to fair and unregulated uses.
|
|
|
|
|
|
|
|
|
|
Fair use of copyrighted material is an established legal doctrine that
|
2004-08-20 23:26:46 +00:00
|
|
|
|
permits certain activities. Discussion of the various types of fair
|
|
|
|
|
use activity are beyond the scope of this tutorial. However, one
|
|
|
|
|
important example of fair use is the right to quote a very few lines
|
|
|
|
|
(less than seven or so) and reuse them as you would with or without
|
|
|
|
|
licensing restrictions.
|
2003-05-28 23:01:46 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Fair use is a doctrine established by the courts or by statute. By
|
2003-05-28 23:01:46 +00:00
|
|
|
|
contrast, unregulated uses are those that are not covered by the statue
|
|
|
|
|
nor determined by a court to be covered, but are common and enjoyed by
|
2004-08-20 23:26:46 +00:00
|
|
|
|
many users. An example of unregulated use is reading a printout of the
|
2003-05-29 23:44:11 +00:00
|
|
|
|
program's source code like an instruction book for the purpose of learning
|
2003-05-29 22:29:43 +00:00
|
|
|
|
how to be a better programmer.
|
2003-05-28 23:01:46 +00:00
|
|
|
|
|
|
|
|
|
\medskip
|
|
|
|
|
|
2003-05-29 14:41:31 +00:00
|
|
|
|
Thus, the GPL protects users fair and unregulated use rights precisely by
|
2004-08-20 23:26:46 +00:00
|
|
|
|
not attempting to cover them. Furthermore, the GPL ensures the freedom
|
2003-05-28 23:01:46 +00:00
|
|
|
|
to run specifically by stating the following:
|
|
|
|
|
\begin{quote}
|
2004-08-20 23:26:46 +00:00
|
|
|
|
''The act of running the Program is not restricted.''
|
2003-05-28 23:01:46 +00:00
|
|
|
|
\end{quote}
|
|
|
|
|
Thus, users are explicitly given the freedom to run by \S 0.
|
|
|
|
|
|
|
|
|
|
\medskip
|
|
|
|
|
|
2003-05-29 14:41:31 +00:00
|
|
|
|
The bulk of \S 0 not yet discussed gives definitions for other terms used
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2003-05-29 14:41:31 +00:00
|
|
|
|
because it clears up a common misconception about the GPL\@.
|
|
|
|
|
|
|
|
|
|
The GPL is often mistakenly criticized because it fails to give a
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2003-05-29 14:41:31 +00:00
|
|
|
|
matter is left up to copyright law, not the licenses that utilize it.
|
|
|
|
|
|
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
software work under copyright law. However, no copyright license --- not
|
|
|
|
|
even the GNU GPL --- can be blamed for this. Legislators and court
|
2003-05-29 14:41:31 +00:00
|
|
|
|
opinions must give us guidance to decide the border cases.
|
|
|
|
|
|
|
|
|
|
\section{GPL \S 1: Verbatim Copying}
|
2003-05-29 23:44:11 +00:00
|
|
|
|
\label{GPLs1}
|
2003-05-29 14:41:31 +00:00
|
|
|
|
|
|
|
|
|
GPL \S 1 covers the matter of redistributing the source code of a program
|
2004-08-20 23:26:46 +00:00
|
|
|
|
exactly as it was received. This section is quite straightforward.
|
2003-05-29 14:41:31 +00:00
|
|
|
|
However, there are a few details worth noting here.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The phrase ``in any medium'' is important. This, for example, gives the
|
2003-05-29 14:41:31 +00:00
|
|
|
|
freedom to publish a book that is the printed copy of the program's source
|
2004-08-20 23:26:46 +00:00
|
|
|
|
code. It also allows for changes in the medium of distribution. Some
|
2003-05-29 14:41:31 +00:00
|
|
|
|
vendors may ship Free Software on a CD, but others may place it right on
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the hard drive of a pre-installed computer. Any such redistribution media
|
2003-05-29 14:41:31 +00:00
|
|
|
|
is allowed.
|
|
|
|
|
|
|
|
|
|
Preservation of copyright notice and license notifications are mentioned
|
2004-08-20 23:26:46 +00:00
|
|
|
|
specifically in \S 1. These are in some ways the most important part of
|
|
|
|
|
the redistribution, which is why they are mentioned by name. The GPL
|
2003-05-29 14:41:31 +00:00
|
|
|
|
always strives to make it abundantly clear to anyone who receives the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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 someone would be
|
|
|
|
|
surprised the software she got was licensed under GPL\@. Thus
|
|
|
|
|
throughout the GPL, there are specific references to the importance of
|
2003-05-29 14:41:31 +00:00
|
|
|
|
notifying others down the distribution chain that they have rights under
|
|
|
|
|
GPL.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Also mentioned by name is the warranty disclaimer. Most people today do
|
|
|
|
|
not believe that software comes with any warranty. Notwithstanding the
|
2003-05-29 14:41:31 +00:00
|
|
|
|
proposed state-level UCITA bills (which have never obtained widespread
|
2004-08-20 23:26:46 +00:00
|
|
|
|
adoption), there are few or no implied warranties with software.
|
2003-05-29 14:41:31 +00:00
|
|
|
|
However, just to be on the safe side, GPL clearly disclaims them, and the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
GPL requires redistributors to keep the disclaimer very visible. (See
|
2003-05-29 14:41:31 +00:00
|
|
|
|
Sections~\ref{GPLs11} and~\ref{GPLs12} of this tutorial for more on GPL's
|
|
|
|
|
warranty disclaimers.)
|
|
|
|
|
|
|
|
|
|
Note finally that \S 1 begins to set forth the important defense of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
commercial freedom. \S 1 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
|
2003-05-29 14:41:31 +00:00
|
|
|
|
provide the warranty protection that the GPL disclaims as an additional
|
2004-08-20 23:26:46 +00:00
|
|
|
|
service for a fee. (See Section~\ref{Business Models} for more discussion
|
2003-05-29 19:00:18 +00:00
|
|
|
|
on making a profit from Free Software redistribution.)
|
2003-05-29 14:41:31 +00:00
|
|
|
|
|
2004-01-15 22:25:49 +00:00
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
|
|
|
|
|
\chapter{Derivative Works: Statute and Case Law}
|
|
|
|
|
|
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
understand fully before considering \S\S 2--3 of GPL\@. GPL, and Free
|
2004-01-15 22:25:49 +00:00
|
|
|
|
Software licensing in general, relies critically on the concept of
|
|
|
|
|
``derivative work'' since software that is ``independent,'' (i.e., not
|
2004-08-20 23:26:46 +00:00
|
|
|
|
``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
|
2004-01-15 22:25:49 +00:00
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
`work based on the Program' means either the Program or any derivative
|
2004-01-15 22:25:49 +00:00
|
|
|
|
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
|
|
|
|
|
license under which the original work is distributed. Therefore, one is
|
2004-08-20 23:26:46 +00:00
|
|
|
|
left to ask, just what is a ``derivative work''? The answer to that
|
2004-01-15 22:25:49 +00:00
|
|
|
|
question differs depending on which court is being asked.
|
|
|
|
|
|
|
|
|
|
The analysis in this chapter sets forth the differing definitions of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
derivative work by the circuit courts. The broadest and most
|
|
|
|
|
established definition of derivative work for software is the
|
|
|
|
|
abstraction, filtration, and comparison test (``the AFC test'') as
|
|
|
|
|
created and developed by the Second Circuit. Some circuits, including
|
|
|
|
|
the Ninth Circuit and the First Circuit, have either adopted narrower
|
|
|
|
|
versions of the AFC test or have expressly rejected the AFC test in
|
|
|
|
|
favor of a narrower standard. Further, several other circuits have yet
|
|
|
|
|
to adopt any definition of derivative work for software.
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
|
|
|
|
As an introductory matter, it is important to note that literal copying of
|
|
|
|
|
a significant portion of source code is not always sufficient to establish
|
|
|
|
|
that a second work is a derivative work of an original
|
|
|
|
|
program. Conversely, a second work can be a derivative work of an original
|
|
|
|
|
program even though absolutely no copying of the literal source code of
|
|
|
|
|
the original program has been made. This is the case because copyright
|
2004-08-20 23:26:46 +00:00
|
|
|
|
protection does not always extend to all portions of a program's code,
|
2004-01-15 22:25:49 +00:00
|
|
|
|
while, at the same time, it can extend beyond the literal code of a
|
|
|
|
|
program to its non-literal aspects, such as its architecture, structure,
|
|
|
|
|
sequence, organization, operational modules, and computer-user interface.
|
|
|
|
|
|
|
|
|
|
\section{The Copyright Act}
|
|
|
|
|
|
|
|
|
|
The copyright act is of little, if any, help in determining the definition
|
|
|
|
|
of a derivative work of software. However, the applicable provisions do
|
|
|
|
|
provide some, albeit quite cursory, guidance. Section 101 of the Copyright
|
|
|
|
|
Act sets forth the following definitions:
|
|
|
|
|
|
2004-02-12 21:08:33 +00:00
|
|
|
|
\begin{quotation}
|
2004-01-15 22:25:49 +00:00
|
|
|
|
A ``computer program'' is a set of statements or instructions to be used
|
|
|
|
|
directly or indirectly in a computer in order to bring about a certain
|
|
|
|
|
result.
|
|
|
|
|
|
|
|
|
|
A ``derivative work'' is a work based upon one or more preexisting works,
|
|
|
|
|
such as a translation, musical arrangement, dramatization,
|
|
|
|
|
fictionalization, motion picture version, sound recording, art
|
|
|
|
|
reproduction, abridgment, condensation, or any other form in which a work
|
|
|
|
|
may be recast, transformed, or adapted. A work consisting of editorial
|
|
|
|
|
revisions, annotations, elaborations, or other modifications which, as a
|
2004-08-20 23:26:46 +00:00
|
|
|
|
whole, represent an original work of authorship, is a ``derivative work.''
|
2004-02-12 21:08:33 +00:00
|
|
|
|
\end{quotation}
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
\begin{quotation}
|
|
|
|
|
In no case does copyright protection for an original work of authorship
|
|
|
|
|
extend to any idea, procedure, process, system, method of operation,
|
|
|
|
|
concept, principle, or discovery, regardless of the form in which it is
|
|
|
|
|
described, explained, illustrated, or embodied in such work.
|
|
|
|
|
\end{quotation}
|
|
|
|
|
|
|
|
|
|
Therefore, before a court can ask whether one program is a derivative work
|
|
|
|
|
of another program, it must be careful not to extend copyright protection
|
|
|
|
|
to any ideas, procedures, processes, systems, methods of operation,
|
|
|
|
|
concepts, principles, or discoveries contained in the original program. It
|
|
|
|
|
is the implementation of this requirement to ``strip out'' unprotectable
|
|
|
|
|
elements that serves as the most frequent issue over which courts
|
|
|
|
|
disagree.
|
|
|
|
|
|
|
|
|
|
\section{Abstraction, Filtration, Comparison Test}
|
|
|
|
|
|
|
|
|
|
As mentioned above, the AFC test for determining whether a computer
|
|
|
|
|
program is a derivative work of an earlier program was created by the
|
|
|
|
|
Second Circuit and has since been adopted in the Fifth, Tenth, and
|
|
|
|
|
Eleventh Circuits. Computer Associates Intl., Inc. v. Altai, Inc., 982
|
|
|
|
|
F.2d 693 (2nd Cir. 1992); Engineering Dynamics, Inc. v. Structural
|
|
|
|
|
Software, Inc., 26 F.3d 1335 (5th Cir. 1994); Kepner-Tregoe,
|
|
|
|
|
Inc. v. Leadership Software, Inc., 12 F.3d 527 (5th Cir. 1994); Gates
|
|
|
|
|
Rubber Co. v. Bando Chem. Indust., Ltd., 9 F.3d 823 (10th Cir. 1993);
|
|
|
|
|
Mitel, Inc. v. Iqtel, Inc., 124 F.3d 1366 (10th Cir. 1997); 5 Bateman
|
2004-08-20 23:26:46 +00:00
|
|
|
|
v. Mnemonics, Inc., 79 F.3d 1532 (11th Cir. 1996); and, Mitek Holdings,
|
2004-01-15 22:25:49 +00:00
|
|
|
|
Inc. v. Arce Engineering Co., Inc., 89 F.3d 1548 (11th Cir. 1996).
|
|
|
|
|
|
|
|
|
|
Under the AFC test, a court first abstracts from the original program its
|
|
|
|
|
constituent structural parts. Then, the court filters from those
|
|
|
|
|
structural parts all unprotectable portions, including incorporated ideas,
|
|
|
|
|
expression that is necessarily incidental to those ideas, and elements
|
|
|
|
|
that are taken from the public domain. Finally, the court compares any and
|
|
|
|
|
all remaining kernels of creative expression to the structure of the
|
|
|
|
|
second program to determine whether the software programs at issue are
|
|
|
|
|
substantially similar so as to warrant a finding that one is the
|
|
|
|
|
derivative work of the other.
|
|
|
|
|
|
|
|
|
|
Often, the courts that apply the AFC test will perform a quick initial
|
|
|
|
|
comparison between the entirety of the two programs at issue in order to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
help determine whether one is a derivative work of the other. Such a
|
2004-01-15 22:25:49 +00:00
|
|
|
|
holistic comparison, although not a substitute for the full application of
|
|
|
|
|
the AFC test, sometimes reveals a pattern of copying that is not otherwise
|
|
|
|
|
obvious from the application of the AFC test when, as discussed below,
|
|
|
|
|
only certain components of the original program are compared to the second
|
|
|
|
|
program. If such a pattern is revealed by the quick initial comparison,
|
|
|
|
|
the court is more likely to conclude that the second work is indeed a
|
|
|
|
|
derivative of the original.
|
|
|
|
|
|
|
|
|
|
\subsection{Abstraction}
|
|
|
|
|
|
|
|
|
|
The first step courts perform under the AFC test is separation of the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
work's ideas from its expression. In a process akin to reverse
|
2004-01-15 22:25:49 +00:00
|
|
|
|
engineering, the courts dissect the original program to isolate each level
|
|
|
|
|
of abstraction contained within it. Courts have stated that the
|
|
|
|
|
abstractions step is particularly well suited for computer programs
|
|
|
|
|
because it breaks down software in a way that mirrors the way it is
|
2004-08-20 23:26:46 +00:00
|
|
|
|
typically created. However, the courts have also indicated that this step
|
2004-01-15 22:25:49 +00:00
|
|
|
|
of the AFC test requires substantial guidance from experts, because it is
|
|
|
|
|
extremely fact and situation specific.
|
|
|
|
|
|
|
|
|
|
By way of example, one set of abstraction levels is, in descending order
|
|
|
|
|
of generality, as follows: the main purpose, system architecture, abstract
|
|
|
|
|
data types, algorithms and data structures, source code, and object
|
|
|
|
|
code. As this set of abstraction levels shows, during the abstraction step
|
|
|
|
|
of the AFC test, the literal elements of the computer program, namely the
|
|
|
|
|
source and object code, are defined as particular levels of
|
|
|
|
|
abstraction. Further, the source and object code elements of a program are
|
|
|
|
|
not the only elements capable of forming the basis for a finding that a
|
|
|
|
|
second work is a derivative of the program. In some cases, in order to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
avoid a lengthy factual inquiry by the court, the owner of the copyright in
|
2004-01-15 22:25:49 +00:00
|
|
|
|
the original work will submit its own list of what it believes to be the
|
|
|
|
|
protected elements of the original program. In those situations, the court
|
2004-08-20 23:26:46 +00:00
|
|
|
|
will forgo performing its own abstraction, and proceed to the second step of
|
2004-01-15 22:25:49 +00:00
|
|
|
|
the AFC test.
|
|
|
|
|
|
|
|
|
|
\subsection{Filtration}
|
|
|
|
|
|
|
|
|
|
The most difficult and controversial part of the AFC test is the second
|
|
|
|
|
step, which entails the filtration of protectable expression contained in
|
|
|
|
|
the original program from any unprotectable elements nestled therein. In
|
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
embodied in the program are to be denied copyright protection. However,
|
2004-01-15 22:25:49 +00:00
|
|
|
|
implementing this rule is not as easy as it first appears. The courts
|
|
|
|
|
readily recognize the intrinsic difficulty in distinguishing between ideas
|
|
|
|
|
and expression and that, given the varying nature of computer programs,
|
|
|
|
|
doing so will be done on an ad hoc basis. The first step of the AFC test,
|
|
|
|
|
the abstraction, exists precisely to assist in this endeavor by helping
|
|
|
|
|
the court separate out all the individual elements of the program so that
|
|
|
|
|
they can be independently analyzed for their expressive nature.
|
|
|
|
|
|
|
|
|
|
A second rule applied by the courts in performing the filtration step of
|
|
|
|
|
the AFC test is the doctrine of merger, which denies copyright protection
|
|
|
|
|
to expression necessarily incidental to the idea being expressed. The
|
|
|
|
|
reasoning behind this doctrine is that when there is only one way to
|
|
|
|
|
express an idea, the idea and the expression merge, meaning that the
|
|
|
|
|
expression cannot receive copyright protection due to the bar on copyright
|
|
|
|
|
protection extending to ideas. In applying this doctrine, a court will ask
|
|
|
|
|
whether the program's use of particular code or structure is necessary for
|
|
|
|
|
the efficient implementation of a certain function or process. If so, then
|
|
|
|
|
that particular code or structure is not protected by copyright and, as a
|
|
|
|
|
result, it is filtered away from the remaining protectable expression.
|
|
|
|
|
|
|
|
|
|
A third rule applied by the courts in performing the filtration step of
|
|
|
|
|
the AFC test is the doctrine of scenes a faire, which denies copyright
|
|
|
|
|
protection to elements of a computer program that are dictated by external
|
|
|
|
|
factors. Such external factors can include:
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\begin{itemize}
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item The mechanical
|
2004-01-15 22:25:49 +00:00
|
|
|
|
specifications of the computer on which a particular program is intended
|
2004-08-20 23:26:46 +00:00
|
|
|
|
to operate
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item Compatibility requirements of other programs with which a
|
|
|
|
|
program is designed to operate in conjunction
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item Computer manufacturers'
|
|
|
|
|
design standards
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item Demands of the industry being serviced, and
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
widely accepted programming practices within the computer industry
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\end{itemize}
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
|
|
|
|
Any code or structure of a program that was shaped predominantly in
|
|
|
|
|
response to these factors is filtered out and not protected by
|
|
|
|
|
copyright. Lastly, elements of a computer program are also to be filtered
|
|
|
|
|
out if they were taken from the public domain or fail to have sufficient
|
|
|
|
|
originality to merit copyright protection.
|
|
|
|
|
|
|
|
|
|
Portions of the source or object code of a computer program are rarely
|
|
|
|
|
filtered out as unprotectable elements. However, some distinct parts of
|
|
|
|
|
source and object code have been found unprotectable. For example,
|
|
|
|
|
constant s, the invariable integers comprising part of formulas used to
|
|
|
|
|
perform calculations in a program, are unprotectable. Further, although
|
|
|
|
|
common errors found in two programs can provide strong evidence of
|
|
|
|
|
copying, they are not afforded any copyright protection over and above the
|
|
|
|
|
protection given to the expression containing them.
|
|
|
|
|
|
|
|
|
|
\subsection{Comparison}
|
|
|
|
|
|
|
|
|
|
The third and final step of the AFC test entails a comparison of the
|
|
|
|
|
original program's remaining protectable expression to a second
|
|
|
|
|
program. The issue will be whether any of the protected expression is
|
|
|
|
|
copied in the second program and, if so, what relative importance the
|
|
|
|
|
copied portion has with respect to the original program overall. The
|
|
|
|
|
ultimate inquiry is whether there is ``substantial'' similarity between
|
|
|
|
|
the protected elements of the original program and the potentially
|
|
|
|
|
derivative work. The courts admit that this process is primarily
|
|
|
|
|
qualitative rather than quantitative and is performed on a case-by-case
|
|
|
|
|
basis. In essence, the comparison is an ad hoc determination of whether
|
|
|
|
|
the protectable elements of the original program that are contained in the
|
|
|
|
|
second work are significant or important parts of the original program. If
|
|
|
|
|
so, then the second work is a derivative work of the first. If, however,
|
|
|
|
|
the amount of protectable elements copied in the second work are so small
|
|
|
|
|
as to be de minimis, then the second work is not a derivative work of the
|
|
|
|
|
original.
|
|
|
|
|
|
|
|
|
|
\section{Analytic Dissection Test}
|
|
|
|
|
|
|
|
|
|
The Ninth Circuit has adopted the analytic dissection test to determine
|
|
|
|
|
whether one program is a derivative work of another. Apple Computer,
|
|
|
|
|
Inc. v. Microsoft Corp., 35 F.3d 1435 (9th Cir. 1994). The analytic
|
|
|
|
|
dissection test first considers whether there are substantial similarities
|
|
|
|
|
in both the ideas and expressions of the two works at issue. Once the
|
|
|
|
|
similar features are identified, analytic dissection is used to determine
|
|
|
|
|
whether any of those similar features are protected by copyright. This
|
|
|
|
|
step is the same as the filtration step in the AFC test. After identifying
|
|
|
|
|
the copyrightable similar features of the works, the court then decides
|
|
|
|
|
whether those features are entitled to ``broad'' or ``thin''
|
|
|
|
|
protection. ``Thin'' protection is given to non-copyrightable facts or
|
|
|
|
|
ideas that are combined in a way that affords copyright protection only
|
|
|
|
|
from their alignment and presentation, while ``broad'' protection is given
|
|
|
|
|
to copyrightable expression itself. Depending on the degree of protection
|
|
|
|
|
afforded, the court then sets the appropriate standard for a subjective
|
|
|
|
|
comparison of the works to determine whether, as a whole, they are
|
|
|
|
|
sufficiently similar to support a finding that one is a derivative work of
|
|
|
|
|
the other. ``Thin'' protection requires the second work be virtually
|
|
|
|
|
identical in order to be held a derivative work of an original, while
|
|
|
|
|
``broad'' protection requires only a ``substantial similarity.''
|
|
|
|
|
|
|
|
|
|
\section{No Protection for ``Methods of Operation''}
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
the Copyright Act, refers to the means by which users operate
|
2004-08-20 23:26:46 +00:00
|
|
|
|
computers. Lotus Development Corp. v. Borland Intl., Inc., 49 F.3d 807
|
2004-01-15 22:25:49 +00:00
|
|
|
|
(1st Cir. 1995). More specifically, the court held that a menu command
|
|
|
|
|
hierarchy for a computer program was uncopyrightable because it did not
|
2004-08-20 23:26:46 +00:00
|
|
|
|
merely explain and present the programs functional capabilities to the
|
2004-01-15 22:25:49 +00:00
|
|
|
|
user, but also served as a method by which the program was operated and
|
2004-08-20 23:26:46 +00:00
|
|
|
|
controlled. As a result, under the First Circuits test, literal copying
|
|
|
|
|
of a menu command hierarchy, or any other ``method of operation,'' cannot
|
2004-01-15 22:25:49 +00:00
|
|
|
|
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,
|
|
|
|
|
promulgate a definition of derivative work that is much narrower than that
|
|
|
|
|
which exists under the AFC test.
|
|
|
|
|
|
|
|
|
|
\section{No Test Yet Adopted}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Several circuits, most notably the Fourth and Seventh, have yet to
|
|
|
|
|
declare their definition of derivative work and whether or not the
|
|
|
|
|
AFC, Analytic Dissection, or some other test best fits their
|
|
|
|
|
interpretation of copyright law. Therefore, uncertainty exists with
|
|
|
|
|
respect to determining the extent to which a software program is a
|
|
|
|
|
derivative work of another in those circuits. However, one may presume
|
|
|
|
|
that they would give deference to the AFC test since it is by far the
|
|
|
|
|
majority rule amongst those circuits that have a standard for defining
|
|
|
|
|
a software derivative work.
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
|
|
|
|
\section{Cases Applying Software Derivative Work Analysis}
|
|
|
|
|
|
|
|
|
|
In the preeminent case regarding the definition of a derivative work for
|
2004-08-20 23:26:46 +00:00
|
|
|
|
software, Computer Associates v. Altai, the plaintiff alleged that its
|
2004-01-15 22:25:49 +00:00
|
|
|
|
program, Adapter, which was used to handle the differences in operating
|
|
|
|
|
system calls and services, was infringed by the defendant's competitive
|
2004-08-20 23:26:46 +00:00
|
|
|
|
program, Oscar. About 30\% of Oscar was literally the same code as
|
|
|
|
|
that in Adapter. After the suit began, the defendant rewrote those
|
2004-01-15 22:25:49 +00:00
|
|
|
|
portions of Oscar that contained Adapter code in order to produce a new
|
|
|
|
|
version of Oscar that was functionally competitive with Adapter, without
|
2004-08-20 23:26:46 +00:00
|
|
|
|
have any literal copies of its code. Feeling slighted still, the
|
2004-01-15 22:25:49 +00:00
|
|
|
|
plaintiff alleged that even the second version of Oscar, despite having no
|
2004-08-20 23:26:46 +00:00
|
|
|
|
literally copied code, also infringed its copyrights. In addressing that
|
2004-01-15 22:25:49 +00:00
|
|
|
|
question, the Second Circuit promulgated the AFC test.
|
|
|
|
|
|
|
|
|
|
In abstracting the various levels of the program, the court noted a
|
2004-08-20 23:26:46 +00:00
|
|
|
|
similarity between the two programs' parameter lists and macros. However,
|
2004-01-15 22:25:49 +00:00
|
|
|
|
following the filtration step of the AFC test, only a handful of the lists
|
|
|
|
|
and macros were protectable under copyright law because they were either
|
|
|
|
|
in the public domain or required by functional demands on the
|
|
|
|
|
program. With respect to the handful of parameter lists and macros that
|
|
|
|
|
did qualify for copyright protection, after performing the comparison step
|
|
|
|
|
of the AFC test, it was reasonable for the district court to conclude that
|
2004-08-20 23:26:46 +00:00
|
|
|
|
they did not warrant a finding of infringement given their relatively minor
|
|
|
|
|
contribution to the program as a whole. Likewise, the similarity between
|
2004-01-15 22:25:49 +00:00
|
|
|
|
the organizational charts of the two programs was not substantial enough
|
|
|
|
|
to support a finding of infringement because they were too simple and
|
|
|
|
|
obvious to contain any original expression.
|
|
|
|
|
|
|
|
|
|
Perhaps not surprisingly, there have been few cases involving a highly
|
2004-08-20 23:26:46 +00:00
|
|
|
|
detailed software derivative work analysis. Most often, cases involve
|
2004-01-15 22:25:49 +00:00
|
|
|
|
clearer basis for decision, including frequent bad faith on the part of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the defendant or overaggressiveness on the part of the plaintiff.
|
|
|
|
|
However, no cases involving Free Software licensing have ever gone to
|
|
|
|
|
court. As Free Software becomes an ever-increasingly important part of
|
|
|
|
|
the economy, it remains to be seen if battle lines will be
|
|
|
|
|
drawn over whether particular programs infringe the rights of Free
|
|
|
|
|
Software developers or whether the entire community, including industry,
|
2004-01-15 22:25:49 +00:00
|
|
|
|
adopts norms avoiding such risk.
|
|
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
|
|
|
|
|
\chapter{Modified Source and Binary Distribution}
|
2004-02-12 21:08:33 +00:00
|
|
|
|
\label{source-and-binary}
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
software. These sections, \S\S 2--3, define the central core rights and
|
2004-01-15 22:25:49 +00:00
|
|
|
|
requirements of GPL\@.
|
|
|
|
|
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\section{GPL \S 2: Share and Share Alike}
|
|
|
|
|
|
2003-05-29 19:47:01 +00:00
|
|
|
|
For many, this is where the ``magic'' happens that defends software
|
2004-08-20 23:26:46 +00:00
|
|
|
|
freedom along the distribution chain. \S 2 is the only place in the GPL
|
|
|
|
|
that governs the modification controls of copyright law. If someone
|
2004-01-14 19:04:11 +00:00
|
|
|
|
modifies a GPL'd program, she is bound in the making those changes by \S
|
2004-08-20 23:26:46 +00:00
|
|
|
|
2. The goal here is to ensure that the body of GPL'd software, as it
|
2003-05-29 19:47:01 +00:00
|
|
|
|
continues and develops, remains Free as in freedom.
|
2003-05-29 14:41:31 +00:00
|
|
|
|
|
|
|
|
|
To achieve that goal, \S 2 first sets forth that the rights of
|
2003-05-29 23:44:11 +00:00
|
|
|
|
redistribution of modified versions are the same as those for verbatim
|
2004-08-20 23:26:46 +00:00
|
|
|
|
copying, as presented in \S 1. Therefore, the details of charging,
|
2003-05-29 19:47:01 +00:00
|
|
|
|
keeping copyright notices intact, and other \S 1 provisions are in tact
|
2004-08-20 23:26:46 +00:00
|
|
|
|
here as well. However, there are three additional requirements.
|
2003-05-29 14:41:31 +00:00
|
|
|
|
|
|
|
|
|
The first (\S 2(a)) requires that modified files carry ``prominent
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
purpose --- ensuring that future developers can use a diachronic
|
|
|
|
|
approach to understand the software.
|
2003-05-28 23:01:46 +00:00
|
|
|
|
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\medskip
|
|
|
|
|
|
|
|
|
|
The second requirement (\S 2(b)) contains the four short lines that embody
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2003-05-29 14:41:31 +00:00
|
|
|
|
2(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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
derivative works that ``you distribute or publish.'' Despite years of
|
2003-05-29 14:41:31 +00:00
|
|
|
|
education efforts by FSF on this matter, many still believe that modifiers
|
2004-01-14 19:04:11 +00:00
|
|
|
|
of GPL'd software are required by the license to publish or otherwise
|
2004-08-20 23:26:46 +00:00
|
|
|
|
share their changes. On the contrary, \S 2(b) {\bf does not apply if} the
|
|
|
|
|
changes are never distributed. Indeed, the freedom to make private,
|
2003-05-29 19:47:01 +00:00
|
|
|
|
personal, unshared changes to software for personal use only should be
|
2004-08-20 23:26:46 +00:00
|
|
|
|
protected and defended.\footnote{FSF does maintain that there is an {\bf
|
2003-05-29 19:47:01 +00:00
|
|
|
|
ethical} obligation to redistribute changes that are generally useful,
|
2004-08-20 23:26:46 +00:00
|
|
|
|
and often encourages companies and individuals to do so. However, there
|
2003-05-29 19:47:01 +00:00
|
|
|
|
is a clear distinction between what one {\bf ought} to do and what one
|
2004-08-20 23:26:46 +00:00
|
|
|
|
{\bf must} do.}
|
2003-05-29 14:41:31 +00:00
|
|
|
|
|
|
|
|
|
Next, we again encounter the same matter that appears in \S 0, in the
|
|
|
|
|
following text:
|
|
|
|
|
\begin{quote}
|
2004-08-20 23:26:46 +00:00
|
|
|
|
``...that in whole or part contains or is derived from the Program or any part thereof.''
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\end{quote}
|
|
|
|
|
Again, the GPL relies here on what the copyright law says is a derivative
|
2004-08-20 23:26:46 +00:00
|
|
|
|
work. If, under copyright law, the modified version ``contains or is
|
2004-01-14 19:04:11 +00:00
|
|
|
|
derived from'' the GPL'd software, then the requirements of \S 2(b)
|
2004-08-20 23:26:46 +00:00
|
|
|
|
apply. The GPL invokes its control as a copyright license over the
|
2003-05-29 14:41:31 +00:00
|
|
|
|
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
|
|
|
|
|
distributing or publishing a work that is deemed a derivative work under
|
|
|
|
|
copyright law --- 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.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The work ``as a whole'' is what is to be licensed. This is an important
|
2003-05-29 14:41:31 +00:00
|
|
|
|
point that \S 2 spends an entire paragraph explaining; thus this phrase is
|
2004-08-20 23:26:46 +00:00
|
|
|
|
worthy of a lengthy discussion here. As a programmer modifies a software
|
2003-05-29 19:47:01 +00:00
|
|
|
|
program, she generates new copyrighted material --- fixing expressions of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2003-05-29 19:47:01 +00:00
|
|
|
|
affects the license of the new whole derivative work.
|
2003-05-29 14:41:31 +00:00
|
|
|
|
|
|
|
|
|
% {\cal I}
|
|
|
|
|
\newcommand{\gplusi}{$\mathcal{G\!\!+\!\!I}$}
|
|
|
|
|
\newcommand{\worki}{$\mathcal{I}$}
|
|
|
|
|
\newcommand{\workg}{$\mathcal{G}$}
|
|
|
|
|
|
2004-01-14 19:04:11 +00:00
|
|
|
|
\label{separate-and-independent}
|
|
|
|
|
|
2003-05-29 14:41:31 +00:00
|
|
|
|
It is certainly possible to take an existing independent work (called
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\worki{}) and combine it with a GPL'd program (called \workg{}). The
|
2003-05-29 14:41:31 +00:00
|
|
|
|
license of \worki{}, when it is distributed as a separate and independent
|
2003-05-29 19:47:01 +00:00
|
|
|
|
work, remains the prerogative of the copyright holder of \worki{}.
|
|
|
|
|
However, when \worki{} is combined with \workg{}, it produces a new work
|
2004-08-20 23:26:46 +00:00
|
|
|
|
that is the combination of the two (called \gplusi{}). The copyright of
|
|
|
|
|
this combined work, \gplusi{}, is held by the original copyright
|
2003-05-29 14:41:31 +00:00
|
|
|
|
holder of each of the two works.
|
|
|
|
|
|
|
|
|
|
In this case, \S 2 lays out the terms by which \gplusi{} may be
|
2004-08-20 23:26:46 +00:00
|
|
|
|
distributed and copied. By default, under copyright law, the copyright
|
2003-05-29 14:41:31 +00:00
|
|
|
|
holder of \worki{} would not have been permitted to distribute \gplusi{};
|
|
|
|
|
copyright law forbids it without the expressed permission of the copyright
|
2004-08-20 23:26:46 +00:00
|
|
|
|
holder of \workg{}. (Imagine, for a moment, if \workg{} were a Microsoft
|
2003-05-29 14:41:31 +00:00
|
|
|
|
product --- would they give you permission to create and distribute
|
|
|
|
|
\gplusi{} without paying them a hefty sum?) The license of \workg{}, the
|
|
|
|
|
GPL, sets forth ahead of time options for the copyright holder of \worki{}
|
2004-08-20 23:26:46 +00:00
|
|
|
|
who may want to create and distribute \gplusi{}. This pregranted
|
2003-05-29 14:41:31 +00:00
|
|
|
|
permission to create and distribute derivative works, provided the terms
|
2003-05-29 19:47:01 +00:00
|
|
|
|
of GPL are upheld, goes far above and beyond the permissions that one
|
2004-08-20 23:26:46 +00:00
|
|
|
|
would get with a typical work not covered by a copyleft license. Thus, to
|
2003-05-29 14:41:31 +00:00
|
|
|
|
say that this restriction is any way unreasonable is simply ludicrous.
|
|
|
|
|
|
|
|
|
|
\medskip
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The next phrase of note in \S 2(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
|
|
|
|
|
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
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
\S 2(b) further states that the software must ``be licensed...to all
|
|
|
|
|
third parties.'' This too has led to some confusions, and feeds the
|
2003-05-29 14:41:31 +00:00
|
|
|
|
misconception mentioned earlier --- that all modified versions must made
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2003-05-29 19:47:01 +00:00
|
|
|
|
extend to anyone who might, through the distribution chain, receive a copy
|
2004-08-20 23:26:46 +00:00
|
|
|
|
of the software. Distribution to all third parties is not mandated here,
|
2003-05-29 19:47:01 +00:00
|
|
|
|
but \S 2(b) does require redistributors to license the derivative works in
|
2004-08-20 23:26:46 +00:00
|
|
|
|
a way that extends to all third parties who may ultimately receive a
|
2003-05-29 19:47:01 +00:00
|
|
|
|
copy of the software.
|
2003-05-29 14:41:31 +00:00
|
|
|
|
|
|
|
|
|
In summary, \S 2(b) says what terms under which the third parties must
|
2004-08-20 23:26:46 +00:00
|
|
|
|
receive this no-charge license. Namely, they receive it ``under the terms
|
|
|
|
|
of this License,'' the GPL. When an entity \emph{chooses} to redistribute
|
2004-01-14 19:04:11 +00:00
|
|
|
|
a derivative work of GPL'd software, the license of that whole derivative
|
2004-08-20 23:26:46 +00:00
|
|
|
|
work must be GPL and only GPL\@. In this manner, \S 2(b) dovetails nicely
|
2003-05-29 17:09:00 +00:00
|
|
|
|
with \S 6 (as discussed in Section~\ref{GPLs6} of this tutorial).
|
2003-05-28 23:01:46 +00:00
|
|
|
|
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\medskip
|
2003-05-28 23:01:46 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The final paragraph of \S 2 is worth special mention. It is possible and
|
2003-05-29 14:41:31 +00:00
|
|
|
|
quite common to aggregate various software programs together on one
|
2004-08-20 23:26:46 +00:00
|
|
|
|
distribution medium. Computer manufacturers do this when they ship a
|
2003-05-29 14:41:31 +00:00
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
applications. The GPL very clearly permits such ``mere aggregation'' with
|
|
|
|
|
programs under any license. Despite what you hear from its critics, the
|
2003-05-29 14:41:31 +00:00
|
|
|
|
GPL is nothing like a virus, not only because the GPL is good for you and
|
2004-01-14 19:04:11 +00:00
|
|
|
|
a virus is bad for you, but also because simple contact with a GPL'd
|
2004-08-20 23:26:46 +00:00
|
|
|
|
code-base does not impact the license of other programs. Actual effort
|
2003-05-29 14:41:31 +00:00
|
|
|
|
must be expended by a programmer to cause a work to fall under the terms
|
2004-08-20 23:26:46 +00:00
|
|
|
|
of the GPL. Redistributors are always welcome to simply ship GPL'd
|
2003-05-29 14:41:31 +00:00
|
|
|
|
software alongside proprietary software or other unrelated Free Software,
|
|
|
|
|
as long as the terms of GPL are adhered to for those packages that are
|
2004-01-14 19:04:11 +00:00
|
|
|
|
truly GPL'd.
|
2003-05-28 23:01:46 +00:00
|
|
|
|
|
2003-05-29 17:09:00 +00:00
|
|
|
|
\section{GPL \S 3: Producing Binaries}
|
2004-01-14 19:04:11 +00:00
|
|
|
|
\label{GPL-Section-3}
|
2003-05-29 17:09:00 +00:00
|
|
|
|
% FIXME: need name of a novelist who writes very obscurely and obliquely.
|
|
|
|
|
|
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
obscured. Ultimately, the full text of a novel, even one written by
|
2004-01-07 21:00:06 +00:00
|
|
|
|
William Faulkner, must presented to the reader as words in some
|
2004-08-20 23:26:46 +00:00
|
|
|
|
human-readable language so that they can enjoy the work. A film, even one
|
2003-05-29 22:29:43 +00:00
|
|
|
|
directed by David Lynch, must be perceptible by human eyes and ears to
|
|
|
|
|
have any value.
|
2003-05-29 17:09:00 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Software is not so. While the source code, the human-readable
|
2003-05-29 17:09:00 +00:00
|
|
|
|
representation of software is of keen interest to programmers, users and
|
|
|
|
|
programmers alike cannot make the proper use of software in that
|
2004-08-20 23:26:46 +00:00
|
|
|
|
human-readable form. Binary code --- the ones and zeros that the computer
|
2003-05-29 19:15:47 +00:00
|
|
|
|
can understand --- must be predicable and attainable for the software to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
be fully useful. Without the binaries, be they in object or executable
|
2003-05-29 19:15:47 +00:00
|
|
|
|
form, the software serves only the didactic purposes of computer science.
|
2003-05-29 17:09:00 +00:00
|
|
|
|
|
|
|
|
|
Under copyright law, binary representations of the software are simply
|
2004-08-20 23:26:46 +00:00
|
|
|
|
derivative works of the source code. Applying a systematic process (i.e.,
|
|
|
|
|
``compilation'') to a work of source code yields binary code. The binary
|
2003-05-29 17:09:00 +00:00
|
|
|
|
code is now a new work of expression fixed in the tangible medium of
|
|
|
|
|
electronic file storage.
|
|
|
|
|
|
2004-01-14 19:04:11 +00:00
|
|
|
|
Therefore, for GPL'd software to be useful, the GPL, since it governs the
|
2003-05-29 17:09:00 +00:00
|
|
|
|
rules for creation of derivative works, must grant permission for the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
generation of binaries. Furthermore, notwithstanding the relative
|
2003-05-29 22:29:43 +00:00
|
|
|
|
popularity of source-based GNU/Linux distributions like Gentoo, users find
|
2004-08-20 23:26:46 +00:00
|
|
|
|
it extremely convenient to receive distribution of binary software. Such
|
2003-05-29 22:29:43 +00:00
|
|
|
|
distribution is the redistribution of derivative works of the software's
|
2004-08-20 23:26:46 +00:00
|
|
|
|
source code. \S 3 addresses the matter of creation and distribution of
|
2003-05-29 22:29:43 +00:00
|
|
|
|
binary versions.
|
2003-05-29 17:09:00 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Under \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
|
|
|
|
|
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
|
|
|
|
|
distributed without the source code, so that these freedoms are passed
|
|
|
|
|
through the distribution chain.
|
2003-05-29 17:09:00 +00:00
|
|
|
|
|
|
|
|
|
\S 3 permits distribution of binaries, and then offers three options for
|
2004-08-20 23:26:46 +00:00
|
|
|
|
distribution of source code along with binaries. The most common and the
|
2003-05-29 17:09:00 +00:00
|
|
|
|
least complicated is the option given under \S 3(a).
|
|
|
|
|
|
|
|
|
|
\S 3(a) offers the option to directly accompany the source code alongside
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the distribution of the binaries. This is by far the most convenient
|
2003-05-29 17:09:00 +00:00
|
|
|
|
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).
|
|
|
|
|
|
2003-05-29 22:29:43 +00:00
|
|
|
|
Under \S 3(a), the source code provided must be the ``corresponding source
|
2004-08-20 23:26:46 +00:00
|
|
|
|
code.'' Here ``corresponding'' primarily means that the source code
|
2003-05-29 22:29:43 +00:00
|
|
|
|
provided must be that code used to produce the binaries being distributed.
|
2004-08-20 23:26:46 +00:00
|
|
|
|
That source code must also be ``complete.'' A later paragraph of \S 3
|
|
|
|
|
explains in detail what is meant by ``complete.'' In essence, it is all
|
2003-05-29 22:29:43 +00:00
|
|
|
|
the material that a programmer of average skill would need to actually use
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the source code to produce the binaries she has received. Complete source
|
2003-05-29 22:29:43 +00:00
|
|
|
|
is required so that, if the licensee chooses, she should be able to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
exercise her freedoms to modify and redistribute changes. Without the
|
2003-05-29 22:29:43 +00:00
|
|
|
|
complete source, it would not be possible to make changes that were
|
|
|
|
|
actually directly derived from the version received.
|
2003-05-29 17:09:00 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Furthermore, \S 3 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
|
|
|
|
|
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, \S 3 requires that the source code include ``meta-material'' like
|
|
|
|
|
scripts, interface definitions, and other material that is used to
|
|
|
|
|
``control compilation and installation'' of the binaries. In this
|
|
|
|
|
manner, those further down the distribution chain are assured that
|
|
|
|
|
they have the unabated freedom to build their own derivative works
|
|
|
|
|
from the sources provided.
|
2003-05-29 17:09:00 +00:00
|
|
|
|
|
|
|
|
|
FSF (as authors of GPL) realizes that software distribution comes in many
|
2004-08-20 23:26:46 +00:00
|
|
|
|
forms. Embedded manufacturers, for example, have the freedom to put
|
2004-01-14 19:04:11 +00:00
|
|
|
|
GPL'd software into their PDAs with very tight memory and space
|
2004-08-20 23:26:46 +00:00
|
|
|
|
constraints. In such cases, putting the source right alongside the
|
|
|
|
|
binaries on the machine itself might not be an option. While it is
|
2003-05-29 17:09:00 +00:00
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
``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
|
|
|
|
|
changes in the technology. When GPL version 2 was first published in June
|
2003-05-29 17:09:00 +00:00
|
|
|
|
1991, distribution on magnetic tape was still common, and CD was
|
2004-08-20 23:26:46 +00:00
|
|
|
|
relatively new. Today, CD is the default, and for larger systems DVD-R is
|
|
|
|
|
gaining adoption. This language must adapt with changing technology.
|
2003-05-29 17:09:00 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Meanwhile, the binding created by the word ``customarily'' is key. Many
|
2003-05-29 17:09:00 +00:00
|
|
|
|
incorrectly believe that distributing binary on CD and source on the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Internet is acceptable. In the corporate world, it is indeed customary to
|
2003-05-29 17:09:00 +00:00
|
|
|
|
simply download CDs worth of data over a T1 or email large file
|
2004-08-20 23:26:46 +00:00
|
|
|
|
attachments. However, even today in the USA, many computer users with
|
2003-05-29 17:09:00 +00:00
|
|
|
|
CD-ROM drives are not connected to the Internet, and most people connected
|
2004-08-20 23:26:46 +00:00
|
|
|
|
to the Internet are connected via a 56K dial-up connection. Downloading
|
|
|
|
|
CDs full of data is not customary for them in the least. In some cities
|
2003-05-29 17:09:00 +00:00
|
|
|
|
in Africa, computers are becoming more common, but Internet connectivity
|
2004-08-20 23:26:46 +00:00
|
|
|
|
is still available only at a few centralized locations. Thus, the
|
|
|
|
|
``customs'' here must be normalized for a worldwide userbase. Simply
|
2003-05-29 17:09:00 +00:00
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
of \S 3. \emph{If} distribution of the binary files is made only on the
|
2003-05-29 17:09:00 +00:00
|
|
|
|
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.
|
|
|
|
|
|
2003-05-29 18:09:03 +00:00
|
|
|
|
\medskip
|
2003-05-29 17:09:00 +00:00
|
|
|
|
|
|
|
|
|
As is shown above, Under \S 3(a), embedded manufacturers can put the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2003-05-29 17:09:00 +00:00
|
|
|
|
device could prove too costly, and may practically (although not legally)
|
2004-08-20 23:26:46 +00:00
|
|
|
|
prohibit using GPL'd software. For this situation and others like it, \S
|
2003-05-29 17:09:00 +00:00
|
|
|
|
3(b) is available.
|
|
|
|
|
|
|
|
|
|
\S 3(b) allows a distributor of binaries to instead provide a written
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2003-05-29 17:09:00 +00:00
|
|
|
|
source, and thus the cost of producing the CDs is saved --- a financial
|
2004-08-20 23:26:46 +00:00
|
|
|
|
and environmental windfall. In addition, along with a \S 3(b) compliant
|
2003-05-29 17:09:00 +00:00
|
|
|
|
offer for source, a binary distributor might choose to \emph{also} give a
|
2004-08-20 23:26:46 +00:00
|
|
|
|
URL for source code. Many who would otherwise need a CD with source might
|
2003-05-29 17:09:00 +00:00
|
|
|
|
turn out to have those coveted high bandwidth connections, and are able to
|
|
|
|
|
download the source instead --- again yielding environmental and financial
|
|
|
|
|
windfalls.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
receive such a request. There is real organizational cost here:
|
|
|
|
|
support engineers must be trained how to route source requests, and
|
|
|
|
|
source CD images for every release version for the last three years
|
|
|
|
|
must be kept on hand to burn such CDs quickly. The requests might not
|
|
|
|
|
even come from actual customers; the offer for source must be valid
|
|
|
|
|
for ``any third party.''
|
2003-05-29 17:09:00 +00:00
|
|
|
|
|
|
|
|
|
That phrase is another place where some get confused --- thinking again
|
2004-08-20 23:26:46 +00:00
|
|
|
|
that full public distribution of source is required. The offer for source
|
2003-05-29 17:09:00 +00:00
|
|
|
|
must be valid for ``any third party'' because of the freedoms of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
redistribution granted by \S\S 1--2. A company may ship a binary image
|
|
|
|
|
and an offer for source to only one customer. However, under GPL, that
|
2003-05-29 17:09:00 +00:00
|
|
|
|
customer has the right to redistribute that software to the world if she
|
2004-08-20 23:26:46 +00:00
|
|
|
|
likes. When she does, that customer has an obligation to make sure that
|
2003-05-29 17:09:00 +00:00
|
|
|
|
those who receive the software from her can exercise their freedoms under
|
|
|
|
|
GPL --- including the freedom to modify, rebuild, and redistribute the
|
|
|
|
|
source code.
|
|
|
|
|
|
2003-05-29 22:29:43 +00:00
|
|
|
|
\S 3(c) is created to save her some trouble, because by itself \S 3(b)
|
2004-08-20 23:26:46 +00:00
|
|
|
|
would unfairly favor large companies. \S 3(b) allows the
|
2003-05-29 22:29:43 +00:00
|
|
|
|
separation of the binary software from the key tool that people can use
|
2004-08-20 23:26:46 +00:00
|
|
|
|
to exercise their freedom. The GPL permits this separation because it is
|
2003-05-29 22:29:43 +00:00
|
|
|
|
good for redistributors, and those users who turn out not to need the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
source. However, to ensure equal rights for all software users, anyone
|
2003-05-29 22:29:43 +00:00
|
|
|
|
along the distribution chain must have the right to get the source and
|
|
|
|
|
exercise those freedoms that require it.
|
2003-05-29 17:09:00 +00:00
|
|
|
|
|
|
|
|
|
Meanwhile, \S 3(b)'s compromise primarily benefits companies who
|
2004-08-20 23:26:46 +00:00
|
|
|
|
distribute binary software commercially. Without \S 3(c), that benefit
|
2003-05-29 17:09:00 +00:00
|
|
|
|
would be at the detriment of the companies' customers; the burden of
|
|
|
|
|
source code provision would be unfairly shifted to the companies'
|
2004-08-20 23:26:46 +00:00
|
|
|
|
customers. A customer, who had received binaries with a \S 3(b)-compliant
|
2003-05-29 17:09:00 +00:00
|
|
|
|
offer, would be required under GPL (sans \S 3(c)) to acquire the source,
|
2004-08-20 23:26:46 +00:00
|
|
|
|
merely to give a copy of the software to a friend who needed it. \S 3(c)
|
2003-05-29 17:09:00 +00:00
|
|
|
|
reshifts this burden to entity who benefits from \S 3(b).
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\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
|
|
|
|
|
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
|
2003-05-29 17:09:00 +00:00
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
This process is precisely the reason why a \S 3(b) source offer must be
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
|
|
|
|
prepared to honor all incoming source code requests. For this and the
|
2003-05-29 17:09:00 +00:00
|
|
|
|
many other additional necessary complications under \S\S 3(b--c), it is
|
|
|
|
|
only rarely a better option than complying via \S 3(a).
|
|
|
|
|
|
2004-01-15 22:25:49 +00:00
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
\chapter{The Implied Patent Grant in GPL}
|
|
|
|
|
|
|
|
|
|
We digress again briefly from our section-by-section consideration of GPL
|
2004-08-20 23:26:46 +00:00
|
|
|
|
to consider the interaction between the terms of GPL and patent law. The
|
2004-01-15 22:25:49 +00:00
|
|
|
|
GPL, despite being silent with respect to patents, actually confers on its
|
|
|
|
|
licensees more rights to a licensor's patents than those licenses that
|
2004-08-20 23:26:46 +00:00
|
|
|
|
purport to address the issue. This is the case because patent law, under
|
|
|
|
|
the doctrine of implied license, gives to each distributee of a patented
|
2004-01-15 22:25:49 +00:00
|
|
|
|
article a license from the distributor to practice any patent claims owned
|
2004-08-20 23:26:46 +00:00
|
|
|
|
or held by the distributor that cover the distributed article. The
|
2004-01-15 22:25:49 +00:00
|
|
|
|
implied license also extends to any patent claims owned or held by the
|
|
|
|
|
distributor that cover ``reasonably contemplated uses'' of the patented
|
2004-08-20 23:26:46 +00:00
|
|
|
|
article. To quote the Federal Circuit Court of Appeals, the highest court
|
2004-01-15 22:25:49 +00:00
|
|
|
|
for patent cases other than the Supreme Court:
|
|
|
|
|
|
|
|
|
|
\begin{quotation}
|
|
|
|
|
Generally, when a seller sells a product without restriction, it in
|
|
|
|
|
effect promises the purchaser that in exchange for the price paid, it will
|
|
|
|
|
not interfere with the purchaser's full enjoyment of the product
|
|
|
|
|
purchased. The buyer has an implied license under any patents of the
|
|
|
|
|
seller that dominate the product or any uses of the product to which the
|
|
|
|
|
parties might reasonably contemplate the product will be put.
|
|
|
|
|
\end{quotation}
|
|
|
|
|
Hewlett-Packard Co. v. Repeat-O-Type Stencil Mfg. Corp., Inc., 123 F.3d
|
|
|
|
|
1445 (Fed. Cir. 1997).
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Of course, Free Software is licensed, not sold, and there are indeed
|
2004-01-15 22:25:49 +00:00
|
|
|
|
restrictions placed on the licensee, but those differences are not likely
|
2004-08-20 23:26:46 +00:00
|
|
|
|
to prevent the application of the implied license doctrine to Free
|
|
|
|
|
Software, because software licensed under the GPL grants the licensee the
|
2004-01-15 22:25:49 +00:00
|
|
|
|
right to make, use, and sell the software, each of which are exclusive
|
2004-08-20 23:26:46 +00:00
|
|
|
|
rights of a patent holder. Therefore, although the GPL does not expressly
|
2004-01-15 22:25:49 +00:00
|
|
|
|
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 GPL, the distributor impliedly
|
|
|
|
|
licenses those patents to the GPL licensee with respect to the GPL
|
|
|
|
|
licensed software.
|
|
|
|
|
|
|
|
|
|
An interesting issue regarding this implied patent license of GPL'd
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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 GPL is
|
|
|
|
|
larger in scope than the express license in other Free Software
|
|
|
|
|
licenses with express patent grants, in that, the patent license
|
|
|
|
|
clause of many of those licenses are specifically limited to the
|
|
|
|
|
patent claims covered by the code as licensed by the patentee.
|
2004-01-15 22:25:49 +00:00
|
|
|
|
|
|
|
|
|
To the contrary, GPL's implied patent license grants the GPL licensee a
|
|
|
|
|
patent license to do much more than just that because the GPL licensee,
|
|
|
|
|
under the doctrine of implied patent license, is free to practice any
|
|
|
|
|
patent claims held by the licensor that cover ``reasonably contemplated
|
|
|
|
|
uses'' of the GPL'd code, which may very well include creation and
|
|
|
|
|
distribution of derivative works since the GPL's terms, under which the
|
|
|
|
|
patented code is distributed, expressly permits such activity.
|
|
|
|
|
|
|
|
|
|
Further supporting this result is the Federal Circuit's pronouncement that
|
|
|
|
|
the recipient of a patented article has, not only an implied license to
|
|
|
|
|
make, use, and sell the article, but also an implied patent license to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2004-01-15 22:25:49 +00:00
|
|
|
|
Federal Circuit extended that rule to include any future recipients of the
|
|
|
|
|
patented article, not just the direct recipient from the distributor.
|
2004-08-20 23:26:46 +00:00
|
|
|
|
This theory comports well with the idea of Free Software, whereby software
|
2004-01-15 22:25:49 +00:00
|
|
|
|
is distributed amongst many entities within the community for the purpose
|
2004-08-20 23:26:46 +00:00
|
|
|
|
of constant evolution and improvement. In this way, the law of implied
|
2004-01-15 22:25:49 +00:00
|
|
|
|
patent license used by the GPL ensures that the community mutually
|
|
|
|
|
benefits from the licensing of patents to any single community member.
|
|
|
|
|
|
|
|
|
|
Note that simply because GPL'd software has an implied patent license does
|
|
|
|
|
not mean that any patents held by a distributor of GPL'd code become
|
2004-08-20 23:26:46 +00:00
|
|
|
|
worthless. To the contrary, the patents are still valid and enforceable
|
2004-01-15 22:25:49 +00:00
|
|
|
|
against either:
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\renewcommand{\theenumi}{\alph{enumi}}
|
|
|
|
|
\renewcommand{\labelenumi}{\textup{(\theenumi)}}
|
|
|
|
|
|
|
|
|
|
\item any software other than that licensed under the GPL by the patent
|
|
|
|
|
holder, and
|
|
|
|
|
|
|
|
|
|
\item any party that does not comply with the GPL
|
|
|
|
|
with respect to the licensed software.
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
\newcommand{\compB}{$\mathcal{B}$}
|
|
|
|
|
\newcommand{\compA}{$\mathcal{A}$}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
For example, if Company \compA{} has a patent on advanced Web browsing, but
|
|
|
|
|
also licenses a Web browsing software program under the GPL, then it
|
2004-01-15 22:25:49 +00:00
|
|
|
|
cannot assert the patent against any party that takes a license to its
|
2004-08-20 23:26:46 +00:00
|
|
|
|
program under the GPL. However, if a party uses that program without
|
2004-02-12 21:08:33 +00:00
|
|
|
|
complying with the GPL, then Company \compA{} can assert, not just copyright
|
2004-01-15 22:25:49 +00:00
|
|
|
|
infringement claims against the non-GPL-compliant party, but also
|
|
|
|
|
infringement of the patent, because the implied patent license only
|
2004-08-20 23:26:46 +00:00
|
|
|
|
extends to use of the software in accordance with the GPL. Further, if
|
|
|
|
|
Company \compB{} distributes a competitive advanced Web browsing program,
|
2004-02-12 21:08:33 +00:00
|
|
|
|
Company \compA{} is free to assert its patent against any user or
|
2004-08-20 23:26:46 +00:00
|
|
|
|
distributor of that product. It is irrelevant whether Company \compB's
|
2004-02-12 21:08:33 +00:00
|
|
|
|
program is distributed under the GPL, as Company \compB{} can not grant
|
2004-01-15 22:25:49 +00:00
|
|
|
|
implied licenses to Company \compA's patent.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
This result also reassures companies that they need not fear losing their
|
2004-01-15 22:25:49 +00:00
|
|
|
|
proprietary value in patents to competitors through the GPL implied patent
|
|
|
|
|
license, as only those competitors who adopt and comply with the GPL's
|
2004-08-20 23:26:46 +00:00
|
|
|
|
terms can benefit from the implied patent license. To continue the
|
2004-02-12 21:08:33 +00:00
|
|
|
|
example above, Company \compB{} does not receive a free ride on Company
|
|
|
|
|
\compA's patent, as Company \compB{} has not licensed-in and then
|
2004-08-20 23:26:46 +00:00
|
|
|
|
redistributed Company A's advanced Web browser under the GPL. If Company
|
2004-02-12 21:08:33 +00:00
|
|
|
|
\compB{} does do that, however, Company \compA{} still has not lost
|
|
|
|
|
competitive advantage against Company \compB{}, as Company \compB{} must then,
|
2004-01-15 22:25:49 +00:00
|
|
|
|
when it re-distributes Company \compA's program, grant an implied license
|
2004-08-20 23:26:46 +00:00
|
|
|
|
to any of its patents that cover the program. Further, if Company \compB{}
|
2004-01-15 22:25:49 +00:00
|
|
|
|
relicenses an improved version of Company A's program, it must do so under
|
|
|
|
|
the GPL, meaning that any patents it holds that cover the improved version
|
2004-08-20 23:26:46 +00:00
|
|
|
|
are impliedly licensed to any licensee. As such, the only way Company
|
2004-02-12 21:08:33 +00:00
|
|
|
|
\compB{} can benefit from Company \compA's implied patent license, is if it,
|
2004-01-15 22:25:49 +00:00
|
|
|
|
itself, distributes Company \compA's software program and grants an
|
|
|
|
|
implied patent license to any of its patents that cover that program.
|
2003-05-28 23:01:46 +00:00
|
|
|
|
|
2003-05-28 18:44:16 +00:00
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\chapter{Defending Freedom on Many Fronts}
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
2004-02-12 21:08:33 +00:00
|
|
|
|
Chapters~\ref{run-and-verbatim} and ~\ref{source-and-binary} presented the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
core freedom-defending provisions of GPL\@, which are in \S\S 0--3. \S\S
|
2004-02-12 21:08:33 +00:00
|
|
|
|
4--7 of the GPL are designed to ensure that \S\S 0--3 are not infringed,
|
2004-08-20 23:26:46 +00:00
|
|
|
|
are enforceable, are kept to the confines of copyright law, and are not
|
2004-02-12 21:08:33 +00:00
|
|
|
|
trumped by other copyright agreements or components of other entirely
|
2004-08-20 23:26:46 +00:00
|
|
|
|
separate legal systems. In short, while \S\S 0--3 are the parts of the
|
2004-02-12 21:08:33 +00:00
|
|
|
|
license that defend the freedoms of users and programmers, \S\S 4--7 are
|
|
|
|
|
the parts of the license that keep the playing field clear so that \S\S
|
|
|
|
|
0--3 can do their jobs.
|
2003-05-29 18:09:03 +00:00
|
|
|
|
|
|
|
|
|
\section{GPL \S 4: Termination on Violation}
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\label{GPLs4}
|
2003-05-28 23:01:46 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\S 4 is GPL's termination clause. Upon first examination, it seems
|
|
|
|
|
strange that a license with the goal of defending users' and programmers'
|
2003-05-29 18:09:03 +00:00
|
|
|
|
freedoms for perpetuity in an irrevocable way would have such a clause.
|
|
|
|
|
However, upon further examination, the difference between irrevocability
|
|
|
|
|
and this termination clause becomes clear.
|
|
|
|
|
|
|
|
|
|
The GPL is irrevocable in the sense that once a copyright holder grants
|
|
|
|
|
rights for someone to copy, modify and redistribute the software under
|
2004-08-20 23:26:46 +00:00
|
|
|
|
terms of the GPL, they cannot later revoke that grant. Since the GPL has
|
2003-05-29 18:24:15 +00:00
|
|
|
|
no provision allowing the copyright holder to take such a prerogative, the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
license is granted as long as the copyright remains in effect.\footnote{In
|
2003-05-29 22:29:43 +00:00
|
|
|
|
the USA, due to unfortunate legislation, the length of copyright is
|
|
|
|
|
nearly perpetual, even though the Constitution forbids perpetual
|
2004-08-20 23:26:46 +00:00
|
|
|
|
copyright.} The copyright holder has the right to relicense the same
|
2003-05-29 22:29:43 +00:00
|
|
|
|
work under different licenses (see Section~\ref{Proprietary Relicensing}
|
2004-01-14 19:04:11 +00:00
|
|
|
|
of this tutorial), or to stop distributing the GPL'd version (assuming \S
|
2004-08-20 23:26:46 +00:00
|
|
|
|
3(b) was never used), but she may not revoke the rights under GPL
|
2003-05-29 22:29:43 +00:00
|
|
|
|
already granted.
|
2003-05-29 18:09:03 +00:00
|
|
|
|
|
|
|
|
|
In fact, when an entity looses their right to copy, modify and distribute
|
2004-01-14 19:04:11 +00:00
|
|
|
|
GPL'd software, it is because of their \emph{own actions}, not that of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the copyright holder. The copyright holder does not decided when \S 4
|
2003-05-29 18:09:03 +00:00
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
redistribution. By default, all other types of copying, modification, and
|
|
|
|
|
redistribution are prohibited. \S 4 says that if you undertake any of
|
2003-05-29 18:09:03 +00:00
|
|
|
|
those other types (e.g., redistributing binary-only in violation of \S 3),
|
|
|
|
|
then all rights under the license --- even those otherwise permitted for
|
|
|
|
|
those who have not violated --- terminate automatically.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\S 4 gives GPL teeth. If licensees fail to adhere to the license, then
|
|
|
|
|
they are stuck. They must completely cease and desist from all
|
2004-01-14 19:04:11 +00:00
|
|
|
|
copying, modification and distribution of that GPL'd software.
|
2003-05-29 18:09:03 +00:00
|
|
|
|
|
|
|
|
|
At that point, violating licensees must gain the forgiveness of the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
copyright holder to have their rights restored. Alternatively, they could
|
2003-05-29 18:24:15 +00:00
|
|
|
|
negotiate another agreement, separate from GPL, with the copyright
|
2004-08-20 23:26:46 +00:00
|
|
|
|
holder. Both are common practice.
|
2003-05-29 18:09:03 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
At FSF, it is part of the mission to spread software freedom. When FSF
|
2003-05-29 18:09:03 +00:00
|
|
|
|
enforces GPL, the goal is to bring the violator back into compliance as
|
|
|
|
|
quickly as possible, and redress the damage caused by the violation.
|
2003-05-29 18:24:15 +00:00
|
|
|
|
That is FSF's steadfast position in a violation negotiation --- comply
|
2003-05-29 18:09:03 +00:00
|
|
|
|
with the license and respect freedom.
|
|
|
|
|
|
|
|
|
|
However, other entities who do not share the full ethos of software
|
2004-02-12 21:08:33 +00:00
|
|
|
|
freedom as institutionalized by FSF pursue GPL violations differently.
|
|
|
|
|
MySQL AB, a company that produces the GPL'd MySQL database, upon
|
|
|
|
|
discovering GPL violations typically negotiates a proprietary software
|
2004-08-20 23:26:46 +00:00
|
|
|
|
license separately for a fee. While this practice is not one that FSF
|
2004-02-12 21:08:33 +00:00
|
|
|
|
would ever consider undertaking or even endorsing, it is a legal way for
|
|
|
|
|
copyright holders to proceed.
|
2003-05-29 18:09:03 +00:00
|
|
|
|
|
|
|
|
|
\section{GPL \S 5: Acceptance, Copyright Style}
|
2003-05-28 23:01:46 +00:00
|
|
|
|
\label{GPLs5}
|
|
|
|
|
|
2003-05-29 18:24:15 +00:00
|
|
|
|
\S 5 brings us to perhaps the most fundamental misconception and common
|
2004-08-20 23:26:46 +00:00
|
|
|
|
confusion about GPL\@. Because of the prevalence of proprietary software,
|
2003-05-29 18:24:15 +00:00
|
|
|
|
most users, programmers, and lawyers alike tend to be more familiar with
|
2004-08-20 23:26:46 +00:00
|
|
|
|
EULAs. EULAs are believed by their authors to be contracts, requiring
|
2003-05-29 18:24:15 +00:00
|
|
|
|
formal agreement between the licensee and the software distributor to be
|
2004-08-20 23:26:46 +00:00
|
|
|
|
valid. This has led to mechanisms like ``shrink-wrap'' and ``click-wrap''
|
2003-05-29 18:24:15 +00:00
|
|
|
|
as mechanisms to perform acceptance ceremonies with EULAs.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The GPL does not need contract law to ``transfer rights.'' No rights
|
|
|
|
|
are transfered between parties. By contrast, the GPL is a permission
|
|
|
|
|
slip to undertake activities that would otherwise have been prohibited
|
|
|
|
|
by copyright law. As such, it needs no acceptance ceremony; the
|
|
|
|
|
licensee is not even required to accept the license.
|
2003-05-29 18:24:15 +00:00
|
|
|
|
|
|
|
|
|
However, without the GPL, the activities of copying, modifying and
|
2004-08-20 23:26:46 +00:00
|
|
|
|
distributing the software would have otherwise been prohibited. So, the
|
2003-05-29 18:24:15 +00:00
|
|
|
|
GPL says that you only accepted the license by undertaking activities that
|
|
|
|
|
you would have otherwise been prohibited without your license under GPL\@.
|
|
|
|
|
This is a certainly subtle point, and requires a mindset quite different
|
|
|
|
|
from the contractual approach taken by EULA authors.
|
|
|
|
|
|
|
|
|
|
An interesting side benefit to \S 5 is that the bulk of users of Free
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Software are not required to accept the license. Undertaking fair and
|
2003-05-29 18:24:15 +00:00
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
copyright law. Only when you engage in those activities that might have an
|
|
|
|
|
impact on the freedom of others does license acceptance occur, and the
|
|
|
|
|
terms begin to bind you to fair and equitable sharing of the software. In
|
2003-05-29 18:24:15 +00:00
|
|
|
|
other words, the GPL only kicks in when it needs to for the sake of
|
|
|
|
|
freedom.
|
|
|
|
|
|
|
|
|
|
\section{GPL \S 6: GPL, My One and Only}
|
|
|
|
|
\label{GPLs6}
|
|
|
|
|
|
2003-05-29 19:00:18 +00:00
|
|
|
|
A point that was glossed over in Section~\ref{GPLs4}'s discussion of \S 4
|
2004-08-20 23:26:46 +00:00
|
|
|
|
was the irrevocable nature of the GPL\@. The GPL is indeed irrevocable,
|
|
|
|
|
and it is made so formally by \S 6.
|
2003-05-29 19:00:18 +00:00
|
|
|
|
|
|
|
|
|
The first sentence in \S 6 ensures that as software propagates down the
|
|
|
|
|
distribution chain, that each licensor can pass along the license to each
|
2004-08-20 23:26:46 +00:00
|
|
|
|
new licensee. Under \S 6, the act of distributing automatically grants a
|
|
|
|
|
license from the original licensor to the next recipient. This creates a
|
2003-05-29 19:00:18 +00:00
|
|
|
|
chain of grants that ensure that everyone in the distribution has rights
|
2004-08-20 23:26:46 +00:00
|
|
|
|
under the GPL\@. In a mathematical sense, this bounds the bottom ---
|
|
|
|
|
making sure that future licensees get no fewer rights than the licensee before.
|
2003-05-29 19:00:18 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The second sentence of \S 6 does the opposite; it bounds from the top. It
|
2003-05-29 19:00:18 +00:00
|
|
|
|
prohibits any licensor along the distribution chain from placing
|
2004-08-20 23:26:46 +00:00
|
|
|
|
additional restrictions on the user. In other words, no additional
|
2003-05-29 19:00:18 +00:00
|
|
|
|
requirements may trump the rights and freedoms given by GPL\@.
|
|
|
|
|
|
|
|
|
|
The final sentence of \S 6 makes it abundantly clear that no individual
|
|
|
|
|
entity in the distribution chain is responsible for the compliance of any
|
2004-08-20 23:26:46 +00:00
|
|
|
|
other. This is particularly important for noncommercial users who have
|
2003-05-29 19:00:18 +00:00
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
In short, \S 6 says that your license for the software is your one and
|
|
|
|
|
only copyright license allowing you to copy, modify and distribute the
|
|
|
|
|
software.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\section{GPL \S 7: ``Give Software Liberty or Give It Death!''}
|
2003-05-28 23:01:46 +00:00
|
|
|
|
\label{GPLs7}
|
|
|
|
|
|
2003-05-29 19:00:18 +00:00
|
|
|
|
In essence, \S 7 is a verbosely worded way of saying for non-copyright
|
2004-08-20 23:26:46 +00:00
|
|
|
|
systems what \S 6 says for copyright. If there exists any reason that a
|
2003-05-29 19:15:47 +00:00
|
|
|
|
distributor knows of that would prohibit later licensees from exercising
|
|
|
|
|
their full rights under GPL, then distribution is prohibited.
|
|
|
|
|
|
|
|
|
|
Originally, this was designed as the title of this section suggests --- as
|
2004-08-20 23:26:46 +00:00
|
|
|
|
a last ditch effort to make sure that freedom was upheld. However, in
|
|
|
|
|
modern times, it has come to give much more. Now that the body of GPL'd
|
2003-05-29 19:15:47 +00:00
|
|
|
|
software is so large, patent holders who would want to be distributors of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
GPL'd software have a tough choice. They must choose between avoiding
|
2004-01-14 19:04:11 +00:00
|
|
|
|
distribution of GPL'd software that exercises the teachings of their
|
2003-05-29 19:15:47 +00:00
|
|
|
|
patents, or grant a royalty-free, irrevocable, non-exclusive license to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
those patents. Many companies, including IBM, the largest patent holder
|
2003-05-29 19:15:47 +00:00
|
|
|
|
in the world, have chosen the latter.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Thus, \S 7 rarely gives software death by stopping its distribution.
|
2003-05-29 19:15:47 +00:00
|
|
|
|
Instead, it is inspiring patent holders to share their patents in the same
|
|
|
|
|
freedom-defending way that they share their copyrighted works.
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
2003-05-29 19:47:01 +00:00
|
|
|
|
\section{GPL \S 8: Excluding Unfreedonia}
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\label{GPLs8}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\S 8 is rarely used by copyright holders. Its intention is that if a
|
|
|
|
|
particular country, say Unfreedonia, grants particular patents or allows
|
2003-05-29 19:47:01 +00:00
|
|
|
|
copyrighted interfaces (no country to our knowledge even permits those
|
2004-01-14 19:04:11 +00:00
|
|
|
|
yet), that the GPL'd software can continue in free and unabated
|
2003-05-29 19:47:01 +00:00
|
|
|
|
distribution in the countries where such controls do not exist.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
It is a partial ``out'' from \S 7. Without \S 8, if a copyright holder
|
2003-05-29 19:47:01 +00:00
|
|
|
|
knew of a patent in a particular country licensed in a GPL-incompatible
|
2004-08-20 23:26:46 +00:00
|
|
|
|
way, then she could not distribute under GPL, because the work could
|
2003-05-29 19:47:01 +00:00
|
|
|
|
legitimately end up in the hands of citizens of Unfreedonia.
|
|
|
|
|
|
|
|
|
|
It is an inevitable but sad reality that some countries are freer than
|
2004-08-20 23:26:46 +00:00
|
|
|
|
others. \S 8 exists to permit distribution in those countries that are
|
2003-05-29 19:47:01 +00:00
|
|
|
|
free without otherwise negating parts of the license.
|
2003-05-29 19:00:18 +00:00
|
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
\chapter{Odds, Ends, and Absolutely No Warranty}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\S 0--7 constitute the freedom-defending terms of the GPL. The remainder
|
2003-05-29 20:16:16 +00:00
|
|
|
|
of the GPL handles administrivia and issues concerning warranties and
|
|
|
|
|
liability.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\section{GPL \S 9: FSF as Stewards of GPL}
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\label{GPLs9}
|
|
|
|
|
|
2003-05-29 20:16:16 +00:00
|
|
|
|
FSF reserves the exclusive right to publish future versions of the GPL\@;
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\S 9 expresses this. While the stewardship of the copyrights on the body
|
2004-01-14 19:04:11 +00:00
|
|
|
|
of GPL'd software around the world is shared among thousands of
|
2003-05-29 20:16:16 +00:00
|
|
|
|
individuals and organizations, the license itself needs a single steward.
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Forking of the code is often regrettable but basically innocuous. Forking
|
2003-05-29 20:16:16 +00:00
|
|
|
|
of licensing is disastrous.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
FSF has only released two versions of GPL --- in 1989 and 1991. GPL
|
|
|
|
|
version 3 is under current internal drafting. FSF's plan is to have a
|
|
|
|
|
long and engaging comment period. The goal of GPL is to defend freedom, and
|
|
|
|
|
a gigantic community depends on that freedom now. FSF hopes to take all
|
2003-05-29 20:16:16 +00:00
|
|
|
|
stakeholders' opinions under advisement.
|
|
|
|
|
|
|
|
|
|
\section{GPL \S 10: Relicensing Permitted}
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\label{GPLs10}
|
|
|
|
|
|
2003-05-29 20:16:16 +00:00
|
|
|
|
\S 10 reminds the licensee of what is already implied by the nature of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
copyright law. Namely, the copyright holder of a particular software
|
2003-05-29 20:16:16 +00:00
|
|
|
|
program has the prerogative to grant alternative agreements under separate
|
|
|
|
|
copyright licenses.
|
|
|
|
|
|
|
|
|
|
\section{GPL \S 11: No Warranty}
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\label{GPLs11}
|
|
|
|
|
|
2003-05-29 20:16:16 +00:00
|
|
|
|
All warranty disclaimer language tends to be shouted in all capital
|
2004-01-15 22:25:49 +00:00
|
|
|
|
letters. Apparently, there was once a case where the disclaimer language
|
2003-05-29 20:16:16 +00:00
|
|
|
|
of an agreement was negated because it was not ``conspicuous'' to one of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the parties. Therefore, to make such language ``conspicuous,'' people
|
2004-01-15 22:25:49 +00:00
|
|
|
|
started placing it in bold or capitalizing the entire text. It now seems
|
2003-05-29 20:16:16 +00:00
|
|
|
|
to be voodoo tradition of warranty disclaimer writing.
|
|
|
|
|
|
2004-01-15 22:25:49 +00:00
|
|
|
|
Some have argued the GPL is unenforceable in some jurisdictions because
|
2004-08-20 23:26:46 +00:00
|
|
|
|
its disclaimer of warranties is impermissibly broad. However, \S 11
|
2004-01-15 22:25:49 +00:00
|
|
|
|
contains a jurisdictional savings provision, which states that it is to be
|
2004-08-20 23:26:46 +00:00
|
|
|
|
interpreted only as broadly as allowed by applicable law. Such a
|
2004-01-15 22:25:49 +00:00
|
|
|
|
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.
|
|
|
|
|
|
2003-05-29 20:16:16 +00:00
|
|
|
|
Finally, one important point to remember when reading \S 11 is that \S 1
|
2004-01-15 22:25:49 +00:00
|
|
|
|
permits the sale of warranty as an additional service, which \S 11 affirms.
|
2003-05-28 23:01:46 +00:00
|
|
|
|
|
2003-05-29 21:12:01 +00:00
|
|
|
|
\section{GPL, \S 12: Limitation of Liability}
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\label{GPLs12}
|
|
|
|
|
|
2003-05-29 20:16:16 +00:00
|
|
|
|
There are many types of warranties, and in some jurisdictions some of them
|
2004-01-15 22:25:49 +00:00
|
|
|
|
cannot be disclaimed. Therefore, usually agreements will have both a
|
|
|
|
|
warranty disclaimer and a limitation of liability, as we have in \S 12. \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
|
2003-05-29 20:16:16 +00:00
|
|
|
|
warranties that cannot legally be disclaimed in a particular jurisdiction.
|
|
|
|
|
|
2004-01-15 22:25:49 +00:00
|
|
|
|
Again, some have argued the GPL is unenforceable in some jurisdictions
|
2004-08-20 23:26:46 +00:00
|
|
|
|
because its limitation of liability is impermissibly broad. However, \S
|
2004-01-15 22:25:49 +00:00
|
|
|
|
12, just like its sister, \S 11, contains a jurisdictional savings
|
|
|
|
|
provision, which states that it is to be interpreted only as broadly as
|
2004-08-20 23:26:46 +00:00
|
|
|
|
allowed by applicable law. As stated above, such a provision ensures that
|
2004-01-15 22:25:49 +00:00
|
|
|
|
both \S 12, and the entire GPL, is enforceable in any jurisdiction,
|
|
|
|
|
regardless of any particular law regarding the permissibility of limiting
|
|
|
|
|
liability.
|
2003-05-29 20:16:16 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
So end the terms and conditions of the GNU General Public License.
|
2003-05-29 20:16:16 +00:00
|
|
|
|
|
2004-01-14 19:04:11 +00:00
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
\chapter{The Lesser GPL}
|
|
|
|
|
|
|
|
|
|
As we have seen in our consideration of the GPL, its text is specifically
|
2004-08-20 23:26:46 +00:00
|
|
|
|
designed to cover all possible derivative works under copyright law. Our
|
2004-01-14 19:41:06 +00:00
|
|
|
|
goal in designing GPL was to make sure that any derivative work of GPL'd
|
2004-08-20 23:26:46 +00:00
|
|
|
|
software was itself released under GPL when distributed. Reaching as far
|
2004-01-14 19:04:11 +00:00
|
|
|
|
as copyright law will allow is the most direct way to reach that goal.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
However, while the strategic goal is to bring as much Free Software
|
|
|
|
|
into the world as possible, particular tactical considerations
|
|
|
|
|
regarding software freedom dictate different means. Extending the
|
|
|
|
|
copyleft effect as far as copyright law allows is not always the most
|
|
|
|
|
prudent course in reaching the goal. In particular situations, even
|
|
|
|
|
those of us with the goal of building a world where all published
|
|
|
|
|
software is Free Software realize that full copyleft does not best
|
|
|
|
|
serve us. The GNU Lesser General Public License (``GNU LGPL'') was
|
|
|
|
|
designed as a solution for such situations.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
\section{The First LGPL'd Program}
|
|
|
|
|
|
|
|
|
|
The first example that FSF encountered where such altered tactics were
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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.
|
2004-02-12 21:08:33 +00:00
|
|
|
|
On a Unix-like operating system, C is the lingua franca and the C library
|
2004-08-20 23:26:46 +00:00
|
|
|
|
is an essential component for all programs. It is extremely difficult to
|
2004-01-14 19:04:11 +00:00
|
|
|
|
construct a program that will run with ease on a Unix-like operating
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2004-02-12 21:08:33 +00:00
|
|
|
|
user application programs that run on any modern Unix-like system must
|
2004-08-20 23:26:46 +00:00
|
|
|
|
make use of the C library.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
By the time work began on the GNU implementation of the C libraries, there
|
2004-01-14 19:41:06 +00:00
|
|
|
|
were already many C libraries in existence from a variety of vendors.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
Every proprietary Unix vendor had one, and many third parties produced
|
2004-08-20 23:26:46 +00:00
|
|
|
|
smaller versions for special purpose use. However, our goal was to create
|
2004-01-14 19:04:11 +00:00
|
|
|
|
a C library that would provide equivalent functionality to these other C
|
2004-02-12 21:08:33 +00:00
|
|
|
|
libraries on a Free Software operating system (which in fact happens today
|
|
|
|
|
on modern GNU/Linux systems, which all use the GNU C Library).
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
Unlike existing GNU application software, however, the licensing
|
|
|
|
|
implications of releasing the GNU C Library (``glibc'') under GPL were
|
2004-08-20 23:26:46 +00:00
|
|
|
|
somewhat different. Applications released under GPL would never
|
|
|
|
|
themselves become part of proprietary software. However, if glibc were
|
2004-01-14 19:04:11 +00:00
|
|
|
|
released under GPL, it would require that any application distributed for
|
2004-02-12 21:08:33 +00:00
|
|
|
|
the GNU/Linux platform be released under GPL\@.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
Since all applications on a Unix-like system depend on the C library, it
|
2004-08-20 23:26:46 +00:00
|
|
|
|
means that they must link with that library to function on the system. In
|
2004-01-14 19:04:11 +00:00
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
composed of the original application and the C library. Thus, if glibc
|
2004-01-14 19:04:11 +00:00
|
|
|
|
were GPL'd, each and every application distributed for use on GNU/Linux
|
|
|
|
|
would also need to be GPL'd, since to even function, such applications
|
|
|
|
|
would need to be combined into larger derivative works by linking with
|
|
|
|
|
glibc.
|
|
|
|
|
|
|
|
|
|
At first glance, such an outcome seems like a windfall for Free Software
|
|
|
|
|
advocates, since it stops all proprietary software development on
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2004-02-12 21:08:33 +00:00
|
|
|
|
vendors would see the excellent opportunity to license their C libraries
|
|
|
|
|
to anyone who wished to write proprietary software for GNU/Linux systems.
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The de-facto standard for the C library on GNU/Linux would likely be not
|
2004-01-14 19:04:11 +00:00
|
|
|
|
glibc, but the most popular proprietary one.
|
|
|
|
|
|
|
|
|
|
Meanwhile, the actual goal of releasing glibc under GPL --- to ensure no
|
|
|
|
|
proprietary applications on GNU/Linux --- would be unattainable in this
|
2004-08-20 23:26:46 +00:00
|
|
|
|
scenario. Furthermore, users of those proprietary applications would also
|
2004-02-12 21:08:33 +00:00
|
|
|
|
be users of a proprietary C library, not the Free glibc.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The Lesser GPL was initially conceived to handle this scenario. It was
|
2004-02-12 21:08:33 +00:00
|
|
|
|
clear that the existence of proprietary applications for GNU/Linux was
|
2004-08-20 23:26:46 +00:00
|
|
|
|
inevitable. Since there were so many C libraries already in existence, a
|
|
|
|
|
new one under GPL would not stop that tide. However, if the new C library
|
|
|
|
|
were released under a license that permitted proprietary applications
|
|
|
|
|
to link with it, but made sure that the library itself remained Free,
|
|
|
|
|
an ancillary goal could be met. Users of proprietary applications, while
|
2004-01-14 19:04:11 +00:00
|
|
|
|
they would not have the freedom to copy, share, modify and redistribute
|
|
|
|
|
the application itself, would have the freedom to do so with respect to
|
|
|
|
|
the C library.
|
|
|
|
|
|
|
|
|
|
There was no way the license of glibc could stop or even slow the creation
|
2004-08-20 23:26:46 +00:00
|
|
|
|
of proprietary applications on GNU/Linux. However, loosening the
|
2004-02-12 21:08:33 +00:00
|
|
|
|
restrictions on the licensing of glibc ensured that nearly all proprietary
|
|
|
|
|
applications at least used a Free C library rather than a proprietary one.
|
|
|
|
|
This trade-off is central to the reasoning behind the LGPL\@.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
Of course, many people who use the LGPL today are not thinking in these
|
2004-08-20 23:26:46 +00:00
|
|
|
|
terms. In fact, they are often choosing the LGPL because they are looking
|
2004-02-12 21:08:33 +00:00
|
|
|
|
for a ``compromise'' between the GPL and the X11-style liberal licensing.
|
|
|
|
|
However, understanding FSF's reasoning behind the creation of the LGPL is
|
|
|
|
|
helpful when studying the license.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\section{What's the Same?}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Much of the text of the LGPL is identical to the GPL\@. As we begin our
|
2004-01-14 19:04:11 +00:00
|
|
|
|
discussion of the LGPL, we will first eliminate the sections that are
|
2004-08-20 23:26:46 +00:00
|
|
|
|
identical, or that have the minor modification changing the word
|
|
|
|
|
``Program'' to ``Library.''
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
First, \S 1 of LGPL, the rules for verbatim copying of source, are
|
|
|
|
|
equivalent to those in GPL's \S 1.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Second, \S 8 of LGPL is equivalent \S 4 of GPL\@. In both licenses, this
|
2004-01-14 19:04:11 +00:00
|
|
|
|
section handles termination in precisely the same manner.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\S 9 in LGPL is equivalent to \S 5 in GPL\@. Both sections assert that
|
2004-01-14 19:04:11 +00:00
|
|
|
|
the license is a copyright license, and handle the acceptance of those
|
|
|
|
|
copyright terms.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
LGPL's \S 10 is equivalent to GPL's \S 6. They both protect the
|
2004-01-14 19:04:11 +00:00
|
|
|
|
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.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
LGPL's \S 11 is GPL's \S 7. As discussed, it is used to ensure that
|
2004-01-14 19:04:11 +00:00
|
|
|
|
other claims and legal realities, such as patent licenses and court
|
2004-01-14 19:41:06 +00:00
|
|
|
|
judgments, do not trump the rights and permissions granted by these
|
2004-01-14 19:04:11 +00:00
|
|
|
|
licenses, and requires that distribution be halted if such a trump is
|
|
|
|
|
known to exist.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
LGPL's \S 12 adds the same features as GPL's \S 8. These sections are
|
2004-01-14 19:04:11 +00:00
|
|
|
|
used to allow original copyright holders to forbid distribution in
|
2004-01-14 19:41:06 +00:00
|
|
|
|
countries with draconian laws that would otherwise contradict these
|
2004-01-14 19:04:11 +00:00
|
|
|
|
licenses.
|
|
|
|
|
|
|
|
|
|
LGPL's \S 13 sets up FSF as the steward of the LGPL, just as GPL's \S 9
|
2004-08-20 23:26:46 +00:00
|
|
|
|
does for GPL. Meanwhile, LGPL's \S 14 reminds licensees that copyright
|
2004-01-14 19:04:11 +00:00
|
|
|
|
holders can grant exceptions to the terms of LGPL, just as GPL's \S 10
|
|
|
|
|
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
|
|
|
|
|
12.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
As we see, the entire latter half of the license is identical.
|
2004-01-14 19:41:06 +00:00
|
|
|
|
The parts which set up the legal boundaries and meta-rules for the license
|
2004-08-20 23:26:46 +00:00
|
|
|
|
are the same. It is our intent that the two licenses operate under the
|
2004-01-14 19:41:06 +00:00
|
|
|
|
same legal mechanisms and are enforced precisely the same way.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
We strike a difference only in the early portions of the license.
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Namely, in the LGPL we go into deeper detail of granting various permissions to
|
|
|
|
|
create derivative works, so the redistributors can make
|
|
|
|
|
some proprietary derivatives. Since we simply do not allow the
|
|
|
|
|
license to stretch as far as copyright law does regarding what
|
|
|
|
|
derivative works must be relicensed under the same terms, we must go
|
|
|
|
|
further to explain which derivative works we will allow to be
|
|
|
|
|
proprietary. Thus, we'll see that the front matter of the LGPL is a
|
|
|
|
|
bit more wordy and detailed with regards to the permissions granted to
|
|
|
|
|
those who modify or redistribute the software.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
\section{Additions to the Preamble}
|
|
|
|
|
|
|
|
|
|
Most of LGPL's Preamble is identical, but the last seven paragraphs
|
|
|
|
|
introduce the concepts and reasoning behind creation of the license,
|
2004-01-14 19:41:06 +00:00
|
|
|
|
presenting a more generalized and briefer version of the story with which
|
2004-01-14 19:04:11 +00:00
|
|
|
|
we began our consideration of LGPL\@.
|
|
|
|
|
|
|
|
|
|
In short, FSF designed LGPL for those edge cases where the freedom of the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
public can better be served by a more lax licensing system. FSF doesn't
|
2004-01-14 19:04:11 +00:00
|
|
|
|
encourage use of LGPL automatically for any software that happens to be a
|
|
|
|
|
library; rather, FSF suggests that it only be used in specific cases, such
|
|
|
|
|
as the following:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item To encourage the widest possible use of a Free Software library, so
|
2004-01-14 19:04:11 +00:00
|
|
|
|
it becomes a de-facto standard over similar, although not
|
2004-08-20 23:26:46 +00:00
|
|
|
|
interface-identical, proprietary alternatives
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item To encourage use of a Free Software library that already has
|
|
|
|
|
interface-identical proprietary competitors that are more developed
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\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
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
LGPL's preamble sets forth the limits to which the license seeks to go in
|
2004-08-20 23:26:46 +00:00
|
|
|
|
chasing these goals. LGPL is designed to ensure that users who happen to
|
|
|
|
|
acquire software linked with such libraries have full freedoms with
|
|
|
|
|
respect to that library. They should have the ability to upgrade to a newer
|
|
|
|
|
or modified Free version or to make their own modifications, even if they
|
2004-01-14 19:04:11 +00:00
|
|
|
|
cannot modify the primary software program that links to that library.
|
|
|
|
|
|
|
|
|
|
Finally, the preamble introduces two terms used throughout the license to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
clarify between the different types of derivative works: ``works that use
|
|
|
|
|
the library,'' and ``works based on the library.'' Unlike GPL, LGPL must
|
|
|
|
|
draw some lines regarding derivative works. We do this here in this
|
2004-01-14 19:04:11 +00:00
|
|
|
|
license because we specifically seek to liberalize the rights afforded to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
those who make derivative works. In GPL, we reach as far as copyright law
|
|
|
|
|
allows. In LGPL, we want to draw a line that allows some derivative works
|
2004-01-14 19:04:11 +00:00
|
|
|
|
copyright law would otherwise prohibit if the copyright holder exercised
|
|
|
|
|
his full permitted controls over the work.
|
|
|
|
|
|
|
|
|
|
\section{A Work that Uses the Library}
|
|
|
|
|
|
|
|
|
|
In the effort to allow certain proprietary derivative works and prohibit
|
|
|
|
|
others, LGPL distinguishes between two classes of derivative works:
|
2004-08-20 23:26:46 +00:00
|
|
|
|
``works based on the library,'' and ``works that use the library.'' The
|
2004-01-14 19:04:11 +00:00
|
|
|
|
distinction is drawn on the bright line of binary (or runtime) derivative
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
We noted in our discussion of GPL \S 3 (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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
software. This includes both linking that happens at compile-time (when
|
2004-01-14 19:04:11 +00:00
|
|
|
|
the binary is created) or at runtime (when the binary -- including library
|
2004-08-20 23:26:46 +00:00
|
|
|
|
and main program both -- is loaded into memory by the user). In GPL,
|
2004-01-14 19:41:06 +00:00
|
|
|
|
binary derivative works are controlled by the terms of the license (in GPL
|
2004-01-14 19:04:11 +00:00
|
|
|
|
\S 3), and distributors of such binary derivatives must release full
|
2004-08-20 23:26:46 +00:00
|
|
|
|
corresponding source\@.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
2004-01-14 19:41:06 +00:00
|
|
|
|
In the case of LGPL, these are precisely the types of derivative works
|
2004-08-20 23:26:46 +00:00
|
|
|
|
we wish to permit. This scenario, defined in LGPL as ``a work that uses
|
|
|
|
|
the library,'' works as follows:
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
\newcommand{\workl}{$\mathcal{L}$}
|
|
|
|
|
\newcommand{\lplusi}{$\mathcal{L\!\!+\!\!I}$}
|
|
|
|
|
|
2004-01-14 19:41:06 +00:00
|
|
|
|
\begin{itemize}
|
|
|
|
|
|
|
|
|
|
\item A new copyright holder creates a separate and independent work,
|
2004-01-14 19:04:11 +00:00
|
|
|
|
\worki{}, that makes interface calls (e.g., function calls) to the
|
|
|
|
|
LGPL'd work, called \workl{}, whose copyright is held by some other
|
2004-08-20 23:26:46 +00:00
|
|
|
|
party. Note that since \worki{} and \workl{} are separate and
|
2004-01-14 19:41:06 +00:00
|
|
|
|
independent works, there is no copyright obligation on this new copyright
|
2004-01-14 19:04:11 +00:00
|
|
|
|
holder with regard to the licensing of \worki{}, at least with regard to
|
|
|
|
|
the source code.
|
|
|
|
|
|
|
|
|
|
\item The new copyright holder, for her software to be useful, realizes
|
|
|
|
|
that it cannot run without combining \worki{} and \workl{}.
|
|
|
|
|
Specifically, when she creates a running binary program, that running
|
|
|
|
|
binary must be a derivative work, called \lplusi{}, that the user can
|
|
|
|
|
run.
|
|
|
|
|
|
|
|
|
|
\item Since \lplusi{} is a derivative work of both \worki{} and \workl{},
|
|
|
|
|
the license of \workl{} (the LGPL) can put restrictions on the license
|
2004-08-20 23:26:46 +00:00
|
|
|
|
of \lplusi{}. In fact, this is what LGPL does.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
We will talk about the specific restrictions LGPL 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
|
|
|
|
|
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
|
|
|
|
|
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.''
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
In addition, the only reason that LGPL has any control over the licensing
|
|
|
|
|
of a ``work that uses the library'' is for the same reason that GPL has
|
2004-08-20 23:26:46 +00:00
|
|
|
|
some say over separate and independent works. Namely, such controls exist
|
2004-01-14 19:04:11 +00:00
|
|
|
|
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{}).
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
2004-01-14 19:41:06 +00:00
|
|
|
|
\begin{enumerate}
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
\item Is the source code of the new copyrighted work, \worki{}, a
|
2004-01-14 19:41:06 +00:00
|
|
|
|
completely independent work that stands by itself, and includes no
|
2004-01-14 19:04:11 +00:00
|
|
|
|
source code from \workl{}?
|
|
|
|
|
|
|
|
|
|
\item When the source code is compiled, does it create a derivative work
|
|
|
|
|
by combining with \workl{}, either by static (compile-time) or dynamic
|
|
|
|
|
(runtime) linking, to create a new binary work, \lplusi{}?
|
2004-01-14 19:41:06 +00:00
|
|
|
|
\end{enumerate}
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2004-01-14 19:04:11 +00:00
|
|
|
|
\worki{} is neither a ``work that uses the library'' nor a ``work based on
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the library.'' If the answer to the first question is ``no,'' but the
|
|
|
|
|
answer to the second question is ``yes,'' then an investigation into
|
2004-01-14 19:04:11 +00:00
|
|
|
|
whether or not \worki{} is in fact a ``work based on the library'' is
|
|
|
|
|
warranted.
|
|
|
|
|
|
|
|
|
|
\section{A Work Based on the Library}
|
|
|
|
|
|
|
|
|
|
In short, a ``work based on the library'' could be defined as any
|
|
|
|
|
derivative work of LGPL'd software that cannot otherwise fit the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
definition of a ``work that uses the library.'' A ``work based on the
|
2004-01-14 19:04:11 +00:00
|
|
|
|
library'' extends the full width and depth of copyright derivative works,
|
|
|
|
|
in the same sense that GPL does.
|
|
|
|
|
|
|
|
|
|
Most typically, one creates a ``work based on the library'' by directly
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2004-01-14 19:04:11 +00:00
|
|
|
|
fuzzy, just as they are with GPL'd works, since copyright law gives us no
|
|
|
|
|
litmus test for derivative works of a 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 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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
have a ``work based on the library.'' If the answer is ``no'' to the
|
2004-01-14 19:04:11 +00:00
|
|
|
|
first but ``yes'' to the second, you are in a gray area between ``work
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
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
|
2004-01-14 19:04:11 +00:00
|
|
|
|
distinctions are established, the licensing for each component can be
|
2004-08-20 23:26:46 +00:00
|
|
|
|
considered independently and the LGPL applied to each work as
|
|
|
|
|
prescribed.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\section{Subtleties in Works that Use the Library}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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,
|
|
|
|
|
and it has been a source of great confusion. Part of the confusion comes
|
2004-01-14 19:04:11 +00:00
|
|
|
|
because a deep understanding of how compiler programs work is nearly
|
2004-08-20 23:26:46 +00:00
|
|
|
|
mandatory to grasp the subtle nature of what \S 5, \P 4 seeks to
|
|
|
|
|
cover. It helps some to note that this is a border case that we cover in
|
2004-01-14 19:04:11 +00:00
|
|
|
|
the license only so that when such a border case is hit, the implications
|
|
|
|
|
of using LGPL continue in the expected way.
|
|
|
|
|
|
|
|
|
|
To understand this subtle point, we must recall the way that a compiler
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
As we have discussed, the assembly of modules can happen at compile-time
|
2004-08-20 23:26:46 +00:00
|
|
|
|
or at runtime. Legally, there is no distinction between the two --- both
|
2004-01-14 19:04:11 +00:00
|
|
|
|
create a derivative work by copying and combining portions of one work and
|
2004-08-20 23:26:46 +00:00
|
|
|
|
mixing them with another. However, under LGPL, there is a case in the
|
2004-01-14 19:04:11 +00:00
|
|
|
|
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
|
2004-01-14 19:41:06 +00:00
|
|
|
|
are cases where the object code --- that intermediate step between source
|
2004-01-14 19:04:11 +00:00
|
|
|
|
and final binary --- is a derivative work created by copying verbatim code
|
|
|
|
|
from the LGPL'd software.
|
|
|
|
|
|
2004-01-14 19:41:06 +00:00
|
|
|
|
For efficiency, when a compiler turns source code into object code, it
|
2004-01-14 19:04:11 +00:00
|
|
|
|
sometimes places literal portions of the copyrighted library code into the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
object code for an otherwise separate independent work. In the normal
|
2004-01-14 19:04:11 +00:00
|
|
|
|
scenario, the derivative would not be created until final assembly and
|
2004-08-20 23:26:46 +00:00
|
|
|
|
linking of the executable occurred. However, when the compiler does this
|
2004-01-14 19:41:06 +00:00
|
|
|
|
efficiency optimization, at the intermediate object code step, a
|
2004-01-14 19:04:11 +00:00
|
|
|
|
derivative work is created.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
LGPL's \S 5, \P 4 is designed to handle this specific case. The intent of
|
2004-01-14 19:04:11 +00:00
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
based on the library.'' However, since the compiler copies verbatim,
|
2004-01-14 19:04:11 +00:00
|
|
|
|
copyrighted portions of the library into the object code for the otherwise
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2004-02-12 21:08:33 +00:00
|
|
|
|
compilation idiosyncrasy would change the requirements on the users of the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
LGPL'd software. This paragraph removes that restriction, allowing the
|
2004-01-14 19:04:11 +00:00
|
|
|
|
implications of the license to be the same regardless of the specific
|
|
|
|
|
mechanisms the compiler uses underneath to create the ``work that uses the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
library.''
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
As it turns out, we have only once had anyone worry about this specific
|
|
|
|
|
idiosyncrasy, because that particular vendor wanted to ship object code
|
2004-08-20 23:26:46 +00:00
|
|
|
|
(rather than final binaries) to their customers and was worried about
|
|
|
|
|
this edge condition. The intent of clarifying this edge condition is
|
2004-01-14 19:04:11 +00:00
|
|
|
|
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
|
|
|
|
|
of the details of the compilation progress.
|
|
|
|
|
|
|
|
|
|
\section{LGPL \S 6: Distributing Works that Use the Library}
|
2004-02-12 21:08:33 +00:00
|
|
|
|
\label{lgpl-section-6}
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Now that we have established a good working definition of works that
|
2004-01-14 19:04:11 +00:00
|
|
|
|
``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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\S 6 of LGPL\@. \S 6 is much like GPL's \S 3, as it requires the release
|
|
|
|
|
of source when a binary version of the LGPL'd software is released. Of
|
2004-01-14 19:04:11 +00:00
|
|
|
|
course, it only requires that source code for the library itself be made
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
2004-01-14 19:41:06 +00:00
|
|
|
|
that a user who wishes to modify or update the library can do so.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
LGPL \S 6 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
|
|
|
|
|
uses the library.''
|
2004-01-14 19:41:06 +00:00
|
|
|
|
|
|
|
|
|
\S 6(b) allows the distributor of a ``work that uses the library'' to
|
|
|
|
|
simply use a dynamically linked, shared library mechanism to link with the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
library. This is by far the easiest and most straightforward option for
|
|
|
|
|
distribution. In this case, the executable of the work that uses the
|
2004-01-14 19:41:06 +00:00
|
|
|
|
library will contain only the ``stub code'' that is put in place by the
|
|
|
|
|
shared library mechanism, and at runtime the executable will combine with
|
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
to use the ``work that uses the library.'' However, all modern shared
|
2004-01-14 19:41:06 +00:00
|
|
|
|
library mechanisms function as such, and thus \S 6(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.
|
|
|
|
|
|
|
|
|
|
\S 6(a) is the option to use when, for some reason, a shared library
|
2004-08-20 23:26:46 +00:00
|
|
|
|
mechanism cannot be used. It requires that the source for the library be
|
2004-01-14 19:41:06 +00:00
|
|
|
|
included, in the typical GPL fashion, but it also has a requirement beyond
|
2004-08-20 23:26:46 +00:00
|
|
|
|
that. The user must be able to exercise her freedom to modify the library
|
2004-01-14 19:41:06 +00:00
|
|
|
|
to its fullest extent, and that means recombining it with the ``work based
|
2004-08-20 23:26:46 +00:00
|
|
|
|
on the library.'' If the full binary is linked without a shared library
|
|
|
|
|
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
|
2004-01-14 19:41:06 +00:00
|
|
|
|
build a new binary.
|
|
|
|
|
|
|
|
|
|
The remaining options in \S 6 are very similar to the other choices
|
2004-08-20 23:26:46 +00:00
|
|
|
|
provided by GPL \S 3. There are some additional options, but time does
|
|
|
|
|
not permit us in this course to go into those additional options. In
|
2004-02-12 21:08:33 +00:00
|
|
|
|
almost all cases of distribution under LGPL, either \S 6(a) or \S 6(b) are
|
|
|
|
|
exercised.
|
2004-01-14 19:41:06 +00:00
|
|
|
|
|
|
|
|
|
\section{Distribution of Works Based on the Library}
|
|
|
|
|
|
2004-02-12 21:08:33 +00:00
|
|
|
|
Essentially, ``works based on the library'' must be distributed under the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
same conditions as works under full GPL\@. In fact, we note that LGPL's
|
2004-02-12 21:08:33 +00:00
|
|
|
|
\S 2 is nearly identical in its terms and requirements to GPL's \S 2.
|
|
|
|
|
There are again subtle differences and additions, which time does not
|
|
|
|
|
permit us to cover in this course.
|
2004-01-14 19:41:06 +00:00
|
|
|
|
|
|
|
|
|
\section{And the Rest}
|
|
|
|
|
|
|
|
|
|
The remaining variations between LGPL and GPL cover the following
|
|
|
|
|
conditions:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item Allowing a licensing ``upgrade'' from LGPL to GPL\@ (in LGPL \S 3)
|
2004-01-14 19:41:06 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item Binary distribution of the library only, covered in LGPL \S 4,
|
|
|
|
|
which is effectively equivalent to LGPL \S 3
|
|
|
|
|
|
|
|
|
|
\item Creating aggregates of libraries that are not derivative works of
|
|
|
|
|
each other, and distributing them as a unit (in LGPL \S 7)
|
2004-01-14 19:41:06 +00:00
|
|
|
|
|
|
|
|
|
\end{itemize}
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
|
|
|
|
|
2004-01-14 19:41:06 +00:00
|
|
|
|
Due to time constraints, we cannot cover these additional terms in detail,
|
2004-08-20 23:26:46 +00:00
|
|
|
|
but they are mostly straightforward. The key to understanding LGPL is
|
2004-01-14 19:41:06 +00:00
|
|
|
|
understanding the difference between a ``work based on the library'' and a
|
2004-08-20 23:26:46 +00:00
|
|
|
|
``work that uses the library.'' Once that distinction is clear, the
|
2004-01-14 19:41:06 +00:00
|
|
|
|
remainder of LGPL is close enough to GPL that the concepts discussed in
|
|
|
|
|
our more extensive GPL unit can be directly applied.
|
2004-01-14 19:04:11 +00:00
|
|
|
|
|
2003-05-28 18:44:16 +00:00
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\chapter{Integrating the GPL into Business Practices}
|
|
|
|
|
|
2004-01-14 19:04:11 +00:00
|
|
|
|
Since GPL'd software is now extremely prevalent through the industry, it
|
2004-08-20 23:26:46 +00:00
|
|
|
|
is useful to have some basic knowledge about using GPL'd software in
|
2004-01-14 19:04:11 +00:00
|
|
|
|
business and how to build business models around GPL'd software.
|
2003-05-29 21:12:01 +00:00
|
|
|
|
|
2004-01-14 19:04:11 +00:00
|
|
|
|
\section{Using GPL'd Software In-House}
|
2003-05-29 21:12:01 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
As discussed in Sections~\ref{GPLs0} and~\ref{GPLs5} of this tutorial,
|
|
|
|
|
the GPL only governs the activities of copying, modifying and
|
|
|
|
|
distributing software programs that are not governed by the license.
|
|
|
|
|
Thus, in FSF's view, simply installing the software on a machine and
|
|
|
|
|
using it is not controlled or limited in any way by GPL\@. Using Free
|
|
|
|
|
Software in general requires substantially fewer agreements and less
|
|
|
|
|
license compliance activity than any known proprietary software.
|
2003-05-29 21:12:01 +00:00
|
|
|
|
|
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
encouraged! If the company simply deploys unmodified (or even modified)
|
2003-05-29 21:12:01 +00:00
|
|
|
|
Free Software throughout the organization for its employees to use, the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
obligations under the license are very minimal. Using Free Software has a
|
2003-05-29 21:12:01 +00:00
|
|
|
|
substantially lower cost of ownership --- both in licensing fees and in
|
|
|
|
|
licensing checking and handling -- than the proprietary software
|
|
|
|
|
equivalents.
|
2003-05-29 14:41:31 +00:00
|
|
|
|
|
|
|
|
|
\section{Business Models}
|
|
|
|
|
\label{Business Models}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Using Free Software in house is certainly helpful, but a thriving
|
|
|
|
|
market for Free Software-oriented business models also exists. There is the
|
|
|
|
|
traditional model of selling copies of Free Software distributions.
|
|
|
|
|
Many companies, including IBM and Red Hat, make substantial revenue
|
|
|
|
|
from this model. IBM primarily chooses this model because they have
|
|
|
|
|
found that for higher-end hardware, the cost of the profit made from
|
|
|
|
|
proprietary software licensing fees is negligible. The real profit is
|
|
|
|
|
in the hardware, but it is essential that software be stable, reliable
|
|
|
|
|
and dependable, and the users be allowed to have unfettered access to
|
|
|
|
|
it. Free Software, and GPL'd software in particular (because IBM can
|
|
|
|
|
be assured that proprietary versions of the same software will not
|
|
|
|
|
exists to compete on their hardware) is the right choice.
|
2003-05-29 21:12:01 +00:00
|
|
|
|
|
|
|
|
|
Red Hat has actually found that a ``convenience fee'' for Free Software,
|
|
|
|
|
when set at a reasonable price (around \$60 or so), can produce some
|
2004-08-20 23:26:46 +00:00
|
|
|
|
profit. Even though Red Hat's system is fully downloadable on their
|
|
|
|
|
Web site, people still go to local computer stores and buy copies of their
|
2003-05-29 21:12:01 +00:00
|
|
|
|
box set, which is simply a printed version of the manual (available under
|
2004-08-20 23:26:46 +00:00
|
|
|
|
a Free license as well) and the Free Software system it documents.
|
2003-05-29 18:09:03 +00:00
|
|
|
|
|
2003-05-29 21:12:01 +00:00
|
|
|
|
\medskip
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
However, custom support, service, and software improvement contracts
|
|
|
|
|
are the most widely used models for GPL'd software. The GPL is
|
|
|
|
|
central to their success, because it ensures that the code base
|
|
|
|
|
remains common, and that large and small companies are on equal
|
|
|
|
|
footing for access to the technology. Consider, for example, the GNU
|
|
|
|
|
Compiler Collection (GCC). Cygnus Solutions, a company started in the
|
|
|
|
|
early 1990s, was able to grow steadily simply by providing services
|
|
|
|
|
for GCC --- mostly consisting of new ports of GCC to different or new,
|
|
|
|
|
embedded targets. Eventually, Cygnus was so successful that
|
|
|
|
|
it was purchased by Red Hat where it remains a profitable division.
|
2003-05-29 21:12:01 +00:00
|
|
|
|
|
|
|
|
|
However, there are very small companies like CodeSourcery, as well as
|
2004-08-20 23:26:46 +00:00
|
|
|
|
other medium-sized companies like MontaVista and OpenTV that compete in
|
|
|
|
|
this space. Because the code-base is protect by GPL, it creates and
|
|
|
|
|
demands industry trust. Companies can cooperate on the software and
|
|
|
|
|
improve it for everyone. Meanwhile, companies who rely on GCC for their
|
2003-05-29 21:12:01 +00:00
|
|
|
|
work are happy to pay for improvements, and for ports to new target
|
2004-08-20 23:26:46 +00:00
|
|
|
|
platforms. Nearly all the changes fold back into the standard
|
2003-05-29 21:12:01 +00:00
|
|
|
|
versions, and those forks that exist remain freely available.
|
|
|
|
|
|
|
|
|
|
\medskip
|
2003-05-29 18:09:03 +00:00
|
|
|
|
|
|
|
|
|
\label{Proprietary Relicensing}
|
|
|
|
|
|
2003-05-29 21:12:01 +00:00
|
|
|
|
A final common business model that is perhaps the most controversial is
|
2004-08-20 23:26:46 +00:00
|
|
|
|
proprietary relicensing of a GPL'd code base. This is only an option for
|
|
|
|
|
software in which a particular entity is the sole copyright holder. As
|
2003-05-29 21:12:01 +00:00
|
|
|
|
discussed earlier in this tutorial, a copyright holder is permitted under
|
|
|
|
|
copyright law to license a software system under her copyright as many
|
|
|
|
|
different ways as she likes to as many different parties as she wishes.
|
|
|
|
|
|
|
|
|
|
Some companies, such as MySQL AB and TrollTech, use this to their
|
2004-08-20 23:26:46 +00:00
|
|
|
|
financial advantage with regard to a GPL'd code base. The standard
|
2003-05-29 21:12:01 +00:00
|
|
|
|
version is available from the company under the terms of the GPL\@.
|
|
|
|
|
However, parties can purchase separate proprietary software licensing for
|
|
|
|
|
a fee.
|
|
|
|
|
|
2004-01-14 19:04:11 +00:00
|
|
|
|
This business model is problematic because it means that the GPL'd code
|
2003-05-29 21:12:01 +00:00
|
|
|
|
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
|
2004-08-20 23:26:46 +00:00
|
|
|
|
software as Free Software. Indeed, the company will surely use such code
|
2003-05-29 21:12:01 +00:00
|
|
|
|
contributions in proprietary versions licensed for fees.
|
2003-05-29 18:09:03 +00:00
|
|
|
|
|
2003-05-29 14:41:31 +00:00
|
|
|
|
\section{Ongoing Compliance}
|
2003-05-26 19:06:48 +00:00
|
|
|
|
|
2003-05-29 21:12:01 +00:00
|
|
|
|
GPL compliance is in fact a very simple matter -- much simpler than
|
2004-08-20 23:26:46 +00:00
|
|
|
|
typical proprietary software agreements and EULAs. Usually, the most
|
2003-05-29 21:12:01 +00:00
|
|
|
|
difficult hurdle is changing from a proprietary software mindset to one
|
2004-08-20 23:26:46 +00:00
|
|
|
|
that seeks to foster a community of sharing and mutual support. Certainly
|
2003-05-29 21:12:01 +00:00
|
|
|
|
complying with the GPL from a users' perspective gives substantially fewer
|
|
|
|
|
headaches than proprietary license compliance.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
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
|
|
|
|
|
improve existing GPL'd application than to start from scratch. In
|
|
|
|
|
exchange for that benefit, the license requires that the modifier give
|
|
|
|
|
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.
|
2003-05-29 21:12:01 +00:00
|
|
|
|
|
|
|
|
|
Note that FSF does provide services to assist companies who need
|
2004-08-20 23:26:46 +00:00
|
|
|
|
assistance in complying with the GPL. You can contact FSF's GPL
|
2003-05-29 22:29:43 +00:00
|
|
|
|
Compliance Labs at $<$compliance@fsf.org$>$.
|
2003-05-29 21:12:01 +00:00
|
|
|
|
|
2004-01-14 19:04:11 +00:00
|
|
|
|
If you are particularly interested in matters of GPL compliance, we
|
|
|
|
|
recommend the second course in this series, {\em GPL Compliance Case
|
|
|
|
|
Studies and Legal Ethics in Free Software Licensing\/}, in which we
|
|
|
|
|
discuss some real GPL violation cases that FSF has worked to resolve.
|
|
|
|
|
Consideration of such cases can help give insight on how to handle GPL
|
|
|
|
|
compliance in new situations.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\backmatter
|
|
|
|
|
|
2003-05-23 21:31:04 +00:00
|
|
|
|
\appendix
|
|
|
|
|
|
|
|
|
|
\chapter{The GNU General Public License}
|
|
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
|
{\parindent 0in
|
|
|
|
|
|
|
|
|
|
Version 2, June 1991
|
|
|
|
|
|
|
|
|
|
Copyright \copyright\ 1989, 1991 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
|
|
\bigskip
|
|
|
|
|
|
|
|
|
|
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
|
|
|
|
|
|
|
|
\bigskip
|
|
|
|
|
|
|
|
|
|
Everyone is permitted to copy and distribute verbatim copies
|
|
|
|
|
of this license document, but changing it is not allowed.
|
|
|
|
|
}
|
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
|
{\bf\large Preamble}
|
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The licenses for most software are designed to take away your freedom
|
|
|
|
|
to share and change it. By contrast, the GNU General Public License is
|
|
|
|
|
intended to guarantee your freedom to share and change Free
|
|
|
|
|
Software---to make sure the software is free for all its users. This
|
|
|
|
|
General Public License applies to most of the Free Software
|
|
|
|
|
Foundation's software and to any other program whose authors commit to
|
|
|
|
|
using it. (Some other Free Software Foundation software is covered by
|
|
|
|
|
the GNU Library General Public License instead.) You can apply it to
|
|
|
|
|
your programs, too.
|
|
|
|
|
|
|
|
|
|
When we speak of Free Software, we are referring to freedom, not price.
|
2003-05-23 21:31:04 +00:00
|
|
|
|
Our General Public Licenses are designed to make sure that you have the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
freedom to distribute copies of Free Software (and charge for this service
|
2003-05-23 21:31:04 +00:00
|
|
|
|
if you wish), that you receive source code or can get it if you want it,
|
2004-08-20 23:26:46 +00:00
|
|
|
|
that you can change the software or use pieces of it in new Free programs;
|
2003-05-23 21:31:04 +00:00
|
|
|
|
and that you know you can do these things.
|
|
|
|
|
|
|
|
|
|
To protect your rights, we need to make restrictions that forbid anyone to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
deny you these rights or to ask you to surrender the rights. These
|
2003-05-23 21:31:04 +00:00
|
|
|
|
restrictions translate to certain responsibilities for you if you
|
|
|
|
|
distribute copies of the software, or if you modify it.
|
|
|
|
|
|
|
|
|
|
For example, if you distribute copies of such a program, whether gratis or
|
2004-08-20 23:26:46 +00:00
|
|
|
|
for a fee, you must give the recipients all the rights that you have. You
|
|
|
|
|
must make sure that they, too, receive or can get the source code. And
|
2003-05-23 21:31:04 +00:00
|
|
|
|
you must show them these terms so they know their rights.
|
|
|
|
|
|
|
|
|
|
We protect your rights with two steps: (1) copyright the software, and (2)
|
|
|
|
|
offer you this license which gives you legal permission to copy,
|
|
|
|
|
distribute and/or modify the software.
|
|
|
|
|
|
|
|
|
|
Also, for each author's protection and ours, we want to make certain that
|
2004-08-20 23:26:46 +00:00
|
|
|
|
everyone understands that there is no warranty for this Free Software. If
|
2003-05-23 21:31:04 +00:00
|
|
|
|
the software is modified by someone else and passed on, we want its
|
|
|
|
|
recipients to know that what they have is not the original, so that any
|
|
|
|
|
problems introduced by others will not reflect on the original authors'
|
|
|
|
|
reputations.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Finally, any Free program is threatened constantly by software patents.
|
|
|
|
|
We wish to avoid the danger that redistributors of a Free program will
|
2003-05-23 21:31:04 +00:00
|
|
|
|
individually obtain patent licenses, in effect making the program
|
2004-08-20 23:26:46 +00:00
|
|
|
|
proprietary. To prevent this, we have made it clear that any patent must
|
2003-05-23 21:31:04 +00:00
|
|
|
|
be licensed for everyone's free use or not licensed at all.
|
|
|
|
|
|
|
|
|
|
The precise terms and conditions for copying, distribution and
|
|
|
|
|
modification follow.
|
|
|
|
|
|
|
|
|
|
\begin{center}
|
2003-05-26 19:06:48 +00:00
|
|
|
|
{\Large \sc Terms and Conditions For Copying, Distribution and
|
2003-05-23 21:31:04 +00:00
|
|
|
|
Modification}
|
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
|
|
|
|
|
\addtocounter{enumi}{-1}
|
2003-05-28 23:01:46 +00:00
|
|
|
|
\item
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
This License applies to any program or other work which contains a notice
|
|
|
|
|
placed by the copyright holder saying it may be distributed under the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
terms of this General Public License. The ``Program,'' below, refers to
|
2003-05-23 21:31:04 +00:00
|
|
|
|
any such program or work, and a ``work based on the Program'' means either
|
|
|
|
|
the Program or any derivative work under copyright law: that is to say, a
|
|
|
|
|
work containing the Program or a portion of it, either verbatim or with
|
2004-08-20 23:26:46 +00:00
|
|
|
|
modifications and/or translated into another language. (Hereinafter,
|
|
|
|
|
translation is included without limitation in the term ``modification.'')
|
|
|
|
|
Each licensee is addressed as ``you.''
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
Activities other than copying, distribution and modification are not
|
2004-08-20 23:26:46 +00:00
|
|
|
|
covered by this License; they are outside its scope. The act of
|
2003-05-23 21:31:04 +00:00
|
|
|
|
running the Program is not restricted, and the output from the Program
|
|
|
|
|
is covered only if its contents constitute a work based on the
|
|
|
|
|
Program (independent of having been made by running the Program).
|
|
|
|
|
Whether that is true depends on what the Program does.
|
|
|
|
|
|
|
|
|
|
\item You may copy and distribute verbatim copies of the Program's source
|
|
|
|
|
code as you receive it, in any medium, provided that you conspicuously
|
|
|
|
|
and appropriately publish on each copy an appropriate copyright notice
|
|
|
|
|
and disclaimer of warranty; keep intact all the notices that refer to
|
|
|
|
|
this License and to the absence of any warranty; and give any other
|
|
|
|
|
recipients of the Program a copy of this License along with the Program.
|
|
|
|
|
|
|
|
|
|
You may charge a fee for the physical act of transferring a copy, and you
|
|
|
|
|
may at your option offer warranty protection in exchange for a fee.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
You may modify your copy or copies of the Program or any portion
|
|
|
|
|
of it, thus forming a work based on the Program, and copy and
|
|
|
|
|
distribute such modifications or work under the terms of Section 1
|
|
|
|
|
above, provided that you also meet all of these conditions:
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
|
2003-05-28 23:01:46 +00:00
|
|
|
|
\item
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
You must cause the modified files to carry prominent notices stating that
|
|
|
|
|
you changed the files and the date of any change.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
You must cause any work that you distribute or publish, that in
|
|
|
|
|
whole or in part contains or is derived from the Program or any
|
|
|
|
|
part thereof, to be licensed as a whole at no charge to all third
|
|
|
|
|
parties under the terms of this License.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
If the modified program normally reads commands interactively
|
|
|
|
|
when run, you must cause it, when started running for such
|
|
|
|
|
interactive use in the most ordinary way, to print or display an
|
|
|
|
|
announcement including an appropriate copyright notice and a
|
|
|
|
|
notice that there is no warranty (or else, saying that you provide
|
|
|
|
|
a warranty) and that users may redistribute the program under
|
|
|
|
|
these conditions, and telling the user how to view a copy of this
|
2004-08-20 23:26:46 +00:00
|
|
|
|
License. (Exception: if the Program itself is interactive but
|
2003-05-23 21:31:04 +00:00
|
|
|
|
does not normally print such an announcement, your work based on
|
|
|
|
|
the Program is not required to print an announcement.)
|
|
|
|
|
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
These requirements apply to the modified work as a whole. If
|
2003-05-23 21:31:04 +00:00
|
|
|
|
identifiable sections of that work are not derived from the Program,
|
|
|
|
|
and can be reasonably considered independent and separate works in
|
|
|
|
|
themselves, then this License, and its terms, do not apply to those
|
2004-08-20 23:26:46 +00:00
|
|
|
|
sections when you distribute them as separate works. But when you
|
2003-05-23 21:31:04 +00:00
|
|
|
|
distribute the same sections as part of a whole which is a work based
|
|
|
|
|
on the Program, the distribution of the whole must be on the terms of
|
|
|
|
|
this License, whose permissions for other licensees extend to the
|
|
|
|
|
entire whole, and thus to each and every part regardless of who wrote it.
|
|
|
|
|
|
|
|
|
|
Thus, it is not the intent of this section to claim rights or contest
|
|
|
|
|
your rights to work written entirely by you; rather, the intent is to
|
|
|
|
|
exercise the right to control the distribution of derivative or
|
|
|
|
|
collective works based on the Program.
|
|
|
|
|
|
|
|
|
|
In addition, mere aggregation of another work not based on the Program
|
|
|
|
|
with the Program (or with a work based on the Program) on a volume of
|
|
|
|
|
a storage or distribution medium does not bring the other work under
|
|
|
|
|
the scope of this License.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
You may copy and distribute the Program (or a work based on it,
|
|
|
|
|
under Section 2) in object code or executable form under the terms of
|
|
|
|
|
Sections 1 and 2 above provided that you also do one of the following:
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
Accompany it with the complete corresponding machine-readable
|
|
|
|
|
source code, which must be distributed under the terms of Sections
|
|
|
|
|
1 and 2 above on a medium customarily used for software interchange; or,
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
Accompany it with a written offer, valid for at least three
|
|
|
|
|
years, to give any third party, for a charge no more than your
|
|
|
|
|
cost of physically performing source distribution, a complete
|
|
|
|
|
machine-readable copy of the corresponding source code, to be
|
|
|
|
|
distributed under the terms of Sections 1 and 2 above on a medium
|
|
|
|
|
customarily used for software interchange; or,
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
Accompany it with the information you received as to the offer
|
2004-08-20 23:26:46 +00:00
|
|
|
|
to distribute corresponding source code. (This alternative is
|
2003-05-23 21:31:04 +00:00
|
|
|
|
allowed only for noncommercial distribution and only if you
|
|
|
|
|
received the program in object code or executable form with such
|
|
|
|
|
an offer, in accord with Subsection b above.)
|
|
|
|
|
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The source code for a work means the preferred form of the work for
|
2004-08-20 23:26:46 +00:00
|
|
|
|
making modifications to it. For an executable work, complete source
|
2003-05-23 21:31:04 +00:00
|
|
|
|
code means all the source code for all modules it contains, plus any
|
|
|
|
|
associated interface definition files, plus the scripts used to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
control compilation and installation of the executable. However, as a
|
2003-05-23 21:31:04 +00:00
|
|
|
|
special exception, the source code distributed need not include
|
|
|
|
|
anything that is normally distributed (in either source or binary
|
|
|
|
|
form) with the major components (compiler, kernel, and so on) of the
|
|
|
|
|
operating system on which the executable runs, unless that component
|
|
|
|
|
itself accompanies the executable.
|
|
|
|
|
|
|
|
|
|
If distribution of executable or object code is made by offering
|
|
|
|
|
access to copy from a designated place, then offering equivalent
|
|
|
|
|
access to copy the source code from the same place counts as
|
|
|
|
|
distribution of the source code, even though third parties are not
|
|
|
|
|
compelled to copy the source along with the object code.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
You may not copy, modify, sublicense, or distribute the Program
|
2004-08-20 23:26:46 +00:00
|
|
|
|
except as expressly provided under this License. Any attempt
|
2003-05-23 21:31:04 +00:00
|
|
|
|
otherwise to copy, modify, sublicense or distribute the Program is
|
|
|
|
|
void, and will automatically terminate your rights under this License.
|
|
|
|
|
However, parties who have received copies, or rights, from you under
|
|
|
|
|
this License will not have their licenses terminated so long as such
|
|
|
|
|
parties remain in full compliance.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
You are not required to accept this License, since you have not
|
2004-08-20 23:26:46 +00:00
|
|
|
|
signed it. However, nothing else grants you permission to modify or
|
|
|
|
|
distribute the Program or its derivative works. These actions are
|
|
|
|
|
prohibited by law if you do not accept this License. Therefore, by
|
2003-05-23 21:31:04 +00:00
|
|
|
|
modifying or distributing the Program (or any work based on the
|
|
|
|
|
Program), you indicate your acceptance of this License to do so, and
|
|
|
|
|
all its terms and conditions for copying, distributing or modifying
|
|
|
|
|
the Program or works based on it.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
Each time you redistribute the Program (or any work based on the
|
|
|
|
|
Program), the recipient automatically receives a license from the
|
|
|
|
|
original licensor to copy, distribute or modify the Program subject to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
these terms and conditions. You may not impose any further
|
2003-05-23 21:31:04 +00:00
|
|
|
|
restrictions on the recipients' exercise of the rights granted herein.
|
|
|
|
|
You are not responsible for enforcing compliance by third parties to
|
|
|
|
|
this License.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
If, as a consequence of a court judgment or allegation of patent
|
|
|
|
|
infringement or for any other reason (not limited to patent issues),
|
|
|
|
|
conditions are imposed on you (whether by court order, agreement or
|
|
|
|
|
otherwise) that contradict the conditions of this License, they do not
|
2004-08-20 23:26:46 +00:00
|
|
|
|
excuse you from the conditions of this License. If you cannot
|
2003-05-23 21:31:04 +00:00
|
|
|
|
distribute so as to satisfy simultaneously your obligations under this
|
|
|
|
|
License and any other pertinent obligations, then as a consequence you
|
2004-08-20 23:26:46 +00:00
|
|
|
|
may not distribute the Program at all. For example, if a patent
|
2003-05-23 21:31:04 +00:00
|
|
|
|
license would not permit royalty-free redistribution of the Program by
|
|
|
|
|
all those who receive copies directly or indirectly through you, then
|
|
|
|
|
the only way you could satisfy both it and this License would be to
|
|
|
|
|
refrain entirely from distribution of the Program.
|
|
|
|
|
|
|
|
|
|
If any portion of this section is held invalid or unenforceable under
|
|
|
|
|
any particular circumstance, the balance of the section is intended to
|
|
|
|
|
apply and the section as a whole is intended to apply in other
|
|
|
|
|
circumstances.
|
|
|
|
|
|
|
|
|
|
It is not the purpose of this section to induce you to infringe any
|
|
|
|
|
patents or other property right claims or to contest validity of any
|
|
|
|
|
such claims; this section has the sole purpose of protecting the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
integrity of the Free Software distribution system, which is
|
|
|
|
|
implemented by public license practices. Many people have made
|
2003-05-23 21:31:04 +00:00
|
|
|
|
generous contributions to the wide range of software distributed
|
|
|
|
|
through that system in reliance on consistent application of that
|
|
|
|
|
system; it is up to the author/donor to decide if he or she is willing
|
|
|
|
|
to distribute software through any other system and a licensee cannot
|
|
|
|
|
impose that choice.
|
|
|
|
|
|
|
|
|
|
This section is intended to make thoroughly clear what is believed to
|
|
|
|
|
be a consequence of the rest of this License.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
If the distribution and/or use of the Program is restricted in
|
|
|
|
|
certain countries either by patents or by copyrighted interfaces, the
|
|
|
|
|
original copyright holder who places the Program under this License
|
|
|
|
|
may add an explicit geographical distribution limitation excluding
|
|
|
|
|
those countries, so that distribution is permitted only in or among
|
2004-08-20 23:26:46 +00:00
|
|
|
|
countries not thus excluded. In such case, this License incorporates
|
2003-05-23 21:31:04 +00:00
|
|
|
|
the limitation as if written in the body of this License.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
The Free Software Foundation may publish revised and/or new versions
|
2004-08-20 23:26:46 +00:00
|
|
|
|
of the General Public License from time to time. Such new versions will
|
2003-05-23 21:31:04 +00:00
|
|
|
|
be similar in spirit to the present version, but may differ in detail to
|
|
|
|
|
address new problems or concerns.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Each version is given a distinguishing version number. If the Program
|
2003-05-23 21:31:04 +00:00
|
|
|
|
specifies a version number of this License which applies to it and ``any
|
2004-08-20 23:26:46 +00:00
|
|
|
|
later version,'' you have the option of following the terms and conditions
|
2003-05-23 21:31:04 +00:00
|
|
|
|
either of that version or of any later version published by the Free
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Software Foundation. If the Program does not specify a version number of
|
2003-05-23 21:31:04 +00:00
|
|
|
|
this License, you may choose any version ever published by the Free Software
|
|
|
|
|
Foundation.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
If you wish to incorporate parts of the Program into other free
|
|
|
|
|
programs whose distribution conditions are different, write to the author
|
2004-08-20 23:26:46 +00:00
|
|
|
|
to ask for permission. For software which is copyrighted by the Free
|
2003-05-23 21:31:04 +00:00
|
|
|
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
2004-08-20 23:26:46 +00:00
|
|
|
|
make exceptions for this. Our decision will be guided by the two goals
|
|
|
|
|
of preserving the free status of all derivatives of our Free Software and
|
2003-05-23 21:31:04 +00:00
|
|
|
|
of promoting the sharing and reuse of software generally.
|
|
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
|
{\Large\sc
|
|
|
|
|
No Warranty
|
|
|
|
|
}
|
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
|
|
\item
|
2003-05-26 19:06:48 +00:00
|
|
|
|
{\sc Because the program is licensed free of charge, there is no warranty
|
2004-08-20 23:26:46 +00:00
|
|
|
|
for the program, to the extent permitted by applicable law. Except when
|
2003-05-26 19:06:48 +00:00
|
|
|
|
otherwise stated in writing the copyright holders and/or other parties
|
|
|
|
|
provide the program ``as is'' without warranty of any kind, either expressed
|
|
|
|
|
or implied, including, but not limited to, the implied warranties of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
merchantability and fitness for a particular purpose. The entire risk as
|
|
|
|
|
to the quality and performance of the program is with you. Should the
|
2003-05-26 19:06:48 +00:00
|
|
|
|
program prove defective, you assume the cost of all necessary servicing,
|
|
|
|
|
repair or correction.}
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\item {\sc In no event unless required by applicable law or agreed to
|
|
|
|
|
in writing will any copyright holder, or any other party who may
|
|
|
|
|
modify and/or redistribute the program as permitted above, be
|
|
|
|
|
liable to you for damages, including any general, special,
|
|
|
|
|
incidental or consequential damages arising out of the use or
|
|
|
|
|
inability to use the program (including but not limited to loss of
|
|
|
|
|
data or data being rendered inaccurate or losses sustained by you
|
|
|
|
|
or third parties or a failure of the program to operate with any
|
|
|
|
|
other programs), even if such holder or other party has been
|
|
|
|
|
advised of the possibility of such damages.}
|
2003-05-26 19:06:48 +00:00
|
|
|
|
|
2003-05-23 21:31:04 +00:00
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\begin{center}
|
2003-05-26 19:06:48 +00:00
|
|
|
|
{\Large\sc End of Terms and Conditions}
|
2003-05-23 21:31:04 +00:00
|
|
|
|
\end{center}
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\vfill
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\pagebreak[4]
|
2003-05-26 19:06:48 +00:00
|
|
|
|
|
2003-05-23 21:31:04 +00:00
|
|
|
|
\section*{Appendix: How to Apply These Terms to Your New Programs}
|
|
|
|
|
|
|
|
|
|
If you develop a new program, and you want it to be of the greatest
|
|
|
|
|
possible use to the public, the best way to achieve this is to make it
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Free Software which everyone can redistribute and change under these
|
2003-05-23 21:31:04 +00:00
|
|
|
|
terms.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
To do so, attach the following notices to the program. It is safest to
|
2003-05-23 21:31:04 +00:00
|
|
|
|
attach them to the start of each source file to most effectively convey
|
|
|
|
|
the exclusion of warranty; and each file should have at least the
|
|
|
|
|
``copyright'' line and a pointer to where the full notice is found.
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
one line to give the program's name and a brief idea of what it does. \\
|
|
|
|
|
Copyright (C) yyyy name of author \\
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
This program is Free Software; you can redistribute it and/or modify
|
2003-05-23 21:31:04 +00:00
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
2003-05-23 21:31:04 +00:00
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
Also add information on how to contact you by electronic and paper mail.
|
|
|
|
|
|
|
|
|
|
If the program is interactive, make it output a short notice like this
|
|
|
|
|
when it starts in an interactive mode:
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
Gnomovision version 69, Copyright (C) yyyy name of author \\
|
|
|
|
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. \\
|
2004-08-20 23:26:46 +00:00
|
|
|
|
This is Free Software, and you are welcome to redistribute it
|
2003-05-23 21:31:04 +00:00
|
|
|
|
under certain conditions; type `show c' for details.
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The hypothetical commands {\tt show w} and {\tt show c} should show the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
appropriate parts of the General Public License. Of course, the commands
|
2003-05-23 21:31:04 +00:00
|
|
|
|
you use may be called something other than {\tt show w} and {\tt show c};
|
|
|
|
|
they could even be mouse-clicks or menu items---whatever suits your
|
|
|
|
|
program.
|
|
|
|
|
|
|
|
|
|
You should also get your employer (if you work as a programmer) or your
|
|
|
|
|
school, if any, to sign a ``copyright disclaimer'' for the program, if
|
2004-08-20 23:26:46 +00:00
|
|
|
|
necessary. Here is a sample; alter the names:
|
2003-05-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program \\
|
|
|
|
|
`Gnomovision' (which makes passes at compilers) written by James Hacker. \\
|
|
|
|
|
|
|
|
|
|
signature of Ty Coon, 1 April 1989 \\
|
|
|
|
|
Ty Coon, President of Vice
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This General Public License does not permit incorporating your program
|
2004-08-20 23:26:46 +00:00
|
|
|
|
into proprietary programs. If your program is a subroutine library, you
|
2003-05-23 21:31:04 +00:00
|
|
|
|
may consider it more useful to permit linking proprietary applications
|
2004-08-20 23:26:46 +00:00
|
|
|
|
with the library. If this is what you want to do, use the GNU Library
|
2003-05-23 21:31:04 +00:00
|
|
|
|
General Public License instead of this License.
|
|
|
|
|
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
|
|
|
|
\chapter{The GNU Lesser General Public License}
|
|
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
|
{\parindent 0in
|
|
|
|
|
|
|
|
|
|
Version 2.1, February 1999
|
|
|
|
|
|
|
|
|
|
Copyright \copyright\ 1991, 1999 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
|
|
\bigskip
|
|
|
|
|
|
|
|
|
|
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
|
|
|
|
|
|
|
|
\bigskip
|
|
|
|
|
|
|
|
|
|
Everyone is permitted to copy and distribute verbatim copies
|
|
|
|
|
of this license document, but changing it is not allowed.
|
|
|
|
|
|
|
|
|
|
\bigskip
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
[This is the first released version of the Lesser GPL. It also counts
|
|
|
|
|
as the successor of the GNU Library Public License version 2, hence
|
2004-01-07 21:00:06 +00:00
|
|
|
|
the version number 2.1.]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
|
{\bf\large Preamble}
|
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
|
|
The licenses for most software are designed to take away your freedom to
|
2004-08-20 23:26:46 +00:00
|
|
|
|
share and change it. By contrast, the GNU General Public Licenses are
|
|
|
|
|
intended to guarantee your freedom to share and change Free Software---to
|
2004-01-07 21:00:06 +00:00
|
|
|
|
make sure the software is free for all its users.
|
|
|
|
|
|
|
|
|
|
This license, the Lesser General Public License, applies to some specially
|
|
|
|
|
designated software packages---typically libraries---of the Free Software
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Foundation and other authors who decide to use it. You can use it too,
|
2004-01-07 21:00:06 +00:00
|
|
|
|
but we suggest you first think carefully about whether this license or the
|
|
|
|
|
ordinary General Public License is the better strategy to use in any
|
|
|
|
|
particular case, based on the explanations below.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
When we speak of Free Software, we are referring to freedom of use, not
|
|
|
|
|
price. Our General Public Licenses are designed to make sure that you
|
|
|
|
|
have the freedom to distribute copies of Free Software (and charge for
|
2004-01-07 21:00:06 +00:00
|
|
|
|
this service if you wish); that you receive source code or can get it if
|
|
|
|
|
you want it; that you can change the software and use pieces of it in new
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Free programs; and that you are informed that you can do these things.
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
|
|
|
|
To protect your rights, we need to make restrictions that forbid
|
|
|
|
|
distributors to deny you these rights or to ask you to surrender these
|
2004-08-20 23:26:46 +00:00
|
|
|
|
rights. These restrictions translate to certain responsibilities for you
|
2004-01-07 21:00:06 +00:00
|
|
|
|
if you distribute copies of the library or if you modify it.
|
|
|
|
|
|
|
|
|
|
For example, if you distribute copies of the library, whether gratis or
|
|
|
|
|
for a fee, you must give the recipients all the rights that we gave you.
|
2004-08-20 23:26:46 +00:00
|
|
|
|
You must make sure that they, too, receive or can get the source code. If
|
2004-01-07 21:00:06 +00:00
|
|
|
|
you link other code with the library, you must provide complete object
|
|
|
|
|
files to the recipients, so that they can relink them with the library
|
2004-08-20 23:26:46 +00:00
|
|
|
|
after making changes to the library and recompiling it. And you must show
|
2004-01-07 21:00:06 +00:00
|
|
|
|
them these terms so they know their rights.
|
|
|
|
|
|
|
|
|
|
We protect your rights with a two-step method: (1) we copyright the
|
|
|
|
|
library, and (2) we offer you this license, which gives you legal
|
|
|
|
|
permission to copy, distribute and/or modify the library.
|
|
|
|
|
|
|
|
|
|
To protect each distributor, we want to make it very clear that there is
|
2004-08-20 23:26:46 +00:00
|
|
|
|
no warranty for the Free library. Also, if the library is modified by
|
2004-01-07 21:00:06 +00:00
|
|
|
|
someone else and passed on, the recipients should know that what they have
|
|
|
|
|
is not the original version, so that the original author's reputation will
|
|
|
|
|
not be affected by problems that might be introduced by others.
|
|
|
|
|
|
|
|
|
|
Finally, software patents pose a constant threat to the existence of any
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Free program. We wish to make sure that a company cannot effectively
|
|
|
|
|
restrict the users of a Free program by obtaining a restrictive license
|
|
|
|
|
from a patent holder. Therefore, we insist that any patent license
|
2004-01-07 21:00:06 +00:00
|
|
|
|
obtained for a version of the library must be consistent with the full
|
|
|
|
|
freedom of use specified in this license.
|
|
|
|
|
|
|
|
|
|
Most GNU software, including some libraries, is covered by the ordinary
|
2004-08-20 23:26:46 +00:00
|
|
|
|
GNU General Public License. This license, the GNU Lesser General Public
|
2004-01-07 21:00:06 +00:00
|
|
|
|
License, applies to certain designated libraries, and is quite different
|
2004-08-20 23:26:46 +00:00
|
|
|
|
from the ordinary General Public License. We use this license for certain
|
|
|
|
|
libraries in order to permit linking those libraries into non-Free
|
2004-01-07 21:00:06 +00:00
|
|
|
|
programs.
|
|
|
|
|
|
|
|
|
|
When a program is linked with a library, whether statically or using a
|
|
|
|
|
shared library, the combination of the two is legally speaking a combined
|
2004-08-20 23:26:46 +00:00
|
|
|
|
work, a derivative of the original library. The ordinary General Public
|
2004-01-07 21:00:06 +00:00
|
|
|
|
License therefore permits such linking only if the entire combination fits
|
2004-08-20 23:26:46 +00:00
|
|
|
|
its criteria of freedom. The Lesser General Public License permits more
|
2004-01-07 21:00:06 +00:00
|
|
|
|
lax criteria for linking other code with the library.
|
|
|
|
|
|
|
|
|
|
We call this license the ``Lesser'' General Public License because it does
|
|
|
|
|
Less to protect the user's freedom than the ordinary General Public
|
2004-08-20 23:26:46 +00:00
|
|
|
|
License. It also provides other Free Software developers Less of an
|
|
|
|
|
advantage over competing non-Free programs. These disadvantages are the
|
2004-01-07 21:00:06 +00:00
|
|
|
|
reason we use the ordinary General Public License for many libraries.
|
|
|
|
|
However, the Lesser license provides advantages in certain special
|
|
|
|
|
circumstances.
|
|
|
|
|
|
|
|
|
|
For example, on rare occasions, there may be a special need to encourage
|
|
|
|
|
the widest possible use of a certain library, so that it becomes a
|
2004-08-20 23:26:46 +00:00
|
|
|
|
de-facto standard. To achieve this, non-Free programs must be allowed to
|
|
|
|
|
use the library. A more frequent case is that a Free library does the
|
|
|
|
|
same job as widely used non-Free libraries. In this case, there is little
|
|
|
|
|
to gain by limiting the Free library to Free Software only, so we use the
|
2004-01-07 21:00:06 +00:00
|
|
|
|
Lesser General Public License.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
In other cases, permission to use a particular library in non-Free
|
|
|
|
|
programs enables a greater number of people to use a large body of Free
|
|
|
|
|
software. For example, permission to use the GNU C Library in non-Free
|
2004-01-07 21:00:06 +00:00
|
|
|
|
programs enables many more people to use the whole GNU operating system,
|
|
|
|
|
as well as its variant, the GNU/Linux operating system.
|
|
|
|
|
|
|
|
|
|
Although the Lesser General Public License is Less protective of the
|
|
|
|
|
users' freedom, it does ensure that the user of a program that is linked
|
2004-08-20 23:26:46 +00:00
|
|
|
|
with the library has the freedom and the wherewithal to run that program
|
|
|
|
|
using a modified version of the library.
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
|
|
|
|
The precise terms and conditions for copying, distribution and
|
2004-08-20 23:26:46 +00:00
|
|
|
|
modification follow. Pay close attention to the difference between a
|
|
|
|
|
``work based on the library'' and a ``work that uses the library.'' The
|
2004-01-07 21:00:06 +00:00
|
|
|
|
former contains code derived from the library, whereas the latter must be
|
|
|
|
|
combined with the library in order to run.
|
|
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
|
{\Large \sc GNU Lesser General Public License} \\
|
|
|
|
|
{\Large \sc Terms and Conditions For Copying, Distribution and
|
|
|
|
|
Modification}
|
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
|
|
|
|
|
\addtocounter{enumi}{-1}
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
This License Agreement applies to any software library or other program
|
|
|
|
|
which contains a notice placed by the copyright holder or other authorized
|
|
|
|
|
party saying it may be distributed under the terms of this Lesser General
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Public License (also called ``this License''). Each licensee is addressed
|
|
|
|
|
as ``you.''
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
|
|
|
|
A ``library'' means a collection of software functions and/or data
|
|
|
|
|
prepared so as to be conveniently linked with application programs (which
|
|
|
|
|
use some of those functions and data) to form executables.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
The ``library,'' below, refers to any such software library or work which
|
|
|
|
|
has been distributed under these terms. A ``work based on the library''
|
|
|
|
|
means either the library or any derivative work under copyright law: that
|
|
|
|
|
is to say, a work containing the library or a portion of it, either
|
2004-01-07 21:00:06 +00:00
|
|
|
|
verbatim or with modifications and/or translated straightforwardly into
|
2004-08-20 23:26:46 +00:00
|
|
|
|
another language. (Hereinafter, translation is included without
|
|
|
|
|
limitation in the term ``modification.'')
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
|
|
|
|
``Source code'' for a work means the preferred form of the work for making
|
2004-08-20 23:26:46 +00:00
|
|
|
|
modifications to it. For a library, complete source code means all the
|
2004-01-07 21:00:06 +00:00
|
|
|
|
source code for all modules it contains, plus any associated interface
|
|
|
|
|
definition files, plus the scripts used to control compilation and
|
|
|
|
|
installation of the library.
|
|
|
|
|
|
|
|
|
|
Activities other than copying, distribution and modification are not
|
2004-08-20 23:26:46 +00:00
|
|
|
|
covered by this License; they are outside its scope. The act of running a
|
|
|
|
|
program using the library is not restricted, and output from such a
|
2004-01-07 21:00:06 +00:00
|
|
|
|
program is covered only if its contents constitute a work based on the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
library (independent of the use of the library in a tool for writing it).
|
|
|
|
|
Whether that is true depends on what the library does and what the program
|
|
|
|
|
that uses the library does.
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
You may copy and distribute verbatim copies of the library's complete
|
2004-01-07 21:00:06 +00:00
|
|
|
|
source code as you receive it, in any medium, provided that you
|
|
|
|
|
conspicuously and appropriately publish on each copy an appropriate
|
|
|
|
|
copyright notice and disclaimer of warranty; keep intact all the notices
|
|
|
|
|
that refer to this License and to the absence of any warranty; and
|
2004-08-20 23:26:46 +00:00
|
|
|
|
distribute a copy of this License along with the library.
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
|
|
|
|
You may charge a fee for the physical act of transferring a copy,
|
|
|
|
|
and you may at your option offer warranty protection in exchange for a
|
|
|
|
|
fee.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
You may modify your copy or copies of the library or any portion of it,
|
|
|
|
|
thus forming a work based on the library, and copy and distribute such
|
2004-01-07 21:00:06 +00:00
|
|
|
|
modifications or work under the terms of Section 1 above, provided that
|
|
|
|
|
you also meet all of these conditions:
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
The modified work must itself be a software library.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
You must cause the files modified to carry prominent notices stating
|
|
|
|
|
that you changed the files and the date of any change.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
You must cause the whole of the work to be licensed at no charge to
|
|
|
|
|
all third parties under the terms of this License.
|
|
|
|
|
|
|
|
|
|
\item
|
2004-08-20 23:26:46 +00:00
|
|
|
|
If a facility in the modified library refers to a function or a table
|
2004-01-07 21:00:06 +00:00
|
|
|
|
of data to be supplied by an application program that uses the
|
|
|
|
|
facility, other than as an argument passed when the facility is
|
|
|
|
|
invoked, then you must make a good faith effort to ensure that, in the
|
|
|
|
|
event an application does not supply such function or table, the
|
|
|
|
|
facility still operates, and performs whatever part of its purpose
|
|
|
|
|
remains meaningful.
|
|
|
|
|
|
|
|
|
|
(For example, a function in a library to compute square roots has a
|
|
|
|
|
purpose that is entirely well-defined independent of the application.
|
|
|
|
|
Therefore, Subsection 2d requires that any application-supplied function
|
|
|
|
|
or table used by this function must be optional: if the application does
|
|
|
|
|
not supply it, the square root function must still compute square roots.)
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
These requirements apply to the modified work as a whole. If identifiable
|
|
|
|
|
sections of that work are not derived from the library, and can be
|
2004-01-07 21:24:33 +00:00
|
|
|
|
reasonably considered independent and separate works in themselves, then
|
|
|
|
|
this License, and its terms, do not apply to those sections when you
|
2004-08-20 23:26:46 +00:00
|
|
|
|
distribute them as separate works. But when you distribute the same
|
|
|
|
|
sections as part of a whole which is a work based on the library, the
|
2004-01-07 21:24:33 +00:00
|
|
|
|
distribution of the whole must be on the terms of this License, whose
|
|
|
|
|
permissions for other licensees extend to the entire whole, and thus to
|
|
|
|
|
each and every part regardless of who wrote it.
|
|
|
|
|
|
|
|
|
|
Thus, it is not the intent of this section to claim rights or contest your
|
|
|
|
|
rights to work written entirely by you; rather, the intent is to exercise
|
|
|
|
|
the right to control the distribution of derivative or collective works
|
2004-08-20 23:26:46 +00:00
|
|
|
|
based on the library.
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
In addition, mere aggregation of another work not based on the library
|
|
|
|
|
with the library (or with a work based on the library) on a volume of a
|
2004-01-07 21:24:33 +00:00
|
|
|
|
storage or distribution medium does not bring the other work under the
|
|
|
|
|
scope of this License.
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-01-07 21:24:33 +00:00
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
You may opt to apply the terms of the ordinary GNU General Public License
|
2004-08-20 23:26:46 +00:00
|
|
|
|
instead of this License to a given copy of the library. To do this, you
|
2004-01-07 21:24:33 +00:00
|
|
|
|
must alter all the notices that refer to this License, so that they refer
|
2004-08-20 23:26:46 +00:00
|
|
|
|
to the ordinary GNU General Public License version 2, instead of to this
|
|
|
|
|
License. (If a newer version than version 2 of the ordinary GNU General
|
2004-01-07 21:24:33 +00:00
|
|
|
|
Public License has appeared, then you can specify that version instead if
|
|
|
|
|
you wish.) Do not make any other change in these notices.
|
|
|
|
|
|
|
|
|
|
Once this change is made in a given copy, it is irreversible for that
|
|
|
|
|
copy, so the ordinary GNU General Public License applies to all subsequent
|
|
|
|
|
copies and derivative works made from that copy.
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-01-07 21:24:33 +00:00
|
|
|
|
This option is useful when you wish to copy part of the code of the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
library into a program that is not a library.
|
2004-01-07 21:24:33 +00:00
|
|
|
|
|
|
|
|
|
\item
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
You may copy and distribute the library (or a portion or derivative of it,
|
2004-01-07 21:24:33 +00:00
|
|
|
|
under Section 2) in object code or executable form under the terms of
|
|
|
|
|
Sections 1 and 2 above provided that you accompany it with the complete
|
|
|
|
|
corresponding machine-readable source code, which must be distributed
|
|
|
|
|
under the terms of Sections 1 and 2 above on a medium customarily used for
|
|
|
|
|
software interchange.
|
|
|
|
|
|
|
|
|
|
If distribution of object code is made by offering access to copy from a
|
|
|
|
|
designated place, then offering equivalent access to copy the source code
|
|
|
|
|
from the same place satisfies the requirement to distribute the source
|
|
|
|
|
code, even though third parties are not compelled to copy the source along
|
|
|
|
|
with the object code.
|
|
|
|
|
|
|
|
|
|
\item
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
A program that contains no derivative of any portion of the library, but
|
|
|
|
|
is designed to work with the library by being compiled or linked with it,
|
|
|
|
|
is called a ``work that uses the library.'' Such a work, in isolation, is
|
|
|
|
|
not a derivative work of the library, and therefore falls outside the
|
2004-01-07 21:24:33 +00:00
|
|
|
|
scope of this License.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
However, linking a ``work that uses the library'' with the library creates
|
|
|
|
|
an executable that is a derivative of the library (because it contains
|
|
|
|
|
portions of the library), rather than a ``work that uses the library.''
|
|
|
|
|
The executable is therefore covered by this License. Section 6 states
|
2004-01-07 21:24:33 +00:00
|
|
|
|
terms for distribution of such executables.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
When a ``work that uses the library'' uses material from a header file
|
|
|
|
|
that is part of the library, the object code for the work may be a
|
|
|
|
|
derivative work of the library even though the source code is not.
|
2004-01-07 21:24:33 +00:00
|
|
|
|
Whether this is true is especially significant if the work can be linked
|
2004-08-20 23:26:46 +00:00
|
|
|
|
without the library, or if the work is itself a library. The threshold
|
2004-01-07 21:24:33 +00:00
|
|
|
|
for this to be true is not precisely defined by law.
|
|
|
|
|
|
|
|
|
|
If such an object file uses only numerical parameters, data structure
|
|
|
|
|
layouts and accessors, and small macros and small inline functions (ten
|
|
|
|
|
lines or less in length), then the use of the object file is unrestricted,
|
2004-08-20 23:26:46 +00:00
|
|
|
|
regardless of whether it is legally a derivative work. (Executables
|
|
|
|
|
containing this object code plus portions of the library will still fall
|
2004-01-07 21:24:33 +00:00
|
|
|
|
under Section 6.)
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Otherwise, if the work is a derivative of the library, you may distribute
|
|
|
|
|
the object code for the work under the terms of Section 6. Any
|
2004-01-07 21:24:33 +00:00
|
|
|
|
executables containing that work also fall under Section 6, whether or not
|
2004-08-20 23:26:46 +00:00
|
|
|
|
they are linked directly with the library itself.
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-01-07 21:24:33 +00:00
|
|
|
|
\item
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-01-07 21:24:33 +00:00
|
|
|
|
As an exception to the Sections above, you may also combine or link a
|
2004-08-20 23:26:46 +00:00
|
|
|
|
``work that uses the library'' with the library to produce a work
|
|
|
|
|
containing portions of the library, and distribute that work under terms
|
2004-01-07 21:24:33 +00:00
|
|
|
|
of your choice, provided that the terms permit modification of the work
|
|
|
|
|
for the customer's own use and reverse engineering for debugging such
|
|
|
|
|
modifications.
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
You must give prominent notice with each copy of the work that the library
|
|
|
|
|
is used in it and that the library and its use are covered by this
|
|
|
|
|
License. You must supply a copy of this License. If the work during
|
2004-01-07 21:24:33 +00:00
|
|
|
|
execution displays copyright notices, you must include the copyright
|
2004-08-20 23:26:46 +00:00
|
|
|
|
notice for the library among them, as well as a reference directing the
|
|
|
|
|
user to the copy of this License. Also, you must do one of these things:
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-01-07 21:24:33 +00:00
|
|
|
|
\begin{enumerate}
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-01-07 21:24:33 +00:00
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
Accompany the work with the complete corresponding machine-readable
|
2004-08-20 23:26:46 +00:00
|
|
|
|
source code for the library including whatever changes were used in
|
2004-01-07 21:24:33 +00:00
|
|
|
|
the work (which must be distributed under Sections 1 and 2 above);
|
2004-08-20 23:26:46 +00:00
|
|
|
|
and, if the work is an executable linked with the library, with the
|
|
|
|
|
complete machine-readable ``work that uses the library,'' as object
|
|
|
|
|
code and/or source code, so that the user can modify the library and
|
2004-01-07 21:24:33 +00:00
|
|
|
|
then relink to produce a modified executable containing the modified
|
2004-08-20 23:26:46 +00:00
|
|
|
|
library. (It is understood that the user who changes the contents of
|
|
|
|
|
definitions files in the library will not necessarily be able to
|
2004-01-07 21:24:33 +00:00
|
|
|
|
recompile the application to use the modified definitions.)
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Use a suitable shared library mechanism for linking with the library.
|
2004-01-07 21:24:33 +00:00
|
|
|
|
A suitable mechanism is one that (1) uses at run time a copy of the
|
|
|
|
|
library already present on the user's computer system, rather than
|
|
|
|
|
copying library functions into the executable, and (2) will operate
|
|
|
|
|
properly with a modified version of the library, if the user installs
|
|
|
|
|
one, as long as the modified version is interface-compatible with the
|
|
|
|
|
version that the work was made with.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
Accompany the work with a written offer, valid for at least three
|
|
|
|
|
years, to give the same user the materials specified in Subsection 6a,
|
|
|
|
|
above, for a charge no more than the cost of performing this
|
|
|
|
|
distribution.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
If distribution of the work is made by offering access to copy from a
|
|
|
|
|
designated place, offer equivalent access to copy the above specified
|
|
|
|
|
materials from the same place.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
Verify that the user has already received a copy of these materials or
|
|
|
|
|
that you have already sent this user a copy.
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
For an executable, the required form of the ``work that uses the library''
|
2004-01-07 21:24:33 +00:00
|
|
|
|
must include any data and utility programs needed for reproducing the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
executable from it. However, as a special exception, the materials to be
|
2004-01-07 21:24:33 +00:00
|
|
|
|
distributed need not include anything that is normally distributed (in
|
|
|
|
|
either source or binary form) with the major components (compiler, kernel,
|
|
|
|
|
and so on) of the operating system on which the executable runs, unless
|
|
|
|
|
that component itself accompanies the executable.
|
|
|
|
|
|
|
|
|
|
It may happen that this requirement contradicts the license restrictions
|
|
|
|
|
of other proprietary libraries that do not normally accompany the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
operating system. Such a contradiction means you cannot use both them and
|
|
|
|
|
the library together in an executable that you distribute.
|
2004-01-07 21:24:33 +00:00
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
You may place library facilities that are a work based on the library
|
2004-01-07 21:24:33 +00:00
|
|
|
|
side-by-side in a single library together with other library facilities
|
|
|
|
|
not covered by this License, and distribute such a combined library,
|
2004-08-20 23:26:46 +00:00
|
|
|
|
provided that the separate distribution of the work based on the library
|
2004-01-07 21:24:33 +00:00
|
|
|
|
and of the other library facilities is otherwise permitted, and provided
|
|
|
|
|
that you do these two things:
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
Accompany the combined library with a copy of the same work based on
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the library, uncombined with any other library facilities. This must
|
2004-01-07 21:24:33 +00:00
|
|
|
|
be distributed under the terms of the Sections above.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
Give prominent notice with the combined library of the fact that part
|
2004-08-20 23:26:46 +00:00
|
|
|
|
of it is a work based on the library, and explaining where to find
|
2004-01-07 21:24:33 +00:00
|
|
|
|
the accompanying uncombined form of the same work.
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
You may not copy, modify, sublicense, link with, or distribute the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
library except as expressly provided under this License. Any attempt
|
2004-01-07 21:24:33 +00:00
|
|
|
|
otherwise to copy, modify, sublicense, link with, or distribute the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
library is void, and will automatically terminate your rights under this
|
|
|
|
|
License. However, parties who have received copies, or rights, from you
|
2004-01-07 21:24:33 +00:00
|
|
|
|
under this License will not have their licenses terminated so long as
|
|
|
|
|
such parties remain in full compliance.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
You are not required to accept this License, since you have not signed
|
2004-08-20 23:26:46 +00:00
|
|
|
|
it. However, nothing else grants you permission to modify or distribute
|
|
|
|
|
the library or its derivative works. These actions are prohibited by
|
|
|
|
|
law if you do not accept this License. Therefore, by modifying or
|
|
|
|
|
distributing the library (or any work based on the library), you
|
2004-01-07 21:24:33 +00:00
|
|
|
|
indicate your acceptance of this License to do so, and all its terms and
|
2004-08-20 23:26:46 +00:00
|
|
|
|
conditions for copying, distributing or modifying the library or works
|
2004-01-07 21:24:33 +00:00
|
|
|
|
based on it.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Each time you redistribute the library (or any work based on the
|
|
|
|
|
library), the recipient automatically receives a license from the
|
|
|
|
|
original licensor to copy, distribute, link with or modify the library
|
|
|
|
|
subject to these terms and conditions. You may not impose any further
|
2004-01-07 21:24:33 +00:00
|
|
|
|
restrictions on the recipients' exercise of the rights granted herein.
|
|
|
|
|
You are not responsible for enforcing compliance by third parties with
|
|
|
|
|
this License.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
If, as a consequence of a court judgment or allegation of patent
|
|
|
|
|
infringement or for any other reason (not limited to patent issues),
|
|
|
|
|
conditions are imposed on you (whether by court order, agreement or
|
|
|
|
|
otherwise) that contradict the conditions of this License, they do not
|
2004-08-20 23:26:46 +00:00
|
|
|
|
excuse you from the conditions of this License. If you cannot
|
2004-01-07 21:24:33 +00:00
|
|
|
|
distribute so as to satisfy simultaneously your obligations under this
|
|
|
|
|
License and any other pertinent obligations, then as a consequence you
|
2004-08-20 23:26:46 +00:00
|
|
|
|
may not distribute the library at all. For example, if a patent license
|
|
|
|
|
would not permit royalty-free redistribution of the library by all those
|
2004-01-07 21:24:33 +00:00
|
|
|
|
who receive copies directly or indirectly through you, then the only way
|
|
|
|
|
you could satisfy both it and this License would be to refrain entirely
|
2004-08-20 23:26:46 +00:00
|
|
|
|
from distribution of the library.
|
2004-01-07 21:24:33 +00:00
|
|
|
|
|
|
|
|
|
If any portion of this section is held invalid or unenforceable under
|
|
|
|
|
any particular circumstance, the balance of the section is intended to
|
|
|
|
|
apply, and the section as a whole is intended to apply in other
|
|
|
|
|
circumstances.
|
|
|
|
|
|
|
|
|
|
It is not the purpose of this section to induce you to infringe any
|
|
|
|
|
patents or other property right claims or to contest validity of any
|
|
|
|
|
such claims; this section has the sole purpose of protecting the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
integrity of the Free Software distribution system which is implemented
|
|
|
|
|
by public license practices. Many people have made generous
|
2004-01-07 21:24:33 +00:00
|
|
|
|
contributions to the wide range of software distributed through that
|
|
|
|
|
system in reliance on consistent application of that system; it is up to
|
|
|
|
|
the author/donor to decide if he or she is willing to distribute
|
|
|
|
|
software through any other system and a licensee cannot impose that
|
|
|
|
|
choice.
|
|
|
|
|
|
|
|
|
|
This section is intended to make thoroughly clear what is believed to be
|
|
|
|
|
a consequence of the rest of this License.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
|
|
|
|
|
% \pagebreak[4]
|
2004-01-07 21:24:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
If the distribution and/or use of the library is restricted in certain
|
2004-01-07 21:24:33 +00:00
|
|
|
|
countries either by patents or by copyrighted interfaces, the original
|
2004-08-20 23:26:46 +00:00
|
|
|
|
copyright holder who places the library under this License may add an
|
2004-01-07 21:24:33 +00:00
|
|
|
|
explicit geographical distribution limitation excluding those countries,
|
|
|
|
|
so that distribution is permitted only in or among countries not thus
|
2004-08-20 23:26:46 +00:00
|
|
|
|
excluded. In such case, this License incorporates the limitation as if
|
2004-01-07 21:24:33 +00:00
|
|
|
|
written in the body of this License.
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
The Free Software Foundation may publish revised and/or new versions of
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the Lesser General Public License from time to time. Such new versions
|
2004-01-07 21:24:33 +00:00
|
|
|
|
will be similar in spirit to the present version, but may differ in
|
|
|
|
|
detail to address new problems or concerns.
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
Each version is given a distinguishing version number. If the library
|
2004-01-07 21:24:33 +00:00
|
|
|
|
specifies a version number of this License which applies to it and ``any
|
2004-08-20 23:26:46 +00:00
|
|
|
|
later version,'' you have the option of following the terms and
|
2004-01-07 21:24:33 +00:00
|
|
|
|
conditions either of that version or of any later version published by
|
2004-08-20 23:26:46 +00:00
|
|
|
|
the Free Software Foundation. If the library does not specify a license
|
2004-01-07 21:24:33 +00:00
|
|
|
|
version number, you may choose any version ever published by the Free
|
|
|
|
|
Software Foundation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
If you wish to incorporate parts of the library into other Free programs
|
2004-01-07 21:24:33 +00:00
|
|
|
|
whose distribution conditions are incompatible with these, write to the
|
2004-08-20 23:26:46 +00:00
|
|
|
|
author to ask for permission. For software which is copyrighted by the
|
2004-01-07 21:24:33 +00:00
|
|
|
|
Free Software Foundation, write to the Free Software Foundation; we
|
2004-08-20 23:26:46 +00:00
|
|
|
|
sometimes make exceptions for this. Our decision will be guided by the
|
|
|
|
|
two goals of preserving the Free status of all derivatives of our Free
|
2004-01-07 21:24:33 +00:00
|
|
|
|
software and of promoting the sharing and reuse of software generally.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
|
{\Large\sc
|
|
|
|
|
No Warranty
|
|
|
|
|
}
|
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
{\sc Because the library is licensed free of charge, there is no
|
2004-01-07 21:24:33 +00:00
|
|
|
|
warranty for the library, to the extent permitted by applicable law.
|
|
|
|
|
Except when otherwise stated in writing the copyright holders and/or
|
|
|
|
|
other parties provide the library ``as is'' without warranty of any
|
|
|
|
|
kind, either expressed or implied, including, but not limited to, the
|
|
|
|
|
implied warranties of merchantability and fitness for a particular
|
2004-08-20 23:26:46 +00:00
|
|
|
|
purpose. The entire risk as to the quality and performance of the
|
|
|
|
|
library is with you. should the library prove defective, you assume
|
2004-01-07 21:24:33 +00:00
|
|
|
|
the cost of all necessary servicing, repair or correction.}
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
% \pagebreak[4]
|
2004-01-07 21:24:33 +00:00
|
|
|
|
|
|
|
|
|
\item
|
|
|
|
|
|
|
|
|
|
{\sc In no event unless required by applicable law or agreed to in writing
|
|
|
|
|
will any copyright holder, or any other party who may modify and/or
|
|
|
|
|
redistribute the library as permitted above, be liable to you for
|
|
|
|
|
damages, including any general, special, incidental or consequential
|
|
|
|
|
damages arising out of the use or inability to use the library
|
|
|
|
|
(including but not limited to loss of data or data being rendered
|
|
|
|
|
inaccurate or losses sustained by you or third parties or a failure of
|
|
|
|
|
the library to operate with any other software), even if such holder or
|
|
|
|
|
other party has been advised of the possibility of such damages.}
|
|
|
|
|
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
|
{\Large\sc End of Terms and Conditions}
|
|
|
|
|
\end{center}
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\vfill
|
2004-01-07 21:24:33 +00:00
|
|
|
|
|
|
|
|
|
\pagebreak[4]
|
|
|
|
|
|
|
|
|
|
\section*{How to Apply These Terms to Your New Libraries}
|
|
|
|
|
|
|
|
|
|
If you develop a new library, and you want it to be of the greatest
|
2004-08-20 23:26:46 +00:00
|
|
|
|
possible use to the public, we recommend making it Free Software that
|
|
|
|
|
everyone can redistribute and change. You can do so by permitting
|
2004-01-07 21:24:33 +00:00
|
|
|
|
redistribution under these terms (or, alternatively, under the terms of
|
|
|
|
|
the ordinary General Public License).
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
To apply these terms, attach the following notices to the library. It is
|
2004-01-07 21:00:06 +00:00
|
|
|
|
safest to attach them to the start of each source file to most effectively
|
|
|
|
|
convey the exclusion of warranty; and each file should have at least the
|
|
|
|
|
``copyright'' line and a pointer to where the full notice is found.
|
|
|
|
|
|
2004-01-07 21:24:33 +00:00
|
|
|
|
\begin{quote}
|
|
|
|
|
one line to give the library's name and a brief idea of what it does. \\
|
|
|
|
|
Copyright (C) year name of author \\
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
This library is Free Software; you can redistribute it and/or modify it
|
2004-01-07 21:24:33 +00:00
|
|
|
|
under the terms of the GNU Lesser General Public License as published by
|
|
|
|
|
the Free Software Foundation; either version 2.1 of the License, or (at
|
|
|
|
|
your option) any later version.
|
|
|
|
|
|
|
|
|
|
This library is distributed in the hope that it will be useful, but
|
|
|
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
2004-08-20 23:26:46 +00:00
|
|
|
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
2004-01-07 21:24:33 +00:00
|
|
|
|
License for more details.
|
|
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
|
|
|
|
along with this library; if not, write to the Free Software Foundation,
|
|
|
|
|
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
|
\end{quote}
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
|
|
|
|
Also add information on how to contact you by electronic and paper mail.
|
|
|
|
|
|
|
|
|
|
You should also get your employer (if you work as a programmer) or your
|
|
|
|
|
school, if any, to sign a ``copyright disclaimer'' for the library, if
|
2004-08-20 23:26:46 +00:00
|
|
|
|
necessary. Here is a sample; alter the names:
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-01-07 21:24:33 +00:00
|
|
|
|
\begin{quote}
|
|
|
|
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program \\
|
|
|
|
|
`Gnomovision' (which makes passes at compilers) written by James Hacker. \\
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
2004-01-07 21:24:33 +00:00
|
|
|
|
signature of Ty Coon, 1 April 1990 \\
|
|
|
|
|
Ty Coon, President of Vice
|
|
|
|
|
\end{quote}
|
2004-01-07 21:00:06 +00:00
|
|
|
|
|
|
|
|
|
That's all there is to it!
|
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
% =====================================================================
|
|
|
|
|
% END OF FIRST DAY SEMINAR SECTION
|
|
|
|
|
% =====================================================================
|
2003-05-28 18:44:16 +00:00
|
|
|
|
|
2004-08-20 23:26:46 +00:00
|
|
|
|
\end{document}
|