Changeset - 730c56d39a4f
[Not reviewed]
Merge
0 2 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-03-19 17:00:48
bkuhn@ebb.org
Merge commit 'refs/merge-requests/2' of
gitorious.org:gpl-compliance-tools/tutorial into gitorious-merge-requests/002

Fontana told me on IRC just now:
I hereby release them under CC0. I will assign to FSF if desired.

We briefly discussed whether Red Hat (Fontana's employer) might hold
copyright, and Fontana said:
Red Hat is hereby CC0ing it
1 file changed with 6 insertions and 6 deletions:
0 comments (0 inline, 0 general)
gpl-lgpl.tex
Show inline comments
 
% gpl-lgpl.tex                                                  -*- LaTeX -*-
 
%      Tutorial Text for the Detailed Study and Analysis of GPL and LGPL course
 
%
 
% Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
% Copyright (C) 2014                   Bradley M. Kuhn
 

	
 
% License: CC-By-SA-4.0
 

	
 
% The copyright holders hereby grant the freedom to copy, modify, convey,
 
% Adapt, and/or redistribute this work under the terms of the Creative
 
% Commons Attribution Share Alike 4.0 International License.
 

	
 
% This text 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.
 

	
 
% You should have received a copy of the license with this document in
 
% a file called 'CC-By-SA-4.0.txt'.  If not, please visit
 
% https://creativecommons.org/licenses/by-sa/4.0/legalcode to receive
 
% the license text.
 

	
 
\newcommand{\defn}[1]{\emph{#1}}
 

	
 
\part{Detailed Analysis of the GNU GPL and Related Licenses}
 

	
 
\begin{center}
 

	
 
{\parindent 0in
 
\tutorialpartsplit{``Detailed Analysis of the GNU GPL and Related Licenses''}{This part} is: \\
 
\begin{tabbing}
 
Copyright \= \copyright{} 2003, 2004, 2005, 2006 \= \hspace{.2in} Free Software Foundation, Inc. \\
 
Copyright \= \copyright{} 2014 \= \hspace{.2in} Bradley M. Kuhn \\
 
Copyright \= \copyright{} 2014 \= \hspace{.2in} Anthony K. Sebro, Jr. \\
 
\end{tabbing}
 

	
 
Authors of \tutorialpartsplit{``Detailed Analysis of the GNU GPL and Related Licenses''}{this part} are: \\
 

	
 
Free Software Foundation, Inc. \\
 
Bradley M. Kuhn \\
 
David ``Novalis'' Turner \\
 
Daniel B. Ravicher \\
 
Tony Sebro \\
 
John Sullivan
 

	
 
\vspace{.3in}
 

	
 
The copyright holders of \tutorialpartsplit{``Detailed Analysis of the GNU GPL and Related Licenses''}{this part} hereby grant the freedom to copy, modify,
 
convey, Adapt, and/or redistribute this work under the terms of the Creative
 
Commons Attribution Share Alike 4.0 International License.  A copy of that
 
license is available at
 
\verb=https://creativecommons.org/licenses/by-sa/4.0/legalcode=.  }
 

	
 
\end{center}
 

	
 
\bigskip
 

	
 
\bigskip
 

	
 
\tutorialpartsplit{This tutorial}{This part of the tutorial} gives a
 
comprehensive explanation of the most popular Free Software copyright
 
license, the GNU General Public License (``GNU GPL'', or sometimes just
 
``GPL'') -- both version 2 (``GPLv2'') and version 3 (``GPLv3'') -- and
 
teaches lawyers, software developers, managers and business people how to use
 
the GPL (and GPL'd software) successfully both as a community-building
 
``Constitution'' for a software project, or to incorporate copylefted
 
``Constitution'' for a software project, and to incorporate copylefted
 
software into a new Free Software business and in existing, successful
 
enterprises.
 

	
 
To successfully benefit of from this part of the tutorial, readers should
 
have a general familiarity with software development processes.  A vague
 
have a general familiarity with software development processes.  A basic
 
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 or advise 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
 
under the terms of the GNU GPL (or who wish to do so in the future), and those
 
who wish to make use of existing GPL'd software in their enterprise.
 

	
 
Upon completion of this part of the tutorial, successful students can expect
 
Upon completion of this part of the tutorial, successful readers can expect
 
to have learned the following:
 

	
 
\begin{itemize}
 

	
 
  \item The freedom-defending purpose of each term of the GNU GPLv2 and GPLv3.
 
  \item The freedom-defending purpose of various terms in the GNU GPLv2 and GPLv3.
 

	
 
  \item The differences between GPLv2 and GPLv3.
 

	
 
  \item The redistribution options under the GPLv2 and GPLv3.
 

	
 
  \item The obligations when modifying GPLv2'd or GPLv3'd 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'd software can be used in existing enterprises.
 

	
 
  \item The basics of the Lesser GPLv2.1 and Lesser GPLv3, and how they
 
  \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 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 both of the popular versions of GPL
 
(GPLv2 and GPLv3) and their terms and conditions is a basic understanding of
 
the principles behind it.  The GPL family of licenses are unlike almost 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 their ``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 not known to be trademarked 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 refers 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 tenant 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 Licensing 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 take direct 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 users
 
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: Free Software can be sold at any
 
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. Inevitably, a
 
Free Software project sprouts a mailing list where improvements are shared
 
freely among members of the development community.  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
0 comments (0 inline, 0 general)