Software Freedom Law Center, a small law firm specializing in Open
Source, recently published its so-called "Guide to GPL Compliance,
Second Edition":
http://softwarefreedom.org/resources/2014/SFLC-Guide_to_GPL_Compliance_2d_ed.html
The Firm's document is substantially less comprehensive than this one;
however, their document contained a few phrases and paragraphs that
seemed useful and accurate. This commit incorporates the useful
material from that work into this one (as permitted by the CC BY-SA 4.0
license, which the Software Freedom Law Center applied to their work).
The useful sections have been pasted without proper textual integration
into the appropriate sections of this tutorial. A few are currently
commented out entirely and marked with appropriate FIXME's. Meanwhile,
the text that seems immediately useful is *not* commented out, and is
marked with "FIXME-URGENT". Additional work is now required to
integrate the new text properly into this tutorial.
Careful readers who compare this commit with The Firm's document will
find that I passed on inclusion of some seemingly useful material.
Unfortunately, The Firm's text contained some inaccuracies, and frames
discussion primarily from a for-profit perspective. More disturbingly,
a few statements even directly contradicted the FSF's stated policies.
Of course, The Firm clearly claims "this document does not express the
views, intentions, policy, or legal analysis of any SFLC clients or
client organizations", but I could not in good conscience adopt, as the
official advice in this tutorial, any text that conflicts with the FSF's
policies, nor will I incorporate any puffery that subtly kowtows to
for-profit corporate interests.
Nevertheless, given The Firm's perceived stature, I briefly considered
including policy-conflicting statements, attributing them as alternative
third-party opinions; many of the FSF's own opinions were already
incorporated in that manner earlier this year. Indeed, I will not prima
facie reject future patches that integrate such statements naturally for
this tutorial. However, I feel that the didactic value of including The
Firm's attributed dissenting opinions in this tutorial does not outweigh
my editing effort required for such additional textual integration.
Regarding Software Freedom Law Center's copyrights included herein,
I took the following specific actions to comply with CC By SA 4.0:
§3(a)(1)(a)(i): This log message indicates Software Freedom Law Center
as the source of the material herein committed.
§3(a)(1)(a)(i): Copyright notices at the top level of the document,
as well as those in individual parts, are updated to
include the 2014 copyright notice from the Software
Freedom Law Center.
§3(a)(1)(a)(ii-v): The project already referred to and included a copy
§3(b)(1): of CC BY SA 4.0 International and its URL.
§3(a)(2): The attribution information is fully included in
this Git repository.
§3(a)(3): I and this project have received no such request.
§3(b)(1): The license of the larger work was already
CC BY SA 4.0 International.
§3(b)(3): No such conditions are imposed.
My primary goal here was to put the text into a consistent voice, and
convert the text to a more flowing narrative rather than a step-by-step
list.
In a few places, I added commentary on the process where it seemed
appropriate, but I strove to keep that minimal.
Finally, labels to some unlabeled sections of gpl-lgpl.tex were needed
for back-references used in my rewrite.
Joshua Gay made contributions to all the files earlier in 2014 (see git
log) which were copyrighted by the FSF, so FSF's copyright needs
refreshed to include this year.
Denver recently added a section to the enforcement-case-studies.tex, so
his copyright notice needs to go there and at the top file.
I made changes to enforcement-case-studies.tex on top of Denver's.
Also, remove commented-out copyright notices -- the ones in the actual
text are now primary and should be maintained directly.
The older portions of this tutorial tended to favor the term "derivative
work", since that was the popular catch-all term used at the time the
text was written.
However, as the newer text regarding GPLv3 now states, FSF abandoned the
use of the term "derivative work" in the text of GPLv3 itself, for
various reasons we already discuss in the tutorial.
Therefore, the tutorial text itself should likely not rely so heavily on
the phrase "derivative work" throughout. This change herein reworks a
number of places where "derivative work" was used in the tutorial and
replaced it with other terms.
Ultimately, some word-smithing happened as part of the process of doing
this patch.
Given the wealth of text this chapter offers regarding derivative works,
this section really is necessary to give context on this point and
assure that the reader is not unduly swayed to believe that the
derivative work discussion is a central tenant of understanding
copyleft.
Long term, it may make sense to move the entire chapter on derivative
works to a different part of the tutorial. Historically, it was placed
here because when teaching courses on the subject based on this text, I
found as an instructor that questions about derivative works became so
rampant from students during discussions of GPLv2§2 / GPLv3§5 that
derivative works discussion ahead of time was the only way to quell the
onslaught of ultimately off-topic questions.
Thus, the placement of the derivative works section in this location may
in fact be merely an historical artifact that this text was written
originally to accompany an in-course presentation. While I'd still
recommend organizing a classroom presentation of these topics in that
order, I no longer believe the written materials must follow suit.
enyst was quite correct that more explanation was needed here about how
an entity achieves exclusive relicensing rights. However, the details
are somewhat off-point to what the section is trying to explain, so the
details are best placed in a footnote.
I've also separated out copyright assignment from generating all of
one's own copyrights. This may be a distinction without a difference,
but a laundry list seemed appropriate here. Perhaps this should be
shortened in future.
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 text needs to be clear that GPLv2§2 doesn't govern merely the act
of modification, but distributing modified versions (in whole or in
part). The previous text here wasn't clear on that point.
While both GPLv2 and GPLv3 have long been considered to grant unabridged
right to private modification, GPLv3 has much clearer and explicit
wording to this effect.
This should be noted when that paragraph is explained. This change
herein does that.
HT Wolvereness for pointing this difference between GPLv2 and GPLv3 out
to me.
Much of this text, pasted from various different rationale documents, deals
with issues that either changed in later drafts, or is focused on various
minutia about the Microsoft/Novell deal that seems in retrospect rather
unimportant for many reasons.
Hopefully what I've cut down to is the bare essentials of what's needed to
explain the patent section of GPLv3 to a newbie. I suspect that I'll want
later to go over this and add more material or reword things further.
I've added a few FIXME-LATER's for that reason.
Much of this text, pasted from various different rationale documents, deals
with issues that either changed in later drafts, or is focused on various
minutia about the Microsoft/Novell deal that seems in retrospect rather
unimportant for many reasons.
Hopefully what I've cut down to is the bare essentials of what's needed to
explain the patent section of GPLv3 to a newbie. I suspect that I'll want
later to go over this and add more material or reword things further.
I've added a few FIXME-LATER's for that reason.