The unicode ’ was introduced by the pasted text mention in the previous
commits. While I believe LaTeX can be configured to accept Unicode
quote equivalents, it seems simpler to me merely to replace the
character with an appropriate version that LaTeX expects in this
situation by default.
Much of the pasted text here was useful. However, some of the claims
were broad reaching, I've reigned those in. (e.g., saying "Taken
together, these provisions mean:" was a bit strong).
Also, in that specific spot, the conclusions made in the text were
described as applying to LGPLv2.1, but are clearly conclusions about
LGPLv3. I've corrected that herein.
Finally, I had to write a bunch of next text to make the pasted text
work, and also added one FIXME for later of where things could be
improved further.
This text was mostly useful as is. However, it failed to make a key
point I've often made: that the combinations created by comingling
AGPLv3'd code with GPLv3'd code may be difficult to disentangle, and
thus in practice, it may turn out that such a combination effectively
must be licensed as a whole under AGPLv3, even if technically some
copyrights included therein are GPLv3'd.
In practice, this nuance is only a technical barrier, since complying
fully with AGPLv3 automatically complies with GPLv3.
This text was (on the whole) useful as introductory text to this
tutorial's existing extensive section on GPLv3§11.
The example, however, belonged further down in the section, so I've
placed it there.
Most of this text was useful, particularly since there was a previous
FIXME here that GPLv3§10 was not extensively discussed.
However, the same footnote regarding Jaeger's opinion under German
copyright law applies to this text, so a reference back to it has herein
been added.
The pasted text, most of which was useful, is now integrated as the
desired laundry-list of GPLv3§7 subsection explanations.
This also allowed for easy integration of some of the older
commented-out text that originally came from GPLv3 rationale documents.
Meanwhile, however, I discovered, upon more careful examination of the
pasted text, a serious and grave error regarding GPLv3§7(d).
Specifically, GPLv3§7(d) makes the modern "third clause" of the 3-Clause
BSD compatible with the GPL, *not* the problematic old-school BSD
advertising clause (from the 4-Clause BSD).
I'm amazed that anyone versed in licensing could make this error,
frankly, and readers should be told, since other materials are now
disseminated by others, that the point is incorrect. Therefore, I've
not only noted the correct compatibility conclusion, but also
affirmatively identified the incorrectness of the wrong conclusion that
was previously added via the pasted text from SFLC's "Guide".
Finally, on a LaTeX formatting note, the enumitem package is now needed
since I'm using that for the list of GPLv3§7 subsections.
This change perhaps is somewhat controversial, but reflects honest
reality of this history of additional requirements on GPL. The
additional requirements that GPLv3 permits mostly represent historically
known situations where GPLv2 permitted license compatibility with Free
Software licenses containing such requirements.
Orthodox compatibility theory demands that such additional requirements
have explicit codification in a copyleft license, which hints at why
GPLv3 needed to include this section.
However, historical copyright holder toleration of these sorts of
requirements placed on GPLv2 works is well-documented, and failure to
mention it here is a disservice to the reader.
Most of the pasted text was redundant to the existing guide text, but
one sentence reiterates a useful point in a creative way, so that
sentence is herein integrated into the preceding paragraph.
Upon second reading of this text, I don't know why I saved it. The
existing guide already covers these issues adequately, and there is no
specific place I could find where this new text worked well as an
introductory paragraph (as has been done with others of these pasted
texts).
The last commit brought in text that categorically claims: "automatic
termination cannot be cured by obtaining additional copies from an
alternate supplier". While this position is by far the overwhelming
majority position among copyleft advocates, theorists, and legal
experts, the small minority dissenting opinion is simply too strongly
sourced to ignore.
Specifically, Till Jaeger's position was central to Harald Welte's
gpl-violations.org community-oriented GPL enforcement efforts.
Therefore, this tutorial must include his position when covering the
issue of automatic license reinstatement in this tutorial.
I have told Till that I can't believe his position is possibly correct.
(I understand that many other copyleft theorists and legal experts have
done so as well.) However, Till remains steadfast that this position is
correct, at least under German copyright law. Speaking for myself, I
have never met a legal expert as well-versed in both copyleft and German
copyright law as Till Jaeger is, and therefore I cannot in good
conscience allow this tutorial to remain silent regarding Till's
position, lest the tutorial propagate an inappropriate bias for the
majority belief.
That said, I still feel that a footnote is the right place for the
argument. It *is* a tiny minority position [0] among an overwhelming
consensus to the contrary, and therefore adding the point to the main
text would only serve to distract the tutorial reader.
[0] In particular, I am convinced Jaeger's argument, if true, is a
peculiarity of German law exclusively. For example, French lawyers
I've spoken with believe that the standard USA legal position on
this issue is also accurate under French copyright law. I therefore
conclude the minority position (if accurate) is unrelated to
differences between civil law and common law copyright regimes, and
is instead a unique peculiarity to German copyright law.
The tutorial did not previously have an adequate description of
GPLv2§2(c), so this pasted text is as good as any that I could think of,
although I reworded it slightly.
I chose to integrate this text *before* the discussion of GPLv2§2(b)
because the latter section requires so much attention, it seems
appropriate to get the less complex parts of GPLv2§2 out of the way
before diving into that essential discussion of GPLv2§2(b).
The pasted text, moved in an earlier commit to this chapter, is now
incorporated as the introduction for the chapter on derivative works.
Changes also included to the previous introduction so it properly flows
from the new text.
This was easily integrated, but I am now not sure what I was thinking
with the FIXME note about linking back to the copyleft definition. The
right link is a forward-link to the derivative works chapter, and thus
I've added that.
Some of the pasted text was useful as a method of introducing briefly
the legal details of copyleft, to an appropriate level of detail for
this initial copyleft definition found in the tutorial. However,
substantial additional text was needed to both properly integrate the
pasted text, and also improve the copyleft definition overall in light
of the pasted text content.
Meanwhile, part of the pasted text definitely doesn't belong here, but I
noticed it likely makes a good addition to the introductory paragraph in
the derivative works section.
I wrote a pretty good copyleft definition, originally based on the one
found on Wikipedia, for use on the front page of copyleft.org. Herein
it is integrated with the tutorial as well.
Upon a more detailed reading, it's clear this pasted text belongs in the
LGPL license analysis section, but that in fact some other text was
needed to improve the end of the section on LGPL in the compliance
guide.
Since so little material is currently given on LGPL compliance, it's
likely best to link back to the chapter on LGPL compliance.
Besides, I don't think there really is anything additional the
compliance guide can add regarding LGPL compliance, other than the
detail license analysis on LGPL already available in that part of the
text.
(Note labels had to be added for the chapters that didn't previously
exist.)
Some of the text pasted in earlier commits was certainly useful, but
needed a complete rework.
Also, the text pasted was far too terse, and more detail was needed.
Therefore, I've moved text around and build a more comprehensive
Background section. I've moved the burgeoning "Understanding Who's
Enforcing" section into the Background chapter and made it complete.
Probably the most bizarre (?) change I've made here is coining this
acronym COGEO. This is non-optimal for sure, and I've added a FIXME to
seek a better term.
The enforcement section now has an integrated paragraph describing how
enforcement relates to copyright, and refers back to a related section
much earlier in the tutorial.
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.