I am making contributions to a GPLv3-only project. I want to make it clear now that, when the time comes, I am happy for my contributions to be used in any later version. This way, if the maintainers choose to relicense the project under GPLv4-only or GPLv4-or-later, they do not need to contact me to do so. How can I make this clear?

I was imagining add my own section to the headers of any files I modify as follows:

Foo project
Copyright 1984-2017 Original authors
Shared under GPLv3 only...

Additional contributions
Copyright 2017 J. Hacker
Shared under GPLv3 or, at your option...

I'm looking for a solution that would work for both GPLv2 or GPLv3.

  • 1
    Interesting question. To frame this in another way: consider the case where you want to pull in GPLv3+ code from project A into GPLv3-only project B. (In that case, there's a clear indication that the project A code is GPLv3+ within project A's documentation.) This is like that case, only "project A" doesn't exist; it's just some code you wrote specifically for project B.
    – apsillers
    Jul 26, 2017 at 15:11

2 Answers 2


Unless you are contributing a huge amount of code, modifying the headers in such a way is generally not a good idea. What you could do instead is simply to ask the owners of the project.

  • 1
    do you mean just send an email? I'm looking for a way that is clear to anyone downstream too (I'll update the question to reflect this)
    – lofidevops
    May 27, 2017 at 9:09

I am not a lawyer

IMHO, going from GPLv3 to GPLv3+ is a license change, perhaps legally as important as going from GPLv2 to GPLv3. However, GPLv3 and GPLv3+ are compatible licenses.

If your contributions are small, that is some patch of a few dozen lines, they should go into some existing source file, and I guess that you legally cannot change the license of that existing file without asking formal permission by all copyright owners and contributors.

However, if your contributions are significant, and you can arrange most of them to go into new source files, you could license your new source files under GPLv3+ and keep the other (patched) source files with the same old license (e.g. GPLv3).

I'm implicitly thinking of some free software code written in a language using source files (e.g. most of the languages I know, such as C, C++, Python, Java, Ocaml, JavaScript). If you code in a language without a clear notion of source file * (or of "translation units") things might be different.

But I could be very wrong (because in some way, I'm making the implicit assumption that a license apply to a source file, not to a free software; perhaps that is a mistake).

The practical advice by Zim i48 of contacting the other authors is probably the best.

BTW, don't do anything without asking (or at least seriously trying to contact other authors). Such a license change might be considered as important by some authors, and if you change it without permission these authors would at least be pissed off (and if paranoid could perhaps even sue you).

Note *. Some weird implementations of Smalltalk are only modifying some "system image", then the notion of source file has no sense (and the entire source code is embedded inside that whole system image).

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.