I am starting a toy project that is to be pushed to GitHub as I work on it. So I register an account (yeah I haven’t got a GitHub account until now) and poke around. Having been familiar Google Code for a while, I look for a place to pick a license for my project2. That option is nowhere to be found. Instead the Terms of Service basically says that I’m on my own with licenses. It’s probably a good time to learn about them.
Being a Gentoo user who has happened to read about handling licenses, I immediately think of these two lists:
There are just too many. Luckily I found on the website of the Open Source Initiative, Licenses that are popular and widely used or with strong communities. That’s a list short enough to drill down.
To speed up the process, I decide on the characteristics of the license of my dream, then filter the list. I want a license that:
- Requires those who benefit from my code to contribute back if modifications are made.
- Does not force the same license on everything that uses the code like the famous GPL.3
- Is preferably compatible with most if not all other opensource licenses, including the GPL.
- Is easy to read and understand (added after reading the terms of the LGPL).
- Has anything else a license should give me: I shall have credit for my work, people don’t sue me, blah blah blah.
For each license in the list, I go to Wikipedia to find out the easy details and read the full text of the interesting ones:
Apache License: Too permissive BSD Licenses: Too permissive GNU General Public License (GPL): Too restrictive GNU Lesser General Public License (LGPL): Too complicated. I think it takes both a lawyer and a good software engineer to understand this text. When I try to read it I understand why it was previously named “Library General Public License”. I don’t want to take this route. MIT license: Too permissive
- Mozilla Public License (MPL)
- Common Development and Distribution License (CDDL)
- Eclipse Public License (EPL)
So here comes the little comparison of the 3 short-listed candidates:
- I don’t like the fact that the CDDL comes from Sun, which is dead. I think I’m being paranoid, but I’m uncomfortable to hear that I won’t receive updates for the license.4
- I can’t seem to grasp the implications the EPL placed on patents and the US copyright law’s definition of derivative works (too long isn’t it?).
- Both the CDDL and the EPL have some controversy associated with them. I lost the links though :(
- Both the CDDL and the EPL are GPL-incompatible. The MPL comes with a thing called the tri-license, which sounds crazy at first, but I have found that I like it. It allows people to use it as GPL if they so wish.
So there you go, MPL all the things!
Google Code had a place where you can choose the license for your project. I have a link to that, but it’s broken now because Google Code is dead apparently. ↩
This later sort of rings true when an update is made to the MPL (2.0) that greatly improved it. ↩