Time to Fork Ext JS and MyGWT
Bad news but not really unexpected for me, Ext JS and MyGWT (a.k.a. Ext GWT) have just changed from LGPL to GPL today. In a nutshell, Ext JS and MyGWT are now useless for free commercial use. If you have already based your projects on these libraries, my general recommendation is to continue using Ext JS 2.0.2 until a fork is available or you can transition off Ext JS.
Ext JS claims that it is a foundation you can build on. Well, I disagree when the license keeps changing to be far more restrictive around every major revision (i.e., BSD to LGPL to GPL). Even though LGPL is open to the library creator’s clarification as to whether the LGPL license extends to your JavaScript code, GPL seems pretty clear that all your JavaScript code will be affected by GPL as well. In comparison, even JBoss and MySQL – two highly controversial open source projects - never tried anything close to this to my knowledge.
If you are a manager, you might be tempted to just pay for a commercial license since the license fee may not seem large for you. Be aware that you will be committing your project to vendor lock-in. The logical next step for Ext the company is to take Ext JS completely commercial with an increase in license fees to feed its expansion.
If you are still on the fence about choosing between GWT-Ext and MyGWT, I believe GWT-Ext is now the clear choice. The author of GWT-Ext was the first to add the clarification that GWT-Ext can be used in commercial projects without worrying about the LGPL contamination. This pressured MyGWT to add a similar clarification after a week or so, but may ultimately have accelerated the MyGWT license change to GPL due to the potential profitability impact to Ext the company. Unfortunately, both libraries depend on Ext JS, and their futures may be somewhat murky now.
April 21st, 2008 at 1:25 pm
I think forking Ext 2.0.2 is inevitable. Jack may think that he can convince users that its not permissible and even use strong language but anyone who knows software law and has read his license can quickly tell that anyone can fork ExtJS as long as its LGPL. LGPL is a copyleft license and ExtJS cannot change this. PS : I am a lawyer.
April 21st, 2008 at 4:05 pm
@Michael
Good to get a perspective from a lawyer.
From the ajaxian.com discussion thread, I found this link on the legal status of Ext JS.
http://en.wikipedia.org/wiki/Talk:Ext_(javascript_library);
The two default Ext JS themes cannot be used since those are covered by a proprietary license and not by LGPL.
April 21st, 2008 at 6:33 pm
You might have also read this thread where a user redistributes Ext under LGPL, and completely within his rights per the Ext 2.0.2 license.
http://mjg59.livejournal.com/84586.html
I feel this was what prompted just a hasty and rather sudden move from the Ext folks into changing to a GPL license. The fear of losing your house might cause you to change the terms of your mortgage…. oh, right, you can’t do that without the agreement of the bank.
Think before you grant rights - you can’t undo the permissions you’ve granted no matter how much you yell saying, “no, no, you cant do that as thats not what I really meant”. He talks about having excellent IP counsel, but I strongly suspect they don’t exist. And if they do, I’ll be happy to respond to them if they make any claim directly on the ExtJS forums.
The fact that ExtJS was originally licensed under LGPL terms was a deliberate move to gain a large user base, and fortunately such bait-and-switch just doesn’t fly when it comes to the law.
April 22nd, 2008 at 8:25 am
@Michael
I read the link that you provided.
I agree that Ext wants to have its cake and eat it too. It craves the goodwill and increased popularity from an open source project, but wishes to be free from any actual open source obligation. In an efficient market, this kind of business practice should not be rewarded.
April 22nd, 2008 at 8:53 am
You can download Ext JS 2.0.2, the last version with LGPL, here:
http://yogurtearl.com/ext-2.0.2.zip
I also put my local copy on this Web server for now. I did a diff against the copy from yogurtearl.com and they match.
http://abotar.com/ext-2.0.2.zip
April 22nd, 2008 at 9:08 am
Since mygwt.net has been taken down, I will put my local copy of MyGWT 0.5.2 on my Web server for now. 0.5.2 is the last version of MyGWT with LGPL.
http://abotar.com/mygwt-0.5.2.zip
April 22nd, 2008 at 11:01 am
This blog entry is on the front page of ongwt.com.
http://www.ongwt.com/post/2008/04/22/Time-to-Fork-Ext-JS-and-MyGWT
April 22nd, 2008 at 11:37 am
“GPL seems pretty clear that all your JavaScript code will be affected by GPL as well”
I don’t know about “pretty clear”, as the GPL has historically been written more with an eye towards compiled languages, but you’re probably right that this is Ext’s intent.
In the case of Ext JS, this would involve any Javascript you write or explicitly arrange to use on your page (vs. implicitly, e.g., by loading a user-selected OpenSocial gadget). This would not carry over into any server side logic. Since, license or no, anyone can copy this Javascript code (albeit illegally if you haven’t licensed it for reuse), you should not be relying on such Javascript code as a significant barrier to entry for any competition for your commercial product. Hence, the fact that you have to make your Javascript available on GPL terms shouldn’t really be a big deal.
Now, Ext GWT is another kettle of fish. Since it involves linking on the server side, your entire Java code base would be subject to the GPL terms…if you distribute it. If you’re operating a Web application that you are solely hosting, you aren’t going to be distributing it, and therefore the GPL won’t apply. If you are operating a Web application with an eye towards customers purchasing your server component to run on their own servers, though, then the GPL will apply.
“Well, I disagree when the license keeps changing to be far more restrictive around every major revision (i.e., BSD to LGPL to GPL)”
I would definitely recommend no more than one license change per decade…
“The logical next step for Ext the company is to take Ext JS completely commercial with an increase in license fees to feed its expansion.”
This isn’t unique to Ext, though — MySQL and JBoss, to use your examples, could do the same thing. Done right, your code should be no more dependent upon Ext’s code than it is on MySQL or JBoss.
April 22nd, 2008 at 2:06 pm
@Mark
See the response from Jack of Ext. Jack has confirmed that both the client and server code referencing Ext JS will have to be GPL.
http://extjs.com/forum/showthread.php?p=156236#post156236
Based on what I have read in the past regarding GPL and JavaScript, the non-lawyer consensus appears to be that a GPL JavaScript library will contaminate private JavaScript source code that uses it. This seems to be the general agreement of the Ext users in the above thread as well. I personally would not have given Ext JS a second look had I been certain from the beginning that it will eventually change to GPL.
In response to your third point, JBoss and MySQL are controversial products with huge followings that have been around for many years now but are still available for free commercial use. If they ever tried to go commercial only, it is pretty much 100% guaranteed that there will be successful forks of those projects. Also, there are mostly interchangeable open source products with more business-friendly licenses available.
As popular as Ext JS is in the Ajax world, it does not have nearly the number of users of those two projects. The only remotely comparable Ajax libraries are YUI and Dojo, and they are not quite there yet in my opinion. Therefore, Ext JS has a captive audience. In the span of less than two years, Ext JS has had two major license changes. Assuming that Ext continues to behave like a short term profit-maximizing company, it seems reasonable to assume that eventually Ext will either go all commercial, add additional restrictions on top of GPL, or increase the overall licensing fee at will. Ext will because it can.
Granted, JBoss is on the business tier, and MySQL is on the persistence tier, so they may not be directly comparable to Ext JS and MyGWT on the presentation tier
April 22nd, 2008 at 2:12 pm
This looks as planned this way from the beginning. What bad taste.
Peace
-stephan
April 22nd, 2008 at 2:24 pm
[...] for Ext JS and Ext GWT is causing quite a bit of discussion. License discussion on Ext-JS forum A call to fork Ext JS and MyGWT Darrell confirms that old MyGWT forums will no longer be [...]
April 22nd, 2008 at 2:46 pm
@Stephan
I agree that the whole thing is disconcerting. I hope this type of business practice does not become the norm for all successful open source companies. All the old mygwt.net forum posts are apparently gone for good too, possibly to boost Ext GWT support subscriptions?
http://extjs.com/forum/showthread.php?t=33290
April 22nd, 2008 at 6:21 pm
To answer questions that a couple of people had:
#1
Ext acquired MyGWT shortly after controversy as to whether MyGWT violated the Ext JS’s proprietary images license. MyGWT used to be BSD and switched to LGPL after the acquisition. I assumed that Ext gave MyGWT an ultimatum to join the organization or be shut down.
#2
GWT-Ext will continue to be licensed under LGPL according to this thread
http://gwt-ext.com/forum/viewtopic.php?f=5&t=995
April 22nd, 2008 at 6:48 pm
ext 2.1 and ext gwt 1.0beta1 are NOT distributed under the GPL. I repeat they are not distributed under the GPL. Just look at the license file and the source code as I have. There are additional restrictions over and above the GPL.
April 22nd, 2008 at 7:22 pm
@jd
Here is the license page:
http://extjs.com/products/license.php
Like the LGPL-covered Ext JS, they have the dual licensing plus some additional ambiguous paragraphs to try to nudge the users to buy a commercial license. However, it is my belief that the libraries can be redistributed with only the LGPL or GPL licenses and no additional baggage. See this thread for details:
http://extjs.com/forum/showthread.php?t=33192
I did not bother downloading the GPL-licensed archives since I am done with Ext until hopefully a fork happens. Please let me know if the included text is significantly different from the license Web page.
April 22nd, 2008 at 10:02 pm
I also thought about a fork, but it’s not that easy. Even if we do find a way to bypass the 2.0.2 license restrictions, there is the problem that the “Assets” (images and CSS) for Ext are under a separate license that prevents derivative works:
Quote:
License of CSS and Graphics (”Assets”)
——————————————————————————————
The Assets distributed with Ext are licensed for use ONLY
with their associated Ext JavaScript component (”Component”). Use of the Assets in
any way that does not also include the Component is prohibited without explicit
permission from Ext JS, LLC. Deriving images and CSS from the Assets in an effort
to bypass this license is also prohibited.
Since the library is pretty much useless without the CSS, this will hinder any effort to fork. It would be a lot of effort (if not impossible) to create completely unique CSS that is not based on the original CSS.
April 22nd, 2008 at 11:18 pm
could somone please explain to me/correct me: if i write an ext gwt web application, using the ext gwt jar, i have to publish the java sources of my web app under the gpl (if i distribute my web app). i am the author of that webapp (correct?). what about if i use snipplets of the sample codes? i can link my webapp with other commercial java jars, if i put an exception in the my licence?! thank you
April 23rd, 2008 at 4:40 am
Ext is now the bad boy of open source. They shall never be trusted again for this egomaniac stunt.
April 23rd, 2008 at 6:24 am
@kellys
One option for a fork of Ext JS and MyGWT right now is to start with the Slate theme, which is a high-quality, original images and CSS theme pack from a third-party developer. It will be great if the author of that theme pack is willing to explicitly put it under a business-friendly open source license. The fork can prominently credit all contributing theme pack authors and maybe any grateful company can donate or pay money to the theme pack authors instead of buying an Ext JS license.
http://extjs.com/forum/showthread.php?t=15989
Initially, the fork should focus on bug fixes, but eventually it will have to worry about upcoming browsers like Firefox 3 and Internet Explorer 8. A written guarantee that the fork of Ext JS and MyGWT will not change to be more restrictive than LGPL in the future can drive a large portion of the Ext JS community over to help. There should be a meritocracy as far as committers go, and there should be committers from multiple companies. Also, I think it is important for the authors of Ext JS plugins and themes that disagree with the GPL change to refuse the license change to GPL for their contributions.
April 23rd, 2008 at 6:30 am
Looks like someone added a link to this blog entry from dzone.
http://www.dzone.com/links/time_to_fork_ext_js_and_mygwt.html
April 23rd, 2008 at 6:50 am
The old MyGWT forum is back up in read-only capacity. However, it is still not linked from the front page of mygwt.net.
http://mygwt.net/forum
See this thread for the announcement:
http://extjs.com/forum/showthread.php?t=33380
April 23rd, 2008 at 7:38 am
@julia
According to Ext’s interpretation of GPL, your code will most likely need to be under GPL as well. See this thread and others for details:
http://extjs.com/forum/showthread.php?t=33334
I am not sure about using parts of sample code or linking with other commercial JAR files.
April 23rd, 2008 at 7:54 am
@sakuraba
There are Ext forum posters that grudgingly plan to buy commercial licenses to accommodate this GPL change, while others stated that Ext lost their business. Overall, Ext certainly lost a lot of goodwill and evangelists.
April 23rd, 2008 at 7:58 am
@admin
The slate theme entends the the default ext css (as all themes do). That default CSS is required for Ext components to function as expected. I don’t think original css that is not based on the ext css will even work as all the components will break.
April 23rd, 2008 at 9:17 am
@kellys
I assume that you mean the CSS files under resources/css. You make a good point.
However, reading LICENSE.txt in the Ext JS 2.0.2 package, the “also” term right after the section for license of CSS and graphics can be interpreted as meaning the images and CSS are part of Ext and are also licensed under LGPL. In my non-lawyer opinion, an ambiguous license like this will probably not hold up in court and will probably not favor the copyright holder. IANAL.
From LICENSE.txt:
{cut}
License of CSS and Graphics (”Assets”)
{cut}
Open Source License
Ext is _also_ licensed under the terms of the Open Source LGPL 3.0 license.
{cut}
Therefore, one interpretation is that there are four mutually exclusive licenses and you have to choose one:
#1 License of CSS and Graphics (”Assets”)
#2 Open Source License
#3 Commercial License
#4 OEM / Reseller License
If someone decides to choose #2, then he/she may legally ignore #1, #3, and #4. IANAL.
April 23rd, 2008 at 10:38 am
That’s definitely an imaginative way of looking at it. ;)
The also is definitely confusing, however I think the first line of “Assets” section provides enough clarification:
“The Assets distributed with Ext …”
Whereas the subsequent section defines terms for Ext itself:
“Ext is also licensed under the terms…”
“In my non-lawyer opinion, an ambiguous license like this will probably not hold up in court and will probably not favor the copyright holder.”
The default is to favor the copyright holder, not the user. Remember, we have no rights unless they grant them to us. If there is a reason to cause that the grant may not be valid, we could have no rights. That’s why my corp legal won’t allow me to use Ext JS under 2.0.2 and we have to purchase commercial license now.
April 23rd, 2008 at 11:13 am
@kellys
Ext JS library is distributed with JavaScript, CSS, and images. Without any one of the three, the library will essentially not work. The first license never states that CSS and images are not considered part of Ext JS. Also, the first license could be interpreted as meaning that there are no restrictions on JavaScript code. Therefore, someone can potentially transfer the JavaScript code to public domain by accepting the first license. IANAL.
I am not sure if I would agree with your statement that the default is to favor the copyright holder.
I did a google search on this term: ambiguous license.
According to the first link, “the general rule in most jurisdictions is that ambiguities in software license agreements will be construed against the drafter.”
http://blawg.scottandscottllp.com/softwareaudits/2008/01/license_ambiguities_in_softwar.html
April 24th, 2008 at 9:06 am
I started a Google Code project a couple of weeks ago:
http://extjs-public.googlecode.com
The original idea was just to allow svn:externals properties to pull in the extjs libraries on demand in a few projects I’m working on.
The original LGPL3 2.0.2 release of ExtJS is in the repo, tagged under:
http://extjs-public.googlecode.com/svn/tags/ext-2.0.2/release/
April 24th, 2008 at 10:19 am
Users should simply complain to FSF about the Ext license. The additional restrictions over LGPL are invalid and FSF takes these matters very seriously (once they get on a case). If enough users complain to FSF, the will take notice and come down strong.
http://www.fsf.org/about/contact.html
http://www.fsf.org/licensing/licenses/gpl-violation.html
April 24th, 2008 at 10:23 am
From http://www.fsf.org/licensing/licenses/gpl-violation.html :
“Does it say anything misleading, perhaps giving the impression that something is covered by the License when in fact it is not?”
Seem familiar?
April 25th, 2008 at 9:31 am
@Michael W, Mike H
Someone has started a fork of Ext JS 2.0.2 as discussed in the thread below.
http://gwt-ext.com/forum/viewtopic.php?f=5&t=1061
Here is the justification for the fork with the CSS and images intact:
http://openext.svn.sourceforge.net/viewvc/openext/trunk/LICENSE.txt?view=markup
Direct link to the project:
http://sourceforge.net/projects/openext/
Also, according to a post in the huge “License Change?” thread extjs.com, someone from InfoQ may have started or is thinking about starting a fork of Ext JS. If anyone knows more about this, please let me know.
April 26th, 2008 at 12:06 am
There is a backlash against the Ext license change by a couple of open source projects that I respect.
GWT-Ext creator slammed Ext:
http://www.jroller.com/sjivan/entry/my_response_to_jack_slocum
The CTO in charge of Groovy/Grails also responded negatively to Ext:
http://graemerocher.blogspot.com/2008/04/choosing-and-oss-license-and-ext-js.html
April 27th, 2008 at 4:53 am
http://www.opensource.org/docs/definition.php
According to that definition, ext-js team really don’t have a clue about what open source means.
There are at least a couple of points where the ‘additional restrictions’ on ext-js go against the Open Source Definition:
1. Free Redistribution
3. Derived Works
5. No Discrimination Against Persons or Groups
6. No Discrimination Against Fields of Endeavor
April 28th, 2008 at 10:27 am
@Sergio
I agree that either Ext has no idea what open source is, or it does and is trying to introduce uncertainty against open source to increase sales. The creator of Ext claimed that Ext is not an “evil empire”. At the rate that the negative publicity is piling up, maybe the claim will become true because the second word will no longer be applicable.