2389 lines
116 KiB
TeX
2389 lines
116 KiB
TeX
% gpl-lgplg.tex -*- LaTeX -*-
|
||
% Tutorial Text for the Detailed Study and Analysis of GPL and LGPL course
|
||
%
|
||
% Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||
|
||
% Verbatim copying and distribution of this entire document is permitted in
|
||
% any medium, provided this notice is preserved.
|
||
|
||
\documentclass[12pt]{report}
|
||
% FILTER_PS: \input{generate-ps-file}
|
||
% FILTER_PDF: \input{generate-pdf-file}
|
||
% FILTER_HTML: \input{generate-html-file}
|
||
\input{one-inch-margins}
|
||
|
||
%\setlength\parskip{0.7em}
|
||
%\setlength\parindent{0pt}
|
||
|
||
\newcommand{\defn}[1]{\emph{#1}}
|
||
|
||
%\pagestyle{empty}
|
||
|
||
\begin{document}
|
||
|
||
\begin{titlepage}
|
||
|
||
|
||
\begin{center}
|
||
|
||
\vspace{.5in}
|
||
|
||
{\Large
|
||
{\sc Detailed Study and Analysis of GPL and LGPL } \\
|
||
|
||
\vspace{.7in}
|
||
|
||
Sponsored by the Free Software Foundation \\
|
||
|
||
|
||
\vspace{.3in}
|
||
|
||
Columbia Law School, New York, NY, USA \\
|
||
Tuesday 20 January 2003
|
||
|
||
|
||
|
||
{\large
|
||
Bradley M. Kuhn
|
||
|
||
Executive Director
|
||
|
||
Free Software Foundation
|
||
}
|
||
|
||
|
||
{\large
|
||
Daniel Ravicher
|
||
|
||
Senior Counsel
|
||
|
||
Free Software Foundation
|
||
}
|
||
|
||
\end{center}
|
||
|
||
\vfill
|
||
|
||
{\parindent 0in
|
||
Copyright \copyright{} 2003, 2004 \hspace{.2in} Free Software Foundation, Inc.
|
||
|
||
\vspace{.3in}
|
||
|
||
Verbatim copying and distribution of this entire document is permitted in
|
||
any medium, provided this notice is preserved.
|
||
}
|
||
|
||
\end{titlepage}
|
||
|
||
\pagestyle{plain}
|
||
\pagenumbering{roman}
|
||
|
||
\begin{abstract}
|
||
|
||
|
||
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
|
||
people how to use the GPL (and GPL'ed software) successfully in a new Free
|
||
Software business and in existing, successful enterprises.
|
||
|
||
Attendees should have a general familiarity with software development
|
||
processes. A vague understanding of how copyright law applies to software
|
||
is also helpful. The tutorial is of most interest to lawyers, software
|
||
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
|
||
the future), and those who wish to make use of existing GPL'ed software in
|
||
their enterprise.
|
||
|
||
Upon completion of the tutorial, successful attendees can expect to have
|
||
learned the following:
|
||
|
||
\begin{itemize}
|
||
|
||
\item the freedom-defending purpose of each term of the GNU GPL.
|
||
|
||
\item the redistribution options under the GPL.
|
||
|
||
\item the obligations when modifying GPL'ed software.
|
||
|
||
\item how to build a plan for proper and successful compliance with the GPL.
|
||
|
||
\item the business advantages that the GPL provides.
|
||
|
||
\item the most common business models used in conjunction with the GPL.
|
||
|
||
\item how existing GPL'ed software can be used in existing enterprises.
|
||
|
||
\item the basics of the LGPL and how it differs from GPL.
|
||
|
||
\item how best to understand the complexities regarding derivative
|
||
works of software.
|
||
\end{itemize}
|
||
|
||
\end{abstract}
|
||
|
||
\tableofcontents
|
||
|
||
\pagebreak
|
||
|
||
\pagenumbering{arabic}
|
||
|
||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
\chapter{What Is Free Software?}
|
||
|
||
Consideration of the GNU General Public License (herein, abbreviated as
|
||
\defn{GNU GPL} or just \defn{GPL}) must begin by first considering the broader
|
||
world of Free Software. The GPL was not created from a void, rather,
|
||
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
|
||
of software freedom. A prerequisite for understanding the GPL and its
|
||
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.
|
||
|
||
\section{The Free Software Definition}
|
||
\label{Free Software Definition}
|
||
|
||
The Free Software Definition is set forth in full on FSF's website at
|
||
\verb0http://www.fsf.org/0 \verb0philosophy/free-sw.html0. This section
|
||
presents an abbreviated version that will focus on the parts that are most
|
||
pertinent to the terms of the GPL\@.
|
||
|
||
A particular program is Free Software if it grants a particular user of
|
||
that program, the following freedoms:
|
||
|
||
\begin{itemize}
|
||
|
||
\item the freedom to run the program for any purpose.
|
||
|
||
\item the freedom to change and modify the program.
|
||
|
||
\item the freedom to copy and share the program.
|
||
|
||
\item the freedom to share improved versions of the program.
|
||
|
||
\end{itemize}
|
||
|
||
The focus on ``a particular user'' is very pertinent here. It is not
|
||
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
|
||
some of these freedoms. Section~\ref{Proprietary Relicensing} talks in
|
||
detail about how this can happen even if a program is released under the
|
||
GPL\@.
|
||
|
||
Some people refer to software that gives these freedoms as ``Open
|
||
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
|
||
website 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 that is 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 non-commercially or
|
||
commercially. Licenses that grant these freedoms for non-commercial
|
||
activities but prohibit them for commercial activities are considered
|
||
non-Free.
|
||
|
||
In general, software for which most or all of these freedoms are
|
||
restricted in any way is called ``non-Free Software''. Typically, the
|
||
term ``proprietary software'' is used more or less interchangeably with
|
||
``non-Free Software''. Personally, I tend to use the term ``non-Free
|
||
Software'' to refer to non-commercial software that restricts freedom
|
||
(such as ``shareware'') and ``proprietary software'' to refer to
|
||
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.
|
||
|
||
\subsection{The Freedom to Run}
|
||
|
||
For a program to be Free Software, the freedom to run the program must be
|
||
completely unrestricted. This means that any use for that software that
|
||
the user can come up with must be permitted. Perhaps, for example, the
|
||
user has discovered an innovative new use for a particular program, one
|
||
that the programmer never could have predicted. Such a use must not be
|
||
restricted.
|
||
|
||
It was once rare that this freedom was restricted by even proprietary
|
||
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 websites that generate negative publicity for
|
||
Microsoft. Free Software has no such restrictions; everyone is free to
|
||
use Free Software for any purpose whatsoever.
|
||
|
||
\subsection{The Freedom to Change and Modify}
|
||
|
||
Free Software programs allow users to change, modify and adapt the
|
||
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
|
||
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.
|
||
However, this freedom is also important to users who are not programmers.
|
||
Users must have the right to exercise this freedom indirectly in both
|
||
commercial and non-commercial settings. For example, users often seek
|
||
non-commercial help with the software on email lists and in users groups.
|
||
When they find such help, they must have the freedom to recruit
|
||
programmers who might altruistically assist them to modify their software.
|
||
|
||
The commercial exercise of this freedom is also essential for users. Each
|
||
user, or group of users, must have the right to hire anyone they wish in a
|
||
competitive free market to modify and change the software. This means
|
||
that companies have a right to hire anyone they wish to modify their Free
|
||
Software. Additionally, such companies may contract with other companies
|
||
to commission software modification.
|
||
|
||
\subsection{The Freedom to Copy and Share}
|
||
|
||
Users may share Free Software in a variety of ways. Free Software
|
||
advocates work to eliminate a fundamental ethical dilemma of the software
|
||
age: choosing between obeying a software license, and friendship (by
|
||
giving away a copy of a program your friend who likes the software you are
|
||
using). Free Software licenses, therefore, must permit this sort of
|
||
altruistic sharing of software among friends.
|
||
|
||
The commercial environment must also have the benefits of this freedom.
|
||
Commercial sharing typically takes the form of selling copies of Free
|
||
Software. Free Software can be sold at any price to anyone. Those who
|
||
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
|
||
tends to keep prices low and reasonable. However, if someone is willing
|
||
to pay a billion dollars for one copy of the GNU Compiler Collection, such
|
||
a sale is completely permitted.
|
||
|
||
Another common instance of commercial sharing is service-oriented
|
||
distribution. For example, a distribution vendor may provide immediate
|
||
security and upgrade distribution via a special network service. Such
|
||
distribution is completely permitted for Free Software.
|
||
|
||
(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.)
|
||
|
||
\subsection{The Freedom to Share Improvements}
|
||
|
||
The freedom to modify and improve is somewhat empty without the freedom to
|
||
share those improvements. The Free Software community is built on the
|
||
pillar of altruistic sharing of improved Free Software. Inevitably, a
|
||
Free Software project sprouts a mailing list where improvements are shared
|
||
freely among members of the development community. Such non-commercial
|
||
sharing must be permitted for Free Software to thrive.
|
||
|
||
Commercial sharing of modified Free Software is equally important. For a
|
||
competitive free market for support to exist, 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.
|
||
|
||
For example, selling support services for Free Software is fully
|
||
permitted. Companies and individuals can offer themselves as ``the place
|
||
to call'' when software fails or does not function properly. For such a
|
||
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
|
||
Free Software. Most Free Software programs have a ``standard version''
|
||
that is made available from the primary developers of the software.
|
||
However, all who have the software have the ``freedom to fork'' --- that
|
||
is, make available non-trivial modified versions of the software on a
|
||
permanent or semi-permanent basis. Such freedom is central to vibrant
|
||
developer and user interaction.
|
||
|
||
Companies and individuals have the right to make true value-added versions
|
||
of Free Software. They may use freedom to share improvements to
|
||
distribute distinct versions of Free Software with different functionality
|
||
and features. Furthermore, this freedom can be exercised to serve a
|
||
disenfranchised subset of the user community. If the developers of the
|
||
standard version refuse to serve the needs of some of the software's
|
||
users, other entities have the right to create long- or short-lived fork
|
||
that serves that sub-community.
|
||
|
||
\section{How Does Software Become Free?}
|
||
|
||
The last section set forth the freedoms and rights are 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.
|
||
|
||
Software can be made proprietary only because it is governed by copyright
|
||
law\footnote{This statement is a bit of an oversimplification. Patents
|
||
and trade secrets can cover software and make it effectively non-free,
|
||
one can contract away their rights and freedoms regarding software, or
|
||
source code can be practically obscured in binary-only distribution
|
||
without reliance on any legal system. However, the primary control
|
||
mechanism for software is copyright.}. Copyright law, with respect to
|
||
software, governs copying, modifying, and redistributing that
|
||
software\footnote{Copyright law in general also governs ``public
|
||
performance'' of copyrighted works. There is no generally agreed
|
||
definition for public performance of software and version 2 of the GPL
|
||
does not govern public performance.}. By law, the copyright holder (aka
|
||
the author) of the work controls how others may copy, modify and/or
|
||
distribute the work. For proprietary software, these controls are used to
|
||
prohibit these activities. In addition, proprietary software distributors
|
||
further impede modification in a practical sense by distributing only
|
||
binary code and keeping the source code of the software secret.
|
||
|
||
Copyright law is a construction. In the USA, the Constitution permits,
|
||
but does not require, the creation of copyright law as federal
|
||
legislation. Software, since it is an idea fixed in a tangible medium, is
|
||
thus covered by the statues, and is copyrighted by default.
|
||
|
||
However, this legal construction is not necessarily natural. Software, in
|
||
its natural state without copyright, is Free Software. In an imaginary
|
||
world, which has no copyright, the rules would be different. In this
|
||
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
|
||
versions\footnote{There could still exist legal systems, like our modern
|
||
patent system, which could restrict the software in other ways.}.
|
||
|
||
Software in the real world is copyrighted by default, and that default
|
||
legal system does exist. 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''.
|
||
|
||
\subsection{Public Domain Software}
|
||
|
||
An author can create public domain software by disclaiming all copyright
|
||
interest on the work. In the USA and other countries that have signed the
|
||
Berne convention on copyright, software is copyrighted automatically by
|
||
the author when she ``fixes the software into a tangible medium''. In
|
||
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
|
||
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
|
||
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
|
||
in any way. It is nonsensical to say software is ``licensed for the
|
||
public domain'', or any phrase that implies the copyright holder gave
|
||
expressed permission to take actions governed by copyright law.
|
||
|
||
By contrast, what the copyright holder has done is renounce her copyright
|
||
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
|
||
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
|
||
easiest and most straightforward way to produce Free Software. Indeed,
|
||
some major Free Software projects have chosen this method for making their
|
||
software Free. However, most of the Free Software in existence \emph{is}
|
||
copyrighted. In most cases (particularly in that of FSF and the GNU
|
||
Project), this was done due to very careful planning.
|
||
|
||
Software released into the public domain does grant freedom to those users
|
||
who receive the standard versions on which the original author disclaimed
|
||
copyright. However, since the work is not copyrighted, any non-trivial
|
||
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
|
||
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
|
||
fewer and fewer entities have an incentive to contribute back to the
|
||
commons. They know that any of their competitors can proprietarize their
|
||
enhancements. Over time, almost no interesting work is left in the public
|
||
domain, because nearly all new work is done by proprietarization.
|
||
|
||
A legal mechanism is needed to redress this problem. FSF was in fact
|
||
originally created primarily as a legal entity to defend software freedom,
|
||
and that work of of defending software freedom is a substantial part of
|
||
its work today. Specifically because of this ``embrace, proprietarize and
|
||
extend'' cycle, FSF made a conscious choice to copyright its Free Software,
|
||
and then license it under ``copyleft'' terms, and many, including the
|
||
developers of the kernel named Linux, have chosen to follow this paradigm.
|
||
|
||
Copyleft is a legal strategy to defend, uphold and propagate software
|
||
freedom. The basic technique of copyleft is as follows: copyright the
|
||
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
|
||
the software have equal rights and freedom. In essence, copyleft grants
|
||
freedom, but forbids others to forbid that freedom from anyone else along
|
||
the distribution and modification chains.
|
||
|
||
Copyleft is a general concept. Much like ideas for what a computer might
|
||
do must be \emph{implemented} by a program that actually does the job, so
|
||
too must copyleft be implemented in some concrete legal structure.
|
||
``Share and share alike'' is a phrase that is often enough to explain the
|
||
concept behind copyleft, but to actually make it work in the real world, a
|
||
true implementation in legal text must exist. The GPL is the primary
|
||
implementation of copyleft in copyright licensing language.
|
||
|
||
\section{An Ecosystem of Equality}
|
||
|
||
The GPL uses copyright law to defend freedom and equally ensure users'
|
||
rights. This ultimately creates an ecosystem of equality for both
|
||
business and non-commercial users.
|
||
|
||
\subsection{The Non-Commercial Ecosystem}
|
||
|
||
A GPL'ed code base becomes a center of a vibrant development and user
|
||
community. Traditionally, volunteers, operating non-commercially out of
|
||
keen interest or ``scratch an itch'' motivations, produce initial versions
|
||
of a GPL'ed system. Because of the efficient distribution channels of the
|
||
Internet, any useful GPL'ed system is adopted quickly by non-commercial
|
||
users.
|
||
|
||
Fundamentally, the early release and quick distribution of the software
|
||
gives birth to a thriving non-commercial community. Users and developers
|
||
begin sharing bug reports and bug fixes across a shared intellectual
|
||
commons. Users can trust the developers, because they know that if the
|
||
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.
|
||
|
||
Because of the symmetry and fairness inherent in GPL'ed distribution,
|
||
nearly every GPL'ed package in existence has a vibrant non-commercial user
|
||
and developer base.
|
||
|
||
\subsection{The Commercial Ecosystem}
|
||
|
||
By the same token, nearly all established GPL'ed software systems have a
|
||
vibrant commercial community. Nearly every GPL'ed system that has gained
|
||
wide adoption from non-commercial users and developers eventually begins
|
||
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
|
||
it was deployed non-commercially in academic environments. However, very
|
||
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
|
||
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
|
||
the first people hired to do such work were those same two graduate
|
||
students who originally developed the software.
|
||
|
||
The non-commercial users, however, were not concerned when these two
|
||
fellows began collecting paychecks off of their GPL'ed work. They knew
|
||
that because of the nature of the GPL that improvements that were
|
||
distributed in the commercial environment could easily be folded back into
|
||
the standard version. Companies are not permitted to proprietarize
|
||
Samba, so the non-commercial users, and even other commercial users are
|
||
safe in the knowledge that the software freedom ensured by GPL will remain
|
||
protected.
|
||
|
||
Commercial developers also work in concert with non-commercial developers.
|
||
Those two now-long-since graduated students continue to contribute to
|
||
Samba altruistically, but also get 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
|
||
non-commercially 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.
|
||
|
||
No party is a threat to another in the GPL software scenario because
|
||
everyone is on equal ground. The GPL protects rights of the commercial
|
||
and non-commercial contributors and users equally. The GPL creates trust,
|
||
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
|
||
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
|
||
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
|
||
controls. But it does so justly only when visibly. And law is visible
|
||
only when its terms are knowable and controllable by those it regulates,
|
||
or by the agents of those it regulates (lawyers, legislatures).
|
||
|
||
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
|
||
clients to advance their clients' interests. Sometimes that interest is
|
||
advanced through litigation. In the course of this litigation, lawyers
|
||
write briefs. These briefs in turn affect opinions written by judges.
|
||
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.
|
||
Legal briefs are open and free for others to use. The arguments are
|
||
transparent (which is different from saying they are good) and the
|
||
reasoning can be taken without the permission of the original lawyers.
|
||
The opinions they produce can be quoted in later briefs. They can be
|
||
copied and integrated into another brief or opinion. The ``source code''
|
||
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
|
||
it achieves its creativity through the reuse of what happened before. The
|
||
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
|
||
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
|
||
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
|
||
the reasoning. Laws that were kept by the police but published to no one
|
||
else. Regulation that operated without explaining its rule.
|
||
|
||
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
|
||
efficient application. Instead, openness and transparency are the
|
||
constraints within which a legal system gets built, not options to be
|
||
added if convenient to the leaders. Life governed by software code should
|
||
be no less.
|
||
|
||
Code writing is not litigation. It is better, richer, more
|
||
productive. But the law is an obvious instance of how creativity and
|
||
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
|
||
\href{http://creativecommons.org/licenses/by/1.0/}{the ``Attribution
|
||
License'', version 1.0} or any later version as published by Creative
|
||
Commons.}
|
||
\end{quotation}
|
||
|
||
In essence, lawyers are paid to service the shared commons of legal
|
||
infrastructure. Few citizens defend themselves in court or write their
|
||
own briefs (even though they are legally permitted to do so) because
|
||
everyone would prefer to have an expert do that job.
|
||
|
||
The Free Software economy is a market that is ripe for experts. It
|
||
functions similarly to other well established professional fields like the
|
||
law. The GPL, in turn, serves as the legal scaffolding that permits the
|
||
creation of this vibrant commercial and non-commercial Free Software
|
||
economy.
|
||
|
||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
\chapter{Copying, Modifying and Redistributing}
|
||
|
||
This chapter begins the deep discussion of the details of the terms of
|
||
GPL\@. In this chapter, we consider the core terms: GPL \S\S 0--3. These
|
||
are the sections of the GPL that fundamentally define the legal details of
|
||
how software freedom is respected.
|
||
|
||
\section{GPL \S 0: Freedom to Run}
|
||
\label{GPLs0}
|
||
|
||
\S 0, the opening section of GPL, sets forth that the work is governed by
|
||
copyright law. It specifically points out that it is the ``copyright
|
||
holder'' who decides if a work is licensed under its terms, and explains
|
||
how the copyright holder might indicate this fact.
|
||
|
||
A bit more subtly, \S 0 makes an inference that copyright law is the only
|
||
system under which it is governed. Specifically, it states:
|
||
\begin{quote}
|
||
Activities other than copying, distribution and modification are not
|
||
covered by this License; they are outside its scope.
|
||
\end{quote}
|
||
In essence, the license governs \emph{only} those activities and all other
|
||
activities are unrestricted, provided that no other agreements trump GPL
|
||
(which they cannot; see Sections~\ref{GPLs6} and~\ref{GPLs7}). This is
|
||
very important, because the Free Software community heavily supports
|
||
users' rights to ``fair use'' and ``unregulated use'' of copyrighted
|
||
material. GPL asserts through this clause that it supports users' rights
|
||
to fair and unregulated uses.
|
||
|
||
Fair use of copyrighted material is an established legal doctrine that
|
||
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 with without licensing restrictions.
|
||
|
||
Fair use is a doctrine established by the courts or by statute. By
|
||
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
|
||
many users. An example of unregulated use is reading a printout of the
|
||
program's source code like an instruction book for the purpose of learning
|
||
how to be a better programmer.
|
||
|
||
\medskip
|
||
|
||
Thus, the GPL protects users fair and unregulated use rights precisely by
|
||
not attempting to cover them. Furthermore, the GPL ensures the freedom
|
||
to run specifically by stating the following:
|
||
\begin{quote}
|
||
The act of running the Program is not restricted
|
||
\end{quote}
|
||
Thus, users are explicitly given the freedom to run by \S 0.
|
||
|
||
\medskip
|
||
|
||
The bulk of \S 0 not yet discussed gives definitions for other terms used
|
||
throughout. The only one worth discussing in detail is ``work based on
|
||
the Program''. The reason this definition is particularly interesting is
|
||
not for the definition itself, which is rather straightforward, but the
|
||
because it clears up a common misconception about the GPL\@.
|
||
|
||
The GPL is often mistakenly criticized because it fails to give a
|
||
definition of ``derivative work''. In fact, it would be incorrect and
|
||
problematic if the GPL attempted to define this. A copyright license, in
|
||
fact, has no control over what may or may not be a derivative work. This
|
||
matter is left up to copyright law, 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
|
||
software work under copyright law. However, no copyright license --- not
|
||
even the GNU GPL -- can be blamed for this. Legislators and court
|
||
opinions must give us guidance to decide the border cases.
|
||
|
||
\section{GPL \S 1: Verbatim Copying}
|
||
\label{GPLs1}
|
||
|
||
GPL \S 1 covers the matter of redistributing the source code of a program
|
||
exactly as it was received. This section is quite straightforward.
|
||
However, there are a few details worth noting here.
|
||
|
||
The phrase ``in any medium'' is important. This, for example, gives the
|
||
freedom to publish a book that is the printed copy of the program's source
|
||
code. It also allows for changes in the medium of distribution. Some
|
||
vendors may ship Free Software on a CD, but others may place it right on
|
||
the hard drive of a pre-installed computer. Any such redistribution media
|
||
is allowed.
|
||
|
||
Preservation of copyright notice and license notifications are mentioned
|
||
specifically in \S 1. These are in some ways the most important part of
|
||
the redistribution, which is why they are mentioned by name. The GPL
|
||
always strives to make it abundantly clear to anyone who receives the
|
||
software what its license is. The goal is to make sure users know their
|
||
rights and freedoms under GPL and to leave no reason that someone would be
|
||
surprised that the software she got was licensed under GPL\@. Thus
|
||
throughout the GPL, there are specific reference to the importance of
|
||
notifying others down the distribution chain that they have rights under
|
||
GPL.
|
||
|
||
Also mentioned by name is the warranty disclaimer. Most people today do
|
||
not believe that software comes with any warranty. Notwithstanding the
|
||
proposed state-level UCITA bills (which have never obtained widespread
|
||
adoption), there are little or no implied warranties with software.
|
||
However, just to be on the safe side, GPL clearly disclaims them, and the
|
||
GPL requires redistributors to keep the disclaimer very visible. (See
|
||
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
|
||
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
|
||
provide the warranty protection that the GPL disclaims as an additional
|
||
service for a fee. (See Section~\ref{Business Models} for more discussion
|
||
on making a profit from Free Software redistribution.)
|
||
|
||
\section{GPL \S 2: Share and Share Alike}
|
||
|
||
For many, this is where the ``magic'' happens that defends software
|
||
freedom along the distribution chain. \S 2 is the only place in the GPL
|
||
that governs the modification controls of copyright law. If someone
|
||
modifies a GPL'ed program, she is bound in the making those changes by \S
|
||
2. The goal here is to ensure that the body of GPL'ed software, as it
|
||
continues and develops, remains Free as in freedom.
|
||
|
||
To achieve that goal, \S 2 first sets forth that the rights of
|
||
redistribution of modified versions are the same as those for verbatim
|
||
copying, as presented in \S 1. Therefore, the details of charging,
|
||
keeping copyright notices intact, and other \S 1 provisions are in tact
|
||
here as well. However, there are three additional requirements.
|
||
|
||
The first (\S 2(a)) requires that modified files carry ``prominent
|
||
notices'' explaining what changes were made and the date of such changes.
|
||
The goal here is not to put forward some specific way of marking changes,
|
||
or controlling the process of how changes get made. Primarily, \S 2(a)
|
||
seeks to ensure that those receiving modified versions know what path it
|
||
took to them. 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.
|
||
|
||
\medskip
|
||
|
||
The second requirement (\S 2(b)) contains the four short lines that embody
|
||
the legal details of ``share and share alike''. These 46 words are
|
||
considered by some to be the most worthy of careful scrutiny. It is worth
|
||
the effort to carefully understand what each clause is saying, because \S
|
||
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
|
||
derivative works that ``you distribute or publish''. Despite years of
|
||
education efforts by FSF on this matter, many still believe that modifiers
|
||
of GPL'ed software are required by the license to publish or otherwise
|
||
share their changes. On the contrary, \S 2(b) {\bf does not apply if} the
|
||
changes are never distributed. Indeed, the freedom to make private,
|
||
personal, unshared changes to software for personal use only should be
|
||
protected and defended\footnote{FSF does maintain that there is an {\bf
|
||
ethical} obligation to redistribute changes that are generally useful,
|
||
and often encourages companies and individuals to do so. However, there
|
||
is a clear distinction between what one {\bf ought} to do and what one
|
||
{\bf must} do.}.
|
||
|
||
Next, we again encounter the same matter that appears in \S 0, in the
|
||
following text:
|
||
\begin{quote}
|
||
... that in whole or part contains or is derived from the Program or any
|
||
part thereof,
|
||
\end{quote}
|
||
Again, the GPL relies here on what the copyright law says is a derivative
|
||
work. If, under copyright law, the modified version ``contains or is
|
||
derived from'' the GPL'ed software, then the requirements of \S 2(b)
|
||
apply. The GPL invokes its control as a copyright license over the
|
||
modification of the work in combination with its control over distribution
|
||
of the work.
|
||
|
||
The final clause of \S 2(b) describes what the licensee must do if she is
|
||
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.
|
||
|
||
The work ``as a whole'' is what is to be licensed. This is an important
|
||
point that \S 2 spends an entire paragraph explaining; thus this phrase is
|
||
worthy of a lengthy discussion here. As a programmer modifies a software
|
||
program, she generates new copyrighted material --- fixing expressions of
|
||
ideas into the tangible medium of electronic file storage. That
|
||
programmer is indeed the copyright holder of those new changes. However,
|
||
those changes are part and parcel to the original worked distributed to
|
||
the programmer under GPL\@. Thus, the license of the original work
|
||
affects the license of the new whole derivative work.
|
||
|
||
% {\cal I}
|
||
\newcommand{\gplusi}{$\mathcal{G\!\!+\!\!I}$}
|
||
\newcommand{\worki}{$\mathcal{I}$}
|
||
\newcommand{\workg}{$\mathcal{G}$}
|
||
|
||
It is certainly possible to take an existing independent work (called
|
||
\worki{}) and combine it with a GPL'ed program (called \workg{}). The
|
||
license of \worki{}, when it is distributed as a separate and independent
|
||
work, remains the prerogative of the copyright holder of \worki{}.
|
||
However, when \worki{} is combined with \workg{}, it produces a new work
|
||
that is the combination of the two (called \gplusi{}). The copyright of
|
||
this derivative work, \gplusi{}, is jointly held by the original copyright
|
||
holder of each of the two works.
|
||
|
||
In this case, \S 2 lays out the terms by which \gplusi{} may be
|
||
distributed and copied. By default, under copyright law, the copyright
|
||
holder of \worki{} would not have been permitted to distribute \gplusi{};
|
||
copyright law forbids it without the expressed permission of the copyright
|
||
holder of \workg{}. (Imagine, for a moment, if \workg{} were a Microsoft
|
||
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{}
|
||
who may want to create and distribute \gplusi{}. This pre-granted
|
||
permission to create and distribute derivative works, provided the terms
|
||
of GPL are upheld, goes far above and beyond the permissions that one
|
||
would get with a typical work not covered by a copyleft license. Thus, to
|
||
say that this restriction is any way unreasonable is simply ludicrous.
|
||
|
||
\medskip
|
||
|
||
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'ed software, but \S 1 says that they can. The ``at no charge''
|
||
means not that redistributors cannot charge for 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'ed 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
|
||
misconception mentioned earlier --- that all modified versions must made
|
||
available to the public at large. However, the text here does not say
|
||
that. Instead, it says that the licensing under terms of the GPL must
|
||
extend to anyone who might, through the distribution chain, receive a copy
|
||
of the software. Distribution to all third parties is not mandated here,
|
||
but \S 2(b) does require redistributors to license the derivative works in
|
||
a way that is extends to all third parties who may ultimately receive a
|
||
copy of the software.
|
||
|
||
In summary, \S 2(b) says what terms under which the third parties must
|
||
receive this no-charge license. Namely, they receive it ``under the terms
|
||
of this License'', the GPL. When an entity \emph{chooses} to redistribute
|
||
a derivative work of GPL'ed software, the license of that whole derivative
|
||
work must be GPL and only GPL\@. In this manner, \S 2(b) dovetails nicely
|
||
with \S 6 (as discussed in Section~\ref{GPLs6} of this tutorial).
|
||
|
||
\medskip
|
||
|
||
The final paragraph of \S 2 is worth special mention. It is possible and
|
||
quite common to aggregate various software programs together on one
|
||
distribution medium. Computer manufacturers do this when they ship a
|
||
pre-installed hard drive, and GNU/Linux distribution vendors do this to
|
||
give a one-stop CD or URL for a complete operating system with necessary
|
||
applications. The GPL very clearly permits such ``mere aggregation'' with
|
||
programs under any license. Despite what you hear from its critics, the
|
||
GPL is nothing like a virus, not only because the GPL is good for you and
|
||
a virus is bad for you, but also because simple contact with a GPL'ed
|
||
code-base does not impact the license of other programs. Actual effort
|
||
must be expended by a programmer to cause a work to fall under the terms
|
||
of the GPL. Redistributors are always welcome to simply ship GPL'ed
|
||
software alongside proprietary software or other unrelated Free Software,
|
||
as long as the terms of GPL are adhered to for those packages that are
|
||
truly GPL'ed.
|
||
|
||
\section{GPL \S 3: Producing Binaries}
|
||
|
||
% 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
|
||
obscured. Ultimately, the full text of a novel, even one written by
|
||
William Faulkner, must presented to the reader as words in some
|
||
human-readable language so that they can enjoy the work. A film, even one
|
||
directed by David Lynch, must be perceptible by human eyes and ears to
|
||
have any value.
|
||
|
||
Software is not so. While the source code, the human-readable
|
||
representation of software is of keen interest to programmers, users and
|
||
programmers alike cannot make the proper use of software in that
|
||
human-readable form. Binary code --- the ones and zeros that the computer
|
||
can understand --- must be predicable and attainable for the software to
|
||
be fully useful. Without the binaries, be they in object or executable
|
||
form, the software serves only the didactic purposes of computer science.
|
||
|
||
Under copyright law, binary representations of the software are simply
|
||
derivative works of the source code. Applying a systematic process (i.e.,
|
||
``compilation'') to a work of source code yields binary code. The binary
|
||
code is now a new work of expression fixed in the tangible medium of
|
||
electronic file storage.
|
||
|
||
Therefore, for GPL'ed software to be useful, the GPL, since it governs the
|
||
rules for creation of derivative works, must grant permission for the
|
||
generation of binaries. Furthermore, notwithstanding the relative
|
||
popularity of source-based GNU/Linux distributions like Gentoo, users find
|
||
it extremely convenient to receive distribution of binary software. Such
|
||
distribution is the redistribution of derivative works of the software's
|
||
source code. \S 3 addresses the matter of creation and distribution of
|
||
binary versions.
|
||
|
||
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 ensured to be passed
|
||
along the distribution chain.
|
||
|
||
\S 3 permits distribution of binaries, and then offers three options for
|
||
distribution of source code along with binaries. The most common and the
|
||
least complicated is the option given under \S 3(a).
|
||
|
||
\S 3(a) offers the option to directly accompany the source code alongside
|
||
the distribution of the binaries. This is by far the most convenient
|
||
option for most distributors, because it means that the source-code
|
||
provision obligations are fully completed at the time of binary
|
||
distribution (more on that later).
|
||
|
||
Under \S 3(a), the source code provided must be the ``corresponding source
|
||
code''. Here ``corresponding'' primarily means that the source code
|
||
provided must be that code used to produce the binaries being distributed.
|
||
That source code must also be ``complete''. A later paragraph of \S 3
|
||
explains in detail what is meant by ``complete''. In essence, it is all
|
||
the material that a programmer of average skill would need to actually use
|
||
the source code to produce the binaries she has received. Complete source
|
||
is required so that, if the licensee chooses, she should be able to
|
||
exercise her freedoms to modify and redistribute changes. Without the
|
||
complete source, it would not be possible to make changes that were
|
||
actually directly derived from the version received.
|
||
|
||
Furthermore, \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'ed 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), and then giving source code that does correspond, but not
|
||
giving the ``incantations'' and build plans they used to make that source
|
||
compile into the specialized binaries. Therefore, \S 3 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.
|
||
|
||
FSF (as authors of GPL) realizes that software distribution comes in many
|
||
forms. Embedded manufacturers, for example, have the freedom to put
|
||
GPL'ed software into their PDAs with very tight memory and space
|
||
constraints. In such cases, putting the source right alongside the
|
||
binaries on the machine itself might not be an option. While it is
|
||
recommended that this be the default way that people comply with GPL, the
|
||
GPL does provide options when such distribution is infeasible.
|
||
|
||
\S 3, therefore, allows source code to be provided on any physical
|
||
``medium customarily used for software interchange''. By design, this
|
||
phrase covers a broad spectrum. At best, FSF can viably release a new GPL
|
||
every ten years or so. Thus, phrases like this must be adaptive to
|
||
changes in the technology. When GPL version 2 was first published in June
|
||
1991, distribution on magnetic tape was still common, and CD was
|
||
relatively new. Today, CD is the default, and for larger systems DVD-R is
|
||
gaining adoption. This language must adapt with changing technology.
|
||
|
||
Meanwhile, the binding created by the word ``customarily'' is key. Many
|
||
incorrectly believe that distributing binary on CD and source on the
|
||
Internet is acceptable. In the corporate world, it is indeed customary to
|
||
simply download CDs worth of data over a T1 or email large file
|
||
attachments. However, even today in the USA, many computer users with
|
||
CD-ROM drives are not connected to the Internet, and most people connected
|
||
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
|
||
in Africa, computers are becoming more common, but Internet connectivity
|
||
is still available only at a few centralized locations. Thus, the
|
||
``customs'' here have must have a worldwide scope in context, and simply
|
||
providing source on the Internet --- while it is a kind, friendly and
|
||
useful thing to do --- is not usually sufficient.
|
||
|
||
Note, however, a major exception to this rule, given by the last paragraph
|
||
of \S 3. \emph{If} distribution of the binary files is made only on the
|
||
Internet (i.e., ``from a designated place''), \emph{then} simply providing
|
||
the source code right alongside the binaries in the same place is
|
||
sufficient to comply with \S 3.
|
||
|
||
\medskip
|
||
|
||
As is shown above, Under \S 3(a), embedded manufacturers can put the
|
||
binaries on the device and ship the source code along on a CD\@. However,
|
||
sometimes this turns out to be too costly. Including a CD with every
|
||
device could prove too costly, and may practically (although not legally)
|
||
prohibit using GPL'ed software. For this situation and others like it, \S
|
||
3(b) is available.
|
||
|
||
\S 3(b) allows a distributor of binaries to instead provide a written
|
||
offer for source code alongside those binaries. This is useful in two
|
||
specific ways. First, it may turn out that most users do not request the
|
||
source, and thus the cost of producing the CDs is saved --- a financial
|
||
and environmental windfall. In addition, along with a \S 3(b) compliant
|
||
offer for source, a binary distributor might choose to \emph{also} give a
|
||
URL for source code. Many who would otherwise need a CD with source might
|
||
turn out to have those coveted high bandwidth connections, and are able to
|
||
download the source instead --- again yielding environmental and financial
|
||
windfalls.
|
||
|
||
However, note that regardless of how many users prefer to get the source
|
||
online, that \S 3(b) does place lasting long-term obligations on the
|
||
binary distributor. The binary distributor must be prepared for three
|
||
years to honor that offer for source, 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 for
|
||
three years must be trained how to route source requests, and source CD
|
||
images for every release version for the last three years must be kept on
|
||
hand to burn such CDs quickly. The requests might not even come from
|
||
actual customers; the offer for source must be valid for ``any third
|
||
party''.
|
||
|
||
That phrase is another place where some get confused --- thinking again
|
||
that full public distribution of source is required. The offer for source
|
||
must be valid for ``any third party'' because of the freedoms of
|
||
redistribution granted by \S\S 1--2. A company may ship a binary image
|
||
and an offer for source to only one customer. However, under GPL, that
|
||
customer has the right to redistribute that software to the world if she
|
||
likes. When she does, that customer has an obligation to make sure that
|
||
those who receive the software from her can exercise their freedoms under
|
||
GPL --- including the freedom to modify, rebuild, and redistribute the
|
||
source code.
|
||
|
||
\S 3(c) is created to save her some trouble, because by itself \S 3(b)
|
||
would unfairly favor large companies. compromise. \S 3(b) allows the
|
||
separation of the binary software from the key tool that people can use
|
||
to exercise their freedom. The GPL permits this separation because it is
|
||
good for redistributors, and those users who turn out not to need the
|
||
source. However, to ensure equal rights for all software users, anyone
|
||
along the distribution chain must have the right to get the source and
|
||
exercise those freedoms that require it.
|
||
|
||
Meanwhile, \S 3(b)'s compromise primarily benefits companies who
|
||
distribute binary software commercially. Without \S 3(c), that benefit
|
||
would be at the detriment of the companies' customers; the burden of
|
||
source code provision would be unfairly shifted to the companies'
|
||
customers. A customer, who had received binaries with a \S 3(b)-compliant
|
||
offer, would be required under GPL (sans \S 3(c)) to acquire the source,
|
||
merely to give a copy of the software to a friend who needed it. \S 3(c)
|
||
reshifts this burden to entity who benefits from \S 3(b).
|
||
|
||
\S 3(c) allows those who undertake \emph{non-commercial} distribution to
|
||
simply pass along a \S 3(b)-compliant source code offer. The customer who
|
||
wished to give a copy to her friend can now do so without provisioning the
|
||
source, as long as she gives that offer to her friend. By contrast, if
|
||
she wanted to go into business for herself selling CDs of that software,
|
||
she would have to acquire the source and either comply via \S 3(a), or
|
||
write her own \S 3(b)-compliant source offer.
|
||
|
||
This process is precisely the reason why a \S 3(b) source offer must be
|
||
valid for all third parties. At the time the offer is made, there is no
|
||
way of knowing who might end up non-commercially 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
|
||
many other additional necessary complications under \S\S 3(b--c), it is
|
||
only rarely a better option than complying via \S 3(a).
|
||
|
||
|
||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
\chapter{Defending Freedom On Many Fronts}
|
||
|
||
The last chapter presented the core freedom-defending provisions of GPL\@,
|
||
which are in \S\S 0--3. \S\S 4--7 of the GPL are designed to ensure that
|
||
\S\S 0--3 are not infringed, are enforceable, are kept to the confines of
|
||
copyright law and are not trumped by other copyright agreements or
|
||
components of other entirely separate legal systems. In short, while \S\S
|
||
0--3 are the parts of the license that defend the freedoms of users and
|
||
programmers, \S\S 4--7 are the parts of the license that keep the playing
|
||
field clear so that \S\S 0--3 can do their jobs.
|
||
|
||
\section{GPL \S 4: Termination on Violation}
|
||
\label{GPLs4}
|
||
|
||
\S 4 is GPL's termination clause. Upon first examination, it seems
|
||
strange for a license that has the goal of defending users and programmers
|
||
freedoms for perpetuity in an irrevocable way would have such a clause.
|
||
However, upon further examination, the difference between irrevocability
|
||
and this termination clause becomes clear.
|
||
|
||
The GPL is irrevocable in the sense that once a copyright holder grants
|
||
rights for someone to copy, modify and redistribute the software under
|
||
terms of the GPL, they cannot later revoke that grant. Since the GPL has
|
||
no provision allowing the copyright holder to take such a prerogative, the
|
||
license is granted as long as the copyright remains in effect\footnote{In
|
||
the USA, due to unfortunate legislation, the length of copyright is
|
||
nearly perpetual, even though the Constitution forbids perpetual
|
||
copyright.}. The copyright holder has the right to relicense the same
|
||
work under different licenses (see Section~\ref{Proprietary Relicensing}
|
||
of this tutorial), or to stop distributing the GPL'ed version (assuming \S
|
||
3(b) was never used), but the she may not revoke the rights under GPL
|
||
already granted.
|
||
|
||
In fact, when an entity looses their right to copy, modify and distribute
|
||
GPL'ed software, it is because of their \emph{own actions}, not that of
|
||
the copyright holder. The copyright holder does not decided when \S 4
|
||
termination occurs (if ever), the actions of the licensee does.
|
||
|
||
Under copyright law, the GPL has granted various rights and freedoms to
|
||
the licensee to perform specific types of copying, modification, and
|
||
redistribution. By default, all other types of copying, modification, and
|
||
redistribution are prohibited. \S 4 says that if you undertake any of
|
||
those other types (e.g., redistributing binary-only in violation of \S 3),
|
||
then all rights under the license --- even those otherwise permitted for
|
||
those who have not violated --- terminate automatically.
|
||
|
||
\S 4 gives GPL teeth. If licensees fail to adhere to the license, then
|
||
they are stuck. They must to completely cease and desist from all
|
||
copying, modification and distribution of that GPL'ed software.
|
||
|
||
At that point, violating licensees must gain the forgiveness of the
|
||
copyright holder to have their rights restored. Alternatively, they could
|
||
negotiate another agreement, separate from GPL, with the copyright
|
||
holder. Both are common practice.
|
||
|
||
At FSF, it is part of the mission to spread software freedom. When FSF
|
||
enforces GPL, the goal is to bring the violator back into compliance as
|
||
quickly as possible, and redress the damage caused by the violation.
|
||
That is FSF's steadfast position in a violation negotiation --- comply
|
||
with the license and respect freedom.
|
||
|
||
However, other entities who do not share the full ethos of software
|
||
freedom as institutionalized by FSF pursue GPL violations differently. MySQL
|
||
AB, a company that produces the GPL'ed MySQL database, upon discovering
|
||
GPL violations typically negotiates a proprietary software license
|
||
separately for a fee. While this practice is not one that FSF would ever
|
||
consider undertaking or even endorsing, it is a legal way for copyright
|
||
holders to proceed.
|
||
|
||
\section{GPL \S 5: Acceptance, Copyright Style}
|
||
\label{GPLs5}
|
||
|
||
\S 5 brings us to perhaps the most fundamental misconception and common
|
||
confusion about GPL\@. Because of the prevalence of proprietary software,
|
||
most users, programmers, and lawyers alike tend to be more familiar with
|
||
EULAs. EULAs are believed by their authors to be contracts, requiring
|
||
formal agreement between the licensee and the software distributor to be
|
||
valid. This has led to mechanisms like ``shrink-wrap'' and ``click-wrap''
|
||
as mechanisms to perform acceptance ceremonies with EULAs.
|
||
|
||
The GPL does not need contract law to ``transfer rights''. No rights are
|
||
transfered between parties. By contrast, the GPL is permission slip to
|
||
undertake activities that would otherwise been prohibited by copyright law.
|
||
As such, it needs no acceptance ceremony; the licensee is not even
|
||
required to accept the license.
|
||
|
||
However, without the GPL, the activities of copying, modifying and
|
||
distributing the software would have otherwise been prohibited. So, the
|
||
GPL says that you only accepted the license by undertaking activities that
|
||
you would have otherwise been prohibited without your license under GPL\@.
|
||
This is a certainly subtle point, and requires a mindset quite different
|
||
from the contractual approach taken by EULA authors.
|
||
|
||
An interesting side benefit to \S 5 is that the bulk of users of Free
|
||
Software are not required to accept the license. Undertaking fair and
|
||
unregulated use of the work, for example, does not bind you to the GPL,
|
||
since you are not engaging in activity that is otherwise controlled by
|
||
copyright law. Only when you engage in those activities that might have an
|
||
impact on the freedom of others does license acceptance occur and the
|
||
terms begin to bind you to fair and equitable sharing of the software. In
|
||
other words, the GPL only kicks in when it needs to for the sake of
|
||
freedom.
|
||
|
||
\section{GPL \S 6: GPL, My One and Only}
|
||
\label{GPLs6}
|
||
|
||
A point that was glossed over in Section~\ref{GPLs4}'s discussion of \S 4
|
||
was the irrevocable nature of the GPL\@. The GPL is indeed irrevocable,
|
||
and it is made so formally \S 6.
|
||
|
||
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
|
||
new licensee. Under \S 6, the act of distributing automatically grants a
|
||
license from the original licensor to the next recipient. This creates a
|
||
chain of grants that ensure that everyone in the distribution has rights
|
||
under the GPL\@. In a mathematical sense, this bounds the bottom ---
|
||
making sure that future licensees get no fewer rights than than the
|
||
licensee before.
|
||
|
||
The second sentence of \S 6 does the opposite; it bounds from the top. It
|
||
prohibits any licensor along the distribution chain from placing
|
||
additional restrictions on the user. In other words, no additional
|
||
requirements may trump the rights and freedoms given by 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
|
||
other. This is particularly important for non-commercial users who have
|
||
passed along a source offer under \S 3(c), as they cannot be assured that
|
||
the issuer of the offer will honor their \S 3 obligations.
|
||
|
||
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.
|
||
|
||
\section{GPL \S 7: ``Give Software Liberty of Give It Death!''}
|
||
\label{GPLs7}
|
||
|
||
In essence, \S 7 is a verbosely worded way of saying for non-copyright
|
||
systems what \S 6 says for copyright. If there exists any reason that a
|
||
distributor knows of that would prohibit later licensees from exercising
|
||
their full rights under GPL, then distribution is prohibited.
|
||
|
||
Originally, this was designed as the title of this section suggests --- as
|
||
a last ditch effort to make sure that freedom was upheld. However, in
|
||
modern times, it has come to give much more. Now that the body of GPL'ed
|
||
software is so large, patent holders who would want to be distributors of
|
||
GPL'ed software have a tough choice. They must choose between avoiding
|
||
distribution of GPL'ed software that exercises the teachings of their
|
||
patents, or grant a royalty-free, irrevocable, non-exclusive license to
|
||
those patents. Many companies, including IBM, the largest patent holder
|
||
in the world, have chosen the latter.
|
||
|
||
Thus, \S 7 is rarely gives software death by stopping its distribution.
|
||
Instead, it is inspiring patent holders to share their patents in the same
|
||
freedom-defending way that they share their copyrighted works.
|
||
|
||
\section{GPL \S 8: Excluding Unfreedonia}
|
||
\label{GPLs8}
|
||
|
||
\S 8 is rarely used by copyright holders. Its intention is that, if
|
||
particular country, say Unfreedonia, grant particular patents or allow
|
||
copyrighted interfaces (no country to our knowledge even permits those
|
||
yet), that the GPL'ed software can continue in free and unabated
|
||
distribution in the countries where such controls do not exist.
|
||
|
||
It is a partial ``out'' from \S 7. Without \S 8, if a copyright holder
|
||
knew of a patent in a particular country licensed in a GPL-incompatible
|
||
way, then she could not distribute under GPL, because the work would
|
||
legitimately end up in the hands of citizens of Unfreedonia.
|
||
|
||
It is an inevitable but sad reality that some countries are freer than
|
||
others. \S 8 exists to permit distribution on those countries that are
|
||
free without otherwise negating parts of the license.
|
||
|
||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
\chapter{Odds, Ends, and Absolutely No Warranty}
|
||
|
||
\S 0--7 constitute the freedom-defending terms of the GPL. The balance
|
||
of the GPL handles administrivia and issues concerning warranties and
|
||
liability.
|
||
|
||
\section{GPL \S 9: FSF as stewards of GPL}
|
||
\label{GPLs9}
|
||
|
||
FSF reserves the exclusive right to publish future versions of the GPL\@;
|
||
\S 9 expresses this. While the stewardship of the copyrights on the body
|
||
of GPL'ed software around the world is shared among thousands of
|
||
individuals and organizations, the license itself needs a single steward.
|
||
Forking of the code is often regrettable but basically innocuous. Forking
|
||
of licensing is disastrous.
|
||
|
||
FSF has only released two versions of GPL --- in 1989 and 1991. GPL,
|
||
version 3, is under current internal drafting. FSF's plan is to have a
|
||
long and engaging comment period. The goal of GPL is defend freedom, and
|
||
a gigantic community depends on that freedom now. FSF hopes to take all
|
||
stakeholders' opinions under advisement.
|
||
|
||
\section{GPL \S 10: Relicensing Permitted}
|
||
\label{GPLs10}
|
||
|
||
\S 10 reminds the licensee of what is already implied by the nature of
|
||
copyright law. Namely, the copyright holder of a particular software
|
||
program has the prerogative to grant alternative agreements under separate
|
||
copyright licenses.
|
||
|
||
\section{GPL \S 11: No Warranty}
|
||
\label{GPLs11}
|
||
|
||
All warranty disclaimer language tends to be shouted in all capital
|
||
letters. Apparently, there was once a case where the disclaimer language
|
||
of an agreement was negated because it was not ``conspicuous'' to one of
|
||
the parties. Therefore, to make such language ``conspicuous'', people
|
||
started placing it in bold or capitalizing the entire text. It now seems
|
||
to be voodoo tradition of warranty disclaimer writing.
|
||
|
||
Finally, one important point to remember when reading \S 11 is that \S 1
|
||
permits the sale of warranty as an additional service, which \S 11
|
||
affirms.
|
||
|
||
\section{GPL, \S 12: Limitation of Liability}
|
||
\label{GPLs12}
|
||
|
||
There are many types of warranties, and in some jurisdictions some of them
|
||
cannot be disclaimed. Therefore, usually agreements will have both a
|
||
warranty disclaimer and a limitation of liability, as we have in \S 12.
|
||
\S 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
|
||
warranties that cannot legally be disclaimed in a particular jurisdiction.
|
||
|
||
So ends the terms and conditions of the GNU General Public License.
|
||
|
||
|
||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
\chapter{Integrating the GPL into Business Practices}
|
||
|
||
Since GPL'ed software is now extremely prevalent through the industry, it
|
||
is useful to has some basic knowledge about using GPL'ed software in
|
||
business and how to build business models around GPL'ed software.
|
||
|
||
\section{Using GPL'ed Software In-House}
|
||
|
||
A discussed in Sections~\ref{GPLs0} and~\ref{GPLs5} of this tutorial, the
|
||
GPL only governs the activities of copying, modifying and distributing the
|
||
software 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.
|
||
|
||
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
|
||
encouraged! If the company simply deploy unmodified (or even modified)
|
||
Free Software throughout the organization for its employees to use, the
|
||
obligations under the license are very minimal. Using Free Software has a
|
||
substantially lower cost of ownership --- both in licensing fees and in
|
||
licensing checking and handling -- than the proprietary software
|
||
equivalents.
|
||
|
||
\section{Business Models}
|
||
\label{Business Models}
|
||
|
||
Using Free Software in house is certainly helpful, but there is also a
|
||
thriving market for Free Software-oriented business models. 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'ed
|
||
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.
|
||
|
||
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
|
||
profit. Even though Red Hat's system is fully downloadable on their
|
||
website, people still go to local computer stores and buy copies of their
|
||
box set, which is simply a printed version of the manual (available under
|
||
a free license as well) and the Free Software system it documents.
|
||
|
||
\medskip
|
||
|
||
However, custom support, service, and software improvement contracts are
|
||
the most widely used models for GPL'ed software. The GPL is central to
|
||
their success, because it ensure 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
|
||
porting GCC to new embedded chipset target platforms. Eventually, Cygnus
|
||
was so successful that it was purchased by Red Hat where it remains a
|
||
profitable division.
|
||
|
||
However, there are very small companies like CodeSourcery, as well as
|
||
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
|
||
work are happy to pay for improvements, and for ports to new target
|
||
platforms, and nearly all the changes fold back into the standard
|
||
versions, and those forks that exist remain freely available.
|
||
|
||
\medskip
|
||
|
||
\label{Proprietary Relicensing}
|
||
|
||
A final common business model that is perhaps the most controversial is
|
||
proprietary relicensing of a GPL'ed code base. This is only an option for
|
||
software in which a particular entity is the sole copyright holder. As
|
||
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
|
||
financial advantage with regard to a GPL'ed code base. The standard
|
||
version is available from the company under the terms of the GPL\@.
|
||
However, parties can purchase separate proprietary software licensing for
|
||
a fee.
|
||
|
||
This business model is problematic because it means that the GPL'ed code
|
||
base must be developed in a somewhat monolithic way, because volunteer
|
||
Free Software developers may be reluctant to assign their copyrights to
|
||
the company because it will not promise to always and forever license the
|
||
software as Free Software. Indeed, the company will surely use such code
|
||
contributions in proprietary versions licensed for fees.
|
||
|
||
\section{Ongoing Compliance}
|
||
|
||
GPL compliance is in fact a very simple matter -- much simpler than
|
||
typical proprietary software agreements and EULAs. Usually, the most
|
||
difficult hurdle is changing from a proprietary software mindset to one
|
||
that seeks to foster a community of sharing and mutual support. Certainly
|
||
complying with the GPL from a users' perspective gives substantially fewer
|
||
headaches than proprietary license compliance.
|
||
|
||
For those who go into the business of distributing or distributing
|
||
modified versions of GPL'ed software, the burden is a bit higher, but not
|
||
by much. The glib answer that is that it is always easy to comply with
|
||
the GPL by releasing the whole product as Free Software. However,
|
||
admittedly to the dismay of FSF, many modern and complex software systems
|
||
are built using both proprietary and GPL'ed components that are not
|
||
legally derivative works of each other. Usually, in product development
|
||
with Free Software tools, sometimes it is easier simply to improve
|
||
existing GPL'ed 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. It is a reasonable trade-off, and it
|
||
is a way to help build a better world while also making a profit.
|
||
|
||
Note that FSF does provide services to assist companies who need
|
||
assistance in complying with the GPL. You can contact FSF's GPL
|
||
Compliance Labs at $<$compliance@fsf.org$>$.
|
||
|
||
\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}
|
||
|
||
|
||
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.
|
||
Our General Public Licenses are designed to make sure that you have the
|
||
freedom to distribute copies of free software (and charge for this service
|
||
if you wish), that you receive source code or can get it if you want it,
|
||
that you can change the software or use pieces of it in new free programs;
|
||
and that you know you can do these things.
|
||
|
||
To protect your rights, we need to make restrictions that forbid anyone to
|
||
deny you these rights or to ask you to surrender the rights. These
|
||
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
|
||
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
|
||
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
|
||
everyone understands that there is no warranty for this free software. If
|
||
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.
|
||
|
||
Finally, any free program is threatened constantly by software patents.
|
||
We wish to avoid the danger that redistributors of a free program will
|
||
individually obtain patent licenses, in effect making the program
|
||
proprietary. To prevent this, we have made it clear that any patent must
|
||
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}
|
||
{\Large \sc Terms and Conditions For Copying, Distribution and
|
||
Modification}
|
||
\end{center}
|
||
|
||
|
||
%\renewcommand{\theenumi}{\alpha{enumi}}
|
||
\begin{enumerate}
|
||
|
||
\addtocounter{enumi}{-1}
|
||
|
||
\item
|
||
|
||
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
|
||
terms of this General Public License. The ``Program'', below, refers to
|
||
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
|
||
modifications and/or translated into another language. (Hereinafter,
|
||
translation is included without limitation in the term ``modification''.)
|
||
Each licensee is addressed as ``you''.
|
||
|
||
Activities other than copying, distribution and modification are not
|
||
covered by this License; they are outside its scope. The act of
|
||
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}
|
||
|
||
\item
|
||
|
||
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
|
||
License. (Exception: if the Program itself is interactive but
|
||
does not normally print such an announcement, your work based on
|
||
the Program is not required to print an announcement.)
|
||
|
||
\end{enumerate}
|
||
|
||
|
||
These requirements apply to the modified work as a whole. If
|
||
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
|
||
sections when you distribute them as separate works. But when you
|
||
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
|
||
to distribute corresponding source code. (This alternative is
|
||
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
|
||
making modifications to it. For an executable work, complete source
|
||
code means all the source code for all modules it contains, plus any
|
||
associated interface definition files, plus the scripts used to
|
||
control compilation and installation of the executable. However, as a
|
||
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
|
||
except as expressly provided under this License. Any attempt
|
||
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
|
||
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
|
||
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
|
||
these terms and conditions. You may not impose any further
|
||
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
|
||
excuse you from the conditions of this License. If you cannot
|
||
distribute so as to satisfy simultaneously your obligations under this
|
||
License and any other pertinent obligations, then as a consequence you
|
||
may not distribute the Program at all. For example, if a patent
|
||
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
|
||
integrity of the free software distribution system, which is
|
||
implemented by public license practices. Many people have made
|
||
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
|
||
countries not thus excluded. In such case, this License incorporates
|
||
the limitation as if written in the body of this License.
|
||
|
||
\item
|
||
The Free Software Foundation may publish revised and/or new versions
|
||
of the General Public License from time to time. Such new versions will
|
||
be similar in spirit to the present version, but may differ in detail to
|
||
address new problems or concerns.
|
||
|
||
Each version is given a distinguishing version number. If the Program
|
||
specifies a version number of this License which applies to it and ``any
|
||
later version'', you have the option of following the terms and conditions
|
||
either of that version or of any later version published by the Free
|
||
Software Foundation. If the Program does not specify a version number of
|
||
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
|
||
to ask for permission. For software which is copyrighted by the Free
|
||
Software Foundation, write to the Free Software Foundation; we 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 software and
|
||
of promoting the sharing and reuse of software generally.
|
||
|
||
\begin{center}
|
||
{\Large\sc
|
||
No Warranty
|
||
}
|
||
\end{center}
|
||
|
||
\item
|
||
{\sc Because the program is licensed free of charge, there is no warranty
|
||
for the program, to the extent permitted by applicable law. Except when
|
||
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
|
||
merchantability and fitness for a particular purpose. The entire risk as
|
||
to the quality and performance of the program is with you. Should the
|
||
program prove defective, you assume the cost of all necessary servicing,
|
||
repair or correction.}
|
||
|
||
\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.}
|
||
|
||
\end{enumerate}
|
||
|
||
|
||
\begin{center}
|
||
{\Large\sc End of Terms and Conditions}
|
||
\end{center}
|
||
|
||
|
||
\pagebreak[2]
|
||
|
||
\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
|
||
free software which everyone can redistribute and change under these
|
||
terms.
|
||
|
||
To do so, attach the following notices to the program. It is 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.
|
||
|
||
\begin{quote}
|
||
one line to give the program's name and a brief idea of what it does. \\
|
||
Copyright (C) yyyy name of author \\
|
||
|
||
This program is free software; you can redistribute it and/or modify
|
||
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
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
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'. \\
|
||
This is free software, and you are welcome to redistribute it
|
||
under certain conditions; type `show c' for details.
|
||
\end{quote}
|
||
|
||
|
||
The hypothetical commands {\tt show w} and {\tt show c} should show the
|
||
appropriate parts of the General Public License. Of course, the commands
|
||
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
|
||
necessary. Here is a sample; alter the names:
|
||
|
||
\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
|
||
into proprietary programs. If your program is a subroutine library, you
|
||
may consider it more useful to permit linking proprietary applications
|
||
with the library. If this is what you want to do, use the GNU Library
|
||
General Public License instead of this License.
|
||
|
||
|
||
\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
|
||
|
||
[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
|
||
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
|
||
share and change it. By contrast, the GNU General Public Licenses are
|
||
intended to guarantee your freedom to share and change free software---to
|
||
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
|
||
Foundation and other authors who decide to use it. You can use it too,
|
||
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.
|
||
|
||
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
|
||
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
|
||
free programs; and that you are informed that you can do these things.
|
||
|
||
To protect your rights, we need to make restrictions that forbid
|
||
distributors to deny you these rights or to ask you to surrender these
|
||
rights. These restrictions translate to certain responsibilities for you
|
||
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.
|
||
You must make sure that they, too, receive or can get the source code. If
|
||
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
|
||
after making changes to the library and recompiling it. And you must show
|
||
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
|
||
no warranty for the free library. Also, if the library is modified by
|
||
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
|
||
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
|
||
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
|
||
GNU General Public License. This license, the GNU Lesser General Public
|
||
License, applies to certain designated libraries, and is quite different
|
||
from the ordinary General Public License. We use this license for certain
|
||
libraries in order to permit linking those libraries into non-free
|
||
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
|
||
work, a derivative of the original library. The ordinary General Public
|
||
License therefore permits such linking only if the entire combination fits
|
||
its criteria of freedom. The Lesser General Public License permits more
|
||
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
|
||
License. It also provides other free software developers Less of an
|
||
advantage over competing non-free programs. These disadvantages are the
|
||
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
|
||
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
|
||
Lesser General Public License.
|
||
|
||
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
|
||
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
|
||
with the Library has the freedom and the wherewithal to run that program
|
||
using a modified version of the Library.
|
||
|
||
The precise terms and conditions for copying, distribution and
|
||
modification follow. Pay close attention to the difference between a
|
||
``work based on the library'' and a ``work that uses the library''. The
|
||
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
|
||
Public License (also called ``this License''). Each licensee is addressed
|
||
as ``you''.
|
||
|
||
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.
|
||
|
||
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
|
||
verbatim or with modifications and/or translated straightforwardly into
|
||
another language. (Hereinafter, translation is included without
|
||
limitation in the term ``modification''.)
|
||
|
||
``Source code'' for a work means the preferred form of the work for making
|
||
modifications to it. For a library, complete source code means all the
|
||
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
|
||
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
|
||
program is covered only if its contents constitute a work based on the
|
||
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.
|
||
|
||
\item
|
||
|
||
You may copy and distribute verbatim copies of the Library's complete
|
||
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
|
||
distribute a copy of this License along with the Library.
|
||
|
||
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 Library or any portion of it,
|
||
thus forming a work based on the Library, 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}
|
||
|
||
\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
|
||
If a facility in the modified Library refers to a function or a table
|
||
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}
|
||
|
||
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 reasonably considered independent and separate works in
|
||
themselves, then this License, and its terms, do not apply to those
|
||
sections when you 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 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 Library.
|
||
|
||
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 storage or distribution medium does not bring the other work under
|
||
the scope of this License.
|
||
|
||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||
License instead of this License to a given copy of the Library. To do
|
||
this, you must alter all the notices that refer to this License, so
|
||
that they refer 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 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.
|
||
|
||
This option is useful when you wish to copy part of the code of
|
||
the Library into a program that is not a library.
|
||
|
||
4. You may copy and distribute the Library (or a portion or
|
||
derivative of it, 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.
|
||
|
||
5. 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 scope of this License.
|
||
|
||
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 terms for distribution of such executables.
|
||
|
||
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.
|
||
Whether this is true is especially significant if the work can be
|
||
linked without the Library, or if the work is itself a library. The
|
||
threshold 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, regardless of whether it is legally a derivative
|
||
work. (Executables containing this object code plus portions of the
|
||
Library will still fall under Section 6.)
|
||
|
||
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 executables containing that work also fall under Section 6,
|
||
whether or not they are linked directly with the Library itself.
|
||
|
||
6. As an exception to the Sections above, you may also combine or
|
||
link a ``work that uses the Library'' with the Library to produce a
|
||
work containing portions of the Library, and distribute that work
|
||
under terms 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.
|
||
|
||
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 execution displays copyright notices, you must include the
|
||
copyright 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:
|
||
|
||
a) Accompany the work with the complete corresponding
|
||
machine-readable source code for the Library including whatever
|
||
changes were used in the work (which must be distributed under
|
||
Sections 1 and 2 above); 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 then relink to produce a modified
|
||
executable containing the modified Library. (It is understood
|
||
that the user who changes the contents of definitions files in the
|
||
Library will not necessarily be able to recompile the application
|
||
to use the modified definitions.)
|
||
|
||
b) Use a suitable shared library mechanism for linking with the
|
||
Library. 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.
|
||
|
||
c) 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.
|
||
|
||
d) 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.
|
||
|
||
e) Verify that the user has already received a copy of these
|
||
materials or that you have already sent this user a copy.
|
||
|
||
For an executable, the required form of the ``work that uses the
|
||
Library'' must include any data and utility programs needed for
|
||
reproducing the executable from it. However, as a special exception,
|
||
the materials to be 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 operating system. Such a contradiction means you cannot
|
||
use both them and the Library together in an executable that you
|
||
distribute.
|
||
|
||
7. You may place library facilities that are a work based on the
|
||
Library side-by-side in a single library together with other library
|
||
facilities not covered by this License, and distribute such a combined
|
||
library, provided that the separate distribution of the work based on
|
||
the Library and of the other library facilities is otherwise
|
||
permitted, and provided that you do these two things:
|
||
|
||
a) Accompany the combined library with a copy of the same work
|
||
based on the Library, uncombined with any other library
|
||
facilities. This must be distributed under the terms of the
|
||
Sections above.
|
||
|
||
b) Give prominent notice with the combined library of the fact
|
||
that part of it is a work based on the Library, and explaining
|
||
where to find the accompanying uncombined form of the same work.
|
||
|
||
8. You may not copy, modify, sublicense, link with, or distribute
|
||
the Library except as expressly provided under this License. Any
|
||
attempt otherwise to copy, modify, sublicense, link with, or
|
||
distribute the Library 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.
|
||
|
||
9. You are not required to accept this License, since you have not
|
||
signed 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 indicate your acceptance of this License to do so, and
|
||
all its terms and conditions for copying, distributing or modifying
|
||
the Library or works based on it.
|
||
|
||
10. 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
|
||
restrictions on the recipients' exercise of the rights granted herein.
|
||
You are not responsible for enforcing compliance by third parties with
|
||
this License.
|
||
|
||
11. 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
|
||
excuse you from the conditions of this License. If you cannot
|
||
distribute so as to satisfy simultaneously your obligations under this
|
||
License and any other pertinent obligations, then as a consequence you
|
||
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 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 Library.
|
||
|
||
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
|
||
integrity of the free software distribution system which is
|
||
implemented by public license practices. Many people have made
|
||
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.
|
||
|
||
12. If the distribution and/or use of the Library is restricted in
|
||
certain countries either by patents or by copyrighted interfaces, the
|
||
original copyright holder who places the Library under this License may add
|
||
an explicit geographical distribution limitation excluding those countries,
|
||
so that distribution is permitted only in or among countries not thus
|
||
excluded. In such case, this License incorporates the limitation as if
|
||
written in the body of this License.
|
||
|
||
13. The Free Software Foundation may publish revised and/or new
|
||
versions of the Lesser General Public License from time to time.
|
||
Such new versions will be similar in spirit to the present version,
|
||
but may differ in detail to address new problems or concerns.
|
||
|
||
Each version is given a distinguishing version number. If the Library
|
||
specifies a version number of this License which applies to it and
|
||
``any later version'', you have the option of following the terms and
|
||
conditions either of that version or of any later version published by
|
||
the Free Software Foundation. If the Library does not specify a
|
||
license version number, you may choose any version ever published by
|
||
the Free Software Foundation.
|
||
|
||
14. If you wish to incorporate parts of the Library into other free
|
||
programs whose distribution conditions are incompatible with these,
|
||
write to the author to ask for permission. For software which is
|
||
copyrighted by the Free Software Foundation, write to the Free
|
||
Software Foundation; we 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 software and of promoting the sharing
|
||
and reuse of software generally.
|
||
|
||
NO WARRANTY
|
||
|
||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||
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
|
||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||
|
||
16. 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 OF TERMS AND CONDITIONS
|
||
|
||
How to Apply These Terms to Your New Libraries
|
||
|
||
If you develop a new library, and you want it to be of the greatest
|
||
possible use to the public, we recommend making it free software that
|
||
everyone can redistribute and change. You can do so by permitting
|
||
redistribution under these terms (or, alternatively, under the terms of the
|
||
ordinary General Public License).
|
||
|
||
To apply these terms, attach the following notices to the library. It is
|
||
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.
|
||
|
||
<one line to give the library's name and a brief idea of what it does.>
|
||
Copyright (C) <year> <name of author>
|
||
|
||
This library is free software; you can redistribute it and/or
|
||
modify it 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 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
Lesser General Public 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
|
||
|
||
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
|
||
necessary. Here is a sample; alter the names:
|
||
|
||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||
|
||
<signature of Ty Coon>, 1 April 1990
|
||
Ty Coon, President of Vice
|
||
|
||
That's all there is to it!
|
||
|
||
|
||
|
||
\end{document}
|
||
|
||
% LocalWords: proprietarize redistributors sublicense yyyy Gnomovision EULAs
|
||
% LocalWords: Yoyodyne FrontPage improvers Berne copyrightable Stallman's GPLs
|
||
% LocalWords: Lessig Lessig's UCITA pre PDAs CDs reshifts GPL's Gentoo
|
||
% LocalWords: TrollTech
|