19

Consider I've written a program and released it under the GNU GPL version 2. Now I want to release it under the GNU GPL version 3. Let's call this "upgrading the license". Is this possible? How do I do it?

Edit:

The reason for changing the license would be that I want to get the additional protection offered by the GNU GPL version 3. I do not want to license future work under the GNU GPL version 2.

1
  • 3
    Note, this is why I always license my stuff as "or later" from the start.
    – o11c
    Jul 10, 2015 at 23:42

3 Answers 3

13

If it is your program (and not a derivative of somebody else's program, or something that a lot of other people has contributed to), you have the full right to do whatever you like. So just create a new distribution and state that this distro is under "GNU GPL version 3", replace LICENSE.txt and edit any copyright notices to refer to the correct license - and you're done. Doing so will give you the "additional protection" you believe is offered under the newer version of GPL. Also doing so will not license any future work you do on the program under the GNU GPL version 2.

Of course, the old version will still exist and be licensed under GNU GPL version 2. There is nothing you can do to stop that from being distributed.

Note that doing this will create a fork of your program. GNU GPL version 2 and version 3 are mutually exclusive – so doing this will create all sorts of problems for downstream recipients, and probably confuse a lot of developers unaware of all the pesky intricacies of FLOSS licensing.

So it is IMHO not a good idea to change from one license into another, incompatible license in the middle of a program's life cycle. But if you want to do this, there is nothing to stop you from doing so,

3
  • 1
    Please see my edited question. I do not want to license future work under the GNU GPL version 2.
    – user490
    Jul 10, 2015 at 10:33
  • Well, if its your program, just create a GPLv3 fork. As the owner and holder of copyright, there is nothing stopping you from doing that. Depending on how your downstream users use your software, they may be able to adapt or not. Jul 10, 2015 at 10:38
  • This is missing a detail: in order for considering the program "yours" you cannot have accepted contributions of others (or made provisions for this). If you have, that complicates matters quite a bit.
    – Jasper
    Dec 30, 2017 at 23:35
12

The other answers are good but don't acknowledge another consideration that bears mentioning:

You state in your question you've written a program, but if you've ever assimilated contributions from other people into your program, relicensing becomes more tricky.

Broadly, you may not have the licence to license their work under another licence.

  • I can't relicense your GPLv2 program under MIT, which is what you intended when you picked the GPLv2 licence.
  • Equally, you can't relicense my GPLv2 contributions to your program under GPLv3, as I have only granted you the rights to redistribute my work under GPLv2.

If you had your contributors sign a valid Contributor License Agreement, you are free to relicense as this grants you the ability to re-license the submitted code.

2
  • Curses, Mark! A matter of seconds! :)
    – Micat
    Jul 10, 2015 at 12:33
  • Snap! We even used the same CLA link. *8')
    – Mark Booth
    Jul 10, 2015 at 13:29
10

Another important consideration is whether you have accepted any contributions from other people into your project.

If anyone has submitted a pull request, and you have pulled in their changes (either to fix bugs, or add enhancements) but didn't get them to sign a Contributor Licence Agreement, then they hold copyright on part of your code, and you will need to get their agreement before re-licensing your project (or you will need to remove their contribution).

More than one open source project has fallen apart because the current guardians have been unable to contact some of the contributors and have thus been unable to secure the agreement of all copyright holders for an essential change.

If only you have ever contributed to the project, then you hold the copyright on the entire project and can fork it or multi-license as you wish.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.