This is the mail archive of the
mailing list for the GCC project.
Re: RFH: GPLv3
> Unfortunately, as I understand it, this is not the case. If you
> apply a GPLv3 patch to a previously GPLv2 branch after August 1, then
> this entire branch, and all files in it, magically and silently
> becomes GPLv3.
This is the key point, I think: what, PRECISELY, is a "GPLv3 patch".
I think everybody has assignments that predate GPLv3. The assignment I
signed (and I think the current assignments) don't even mention the GPL at
all, let alone a particular version of it!
So one of us writes a patch and posts it on that list. The copyright
status of that patch is that it's assigned to the FSF, which then can
"decide" what license agreement to apply to it. But, as a matter of
practice, no FSF individual is involved in the process of having that patch
be applied to the sources: it's checked in by the person who wrote it
(after possible approval, but not change, by some other person).
At what point in this process, and by what mechanism, does a patch become a
"GPLv2 patch" or a "GPLv3 patch". I'd argue that the patch itself has no
such status at all: as of the time it's posted, its copyright is owned by
the FSF, but that's all that's happened. The assignment agreement
obligates the FSF that all "distribution" of the patch should be under
GPL-like terms, but it's completely unclear as to at what point those terms
apply. For one thing, there are multiple possible licenses even ignoring
the v2 vs. v3 issue: GPL, LGPL, GPL+exception, etc.
So if you see a patch posted on an FSF mailing list, what copyright license
status does that patch have? My feeling is that as a practical matter, it's
irrelevant since the patch is a derived work from some file and the license
that applies to that file trumps any that might be viewed by some mechanism
as applying to the patch in isolation. If I'm patching an LGPLv3 file,
then my patch is a derived work from that file and so is also LGPLv3.
End of story.
So I think the discussion of a GPLv3 patch being applied to a GPLv2 file and
affecting the license of that file is somewhat backwards: the file's license
affects the patch and not vice-versa.
Where this gets tricky is indeed in a backport. Let's suppose I have two
files that differ only into which license applies. Suppose I start with
the GPLv3 version and develop a patch for it. That patch is a derived work
from GPLv3. When I apply it to the GPLv3 version of the file, nothing
Now, suppose I apply it to the GPLv2 version of the file. One could argue
that such file is now GPLv3 and I think that'd be correct. But since the
parts of the file being patched are identical, the patch is indistinguishable
from one that's derived from GPLv2 text. This strikes me as a VERY murky