diff --git a/compliance-guide.tex b/compliance-guide.tex index 68c50d7..cc58df9 100644 --- a/compliance-guide.tex +++ b/compliance-guide.tex @@ -807,7 +807,7 @@ once you open the channels of communication in a friendly way. \section{Termination} -Many redistributors overlook GPL's termination provision (GPLv2~\S~4 and +Many redistributors overlook the GPL's termination provision (GPLv2~\S~4 and GPLv3~\S~8). Under v2, violators forfeit their rights to redistribute and modify the GPL'd software until those rights are explicitly reinstated by the copyright holder. In contrast, v3 allows violators to rapidly resolve @@ -880,12 +880,12 @@ copyright holders often require. often want a company to demonstrate compliance for all GPL'd software in a distribution, not just their own. A copyright holder may refuse to reinstate your right to distribute one program unless and until you - comply with the licenses of all Open Source and Free Software in your distribution. + comply with the licenses of all Free Software in your distribution. \item {\bf Notification to past recipients}. Users to whom you previously distributed non-compliant software should receive a communication (email, letter, bill insert, etc.) indicating the violation, describing - their rights under GPL, and informing them how to obtain a gratis source + their rights under the GPL, and informing them how to obtain a gratis source distribution. If a customer list does not exist (such as in reseller situations), an alternative form of notice may be required (such as a magazine advertisement). @@ -893,7 +893,7 @@ copyright holders often require. \item {\bf Appointment of a GPL Compliance Officer.} The software freedom community values personal accountability when things go wrong. Copyright holders often require that you name someone within the violating company - officially responsible for Open Source and Free Software license compliance, and that this + officially responsible for Free Software license compliance, and that this individual serve as the key public contact for the community when compliance concerns arise. diff --git a/gpl-lgpl.tex b/gpl-lgpl.tex index 005c292..d59caff 100644 --- a/gpl-lgpl.tex +++ b/gpl-lgpl.tex @@ -76,7 +76,7 @@ the GPL (and GPL'd software) successfully both as a community-building software into a new Free Software business and in existing, successful enterprises. -To successfully benefit of from this part of the tutorial, readers should +To successfully 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 @@ -330,7 +330,7 @@ to serve that sub-community. 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 mechanism were ultimately +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. @@ -361,7 +361,7 @@ 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 works of authorship +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 @@ -394,7 +394,7 @@ 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 control of copyright +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 @@ -544,7 +544,7 @@ Generally speaking, copyright law operates similarly enough in countries that have signed the Berne Convention on Copyright, and software freedom licenses have generally taken advantage of this international standardization of copyright law. However, copyright law does differ from country to country, -and commonly, software freedom licenses like GPL must be considered under the +and commonly, software freedom licenses like the GPL must be considered under the copyright law in the jurisdiction where any licensing dispute occurs. Those who are most familiar with the USA's system of copyright often are @@ -565,7 +565,7 @@ introduced the idea of \textit{copyleft}: a licensing mechanism to use copyright to not only grant software freedom to users, but also to uphold those rights against those who might seek to curtail them. -Copyleft, as defined in \S~\ref{copyleft-definition}, is a general term this +Copyleft, as defined in \S~\ref{copyleft-definition}, is a general term for this mechanism. The remainder of this text will discuss details of various real-world implementations of copyleft -- most notably, the GPL\@. @@ -574,7 +574,7 @@ able to do in software development communities. After that brief discussion in this section, deeper discussion of how GPL accomplishes this in practice follows in the next chapter. -Simply put, though, the GPL ultimately creates an community of equality for +Simply put, though, the GPL ultimately creates a community of equality for both business and noncommercial users. \subsection{The Noncommercial Community} @@ -593,7 +593,7 @@ commons. Users can trust the developers, because they know that if the developers fail to address their needs or abandon the project, the GPL ensures that someone else has the right to pick up development. Developers know that the users cannot redistribute their software without -passing along the rights granted by GPL, so they are assured that every +passing along the rights granted by the GPL, so they are assured that every one of their users is treated equally. Because of the symmetry and fairness inherent in GPL'd distribution, @@ -627,7 +627,7 @@ that because of the nature of the GPL that improvements that were distributed in the commercial environment could easily be folded back into the standard version. Companies are not permitted to proprietarize Samba, so the noncommercial users, and even other commercial users are -safe in the knowledge that the software freedom ensured by GPL will remain +safe in the knowledge that the software freedom ensured by the GPL will remain protected. Commercial developers also work in concert with noncommercial @@ -903,7 +903,7 @@ GPLv3 and its terms are discussed in detail in Chapter\~ref{GPLv3}. \section{The Innovation of Optional ``Or Any Later'' Version} -An interesting fact of all GPL licenses is that the are ultimate multiple +An interesting fact of all GPL licenses is that there are ultimately multiple choices for use of the license. The FSF is the primary steward of GPL (as discussed later in \S~\ref{GPLv2s9} and \S~\ref{GPLv3s14}). However, those who wish to license works under GPL are not required to automatically accept @@ -917,11 +917,11 @@ Each licensor may chose three different methods of licensing, as follows: indicated in shorthand by saying the license is ``GPLv$X$-only''), or \item name no version of the GPL, thus they allow their downstream recipients - to select any version of the GPL they chose (usually indicated in shorthand + to select any version of the GPL they choose (usually indicated in shorthand by saying the license is simply ``GPL''), or \item name a specific version of GPL and give downstream recipients the - option to chose that version ``or any later version as published by the + option to choose that version ``or any later version as published by the FSF'' (usually indicated by saying the license is ``GPLv$X$-or-later'')\footnote{The shorthand of ``GPL$X+$'' is also popular for this situation. The authors of this tutorial prefer ``-or-later'' @@ -952,7 +952,7 @@ to use any version of those licenses to automatically accept and relicense their copyrighted works under new versions. Of course ,Creative Commons, the Eclipse Foundation, and the Mozilla Foundation (like the FSF) have generally served as excellent stewards of their licenses. Copyright holders using -those licenses seems to find it acceptable that to fully delegate all future +those licenses seems to find it acceptable to fully delegate all future licensing decisions for their copyrights to these organizations without a second thought. @@ -979,14 +979,12 @@ increase adoption by for-profit companies --- GPLv2 remains a widely used and extremely popular license. The GPLv2 is, no doubt, a good and useful license. -However, unlike GPLv1, which (as pointed out in \S~\ref{GPLv1}), which is -completely out of use by the mid-1990s. However, unlike GPLv1 before it, -GPLv2 remains a integral part of the copyleft licensing infrastructure for -some time to come. As such, those who seek to have expertise in current +However, unlike GPLv1 before it, +GPLv2 remains an integral part of the copyleft licensing infrastructure. As such, those who seek to have expertise in current topics of copyleft licensing need to study both the GPLv2 and GPLv3 family of licenses. -Furthermore, GPLv3 can is more easily understood by first studying GPLv2. +Furthermore, GPLv3 is more easily understood by first studying GPLv2. This is not only because of their chronological order, but also because much of the discussion material available for GPLv3 tends to talk about GPLv3 in contrast to GPLv2. As such, a strong understanding of GPLv2 helps in @@ -1006,7 +1004,7 @@ simplest rights that the user receives. \section{GPLv2~\S0: Freedom to Run} \label{GPLv2s0} -GPLv2~\S0, the opening section of GPLv2, sets forth that the copyright law governs +GPLv2~\S0, the opening section of GPLv2, sets forth that copyright law governs the work. It specifically points out that it is the ``copyright holder'' who decides if a work is licensed under its terms and explains how the copyright holder might indicate this fact. @@ -1027,11 +1025,11 @@ to fair and unregulated uses. Fair use (called ``fair dealing'' in some jurisdictions) of copyrighted material is an established legal doctrine that permits certain activities -regardless of whether copyright law would other restrict those activities. +regardless of whether copyright law would otherwise restrict those activities. Discussion of the various types of fair use activity are beyond the scope of this tutorial. However, one important example of fair use is the right to -quote portions of the text in larger work so as to criticize or suggest -changes. This fair use rights is commonly used on mailing lists when +quote portions of the text in a larger work so as to criticize or suggest +changes. This fair use right is commonly used on mailing lists when discussing potential improvements or changes to Free Software. Fair use is a doctrine established by the courts or by statute. By @@ -1040,7 +1038,7 @@ nor determined by a court to be covered, but are common and enjoyed by many users. An example of unregulated use is reading a printout of the program's source code like an instruction book for the purpose of learning how to be a better programmer. The right to read something that you have -access is and should remain unregulated and unrestricted. +access to is and should remain unregulated and unrestricted. \medskip @@ -1101,14 +1099,14 @@ Also mentioned by name is the warranty disclaimer. Most people today do not believe that software comes with any warranty. Notwithstanding the \href{http://mlis.state.md.us/2000rs/billfile/hb0019.htm}{Maryland's} and \href{http://leg1.state.va.us/cgi-bin/legp504.exe?001+ful+SB372ER}{Virginia's} UCITA bills, there are few or no implied warranties with software. However, just to be on the safe side, GPL clearly disclaims them, and the -GPL requires re distributors to keep the disclaimer very visible. (See +GPL requires re-distributors to keep the disclaimer very visible. (See Sections~\ref{GPLv2s11} and~\ref{GPLv2s12} of this tutorial for more on GPL's warranty disclaimers.) Note finally that GPLv2~\S1 creates groundwork for the important defense of commercial freedom. GPLv2~\S1 clearly states that in the case of verbatim -copies, one may make money. Re distributors are fully permitted to charge -for the redistribution of copies of Free Software. In addition, they may +copies, one may make money. Re-distributors are fully permitted to charge +for the re-distribution of copies of Free Software. In addition, they may provide the warranty protection that the GPL disclaims as an additional service for a fee. (See Section~\ref{Business Models} for more discussion on making a profit from Free Software redistribution.) @@ -1120,7 +1118,7 @@ on making a profit from Free Software redistribution.) We digress for this chapter from our discussion of GPL's exact text to consider the matter of derivative works --- a concept that we must -understand fully before considering GPLv2~\S\S2--3\@. GPL, and Free +understand fully before considering GPLv2~\S\S2--3\@. The GPL, and Free Software licensing in general, relies critically on the concept of ``derivative work'' since software that is ``independent,'' (i.e., not ``derivative'') of Free Software need not abide by the terms of the @@ -1321,7 +1319,7 @@ originality to merit copyright protection. Portions of the source or object code of a computer program are rarely filtered out as unprotectable elements. However, some distinct parts of source and object code have been found unprotectable. For example, -constant s, the invariable integers comprising part of formulas used to +constants, the invariable integers comprising part of formulas used to perform calculations in a program, are unprotectable. Further, although common errors found in two programs can provide strong evidence of copying, they are not afforded any copyright protection over and above the @@ -1414,7 +1412,7 @@ program, Oscar. About 30\% of Oscar was literally the same code as that in Adapter. After the suit began, the defendant rewrote those portions of Oscar that contained Adapter code in order to produce a new version of Oscar that was functionally competitive with Adapter, without -have any literal copies of its code. Feeling slighted still, the +having any literal copies of its code. Feeling slighted still, the plaintiff alleged that even the second version of Oscar, despite having no literally copied code, also infringed its copyrights. In addressing that question, the Second Circuit promulgated the AFC test. @@ -1503,11 +1501,11 @@ can be a source of great confusion when not properly understood. In considering GPLv2~\S2(b), first note the qualifier: it \textit{only} applies to derivative works that ``you distribute or publish''. Despite years of education efforts on this matter, many still believe that modifiers -of GPL'd software \textit{must} to publish or otherwise +of GPL'd software \textit{must} publish or otherwise share their changes. On the contrary, GPLv2~\S2(b) {\bf does not apply if} the changes are never distributed. Indeed, the freedom to make private, personal, unshared changes to software for personal use only should be -protected and defended.\footnote{Most Free Software enthusiasts believe there is an {\bf +protected and defended.\footnote{Most Free Software enthusiasts believe there is a {\bf moral} obligation to redistribute changes that are generally useful, and they often encourage companies and individuals to do so. However, there is a clear distinction between what one {\bf ought} to do and what one @@ -1569,20 +1567,20 @@ holder of \workg{}. (Imagine, for a moment, if \workg{} were a proprietary product --- would its copyright holders give you permission to create and distribute \gplusi{} without paying them a hefty sum?) The license of \workg{}, the GPL, states the options for the copyright holder of \worki{} -who may want to create and distribute \gplusi{}. GPL's pre-granted +who may want to create and distribute \gplusi{}. The GPL's pre-granted permission to create and distribute derivative works, provided the terms -of GPL are upheld, goes far above and beyond the permissions that one +of the GPL are upheld, goes far above and beyond the permissions that one would get with a typical work not covered by a copyleft license. (Thus, to -say that this restriction is any way unreasonable is simply ludicrous.) +say that this condition is any way unreasonable is simply ludicrous.) \medskip \label{GPLv2s2-at-no-charge} The next phrase of note in GPLv2~\S2(b) is ``licensed \ldots at no charge.'' This phrase confuses many. The sloppy reader points out this as ``a -contradiction in GPL'' because (in their confused view) that clause of GPLv2~\S2 says that redistributors cannot +contradiction in GPL'' because (in their confused view) that clause of GPLv2~\S2 says that re-distributors cannot charge for modified versions of GPL'd software, but GPLv2~\S1 says that -they can. Avoid this confusion: the ``at no charge'' \textbf{does not} prohibit redistributors from +they can. Avoid this confusion: the ``at no charge'' \textbf{does not} prohibit re-distributors from charging when performing the acts governed by copyright law,\footnote{Recall that you could by default charge for any acts not governed by copyright law, because the license controls are confined @@ -1600,7 +1598,7 @@ available to the public at large. However, the text here does not say that. Instead, it says that the licensing under terms of the GPL must extend to anyone who might, through the distribution chain, receive a copy of the software. Distribution to all third parties is not mandated here, -but GPLv2~\S2(b) does require redistributors to license the derivative works in +but GPLv2~\S2(b) does require re-distributors to license the derivative works in a way that extends to all third parties who may ultimately receive a copy of the software. @@ -1623,7 +1621,7 @@ programs under any license. Despite what you hear from its critics, the GPL is nothing like a virus, not only because the GPL is good for you and a virus is bad for you, but also because simple contact with a GPL'd code-base does not impact the license of other programs. A programmer must -expended actual effort to cause a work to fall under the terms +expend actual effort to cause a work to fall under the terms of the GPL. Redistributors are always welcome to simply ship GPL'd software alongside proprietary software or other unrelated Free Software, as long as the terms of GPL are adhered to for those packages that are @@ -1635,7 +1633,7 @@ truly GPL'd. Software is a strange beast when compared to other copyrightable works. It is currently impossible to make a film or a book that can be truly obscured. Ultimately, the full text of a novel, even one written by -William Faulkner, must presented to the reader as words in some +William Faulkner, must be presented to the reader as words in some human-readable language so that they can enjoy the work. A film, even one directed by David Lynch, must be perceptible by human eyes and ears to have any value. @@ -1725,10 +1723,10 @@ GPL does provide options when such distribution is unfeasible. GPLv2~\S3, therefore, allows source code to be provided on any physical ``medium customarily used for software interchange.'' By design, this phrase covers a broad spectrum --- the phrase seeks to pre-adapt to -changes in technology. When GPLv22 was first published in June +changes in technology. When GPLv2 was first published in June 1991, distribution on magnetic tape was still common, and CD was -relatively new. By 2002, CD is the default. By 2007, DVD's were the -default. Now, it's common to give software on USB drives and SD card. This +relatively new. By 2002, CD was the default. By 2007, DVD's were the +default. Now, it's common to give software on USB drives and SD cards. This language in the license must adapt with changing technology. Meanwhile, the binding created by the word ``customarily'' is key. Many @@ -1795,7 +1793,7 @@ GPLv2~\S3(c) is created to save her some trouble, because by itself GPLv2~\S3(b) would unfairly favor large companies. GPLv2~\S3(b) allows the separation of the binary software from the key tool that people can use to exercise their freedom. The GPL permits this separation because it is -good for redistributors, and those users who turn out not to need the +good for re-distributors, and those users who turn out not to need the source. However, to ensure equal rights for all software users, anyone along the distribution chain must have the right to get the source and exercise those freedoms that require it. @@ -1914,7 +1912,7 @@ with respect to the licensed software. \newcommand{\compA}{$\mathcal{A}$} For example, if Company \compA{} has a patent on advanced Web browsing, but -also licenses a Web browsing software program under the GPLv2, then it +also licenses a Web browsing program under the GPLv2, then it cannot assert the patent against any party based on that party's use of Company \compA{}'s GPL'ed Web browsing software program, or on that party's creation and use of derivative works of that GPL'ed program. However, if a @@ -1984,7 +1982,7 @@ but they may not revoke the rights under GPLv2 already granted. In fact, when an entity looses their right to copy, modify and distribute GPL'd software, it is because of their \emph{own actions}, not that of the -copyright holder. The copyright holder does not decided when GPLv2~\S4 +copyright holder. The copyright holder does not decide when GPLv2~\S4 termination occurs (if ever); rather, the actions of the licensee determine that. @@ -2045,8 +2043,8 @@ freedom. While GPL is by default a copyright license, it is certainly still possible to consider GPL as a contract as well. For example, some distributors chose -to ``wrap'' their software in an acceptance ceremony to GPL, and nothing in -GPL prohibits that use. Furthermore, the ruling in \textit{Jacobsen +to ``wrap'' their software in an acceptance ceremony to the GPL, and nothing in +the GPL prohibits that use. Furthermore, the ruling in \textit{Jacobsen v. Katzer, 535 F.3d 1373, 1380 (Fed.Cir.2008)} indicates that \textbf{both} copyright and contractual remedies may be sought by a copyright holder seeking to enforce a license designed to uphold software freedom. @@ -2133,7 +2131,7 @@ GPLv2~\S8 was not included at all in GPLv3. \chapter{Odds, Ends, and Absolutely No Warranty} GPLv2~\S\S0--7 constitute the freedom-defending terms of the GPLv2. The remainder -of the GPLv2 handles administrivia and issues concerning warranties and +of the GPLv2 handles administrive and issues concerning warranties and liability. \section{GPLv2~\S9: FSF as Stewards of GPL} @@ -2234,7 +2232,7 @@ This chapter seeks to explain GPLv3 to newcomers, who perhaps are familiar with GPLv2 and who did not participate in the GPLv3 process. Those who wish to drink from the firehose and take a diachronic approach to -GPLv3 study by reading the step-by-step public drafting process GPLv3 (which +GPLv3 study by reading the step-by-step public drafting process of the GPLv3 (which occurred from Monday 16 January 2006 through Monday 19 November 2007) should visit \url{http://gplv3.fsf.org/}. @@ -2252,7 +2250,7 @@ for some of GPLv2's terms and/or policy opposition to GPLv3's terms. Given this ``two GPLs world'' is reality, it makes sense to consider GPLv3 in terms of how it differs from GPLv2. Also, most of the best GPL experts in the world must deal regularly with both licenses, and admittedly have decades -of experience of GPLv2 while the most experience with GPLv3 that's possible +of experience with GPLv2 while the most experience with GPLv3 that's possible is by default less than a decade. These two factors usually cause even new students of GPL to start with GPLv2 and move on to GPLv3, and this tutorial follows that pattern. @@ -2281,7 +2279,7 @@ internationalization. One of lawyers' most common complaints about GPLv2 is that defined terms in the document appear throughout. Most licenses define terms up-front. -However, GPL was always designed both as a document that should be easily +However, the GPL was always designed both as a document that should be easily understood both by lawyers and by software developers: it is a document designed to give freedom to software developers and users, and therefore it should be comprehensible to that constituency. @@ -2307,7 +2305,7 @@ GPLv2 included a defined term, ``work based on the Program'', but also used the term ``modify'' and ``based on'' throughout the license. GPLv2's ``work based on the Program'' definition made use of a legal term of art, ``derivative work'', which is peculiar to USA copyright law. However, -ironically, the most criticism of USA-specific legal terminology in GPLv2's +ironically, most criticism of USA-specific legal terminology in GPLv2's ``work based on the Program'' definition historically came not primarily from readers outside the USA, but from those within it\footnote{The FSF noted in that it did not generally agree with these views, and expressed puzzlement @@ -2382,7 +2380,7 @@ but it also makes clear that, under the copyright laws of a given country, Thus, propagation is defined by behavior, and not by categories drawn from some particular national copyright statute. This helps not only with internationalization, but also factually-based terminology aids in -developers' and users' understanding of GPL\@. +developers' and users' understanding of the GPL\@. \subsection{Convey} @@ -2457,9 +2455,9 @@ are those that the work is ``specifically'' designed to require, which clarifies that they do not include libraries invoked by the work that can be readily substituted by other existing implementations. While copyleft advocates never doubted this was required under GPLv2's definition of CCS, -making it abundantly clear with an extra example. +GPLv3 makes it abundantly clear with an extra example. -GPL, as always, seeks to ensure users are truly in a position to install and +The GPL, as always, seeks to ensure users are truly in a position to install and run their modified versions of the program; the CCS definition is designed to be expansive to ensure this software freedom. However, although the definition of CCS is expansive, it is not sufficient to protect users' @@ -2494,14 +2492,13 @@ The previous section skipped over one part of the CCS definition, the so-called system library exception. The ``System Libraries'' definition (and the ``Standard Interface'' and ``Major Component'' definitions, which it includes) are designed as part - to permit certain distribution arrangements that are considered reasonable by copyleft advocates. The system library exception is designed to allow copylefted software to link with these libraries when such linking would hurt software freedom more than it would hurt proprietary software. The system library exception has two parts. Part (a) rewords the GPLv2 -exception for clarity replaces GPLv2's words ``unless that component itself +exception for clarity replacing GPLv2's words ``unless that component itself accompanies the executable'' with ``which is not part of the Major Component''. The goal here is to not require disclosure of source code of certain libraries, such as necessary Microsoft Windows DLLs (which aren't @@ -2576,7 +2573,7 @@ on the users' behalf (just as the users' employees would have to act). The strict conditions in this ``contractors provision'' are needed so that it cannot be twisted to fit other activities, such as making a program available to downstream users or customers. By making the limits on this provision -very narrow, GPLv3 ensures that, in all other cases, contractors gets the +very narrow, GPLv3 ensures that, in all other cases, contractor gets the full freedoms of the GPL that they deserve. The FSF was specifically asked to add this ``contractors provisions'' by @@ -2671,7 +2668,7 @@ relate sections\footnote{These sections of the USC are often referred to as from circumventing technological measures that implement DRM\@. Since this is part of copyright law and the GPL is primarily a copyright license, and since what the DMCA calls ``circumvention'' is simply ``modifying the -software'' under the GPL, GPLv3 must disclaim such anti-circumvention +software'' under the GPL, GPLv3 must disclaim that such anti-circumvention provisions are not applicable to the GPLv3'd software. GPLv3\S3 shields users from being subjected to liability under anti-circumvention law for exercising their rights under the GPL, so far as the GPL can do so. @@ -2805,7 +2802,7 @@ in \S~\ref{GPLv2s3} of this tutorial), the distribution of object code may either be accompanied by the machine-readable source code, or it may be accompanied by a valid written offer to provide the machine-readable source code. However, unlike in GPLv2, that offer cannot be exercised by any third -party; rather, only those ``who possesses the object code'' it can exercised +party; rather, only those ``who possesses the object code'' can exercise the offer. (Note that this is a substantial narrowing of requirements of offer fulfillment, and is a wonderful counterexample to dispute claims that the GPLv3 has more requirements than GPLv2.) @@ -2950,7 +2947,7 @@ GPLv3 drafting process. However, companies and governments that use specialized or enterprise-level computer facilities reported that they actually \textit{want} their systems not to be under their own control. Rather than agreeing to this as a concession, or bowing to pressure, they ask -for this as a \textit{preference}. It is not clear that GPL should interfere +for this as a \textit{preference}. It is not clear that the GPL should interfere here, since the main problem lies elsewhere. While imposing technical barriers to modification is wrong regardless of @@ -3116,8 +3113,7 @@ distributed under the GPL? \end{enumerate} Additional permissions present the easier case. Since the mid-1990s, -permissive exceptions often appeared alongside GPLv2 with permissive -exceptions to allow combination +permissive exceptions often appeared alongside GPLv2 to allow combination with certain non-free code. Typically, downstream stream recipients could remove those exceptions and operate under pure GPLv2. Similarly, LGPLv2.1 is in essence a permissive variant of GPLv2, @@ -3199,7 +3195,7 @@ In its treatment of terms that impose additional requirements, GPLv3\S7 extends the range of licensing terms with which the GPL is compatible. An added part carrying additional requirements may be combined with GPL'd code, but only if those requirements belong to an set enumerated in GPLv3\S7. There -are, of course, limits on the acceptable additional requirements, which to +are, of course, limits on the acceptable additional requirements, which ensures that enhanced license compatibility does not defeat the broader software-freedom-defending terms of the GPL\@. Unlike terms that grant additional permissions, terms that impose additional requirements cannot be @@ -3247,7 +3243,7 @@ large collections of software having numerous copyright holders. A violator who resumes compliance with GPLv2 technically needs to obtain forgiveness from all copyright holders, and even contacting them all might be impossible. -GPLv3~\S8 replaces now grants opportunities for provisional and permanent +GPLv3~\S8 now grants opportunities for provisional and permanent reinstatement of rights. The termination procedure provides a limited opportunity to cure license violations. If a licensee has committed a first-time violation of the GPL with respect to a given copyright holder, but @@ -3262,12 +3258,11 @@ copyright permissions the contributor granted to the licensee. % FIXME-LATER: write more here, perhaps linking up to enforcement - \section{GPLv3~\S9: Acceptance} GPLv3~\S9 means what it says: mere receipt or execution of code neither requires nor signifies contractual acceptance under the GPL. Speaking more -broadly, GPLv3 is intentionally structured our license as a unilateral grant +broadly, GPLv3 is intentionally structured as a unilateral grant of copyright permissions, the basic operation of which exists outside of any law of contract. Whether and when a contractual relationship is formed between licensor and licensee under local law do not necessarily matter to @@ -3369,7 +3364,7 @@ preventing that act cannot be unfair). However, the second argument seems valid in a practical sense. A typical GNU/Linux distribution includes thousands of programs. It would -be quite difficult for a redistributor with a large patent portfolio to +be quite difficult for a re-distributor with a large patent portfolio to review all those programs against that portfolio every time it receives and passes on a new version of the distribution. Moreover, this question raises a strategic issue. If the GPLv3 patent license requirements @@ -3461,7 +3456,7 @@ patent claims. \subsection{Conveyors' Patent Licensing} The remaining patent licensing in GPLv3 deals with patent licenses that are -granted by conveyance. The licensing is not as complete or far reaching at +granted by conveyance. The licensing is not as complete or far reaching as the contributor patent licenses discussed in the preceding section. The term ``patent license,'' as used in GPLv3~\S11\P4--6, is not meant to be @@ -3498,11 +3493,11 @@ CCS to be publicly available. (In such a case, if the distributor is also a contributor, it will already have granted a patent sublicense anyway, and so it need not do anything further to comply with the third paragraph.) -Admittedly, public disclosure of CCS is not necessarily required in by other +Admittedly, public disclosure of CCS is not necessarily required by other sections of the GPL, and the FSF in drafting GPLv3 did not necessarily wish to impose a general requirement to make source code available to all, which has never been a GPL condition. However, many vendors who produce products -that include copylefted software, and who most likely to be affected by the +that include copylefted software, and who are most likely to be affected by the downstream shielding provision, lobbied for the addition of the source code availability option, so it remains. @@ -3741,8 +3736,8 @@ Terms to Your New Programs'' to just the bare essentials. As we have seen in our consideration of the GPL, its text is specifically designed to cover all possible derivative works under copyright law. Our -goal in designing GPL was to make sure that any derivative work of GPL'd -software was itself released under GPL when distributed. Reaching as far +goal in designing the GPL was to make sure that any derivative work of GPL'd +software was itself released under the GPL when distributed. Reaching as far as copyright law will allow is the most direct way to reach that goal. However, while the strategic goal is to bring as much Free Software @@ -3777,11 +3772,11 @@ libraries on a Free Software operating system (which in fact happens today on modern GNU/Linux systems, which all use the GNU C Library). Unlike existing GNU application software, however, the licensing -implications of releasing the GNU C Library (``glibc'') under GPL were -somewhat different. Applications released under GPL would never +implications of releasing the GNU C Library (``glibc'') under the GPL were +somewhat different. Applications released under the GPL would never themselves become part of proprietary software. However, if glibc were -released under GPL, it would require that any application distributed for -the GNU/Linux platform be released under GPL\@. +released under the GPL, it would require that any application distributed for +the GNU/Linux platform be released under the GPL\@. Since all applications on a Unix-like system depend on the C library, it means that they must link with that library to function on the system. In @@ -3803,7 +3798,7 @@ to anyone who wished to write proprietary software for GNU/Linux systems. The de-facto standard for the C library on GNU/Linux would likely be not glibc, but the most popular proprietary one. -Meanwhile, the actual goal of releasing glibc under GPL --- to ensure no +Meanwhile, the actual goal of releasing glibc under the GPL --- to ensure no proprietary applications on GNU/Linux --- would be unattainable in this scenario. Furthermore, users of those proprietary applications would also be users of a proprietary C library, not the Free glibc. @@ -3811,7 +3806,7 @@ be users of a proprietary C library, not the Free glibc. The Lesser GPL was initially conceived to handle this scenario. It was clear that the existence of proprietary applications for GNU/Linux was inevitable. Since there were so many C libraries already in existence, a -new one under GPL would not stop that tide. However, if the new C library +new one under the GPL would not stop that tide. However, if the new C library were released under a license that permitted proprietary applications to link with it, but made sure that the library itself remained Free, an ancillary goal could be met. Users of proprietary applications, while @@ -3866,7 +3861,7 @@ used to allow original copyright holders to forbid distribution in countries with draconian laws that would otherwise contradict these licenses. -LGPLv2.1~\S13 sets up FSF as the steward of the LGPL, just as GPLv2~\S9 +LGPLv2.1~\S13 sets up the FSF as the steward of the LGPL, just as GPLv2~\S9 does for GPL. Meanwhile, LGPLv2.1~\S14 reminds licensees that copyright holders can grant exceptions to the terms of LGPL, just as GPLv2~\S10 reminds licensees of the same thing. @@ -3882,7 +3877,7 @@ same legal mechanisms and are enforced precisely the same way. We strike a difference only in the early portions of the license. Namely, in the LGPL we go into deeper detail of granting various permissions to -create derivative works, so the redistributors can make +create derivative works, so the re-distributors can make some proprietary derivatives. Since we simply do not allow the license to stretch as far as copyright law does regarding what derivative works must be relicensed under the same terms, we must go @@ -3893,14 +3888,14 @@ those who modify or redistribute the software. \section{Additions to the Preamble} -Most of LGPL's Preamble is identical, but the last seven paragraphs +Most of the LGPL's Preamble is identical, but the last seven paragraphs introduce the concepts and reasoning behind creation of the license, presenting a more generalized and briefer version of the story with which -we began our consideration of LGPL\@. +we began our consideration of the LGPL\@. -In short, FSF designed LGPL for those edge cases where the freedom of the +In short, FSF designed the LGPL for those edge cases where the freedom of the public can better be served by a more lax licensing system. FSF doesn't -encourage use of LGPL automatically for any software that happens to be a +encourage use of the LGPL automatically for any software that happens to be a library; rather, FSF suggests that it only be used in specific cases, such as the following: @@ -3919,8 +3914,8 @@ as the following: \end{itemize} -LGPL's preamble sets forth the limits to which the license seeks to go in -chasing these goals. LGPL is designed to ensure that users who happen to +The LGPL's preamble sets forth the limits to which the license seeks to go in +chasing these goals. The LGPL is designed to ensure that users who happen to acquire software linked with such libraries have full freedoms with respect to that library. They should have the ability to upgrade to a newer or modified Free version or to make their own modifications, even if they @@ -3928,18 +3923,18 @@ cannot modify the primary software program that links to that library. Finally, the preamble introduces two terms used throughout the license to clarify between the different types of derivative works: ``works that use -the library,'' and ``works based on the library.'' Unlike GPL, LGPL must +the library,'' and ``works based on the library.'' Unlike the GPL, the LGPL must draw some lines regarding derivative works. We do this here in this license because we specifically seek to liberalize the rights afforded to -those who make derivative works. In GPL, we reach as far as copyright law -allows. In LGPL, we want to draw a line that allows some derivative works +those who make derivative works. In the GPL, we reach as far as copyright law +allows. In the LGPL, we want to draw a line that allows some derivative works copyright law would otherwise prohibit if the copyright holder exercised his full permitted controls over the work. \section{An Application: A Work that Uses the Library} In the effort to allow certain proprietary derivative works and prohibit -others, LGPL distinguishes between two classes of derivative works: +others, the LGPL distinguishes between two classes of derivative works: ``works based on the library,'' and ``works that use the library.'' The distinction is drawn on the bright line of binary (or runtime) derivative works and source code derivatives. We will first consider the definition @@ -3980,7 +3975,7 @@ the library,'' works as follows: \item Since \lplusi{} is a derivative work of both \worki{} and \workl{}, the license of \workl{} (the LGPL) can put restrictions on the license - of \lplusi{}. In fact, this is what LGPL does. + of \lplusi{}. In fact, this is what the LGPL does. \end{itemize} @@ -4031,7 +4026,7 @@ In short, a ``work based on the library'' could be defined as any derivative work of LGPL'd software that cannot otherwise fit the definition of a ``work that uses the library.'' A ``work based on the library'' extends the full width and depth of copyright derivative works, -in the same sense that GPL does. +in the same sense that the GPL does. Most typically, one creates a ``work based on the library'' by directly modifying the source of the library. Such a work could also be created by @@ -4081,7 +4076,7 @@ because a deep understanding of how compiler programs work is nearly mandatory to grasp the subtle nature of what LGPLv2.1~\S5, \P 4 seeks to cover. It helps some to note that this is a border case that we cover in the license only so that when such a border case is hit, the implications -of using LGPL continue in the expected way. +of using the LGPL continue in the expected way. To understand this subtle point, we must recall the way that a compiler operates. The compiler first generates object code, which are the binary @@ -4161,8 +4156,8 @@ If such a mechanism is used, it must allow the user to upgrade and replace the library with interface-compatible versions and still be able to use the ``work that uses the library.'' However, all modern shared library mechanisms function as such, and thus LGPLv2.1~\S6(b) is the simplest -option, since it does not even require that the distributor of the ``work -2based on the library'' ship copies of the library itself. +option, since it does not even require that the distributor of the ``work +based on the library'' ship copies of the library itself. LGPLv2.1~\S6(a) is the option to use when, for some reason, a shared library mechanism cannot be used. It requires that the source for the library be @@ -4190,12 +4185,12 @@ permit us to cover in this course. \section{And the Rest} -The remaining variations between LGPL and GPL cover the following +The remaining variations between the LGPL and the GPL cover the following conditions: \begin{itemize} -\item Allowing a licensing ``upgrade'' from LGPL to GPL\@ (in LGPLv2.1~\S3) +\item Allowing a licensing ``upgrade'' from the LGPL to the GPL\@ (in LGPLv2.1~\S3) \item Binary distribution of the library only, covered in LGPLv2.1~\S4, which is effectively equivalent to LGPLv2.1~\S3 @@ -4226,7 +4221,7 @@ As discussed in Sections~\ref{GPLv2s0} and~\ref{GPLv2s5} of this tutorial, the GPL only governs the activities of copying, modifying and distributing software programs that are not governed by the license. Thus, in FSF's view, simply installing the software on a machine and -using it is not controlled or limited in any way by GPL\@. Using Free +using it is not controlled or limited in any way by the GPL\@. Using Free Software in general requires substantially fewer agreements and less license compliance activity than any known proprietary software. @@ -4276,7 +4271,7 @@ embedded targets. Eventually, Cygnus was so successful that it was purchased by Red Hat where it remains a profitable division. However, there are very small companies that compete in -this space. Because the code-base is protect by GPL, it creates and +this space. Because the code-base is protect by the GPL, it creates and demands industry trust. Companies can cooperate on the software and improve it for everyone. Meanwhile, companies who rely on GCC for their work are happy to pay for improvements, and for ports to new target @@ -4331,7 +4326,7 @@ making a profit. Note that FSF does provide services to assist companies who need assistance in complying with the GPL. You can contact FSF's GPL -Compliance Labs at $<$compliance@fsf.org$>$. +Compliance Labs at $<$licensing@fsf.org$>$. %FIXME-LATER: should have \tutorialpart diff --git a/presentations/1hr-GPL/1hr-GPL.markdown b/presentations/1hr-GPL/1hr-GPL.markdown new file mode 100644 index 0000000..244c982 --- /dev/null +++ b/presentations/1hr-GPL/1hr-GPL.markdown @@ -0,0 +1,418 @@ +% Brief Introduction to the GNU General Public License +% Bradley M. Kuhn +% Monday 24 March 2014 + + +# Audience Polls + ++ My goal here is to move faster or slower based on audience knowledge. + ++ There are folks in this audience who have worked with this stuff for years, + and those who are completely new. + ++ We want these presentations to be valuable to all of you. + ++ Please, don't be embarrassed: + + Ever GPL expert in the world, including me, started as a student who + knew none of this. + +# IANAL + +IANAL + +# My Affiliations + ++ Formerly had John's job, Executive Director of FSF, years ago. + ++ Currently: on Board of Directors of FSF. + ++ President of Software Freedom Conservancy. + +# How These Orgs Relate to GPL? + ++ FSF + + Invented copyleft. + + Authors & stewards of the GPL. + + Holder of copyrights on many key GNU programs … + + … and therefore enforcers of those copyrights. + ++ Software Freedom Conservancy + + Adviser on legal issues of copyright, etc. to Free Software projects. + + Holder of some copyrights on its member projects. + + Enforcer of GPL on behalf of many copyright holders in: + + BusyBox, Samba, Mercurial, and the kernel named Linux. + +# How this Hour Will Go? + ++ Materials presented will mix the simple & complex. + ++ We cannot possibly cover the entire GPL in one hour. + ++ Discuss: motivations, origins, then a few of GPL's sections. + ++ I understand the mix of backgrounds in the audience. + +# A Restaurant's Lawyer? + ++ Considering why you want to learn this. + ++ What if your client was a restaurant? + ++ What would you want to need to know? + +# Restaurant Lawyer: What'd You Study? + ++ If you were a restaurant's lawyer: + ++ Probably three areas of law you'd focus on: + + building codes. + + health and safety regulations. + + tax regulations. + ++ Who would want to hear from? + +# Restaurant Lawyer: What'd You Study? + ++ Figure out the motivations behind the building code: + + What parts are arcane and less important to inspectors? + + How do inspections work? + + What are the penalties? + ++ Figure out the same for health & safety: + + Who inspects, and when? + + What's the health code say, and what checklist do inspectors use? + ++ Likely Questions: + + Who's in charge of all this? + + What's purpose and intent of these regulations? + + Can I meet the inspectors? + +# Why Listen To Us? + ++ FSF: Understanding the purpose and intent of the GPL. + ++ Conservancy & FSF: + + both enforce the GPL. + + if your client violates, you will hear from one of us. + ++ Such access to drafters, interpreters, enforcers is highly unique. + ++ Someday, we may (or already have) sit across the table from you. + ++ Our transparency does make your job easier. + +# The Mindset of GPL + ++ GPL protects software freedom. + ++ Ultimate goal: make sure every user has the four freedoms. + + Freedom to run the software. + + Freedom to study and modify the software. + + Freedom to share the software. + + Freedom to distribute modified versions. + ++ Every clause in GPL was designed to uphold one of these freedoms. + + Or, it's a compromise of drafting in adoption vs. freedom debate. + +# Using Copyright + ++ GPL is primarily a copyright license. + + Software is copyrighted. + + License grants key freedoms. + + Requirement prohibit activities that take away freedoms. + ++ General concept: copyleft. + ++ Specific implementation: GPL. + +
+ + + +> Copyright protection subsists … original works 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. + +

+ — 17 USC §102 +

+
+ +# Conditional Permissions + ++ A copyleft license grants copyright permissions, conditionally. + ++ Think of the phrase: “provided that” + ++ “provided that”: appears (in some form) only + ++ 4 times in GPLv2 + ++ 9 times in GPLv3. + +# Compare To Proprietary Licenses + ++ Yes, the GPL has its requirements. + ++ But *none* of these activities are ever permitted under proprietary + licenses. + ++ If you don't like what the GPL requires you to do, then just tell your + client to use the proprietary software instead. + ++ That way, they know the answer to every question is “no&;rdquo; + ++ rather than: “yes, but only as long as you …” + +# The Technical Gap + ++ Understanding GPL well requires a some software expertise & legal + expertise. + ++ You don't have to be a professional on either side to grok it. + + but you're best off if you're a professional in one & an amateur + in the other. + ++ Most important technical concepts you need: + + source code, binaries, methods of distribution. + +# Considering Sections of the GPL + ++ With the remaining time … + + in interest of the experts in the audience … + + let's dig into a few specific sections. + ++ GPL ♥ 17 USC§106(2) & 17 USC§106(3) + ++ Modification and distribution. + +# Why Permission to Modify? + ++ Your new copyrights are your copyrights: + + you are affixing it in a tangible medium. + ++ Exclusive right of copyright holders: + + Control on “preparation of derivative works” + + Distribution of the work. + + Note the combination of these. + ++ Again, see 17 USC§106 + ++ N.B.: “derivative works” is USA-centric, modify is more international) + +# Modification As a Center Provision + ++ GPL's primary copyright hook is copyright controls on the right to modify. + ++ GPL's central tenant: + ++ You can make a modified version of various types privately as much as you'd like. + ++ When you distribute that modified version, you have requirements to meet. + ++ Technological considerations dictate necessity of more complex rules for +certain types of modifications. + +# GPLv2 § 2(a-b) + + +

[GPLv2§]2. 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: +
+
+a) You must cause the modified files to carry prominent notices stating +that you changed the files and the date of any change. +
+
+b) 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. +

+
+ +# GPLv3§5(a-c) + + +

+You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: +
+
+a) The work must carry prominent notices stating that you modified it, and +giving a relevant date. +
+
+b) The work must carry prominent notices stating that it is released under +this License and any conditions added under section 7. This requirement +modifies the requirement in section 4 to "keep intact all notices". +
+
+c) You must license the entire work, as a whole, under this License to anyone +who comes into possession of a copy. This License will therefore apply, +along with any applicable section 7 additional terms, to the whole of the +work, and all its parts, regardless of how they are packaged. This License +gives no permission to license the work in any other way, but it does not +invalidate such permission if you have separately received it. +

+
+ +# GPLv2§2¶ ante-penultimate & penultimate + + +

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

+ +
+ +# GPLv3 §0 ¶1-5 + +

+ "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. +
+
+ "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. +
+
+To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. +
+
+ A "covered work" means either the unmodified Program or a work based +on the Program. +

+ +# Binaries (i.e., Object Code) are Modifications + ++ Software that the computer understands is different than software humans + read. + ++ There is often a process required to modify (and/or translate) the software + from human-readable + + This process can be done ahead of time. + ++ Separation of source and binary was the first way proprietary software + companies discovered to subjugate users. + + GPL uses the fact that binaries are modifications (which are often + distribution) to prevent that subjugation. + +# GPLv2 § 3(a-b) + + +

+

[GPLv2§]3. 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: +
+
+a) 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, +
+
+b) 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; +

+
+ +# GPLv3 § 6(a-b) + + +

+[GPLv3 § ] 6. Conveying Non-Source Forms. +
+
+You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: +
+
+a) Convey the object code in, or embodied in, a physical product +(including a physical distribution medium), accompanied by the +Corresponding Source fixed on a durable physical medium +customarily used for software interchange. +
+
+b) Convey the object code in, or embodied in, a physical product +(including a physical distribution medium), accompanied by a +written offer, valid for at least three years and valid for as +long as you offer spare parts or customer support for that product +model, to give anyone who possesses the object code either (1) a +copy of the Corresponding Source for all the software in the +product that is covered by this License, on a durable physical +medium customarily used for software interchange, for a price no +more than your reasonable cost of physically performing this +conveying of source, or (2) access to copy the +Corresponding Source from a network server at no charge. +

+
+ +# GPLv3 § 1 ¶ 1, 4-6 + + +

+The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. +
+
+The "Corresponding Source" for a work in object code form means all the +source code needed to generate, install, and (for an executable work) run the +object code and to modify the work, including scripts to control those +activities. However, it does not include the work's System Libraries, or +general-purpose tools or generally available free programs which are used +unmodified in performing those activities but which are not part of the work. +For example, Corresponding Source includes interface definition files +associated with source files for the work, and the source code for shared +libraries and dynamically linked subprograms that the work is specifically +designed to require, such as by intimate data communication or control flow +between those subprograms and other parts of the work. +
+
+The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. +
+
+The Corresponding Source for a work in source code form is that +same work. +

+
+ + +# The GPL is a Complex Topic + ++ An in-depth seminar on GPL's provisions is a one-day course … + + … but the written materials discuss every section in depth. + ++ Keep in mind: every requirement has a carefully considered purpose to + uphold freedom of users. + ++ Software freedom licenses have a moral perspective. + + This is probably the most difficult thing for lawyers to understand.