ailon's DevBlog: Development related stuff in my life

Choose Your Open Source License Wisely and Stick to It

5/19/2008 5:50:48 PM

os_main Recently there was quite a storm in web development community about a move by popular JavaScript framework ExtJS. They've changed their licensing scheme from LGPL/commercial to GPL/commercial. And as this quite radical post by Paul Duncan title "Don't Use ExtJS" suggests earlier Ext was released under very permissive BSD license.

I've never used ExtJS and don't know much about it except the name and that it's quite popular, but the controversy concerns me as I'm a lead developer of an open source project released under the same GPL/commercial scheme. I assume some (or maybe even most) of the ExtJS attackers wouldn't call my project open source as they refuse to call ExtJS open source now.

ExtJS's situation is not as straightforward as mine. In 5 years since the first public SPAW Editor release we've never changed the licensing scheme. And we don't use any third party code (maybe some small parts from Mozilla's or Microsoft's documentation). But the fact that I'll be attacked if I ever decide to change the scheme (not that I plan to) saddens me.

The Root of all Evil

From my perspective the problem arises when people starting open source projects don't have a vision of what they are trying to achieve in the long run. This is very understandable cause sometimes you think you just have a small library on your hands that you would like to share with the world. In the early days of project's life you are totally satisfied by positive feedback from your users and don't think of anything else. But as days go by supporting the project becomes a routine, you get less and less satisfaction from working on it and unless you are a total programming junky you gradually loose all interest. At this point you either have to find a new "owner" for the project, let it die or start getting financial motivation.

Getting Paid for Open Source

Getting paid for your open source project is a tricky thing. Getting small donations from lots of users doesn't work as far as I can tell. You might get lucky and get a couple of major donations but I don't think that you can get those by placing a passive "Donate" button on your site. Getting VC money for your small-to-medium open source project is way too complicated for small development teams and not everyone dreams of selling their freedom and making their "baby" just another full-time job. Selling support for your project is a tricky thing too. I believe that open source project owners should provide support to all the users and not only those who paid for it.

All of the above methods could work but require quite aggressive "sales" activities to succeed. So, this leaves us (commercially passive OS developers) pretty much with the only option - dual licensing.

It seems that differentiation between who should be able to use your code under open source license and who should buy a commercial one is pretty simple:

  • open source projects and non-commercial projects should be able to get your product under the OS license;
  • commercial projects should buy a commercial license.

The problem is that there's no such standard open source license that let's you implement the above scheme. GPL is closest: it allows usage in other GPL projects and prohibits distribution in closed source and other non-GPL compatible open source projects. The last part is the cause of all the issues developers of non-GPL open source projects have with GPL and in this case with ExtJS. But unfortunately I'm not aware of any other open source license that comes closer to implementing this fairest (in my opinion) paradigm. Or did I miss some new advancements in those five years since I was actively looking for a licensing concept for SPAW?

Moral of the Story

I understand that I'm not a true open source developer and most likely neither is Jack Slocum (lead Ext developer) but I hope that by releasing my code under GPL I contributed my share to the community. I was lucky to think about such situation before releasing my software and though I understand Jack's motivation I agree with "whiners" that changing licenses as you go sucks. Though I can't see why those complaining can't fork from an earlier LGPLed or even BSDed ExtJS version and build a "truly open source" alternative.

So, the point is that it's very important to understand what are you trying to achieve by releasing your software as open source. If your goal is to make the world a better place, or you want to get community credibility to get paid more in the future, or you have some "alternative" business plan - go with permissive open source licenses like BSD, MIT, etc. But if you feel that you'll be upset that someone profits from your work while you're buying junk food with your last pocket change do yourself a favor and think about this before you release anything.

In any case I think it's important to make a wise, well thought out decision and stick to it. In my opinion it's better to have fewer but satisfied users then lots of unhappy ones.

kick it on DotNetKicks.com

Tags:

Comments

5/20/2008 12:50:35 AM

Mark Murphy

There's a few things that make the ExtJS situation worse than it might be with an arbitrary other open source project, including:

1. GPL'd Javascript is relatively uncommon, and so questions regarding what all gets affected by the "viral" nature of the GPL will be more frequently discussed. This is natural and no different than any other situation where the GPL is applied in a new environment (e.g., the old GPL'd DLL debate from the 1990's).

2. Per #1, Mr. Slocum is taking a rather expansionist view of what the GPL "viral" clause covers (e.g., generated HTML on the server that includes a <script> tag pulling in ExtJS means the server is under the GPL). Regardless of the actual legality of his claims, he is exacerbating the problem from #1.

3. License changes cause a greater ruckus when moving from permissive to restrictive than the other way around. That's why the BSD->GPL (by way of the wierdness that was the ExtJS License) move would likely cause more complaints than, say, you moving your project from GPL to LGPL.

4. The ExtJS community was already sore from the whole ExtJS License fiasco and appeared to feel the GPL move was just more of the same.

With respect to your question on what license to use in a dual-licensing scheme, I think you are correct: the GPL is the best one to use. However, GPLv3 has the advantage of being Apache License 2.0-compatible, which benefits the community (fewer people with licensing problems) and harms your income (fewer people with licensing problems looking to the commercial license as a solution).

Disclaimer: IANAL, NDIPOOTV (I am not a lawyer, nor do I play one on TV)

Mark Murphy United States

5/20/2008 9:01:27 AM

ailon

Yes, I've read about the claim #2. IANAL either but just reading the GPL FAQ clarifies that it's without a merit. Output of the GPL software is not covered by GPL and if you don't distribute your code in any way you don't have to obey GPL in in-house projects. One may argue that serving your pages over the web is distribution but I think that's a very weak point.

As for going from LGPL to GPL is more painful than the other way around I think the right word would be that it's more vocal. When you switch from dual GPL/commercial licensing to LGPL/commercial you actually hurt your commercial customers who paid for what they could get for free now. It's just that open source community is much more vocal than single commercial entities.

ailon Lithuania

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



Copyright © 2003 - 2010 Alan Mendelevich
Powered by BlogEngine.NET 1.5.0.7