Question

Please note that I do not want to argue about the moral aspect of this question. I know that there are probably many different concerns.

I have been researching for a special license that could be used in a following scenario, but with no success:

Let's assume I have a software and want to release its source code, so that others can use it too. Since I don't want others to make changes and keep them closed I could the GPL. But here's the thing: Even if I profit from changes that other people do. I can relicense only my code because I'm not holding the copyrigth any code that not made by me. But I would like to.

I want to know if there is a ready-to-use license that will grant me (the initial author) the rigth to relicense any changes or code that was added by others. Or in even shorter terms: A GPL that does not count for me.

If you are interessted why I need this: I don't know if I will ever use my software for a commercial product. Probably not, but if I just use the GPL, I migth end up in a situation where I can't remove any other code since there are to many committers.

Was it helpful?

Solution

It sounds like you need a license which requires any downstream changes to be submitted back to you. I don't know of any that include this clause, you may need to have a lawyer write a custom license for you.

Open source projects that accept contributions from other developers oftentimes have the developers sign "contributor agreements" in which the developers either assign their copyright to the project owner, or grant the project owner a full-rights license. This frees the project owner to do whatever they need to with the developer contributions, without worrying about copyright and without worrying about getting permission after the fact.

You can generate your own contributor agreements at this site: http://www.harmonyagreements.org/

OTHER TIPS

As others have said, a copyright-assignment contributor agreement is closest to what you want. However, a contributor agreement only covers individuals who opt into it; there is nothing to stop someone from forking your open source project and making changes without agreeing to your copyright-assignment agreement.

From what you've said, you'd like to have a license that says, "You can use, copy, and modify this software, but by doing so you agree that you grant to the original author all rights to any changes you make." It's not clear that this is a legally tenable provision to have in your license. I'd question what court would uphold such a software license that automatically lays claim to totally new code authored by a user. (In any case, most developers would stay far away from it.)

Instead, what you'd probably have to do is make your project non-free. Have a license that says, "You can use and share this software, but changing it is not allowed." Then, require developers to sign a contract that exempts them from the no-modification clause in exchange for copyright assignment of their modified versions. (If you choose to do this, consult a lawyer to confirm that this strategy is tenable and to draft the license and contract text for you.) This will still likely scare away developers, but you might have a more legally sound footing.

The final option is to use an actual vetted copyleft license like the GPL, refuse to accept code from people who won't assign copyright to you, and accept the fact that you may have competing free projects that fork your code. For example, Google (with Android) and Oracle (with MySQL) have taken this approach. The main advantage you have over your competitors is that they must play by the rules of the GPL at all times (since they build on your GPL'd core software), but you do not (because you own the copyright to all code in your codebase).

There isn't a ready-made licence that does this, you have to enforce copyright attribution:

Require all contributers to your code base assign or licence their code to you, when submitting the code. If a piece of code doesn't come with this, don't include it. That way you maintain full control over the version you maintain.

Of course if you also licence your code as GPL, there's nothing to stop anyone forking your project at any time - the changes don't have to come back to you.

Licensed under: CC-BY-SA with attribution
scroll top