Suppose I start a GPLv3 licensed project.

I take care of pasting all the license text is in the LICENSE.txt and set up a reference to it on top of every source file.

I do not exhibit any CONTRIBUTING.txt or a Contributor License Agreement (CLA) in any form.

I merge a few large pull requests

Now I want to double-license the code (take my project's GPLv3 code and sell it under a commercial license while keeping it under GPLv3 for non-customers)

Am I breaking GPLv3?

I thought so, but when you read the paragraph 11 of GPLv3 it says:

Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.

This looks an awful lot like a CLA embedded in the license.

Does this mean I can double-license? Or do I need all contributors' permission?

EDIT Very clear, thanks everyone! FYI I have decided to rewrite my project from scratch in another language because I can't get the contributors to sign anything.


The paragraph you quoted is only about the patent grant, this is mostly unrelated to copyright issues.

You cannot dual-license the project without obtaining permission from all contributors, because you are no longer the sole copyright owner. What happened is this:

  • You created a project. As you wrote everything, you were the sole copyright holder. You licensed it to the public under the terms of the GPL.

  • A contributor modified the project. The modifications are copyrighted by that contributor. But since they received the code under the GPL license, they may only publish their changes under the GPL.

  • You merged the contributor's changes. The project copyright is now shared between you and the contributor. Because the contributor was only able to publish these changes under the GPL, you received their modifications under the term of the GPL license and are bound by that license.

Because you received the modified code under the GPL, you can't just publish it in violation of the GPL.

What is possible is to get all copyright owners to agree to relicense the project. If they don't have a strong stance on copyleft licensing, they might agree to relicense to a permissive license (e.g. Apache License 2 or X11 (MIT) license). But what is in it for them? They don't have any particular reason to let you have less restricted access to their work. And if even one contributor says no or doesn't respond, you cannot proceed with the relicensing. Or you can perhaps find an older version where all contributors leading up to that version agree to the relicensing, and then reset your project to that version. But that means any progress since then stays under the GPL and is lost to your relicensing effort.

You can still monetize GPL software. You can't reasonably sell it (because they could just get the code for free), but you can sell services around this code: implementing customizations, training, hosting.

  • Thanks, but what does patent grant mean then? Do you have an example of patent vs copyright? – sscarduzio Jun 9 '17 at 22:22
  • 4
    @sscarduzio an example would be if someone submitted a pull request to support their new video codec. Because they submitted it they can't sue you for violating the patents for that codec. And note that when the GPL talks about selling, it means selling in accordance with the license, ie the buyer gets the source code and is free to give it to whoever they like – curiousdannii Jun 9 '17 at 23:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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