gpl-installation.tex 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. % Copyright (C) 2018, Bradley M. Kuhn
  2. % License: CC-BY-SA-4.0
  3. \documentstyle[twocolumn]{article}
  4. \pagestyle{empty}
  5. \begin{document}
  6. %don't want date printed
  7. \date{}
  8. %make title bold and 14 pt font (Latex default is non-bold, 16 pt)
  9. \title{\Large\bf A Comprehensive Consideration of Installation Requirements of the GPL}
  10. %for two authors (this is what is printed)
  11. \author{\begin{tabular}[t]{c@{\extracolsep{8em}}c@{\extracolsep{8em}}c}
  12. Bradley M. Kuhn & Behan Webster \\
  13. Software Freedom Conservancy, Inc. & Converse In Code
  14. \end{tabular}
  15. }
  16. \thispagestyle{empty}
  17. \maketitle
  18. \subsection*{\centering Abstract}
  19. The GNU General License (``GPL'') is the most widely used \textit{copyleft}
  20. license for software. Copyleft licenses function as copyright license in
  21. atypical manner: rather than restricting permission to copy, modify and
  22. redistribute the software, copyleft licenses encourage and enable such
  23. activities. However, these license have strict requirements that mandate
  24. further software sharing by enabling downstream users to easily improve,
  25. modify, and upgrade the copylefted software on their own.
  26. GPL has two versions in common use: version 2 (``GPLv2'') and version 3
  27. (``GPLv3''). Both versions require those who redistribute the software to
  28. provide information related to the installation of software modified by
  29. downstream. These installation requirements, however, differ somewhat in
  30. their details. While some business practices around license compliance
  31. efforts have reached adequate sophistication to address simpler compliance
  32. problems, firms have generally given inadequate attention to the installation
  33. requirements of both common versions of GPL\@. Misunderstanding of these
  34. clauses is often common, and violations related to installation instructions
  35. remain prevalent.
  36. Furthermore, perceived differences in the requirements, and lack of rigorous
  37. study of the Installation Information requirements of GPLv3\S6 has allowed
  38. rumor and impression, rather than a textually grounded adherence to the
  39. written rules, to govern industry response in adoption of software licensed
  40. under GPLv3. The resulting scenario often causes redistributors to assume
  41. the GPLv2 has \textbf{no} requirements regarding installation information,
  42. and that GPLv3's requirements in this regard are impossible to meet,
  43. particularly in security-conscious embedded products.
  44. This paper explores the installation provisions of both common versions of
  45. GPL, discusses historical motivations and context for each, and suggests best
  46. practices regarding installation information for firms that redistribute
  47. software under both licenses.
  48. \section{Introduction}
  49. Free, Libre and Open Source (``FLOSS'') licenses are typically categorized as
  50. either copyleft or non-copyleft licenses. The license compliance demands of
  51. most non-copyleft licenses typically center purely around issues of author
  52. attribution, and thus are straightforwardly addressed by license compliance
  53. programs such as OpenChain and SPDX, which focus on the details of properly
  54. annotating licensing information for software in the supply-chain to assure
  55. proper downstream license and related author credit notification.
  56. Copyleft licenses do indeed require proper downstream license and credit
  57. notification, and thus we can broadly model copyleft license requirements as
  58. a proper superset of those requirements of non-copyleft licenses. The
  59. compliance subset of license annotation is a well-studied problem, and many
  60. automation tools exist and remain under active development to assist in these
  61. aspects of compliance. Unfortunately, the nascent state of industry
  62. compliance efforts currently means that firms are often ill-equipped to
  63. handle the additional requirements of copyleft licenses.
  64. In particular, software copyleft licenses are specifically designed to
  65. promulgate a transparent agenda to champion the rights of downstream users to
  66. effectively and easily copy, modify, reinstall and redistribute the software
  67. both commercially and non-commercially. Proper verification of source code
  68. for license compliance generally cannot be automated. Indeed, given that
  69. program equivalence (often colloquially called the ``Halting Problem'') was
  70. mathematically proven as an undecidable problem in the computing subfield of
  71. Theory of Computation, we know that a generalized solution that shows
  72. specific source code corresponds to a specific set of binaries remains
  73. unsolvable in the general case.
  74. We do expect automation tools that approximate solutions for the specific
  75. cases of most interest to adopter of copylefted software to eventually exist.
  76. Currently, much research and industry attention has turned toward the
  77. software engineering problem of ``reproducible builds''. We find this area
  78. of endeavor directly applicable to the requirements of copyleft license
  79. compliance, and believe that reproducible build techniques will eventually
  80. become as common for compliance with source code provisioning terms of
  81. FLOSS licenses as SPDX and OpenChain are for the license notice and
  82. attribution requirements are today.
  83. However, even that solution, when it exists, will not fully satisfy the goals
  84. of many firms. Frankly, most firms do not share the idealistic goals of
  85. software freedom activists who design copyleft licenses. These activists
  86. seek to defends the rights of software users by creating copyleft licenses
  87. that mandate source code provisioning, which include the rights to modify and
  88. install modified versions of the software. However, in what the inventor of
  89. copyleft, Richard M.~Stallman, called ``pragmatic idealism'', copyleft
  90. licenses make reasonable trade-offs regarding how much disclosure is required
  91. to downstream. While conventional wisdom often considered copyleft licenses
  92. to contain substantial and complicated requirements, ultimately the
  93. requirements are substantially more permissive than most industry-standard
  94. proprietary licenses, which often complete prohibit redistribution of the
  95. software and disclose absolutely no source code. Copyleft licenses typically
  96. make a clear compromise between maximal software freedom for the downstream
  97. recipient and permission for firms to distribute proprietary software in
  98. aggregation with copylefted software.
  99. By way of hypothetical counterexample, consider this possible ``copyleft''
  100. license that one might create:
  101. \begin{quotation}
  102. \begin{center}
  103. {\Large The Unreasonably Overly Broad Copyleft License}
  104. If you distribute this software in any form, you agree to publicly release
  105. the complete source code of all software that you and your successors in
  106. interest write, in any form, for perpetuity.
  107. \end{quotation}
  108. Besides likely being unenforceable for various reasons, firms would quickly
  109. ban all software under this license, and ban all employees from ever using
  110. such software at home or work. A highly broad license of this nature, even
  111. if succeeded in the very short term in a few instances, would fail long-term
  112. to reach the long term goal of maximizing software freedom for users.
  113. Copyleft, therefore, must find a balance between two competing goals:
  114. \begin{itemize}
  115. \item Ensure the rights to copy, share, modify, redistribute,
  116. and reinstall the software for downstream users.
  117. \item Entice firms that do not seek the same goals as the activists to adopt,
  118. share and improve the copylefted software to assure its promulgation.
  119. \end{itemize}
  120. In essence, much FLOSS licensing balances these competing goals.
  121. Non-copyleft licenses favor the latter much more than the former, and
  122. copyleft licenses seek to create an optimal policy between the ``maximal
  123. software freedom'' vs. ``adoption and popularity'' dichotomy, to assure that
  124. in the long term, users have these specific rights, but also allow for short
  125. term interest of firms and individuals alike who may not share the software
  126. freedom activist perspective.
  127. \section{Historical Background}
  128. Despite the awareness of copyleft activists, the adoption of copyleft
  129. licenses has been wrought with acrimony and accusation. To our knowledge,
  130. there are no specific empirical studies of attitudes and reasoning why firms
  131. initially rejected copyleft (and that some still do). However, consideration
  132. of anecdotes can illuminate study of the reasons why confusion exists
  133. regarding copyleft licensing requirements in general, and in particular
  134. (which will be the focus of this article) the installation requirements of
  135. the GNU General Public License (``GPL'').
  136. The Free Software Foundation (``FSF''), which is the license steward for all
  137. existing versions of the GPL, was the first to license software under GPL\@.
  138. Released in 1991, GPLv2 came into wide use by other software authors,
  139. including those of Linux. During the 1990s, the alternative body of software
  140. released under GPLv2 gained slow but steady adoption, until major firms could
  141. no longer ignore it.
  142. In 2001, Microsoft launched a series of political attacks against the GPL\@.
  143. Over a period of months, various Microsoft executives called the GPL
  144. ``unAmerican'' and a ``cancer'' on the software industry. This was the first
  145. time most in the industry had ever heard of the GPL, and the rhetoric created
  146. the expected fervor.
  147. The industry context of the time was the growing adoption of GPL'd software,
  148. and Linux, in particular, by firms. While Microsoft was not the first to
  149. draw negative attention to GPL's copyleft provisions, but sadly the
  150. misunderstandings launched in these attacks remain with us today.
  151. Adoption of FLOSS grew quickly in the last two decades. License compliance
  152. and FLOSS supply-chain adoption techniques have become essential components
  153. of most large firms along with this adoption. However, these tools and
  154. procedures have focused on the straightforward problems of license notice,
  155. attribution, and supply-chain FLOSS inclusion discovery techniques. The
  156. finer points of copyleft license compliance, particularly source code
  157. provisioning and installation requirements of GPL, remain often
  158. misunderstood, and sometimes outright ignored.
  159. Historically, firms have often reacted to the two popular versions of the GPL
  160. in the same pattern. During the feverish anti-copyleft rhetoric of the
  161. 1990s, firms widely considered the GPLv2 as a toxic license they could not
  162. abide. Eventually, executives and lawyers at major firms learned what their
  163. engineers often already knew: that GPLv2 was not unreasonable, its
  164. requirements were well understood and could be respected by businesses that
  165. produced both FLOSS and proprietary products.
  166. We now see the same process happening, albeit much more slowly, with GPLv3.
  167. We hear rhetoric drawing attention to perceived differences between GPLv2's
  168. and GPLv3's requirements, which seem untenable to firms, some of whom
  169. maintain GPLv2'd forks of projects that have moved on to the
  170. ``GPLv3-or-later'' upstream. It is our view that if firms give some
  171. attention to the history of ``slow but sure'' adoption of copyleft licenses,
  172. after careful study of the compliance requirements, that GPLv3 requirements
  173. can become as acceptable as the GPLv2 requirements already are. This paper
  174. provides analysis, guidance and explanation of a set of specific terms in
  175. GPLv3 that some firms have declared untenable: GPLv3's updated Installation
  176. Information requirements. It is our hope that this detailed analysis will
  177. replace rumor and supposition about GPLv3 requirements with cool-headed
  178. consideration of the trade-offs between avoiding GPLv3 and meeting those
  179. requirements --- just as firms did in the late 1990s with GPLv2.
  180. \section{GPLv2 Installation Requirements}
  181. As discussed in the previous section, firms have generally been completely
  182. comfortable
  183. \end{document}