I'm looking for a license that I haven't seen before. I would like a license that allows other people to use my code non-commercially, but unless they have written permission they should not be able to sell derivatives.

Pull requests by other people should be possible, but their code would also become owned by me.

Forking should be possible, in which case mutual permission would be required from me and the fork maintainers in order for either of us to use the software commercially.

Does something like this exist?


1 Answer 1


Actually, there are products available with a licensing scheme which fulfills very similar requirements. It typically works by picking a dual license model. You publish your software, for example, under a GPL license (which theoretically allows selling of the software or derivatives, but makes it practically impossible). But you tell people on your website that you are willing to offer them your software under a different license, under whatever terms you like, assumed they ask you first and you agree to their usage model.

As a well known example, you might look into the license terms of MySql.

  • Selling GPL software is very much possible. But as anyone who bought a copy also gets the right to redistribute, selling GPL software becomes unprofitable very fast. Apr 19, 2015 at 7:36
  • Another well-known example of such dual licensing is Qt Apr 19, 2015 at 7:38
  • Note that your code cannot be dual-licensed in this fashion if using 3rd party GPL code. The simplest way to avoid this issue is to require all contributions towards the dual-licensed software to assign copyright to the product owner, though assigning rights is sufficient. Of course, it is much harder to get unpaid contributions for any commercial product, even an open source one. To expand on Doc Brown's example, take note of the MySQL Contributor's agreement.
    – Brian
    Apr 22, 2015 at 13:09

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.