Changeset - ce9168a9af5b
[Not reviewed]
0 7 1
Bradley Kuhn (bkuhn) - 10 years ago 2014-12-22 21:30:00
bkuhn@ebb.org
Citations of third-party works in appendix only.

As alluded to in 2ea19b71d4a917babb29024f06acabfe73309f40 's commit
message on 2014-12-17 19:52:15 -0500, keeping any information on a
part-by-part basis is difficult and error-prone, since there exists no
reliable way to auto-generate such information accurately.

Therefore, citations to third-party works, in addition to remaining
fully documented in the commit log as they always have been, are now
placed in specifically one location in the body of the text itself: a
single appendix specifically designed for that purpose.

In this manner, contributors have no house-keeping work regarding
citations. Contributors need only list third party works and links in
one place: third-party-citations.tex.

Documentation in CONTRIBUTING.md for making contributions of third-party
works is left as a TODO.
8 files changed with 69 insertions and 46 deletions:
0 comments (0 inline, 0 general)
CONTRIBUTING.md
Show inline comments
 
# Contributions Welcome!
 

	
 
The maintainers of this Copyleft Guide project encourage contribution from
 
the community.  Part of the impetus for this project was to create a
 
community around a "copyleft codebase" for information about copyleft.  In
 
other words, this project is a tutorial project about Copyleft that is like a
 
Free Software project.
 

	
 
## Who Is In Charge?
 

	
 
Currently, [Bradley M. Kuhn](http://ebb.org/bkuhn/) is the editor-in-chief of
 
this Guide project.  However, many other contributors have given patches and
 
improvements to the text.  Review the
 
[commit log in the Git repository](https://gitorious.org/copyleft-org/tutorial/commits/master)
 
for more details on who has contributed to the project.
 

	
 
## How Do I Get Involved?
 

	
 
The Guide is maintained in a copylefted distributed version control system called
 
[Git](http://git-scm.com/).  Currently, the project utilizes the services of
 
a  Git hosting website called [Gitorious](https://gitorious.org). (The
 
software which runs Gitorious is, itself, copylefted, too.)
 

	
 
Those who are comfortable with Gitorious can submit
 
[merge requests on copyleft.org's gitorious site](https://gitorious.org/copyleft-org/tutorial/merge_requests).
 
See the section "Merge Request and Patch Workflow" below for more information
 
on the details of doing that.
 

	
 
However, lack of Git and/or LaTeX knowledge is *not a barrier* for
 
contribution to this project.  Useful contributions will be accepted by the
 
following means as well:
 

	
 
  * Patches posted to
 
    [the mailing list](http://lists.copyleft.org/cgi-bin/mailman/listinfo/discuss).
 

	
 
  * New sections of text or simply ideas and input emailed to
 
    [the mailing list](http://lists.copyleft.org/cgi-bin/mailman/listinfo/discuss).
 

	
 
  * Ideas and suggestions mentioned on the
 
    [irc channel #copyleft on freenode](irc://irc.freenode.net/#copyleft).
 

	
 
Please, do not worry if your patches or new sections of text are not properly
 
formatted as patches and/or are not formatted in LaTeX properly.  Indeed,
 
feel free to offer patches that break LaTeX formatting, or to just write up
 
your suggestion in an email.  If the content is appropriate for the Guide,
 
the editor-in-chief or someone else will format your contribution properly
 
for LaTeX.
 

	
 
Note: by submitting contributions via any of these means, you agree to the
 
"Author's Certificate of Origin" (see below).
 

	
 
## How Do I Figure Out What To Contribute?
 

	
 
If you're looking for something to fix, just grep the *.tex files for "FIXME"
 
and you'll find plenty.  Many of them are simple and easy to do.  Some of
 
them are writing, and some of them are simply formatting-related.
 

	
 
If you want a larger, more involved writing project, take a look at the
 
[TODO list in this repository](TODO.md).  That list has bigger items that
 
other contributors have identified as necessary.  (BTW, the project
 
contributors are considering various possible copylefted bug-tracking
 
solutions, but admittedly haven't picked a bug-tracker yet.)
 

	
 
There is also a [TODO list on the website](https://copyleft.org/todo/), which
 
are mostly related to formatting, layout and infrastructure, but if you'd
 
like to help there, such help is also welcome.
 

	
 
## Contributing Third-Party CC-BY-SA'd Works
 

	
 
FIXME
 

	
 
## Merge Request and Patch Workflow
 

	
 
Currently, the main location for work on this project is
 
[on Gitorious](https://gitorious.org/copyleft-org/tutorial), and active new
 
development on the project happens on the
 
['next' branch](https://gitorious.org/copyleft-org/tutorial/source/next:)
 
(which is
 
[auto-published on the copyleft.org/guide-next URL](https://copyleft.org/guide-next/)).
 
Here is a suggested workflow for submitting patches — first doing so
 
*with* the Gitorious infrastructure, second *avoiding* the Gitorious
 
infrastructure but still using Git, and third avoiding Git altogether.
 

	
 
Merge requests and/or patches against
 
['next' branch](https://gitorious.org/copyleft-org/tutorial/source/next:) are
 
typically much preferred, and the workflow explanations below assume that.
 
However, merge requests and/or patches against
 
['master' branch](https://gitorious.org/copyleft-org/tutorial/source/master:)
 
are not necessarily rejected.  In fact, if your change is a fix for typo,
 
spelling, grammar, formatting or anything urgent, submitting a patch against
 
'master' may make more sense.
 

	
 
To use the instructions below for proposals against the 'master' branch, just
 
replace 'next' everywhere below with 'master'.
 

	
 

	
 
### Contributing via Gitorious
 

	
 
First-time contributors may want to do the following four items first:
 

	
 
0. [Create an account on Gitorious](https://gitorious.org/users/new)
 

	
 
1. [Visit gitorious.org/copyleft-org/tutorial](https://gitorious.org/copyleft-org/tutorial)
 
    and click "Clone".
 

	
 
    Instead of the default, you might call your clone
 
    "MYNAME-copyleft-tutorial-suggestions".
 

	
 
2. On the command line create a *local* clone of your Clone, by typing:
 

	
 
        $ git clone git@gitorious.org:copyleft-org/MYNAME-copyleft-tutorial-suggestions.git copyleft-tutorial
 
        $ cd copyleft-tutorial
 
        $ git remote rename origin MYNAME-copyleft-tutorial-suggestions
 

	
 
    (The last part isn't strictly necessary; you just might want to name the
 
    upstream repository a more descriptive name, since below you'll add the
 
    official repository as well).
 

	
 
3. Now, add to your clone a copy of the "real" Conservancy policies
 
   repository, and make a branch that tracks the official version:
 

	
 
        $ git remote add copyleft-tutorial-official git@gitorious.org:copyleft-org/tutorial.git
 
        $ git fetch copyleft-tutorial-official
 
        $ git branch --track official-next copyleft-tutorial-official/next
 

	
 
That completes the first-time setup.  Next is a workflow each proposed merge
 
request.
 

	
 
0. First, ensure the Git repository points at the right branch and all old
 
   changes are committed.
 

	
 
        $ git status
 

	
 
   The output of the last command should look like this:
 

	
 
        # On branch SOME_BRANCH
 
        nothing to commit (working directory clean)
 

	
 
   If you don't get that output, you probably have uncommitted changes from
 
   some other situation, which is beyond the scope of this document.
 

	
 
1. Now, get the most recent version of the 'next' branch:
 

	
 
        $ git checkout master
 
        $ git branch -D official-next
 
        $ git fetch copyleft-tutorial-official
 
        $ git branch --track official-next copyleft-tutorial-official/next
 
        $ git checkout official-next
 
        $ git pull
 

	
 
   (This step is more complicated than is typically found in a tutorial like
 
   this.  Experienced Git users will note the above is the easiest way to
 
   handle the fact that the 'next' branch is occasionally rebased against
 
   master.  If 'next' branch has not been rebased since the last time the
 
   operation was performed, the last two commands suffice for this step.)
 

	
 
1. Next, create a new branch to hold your changes:
 

	
 
        $ git checkout -b my-new-idea-for-tutorial official-next
 

	
 
   Use a name that briefly describes your planned proposal for
 
   "my-new-idea-for-tutorial".
 

	
 
2. Make your edits.  If you're editing the tutorial, you likely want to focus
 
   on the files ending in '.tex'.  Commit frequently while you're editing
 
   with:
 

	
 
        $ git commit -a
 

	
 
   Write useful and clear commit messages that explain the purpose of the
 
   changes.
 

	
 
3. When you are done all the changes related to 'my-new-idea-for-tutorial',
 
   verify they've all been committed this way:
 

	
 
        $ git status
 
        # On branch my-new-idea-for-tutorial
 
        nothing to commit (working directory clean)
 

	
 
4. Next, upload and publish those ideas to your own clone on Gitorious.
 

	
 
        $ git push MYNAME-copyleft-tutorial-suggestions my-new-idea-for-tutorial
 

	
 
    That's the end of the command-line part.
 

	
 
5. Now, visit Gitorious' merge-request creation web interface at
 
   https://gitorious.org/copyleft-org/MYNAME-copyleft-tutorial-suggestions/merge_requests/new
 

	
 
   Initiate your merge request with by setting:
 

	
 
        Summary:       Briefly describe your proposal
 
        Description:   More completely describe your proposal
 
        Target:        tutorial
 
        Target Branch: next
 
        Source Branch: my-new-idea-for-tutorial
 

	
 
6. While it's possible to discuss the details of the merge request via the
 
   web interface, for larger changes, it may be worthwhile to start a thread
 
   on
 
   [the mailing list](http://lists.copyleft.org/cgi-bin/mailman/listinfo/discuss)
 
   about the merge request.  Include the URL of the merge request in the
 
   post.
Makefile
Show inline comments
 
# Makefile for Copyleft Tutorial                      -*- GNUMakefile -*-
 

	
 
ifndef BOOK_BASE
 
BOOK_BASE=comprehensive-gpl-guide
 
endif
 

	
 
ifndef WEB_INSTALL_DIR
 
WEB_INSTALL_DIR = /path/to/html/install/directory
 
endif
 

	
 
LATEX_INPUT_FILES = $(BOOK_BASE).tex compliance-guide.tex license-texts.tex enforcement-case-studies.tex gpl-lgpl.tex
 
LATEX_INPUT_FILES = $(BOOK_BASE).tex compliance-guide.tex license-texts.tex enforcement-case-studies.tex gpl-lgpl.tex third-party-citations.tex
 
BOOK_CLASS_FILE = gpl-book.cls
 

	
 
CSS_FILES = css/*.css
 
JAVASCRIPT_FILES = js/*.js
 
WEB_CONFIG_FILE = webhacks.cfg
 

	
 
HTML_OUTPUT_DIR = public_html
 

	
 
TEX4HT=tex4ht
 
T4HT=t4ht
 
HTLATEX=htlatex
 
PDFLATEX = pdflatex
 
LATEX = latex
 
BIBTEX = bibtex
 
FIG2DEV = fig2dev
 
DVIPS=dvips
 

	
 
all:	err $(BOOK_BASE).pdf $(BOOK_BASE).ps html
 

	
 
pdf:	err $(BOOK_BASE).pdf
 

	
 
html:	$(HTML_OUTPUT_DIR)/monolithic/$(BOOK_BASE).html $(HTML_OUTPUT_DIR)/$(BOOK_BASE).html pdf $(BOOK_BASE).ps jscssmonolitic jscss
 
	/bin/ln -f $(BOOK_BASE).ps $(HTML_OUTPUT_DIR)/$(BOOK_BASE).ps
 
	/bin/ln -f $(BOOK_BASE).pdf $(HTML_OUTPUT_DIR)/$(BOOK_BASE).pdf
 

	
 
.SUFFIXES: .fig .postscript .eps .pdf .pstex_t .pstex .ps .dvi .tex
 

	
 
.postscript.pdf:
 
	ps2pdf $< $@
 

	
 
.postscript.eps:
 
	ps2epsi $< $@
 

	
 
.dvi.ps:
 
	$(DVIPS) $< -o $@
 

	
 
.tex.dvi:
 
	$(LATEX) $<
 

	
 
.fig.pdf:
 
	$(FIG2DEV) -L pdf -p "portrait" -c $< > $@
 

	
 
.fig.pstex_t:
 
	$(FIG2DEV) -L pstex_t $< > $@
 

	
 
.fig.pstex:
 
	$(FIG2DEV) -L pstex $< > $@
 

	
 
$(BOOK_BASE).pdf: $(PDF_FIGS) $(LATEX_INPUT_FILES)
 
	$(PDFLATEX) $(BOOK_BASE)
 
	$(PDFLATEX) $(BOOK_BASE)
 
	$(PDFLATEX) $(BOOK_BASE)
 

	
 
$(HTML_OUTPUT_DIR)/monolithic/$(BOOK_BASE).html: $(LATEX_INPUT_FILES) $(WEB_CONFIG_FILE)
 
	mkdir -p $(HTML_OUTPUT_DIR)/monolithic/js
 
	mkdir -p $(HTML_OUTPUT_DIR)/monolithic/css
 
	/bin/rm -f $(BOOK_BASE)*.html
 
	/bin/rm -f $(BOOK_BASE)*.js
 
	$(HTLATEX) comprehensive-gpl-guide.tex "webhacks,xhtml,mouseover,fn-in,monolith"
 
	$(HTLATEX) comprehensive-gpl-guide.tex "webhacks,xhtml,mouseover,fn-in,monolith"
 
	mv ${BOOK_BASE}*js $(HTML_OUTPUT_DIR)/monolithic/js
 
	/bin/rm -f $(BOOK_BASE)*.html
 
	/bin/rm -f $(BOOK_BASE)*.js
 
	$(HTLATEX) comprehensive-gpl-guide.tex "webhacks,xhtml,fn-in,monolith"
 
	mv $(BOOK_BASE)*html $(HTML_OUTPUT_DIR)/monolithic
 
	mv cm*png $(HTML_OUTPUT_DIR)/monolithic
 
	mv ${BOOK_BASE}*css $(HTML_OUTPUT_DIR)/monolithic
 
	/bin/rm -f ${BOOK_BASE}*aux ${BOOK_BASE}*dvi ${BOOK_BASE}*idv ${BOOK_BASE}*lg ${BOOK_BASE}*tmp ${BOOK_BASE}*4ct ${BOOK_BASE}*4tc ${BOOK_BASE}*toc ${BOOK_BASE}*out ${BOOK_BASE}*xref
 

	
 
jscssmonolitic: $(CSS_FILES) $(JAVASCRIPT_FILES)
 
	cp -pa js/*js $(HTML_OUTPUT_DIR)/monolithic/js
 
	cp -pa css/*css $(HTML_OUTPUT_DIR)/monolithic/css
 

	
 
$(HTML_OUTPUT_DIR)/$(BOOK_BASE).html: $(LATEX_INPUT_FILES)  $(WEB_CONFIG_FILE)
 
	mkdir -p $(HTML_OUTPUT_DIR)/js
 
	mkdir -p $(HTML_OUTPUT_DIR)/css
 
	/bin/rm -f $(BOOK_BASE)*.html
 
	/bin/rm -f $(BOOK_BASE)*.js
 
	$(HTLATEX) comprehensive-gpl-guide.tex "webhacks,xhtml,2,next,mouseover,fn-in"
 
	mv ${BOOK_BASE}*js $(HTML_OUTPUT_DIR)/js
 
	/bin/rm -f $(BOOK_BASE)*.html
 
	/bin/rm -f $(BOOK_BASE)*.js
 
	$(HTLATEX) comprehensive-gpl-guide.tex "webhacks,2,next,fn-in"
 
	mv ${BOOK_BASE}*css $(HTML_OUTPUT_DIR)
 
	mv ${BOOK_BASE}*html $(HTML_OUTPUT_DIR)
 
	mv cm*png $(HTML_OUTPUT_DIR)
 
	/bin/rm -f ${BOOK_BASE}*aux ${BOOK_BASE}*dvi ${BOOK_BASE}*idv ${BOOK_BASE}*lg ${BOOK_BASE}*tmp ${BOOK_BASE}*4ct ${BOOK_BASE}*4tc ${BOOK_BASE}*toc ${BOOK_BASE}*out ${BOOK_BASE}*xref
 

	
 
jscss: $(CSS_FILE) $(JAVASCRIPT_FILES)
 
	cp -pa js/*js $(HTML_OUTPUT_DIR)/js
 
	cp -pa css/*css $(HTML_OUTPUT_DIR)/css
 

	
 
$(BOOK_BASE).dvi: $(LATEX_INPUT_FILES) $(EPS_FIGS)
 
	$(LATEX)  $(BOOK_BASE).tex
 
	$(LATEX)  $(BOOK_BASE).tex
 

	
 
install: all
 
	chmod -R oug+r $(HTML_OUTPUT_DIR)
 
	find $(HTML_OUTPUT_DIR) -type d -exec chmod gou+rx {} \;
 
	rsync -HavP --delete --delay-updates $(HTML_OUTPUT_DIR)/ $(WEB_INSTALL_DIR)/
 
	chmod -R oug+r $(WEB_INSTALL_DIR)
 
	find $(WEB_INSTALL_DIR) -type d -exec chmod gou+rx {} \;
 
	cd $(WEB_INSTALL_DIR); /bin/ln -sf comprehensive-gpl-guide.html index.html
 
	cd $(WEB_INSTALL_DIR)/monolithic/; /bin/ln -sf comprehensive-gpl-guide.html index.html
 
clean:
 
	/bin/rm -f $(BOOK_BASE).ps $(BOOK_BASE).pdf $(BOOK_BASE).log texput.log $(BOOK_BASE).lg $(BOOK_BASE).tmp $(BOOK_BASE).xref *.4ct *.4tc *.aux *.dvi $(BOOK_BASE)*.html *.idv *.lg *.tmp $(BOOK_BASE).css $(BOOK_BASE).log $(BOOK_BASE).out $(BOOK_BASE)-js.* cm*png
 
	/bin/rm -rf public_html
 
err: ; $(ERR)
compliance-guide.tex
Show inline comments
 
% compliance-guide.tex                            -*- LaTeX -*-
 

	
 
\part{A Practical Guide to GPL Compliance}
 
\label{gpl-compliance-guide}
 

	
 
{\parindent 0in
 
This part is: \\
 
\begin{tabbing}
 
Copyright \= \copyright{} 2008, 2014 \= \hspace{.2in} Bradley M. Kuhn. \\
 
Copyright \= \copyright{} 2014 \> \hspace{.2in} Free Software Foundation, Inc. \\
 
Copyright \> \copyright{} 2008, 2014 \> \hspace{.2in} Software Freedom Law Center. \\
 
\end{tabbing}
 

	
 
\vspace{.1in}
 

	
 
\begin{center}
 
The copyright holders of 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
 
\url{https://creativecommons.org/licenses/by-sa/4.0/legalcode}.
 

	
 
\vfill
 

	
 
This part includes material from many sources, including some material from the following
 
CC-By-SA-licensed published works: \\
 

	
 
\begin{itemize}
 
\item \hrefnofollow{http://www.softwarefreedom.org/resources/2008/compliance-guide.html}{\textit{A Practical Guide GPL Compliance}} by Bradley M. Kuhn, Aaron
 
Williamson and Karen Sandler, first published on 2008-08-20. \\
 
\item \hrefnofollow{http://www.softwarefreedom.org/resources/2014/SFLC-Guide_to_GPL_Compliance_2d_ed.html}{\textit{Software Freedom Law Center Guide to GPL Compliance, 2nd
 
  Edition}} by Eben Moglen and Mishi Choudhary, first published on 2014-10-31. \\
 
\end{itemize}
 

	
 
However, this work is primarily composed of the many contributions it
 
This work is primarily composed of the many contributions it
 
receives as a public, collaborative project.  Please
 
\href{https://gitorious.org/copyleft-org/tutorial/history/master:compliance-guide.tex}{review
 
  its Git logs} for full documentation of all contributions.
 

	
 
\end{center}
 
}
 

	
 
\pagebreak
 

	
 
\chapter*{Executive Summary}
 

	
 
This is a guide to effective compliance with the GNU General Public
 
License (GPL) and related licenses.  Copyleft advocates
 
usually seek to assist the community with
 
GPL compliance cooperatively.   This guide focuses on complying from the
 
start, so that readers can learn to avoid enforcement actions entirely, or, at
 
least, minimize  the negative impact when enforcement actions occur.
 
This guide  introduces and explains basic legal concepts related to the GPL and its
 
enforcement by copyright holders. It also outlines business practices and
 
methods that lead to better GPL compliance.  Finally, it recommends proper
 
post-violation responses to the concerns of copyright holders.
 

	
 
\chapter{Background}
 

	
 
Copyright law grants exclusive rights to authors.  Authors who chose copyleft
 
seek to protect the freedom of users and developers to copy, share, modify
 
and redistribute the software.  However, copyleft is ultimately implemented
 
through copyright, and the GPL is primarily and by default a copyright
 
license.  (See \S~\ref{explaining-copyright} for more about the interaction
 
between copyright and copyleft.)  Copyright law grants an unnatural exclusive
 
control to copyright holders regarding copyright-controlled permissions
 
related to the work.  Therefore, copyright holders (or their agents) are the
 
ultimately the sole authorities to enforce copyleft and protect the rights of
 
users.  Actions for copyright infringement are the ultimate legal mechanism
 
for enforcement.  Therefore, copyright holders, or collaborative groups of
 
copyright holders, have historically been the actors in GPL enforcement.
 

	
 
The earliest of these efforts began soon after the GPL was written by
 
Richard M.~Stallman (RMS) in 1989, and consisted of informal community efforts,
 
often in public Usenet discussions.\footnote{One example is the public
 
  outcry over NeXT's attempt to make the Objective-C front-end to GCC
 
  proprietary.  RMS, in fact, handled this enforcement action personally and
 
  the Objective-C front-end is still part of upstream GCC today.}  Over the next decade, the Free Software Foundation (FSF),
 
which holds copyrights in many GNU programs, was the only visible entity
 
actively enforcing its GPL'd copyrights on behalf of the software freedom
 
community.
 
FSF's enforcement
 
was generally a private process; the FSF contacted violators
 
confidentially and helped them to comply with the license.  Most
 
violations were pursued this way until the early 2000's.
 

	
 
By that time, Linux-based systems such as GNU/Linux and BusyBox/Linux had become very common, particularly in
 
embedded devices such as wireless routers.  During this period, public
 
ridicule of violators in the press and on Internet fora supplemented
 
ongoing private enforcement and increased pressure on businesses to
 
comply.  In 2003, the FSF formalized its efforts into the GPL Compliance
 
Lab, increased the volume of enforcement, and built community coalitions
 
to encourage copyright holders to together settle amicably with violators.
 
Beginning in 2004, Harald Welte took a more organized public enforcement
 
approach and launched \href{http://gpl-violations.org/}{gpl-violations.org}, a website and mailing
 
list for collecting reports of GPL violations.  On the basis of these
 
reports, Welte successfully pursued many enforcement actions in Europe, including
 
formal legal action.  Harald earns the permanent fame as the first copyright
 
holder to bring legal action in a court regarding GPL compliance.
 

	
 
In 2007, two copyright holders in BusyBox, in conjunction with the
 
Software Freedom Conservancy (``Conservancy''), filed the first copyright infringement lawsuit
 
based on a violation of the GPL\@ in the USA. While  lawsuits are of course
 
quite public, the vast majority of Conservancy's enforcement actions 
 
are resolved privately via
 
cooperative communications with violators.  As both FSF and Conservancy have worked to bring
 
individual companies into compliance, both organizations have encountered numerous
 
violations resulting from preventable problems such as inadequate
 
attention to licensing of upstream software, misconceptions about the
 
GPL's terms, and poor communication between software developers and their
 
management.  This document highlights these problems and describe
 
best practices to encourage corporate Free Software users to reevaluate their
 
approach to GPL'd software and avoid future violations.
 

	
 
Both FSF and Conservancy continue GPL enforcement and compliance efforts
 
for software under the GPL, the GNU Lesser
 
Public License (LGPL) and other copyleft licenses.  In doing so, both organizations have
 
found that most violations stem from a few common, avoidable mistakes.  All copyleft advocates  hope to educate the community of
 
commercial distributors, redistributors, and resellers on how to avoid
 
violations in the first place, and to respond adequately and appropriately
 
when a violation occurs.
 

	
 
\section{Who Has Compliance Obligations?}
 

	
 
All distributors of modified or unmodified versions of copylefted works
 
unmodified versions of the works have compliance obligations.  Common methods
 
of modifying the works include innumerable common acts, such as:
 

	
 
\begin{itemize}
 

	
 
  \item embedding those works as executable copies
 
    into a device,
 

	
 
  \item transferring a digital copy of executable copies to someone else,
 

	
 
  \item posting a patch to the copylefted software to a public mailing list.
 

	
 
\end{itemize}
 

	
 
Such distributors have obligations to (at least) the users to whom they (or
 
intermediary parties) distribute those copies.  In some cases, distributors
 
have obligations to third parties not directly receiving their distribution
 
of the works (depending on the distributors chosen licensing options, as
 
described later in \S~\ref{binary-distribution-permission}).  In addition,
 
distributors have compliance obligations to upstream parties, such as
 
preservation of reasonable legal notices embedded in the code, and
 
appropriate labeling of modified versions.
 

	
 
Online service providers and distributors alike have other compliance
 
obligations.  In general, they must refrain from imposing any additional
 
restrictions on downstream parties. Most typically, such compliance problems
 
arise from ``umbrella licenses:'' EULAs, or sublicenses that restrict
 
downstream users' rights under copyleft. (See \S~\ref{GPLv2s6} and
 
\S~\ref{GPLv3s10}).
 

	
 
Patent holders having claims reading on GPL'd works they distribute must
 
refrain from enforcing those claims against parties to whom they distribute.
 
Furthermore, patent holders holding copyrights on GPLv3'd works must further
 
grant an explicit patent license for any patent claims reading on the version
 
they distributed, and therefore cannot enforce those specific patent claims
 
against anyone making, using or selling a work based on their distributed
 
version.  All parties must refrain from acting as a provider of services or
 
distributor of licensed works if they have accepted, or had imposed on them
 
by judicial action, any legal conditions that would prevent them from meeting
 
any obligation under GPL\@.  (See \S~\ref{GPLv2s7}, \S~\ref{GPLv3s11} and
 
\S~\ref{GPLv3s12}.
 

	
 
\section{What Are The Risks of Non-Compliance?}
 

	
 
Copyleft experts have for decades observed a significant mismatch between the
 
assumptions most businesses make about copyleft compliance and the realities.
 
Possibly due to excessive marketing of proprietary tools and services from
 
the for-profit compliance industry, businesses perennially focus on the wrong
 
concerns.  This tutorial seeks to educate those businesses about what
 
actually goes wrong, what causes disputes, and how to resolve those disputes.
 

	
 
Many businesses currently invest undue resources to avoid unlikely risks that
 
have low historical incidence of occurrence and low cost of remediation,
 
while leaving unmanaged the risks that have historically resulted in all the
 
litigation and other adverse outcomes.  For example, some ``compliance
 
industry''\footnote{``Compliance industry'' refers to third-party for-profit
 
  companies that market proprietary software tools and/or consulting services
 
  that purport to aid businesses with their Free Software license compliance
 
  obligations, such as those found in GPL and other copyleft licenses.  This
 
  tutorial leaves the term in quotes throughout, primarily to communicate the
 
  skepticism most of this tutorial's authors feel regarding the mere
 
  existence of this industry.  Not only do copyleft advocates object on
 
  principle to proprietary software tools in general, and to their ironic use
 
  specifically to comply with copyleft, but also to the ``compliance
 
  industry'' vendors' marketing messaging, which some copyleft advocates
 
  claim as a cause in the risk misassessments discussed herein.  Bradley
 
  M.~Kuhn, specifically, regularly uses the term ``compliance industrial
 
  complex''
 
  \href{http://en.wikipedia.org/wiki/Military-industrial_complex}{to
 
    analogize the types of problems in this industry to those warned against
 
    in the phrase of origin}.} vendors insist that great effort must be
 
expended to carefully list, in the menus or manuals of embedded electronics
 
products, copyright notices for every last copyright holder that contributed
 
to the Free Software included in the product.  While nearly all Free Software
 
licenses, including copylefts like GPL, require preservation and display of
 
copyright notices, failure to meet this specific requirement is trivially
 
remedied.  Therefore, businesses should spend just reasonable efforts to
 
properly display copyright notices, and note that failure to do so is simply
 
remedied: add the missing copyright notice!
 

	
 
\section{Understanding Who's Enforcing}
 
\label{compliance-understanding-whos-enforcing}
 

	
 
The mismatch between actual compliance risk and compliance risk management
 
typically results from a misunderstanding of licensor intentions.  For-profit
 
businesses often err by assuming other actors have kindred motivations.  The
 
primary enforcers of the GPL, however, have goals that for-profit businesses
 
will find strange and perhaps downright alien.
 

	
 
Specifically, community-oriented GPL enforcement organizations (called
 
``COGEOs'' throughout the remainder of this tutorial) are typically
 
non-profit charities (such as the FSF and Software Freedom Conservancy) who
 
declare, as part of their charitable mission, advancement of software freedom
 
for all users.  In the USA, these COGEOs are all classified as charitable
 
under the IRS's 501(c)(3) designation, which is reserved for organizations
 
that have a mission to enhance the public good.
 

	
 
As such, these COGEOs enforce GPL primarily to pursue the policy goals and
 
motivations discussed throughout this tutorial: to spread software freedom
 
further.  As such, COGEOs are unified in their primary goal to bring the
 
violator back into compliance as quickly as possible, and redress the damage
 
caused by the violation.  COGEOs are steadfast in their position in a
 
violation negotiation: comply with the license and respect freedom.
 

	
 
Certainly, other entities do not share the full ethos of software freedom as
 
institutionalized by COGEOs, and those entities pursue GPL violations
 
differently.  Oracle, a company that produces the GPL'd MySQL database, upon
 
discovering GPL violations typically negotiates a proprietary software
 
license separately for a fee.  While this practice is not one a COGEO would
 
undertake nor endorse, a copyleft license technically permits this
 
behavior.  To put a finer point on this practice already discussed
 
in~\S~\ref{Proprietary Relicensing}, copyleft advocates usually find copyleft
 
enforcement efforts focused on extract alternative proprietary licenses
 
distasteful at best, and a corrupt manipulation of copyleft at worst.  Much
 
to the advocates' chagrin, such for-profit enforcement efforts seem to
 
increase rather than decrease.
 

	
 
Thus, unsurprisingly, for-profit adopters of GPL'd software often incorrectly
 
assume that all copyright holders seek royalties.  Businesses therefore focus
 
on the risk of so-called ``accidental'' (typically as the result of
 
unsupervised activity by individual programmers) infringe copyright by
 
incorporating ``snippets'' of copylefted code into their own proprietary
 
computer program.  ``Compliance industry'' flagship products, therefore,
 
focus on ``code scanning'' services that purport to detect accidental
 
inclusions.  Such effort focuses on proprietary software development and view
 
Free Software as a foreign interloper.  Such approach not only ignores
 
current reality that many companies build their products directly on major
 
copylefted projects (e.g., Android vendor's use of the kernel named Linux),
 
but also creates a culture of fear among developers, leading them into a
 
downward spiral of further hiding their necessary reliance on copylefted
 
software in the company's products.
 

	
 
Fortunately, COGEOs regard GPL compliance failures as an opportunity to
 
improve compliance.  Every compliance failure downstream represents a loss of
 
rights by their users. The COGEOs are the guardian of its users' and
 
developers' rights.  Their activity seeks to restore those rights, and
 
to protect the project's contributors' intentions in the making of their
 
software. 
 

	
 
\chapter{Best Practices to Avoid Common Violations}
 
\label{best-practices}
 

	
 
Unlike highly permissive licenses (such as the ISC license), which
 
typically only require preservation of copyright notices, licensees face many
 
important requirements from the GPL.  These requirements are
 
carefully designed to uphold certain values and standards of the software
 
freedom community.  While the GPL's requirements may initially appear
 
counter-intuitive to those more familiar with proprietary software
 
licenses, by comparison, its terms are in fact clear and quite favorable to
 
licensees.  Indeed, the GPL's terms actually simplify compliance when
 
violations occur.
 

	
 
GPL violations occur (or, are compounded) most often when companies lack sound
 
practices for the incorporation of GPL'd components into their
 
internal development environment.  This section introduces some best
 
practices for software tool selection, integration and distribution,
 
inspired by and congruent with software freedom methodologies.  Companies should
 
establish such practices before building a product based on GPL'd
 
software.\footnote{This document addresses compliance with GPLv2,
 
  GPLv3, LGPLv2, and LGPLv3.  Advice on avoiding the most common
 
  errors differs little for compliance with these four licenses.
 
  \S~\ref{lgpl} discusses the key differences between GPL and LGPL
 
  compliance.}
 

	
 
\section{Evaluate License Applicability}
 
\label{derivative-works}
 
Political discussion about the GPL often centers around determining the
 
``work'' that must be licensed under GPL, or in other words, ``what is the
 
derivative and/or combined work that was created''.  Nearly ever esoteric
 
question asked by lawyers seek to consider that question
 
\footnote{\tutorialpartsplit{In fact, a companion work, \textit{Detailed Analysis of the GNU GPL and Related
 
      Licenses} contains an entire section discussing derivative works}{This tutorial in fact
 
  also addresses the issue at length in~\S~\ref{derivative-works}}.} (perhaps because
 
that question explores exciting legal issues while the majority of the GPL
 
deals with much more mundane ones).
 
Of course, GPL was designed
 
primarily to embody the licensing feature of copyleft.
 

	
 
However, most companies who add
 
complex features to and make combinations with GPL'd software
 
are already well aware of their
 
more complex obligations under the license that require complex legal
 
analysis.  And, there are few companies overall that engage in such
 
activities. Thus,  in practical reality, this issue is not relevant to the vast
 
majority of companies distributing GPL'd software.
 

	
 
Thus, experienced  GPL enforcers find that few redistributors'
 
compliance challenges relate directly to combined work issues in copyleft.
 
Instead, the distributions of GPL'd
 
systems most often encountered typically consist of a full operating system
 
including components under the GPL (e.g., Linux, BusyBox) and components
 
under the LGPL (e.g., the GNU C Library).  Sometimes, these programs have
 
been patched or slightly improved by direct modification of their sources,
 
and thus the result is unequivocally a modified version.  Alongside these programs,
 
companies often distribute fully independent, proprietary programs,
 
developed from scratch, which are designed to run on the Free Software operating
 
system but do not combine with, link to, modify, derive from, or otherwise
 
create a combined work with
 
the GPL'd components.\footnote{However, these programs do often combine
 
  with LGPL'd libraries. This is discussed in detail in \S~\ref{lgpl}.}
 
In the latter case, where the work is unquestionably a separate work of
 
creative expression, no copyleft provisions are invoked.
 
The core compliance issue faced, thus, in such a situation, is not an discussion of what is or is not a
 
combined, derivative, and/or modified version of the work, but rather, issues related to distribution and
 
conveyance of binary works based on GPL'd source, but without Complete,
 
Corresponding Source.
 

	
 
As such, issues of software delivery are the primary frustration for GPL
 
enforcers. In particular, the following short list accounts for at least 95\%
 
of the GPL violations ever encountered:
 

	
 
\begin{itemize}
 

	
 
\item The violator fails to provide required information about the presence
 
  of copylefted programs and their applicable license terms in the product
 
  they have purchased.
 

	
 
\item The violator fails to reliably deliver \hyperref[CCS
 
  Definition]{complete, corresponding source} (CCS) for copylefted programs
 
  the violator knew were included (i.e., the CCS is either delivered but
 
  incomplete, or is not delivered at all).
 

	
 
\item Requestors are ignored when they communicate with violator's published
 
  addresses requesting fulfillment of businesses' obligations.
 
\end{itemize}
 

	
 
This tutorial therefore focuses primarily on these issue.
 
Admittedly, a tiny
 
minority of compliance situations relate to question of derivative,
 
combined, or modified versions of the work.  Those
 
situations are so rare, and the details from situation to situation differ
 
greatly.  Thus, such situations require a highly
 
fact-dependent analysis and cannot be addressed in a general-purpose
 
document such as this one.
 

	
 
\medskip
 

	
 
Most companies accused of violations lack a basic understanding
 
of how to comply even in the straightforward scenario.  This document
 
provides those companies with the fundamental and generally applicable prerequisite knowledge.
 
For answers to rarer and more complicated legal questions, such as whether
 
your software is a derivative or combined work of some copylefted software, consult
 
with an attorney.\footnote{If you would like more information on the
 
  application of derivative works doctrine to software, a detailed legal
 
  discussion is presented in our colleague Dan Ravicher's article,
 
  \textit{Software Derivative Work: A Circuit Dependent Determination} and in
 
  \tutorialpartsplit{\textit{Detailed Analysis of the GNU GPL and Related
 
      Licenses}'s Section on derivative works}{\S~\ref{derivative-works} of
 
    this tutorial}.}
 

	
 
This discussion thus assumes that you have already identified the
 
``work'' covered by the license, and that any components not under the GPL
 
(e.g., applications written entirely by your developers that merely happen
 
to run on a Linux-based operating system) distributed in conjunction with
 
those works are separate works within the meaning of copyright law and the GPL\@.  In
 
such a case, the GPL requires you to provide complete corresponding
 
source (CCS)\footnote{For more on CCS,  see
 
\tutorialpartsplit{\textit{Detailed Analysis of the GNU GPL and Related
 
      Licenses}'s Section on GPLv2~\S2 and GPLv3~\S1.}{\S~\ref{GPLv2s2} and \S~\ref{GPLv3s1} of
 
    this tutorial}.}
 
for the GPL'd components and your modifications thereto, but not
 
for independent proprietary applications.  The procedures described in
 
this document address this typical scenario.
 

	
 

	
 
\section{Monitor Software Acquisition}
 

	
 
Software engineers deserve the freedom to innovate and import useful
 
software components to improve products.  However, along with that
 
freedom should come rules and reporting procedures to make sure that you
 
are aware of what software that you include with your product.
 

	
 
The most typical response to an initial enforcement action is: ``We
 
didn't know there was GPL'd stuff in there''.  This answer indicates
 
failure in the software acquisition and procurement process.  Integration
 
of third-party proprietary software typically requires a formal
 
arrangement and management/legal oversight before the developers
 
incorporate the software.  By contrast, developers often obtain and
 
integrate Free Software without intervention nor oversight. That ease of acquisition, however,
 
does not mean the oversight is any less necessary.  Just as your legal
 
and/or management team negotiates terms for inclusion of any proprietary
 
software, they should gently facilitate all decisions to bring Free Software into your
 
product.
 

	
 
Simple, engineering-oriented rules help provide a stable foundation for
 
Free Software integration.  For example, simply ask your software developers to send an email to a
 
standard place describing each new Free Software component they add to the system,
 
and have them include a brief description of how they will incorporate it
 
into the product.  Further, make sure developers use a revision control
 
system (such as Git or Mercurial), and
 
store the upstream versions of all software in a ``vendor branch'' or
 
similar mechanism, whereby they can easily track and find the main version
 
of the software and, separately, any local changes.
 

	
comprehensive-gpl-guide.tex
Show inline comments
 
% comprehensive-gpl-guide.tex                                    -*- LaTeX -*-
 
%
 
% Toplevel file to build the entire book.
 
\documentclass[10pt, letterpaper, openany, oneside]{book}
 
% I'm somewhat convinced that this book would be better formatted using
 
%  the memoir class :
 
%    http://www.ctan.org/pkg/memoir
 
%   http://mirror.unl.edu/ctan/macros/latex/contrib/memoir/memman.pdf
 

	
 
% For the moment, I've thrown in fancychap because I don't have time to
 
% research memoir.
 

	
 

	
 
% FIXME: Some overall formatting hacks that would really help:
 

	
 
%   * I have started using  \hyperref[LABEL]{text} extensively, which seems
 
%     to work great in the PDF and HTML versions, but in the Postscript
 
%     version, the link lost entirely.  I think we need an additional command
 
%     to replace \hyperref which takes an optional third argument that will
 
%     insert additional text only when generating print versions, such as:
 
%      \newhyperref[GPLv2s3]{the requirements for binary distribution under
 
%      GPLv2}{(see section~\ref*{GPLv2s3} for more information)}
 
%
 
%     This is a careful balance, because it'd be all too easy to over-pepper
 
%     the printed version with back/forward references, but there are
 
%     probably times when this is useful.
 

	
 
%   * Similar issue: \href{} is well known not to carry the URLs in the print
 
%     versions.  Adding a footnote with the URL for the print version is
 
%     probably right.  (or maybe a References page?)
 

	
 
%   * The text is extremely inconsistent regarding formatting of code and
 
%     commands.  The following varied different methods have been used:
 
%         + the \verb%..% inline form
 
%         + verbatim environment (i.e., \begin{verbatim}
 
%         + {\tt }
 
%         + \texttt{}
 
%         + the lstlisting environment (i.e., \begin{lstlisting}
 
%     These should be made consistent, using only two forms: one for line and
 
%     one for a long quoted section.
 

	
 

	
 

	
 
% FIXME: s/GPL enforcers/COGEOs/g
 

	
 
%        (the term coined later but not used throughout) This can't be done
 
%        by rote, since it may not be appropriate everywhere and shouldn't be
 
%        used *before* it's coined in the early portions of
 
%        compliance-guide.tex (and it's probably difficult to coin it earlier
 
%        anyway).  BTW, I admit COGEOs isn't the best acronym, but I started
 
%        with ``Community Enforcement Organizations'', which makes CEO, which
 
%        is worse. :)  My other opting was   COEO, which seemed too close to
 
%        CEO.  Suggestions welcome.
 

	
 
\usepackage{hyperref}
 
\usepackage{listings}
 
\usepackage{enumerate}
 
\usepackage{enumitem}
 
\usepackage[Conny]{fncychap}
 
\usepackage[dvips]{graphicx}
 
\usepackage[verbose, twoside, dvips,
 
              paperwidth=8.5in, paperheight=11in,
 
              left=1in, right=1in, top=1.25in, bottom=.75in,
 
           ]{geometry}
 

	
 
\newcommand{\tutorialpartsplit}[2]{#2}
 

	
 
%\input{no-numbers-on-table-of-contents}
 
\providecommand{\hrefnofollow}[2]{\href{#1}{#2}}
 

	
 
\hypersetup{pdfinfo={Title={Copyleft and the GNU General Public License: A Comprehensive Tutorial and Guide}}}
 

	
 
    \begin{document}
 

	
 
\pagestyle{plain}
 
\pagenumbering{roman}
 

	
 
\frontmatter
 

	
 
\begin{titlepage}
 

	
 
\begin{center}
 

	
 
{\Huge
 
{\sc Copyleft and the  \\
 

	
 
GNU General Public License:
 

	
 
\vspace{.25in}
 

	
 
A Comprehensive Tutorial \\
 

	
 
\vspace{.1in}
 

	
 
and Guide
 
}}
 
\vfill
 

	
 
{\parindent 0in
 
\begin{tabbing}
 
Copyright \= \copyright{} 2003--2007, 2014 \hspace{1.mm} \=  \kill
 
Copyright \> \copyright{} 2014 \>  Bradley M. Kuhn. \\
 
Copyright \> \copyright{} 2014 \>  Anthony K. Sebro, Jr. \\
 
Copyright \= \copyright{} 2014 \> Denver Gingerich \\
 
Copyright \= \copyright{} 2003--2007, 2014 \> \hspace{.2in} Free Software Foundation, Inc. \\
 
Copyright \> \copyright{} 2008, 2014 \>  Software Freedom Law Center. \\
 
\end{tabbing}
 

	
 
\vspace{.3in}
 

	
 
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.  A copy of that license is
 
available at \url{https://creativecommons.org/licenses/by-sa/4.0/legalcode}.
 

	
 
Each part of this book, except the appendix, is separately under this same
 
license, but copyrighted by different entities at different times.  Each part
 
therefore also contains its own copyright and licensing notice.  The notice
 
above is for the entire work, and includes the full copyright and licensing
 
details, except for the appendix.
 

	
 
The appendix includes copies of the texts of various licenses published
 
by the FSF, and they are all licensed under the license, ``Everyone is permitted
 
to copy and distribute verbatim copies of this license document, but changing
 
it is not allowed.''.  However, those who seek to make modified versions of
 
those licenses should note the
 
\href{https://www.gnu.org/licenses/gpl-faq.html#ModifyGPL}{explanation given in the GPL FAQ}.
 

	
 
\vfill
 

	
 
This material is regularly updated by a community of contributors and is
 
available online at all times at \url{https://copyleft.org/guide/}.  Patches
 
are indeed welcome to this material.  Sources can be found in the Git
 
repository at: \url{https://gitorious.org/copyleft-org/tutorial/}
 
}
 
\end{center}
 

	
 
\end{titlepage}
 

	
 
\tableofcontents
 

	
 
\chapter{Preface}
 

	
 
This tutorial is the culmination of nearly a decade of studying and writing
 
about software freedom licensing and the GPL\@.  Each part of this tutorial
 
is a course unto itself, educating the reader on a myriad of topics from the
 
deep details of the GPLv2 and GPLv3, common business models in the copyleft
 
licensing area (both the friendly and unfriendly kind), best practices for
 
compliance with the GPL, for engineers, managers, and lawyers, as well as
 
real-world case studies of GPL enforcement matters.
 

	
 
It is unlikely that all the information herein is necessary to learn all at
 
once, and therefore this tutorial likely serves best as a reference book.
 
The material herein has been used as the basis for numerous live tutorials
 
and discussion groups since 2002, and the materials have been periodically
 
updated.   They likely stand on their own as excellent reference material.
 

	
 
However, if you are reading these course materials without attending a live
 
tutorial session, please note that this material is merely a summary of the
 
highlights of the various CLE and other tutorial courses based on this
 
material.  Please be aware that during the actual courses, class discussion
 
and presentation supplements this printed curriculum.  Simply reading this
 
material is \textbf{not equivalent} to attending a course.
 

	
 
\mainmatter
 

	
 
\input{gpl-lgpl}
 

	
 
\input{compliance-guide}
 

	
 
\input{enforcement-case-studies}
 

	
 
\appendix
 

	
 
\part{Appendices}
 

	
 
\input{third-party-citations}
 

	
 
\input{license-texts}
 

	
 

	
 
\end{document}
enforcement-case-studies.tex
Show inline comments
 
%      Tutorial Text for the Detailed Study and Analysis of GPL and LGPL course
 

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

	
 

	
 
\part{Case Studies in GPL Enforcement}
 

	
 
{\parindent 0in
 
This part is: \\
 
\begin{tabbing}
 
Copyright \= \copyright{} 2003, 2004, 2014 \hspace{1mm} \= \hspace{1.mm} \=  \kill
 
Copyright \> \copyright{} 2014 \>  Bradley M. Kuhn. \\
 
Copyright \> \copyright{} 2014 \>  Denver Gingerich \\
 
Copyright \> \copyright{} 2003, 2004, 2014 \> Free Software Foundation, Inc. \\
 
\end{tabbing}
 

	
 
\vspace{.2in}
 

	
 
\begin{center}
 

	
 
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.  A copy of that license is
 
available at \url{https://creativecommons.org/licenses/by-sa/4.0/legalcode}.
 
\end{center}
 

	
 
\vfill
 

	
 
This part includes material from many sources, including some material from the following
 
CC-By-SA-licensed published works: \\
 

	
 
\begin{itemize}
 
\item \textit{Enforcement Case Studies}, written by Bradley M. Kuhn and published by the Free
 
  Software Foundation for its CLE courses  on 2004-01-20, 2004-08-24, and 2014-03-24.
 
\end{itemize}
 

	
 
However, this work is primarily composed of the many contributions it
 
This work is primarily composed of the many contributions it
 
receives as a public, collaborative project.  Please
 
\href{https://gitorious.org/copyleft-org/tutorial/history/master:enforcement-case-studies.tex}{review
 
  its Git logs} for full documentation of all contributions.
 

	
 

	
 
}
 
% =====================================================================
 
% START OF SECOND DAY SEMINAR SECTION
 
% =====================================================================
 

	
 
\chapter*{Preface}
 

	
 
This one-day course presents the details of five different GPL
 
compliance cases handled by FSF's GPL Compliance Laboratory. Each case
 
offers unique insights into problems that can arise when the terms of
 
the GPL are not properly followed, and how diplomatic negotiation between
 
the violator and the copyright holder can yield positive results for
 
both parties.
 

	
 
Attendees should have successfully completely the course, a ``Detailed
 
Study and Analysis of the GPL and LGPL,'' as the material from that
 
course forms the building blocks for this material.
 

	
 
This course is of most interest to lawyers who have clients or
 
employers that deal with Free Software on a regular basis. However,
 
technical managers and executives whose businesses use or distribute
 
Free Software will also find the course very helpful.
 

	
 
\bigskip
 

	
 
These course materials are merely a summary of the highlights of the
 
course presented. Please be aware that during the actual GPL course, class
 
discussion supplements this printed curriculum. Simply reading it is
 
not equivalent to attending the course.
 

	
 
%FIXME-LATER: write these
 

	
 
%\chapter{Not All GPL Enforcement is Created Equal}
 

	
 
%\section{For-Profit Enforcement}
 

	
 
%\section{Community and Non-Profit Enforcement}
 

	
 
\chapter{Overview of Community Enforcement}
 

	
 
The GPL is a Free Software license with legal teeth. Unlike licenses like
 
the X11-style or various BSD licenses, the GPL (and by extension, the LGPL) is
 
designed to defend as well as grant freedom. We saw in the last course
 
that the GPL uses copyright law as a mechanism to grant all the key freedoms
 
essential in Free Software, but also to ensure that those freedoms
 
propagate throughout the distribution chain of the software.
 

	
 
\section{Termination Begins Enforcement}
 

	
 
As we have learned, the assurance that Free Software under the GPL remains
 
Free Software is accomplished through various terms of the GPL: \S 3 ensures
 
that binaries are always accompanied with source; \S 2 ensures that the
 
sources are adequate, complete and usable; \S 6 and \S 7 ensure that the
 
license of the software is always the GPL for everyone, and that no other
 
legal agreements or licenses trump the GPL. It is \S 4, however, that ensures
 
that the GPL can be enforced.
 

	
 
Thus, \S 4 is where we begin our discussion of GPL enforcement. This
 
clause is where the legal teeth of the license are rooted. As a copyright
 
license, the GPL governs only the activities governed by copyright law ---
 
copying, modifying and redistributing computer software. Unlike most
 
copyright licenses, the GPL gives wide grants of permission for engaging with
 
these activities. Such permissions continue, and all parties may exercise
 
them until such time as one party violates the terms of the GPL\@. At the
 
moment of such a violation (i.e., the engaging of copying, modifying or
 
redistributing in ways not permitted by the GPL) \S 4 is invoked. While other
 
parties may continue to operate under the GPL, the violating party loses their
 
rights.
 

	
 
Specifically, \S 4 terminates the violators' rights to continue
 
engaging in the permissions that are otherwise granted by the GPL\@.
 
Effectively, their rights revert to the copyright defaults ---
 
no permission is granted to copy, modify, nor redistribute the work.
 
Meanwhile, \S 5 points out that if the violator has no rights under
 
the GPL, they are prohibited by copyright law from engaging in the
 
activities of copying, modifying and distributing. They have lost
 
these rights because they have violated the GPL, and no other license
 
gives them permission to engage in these activities governed by copyright law.
 

	
 
\section{Ongoing Violations}
 

	
 
In conjunction with \S 4's termination of violators' rights, there is
 
one final industry fact added to the mix: rarely does one engage in a
 
single, solitary act of copying, distributing or modifying software.
 
Almost always, a violator will have legitimately acquired a copy of a
 
GPL'd program, either making modifications or not, and then begun
 
distributing that work. For example, the violator may have put the
 
software in boxes and sold them at stores. Or perhaps the software
 
was put up for download on the Internet. Regardless of the delivery
 
mechanism, violators almost always are engaged in {\em ongoing\/}
 
violation of the GPL\@.
 

	
 
In fact, when we discover a GPL violation that occurred only once --- for
 
example, a user group who distributed copies of a GNU/Linux system without
 
source at one meeting --- we rarely pursue it with a high degree of
 
tenacity. In our minds, such a violation is an educational problem, and
 
unless the user group becomes a repeat offender (as it turns out, they
 
never do), we simply forward along a FAQ entry that best explains how user
 
groups can most easily comply with the GPL, and send them on their merry way.
 

	
 
It is only the cases of {\em ongoing\/} GPL violation that warrant our
 
active attention. We vehemently pursue those cases where dozens, hundreds
 
or thousands of customers are receiving software that is out of
 
compliance, and where the company continually offers for sale (or
 
distributes gratis as a demo) software distributions that include GPL'd
 
components out of compliance. Our goal is to maximize the impact of
 
enforcement and educate industries who are making such a mistake on a
 
large scale.
 

	
 
In addition, such ongoing violation shows that a particular company is
 
committed to a GPL'd product line. We are thrilled to learn that someone
 
is benefiting from Free Software, and we understand that sometimes they
 
become confused about the rules of the road. Rather than merely
 
giving us a postmortem to perform on a past mistake, an ongoing violation
 
gives us an active opportunity to educate a new contributor to the GPL'd
 
commons about proper procedures to contribute to the community.
 

	
 
Our central goal is not, in fact, to merely clear up a particular violation.
 
In fact, over time, we hope that our compliance lab will be out of
 
business. We seek to educate the businesses that engage in commerce
 
related to GPL'd software to obey the rules of the road and allow them to
 
operate freely under them. Just as a traffic officer would not revel in
 
reminding people which side of the road to drive on, so we do not revel in
 
violations. By contrast, we revel in the successes of educating an
 
ongoing violator about the GPL so that GPL compliance becomes a second-nature
 
matter, allowing that company to join the GPL ecosystem as a contributor.
 

	
 
\section{How are Violations Discovered?}
 

	
 
Our enforcement of the GPL is not a fund-raising effort; in fact, FSF's GPL
 
Compliance Lab runs at a loss (in other words, it is subsided by our
 
donors). Our violation reports come from volunteers, who have encountered,
 
in their business or personal life, a device or software product that
 
appears to contain GPL'd software. These reports are almost always sent
 
via email to $<$license-violation@fsf.org$>$.
 

	
 
Our first order of business, upon receiving such a report, is to seek
 
independent confirmation. When possible, we get a copy of the software
 
product. For example, if it is an offering that is downloadable from a
 
Web site, we download it and investigate ourselves. When it is not
 
possible for us to actually get a copy of the software, we ask the
 
reporter to go through the same process we would use in examining the
 
software.
 

	
 
By rough estimation, about 95\% of violations at this stage can be
 
confirmed by simple commands. Almost all violators have merely made an
 
error and have no nefarious intentions. They have made no attempt to
 
remove our copyright notices from the software. Thus, given the
 
third-party binary, {\tt tpb}, usually, a simple command (on a GNU/Linux
 
system) such as the following will find a Free Software copyright notice
 
and GPL reference:
 
\begin{quotation}
 
{\tt strings tpb | grep Copyright}
 
\end{quotation}
 
In other words, it is usually more than trivial to confirm that GPL'd
 
software is included.
 

	
 
Once we have confirmed that a violation has indeed occurred, we must then
 
determine whose copyright has been violated. Contrary to popular belief,
 
FSF does not have the power to enforce the GPL in all cases. Since the GPL
 
operates under copyright law, the powers of enforcement --- to seek
 
redress once \S 4 has been invoked --- lie with the copyright holder of
 
the software. FSF is one of the largest copyright holders in the world of
 
GPL'd software, but we are by no means the only one. Thus, we sometimes
 
discover that while GPL'd code is present in the software, there is no
 
software copyrighted by FSF present.
 

	
 
In cases where FSF does not hold copyright interest in the software, but
 
we have confirmed a violation, we contact the copyright holders of the
 
software, and encourage them to enforce the GPL\@. We offer our good offices
 
to help negotiate compliance on their behalf, and many times, we help as a
 
third party to settle such GPL violations. However, what we will describe
 
primarily in this course is FSF's first-hand experience enforcing its own
 
copyrights and the GPL\@.
 

	
 
\section{First Contact}
 

	
 
The Free Software community is built on a structure of voluntary
 
cooperation and mutual help. Our community has learned that cooperation
 
works best when you assume the best of others, and only change policy,
 
procedures and attitudes when some specific event or occurrence indicates
 
that a change is necessary. We treat the process of GPL enforcement in
 
the same way. Our goal is to encourage violators to join the cooperative
 
community of software sharing, so we want to open our hand in friendship.
 

	
 
Therefore, once we have confirmed a violation, our first assumption is
 
that the violation is an oversight or otherwise a mistake due to confusion
 
about the terms of the license. We reach out to the violator and ask them
 
to work with us in a collaborative way to bring the product into
 
compliance. We have received the gamut of possible reactions to such
 
requests, and in this course, we examine four specific examples of such
 
compliance work.
 

	
 
% FIXME: make this section properly TeX-formatted
 
\chapter{ThinkPenguin Wireless Router: Excellent CCS}
 
\label{pristine-example}
 

	
 
Too often, case studies examine failure and mistakes.  Indeed, most of the
 
chapters that follow herein will consider the myriad difficulties discovered
 
in community-oriented GPL enforcement for the last two decades.  However, to
 
begin, this is a case study in how copyleft compliance can indeed be done correctly.
 

	
 
This example is, in fact, more than ten years in the making.  Since almost
 
the inception of for-profit corporate adoption of Free Software, companies
 
have requested a clear example of a model citizen to emulate.  Sadly, while
 
community-oriented enforcers have vetted uncounted thousands of ``Complete,
 
Corresponding Source'' (CCS) candidates from hundreds of companies, this
 
particular CCS release described herein is the first ever declared a ``pristine
 
example''.
 

	
 
% FIXME (above): link to a further discussion of CCS in the compliance guide
 
% when a good spot exists, then (below) link to a ``CCS iteration''
 
% discussion in compliance-guide.tex when one exists.  (the ``iteration
 
% process'' is discussed in~\ref{} of this guide)
 

	
 
Of course, most CCS examined for the last decade has (eventually) complied
 
with the GPL, perhaps after many iterations of review by the enforcer.
 
However, in the experience of the two primary community-oriented enforcers
 
(Conservancy and the FSF), such CCS results routinely 
 
``barely comply with GPL's requirements''.  To use an academic analogy:
 
while a ``C'' is certainly a passing grade, any instructor prefers to
 
disseminate to the class an exemplar sample that earned an ``A''.
 

	
 
Fortunately, thanks in large part to the FSF's
 
``Respects Your Freedom'' (RYF) certification campaign\footnote{\href{http://www.fsf.org/resources/hw/endorsement/respects-your-freedom}{RYF is
 
    a campaign by FSF to certify products that truly meet the principles of
 
    software freedom}.  Products must meet
 
  \href{http://www.fsf.org/resources/hw/endorsement/criteria}{strict
 
    standards for RYF certification}, and among them is a pristine example of
 
  CCS\@.}, a few electronics products on the market meet
 
a higher standard of copyleft compliance.  As such, for the first
 
time in the history of copyleft, CCS experts have pristine examples to study
 
and present as exemplars worthy of emulation.
 

	
 
This case study therefore examines the entire life-cycle of a GPL compliance
 
investigation: from product purchase, to source request, to CCS review, and concluding
 
in a final compliance determination.
 
Specifically, this chapter discusses the purchase, CCS provision, and a
 
step-by-step build and installation analysis of a specific, physical,
 
embedded electronics product:
 
\href{https://www.thinkpenguin.com/gnu-linux/free-software-wireless-n-broadband-router-gnu-linux-tpe-nwifirouter2}{the
 
  ``TPE-NWIFIROUTER'' wireless router by ThinkPenguin}.\footnote{The FSF of
 
  course performed a thorough CCS check as part of its certification process.
 
  The analysis discussed herein was independently performed by Software
 
  Freedom Conservancy without reviewing the FSF's findings.  Thus, this
 
  analysis is ``true to form'', and explains the typical procedures Conservancy
 
  uses when investigating a potential GPL violation.  In this case, obviously, no
 
  violation was uncovered.}
 

	
 
\section{Consumer Purchase and Unboxing}
 

	
 
The process for copyleft compliance investigation, when properly conducted,
 
determines whether users inclined to exercise their rights under a copyleft
 
license will be successful in their attempt.  Therefore, at every stage, the
 
investigator seeks to take actions that reasonably technically knowledgeable
 
users would during the ordinary course of their acquisition and use of
 
copyleft-covered products.  As such, the investigator typically purchases the device on the
 
open market to verify that distribution of the copylefted software therein
 
complies with binary distribution requirements (such as those
 
\tutorialpartsplit{discussed in \textit{Detailed Analysis of the GNU GPL and
 
    Related Licenses}}{discussed earlier in \S~\ref{GPLv2s3} and
 
  \S~\ref{GPLv3s6}}).
 

	
 
% FIXME: Above is my only use of \tutorialpartsplit in this chapter.  I just
 
% got lazy and that should be fixed by someone.
 

	
 
\label{thinkpenguin-included-ccs}
 

	
 
Therefore, the investigator first purchased the TPE-NWIFIROUTER through an
 
online order, and when the package arrived, examined the contents of the box.
 
The investigator immediately discovered that ThinkPenguin had taken advice
 
from \S~\ref{offer-for-source}, and exercised
 
\hyperref[GPLv2s3a]{GPLv2\S3(a)} and \hyperref[GPLv3s6]{GPLv3\S6}, rather than
 
using the \hyperref[offer-for-source]{problematic offer for source
 
  provisions}.  This choice not only accelerated the investigation (since there
 
was no CCS offer to ``test''), but also simplified the compliance requirements for
 
ThinkPenguin.
 

	
 
\section{Root Filesystem and Kernel Compilation}
 

	
 
The CD found in the box was labeled ``libreCMC v1.2.1 source code'', and
 
contained 407 megabytes of data.  The investigator copied this ISO to a
 
desktop GNU/Linux system and
 
examined its contents.  Upon doing so, the investigator immediately found a
 
file called ``README'' at the top-level directory:
 

	
 
\lstset{tabsize=2}
 
\begin{lstlisting}[language=bash]
 
$ dd if=/dev/cdrom of=libreCMC_v1.2.1_SRC.iso
 
$ mkdir libCMC
 
$ sudo mount -o loop ./libreCMC_v1.2.1_SRC.iso libCMC
 
mount: block device /path/to/libreCMC_v1.2.1_SRC.iso
 
       is write-protected, mounting read-only
 
$ ls -1 libCMC
 
bin
 
librecmc-u-boot.tar.bz2
 
librecmc-v1.2.1.tar.bz2
 
README
 
u-boot_reflash
 
$ cat libCMC/README
 
...
 
\end{lstlisting}
 
\label{thinkpenguin-toplevel-readme}
 
The investigator therefore knew immediately to begin the CCS check should
 
begin with a study of the contents of ``README''.  Indeed, that file contained the appropriate
 
details to start the build:
 
\begin{quotation}
 

	
 
In order to build firmware images for your router, the following needs to be
 
installed:
 

	
 
gcc, binutils, bzip2, flex, python, perl, make, find, grep, diff, unzip,
 
gawk, getopt, libz-dev and libc headers.
 

	
 
Please use ``make menuconfig'' to configure your appreciated configuration
 
for the toolchain and firmware. Please note that the default configuration is
 
what was used to build the firmware image for your router. It is advised that
 
you use this configuration.
 

	
 
Simply running ``make'' will build your firmware.  The build system will
 
download all sources, build the cross-compile toolchain, the kernel and all
 
chosen applications.
 

	
 
To build your own firmware you need to have access to a GNU/Linux system
 
(case-sensitive filesystem required).
 
\end{quotation}
 

	
 
In other words, the first ``script'' that investigator ``ran'' was the above.
 
This was not a software script, rather the processor for the script was the investigator's own
 
brain --- like a script of a play.  Less glibly stated: instructions written in
 
English are usually necessary for the build and installation operations
 
that demand actual intelligence.
 
In this case, the investigator ascertained the host system requirements
 
for construction of this embedded firmware.
 

	
 
GPL does not give specific guidance on the form or location of
 
``scripts used to control compilation and installation of the executable''
 
and/or ``Installation Information''.  Community-oriented GPL enforcers apply a
 
``reasonableness standard'' to evaluate such instructions.  If an investigator of
 
average skill in embedded firmware construction can surmise the proper
 
procedures to build and install a replacement firmware, the instructions are
 
likely sufficient to meet GPL's requirements.  Fortunately, in this case, the
 
instructions are more abundant and give extra detail.
 

	
 
Nevertheless, these instructions offer more options than the reader
 
typically sees in other CCS candidates.  More typically, top-level build
 
instructions name an exact host distribution to use, such as
 
``Debian 7 installed on an amd64 system with the following packages
 
installed''.  Of course, if the build will fail on any other system,
 
instructions \textit{should} include such details.  However, this CCS builds
 
on a wide range of distributions, and thus it was appropriate (and preferred)
 
that the build instructions do not  specify a specific distribution.
 

	
 
\label{thinkpenguin-specific-host-system}
 

	
 
In this specific case, the developers of the libreCMC project (a Free
 
Software project that forms the base system for the TPE-NWIFIROUTER) have
 
clearly made an effort to ensure the CCS builds on a variety of host systems.
 
The investigator was in fact dubious upon seeing these instructions, since
 
finicky embedded build processes usually require a very specific host system.
 
Fortunately, it seems such doubts were generally unfounded (although the
 
investigator did find
 
\hyperref[thinkpenguin-glibc-214-issue]{a minor annoyance that could be
 
  resolved with more detailed instructions}).
 

	
 
Anyway, since these instructions did not specify a specific host system, the
 
investigator simply used his own amd64 Debian GNU/Linux 6 desktop system.  Before
 
beginning, the investigator used the following command:
 

	
 
\lstset{tabsize=2}
 
\begin{lstlisting}[language=bash]
 
$ dpkg --list | egrep '^iii' | less
 
\end{lstlisting}
 

	
 
to verify that the required packages listed in the README were
 
installed\footnote{The ``dpkg'' command is a Debian-specific way of
 
  finding installed packages.}.
 

	
 

	
gpl-lgpl.tex
Show inline comments
 
% gpl-lgpl.tex                                                  -*- LaTeX -*-
 
%      Tutorial Text for the Detailed Study and Analysis of GPL and LGPL course
 
%
 

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

	
 
% FIXME-LATER: I should make a macro like the Texinfo @xref stuff for places
 
%      where I'm saying ``see section X in this tutorial'', so that the extra
 
%      verbiage isn't there in the HTML versions that I'll eventually do.
 
%      Maybe something like that already exists?  In the worst case, I could
 
%      adapt @xref from texinfo.texi for it.
 

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

	
 
\part{Detailed Analysis of the GNU GPL and Related Licenses}
 
\label{gpl-lgpl-part}
 

	
 
{\parindent 0in
 
\tutorialpartsplit{``Detailed Analysis of the GNU GPL and Related Licenses''}{This part} is: \\
 
\begin{tabbing}
 
Copyright \= \copyright{} 2003--2007, 2014 \hspace{.1mm} \=  \kill
 
Copyright \> \copyright{} 2014 \> Bradley M. Kuhn \\
 
Copyright \> \copyright{} 2014 \>  Anthony K. Sebro, Jr. \\
 
Copyright \> \copyright{} 2003--2007, 2014 \>  Free Software Foundation, Inc. \\
 
Copyright \> \copyright{} 2014 \>  Software Freedom Law Center.
 
\end{tabbing}
 

	
 

	
 
\vspace{.2in}
 

	
 
\begin{center}
 

	
 
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}
 

	
 
\vfill
 

	
 
This part includes material from many sources, including some material from the following
 
CC-By-SA-licensed published works: \\
 

	
 
\begin{itemize}
 
\item \textit{Detailed Analysis of the GNU GPL and Related Licenses}, written by
 
Bradley M. Kuhn, Daniel B.~Ravicher, and John Sullivan and published by the Free Software Foundation for its CLE courses on 2004-01-20,
 
2004-08-24, and 2014-03-24.
 
\item \hrefnofollow{http://gplv3.fsf.org/gpl-rationale-2006-01-16.html}{\textit{GPLv3 First Discussion Draft Rationale}}, written and published by the Free
 
  Software Foundation on 2006-01-16.
 
\item \hrefnofollow{http://gplv3.fsf.org/opinions-draft-2.html}{\textit{GPLv3 Second Discussion Draft Rationale}}, written and published by the Free
 
  Software Foundation circa 2006-07.
 
\item \hrefnofollow{http://gplv3.fsf.org/gpl3-dd3-guide}{\textit{GPLv3 Third Discussion Draft Rationale}}, written and published by the Free
 
  Software Foundation on   2007-03-28.
 
\item \hrefnofollow{http://gplv3.fsf.org/dd3-faq}{\textit{GPLv3  Discussion Draft 3 FAQ}}, written and published by the Free1 Software Foundation on   2007-03-28.
 
\item \hrefnofollow{http://gplv3.fsf.org/gpl3-dd4-guide.html}{\textit{GPLv3 Final Discussion Draft Rationale}} written and published by the Free
 
  Software Foundation onon 2007-05-31.
 
\item \hrefnofollow{http://www.gnu.org/licences/gpl3-final-rationale.pdf}{\textit{GPLv3 Final Rationale}}, written and published by the Free
 
  Software Foundation on 2007-06-29.
 
  
 
\end{itemize}
 

	
 
However, this work is primarily composed of the many contributions it
 
This work is primarily composed of the many contributions it
 
receives as a public, collaborative project.  Please
 
\href{https://gitorious.org/copyleft-org/tutorial/history/master:gpl-lgpl.tex}{review
 
  its Git logs} for full documentation of all contributions.
 
}
 
\pagebreak
 

	
 
\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 businesspeople how to use
 
the GPL (and GPL'd software) successfully both as a community-building
 
``Constitution'' for a software project, and to incorporate copylefted
 
software into a new Free Software business and in existing, successful
 
enterprises.
 

	
 
To benefit from this part of the tutorial, readers should
 
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 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, readers can expect
 
to have learned the following:
 

	
 
\begin{itemize}
 

	
 
  \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 LGPLv2.1 and LGPLv3, and how they
 
    differ 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 user has software freedom with respect to a particular program if that
 
user has 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 a subset of a specific program's user base to have these freedoms, while other
 
users of the same version the program 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 with these freedoms as ``Open Source.''
 
Besides having a different political focus from those who call such software
 
by the name ``Free
 
Software'',\footnote{The political differences between the Free Software
 
  Movement and the Open Source Movement are documented on FSF's Web site at
 
  \url{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 that applies to 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.  The Open Source Initiative
 
(\defn{OSI}) (the arbiter of what is considered ``Open Source'') also regards
 
such licenses as inconsistent with its ``Open Source Definition''.
 

	
 
In general, software for which any of these freedoms are restricted in any
 
way is called ``nonfree'' software.  Some use the term ``proprietary
 
software'' more or less interchangeably with ``nonfree software''.  The FSF
 
published a useful
 
\href{http://www.gnu.org/philosophy/categories.html}{explanation of various
 
  types of software and how they relate to one another}.
 

	
 
Keep in mind that 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}
 
\label{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
 
modifications.
 

	
 
\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 from this freedom.  Commercial sharing
 
includes selling copies of Free Software: that is, Free Software can
 
be distributed 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.\footnote{This is still
 
commonly the case, though today there are additional ways of
 
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
 
augmenters 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 mechanisms 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.
 

	
 
\label{explaining-copyright}
 

	
 
The primary legal regime that applies to software is copyright law.
 
Proprietary software exists at all only because copyright law governs
 
software.\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 USA, the
 
Constitution permits, but does not require, the creation of copyright law as
 
federal legislation.  Software, since it is an ``original work 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 USA 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}
 

	
 
In the USA and other countries that
 
are parties to the Berne Convention on Copyright, software is copyrighted
 
automatically by the author when she fixes the software in 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 controls 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 truly in the public domain is \emph{not} licensed
 
in any way.  It is confusing to say software is ``licensed for the
 
public domain,'' or any phrase that implies the copyright holder gave
 
express permission to take actions governed by copyright law.
 

	
 
Copyright holders who state that they are releasing their code into
 
the public domain are effectively renouncing copyright controls on
 
the work.  The law gave the copyright holders exclusive controls over the
 
work, and they chose to waive those controls.  Software that is, in
 
this sense, in the public domain
 
is conceptualized by the developer as having no copyright and thus no 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.  
 
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.
 

	
 
Nevertheless, under USA law it is likely that the typical
 
disclaimers of copyright or public domain dedications we see in the
 
Free Software world would be interpreted by courts as copyright
 
abandonment, leading to a situation in which the user effectively receives a
 
maximum grant of copyright freedoms, similar to a maximally-permissive
 
Free Software license.
 

	
 
The best example of software known to truly be in the public domain is software
 
that is published 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 in the USA.
 

	
 
\subsection{Why Copyright Free Software?}
 

	
license-texts.tex
Show inline comments
 
% license-texts.tex                                                  -*- LaTeX -*-
 
%      Tutorial Text for the Detailed Study and Analysis of GPL and LGPL course
 
%
 
% Copyright (C) 1989, 1991, 1999, 2002 Free Software Foundation, Inc.
 

	
 
\part{Full Texts of the GNU GPL and Related Licenses}
 
\vfill
 

	
 
In this appendix, we include a full copy of GPLv2, GPLv3, LGPLv2.1,
 
LGPLv3, and AGPLv3.  These are the most commonly used licenses in the GPL
 
family of licenses.
 
The remaining appendices include a full copy of GPLv2, GPLv3,
 
LGPLv2.1, LGPLv3, and AGPLv3.  These are the most commonly used licenses in
 
the GPL family of licenses.
 

	
 
\chapter{The GNU General Public License, version 2}
 
\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}
 

	
 

	
 
\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.
 

	
 
\label{GPLv2s3-full-text}
 

	
 
\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}
 
\vfill
 

	
 
\pagebreak[4]
 

	
 
\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:
third-party-citations.tex
Show inline comments
 
new file 100644
 
% attributions.tex                                                  -*- LaTeX -*-
 
%    Part containing all attributions in one place. 
 
%
 
% Copyright (C) 2014, Bradley M. Kuhn
 

	
 
\chapter{Citations of Incorporated Material from Other Published Works}
 

	
 
As a public, collaborative project, this Guide is primarily composed of the
 
many contributions received via its
 
\href{https://gitorious.org/copyleft-org/tutorial/source/master:CONTRIBUTING.md}{public
 
  contribution process}.  Please
 
\href{https://gitorious.org/copyleft-org/tutorial/history/master}{review its
 
  Git logs} for full documentation of all contributions.
 
  
 
Below is a list of CC-By-SA-licensed works, with specific titles and
 
publication dates, from which any material was incorporated into this Guide.
 
The specific methods and details of incorporation are fully
 
documented in the
 
\href{https://gitorious.org/copyleft-org/tutorial/history/master}{Git logs}
 
of the project.
 
  
 
\begin{itemize}
 
\item \textit{Detailed Analysis of the GNU GPL and Related Licenses}, written by
 
Bradley M. Kuhn, Daniel B.~Ravicher, and John Sullivan and published by the Free Software Foundation for its CLE courses on 2004-01-20,
 
2004-08-24, and 2014-03-24.
 
\item \hrefnofollow{http://gplv3.fsf.org/gpl-rationale-2006-01-16.html}{\textit{GPLv3 First Discussion Draft Rationale}}, written and published by the Free
 
  Software Foundation on 2006-01-16.
 
\item \hrefnofollow{http://gplv3.fsf.org/opinions-draft-2.html}{\textit{GPLv3 Second Discussion Draft Rationale}}, written and published by the Free
 
  Software Foundation circa 2006-07.
 
\item \hrefnofollow{http://gplv3.fsf.org/gpl3-dd3-guide}{\textit{GPLv3 Third Discussion Draft Rationale}}, written and published by the Free
 
  Software Foundation on   2007-03-28.
 
\item \hrefnofollow{http://gplv3.fsf.org/dd3-faq}{\textit{GPLv3  Discussion Draft 3 FAQ}}, written and published by the Free1 Software Foundation on   2007-03-28.
 
\item \hrefnofollow{http://gplv3.fsf.org/gpl3-dd4-guide.html}{\textit{GPLv3 Final Discussion Draft Rationale}} written and published by the Free
 
  Software Foundation onon 2007-05-31.
 
\item \hrefnofollow{http://www.gnu.org/licences/gpl3-final-rationale.pdf}{\textit{GPLv3 Final Rationale}}, written and published by the Free
 
  Software Foundation on 2007-06-29.
 
\item \hrefnofollow{http://www.softwarefreedom.org/resources/2008/compliance-guide.html}{\textit{A Practical Guide GPL Compliance}} written by Bradley M. Kuhn, Aaron
 
Williamson and Karen Sandler and first published on 2008-08-20.
 
\item \hrefnofollow{http://www.softwarefreedom.org/resources/2014/SFLC-Guide_to_GPL_Compliance_2d_ed.html}{\textit{Software Freedom Law Center Guide to GPL Compliance, 2nd
 
  Edition}} by Eben Moglen and Mishi Choudhary and first published on 2014-10-31.
 
\item \textit{Enforcement Case Studies}, written by Bradley M. Kuhn and published by the Free
 
  Software Foundation for its CLE courses  on 2004-01-20, 2004-08-24, and 2014-03-24.
 
\end{itemize}
 

	
 
Please note, however, that this list above does not include nor adequately
 
represent the substantial contributions from those who directly
 
contributed to this Guide using its Git (and formerly, CVS) repository.
 
Rather, this is a list of third-party published works from which any text was
 
herein included under their CC-By-SA licensing.  Thus, as the reader might
 
expect, the
 
\href{https://gitorious.org/copyleft-org/tutorial/history/master}{version
 
  control logs} contain the only true and accurate view available of who has
 
contributed which portions of this project.
0 comments (0 inline, 0 general)