Rework text to introduce definition of CCS.

CCS ultimately wasn't mentioned until much later in the GPLv3 sections,
where, ironically, we have to point out that GPLv3 defined the term as
"Corresponding Source" [0], not CCS, and explain why GPL enforcement
wonks still say CCS.

This rework now introduces the acronym at the natural moment: while
describing GPLv2§3's use of the words "complete" and "corresponding".

Adding that made the section even more disjoint than it already was.  I
put in some \subsection's to make it slightly less so, and did some
wordsmith work on surrounding text.

[0] I wish some GPLv3 drafter had asked me what to call the defined term
     so that I could point out what fit standard parlance. :)
This commit is contained in:
Bradley M. Kuhn 2015-03-09 22:33:52 -07:00
parent 15ae6f3a17
commit ec2abce021

View file

@ -1847,6 +1847,8 @@ option for most distributors, because it means that the source-code
provision obligations are fully completed at the time of binary provision obligations are fully completed at the time of binary
distribution (more on that later). distribution (more on that later).
\subsection{Complete, Corresponding Source (CCS)}
Under GPLv2~\S3(a), the source code provided must be the ``corresponding source Under GPLv2~\S3(a), the source code provided must be the ``corresponding source
code.'' Here ``corresponding'' primarily means that the source code code.'' Here ``corresponding'' primarily means that the source code
provided must be that code used to produce the binaries being distributed. provided must be that code used to produce the binaries being distributed.
@ -1859,23 +1861,38 @@ exercise her freedoms to modify and redistribute changes. Without the
complete source, it would not be possible to make changes that were complete source, it would not be possible to make changes that were
actually directly derived from the version received. actually directly derived from the version received.
Based on the appearance of those two words, GPL theorists will often refer to
the source code required under the previsions of this section as ``Complete,
Corresponding Source'', sometimes abbreviated as CCS\@. CCS is not a formal,
defined term in GPLv2, but rather, GPL theorists coined the acronym CCS to
embody not just the concepts of ``complete'' and ``corresponding'' as found
in GPLv2, but the entirety of GPLv2's requirements for source code
provisioning. In other words, GPL theorists might say: ``the company
provided some source, but it wasn't CCS'', which would mean the source code
failed in some ways to meet some term of GPLv2.
\label{GPLv2s3-build-scripts} \label{GPLv2s3-build-scripts}
Furthermore, GPLv2~\S3 is defending against a tactic that has in fact been Indeed, CCS needs completely include not just that source which is directly
seen in GPL enforcement. Under GPL, if you pay a high price for translated by the compiler into object code, but other materials necessary to
a copy of GPL'd binaries (which comes with corresponding source, of convert the source into equivalent binaries. Specifically, GPLv2~\S3
course), you have the freedom to redistribute that work at any fee you requires that the source code include ``meta-material'' like scripts,
choose, or not at all. Sometimes, companies attempt a GPL-violating interface definitions, and other material that is used to ``control
cozenage whereby they produce very specialized binaries (perhaps for compilation and installation'' of the binaries. In this manner, those
an obscure architecture). They then give source code that does further down the distribution chain are assured that they have the unabated
correspond, but withhold the ``incantations'' and build plans they freedom to build their own modified works from the sources provided.
used to make that source compile into the specialized binaries.
Therefore, GPLv2~\S3 requires that the source code include ``meta-material'' like This requirement is not merely of theoretical value. If you pay a high price
scripts, interface definitions, and other material that is used to for a copy of GPL'd binaries (which comes with CCS, of course), you have the
``control compilation and installation'' of the binaries. In this freedom to redistribute that work at any fee you choose, or not at all.
manner, those further down the distribution chain are assured that Sometimes, companies attempt a GPL-violating cozenage whereby they produce
they have the unabated freedom to build their own modified works very specialized binaries (perhaps for an obscure architecture). They then
from the sources provided. give source code that does correspond, but withhold the ``incantations'' and
build plans they used to make that source compile into the specialized
binaries. Such distributions violate GPL, since the downstream users cannot
effectively ``control compilation and installation'' of the binaries.
\subsection{Additional Source Provision Options}
Software distribution comes in many Software distribution comes in many
forms. Embedded manufacturers, for example, have the freedom to put forms. Embedded manufacturers, for example, have the freedom to put