* Wrote about GPL Section 3
This commit is contained in:
parent
163097cd2b
commit
1e14536092
1 changed files with 200 additions and 7 deletions
207
gpl-lgpl.tex
207
gpl-lgpl.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
|
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
|
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
|
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
|
\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
|
as long as the terms of GPL are adhered to for those packages that are
|
||||||
truly GPL'ed.
|
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}
|
\chapter{Defending Freedom On Many Fronts}
|
||||||
|
@ -872,16 +1065,16 @@ truly GPL'ed.
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\chapter{Odds, Ends, and Absolutely No Warranty}
|
\chapter{Odds, Ends, and Absolutely No Warranty}
|
||||||
|
|
||||||
\section{GPL, \S 8}
|
\section{GPL \S 8}
|
||||||
\label{GPLs8}
|
\label{GPLs8}
|
||||||
|
|
||||||
\section{GPL, \S 9}
|
\section{GPL \S 9}
|
||||||
\label{GPLs9}
|
\label{GPLs9}
|
||||||
|
|
||||||
\section{GPL, \S 10}
|
\section{GPL \S 10}
|
||||||
\label{GPLs10}
|
\label{GPLs10}
|
||||||
|
|
||||||
\section{GPL, \S 11}
|
\section{GPL \S 11}
|
||||||
\label{GPLs11}
|
\label{GPLs11}
|
||||||
|
|
||||||
There was a case where the disclaimer of a contract was negated because it
|
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: proprietarize redistributors sublicense yyyy Gnomovision EULAs
|
||||||
% LocalWords: Yoyodyne FrontPage improvers Berne copyrightable Stallman's GPLs
|
% LocalWords: Yoyodyne FrontPage improvers Berne copyrightable Stallman's GPLs
|
||||||
% LocalWords: Lessig Lessig's UCITA pre
|
% LocalWords: Lessig Lessig's UCITA pre PDAs CDs reshifts
|
||||||
|
|
Loading…
Reference in a new issue