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