Why do I use 'GPL-2.0-only OR GPL-3.0-or-later with proxy being me' as the licence for my Open Source projects ?

If you stumble on one of my projects, you may have seen this licence:
Licence: GPL-2.0-only OR GPL-3.0-or-later with proxy being me

What does that mean? Why did I choose such a long and weird licence?

The reason is that I want:

  • to be covered by a strong copyleft licence
  • while being compatible with past/future GPL licences (and not block my project from being used with one that uses a different version of the GPL)
  • and not give power to the FSF to issue a new licence in the future that I would not agree with.

The solution to this last point is the proxy clause. Quoting GPL 3.0:

If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Program.

Unfortunately, this clause is not present in GPL 2, so I explicitly allow it by allowing use of my work under either GPL-2.0-only or GPL-3.0-or-later, given that I accept any “later” licence.

Put this together and you get the following licence expression: ‘GPL-2.0-only OR GPL-3.0-or-later’ (with proxy being me).

Feel free to copy this technique to licence your projects that would otherwise be in GPL-*-only, to allow broader usage of them !