So, you’re a decent web developer. You’ve written some nifty code, and now you want to share it with the world. But wait – what about licensing? Here’s a brief run down on what you need to know about open source licenses.
Disclaimer: Akash isn’t really a lawyer, and he’s certainly not your lawyer. None of this should be taken as legal advice; always research licenses and legalities before consenting to them. If in doubt, seek legal advice or try the Software Freedom Law Center.
When it comes to the legalities of open source licensing, there are arguments for all the different options – and there are hundreds. For open source PHP code, the most popular license is the GPL, however most major projects write their own license to suit their intentions. While this is a little over the top for just releasing a few snippets of code, or maybe a small application, it’s worth noting that not all licenses suit everyone, and it’s important to be aware of what releasing your code under a particular license means for you.
There are four main issues with open source licenses:
- Commercial / proprietary use of the code / software
- Obligation to release modifications to the code back to the community
- Obligation to make the code available to downstream users
- Revocability of the license at your discretion
You will have to consider your target audience and how flexible you want to be when deciding. For example, many die-hard open source fans balk at the mere idea of allowing a commercial entity to use their code. I recently contributed some code to a particular open source project, and was discussing licenses over MSN. When suggesting that “I wanted a particular company to use my code”, they quickly replied, “[this] is not the project for you.”.
You may not be terribly interested in licensing issues; in fact, have a read through the Wikipedia article on Beerware – it may be the best option for you.
If you want to know what’s going on with your code, consider using the GPL. With GPL licensed code, any modifications must be made available to the general community, and users of derivatives of your code must have access to the code. However, be aware that this could cause serious problems when working with other code licensed under a different license. In general, GPL code works best when used with other GPL code.
If you want to be a bit more lenient, try the BSD license, which permits proprietary use of your code. There’s also the MIT license – have a read through it – which basically gives your end users a lot of flexibility while protecting your liabilities.
Revocability is the final key issue. For example, take Trellis Desk, a product recently reviewed here on the DT blog as a “promising open source project”. ACCORD5, which develops Trellis Desk, essentially makes the code available. And that’s about it. By definition it isn’t actually open source; have a read through the license. They reserve the right to revoce your license to use the software at any time, and if they so desire, they can send you a notice within 48 hours of which you have to “destroy all copies of the software”. Open source inasfar as they provide the source code, but there’s no way they’d get that past the Open Source Initiative, which decides if a license is actually open source.
In general, if you must you can revoke a license, even if you don’t explicitly declare so in the license terms (unless, of course, you explicitly declare otherwise in the license terms) – although this can change based on geographic laws as well, e.g. a license in the United States may not hold up in Czech Republic.
A mature, well-written open source license will help you take care of legalities quickly and get on with writing code. My advice: pick one and stick with it. If in doubt, use the GPL; if you want to get your code out to more people, try BSD. If you really don’t care, go for Beerware, and if you want maximum flexibility, there’s always public domain.