First of all I’m not a lawyer :) I am merely recording how I have chosen the Mozilla Public License (MPL) as my favorite opensource license.1

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:

  1. Requires those who benefit from my code to contribute back if modifications are made.
  2. Does not force the same license on everything that uses the code like the famous GPL.3
  3. Is preferably compatible with most if not all other opensource licenses, including the GPL.
  4. Is easy to read and understand (added after reading the terms of the LGPL).
  5. 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!

  1. This post was recovered from an snapshot of my old blog which was free and is now dead (yeah, free hosting). 

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

  3. I later found that these two requirements essentially mean weak copyleft

  4. This later sort of rings true when an update is made to the MPL (2.0) that greatly improved it.