1095 lines
49 KiB
TeX
1095 lines
49 KiB
TeX
% gpl-buisness.tex -*- LaTeX -*-
|
|
% Tutorial Text for the GPL for Businesspeople and Developers course
|
|
%
|
|
% Copyright (C) 2003 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}
|
|
|
|
{\Large
|
|
|
|
\begin{center}
|
|
|
|
\vspace{.5in}
|
|
|
|
{\sc The GNU General Public License for Businesspeople and Developers } \\
|
|
|
|
\vspace{1in}
|
|
|
|
A Tutorial By:
|
|
|
|
\vspace{.3in}
|
|
Bradley M. Kuhn
|
|
|
|
Executive Director
|
|
|
|
Free Software Foundation
|
|
|
|
|
|
\end{center}
|
|
}
|
|
|
|
\vfill
|
|
|
|
{\parindent 0in
|
|
Copyright \copyright{} 2003 \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 tutorial gives a section-by-section explanation of the most popular
|
|
Free Software copyright license, the GNU General Public License (GNU GPL),
|
|
and teaches software developers, managers and businesspeople how to use
|
|
the GPL and GPL'ed software successfully in 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 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.
|
|
|
|
This tutorial introduces the GNU GPL and its terms to professionals who
|
|
are not well versed in the details of copyright law. Presented by a
|
|
software developer and manager, this tutorial informs those who wish to
|
|
have a deeper understanding of how the GNU GPL uses copyright law to
|
|
protect software freedom and to assist in the formation of Free Software
|
|
businesses, and of the organizational motivations behind the GNU GPL.
|
|
|
|
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 properly apply the GPL to a new 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.
|
|
\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
|
|
\href{http://www.fsf.org/philosophy/free-sw.html}{http://www.fsf.org/philosophy/free-sw.html}.
|
|
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{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
|
|
\href{http://www.fsf.org/philosophy/free-software-for-freedom.html}
|
|
{http://www.gnu.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 much 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 essential to users who are not programmers.
|
|
Users must have the right to engage in a non-commercial environment of
|
|
finding help with the software (as often happens on email lists and in
|
|
users groups). This means 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. Each user, or
|
|
group of users, must have the right to hire anyone they wish on 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 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.
|
|
|
|
\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 so-called ``canonical
|
|
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
|
|
canonical 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,
|
|
and one can contract away their rights and freedoms regarding software.
|
|
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 my 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 tangible expression of an idea, is
|
|
thus covered by the statues, and is copyrighted by default.
|
|
|
|
However, 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 (s)he ``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 an
|
|
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 canonical 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, since 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 has 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
|
|
ownership 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 canonical 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
|
|
canonical 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 problem 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 defend themselves in court or write their own briefs
|
|
(even though they 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}
|
|
|
|
\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 activites 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 reverse engineering software.
|
|
|
|
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 program like a
|
|
novel for the purpose of learning how to be a better programmer.
|
|
|
|
\medskip
|
|
|
|
Thus, the GPL protects users fair and uregulated 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 mentioned here 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 particular interesting is
|
|
that
|
|
|
|
|
|
\section{GPL, \S 1}
|
|
|
|
\section{GPL, \S 2}
|
|
|
|
\section{GPL, \S 3}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\chapter{Defending Freedom On Many Fronts}
|
|
|
|
\section{GPL, Section 4}
|
|
|
|
\section{GPL, Section 5}
|
|
\label{GPLs5}
|
|
|
|
\section{GPL, Section 6}
|
|
\label{GPLs6}
|
|
|
|
\section{GPL, Section 7}
|
|
\label{GPLs7}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\chapter{Odds, Ends, and Absolutely No Warranty}
|
|
|
|
There was a case where the disclaimer of a contract was negated because it
|
|
was not "conspicuous" to the person entering into the contract. Therefore,
|
|
to make such language "conspicuous" people started bolding it. My question
|
|
has always been, does that mean all the other parts of the document aren't
|
|
important such that they too need to be "conspicuous."
|
|
|
|
As for disclaiming warranties, remember that 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. The former gets rid of everything that can be
|
|
gotten rid of, while the latter limits the liability of the actor for any
|
|
warranties that cannot be disclaimed (such as personal injury, etc.).
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\chapter{Business Models, Internal Use, and Compliance}
|
|
|
|
\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.
|
|
|
|
\end{document}
|
|
|
|
% LocalWords: proprietarize redistributors sublicense yyyy Gnomovision
|
|
% LocalWords: Yoyodyne
|