Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
    
One thing should be clarified. If you create a work and release it as GPL, you still have copyright of your work. The GPL doesn't apply to you. Plenty of companies have done this, such as MySQL. –  Andrew Finnell Jul 19 '13 at 15:37
add comment

3 Answers

up vote 5 down vote accepted

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/

share|improve this answer
    
Is this intented to also apply for people that download my source code, modify it and release the new work on their own webpage (for all) without sending me any code or notice? It sounds like you can only enforce this if people are commiting directly to you. –  Chris Jul 19 '13 at 14:44
    
You do not need a contributor agreement if other developers are publishing the code on their own and you are not incorporating it into your project. –  M. Dudley Jul 19 '13 at 15:12
    
But what if I like to use their code too? Otherwise they just need to fork my project once and then run it under the GPL. I know that this migth be a very controversial point of view and I can fully understand any concers, but only because I'm very interessted: If someone does not agree with the distributor license I would rather have him not making any changes at all. But this way he can still fork the projekt and run it on its own, that would undermine my goal to keep any rights on any code that is derived from mine and was published freely somewhere. –  Chris Jul 19 '13 at 15:24
    
When someone uses your code, they must comply with your license. If they do not comply with your license they cannot legally use, modify, or distribute your software. I think you should consult with a lawyer--they will be able to answer your questions better and direct you to an appropriate solution. If this project is not worth the time/money to consult a lawyer, then the license doesn't matter--you're not going to spend the time/money to enforce it anyhow. Just choose a popular one. –  M. Dudley Jul 20 '13 at 1:16
add comment

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).

share|improve this answer
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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