diff --git a/GPL-Business/ChangeLog b/GPL-Business/ChangeLog index 372508b1fe90f349cc915f5d1f83f3a4352b62cf..45aae71f7ebe73c3b67195370c9799252a282eb8 100644 --- a/GPL-Business/ChangeLog +++ b/GPL-Business/ChangeLog @@ -3,6 +3,7 @@ * gpl-business.tex (section{GPL, \S 1: Verbatim Copying}): Wrote section. (section{GPL \S 2: Share and Share Alike}): Wrote section. + (section{GPL \S 3: Producing Binaries}): Wrote section. 2003-05-28 Bradley M. Kuhn diff --git a/GPL-Business/gpl-business.tex b/GPL-Business/gpl-business.tex index 7545eebf05b750b22f6284b4fa509da43f5c882f..4c6f7bd638675d31bb187c7966f452eb8b2c10cb 100644 --- a/GPL-Business/gpl-business.tex +++ b/GPL-Business/gpl-business.tex @@ -832,7 +832,7 @@ receive this no-charge license. Namely, they receive it ``under the terms of this License'', the GPL. When an entity \emph{chooses} to redistribute a derivative work of GPL'ed software, the license of that whole derivative work must be GPL and only GPL\@. In this manner, \S 2(b) dovetails nicely -with \S 6 (as discussed in Section\~ref{GPLs6} of this tutorial). +with \S 6 (as discussed in Section~\ref{GPLs6} of this tutorial). \medskip @@ -852,7 +852,200 @@ software alongside proprietary software or other unrelated Free Software, as long as the terms of GPL are adhered to for those packages that are truly GPL'ed. -\section{GPL, \S 3} +\section{GPL \S 3: Producing Binaries} + +% FIXME: need name of a novelist who writes very obscurely and obliquely. + +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 must 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. + +Software is not so. While the source code, the human-readable +representation of software is of keen interest to programmers, users and +programmers alike cannot make the proper use of software in that +human-readable form. Binary code --- the ones and zeros that the computer +can understand --- must be producible and attainable for the software to +be fully useful. Without the binaries, be they in object or executable +form, the software serves only the didactic purposes of computer science. + +Under copyright law, binary representations of the software are simply +derivative works of the source code. Applying a systematic process (i.e., +``compilation'') to a work of source code yields binary code. The binary +code is now a new work of expression fixed in the tangible medium of +electronic file storage. + +Therefore, for GPL'ed software to be useful, the GPL, since it governs the +rules for creation of derivative works, must grant permission for the +generation of binaries. Furthermore, notwithstanding the relative +popularity of source-based GNU/Linux distributions like ``Gentoo'', users +find it extremely convenient to receive distribution of binary software. +Such distribution is the redistribution of derivative works of the +software's source code. \S 3 addresses the matter of creation and +distribution of binary versions. + +Under \S 3, binary versions may be created and distributed under the terms +of \S\S 1--2, so all the material previously discussed applies here. +However, \S 3 must go a bit further. Access to the software's source code +is an incontestable prerequisite for the exercise of the fundamental +freedoms to modify and improve the software. Making even the most trivial +changes to a software program at the binary level is effectively +impossible. \S 3 must ensure that the binaries are never distributed +without the source code, so that these freedoms are ensured to be passed +along the distribution chain. + +\S 3 permits distribution of binaries, and then offers three options for +distribution of source code along with binaries. The most common and the +least complicated is the option given under \S 3(a). + +\S 3(a) offers the option to directly accompany the source code alongside +the distribution of the binaries. This is by far the most convenient +option for most distributors, because it means that the source-code +provision obligations are fully completed at the time of binary +distribution (more on that later). + +Under \S 3(a), the source code code provided must be the ``corresponding +source code''. Here ``corresponding'' primarily means that the source +code provided must be that code used to produce the binaries being +distributed. That source code must also be ``complete''. A later +paragraph of \S 3 explains in detail what is meant by ``complete''. In +essence, it is all the material that a programmer of average skill would +need to actually use the source code to produce the binaries she has +received. Complete source is required so that, if the licensee choses, +she should be able to exercise her freedoms to modify and redistribute +changes. Without the complete source, it would not be possible to make +changes that were actually directly derived from the version received. + +Furthermore, \S 3 is defending against a tactic that has in fact been seen +in FSF's GPL enforcement. Under GPL, if you pay a high price for a copy +of GPL'ed binaries (which comes with corresponding source, of course), you +have the freedom to redistribute that work at any fee you choose, or not +at all. Sometimes, companies attempt to build a racket by producing very +specialized binaries (perhaps for an obscure architecture), and then +giving source code that does corresponding, but not giving the +``incantations'' and build plans they used to make that source compile +into the specialized binaries. Therefore, \S 3 that the source code +include ``meta-material'' like scripts, interface definitions, and other material +that is used to ``control compilation and installation'' of the binaries. +In this manner, those further down the distribution chain are assured that +they have the unabated freedom to build their own derivative works from +the sources provided. + +FSF (as authors of GPL) realizes that software distribution comes in many +forms. Embedded manufacturers, for example, have the freedom to put +GPL'ed software into their PDAs with very tight memory and space +constraints. In such cases, putting the source right alongside the +binaries on the machine itself might not be an option. While it is +recommended that this be the default way that people comply with GPL, the +GPL does provide options when such distribution is infeasible. + +\S 3, therefore, allows source code to be provided on any physical +``medium customarily used for software interchange''. By design, this +phrase covers a broad spectrum. At best, FSF can viably release a new GPL +every ten years or so. Thus, phrases like this must be adaptive to +changes in the technology. When GPL version 2 was first published in June +1991, distribution on magnetic tape was still common, and CD was +relatively new. Today, CD is the default, and for larger systems DVD-ROM +is gaining adoption. This language must adapt with changing technology. + +Meanwhile, the binding created by the word ``customarily'' is key. Many +incorrectly believe that distributing binary on CD and source on the +Internet is acceptable. In the corporate world, it is indeed customary to +simply download CDs worth of data over a T1 or email large file +attachments. However, even today in the USA, many computer users with +CD-ROM drives are not connected to the Internet, and most people connected +to the Internet are connected via a 56K dial-up connection. Downloading +CDs full of data is not customary for them in the least. In some cities +in Africa, computers are becoming more common, but Internet connectivity +is still available only at a few centralized locations. Thus, the +``customs'' here have must have a worldwide scope in context, and simply +providing source on the Internet --- while it is a kind, friendly and +useful thing to do --- is not usually sufficient. + +Note, however, a major exception to this rule, given by the last paragraph +of \S 3. \emph{If} distribution of the binary files is made only on the +Internet (i.e., ``from a designated place''), \emph{then} simply providing +the source code right alongside the binaries in the same place is +sufficient to comply with \S 3. + +\midskip + +As is shown above, Under \S 3(a), embedded manufacturers can put the +binaries on the device and ship the source code along on a CD\@. However, +sometimes this turns out to be too costly. Including a CD with every +device could prove too costly, and may practically (although not legally) +prohibit using GPL'ed software. For this situation and others like it, \S +3(b) is available. + +\S 3(b) allows a distributor of binaries to instead provide a written +offer for source code alongside those binaries. This is useful in two +specific ways. First, it may turn out that most users do not request the +source, and thus the cost of producing the CDs is saved --- a financial +and environmental windfall. In addition, along with a \S 3(b) compliant +offer for source, a binary distributor might choose to \emph{also} give a +URL for source code. Many who would otherwise need a CD with source might +turn out to have those coveted high bandwidth connections, and are able to +download the source instead --- again yielding environmental and financial +windfalls. + +However, note that regardless of how many users prefer to get the source +online, that \S 3(b) does place lasting long-term obligations on the +binary distributor. The binary distributor must be prepared for three +years to honor that offer for source, and ship it out (just as they would +have had to do under \S 3(a)) at a moment's notice when they receive such +a request. There is real organizational cost here: support engineers for +three years must be trained how to route source requests, and source CD +images for every release version for the last three years must be kept on +hand to burn such CDs quickly. The requests might not even come from +actual customers; the offer for source must be valid for ``any third +party''. + +That phrase is another place where some get confused --- thinking again +that full public distribution of source is required. The offer for source +must be valid for ``any third party'' because of the freedoms of +redistribution granted by \S\S 1--2. A company may ship a binary image +and an offer for source to only one customer. However, under GPL, that +customer has the right to redistribute that software to the world if she +likes. When she does, that customer has an obligation to make sure that +those who receive the software from her can exercise their freedoms under +GPL --- including the freedom to modify, rebuild, and redistribute the +source code. + +This is where \S 3(c) comes into play. Ultimately, \S 3(b) is a big +compromise. It separates 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 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. + +Meanwhile, \S 3(b)'s compromise primarily benefits companies who +distribute binary software commercially. Without \S 3(c), that benefit +would be at the detriment of the companies' customers; the burden of +source code provision would be unfairly shifted to the companies' +customers. A customer, who had received binaries with a \S 3(b)-compliant +offer, would be required under GPL (sans \S 3(c)) to acquire the source, +merely to give a copy of the software to a friend who needed it. \S 3(c) +reshifts this burden to entity who benefits from \S 3(b). + +\S 3(c) allows those who undertake \emph{non-commercial} distribution to +simply pass along a \S 3(b)-compliant source code offer. The customer who +wished to give a copy to her friend can now do so without provisioning the +source, as long as she gives that offer to her friend. By contrast, if +she wanted to go into business for herself selling CDs of that software, +she would have to acquire the source and either comply via \S 3(a), or +write her own \S 3(b)-compliant source offer. + +This process is precisely the reason why a \S 3(b) source offer must be +valid for all third parties. At the time the offer is made, there is no +way of knowing who might end up non-commercially receiving a copy of the +software. Companies who choose to comply via \S 3(b) must thus be +prepared to honor all incoming source code requests. For this and the +many other additional necessary complications under \S\S 3(b--c), it is +only rarely a better option than complying via \S 3(a). + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Defending Freedom On Many Fronts} @@ -872,16 +1065,16 @@ truly GPL'ed. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Odds, Ends, and Absolutely No Warranty} -\section{GPL, \S 8} +\section{GPL \S 8} \label{GPLs8} -\section{GPL, \S 9} +\section{GPL \S 9} \label{GPLs9} -\section{GPL, \S 10} +\section{GPL \S 10} \label{GPLs10} -\section{GPL, \S 11} +\section{GPL \S 11} \label{GPLs11} There was a case where the disclaimer of a contract was negated because it @@ -1333,4 +1526,4 @@ General Public License instead of this License. % LocalWords: proprietarize redistributors sublicense yyyy Gnomovision EULAs % LocalWords: Yoyodyne FrontPage improvers Berne copyrightable Stallman's GPLs -% LocalWords: Lessig Lessig's UCITA pre +% LocalWords: Lessig Lessig's UCITA pre PDAs CDs reshifts