I am developing and selling a piece of software over the internet. Recently a customer has asked me for a copy of the source code, so he can add custom features and maybe also assist to fix bugs. He also offered I could use the bug fixes in my main version so other users would benefit as well.

Now the question arises, under which software license I can disclose my code, without losing ownership over it. I want to keep the right to sell it, even if other people can volunteer to maintain it.

I have looked at some public license models, but all of them seem to either grant everyone permission to sell my software, or to make it completely free to use.

I don’t want to be in a situation, in which one of the contributors suddenly changes his mind and I am forced to remove all the code he added. Or worse, allow him to sell the entire software on his own.

closed as off-topic by BlueDogRanch, bdb484, A. K., Nij, DPenner1 Sep 29 '18 at 20:56

This question appears to be off-topic. The users who voted to close gave this specific reason:

If this question can be reworded to fit the rules in the help center, please edit the question.


Ownership, in this case, means copyright. As long as you have copyright, you own the code. Licenses are permissions to give others to do things that they'd be otherwise forbidden to do by copyright law. Most of the licenses you'll find publicly available are open source licenses, which are not what you're looking for. You need to come up with your own, and for that you should consult with a lawyer. Consider it a necessary business expense. Paying the lawyer can be a lot less expensive than making a mistake in your license.

One thing you need to have provision for is for contributions from other people, as you have noted. This will either be copyright assignment to you or a license from the contributor that allows you to use the contribution as you like. Again, you need to consult a lawyer to make sure the license says what you want.

Don't worry about other people legally selling the whole software. That can't happen unless you specifically let it.

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