First of all I’m not a lawyer and second I’m not trying to teach you how to choose a license. I am merely recording how I landed on the Mozilla Public License (MPL) as my favorite FOSS license. Also, I do not dislike, hate or aim to insult any other licenses, as all FOSS work is respectable.

I am starting a project that I want to be opensource and hosted on GitHub as I work on it. So I register an account there (yes shame on me, I haven’t got a GitHub account up til now) and start to poke around. Having been familiar with Google Code for a while, I look for a place to pick a license for my project. That option is nowhere to be found. Instead the Terms of Service basically says that I’m on my own with licenses. Hating licenses as much as I hate [company name removed], I think it’s a good time to learn about them.

Being a Gentoo user who happened to have read about handling licenses and know about license groups, I immediately think of these two lists:

There are just too many for me — a lazy reader of law and everything law-related. Luckily I found on the website of the Open Source Initiative, “License that are popular and widely used or with strong communities“. 8 doesn’t look like an incredibly small number, but it’s enough for me to drill down and read about them.

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 benefits from my code to contribute back (like the GPL, but not like the GPL, see next item)
  2. Is not as restrictive as the GPL. To some extent I agree with the criticism: “That’s a bit like the person who made the nails you used claiming he has the right to your entire house.”
  3. Is preferably compatible with the GPL. To some other extent I like the idea of the GPL, so if somebody else uses my code and want to release their code as GPL they should be able to.
  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 the 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”, but unless I have too, 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. The MPL, the CDDL and the EPL all support weak copyleft (requirements 1 and 2). However there are small points that make the MPL more appealing to me:

  • 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.
  • 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. If only I were more knowledgeable about the law… For now I’ll try to stick with what I understand. The MPL also comes with the thing called the tri-license, which sounds crazy at first, but I have found that I like it.
  • Both the CDDL and the EPL are GPL-incompatible. The MPL has a provision that allows another license as an alternate choice. I like the idea of providing my things in MPL, and allowing people to use it as GPL if they so wish.

So today I learned a lot about software licensing, which is tiring but also inspiring.

« »