comprehensive-gpl-guide.tex 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. % comprehensive-gpl-guide.tex -*- LaTeX -*-
  2. %
  3. % Toplevel file to build the entire book.
  4. \documentclass[10pt, letterpaper, openany, oneside]{book}
  5. % I'm somewhat convinced that this book would be better formatted using
  6. % the memoir class :
  7. % http://www.ctan.org/pkg/memoir
  8. % http://mirror.unl.edu/ctan/macros/latex/contrib/memoir/memman.pdf
  9. % For the moment, I've thrown in fancychap because I don't have time to
  10. % research memoir.
  11. % FIXME: Some overall formatting hacks that would really help:
  12. % * I have started using \hyperref[LABEL]{text} extensively, which seems
  13. % to work great in the PDF and HTML versions, but in the Postscript
  14. % version, the link lost entirely. I think we need an additional command
  15. % to replace \hyperref which takes an optional third argument that will
  16. % insert additional text only when generating print versions, such as:
  17. % \newhyperref[GPLv2s3]{the requirements for binary distribution under
  18. % GPLv2}{(see section~\ref*{GPLv2s3} for more information)}
  19. %
  20. % This is a careful balance, because it'd be all too easy to over-pepper
  21. % the printed version with back/forward references, but there are
  22. % probably times when this is useful.
  23. % * Similar issue: \href{} is well known not to carry the URLs in the print
  24. % versions. Adding a footnote with the URL for the print version is
  25. % probably right. (or maybe a References page?)
  26. % * The text is extremely inconsistent regarding formatting of code and
  27. % commands. The following varied different methods have been used:
  28. % + the \verb%..% inline form
  29. % + verbatim environment (i.e., \begin{verbatim}
  30. % + {\tt }
  31. % + \texttt{}
  32. % + the lstlisting environment (i.e., \begin{lstlisting}
  33. % These should be made consistent, using only two forms: one for line and
  34. % one for a long quoted section.
  35. % FIXME: s/GPL enforcers/COGEOs/g
  36. % (the term coined later but not used throughout) This can't be done
  37. % by rote, since it may not be appropriate everywhere and shouldn't be
  38. % used *before* it's coined in the early portions of
  39. % compliance-guide.tex (and it's probably difficult to coin it earlier
  40. % anyway). BTW, I admit COGEOs isn't the best acronym, but I started
  41. % with ``Community Enforcement Organizations'', which makes CEO, which
  42. % is worse. :) My other opting was COEO, which seemed too close to
  43. % CEO. Suggestions welcome.
  44. \usepackage{listings}
  45. \usepackage{enumerate}
  46. \usepackage{enumitem}
  47. \usepackage[Conny]{fncychap}
  48. \usepackage[dvips]{graphicx}
  49. \usepackage[verbose, twoside, dvips,
  50. paperwidth=8.5in, paperheight=11in,
  51. left=1in, right=1in, top=1.25in, bottom=.75in,
  52. ]{geometry}
  53. % Make sure hyperref is last in the package list. Order matters here, See:
  54. % http://tex.stackexchange.com/questions/77886/fncychap-and-hyperref-messes-up-page-references
  55. \usepackage{hyperref}
  56. \newcommand{\tutorialpartsplit}[2]{#2}
  57. %\input{no-numbers-on-table-of-contents}
  58. \providecommand{\hrefnofollow}[2]{\href{#1}{#2}}
  59. \hypersetup{pdfinfo={Title={Copyleft and the GNU General Public License: A Comprehensive Tutorial and Guide}}}
  60. \begin{document}
  61. \pagestyle{plain}
  62. \pagenumbering{roman}
  63. \frontmatter
  64. \begin{titlepage}
  65. \begin{center}
  66. {\Huge
  67. {\sc Copyleft and the \\
  68. GNU General Public License:
  69. \vspace{.25in}
  70. A Comprehensive Tutorial \\
  71. \vspace{.1in}
  72. and Guide
  73. }}
  74. \vfill
  75. {\parindent 0in
  76. \begin{tabbing}
  77. Copyright \= \copyright{} 2003--2005, 2008, 2014--2015, 2018 \hspace{1.mm} \= \kill
  78. Copyright \> \copyright{} 2018 \> Chestek Legal. \\
  79. Copyright \> \copyright{} 2003--2005, 2008, 2014--2015, 2018 \> Bradley M. Kuhn. \\
  80. Copyright \> \copyright{} 2014--2015 \> Anthony K. Sebro, Jr. \\
  81. Copyright \= \copyright{} 2014 \> Denver Gingerich. \\
  82. Copyright \= \copyright{} 2003--2007, 2014 \> Free Software Foundation, Inc. \\
  83. Copyright \> \copyright{} 2008, 2014 \> Software Freedom Law Center. \\
  84. \end{tabbing}
  85. \vspace{.3in}
  86. The copyright holders grant the freedom to copy, modify, convey,
  87. adapt, and/or redistribute this work (except
  88. Appendices~\ref{GPLv2-full-text}--\ref{AGPLv3-full-text}) under the terms of the Creative Commons
  89. Attribution Share Alike 4.0 International License. A copy of that license is
  90. available at \url{https://creativecommons.org/licenses/by-sa/4.0/legalcode}.
  91. Appendices~\ref{GPLv2-full-text}--\ref{AGPLv3-full-text} include copies of the texts of various licenses published
  92. by the FSF, and they are all licensed under the license, ``Everyone is permitted
  93. to copy and distribute verbatim copies of this license document, but changing
  94. it is not allowed.''. However, those who seek to make modified versions of
  95. those licenses should note the
  96. \href{https://www.gnu.org/licenses/gpl-faq.html#ModifyGPL}{explanation given in the GPL FAQ}.
  97. \vfill
  98. As a public, collaborative project, this Guide is primarily composed of the
  99. many contributions received via its
  100. \href{https://k.copyleft.org/guide/files/master/CONTRIBUTING.md}{public
  101. contribution process}. Please
  102. \href{https://k.copyleft.org/guide/changelog/master/}{review its
  103. Git logs} for full documentation of all contributions, and
  104. Appendix~\ref{third-party-citation-list}
  105. contains a list of third-party works from which some material herein was
  106. adapted.
  107. The most recent version is
  108. available online at \url{https://copyleft.org/guide/}. Patches
  109. are indeed welcome to this material. Sources can be found in the Git
  110. repository at \url{https://k.copyleft.org/guide/}.
  111. }
  112. \end{center}
  113. \end{titlepage}
  114. \tableofcontents
  115. \chapter{Preface}
  116. This tutorial is the culmination of nearly a decade of studying and writing
  117. about software freedom licensing and the GPL\@. Each part of this tutorial
  118. is a course unto itself, educating the reader on a myriad of topics from the
  119. deep details of the GPLv2 and GPLv3, common business models in the copyleft
  120. licensing area (both the friendly and unfriendly kind), best practices for
  121. compliance with the GPL, for engineers, managers, and lawyers, as well as
  122. real-world case studies of GPL enforcement matters.
  123. It is unlikely that all the information herein is necessary to learn all at
  124. once, and therefore this tutorial likely serves best as a reference book.
  125. The material herein has been used as the basis for numerous live tutorials
  126. and discussion groups since 2002, and the materials have been periodically
  127. updated. They likely stand on their own as excellent reference material.
  128. However, if you are reading these course materials without attending a live
  129. tutorial session, please note that this material is merely a summary of the
  130. highlights of the various CLE and other tutorial courses based on this
  131. material. Please be aware that during the actual courses, class discussion
  132. and presentation supplements this printed curriculum. Simply reading this
  133. material is \textbf{not equivalent} to attending a course.
  134. \mainmatter
  135. % FIXME: We need an Introduction. I think ideally it goes here, before Part
  136. % I. The introduction should cover initially:
  137. %
  138. %
  139. % * Why we cover the topics in the order that we do, in particular, why
  140. % we discuss all GPLv2 before mentioning GPLv3 (i.e., explain why we
  141. % take a diachronic approach to study of GPL).
  142. %
  143. % * It should briefly discuss Free Culture / Software Freedom stuff.
  144. % Maybe some early material currently living in gpl-lgpl.tex should move
  145. % to the introduction, maybe not. The goal is to prepare for the
  146. % moment when we can merge in material about CC-BY-SA.
  147. \input{gpl-lgpl}
  148. \input{compliance-guide}
  149. \input{enforcement-case-studies}
  150. \appendix
  151. \part{Appendices}
  152. \input{third-party-citations}
  153. \input{license-texts}
  154. \end{document}