guide/comprehensive-gpl-guide.tex

203 lines
7.5 KiB
TeX
Raw Normal View History

% 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.
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?)
% * 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{listings}
\usepackage{enumerate}
\usepackage{enumitem}
\usepackage[Conny]{fncychap}
\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}
% Make sure hyperref is last in the package list. Order matters here, See:
% http://tex.stackexchange.com/questions/77886/fncychap-and-hyperref-messes-up-page-references
\usepackage{hyperref}
\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--2005, 2008, 2014--2015 \hspace{1.mm} \= \kill
Copyright \> \copyright{} 2003--2005, 2008, 2014--2015 \> Bradley M. Kuhn. \\
Copyright \> \copyright{} 2014--2015 \> Anthony K. Sebro, Jr. \\
Copyright \= \copyright{} 2014 \> Denver Gingerich. \\
Copyright \= \copyright{} 2003--2007, 2014 \> 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. \\
\end{tabbing}
\vspace{.3in}
The copyright holders grant the freedom to copy, modify, convey,
adapt, and/or redistribute this work (except
Appendices~\ref{GPLv2-full-text}--\ref{AGPLv3-full-text}) 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}.
Appendices~\ref{GPLv2-full-text}--\ref{AGPLv3-full-text} include 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
As a public, collaborative project, this Guide is primarily composed of the
many contributions received via its
\href{https://k.copyleft.org/guide/files/master/CONTRIBUTING.md}{public
contribution process}. Please
\href{https://k.copyleft.org/guide/changelog/master/}{review its
Git logs} for full documentation of all contributions, and
Appendix~\ref{third-party-citation-list}
contains a list of third-party works from which some material herein was
adapted.
The most recent version is
available online at \url{https://copyleft.org/guide/}. Patches
are indeed welcome to this material. Sources can be found in the Git
repository at \url{https://k.copyleft.org/guide/}.
}
\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
2014-03-15 15:06:33 +00:00
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
2014-03-15 15:06:38 +00:00
and presentation supplements this printed curriculum. Simply reading this
material is \textbf{not equivalent} to attending a course.
\mainmatter
% FIXME: We need an Introduction. I think ideally it goes here, before Part
% I. The introduction should cover initially:
%
%
% * Why we cover the topics in the order that we do, in particular, why
% we discuss all GPLv2 before mentioning GPLv3 (i.e., explain why we
% take a diachronic approach to study of GPL).
%
% * It should briefly discuss Free Culture / Software Freedom stuff.
% Maybe some early material currently living in gpl-lgpl.tex should move
% to the introduction, maybe not. The goal is to prepare for the
% moment when we can merge in material about CC-BY-SA.
\input{gpl-lgpl}
\input{compliance-guide}
\input{enforcement-case-studies}
\appendix
\part{Appendices}
\input{third-party-citations}
\input{license-texts}
\end{document}