Let’s say I start and develop some project under open-source license, and accept some community contributions. How shaky is the ground I stand on if I decide to take the project commercial and closed-source (or split license)?
This question doesn’t directly address the issue of a project with community contributions, which feels like different territory, at least as far as ethics are concerned. Legally, this might be iffy as well, because I’m not sure whether contributions fall under my copyright, or whether the contributor hold the copyright to the part of the project he added.
Am I safe (ethically and legally) as long as I’m up front with the possibility that I may take the project commercial in the future?
5
In general, community contributors would retain their copyright to the code they contributed to the project. They license the contribution to you when they contribute the code. If you want to retain the possibility of changing the license terms in the future, you would generally need contributors to assign their copyright to you (either personally or a corporate entity you create to own the copyrights for this project) or the changed terms would need to be compatible with the new license terms. Of course, if you require this sort of copyright assignment paperwork before you can accept a contribution from the community, it is much less likely that the community will decide to contribute and you’ll have to do a fair amount of work getting the legal forms in order before accepting each contribution. Plus, there is a strong chance that your project will get forked if and when you decide to change the license terms. It strikes me as unlikely that a new open source project is going to get a lot of contributions from the community under those circumstances.
It would generally be easier if you licensed the product under the split license terms initially or if the initial license terms were compatible with a future closed-source product. Code that is under the BSD license, for example, can be incorporated into a commercial product at any time so if the project and contributions are under the BSD license, you could easily release a commercial version of the same product. Your intention (or option) to produce a commercial product, though, will likely decrease interest in making contributions to your project– most open source developers are uninterested in making unpaid contributions to a commercial product.
Of course, as with any legal issues, you’d want to talk with a lawyer rather than relying on a forum post before taking any sort of definitive action. You’ll almost certainly want that lawyer to draft the copyright assignment document you’ll need people to sign and you’ll need to discuss your plans for the future with the lawyer to ensure that everything is set up correctly.
4
If the project is licensed under one of the more permissive licenses (BSD, MIT, Boost or Apache are the ones that I know allow this) then legally you are allowed to distribute object code and have no requirement to provide any modifications you have made to the source code back to the community. You can also license the derivative work under a different license. Please note that you still need to include the license text as per the license requirements.
Whether this is ethical or not is something that is quite controversial. I tend to think that if a developer licensed their code under one of these more permissive licenses then they want the software to be used in both open source and commercial projects. If they didn’t want commercial use of their code then they should have licensed it under the GPLv3.
3
Any contribution I make to your project remains my copyright unless I assign it to someone else. Being the copyright holder means I get to decide what licence my work is available under.
So licensing is a related, but separate, issue. If I contribute to your project, I should be agreeing to release my work under the project license (or perhaps a compatible one).
Many open source licenses would not allow you to close the derivative source later, but some will. If I understand correctly, none would allow you to close the current (open) code base, so that is also something you would need to consider.
So you’ll either need to start with a license that lets you close future development, or have an agreement to that effect with all contributors. Best to take the latter up with a lawyer before there are significant contributions, and to be very up front about what you are trying to do.
9
If you want to change the license of your project either you requested all contributor to sign a “Contributor agreement” or you have to request permission of every one of the contributors.
which is quite difficult and the reason why the Linux kernel is still under gpl v2
Majority of OS projects seem to have a commercial arm attached to them, like an Enterprise version. Basically, they offer SLAs, support, etc. I think if the project is open source, fundamentally you can’t just close it. You may be able to make future versions closed source and rename them, or make addons closed source, but the actual projects as far as I understand must remain Open Source. I think the enterprise is a better way to go though, you still get open source benefits, and can generate revenue.
Out of curiosity why do you want to close source your project?
Legally, if you use a license open enough that anyone involved can take it commercial I would imagine (not being a lawyer) that you would also be able to do so.
Ethically you would have a stronger obligation. You would have to be very open and clear about your intentions both initially and over time as your plans change.
Also, you may want adopt a model similar to Redhat’s. Building closed source plugins but leaving the core open source. This can lead to better innovation as well since you will still get community support for a product that can benefit the open source community. Offering training, consulting, and support can also sweeten the deal for you.