Changeset - 52b3058faf90
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-03-19 17:10:09
bkuhn@ebb.org
This is a useful statement that Fontana added, but it should be a footnote.
1 file changed with 2 insertions and 2 deletions:
0 comments (0 inline, 0 general)
gpl-lgpl.tex
Show inline comments
...
 
@@ -90,387 +90,387 @@ to have learned the following:
 
  \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'd software can be used in existing enterprises.
 

	
 
  \item The basics of LGPLv2.1 and LGPLv3, and how they
 
    differs from the GPLv2 and GPLv3, respectively.
 

	
 
  \item The basics to begin understanding the complexities regarding
 
    derivative and combined works of software.
 
\end{itemize}
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
% END OF ABSTRACTS SECTION
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
% START OF DAY ONE COURSE
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 

	
 
\chapter{What Is Software Freedom?}
 

	
 
Study 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 software freedom. The GPL was not created in a vacuum. 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
 
preeminent organization that upholds, defends and promotes the philosophy of software
 
freedom. A prerequisite for understanding both of the popular versions
 
of the GPL
 
(GPLv2 and GPLv3) and their terms and conditions is a basic understanding of
 
the principles behind them.  The GPL family of licenses are unlike nearly all
 
other software licenses in that they are 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://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 GPL\@.
 

	
 
A particular program grants software freedom to a particular user if that
 
user is granted the following freedoms:
 

	
 
\begin{itemize}
 

	
 

	
 
\item The freedom to run the program, for any purpose.
 

	
 
\item The freedom to study how the program works, and modify it
 

	
 
\item The freedom to redistribute copies.
 

	
 
\item The freedom to distribute copies of  modified versions to others.
 

	
 
\end{itemize}
 

	
 
The focus on ``a particular user'' is particularly 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 unfortunately happen even if a program is released under the GPL\@.
 

	
 
Many 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 Web site at
 
  {\tt http://www.fsf.org/licensing/essays/free-software-for-freedom.html}.}
 
Those who call the software ``Open Source'' are often focused on a side
 
issue.  Specifically, 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.
 

	
 
Software freedom is only complete when no restrictions are imposed on how
 
these freedoms are exercised.  Specifically, users and programmers can
 
exercise these freedoms noncommercially or commercially.  Licenses that grant
 
these freedoms for noncommercial activities but prohibit them for commercial
 
activities are considered non-free.  Even the Open Source Initiative
 
(\defn{OSI}) (the arbiter of what is considered ``Open Source'') also rules
 
such licenses not in fitting with its ``Open Source Definition''.
 

	
 
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 noncommercial 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).
 

	
 
Keep in mind that the none of the terms ``software freedom'', ``open source''
 
and ``free software'' are known to be trademarked or otherwise legally
 
restricted by any organization in
 
any jurisdiction.  As such, it's quite common that these terms are abused and
 
misused by parties who wish to bank on the popularity of software freedom.
 
When one considers using, modifying or redistributing a software package that
 
purports to be Open Source or Free Software, one \textbf{must} verify that
 
the license grants software freedom.
 

	
 
Furthermore, throughout this text, we generally prefer the term ``software
 
freedom'', as this is the least ambiguous term available to describe software
 
that meets the Free Software Definition.  For example, it is well known and
 
often discussed that the adjective ``free'' has two unrelated meanings in
 
English: ``free as in freedom'' and ``free as in price''.  Meanwhile, the
 
term ``open source'' is even more confusing, because it appears to refer only to the
 
``freedom to study'', which is merely a subset of one of the four freedoms.
 

	
 
The remainder of this section considers each of each component of software
 
freedom in detail.
 

	
 
\subsection{The Freedom to Run}
 

	
 
The first tenet of software freedom is the user's fully unfettered right to
 
run the program.  The software's license must permit any conceivable use of
 
the software.  Perhaps, for example, the user has discovered an innovative
 
use for a particular program, one that the programmer never could have
 
predicted.  Such a use must not be restricted.
 

	
 
It was once rare that this freedom was restricted by even proprietary
 
software; but such is quite common today. Most End User License Agreements
 
(EULAs) that cover most proprietary software typically restrict some types of
 
uses.  Such restrictions of any kind are an unacceptable restriction on
 
software freedom.
 

	
 
\subsection{The Freedom to Change and Modify}
 

	
 
Perhaps the most useful right of software freedom is the users' right to
 
change, modify and adapt the software to suit their needs.  Access to the
 
source code and related build and installation scripts are an essential part
 
of this freedom.  Without the source code, and the ability to build and
 
install the binary applications from that source, users cannot effectively
 
exercise this freedom.
 

	
 
Programmers directly benefit from this freedom.  However, this freedom
 
remains important to users who are not programmers.  While it may seem
 
counterintuitive at first, non-programmer users often exercise this freedom
 
indirectly in both commercial and noncommercial settings.  For example, users
 
often seek noncommercial help with the software on email lists and in user
 
groups.  To make use of such help they must either have the freedom to
 
recruit programmers who might altruistically assist them to modify their
 
software, or to at least follow rote instructions to make basic modifications
 
themselves.
 

	
 
More commonly, users also exercise this freedom commercially.  Each user, or
 
group of users, may 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 share Free Software in a variety of ways. Software freedom 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 to your friend who likes the software you are using). Licenses that
 
respect software freedom, therefore, permit altruistic sharing of software
 
among friends.
 

	
 
The commercial environment also benefits of this freedom.  Commercial sharing
 
includes selling copies of Free Software: that is, Free Software can
 
be distribted for any monetary
 
price to anyone.  Those who redistribute Free Software commercially also have
 
the freedom to selectively distribute (i.e., you can pick your customers) and
 
to set prices at any level that redistributor sees fit.
 

	
 
Of course, most 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 billions of 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, some distribution vendors provide immediate
 
security and upgrade distribution via a special network service.  Such
 
distribution is not necessarily contradictory with software freedom.
 

	
 
(Section~\ref{Business Models} of this tutorial talks in detail about some
 
common 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 Software freedom community is built on the
 
pillar of altruistic sharing of improved Free Software. Historically
 
it was typical for a
 
Free Software project to sprout a mailing list where improvements
 
would be shared
 
freely among members of the development community.  This is still
 
freely among members of the development community\footnote{This is still
 
commonly the case, though today there are other or additional ways of
 
sharing Free Software. Such noncommercial
 
sharing Free Software.}.   Such noncommercial
 
sharing is the primary reason that Free Software thrives.
 

	
 
Commercial sharing of modified Free Software is equally important.
 
For commercial support to exist in a competitive free market, all
 
developers -- from single-person contractors to large software
 
companies -- must have the freedom to market their services as
 
improvers of Free Software.  All forms of such service marketing must
 
be equally available to all.
 

	
 
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 needs the
 
right to modify and improve the software for the customer to correct any
 
problems that are beyond mere user error.
 

	
 
Software freedom licenses also permit any entity to distribute 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 nontrivial 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 a long- or short-lived fork
 
to serve that sub-community.
 

	
 
\section{How Does Software Become Free?}
 

	
 
The previous section set forth key freedoms and rights that are referred to
 
as ``software freedom''.  This section discusses the licensing mechanisms
 
used to enable software freedom.  These licensing mechanism were ultimately
 
created as a community-oriented ``answer'' to the existing proprietary
 
software licensing mechanisms.  Thus, first, consider carefully why
 
proprietary software exists in the first place.
 

	
 
Proprietary software exists at all only because it is governed by copyright
 
law.\footnote{This statement is admittedly 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, 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, and therefore this section focuses on how copyright
 
  restrictions make software proprietary.} Copyright law, with respect to
 
software, typically governs copying, modifying, and redistributing that
 
software (For details of this in the USA, see
 
\href{http://www.copyright.gov/title17/92chap1.html#106}{\S~106} and
 
\href{http://www.copyright.gov/title17/92chap1.html#117}{\S~117} of
 
\href{http://www.law.cornell.edu/uscode/text/17}{Title 17} of the
 
\textit{United States Code}).\footnote{Copyright law in general also governs
 
  ``public performance'' of copyrighted works. There is no generally agreed
 
  definition for public performance of software and both GPLv2 and GPLv3 do
 
  not restrict public performance.} By law (in the USA and in most other
 
jurisdictions), the copyright holder (most typically, 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 is not a natural state, it is a legal construction. In the US, the
 
Constitution permits, but does not require, the creation of copyright law as
 
federal legislation.  Software, since it is ``an original works of authorship
 
fixed in any tangible medium of expression ...  from which they can be
 
perceived, reproduced, or otherwise communicated, either directly or with the
 
aid of a machine or device'' (as stated in
 
\href{http://www.law.cornell.edu/uscode/text/17/102}{17 USC \S~102}), is thus
 
covered by the statute, and is copyrighted by default.
 

	
 
However, software, in its natural state without copyright, is Free
 
Software. In an imaginary world with 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{Note that this is again an oversimplification; the
 
  complexities with this argument are discussed in
 
  Section~\ref{software-and-non-copyright}.}
 

	
 
Software in the real world is copyrighted by default and is automatically
 
covered by that legal system.  However, it is possible to move software out
 
of the domain of the copyright system.  A copyright holder can often
 
\defn{disclaim} their copyright (for example, under US copyright law
 
it is possible for a copyright holder to engage in conduct resulting
 
in abandonment of copyright).  If copyright is disclaimed, the software is
 
effectively no longer restricted by copyright law.   Software not restricted by copyright is in the
 
``public domain.''
 

	
 
\subsection{Public Domain Software}
 

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

	
 
Imagine if authors could truly disclaim those default control of copyright
 
law.  If so, the software is in the public domain -- no longer covered by
 
copyright.  Since copyright law is the construction allowing for most
 
restrictions on software (i.e., prohibition of copying, modification, and
 
redistribution), removing the software from the copyright system usually
 
yields software freedom for its users.
 

	
 
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, the copyright holders instead renounced copyright controls on
 
the work.  The law gave the copyright holder exclusive controls over the
 
work, and they chose 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.
 

	
 
Admittedly, a discussion of public domain software is an oversimplified
 
example.  First, disclaimer of copyright is actually difficult in practice.
 
Because copyright controls are usually automatically granted and because, in
 
some jurisdictions, some copyright controls cannot be waived (See
 
Section~\ref{non-usa-copyright} for further discussion), many copyright
 
holders sometimes incorrectly believe a work has been placed in the public
 
domain.  Second, due to aggressive lobbying by the entertainment industry,
 
the ``exclusive Right'' of copyright, that was supposed to only exist for
 
``Limited Times'' according to the USA Constitution, appears to be infinite:
 
simply purchased on the installment plan rather than in whole.  Thus, we must
 
assume no works of software will fall into the public domain merely due to
 
the passage of time.
 

	
 
The best example of software known to be in the public domain is software
 
that is published exclusively produced by the USA government.  Under
 
\href{http://www.law.cornell.edu/uscode/text/17/105}{17 USC 101 \S~105}, all
 
works published by the USA Government are not copyrightable.
 

	
 
\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 those 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 nontrivial
 
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 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. Many, including the
 
developers of the kernel named Linux, have chosen to follow this paradigm.
 

	
 
\label{copyleft-definition}
 

	
 
Copyleft is a legal strategy and mechanism 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 to 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 used 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.
 

	
 
\subsection{Software and Non-Copyright Legal Regimes}
 
\label{software-and-non-copyright}
0 comments (0 inline, 0 general)