Monday, April 28th, 2008

Ext JS responds with Open Source FLOSS Exceptions

Category: JavaScript, Sencha

Jack Slocum and his team are listening, and appear to be working with the community to clear things up:

With our recent change to the GPL v3 some concerns have been brought up by the Ext Community. We are hoping to address some of those concerns via community discussion of two new FLOSS exceptions.

The first step for us is the Open Source License Exception for Extensions. It is currently in draft status and we are seeking input from the community before we have it finalized.

The intention of this exception is to allow for more liberal licensing of extensions, language packs, themes and open source developer toolkits and frameworks for Ext libraries under a variety of open source licenses. (Note: this exception is not for applications and does not grant any exception for the library itself. A FLOSS exception on the libraries for open source applications will be addressed in the exception discussed in “Next Up” below).

He is looking for input and feedback. You can see the latest draft, and if you have thoughts join the discussion.

This exception is the first step, with more to come:

After the Extension Exception is complete, the next step will be drafting a FLOSS exception similar to the one by MySQL AB for both Ext JS and Ext GWT.

This exception will for open source applications that use Ext JS. It will have a few distinct additional grants the Extension Exception doesn’t have (e.g. “bundling” will be ok) but won’t be applicable to extensions or toolkits, as that’s what the Extension Exception is for.

Quick work, and the fact that he is joining and leading the discussion is huge.

Posted by Dion Almaer at 12:11 am

3 rating from 2 votes


Comments feed TrackBack URI

Ext JS is dead….Long live Ext JS!
PS…This was just a publicity stunt constructed by Jack…that guy is brilliant.

Comment by maxxdogg — April 28, 2008

Jack seems to think you can’t use the ExtJS GPLv3 license to build proprietary web applications. That is wrong. the AGPLv3 would not allow you to do that. With the GPLv3 (as with the GPLv2) you can be a fully proprietary web application, and you’ll only have to convey ExtJS in source form.
_If_ you use open-source licenses, please read them!

Comment by pyalot — April 28, 2008

pyalot, the AGPL has nothing to do with ExtJS and is not applicable. The AGPL adds additional conditions to cover network interaction for programs that can be connected to over a network. Ext JS can’t be connected to and until JavaScript gets server sockets, I don’t imagine it ever will be. Thanks anyway for the advice.

Comment by jackslocum — April 28, 2008

I heard somewhere that outside of writing legal briefs full time. Jack Slocom does some occasional JavaScript programming. :)

Comment by jerrybrown5 — April 28, 2008

Hope they can clear up the mess, licensing issues tend to scare people away :(

Comment by deadcabbit — April 28, 2008

Hi, there everyone.
Let’s pretend I’m new to Ext JS.

A. I want to build my personal/friends/family site using Ext JS. It’s a non-profit, personal use site. You know, maybe some sort of blog, forum, photo gallery, whatever. I’m not distributing my site’s code as an application, just building this particular site for personal use.

B. I want to play a bit with Javascript, do some demos, maybe some nifty small utility. I do plan to distribute whatever note-taking/music-managing/bookmark-keeping/micro-forum application I build. People will download it freely/openly and be able to install on their servers.

C. As above but I do intend to have a commercial version of my photo-gallery application people can buy and then download or something like that.

D. As above but instead of selling the application, I intend to sell the service as a hosted application.

E. I want to use and extend Ext JS. I have some ideas for some components or themes or small modifications which I’d like to implement. I do not plan to distribute these changes.

F. As E, but I do plan to distribute, in an open free way.

G. As E, but I’m thinking about a commercial distribution of my enhancements.

H. I want to use Ext JS in some professional projects. I do some work for some client and want to include use of Ext JS in those projects. This is paid work, but it’s not widely distributed. Just to the particular client.

I. As H, but I plan to use Ext JS for internal application development at the company I work for. I.1. Some intranet or maybe I.2 the public corporate site.

J. I need some particular modifications to Ext JS which are not in agreement with part/the rest/some of the community or are too specific to my needs or whatever reason. I’m thinking about a fork.

(If anyone sees more situations not covered, please do add them)

The questions are:
1. Am I entitled to do these things?
2. Under which circumstances?
3. Which licences apply?

Please, when answering this, try to differentiate legal and moral reasons. If I *can* do it, but it would be frowned upon or otherwise be seen as rude, inmoral or improper, state so.

Thank you.

Comment by Venkman — April 28, 2008

I agree with CyMonk, but disagree with deadcabbit. When I choose a product, I don’t have the time and wisdom to understand their license. So I only use OSS endorsed licenses since they have done the heavy work for me and I only need to read the OSS FAQ to get a layman understanding of what their endorsed licenses allow and deny.

Comment by Jordan — April 28, 2008

I am thoroughly confused. My understanding of GPL (I’ll confess I am not a lawyer) was that if your product itself contains a product licensed under GPL, then your product must be licensed under GPL as well. However, I understood this to be applicable only to software that is BEING DISTRIBUTED. Jack seems to interpret this differently- speaking in terms of “commercial advantage.” My company has an application with many thousands of users that is not currently using Ext, but is planning to. The application is NOT BEING DISTRIBUTED (i.e. we don’t bundle and sell and/or give away our application for installation on others’ servers). With all this in mind, what would be my company’s actual obligations under GPL (or under Ext’s dual licensing model) if we were to use Ext? Ordinarily I wouldn’t ask such a question, but right now, I’m really questioning my understanding of GPL and OS licenses in general.

Comment by krancour — April 28, 2008

Jack, I have to congratulate you, you are really an evil genious! With all this fuzz, ExtJS has increased its popularity a lot! Besides, now you can get a degree as a lawyer :)


Comment by mbavio — April 28, 2008

@krancour: You’re right at copyright licenses only apply on distribution (the making of copies). In this case, there are two steps of distribution. The first is when you obtain a copy from Ext, where you cannot obtain a legal copy unless you agree to one of the two license schemes. The second is when you copy it further on, where you must obey the chosen license. Under a pure GPL license, you don’t have to provide the source to your apps if you don’t distribute them. However, the question is whether including Ext in a self-hosted web app is distribution. As Ext is a client-side library, the client must obtain a copy of it, so in court it might be argued that distribution implicitly takes place merely by using the web application.

I am not a lawyer however.

Comment by Joeri — April 29, 2008

@jackslocum @krancour

The GPL requires you to distribute your drivative work, based on GPL work, in source form if you distribute your work in non source form. Derivation is defined as linkage of any form or flavor. You may escape that requirement if your work links against the GPL work in form of plugin mechanism, where you can exchange it or take it out and your work still works.

This means that whatever you do on the server, commercial and/or proprietary, is not in any way restricted by the GPL licenses of a javascript library you use, because 1) you don’t distribute your derivation and 2) it’s not a derivate because it consitutes no linkage under the GPL.

Comment by pyalot — April 30, 2008

@jackslocum @Venkman.

We really appreciate you and your work Jack. Please end the confusion. While it may be clear how GPL v3 relates to Ext-JS in your mind, it would help the current and would-be users of your library to know what your answers are to Venkman’s thorough set of scenarios and questions.

Comment by kalqlate — May 1, 2008


Just took the time to actually read about the FLOSS exceptions on your site and see that you will answer these questions in due time. For my circumstances, the commercial license is quite fair. Ext-JS puts a shine on any project by improving its UI and function many times greater than it might be without.

Comment by kalqlate — May 1, 2008

@Jack, pyalot is right. The GNU itself states it rather clearly in the presentations of their licenses

“The GNU Affero General Public License is based on the GNU GPL, but has an additional term to allow users who interact with the licensed software over a network to receive the source for that program.”

Note that the GNU use the word “interact”, not “connect”, it means “human interaction” it has nothing to do with whether the software makes use of sockets or whatever else.

The additional term referred to in the introduction is the #13. “Remote Network Interaction; Use with the GNU General Public License.”

That at some point says:
“… if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version…”
This additional term is required to limit the usage of software (or as GNU more correctly puts it: “to allow users to receive the source of that program”) under a software-as-a-service model because the GPL v3 do not limit it:
Pls. Read the definition of propagation an conveying, and take note of the item 2 “Basic Permissions” that states:
“You may make, run and propagate covered works that you do not convey, without conditions …
…Conveying under any other circumstances is permitted solely under the conditions stated below.”

This means that the GPL applies conditions to your usage of the software solely in the case that you convey (read: distribute) the software.

Comment by pnp — May 4, 2008

Leave a comment

You must be logged in to post a comment.