Michael Eager eager@eagercon.com
Sun Jul 15 17:11:00 GMT 2007

Richard Kenner wrote:
>> 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.

When you post a patch to the mailing list, or apply it to a branch, you are
acting as an agent of FSF.  You previously assigned your rights to the patch
to the FSF.  (If you have not assigned your rights, then your patch will
not be applied to the branch, so it doesn't matter.)

The FSF decides what licenses to apply to a patch.  It's not at all unclear
what point the license applies:  at the moment FSF has said that all patches
applied after August 1 are covered by GPLv3.

> 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.

If you signed an assignment of copyright, the copyright to the patch
belongs to FSF.  The status is clear and the license is whatever FSF says
it is.

You have it backward:  the base source doesn't determine the license status
of the patch; the patch determines the license status of the source.  The
most restrictive license applies.  Read the GPLv3.

This is the "GPL taint" provision.  Otherwise I could take the eager-cc
compiler (currently consisting of only main()) and patch it with all of
gcc, and poof, all that patched code takes on the license of the original
source.  Not what you want and, coincidently, not what the GPL requires.

> 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.

Nope.  Read the GPL.

> 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.

Sorry, it isn't at all murky.  If the original patch was covered under GPLv3,
no matter how similar it might be to one which hypothetically might have
been created under a different license, it remains GPLv3.  It's not whether
the patch is indistinguishable, its that it was not independently developed.

Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077

More information about the Gcc mailing list