I am maintaining a small code base that I am considering selling– but I want to allow developers that use it to submit code for addition to the trunk. This way they can extend the framework and the community can benefit.

I want them to retain copyright to their code, but to allow me to use it however I desire, for commercial and non-commercial purposes.

I don't want to be obligated to release any submitted source(although as copyright holders they may).

The end user product will be binary distributions of the compiled code base.

Is there a good existing license for a project of this nature? I could compromise a little to use an existing license which does not fully match this, if it will save me the legal headache.

  • 1
    I'm a little confused as to how "developers that use it" can submit changes if the software is closed source.
    – Atsby
    Mar 22, 2015 at 10:44

2 Answers 2


How exactly is the community benefiting from doing work to extend a product they can only get by buying it from you?

The only way I can see this working is a joint commercial/(L)GPL version. However even then you would need to get developers to assign any changes to you if you wanted to use it in the commercial version

  • So basically what you're saying is they have to license it under Apache or BSD, they may retain their code base, but allow me to use it in the event that they become defunct, but my project continues to distribute the compiled version.
    – awiebe
    May 2, 2013 at 23:05
  • It is flat out wrong (i.e., legally incorrect) that "developers [must] assign any changes to you if you wanted to use [them] in the commercial version". Developers can simply grant a license to allow use of their code (though a copyright assignment would certainly work as well, it's just much harder to get those signed).
    – Atsby
    Mar 22, 2015 at 10:41
  • @Atsby I didn't say what form the assignment should take. But you do need to be assigned permission to use their code from the owners if the license they contributed it under doesn't explicitly allow it Mar 22, 2015 at 16:00
  • @MartinBeckett That's not what "assignment" means; assignment specifically means transfer of rights (in this case copyright). en.wikipedia.org/wiki/Assignment_%28law%29. You don't need to be "assigned" permission, you just need permission.
    – Atsby
    Mar 22, 2015 at 21:15
  • re: "how is the community benefiting" - the product that we buy becomes better. sometimes i would like to have the source code of a commercial product to do a pull request. and i'm fine to give my changes for free. my benefit will be that i will have my improvement in the next versions of the product. so that i will not have to maintain a fork with the feature that i want now and that has low priority in the project road map. i'm surprised that there is no common license for this agreement.
    – Stanislav
    Jan 12, 2019 at 10:09

#include <ianal.h>
// And for that matter, I'm not a license expert either

Unless the copyright is assigned to you, the original author maintains the copyright on the code.

The simplest approach to this is to have contributors license the code submission with a BSD license. This license allows you to (with some strings attached) to incorporate the code into a compiled commercial product (you don't need to release your private contributions).

A reasonably thorough analysis of the BSD license for open source (your community edition) can be found at http://www.freebsd.org/doc/en/articles/bsdl-gpl/article.html

What is necessary (remember that 'IANAL' bit) for the modern BSD licenses is to simply say that it use it in your application's about information. An example of this in an installer.

As long as they are licensing the submissions to you with the BSD license (or compatible one), you can then use it.

You may also wish to look at the MIT license.

As I understand it (which could be wrong), the difficulty with using an (L)GPL license for the contributions would be that they would need to be in a different part of the application that you would link to - a library - but not part of the core application.

Your desire to be able to deliver binary distributions (presumably without the source) would make anything that is GPL licensed difficult to use.

Going back to the original author, none of this prevents the original author from licensing the contribution again in another product.

If your community edition software is BSD licensed, there's nothing to say someone couldn't fork it into GPL and then start contributing to that, with the licensing of the contributions being GPL (and then you wouldn't be able to use that without releasing the source). You may wish to find something that prevents the software from being licensed or forked into an open product that prevents you from reincorporating the contributions back into your closed version. The advertising clause in the original BSD license would prevent it from getting foked into the GPL.

If you are concerned about the GPL forking possibility, another such open-but-anti-GPL license is the Microsoft Public License (Ms-PL).

If in doubt, or confused, talk to a lawyer.

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.