@@ -1635,23 +1635,23 @@ 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 GPLv2~\S3(a), the source 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 GPLv2~\S3
explains in detail what is meant by ``complete.'' In essence, it is all
That source code must also be ``complete''. GPLv2~\S3's penultimate paragraph
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 chooses, 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, GPLv2~\S3 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
seen in GPL enforcement. Under GPL, if you pay a high price for
a copy of GPL'd 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 a GPL-violating
cozenage whereby they produce very specialized binaries (perhaps for
an obscure architecture). They then give source code that does
correspond, but withhold the ``incantations'' and build plans they
...
@@ -1660,40 +1660,38 @@ Therefore, GPLv2~\S3 requires that the source code include ``meta-material'' lik
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
Software distribution comes in many
forms. Embedded manufacturers, for example, have the freedom to put
GPL'd software into theirPDAs with very tight memory and space
GPL'd software into mobile devices 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.
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. 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
phrase covers a broad spectrum --- the phrase seeks to pre-adapt to
changes in technology. When GPLv22 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-R is
gaining adoption. This language must adapt with changing technology.
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
language in the license 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
Internet is acceptable. In the corporate world in industrialized countries, it is indeed customary to
simply download a CDs' worth of data quickly. However, even today in the USA, many computer users are not connected to the Internet, and most people connected
to the Internet still have limited download speeds. 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 must be normalized for a worldwide userbase. Simply
``customs'' here are normalized for a worldwide userbase. 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 GPLv2~\S3. \emph{If} distribution of the binary files is made only on the
Internet (i.e., ``from a designated place''), \emph{then} simply providing
...
@@ -1703,14 +1701,13 @@ sufficient to comply with GPLv2~\S3.
\medskip
As is shown above, Under GPLv2~\S3(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'd software. For this situation and others like it, \S
3(b) is available.
prohibit using GPL'd software. For this situation and others like it, GPlv2\S~3(b) is available.
GPLv2~\S3(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 GPLv2~\S3(b) compliant
...
@@ -1727,13 +1724,13 @@ that offer for source for three years and ship it out (just as they
would have had to do under GPLv2~\S3(a)) at a moment's notice when they
receive such a request. There is real organizational cost here:
support engineers 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.''
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 GPLv2~\S\S1--2. A company may ship a binary image
and an offer for source to only one customer. However, under GPL, that