Various updates and edits following the 2004-01-20 course.
This commit is contained in:
		
							parent
							
								
									817aa177f1
								
							
						
					
					
						commit
						d1de64cafd
					
				
					 1 changed files with 101 additions and 87 deletions
				
			
		
							
								
								
									
										188
									
								
								gpl-lgpl.tex
									
										
									
									
									
								
							
							
						
						
									
										188
									
								
								gpl-lgpl.tex
									
										
									
									
									
								
							|  | @ -41,7 +41,7 @@ Sponsored by the Free Software Foundation \\ | |||
| 
 | ||||
| Columbia Law School, New York, NY, USA \\ | ||||
| \vspace{.1in} | ||||
| Tuesday 20 January 2003  | ||||
| Tuesday 20 January 2004 | ||||
| } | ||||
| 
 | ||||
| \vspace{.7in} | ||||
|  | @ -125,6 +125,15 @@ learned the following: | |||
|         works of software. | ||||
| \end{itemize} | ||||
| 
 | ||||
| \bigskip | ||||
| 
 | ||||
| These course materials are merely a summary of the highlights of the | ||||
| course presented.  Readers of this material should assume that they have | ||||
| missed the bulk of the material, as the detailed discussion of about these | ||||
| issues is the true education about GPL and LPGL\@.  Merely reading this | ||||
| material is akin to matriculating into a college course and read only the | ||||
| textbook instead of going to class. | ||||
| 
 | ||||
| \end{abstract} | ||||
| 
 | ||||
| \tableofcontents | ||||
|  | @ -600,6 +609,8 @@ economy. | |||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| \chapter{Running Software And Verbatim Copying} | ||||
| \label{run-and-verbatim} | ||||
| 
 | ||||
| 
 | ||||
| This chapter begins the deep discussion of the details of the terms of | ||||
| GPL\@.  In this chapter, we consider the first two sections: GPL \S\S | ||||
|  | @ -668,7 +679,7 @@ matter is left up to copyright law, not the licenses that utilize it. | |||
| It is certainly true that copyright law as a whole does not propose clear | ||||
| and straightforward guidelines for what is and is not a derivative | ||||
| software work under copyright law.  However, no copyright license --- not | ||||
| even the GNU GPL -- can be blamed for this.  Legislators and court | ||||
| even the GNU GPL --- can be blamed for this.  Legislators and court | ||||
| opinions must give us guidance to decide the border cases. | ||||
| 
 | ||||
| \section{GPL \S 1: Verbatim Copying} | ||||
|  | @ -761,6 +772,7 @@ of a derivative work of software. However, the applicable provisions do | |||
| provide some, albeit quite cursory, guidance. Section 101 of the Copyright | ||||
| Act sets forth the following definitions: | ||||
| 
 | ||||
| \begin{quotation} | ||||
| A ``computer program'' is a set of statements or instructions to be used | ||||
| directly or indirectly in a computer in order to bring about a certain | ||||
| result. | ||||
|  | @ -772,6 +784,7 @@ reproduction, abridgment, condensation, or any other form in which a work | |||
| may be recast, transformed, or adapted. A work consisting of editorial | ||||
| revisions, annotations, elaborations, or other modifications which, as a | ||||
| whole, represent an original work of authorship, is a ``derivative work''. | ||||
| \end{quotation} | ||||
| 
 | ||||
| These are the only provisions in the Copyright Act relevant to the | ||||
| determination of what constitutes a derivative work of a computer | ||||
|  | @ -1041,6 +1054,7 @@ adopts norms avoiding such risk. | |||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| 
 | ||||
| \chapter{Modified Source and Binary Distribution} | ||||
| \label{source-and-binary} | ||||
| 
 | ||||
| In this chapter, we discuss the two core sections that define the rights | ||||
| and obligations for those who modify, improve, and/or redistribute GPL'd | ||||
|  | @ -1496,49 +1510,50 @@ with respect to the licensed software. | |||
| \newcommand{\compB}{$\mathcal{B}$} | ||||
| \newcommand{\compA}{$\mathcal{A}$} | ||||
| 
 | ||||
| For example, if Company \compA has a patent on advanced web browsing, but | ||||
| For example, if Company \compA{} has a patent on advanced web browsing, but | ||||
| also licenses a web browsing software program under the GPL, then it | ||||
| cannot assert the patent against any party that takes a license to its | ||||
| program under the GPL.  However, if a party uses that program without | ||||
| complying with the GPL, then Company \compA can assert, not just copyright | ||||
| complying with the GPL, then Company \compA{} can assert, not just copyright | ||||
| infringement claims against the non-GPL-compliant party, but also | ||||
| infringement of the patent, because the implied patent license only | ||||
| extends to use of the software in accordance with the GPL.  Further, if | ||||
| Company \compB distributes a competitive advanced web browsing program, | ||||
| Company \compA is free to assert its patent against any user or | ||||
| Company \compB{} distributes a competitive advanced web browsing program, | ||||
| Company \compA{} is free to assert its patent against any user or | ||||
| distributor of that product.  It is irrelevant whether Company \compB's | ||||
| program is distributed under the GPL, as Company \compB can not grant | ||||
| program is distributed under the GPL, as Company \compB{} can not grant | ||||
| implied licenses to Company \compA's patent. | ||||
| 
 | ||||
| This result also reassures companies that they need not fear loosing their | ||||
| proprietary value in patents to competitors through the GPL implied patent | ||||
| license, as only those competitors who adopt and comply with the GPL's | ||||
| terms can benefit from the implied patent license.  To continue the | ||||
| example above, Company \compB does not receive a free ride on Company | ||||
| \compA's patent, as Company \compB has not licensed-in and then | ||||
| example above, Company \compB{} does not receive a free ride on Company | ||||
| \compA's patent, as Company \compB{} has not licensed-in and then | ||||
| redistributed Company A's advanced web browser under the GPL.  If Company | ||||
| \compB does do that, however, Company \compA still has not lost | ||||
| competitive advantage against Company \compB, as Company \compB must then, | ||||
| \compB{} does do that, however, Company \compA{} still has not lost | ||||
| competitive advantage against Company \compB{}, as Company \compB{} must then, | ||||
| when it re-distributes Company \compA's program, grant an implied license | ||||
| to any of its patents that cover the program.  Further, if Company \compB | ||||
| to any of its patents that cover the program.  Further, if Company \compB{} | ||||
| relicenses an improved version of Company A's program, it must do so under | ||||
| the GPL, meaning that any patents it holds that cover the improved version | ||||
| are impliedly licensed to any licensee.  As such, the only way Company | ||||
| \compB can benefit from Company \compA's implied patent license, is if it, | ||||
| \compB{} can benefit from Company \compA's implied patent license, is if it, | ||||
| itself, distributes Company \compA's software program and grants an | ||||
| implied patent license to any of its patents that cover that program. | ||||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||||
| \chapter{Defending Freedom On Many Fronts} | ||||
| 
 | ||||
| The last chapter presented the core freedom-defending provisions of GPL\@, | ||||
| which are in \S\S 0--3.  \S\S 4--7 of the GPL are designed to ensure that | ||||
| \S\S 0--3 are not infringed, are enforceable, are kept to the confines of | ||||
| copyright law and are not trumped by other copyright agreements or | ||||
| components of other entirely separate legal systems.  In short, while \S\S | ||||
| 0--3 are the parts of the license that defend the freedoms of users and | ||||
| programmers, \S\S 4--7 are the parts of the license that keep the playing | ||||
| field clear so that \S\S 0--3 can do their jobs. | ||||
| Chapters~\ref{run-and-verbatim} and ~\ref{source-and-binary} presented the | ||||
| core freedom-defending provisions of GPL\@, which are in \S\S 0--3.  \S\S | ||||
| 4--7 of the GPL are designed to ensure that \S\S 0--3 are not infringed, | ||||
| are enforceable, are kept to the confines of copyright law and are not | ||||
| trumped by other copyright agreements or components of other entirely | ||||
| separate legal systems.  In short, while \S\S 0--3 are the parts of the | ||||
| license that defend the freedoms of users and programmers, \S\S 4--7 are | ||||
| the parts of the license that keep the playing field clear so that \S\S | ||||
| 0--3 can do their jobs. | ||||
| 
 | ||||
| \section{GPL \S 4: Termination on Violation} | ||||
| \label{GPLs4} | ||||
|  | @ -1591,12 +1606,12 @@ That is FSF's steadfast position in a violation negotiation --- comply | |||
| with the license and respect freedom. | ||||
| 
 | ||||
| However, other entities who do not share the full ethos of software | ||||
| freedom as institutionalized by FSF pursue GPL violations differently.  MySQL | ||||
| AB, a company that produces the GPL'd MySQL database, upon discovering | ||||
| GPL violations typically negotiates a proprietary software license | ||||
| separately for a fee.  While this practice is not one that FSF would ever | ||||
| consider undertaking or even endorsing, it is a legal way for copyright | ||||
| holders to proceed. | ||||
| freedom as institutionalized by FSF pursue GPL violations differently. | ||||
| MySQL AB, a company that produces the GPL'd MySQL database, upon | ||||
| discovering GPL violations typically negotiates a proprietary software | ||||
| license separately for a fee.  While this practice is not one that FSF | ||||
| would ever consider undertaking or even endorsing, it is a legal way for | ||||
| copyright holders to proceed. | ||||
| 
 | ||||
| \section{GPL \S 5: Acceptance, Copyright Style} | ||||
| \label{GPLs5} | ||||
|  | @ -1788,23 +1803,23 @@ 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 into | ||||
| the world as possible, particular tactical situations of software freedom | ||||
| dictate different means.  Extending the copyleft effect as far as | ||||
| copyright law allows is not always the most prudent course to the goal. | ||||
| In particular situations, even those of us with the goal of building a | ||||
| world where all published software is Free Software realize that full | ||||
| copyleft does not best serve that goal.  The GNU Lesser General Public | ||||
| copyright law allows is not always the most prudent course in reaching the | ||||
| goal.  In particular situations, even those of us with the goal of | ||||
| building a world where all published software is Free Software realize | ||||
| that full copyleft does not best serve us.  The GNU Lesser General Public | ||||
| License (``GNU LGPL'') was designed as a solution for such situations. | ||||
| 
 | ||||
| \section{The First LGPL'd Program} | ||||
| 
 | ||||
| The first example that FSF encountered where such altered tactics were | ||||
| needed was when work began on the GNU C Library.  The GNU C Library would | ||||
| be (and today, now is) a drop-in replacement for existing C Libraries.  On | ||||
| a Unix-like operating system, C is the lingua franca and the C library is | ||||
| an essential component for all programs.  It is extremely difficult to | ||||
| become (and today, now is) a drop-in replacement for existing C Libraries. | ||||
| On a Unix-like operating system, C is the lingua franca and the C library | ||||
| is an essential component for all programs.  It is extremely difficult to | ||||
| construct a program that will run with ease on a Unix-like operating | ||||
| system without making use of services provided by the GNU C Library -- | ||||
| even if the program is written in a language other than C\@.  Effectively, | ||||
| all user application programs that run on any modern Unix-like system must | ||||
| system without making use of services provided by the C Library --- even | ||||
| if the program is written in a language other than C\@.  Effectively, all | ||||
| user application programs that run on any modern Unix-like system must | ||||
| make use of the C Library. | ||||
| 
 | ||||
| By the time work began on the GNU implementation of the C Library, there | ||||
|  | @ -1812,15 +1827,15 @@ were already many C libraries in existence from a variety of vendors. | |||
| Every proprietary Unix vendor had one, and many third parties produced | ||||
| smaller versions for special purpose use.  However, our goal was to create | ||||
| a C library that would provide equivalent functionality to these other C | ||||
| Libraries on a Free Software operating system (which in fact happens today | ||||
| in modern GNU/Linux systems, which all use the GNU C Library). | ||||
| 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 | ||||
| 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. | ||||
| the GNU/Linux platform be released under 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 | ||||
|  | @ -1837,18 +1852,18 @@ advocates, since it stops all proprietary software development on | |||
| GNU/Linux systems.  However, the outcome is a bit more subtle.  In a world | ||||
| where many C Libraries already exist, many of which could easily be ported | ||||
| to GNU/Linux, a GPL'd glibc would be unlikely to succeed.  Proprietary | ||||
| vendors would see the excellent opportunity to license their C libraries to | ||||
| anyone who wished to write proprietary software for GNU/Linux systems. | ||||
| The de-facto standard for C libraries on GNU/Linux would likely become not | ||||
| vendors would see the excellent opportunity to license their C libraries | ||||
| to anyone who wished to write proprietary software for GNU/Linux systems. | ||||
| The de-facto standard for C libraries 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 | ||||
| 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 glibc. | ||||
| be users of a proprietary C library, not the Free glibc. | ||||
| 
 | ||||
| The Lesser GPL was first conceived to handle this scenario.  It was clear | ||||
| that the existence of proprietary applications for GNU/Linux was | ||||
| 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 | ||||
| were released under a license that (a) permitted proprietary applications | ||||
|  | @ -1860,25 +1875,23 @@ the C library. | |||
| 
 | ||||
| There was no way the license of glibc could stop or even slow the creation | ||||
| of proprietary applications on GNU/Linux.  However, loosening the | ||||
| restrictions on the licensing of glibc was able to ensure that nearly all | ||||
| proprietary applications at least used a Free C library rather than a | ||||
| proprietary one.  This trade-off is central to the reasoning behind the | ||||
| LGPL\@. | ||||
| restrictions on the licensing of glibc ensured that nearly all proprietary | ||||
| applications at least used a Free C library rather than a proprietary one. | ||||
| This trade-off is central to the reasoning behind the LGPL\@. | ||||
| 
 | ||||
| Of course, many people who use the LGPL today are not thinking in these | ||||
| terms.  In fact, they are often choosing the GPL because they are looking | ||||
| for a ``compromise'' between the GPL and the X11-style liberal licensing | ||||
| that does not reserve any rights to ensure the future freedom of the | ||||
| software.  However, understanding FSF's reasoning behind the creation of | ||||
| the LGPL is helpful when studying the license. | ||||
| terms.  In fact, they are often choosing the LGPL because they are looking | ||||
| for a ``compromise'' between the GPL and the X11-style liberal licensing. | ||||
| However, understanding FSF's reasoning behind the creation of the LGPL is | ||||
| helpful when studying the license. | ||||
| 
 | ||||
| 
 | ||||
| \section{What's the Same?} | ||||
| 
 | ||||
| Much of the text of the LGPL is identical to the GPL\@.  As we begin our | ||||
| discussion of the LGPL, we will first eliminate the sections that are | ||||
| identical, or that have the minor change of changing the word ``Program'' | ||||
| to ``Library''. | ||||
| identical, or that have the minor modifications of changing the word | ||||
| ``Program'' to ``Library''. | ||||
| 
 | ||||
| First, \S 1 of LGPL, the rules for verbatim copying of source, are | ||||
| equivalent to those in GPL's \S 1. | ||||
|  | @ -2025,14 +2038,14 @@ the library'', works as follows: | |||
| \end{itemize} | ||||
| 
 | ||||
| We will talk about the specific restrictions LGPL places on ``works that | ||||
| use the library'' in detail in Section~\ref{FIXME}.  For now, focus on the | ||||
| logic related to how the LGPL places requirements on the license of | ||||
| \lplusi{}.  Note, first of all, the similarity between this explanation | ||||
| and that in Section~\ref{separate-and-independent}, which discussed the | ||||
| combining otherwise separate and independent works with GPL'd code. | ||||
| Effectively, what LGPL is doing is saying that when a new work is | ||||
| otherwise separate and independent, but has interface calls out to an | ||||
| LGPL'd library, then it is considered a ``work that uses the library''. | ||||
| use the library'' in detail in Section~\ref{lgpl-section-6}.  For now, | ||||
| focus on the logic related to how the LGPL places requirements on the | ||||
| license of \lplusi{}.  Note, first of all, the similarity between this | ||||
| explanation and that in Section~\ref{separate-and-independent}, which | ||||
| discussed the combination of otherwise separate and independent works with | ||||
| GPL'd code.  Effectively, what LGPL is doing is saying that when a new | ||||
| work is otherwise separate and independent, but has interface calls out to | ||||
| an LGPL'd library, then it is considered a ``work that uses the library''. | ||||
| 
 | ||||
| In addition, the only reason that LGPL has any control over the licensing | ||||
| of a ``work that uses the library'' is for the same reason that GPL has | ||||
|  | @ -2122,11 +2135,10 @@ the license only so that when such a border case is hit, the implications | |||
| of using LGPL continue in the expected way. | ||||
| 
 | ||||
| To understand this subtle point, we must recall the way that a compiler | ||||
| operates, which we discussed in Section~\ref{FIXME}.  The compiler first | ||||
| generates object code, which are the binary representations of various | ||||
| programming modules.  Each of those modules is usually not useful by | ||||
| itself; it becomes useful to a user a a full program when those modules | ||||
| are {\em assembled\/} into a full binary executable. | ||||
| operates.  The compiler first generates object code, which are the binary | ||||
| representations of various programming modules.  Each of those modules is | ||||
| usually not useful by itself; it becomes useful to a user a full program | ||||
| when those modules are {\em assembled\/} into a full binary executable. | ||||
| 
 | ||||
| As we have discussed, the assembly of modules can happen at compile-time | ||||
| or at runtime.  Legally, there is no distinction between the two --- both | ||||
|  | @ -2154,7 +2166,7 @@ based on the library''.  However, since the compiler copies verbatim, | |||
| copyrighted portions of the library into the object code for the otherwise | ||||
| separate and independent work, it would actually cause that object file a | ||||
| ``work based on the library''.  It is not FSF's intent that a mere | ||||
| compilation idiosyncrasy changes the requirements on the users of the | ||||
| compilation idiosyncrasy would change the requirements on the users of the | ||||
| LGPL'd software.  This paragraph removes that restriction, allowing the | ||||
| implications of the license to be the same regardless of the specific | ||||
| mechanisms the compiler uses underneath to create the ``work that uses the | ||||
|  | @ -2170,7 +2182,7 @@ them understand that the full implications of LGPL are the same regardless | |||
| of the details of the compilation progress. | ||||
| 
 | ||||
| \section{LGPL \S 6: Distributing Works that Use the Library} | ||||
| 
 | ||||
| \label{lgpl-section-6} | ||||
| Now that we have a established a good working definition of works that | ||||
| ``use'' and works that ``are based on'' the library, we will consider the | ||||
| rules for distributing these two different works. | ||||
|  | @ -2184,10 +2196,10 @@ source form.  However, there are also conditions in LGPL \S 6 to make sure | |||
| that a user who wishes to modify or update the library can do so. | ||||
| 
 | ||||
| LGPL \S 6 lists five choices with regard to supplying library source and | ||||
| the freedom to modify that library source the users.  We will first | ||||
| consider the option given by \S 6(b), which describes the most common way | ||||
| that is currently used for LGPL compliance on a ``work that uses the | ||||
| library''. | ||||
| granting the freedom to modify that library source to users.  We will | ||||
| first consider the option given by \S 6(b), which describes the most | ||||
| common way that is currently used for LGPL compliance on a ``work that | ||||
| uses the library''. | ||||
| 
 | ||||
| \S 6(b) allows the distributor of a ``work that uses the library'' to | ||||
| simply use a dynamically linked, shared library mechanism to link with the | ||||
|  | @ -2214,17 +2226,18 @@ based on the library'', so that the user can relink the application and | |||
| build a new binary. | ||||
| 
 | ||||
| The remaining options in \S 6 are very similar to the other choices | ||||
| provided by GPL \S 3.  There are some additions, and time does not permit | ||||
| us in this course to go into those additional options.  In almost all | ||||
| cases of distribution under LGPL, either \S 6(a) or \S 6(b) are exercised. | ||||
| provided by GPL \S 3.  There are some additional options, and time does | ||||
| not permit us in this course to go into those additional options.  In | ||||
| almost all cases of distribution under LGPL, either \S 6(a) or \S 6(b) are | ||||
| exercised. | ||||
| 
 | ||||
| \section{Distribution of Works Based on the Library} | ||||
| 
 | ||||
| Essential, ``works based on the library'' must be distributed under the | ||||
| same conditions as works under full GPL\@.  In fact, we note that LGPL's \S | ||||
| 2 is nearly identical in its terms and requirements to GPL's \S 2.  There | ||||
| are again subtle differences and additions, which time does not permit us | ||||
| to cover in this course. | ||||
| Essentially, ``works based on the library'' must be distributed under the | ||||
| same conditions as works under full GPL\@.  In fact, we note that LGPL's | ||||
| \S 2 is nearly identical in its terms and requirements to GPL's \S 2. | ||||
| There are again subtle differences and additions, which time does not | ||||
| permit us to cover in this course. | ||||
| 
 | ||||
| \section{And the Rest} | ||||
| 
 | ||||
|  | @ -3400,6 +3413,7 @@ That's all there is to it! | |||
| % LocalWords:  proprietarize redistributors sublicense yyyy Gnomovision EULAs | ||||
| % LocalWords:  Yoyodyne FrontPage improvers Berne copyrightable Stallman's GPLs | ||||
| % LocalWords:  Lessig Lessig's UCITA pre PDAs CDs reshifts GPL's Gentoo glibc | ||||
| % LocalWords:  TrollTech administrivia LGPL's MontaVista OpenTV Mitek Arce | ||||
| % LocalWords:  unprotectable protectable Unfreedonia chipset CodeSourcery | ||||
| % LocalWords:  impermissibly | ||||
| % LocalWords:  TrollTech administrivia LGPL's MontaVista OpenTV Mitek Arce DVD | ||||
| % LocalWords:  unprotectable protectable Unfreedonia chipset CodeSourcery Iqtel | ||||
| % LocalWords:  impermissibly Bateman faire minimis Borland uncopyrightable Mgmt | ||||
| % LocalWords:  franca downloadable | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Bradley M. Kuhn
						Bradley M. Kuhn