2014-02-20 15:33:16 +00:00
|
|
|
% comprehensive-gpl-guide.tex -*- LaTeX -*-
|
|
|
|
%
|
|
|
|
% Toplevel file to build the entire book.
|
2014-03-15 15:48:28 +00:00
|
|
|
\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.
|
|
|
|
|
2014-11-09 17:20:32 +00:00
|
|
|
|
|
|
|
% 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?)
|
|
|
|
|
2014-11-09 19:07:02 +00:00
|
|
|
% * 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.
|
|
|
|
|
2014-11-10 23:56:14 +00:00
|
|
|
|
|
|
|
|
|
|
|
% 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.
|
|
|
|
|
2014-02-20 17:39:24 +00:00
|
|
|
\usepackage{hyperref}
|
2014-11-07 13:39:24 +00:00
|
|
|
\usepackage{listings}
|
2014-02-20 15:33:16 +00:00
|
|
|
\usepackage{enumerate}
|
Integrate pasted & commented out text for GPLv3§7.
The pasted text, most of which was useful, is now integrated as the
desired laundry-list of GPLv3§7 subsection explanations.
This also allowed for easy integration of some of the older
commented-out text that originally came from GPLv3 rationale documents.
Meanwhile, however, I discovered, upon more careful examination of the
pasted text, a serious and grave error regarding GPLv3§7(d).
Specifically, GPLv3§7(d) makes the modern "third clause" of the 3-Clause
BSD compatible with the GPL, *not* the problematic old-school BSD
advertising clause (from the 4-Clause BSD).
I'm amazed that anyone versed in licensing could make this error,
frankly, and readers should be told, since other materials are now
disseminated by others, that the point is incorrect. Therefore, I've
not only noted the correct compatibility conclusion, but also
affirmatively identified the incorrectness of the wrong conclusion that
was previously added via the pasted text from SFLC's "Guide".
Finally, on a LaTeX formatting note, the enumitem package is now needed
since I'm using that for the list of GPLv3§7 subsections.
2014-11-13 15:28:38 +00:00
|
|
|
\usepackage{enumitem}
|
2014-03-16 20:24:44 +00:00
|
|
|
\usepackage[Conny]{fncychap}
|
2014-02-20 15:33:16 +00:00
|
|
|
\usepackage[dvips]{graphicx}
|
2014-02-20 15:46:57 +00:00
|
|
|
\usepackage[verbose, twoside, dvips,
|
|
|
|
paperwidth=8.5in, paperheight=11in,
|
|
|
|
left=1in, right=1in, top=1.25in, bottom=.75in,
|
|
|
|
]{geometry}
|
2014-02-20 15:33:16 +00:00
|
|
|
|
2014-03-16 20:21:58 +00:00
|
|
|
\newcommand{\tutorialpartsplit}[2]{#2}
|
|
|
|
|
2014-02-20 18:37:23 +00:00
|
|
|
%\input{no-numbers-on-table-of-contents}
|
2014-02-20 15:55:51 +00:00
|
|
|
|
2014-11-07 16:35:13 +00:00
|
|
|
\hypersetup{pdfinfo={Title={Copyleft and the GNU General Public License: A Comprehensive Tutorial and Guide}}}
|
|
|
|
|
|
|
|
\begin{document}
|
2014-11-06 17:34:18 +00:00
|
|
|
|
2014-02-20 15:33:16 +00:00
|
|
|
\pagestyle{plain}
|
|
|
|
\pagenumbering{roman}
|
|
|
|
|
|
|
|
\frontmatter
|
|
|
|
|
|
|
|
\begin{titlepage}
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
|
2014-02-20 15:46:44 +00:00
|
|
|
{\Huge
|
|
|
|
{\sc Copyleft and the \\
|
2014-02-20 15:33:16 +00:00
|
|
|
|
2014-02-20 15:46:44 +00:00
|
|
|
GNU General Public License:
|
|
|
|
|
|
|
|
\vspace{.25in}
|
|
|
|
|
2014-11-07 16:35:13 +00:00
|
|
|
A Comprehensive Tutorial \\
|
|
|
|
|
2014-11-09 21:11:45 +00:00
|
|
|
\vspace{.1in}
|
|
|
|
|
2014-11-07 16:35:13 +00:00
|
|
|
and Guide
|
2014-02-20 15:46:44 +00:00
|
|
|
}}
|
2014-02-20 15:33:16 +00:00
|
|
|
\vfill
|
|
|
|
|
|
|
|
{\parindent 0in
|
2014-02-20 18:37:39 +00:00
|
|
|
\begin{tabbing}
|
2014-11-07 02:30:53 +00:00
|
|
|
Copyright \= \copyright{} 2003--2007, 2014 \hspace{1.mm} \= \kill
|
2014-03-20 13:59:16 +00:00
|
|
|
Copyright \> \copyright{} 2014 \> Bradley M. Kuhn. \\
|
|
|
|
Copyright \> \copyright{} 2014 \> Anthony K. Sebro, Jr. \\
|
2014-11-09 16:09:56 +00:00
|
|
|
Copyright \= \copyright{} 2014 \> Denver Gingerich \\
|
|
|
|
Copyright \= \copyright{} 2003--2007, 2014 \> \hspace{.2in} Free Software Foundation, Inc. \\
|
Incorporate useful text from a third party work.
Software Freedom Law Center, a small law firm specializing in Open
Source, recently published its so-called "Guide to GPL Compliance,
Second Edition":
http://softwarefreedom.org/resources/2014/SFLC-Guide_to_GPL_Compliance_2d_ed.html
The Firm's document is substantially less comprehensive than this one;
however, their document contained a few phrases and paragraphs that
seemed useful and accurate. This commit incorporates the useful
material from that work into this one (as permitted by the CC BY-SA 4.0
license, which the Software Freedom Law Center applied to their work).
The useful sections have been pasted without proper textual integration
into the appropriate sections of this tutorial. A few are currently
commented out entirely and marked with appropriate FIXME's. Meanwhile,
the text that seems immediately useful is *not* commented out, and is
marked with "FIXME-URGENT". Additional work is now required to
integrate the new text properly into this tutorial.
Careful readers who compare this commit with The Firm's document will
find that I passed on inclusion of some seemingly useful material.
Unfortunately, The Firm's text contained some inaccuracies, and frames
discussion primarily from a for-profit perspective. More disturbingly,
a few statements even directly contradicted the FSF's stated policies.
Of course, The Firm clearly claims "this document does not express the
views, intentions, policy, or legal analysis of any SFLC clients or
client organizations", but I could not in good conscience adopt, as the
official advice in this tutorial, any text that conflicts with the FSF's
policies, nor will I incorporate any puffery that subtly kowtows to
for-profit corporate interests.
Nevertheless, given The Firm's perceived stature, I briefly considered
including policy-conflicting statements, attributing them as alternative
third-party opinions; many of the FSF's own opinions were already
incorporated in that manner earlier this year. Indeed, I will not prima
facie reject future patches that integrate such statements naturally for
this tutorial. However, I feel that the didactic value of including The
Firm's attributed dissenting opinions in this tutorial does not outweigh
my editing effort required for such additional textual integration.
Regarding Software Freedom Law Center's copyrights included herein,
I took the following specific actions to comply with CC By SA 4.0:
§3(a)(1)(a)(i): This log message indicates Software Freedom Law Center
as the source of the material herein committed.
§3(a)(1)(a)(i): Copyright notices at the top level of the document,
as well as those in individual parts, are updated to
include the 2014 copyright notice from the Software
Freedom Law Center.
§3(a)(1)(a)(ii-v): The project already referred to and included a copy
§3(b)(1): of CC BY SA 4.0 International and its URL.
§3(a)(2): The attribution information is fully included in
this Git repository.
§3(a)(3): I and this project have received no such request.
§3(b)(1): The license of the larger work was already
CC BY SA 4.0 International.
§3(b)(3): No such conditions are imposed.
2014-11-10 21:21:53 +00:00
|
|
|
Copyright \> \copyright{} 2008, 2014 \> Software Freedom Law Center. \\
|
2014-02-20 18:37:39 +00:00
|
|
|
\end{tabbing}
|
2014-03-20 13:59:16 +00:00
|
|
|
|
2014-02-20 15:33:16 +00:00
|
|
|
\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
|
2014-11-06 21:04:45 +00:00
|
|
|
available at \url{https://creativecommons.org/licenses/by-sa/4.0/legalcode}.
|
2014-02-20 15:33:16 +00:00
|
|
|
|
2014-02-20 18:37:39 +00:00
|
|
|
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.
|
|
|
|
|
2014-11-09 10:51:28 +00:00
|
|
|
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
|
2014-02-20 18:37:39 +00:00
|
|
|
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
|
2014-02-20 17:39:24 +00:00
|
|
|
those licenses should note the
|
2014-03-19 20:49:09 +00:00
|
|
|
\href{https://www.gnu.org/licenses/gpl-faq.html#ModifyGPL}{explanation given in the GPL FAQ}.
|
2014-02-20 17:39:24 +00:00
|
|
|
|
2014-03-21 02:01:07 +00:00
|
|
|
\vfill
|
|
|
|
|
2014-03-21 01:44:56 +00:00
|
|
|
Patches are welcome to this material. Sources can be found in the Git
|
|
|
|
repository at: \url{https://gitorious.org/gpl-compliance-tools/tutorial/}
|
2014-02-20 15:33:16 +00:00
|
|
|
}
|
|
|
|
\end{center}
|
2014-02-20 15:55:18 +00:00
|
|
|
|
2014-02-20 15:33:16 +00:00
|
|
|
\end{titlepage}
|
|
|
|
|
2014-02-20 15:55:18 +00:00
|
|
|
\tableofcontents
|
|
|
|
|
2014-02-20 15:33:16 +00:00
|
|
|
\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
|
2014-03-15 15:06:33 +00:00
|
|
|
compliance with the GPL, for engineers, managers, and lawyers, as well as
|
2014-02-20 15:33:16 +00:00
|
|
|
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
|
2014-03-15 15:06:38 +00:00
|
|
|
and presentation supplements this printed curriculum. Simply reading this
|
|
|
|
material is \textbf{not an equivalent} for attending a course.
|
2014-02-20 15:33:16 +00:00
|
|
|
|
|
|
|
\mainmatter
|
|
|
|
|
|
|
|
\input{gpl-lgpl}
|
|
|
|
|
2014-02-20 17:46:33 +00:00
|
|
|
\input{compliance-guide}
|
2014-02-20 15:33:16 +00:00
|
|
|
|
2014-02-20 17:50:53 +00:00
|
|
|
\input{enforcement-case-studies}
|
2014-02-20 15:33:16 +00:00
|
|
|
|
2014-02-20 17:26:52 +00:00
|
|
|
\appendix
|
|
|
|
|
|
|
|
\input{license-texts}
|
|
|
|
|
|
|
|
|
2014-02-20 15:33:16 +00:00
|
|
|
\end{document}
|