Solving license proliferation
March 19th, 2008 by HenI remember a while back hearing that the OSI were discussing how they could start encouraging a reduction in the number of Open Source licenses. It looks like a little came from it, but not as much as might be hoped. Elsewhere, Google.Code only offers a small number of licenses, SF.net rather offers a category of license in their metadata; which is probably how Google’s attempt to encourage reduction ended up. Trying to help put together Apache’s opinions on license compatibility gets you wondering how many licenses we really need?
First, it’s obvious we need a permissive, a weak-copyleft, a copyleft and a network copyleft. So 4 licenses would appear to be our minimum right now. Going by popularity, that’s going to be BSD, LGPL 2.1, GPL 2.0 and AGPL 3.0 (for want of many in that category). We’ll also still keep public-domain statements, so thats 5 ‘licenses’, where people also might want to use MIT.
Using the old versions is a bit silly though. So obviously you’d add GPL 3.0 to the list instead of GPL 2.0; but then after an argument GPL 2.0 would have to come back because some people aren’t moving (yet?). Wheee. BSD needs to be kicked out due to all the hacking around with the license [I mean James/Bob….WTF is with “Do no Evil?”, c’mon]. So I’ll push AL 2.0 through there as the better choice because it’s not a template license and doesn’t encourage people to hack around with it.
Lastly we have the weak-copyleft space. Here we have three major trees - LGPL, MPL and CPL. MPL has the best community feel in my view - the most independent, which I feel is a huge part of standardizing licenses, not having them owned by a for profit company. So MPL (I assume the .org owns it), EPL and LGPL good, CPL and CDDL ‘bad’. Which is a shame as I hear CDDL is the ‘best’ version of the MPL tree. In my view MPL would be the best to end up on, and get ‘fixes’ applied.
So we now have:
- Minimal: MIT.
- Permissive: AL 2.0.
- Weak copyleft: MPL.
- Strong copyleft: GPL 3.0.
- Network copyleft: AGPL 3.0.
The arguments being to get LGPL dropped in favour of MPL, getting MPL ‘improved’ to let CDDL + EPL fold in, and convincing people to drop BSD type licenses in favour of either choosing AL 2.0 or MIT. Then you’ve got to convince people using the Artistic license to drop that and pick one, and the Ruby guys to drop their custom license and pick one [hard coding the language implementation names in the license - nice one]. Getting the *BSDs to change seems unlikely eh? and we all know that the Linux core is not moving GPL v3 wards anytime soon.
Then we have the new Microsoft licenses. MsPL is nicely written, but is from a for-profit. MsRL I need to read more to realize whether it’s weak-copyleft or not; but it’s still from a for-profit.
So - given the plethora of options at the core of the Open Source license world, what’s going to stop the other licenses from wanting their own place in the sun? We need the big licenses to make some strong steps (and swallow their egos and pride) and move towards each other if proliferation is such a big deal. Weak copyleft is the biggest area for needing merger; with the permissive BSD/Apache problem also needing solving.
Not going to happen is it ![]()

March 23rd, 2008 at 5:58 am
‘The Ruby guys’ have a license problem, which probably many other projects run into. As I understand, Matz, would be happy to have Ruby have a ‘public domain’ license, but some of the parser code is GPL’d. So, they can’t use a normal license. The JRuby guys are trying a ‘tri-license’, which I’m not quite sure how that works either.
The Sqlite guys have an interesting business model. They declare their license to be ‘public domain’, but will sell you a license if you want or must have one.
I think the most complex parts of licenses are how they deal with ‘linkage’. Ohloh provides a nice license scanner as part of their service. I accidentally, included a GPL header in a file I added to a BSD project. I noticed on Ohloh a ‘incompatible license’ warning on my project, and was able to find the cause of my error.