> 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 changes. 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 legal areas.