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.

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.

share|improve this question

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

share|improve this answer
    
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 '13 at 23:05

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

share|improve this answer

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.