Choosing an Open Source License
There really isn't a right answer. The GPL v3 is great for developers of GPL'd software, but requires that all derived software keep the same GPL license. That simply won't fit my development model. I don't want every product I create that uses the libraries to have to be GPL as well, nor do I want that for other developers using the code.
So there is the LGPL, which might be a good choice for my libraries, but has similar restrictions to the GPL that I simply don't want to require people to adhere to.
I then found the CDDL, and I really liked the way it was written. It's unfortunate that it's incompatible with the GPL or it would be my top choice for pretty much everything. But it's not compatible, and I don't want to keep my software out of the hands of developers of GPL'd software.
None-the-less, the CDDL is one of the few file-based open source licenses, and one of my requirements for some of my software is that I need to mix in some commercial libraries which are obviously not open source. The best answer might be a dual-license model, but as far as I can tell, I wouldn't be able to mix in proprietary code with a GPL license, so the GPL version of those products would need to be severely crippled, which might not make sense to do at all.
The only course I can see clearly working is releasing the following:
- For libraries containing only open source code, dual-licensing the CDDL and LGPL (allowing GPL developers to choose the LGPL license, making it compatible)
- For applications containing only open source code, dual-licensing the CDDL and GPL, for the same reason as above
- For libraries or applications containing open source and proprietary code, licensing only under the CDDL is the only option. Nothing compatible with the GPL can contain proprietary code in my understanding.
For this reason, I will try to keep as much of my code as possible in the dual-licensed projects and available for all open source developers. However, many of my applications themselves will be mixed in with proprietary code, and this will be released only under the CDDL (with the proprietary code released under its own license, all fully documented).
Of course, all of my past work up until this point is still available and can continue to be used under the MIT license it came with. Most of my future code, however, will not be released under an MIT license. None-the-less, if you opt for the CDDL license on my future projects, it has the handy addition of allowing you to mix it in with any proprietary, closed source code that you want, as long as you keep the original code and any modified files based off of the original code under the CDDL.
Due to all the confusion and incompatibilities surrounding the current crop of open source licenses, I was very tempted to simply write my own. But that would just add to the confusion, so the best choice right now seems to be to play along while being as open as possible.
I will be sure to fully document on each project homepage the licensing model of the project and what it means for others wishing to redistribute the source code.
Related articles
- Is Copyleft Really Right for Open Source? (intridea.com)
- My take on open source licenses (spf13.com)
- Why the GPL Matters (avdi.org)
- Why Open Source misses the point of Free Software (gnu.org)
SingularityShift is now online
SingularityShift, a new open-source development hub I have been working on, is now open for business (figuratively speaking)!
Please bookmark the URL - http://singularityshift.com
I am managing the site and all projects that are currently there as of this time.
The main site is an open wiki format allowing all users to contribute equally to the direction of the site.
Each project gets a full Trac development site and Subversion repository, as well as web space, email, advertising, and more.
Feel free to post your project to the Wiki and I can create the development resources for it!
