Explain GPLv2 implicit private modification rights

I've long been aware that GPLv2 "technically" governed private
modifications and that generally there were probably more requirements
on privately modified versions of GPLv2'd works than most people assumed
in practice, including commonly held public interpretation by FSF.

HT Wolvereness, who pointed out to me that GPLv3 solved that problem.
When I spoke to Fontana about it, he was indeed aware that this text was
"missing" in GPLv2 and that GPLv3 properly added it, through some
politics during the GPLv3 process.

I've added herein the ultimate historical conclusions about GPLv2's
interpretation and how GPLv3 clarified it.  I've left out the color
about the politics of how it got added, not because they are not
interesting, relevant and germane to tutorial, but because we don't have
a good place yet in the tutorial for discussion of GPLv3 drafting
politics, and frankly if we have such a section, Fontana ought to write
it, not me.
This commit is contained in:
Bradley M. Kuhn 2014-09-19 17:57:52 -04:00
parent 3847ee1c1b
commit b7bb47188f

View file

@ -1627,6 +1627,38 @@ 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'd. truly GPL'd.
\subsection{Right to Private Modification}
\label{gplv2-private-modification}
The issue of private modifications of GPLv2'd works deserves special
attention. While these rights are clearly explicit in GPLv3~\S2\P2 (see
\~S\ref{GPLv3S2} of this tutorial for details), the permission to create
private modifications is mostly implicit in GPLv2. Most notably, the
requirements of GPLv2~\S2 (and GPLv2~\S3, which will be discussed next) are
centered around two different copyright controls: both modification
\emph{and} distribution. As such, GPLv2~\S2's requirements need only be met
when a modified version is distributed; one need not follow them for modified
versions that are not distributed\footnote{As a matter of best practice, it's
useful to assume that all software may eventually be distributed later,
even if there no plans for distribution at this time. Too often, GPL
violations occur because of a late distribution decision of software that
was otherwise never intended for distribution.}.
However, the careful reader of GPLv2 will notice that, unlike GPLv3, no other
clauses of the license actually give explicit permission to make private
modifications. Since modification of software is a control governed by
copyright, a modifier needs permission from the copyright holder to engage in
that activity.
In practice, however, traditional GPLv2 interpretation has always assumed
that blanket permission to create non-distributed modified versions was
available, and the
\href{http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic}{FSF
has long opined that distribution of modified versions is never mandatory}.
This issue is one of many where GPLv3 clarifies in explicit text the implicit
policy and intent that was solidified via long-standing interpretation of
GPLv2.
\section{GPLv2~\S3: Producing Binaries} \section{GPLv2~\S3: Producing Binaries}
\label{GPLv2s3} \label{GPLv2s3}
@ -2559,8 +2591,9 @@ permitted without limitation and activities that trigger additional
requirements. Specifically, GPLv3~\S2\P2 guarantees the basic freedoms of requirements. Specifically, GPLv3~\S2\P2 guarantees the basic freedoms of
privately modifying and running the program. While these basic freedoms were privately modifying and running the program. While these basic freedoms were
generally considered a standard part of users' rights under GPLv2 as well, generally considered a standard part of users' rights under GPLv2 as well,
the GPLv3 states them herein more explicitly. (In other words, there is no the GPLv3 states them herein more explicitly. In other words, there is no
direct analog to the first sentence of GPLv3~\S2\P2 in GPLv2.) direct analog to the first sentence of GPLv3~\S2\P2 in GPLv2
(See \S~\ref{gplv2-private-modification} of this tutorial for more on this issue.)
Also, GPLv3~\S2\P2 gives an explicit permission for a client to provide a Also, GPLv3~\S2\P2 gives an explicit permission for a client to provide a
copy of its modified software to a contractor exclusively for that contractor copy of its modified software to a contractor exclusively for that contractor