Patent Rights In GPL Upgrade

At some point, I plan to make some comments on draft 2 of the GPLv3 free software licence, which came out a couple of weeks ago (high level summary: much better). However, there’s one thought I want to throw out there now.

The GPL v2, as commonly used, has an upgrade clause – that is, the boilerplate allows you to use the code under “either version 2 of the License, or (at your option) any later version”. The GPLv3 section 11 has a covenant not to sue with regard to patents, which was not in GPL v2:

You receive the Program with a covenant from each author and conveyor of the Program, and of any material, conveyed under this License, on which the Program is based, that the covenanting party will not assert (or cause others to assert) any of the party’s essential patent claims in the material that the party conveyed, against you, arising from your exercise of rights under this License.

Here’s the scenario. Company X contributes code to a GPLed project under “v2 or later”. They have a patent on something that code does, but don’t tell anyone and aren’t enforcing it. The project maintainer subsequently upgrades the licence on the development version to v3. Does Joe User, who takes a copy of the code under GPL v3, have protection from being sued by Company X for patent infringement? After all, the licence under which Joe received the code states that he received it with a covenant from each author, which includes Company X, that they won’t.

One could argue that yes, by licensing the code under GPL v2 or later, Company X has implicitly given away any rights that future versions of the GPL state that they have given up. One could also argue that no, they didn’t give away that right and they can’t be forced to do so now.

I wonder if this is a scenario which the FSF has considered?

8 thoughts on “Patent Rights In GPL Upgrade

  1. http://www.eweek.com/article2/0,1895,1915720,00.asp
    http://lkml.org/lkml/2006/1/25/273

    Linus Torvalds interpreted that snippet differently than you have. The whole discussion is linked to above. Here is a couple of snippets of the discussion from the kernel mailing list.

    “The “version 2 of the License, or (at your option) any later version”
    language in the GPL copying file is not – and has never been – part of the
    actual License itself. It’s part of the _explanatory_ text that talks
    about how to apply the license to your program, and it says that _if_ you
    want to accept any later versions of the GPL, you can state so in your
    source code. ”

    “So: the extra blurb at the top of the COPYING file in the kernel source
    tree was added not to _change_ the license, but to _clarify_ these points
    so that there wouldn’t be any confusion. ”

  2. I wonder if since the GPL2 already includes the “if you can’t meet all other obligations and also conform to this license, you can’t distribute the program at all” clause, distributing a program you hold a patent on under the GPL could somehow be considered to already be waiving your right to enforce the patent in some way.

    I’m thinking in particular of the legal concept of “promissory estoppel” which I learnt about on Groklaw, which seems to mean something like if you make a public statement that you’re not going to take some particular kind of legal action and other people make decisions based on that statement, then if you try to take that action against them later it’s invalid and will be dismissed.

    I’m wondering if giving someone code under a license which says “you can distribute this freely as long as you make your modifications freely available, and if there are any other restrictions preventing you from doing so you can’t distribute it at all” might not be considered a public statement promising not to *be* the cause of such restrictions, since doing so would effectively render the entire license null and void.

  3. By licensing your code under the “GPLv2 or later as published by the FSF”, you are effectively giving up all your rights at all to it. You have no control over whether or not the FSF changes its mind, or is taken over by entryists, or some other scenario, and publishes GPLv4 which says “all your code are belong to us!!!”.

    Basically when the FSF asks you to license your code under arbitrary hypothetical future licenses, it’s saying “trust us – we’re good!”. I find it quite ironic that most free software advocates would go ballistic if they found some clause like that in a EULA as a matter of principle, but give the FSF a pass on it.

  4. By licensing your code under the “GPLv2 or later as published by the FSF”, you are effectively giving up all your rights at all to it.

    That’s not true, for at least two reasons.

    1) You retain the copyright, and so all rights to the code to relicense or sublicence as you choose. You give up any right to keep it proprietary – but then you did that when you released it under the GPL, even if you did so under version 2 only.

    2) The GPL says that future versions will be “similar in spirit”; if the new one wasn’t, you could challenge the new licence in court.

    2a) I believe the founding documents of the FSF say that they can’t change the GPL so it eliminates the four basic software freedoms. However, I tried to find corroborating evidence for that belief once, and couldn’t. So it may not be right.

  5. Doesn’t the MPL sort of do the same, with Netscape (now MoFo) having the sole power to produce newer versions of the license, and existing files may use the newer license (v 1.1, sec 6)? And that’s in the actual MPL, so it’s not like that’d be optional…

  6. Mook: Indeed; and the MPL contains no language about newer versions having to be the same in spirit as old ones. Then, of course, people can already take MPL code proprietary to a certain extent (see how Netscape does it), so people who are happy contributing code under the MPL must be happy with that.

  7. A couple things:
    (1) The FSF is beginning to work on the final draft, so the sooner the comments, the better.
    (2) There is a very public and fairly easy process for submitting comments on the draft: http://gplv3.fsf.org/comments/. If you post there instead of on the blog, the answer to ‘has the FSF considered this’ automatically becomes ‘yes’. :)