First of all I'm not asking for legal advice but just checking if anyone agrees with my suspicions. That might help in convincing Sencha to change their license.

Their commercial license says:

The Open Source version of the Software (“GPL Version”) is licensed under the terms of the GNU General Public License versions 3.0 (“GPL”) and not under this License Agreement. If You, or another third party, has, at any time, developed all (or any portions of) the Application(s) using the GPL Version, You may not combine such development work with the Software and must license such Application(s) (or any portions derived there from) under the terms of the GNU General Public License version 3, a copy of which is located at http://www.gnu.org/copyleft/gpl.html.

Meanwhile there exist libraries licensed under MIT or BSD, that use ExtJS. GeoExt is one example. It's likely some contributors of those libraries have not bought the commercial license of Ext JS, and are using its GPL-licensed version. Reasonably GPL-licensed Ext JS shouldn't "infect" GeoExt code if it's distributed without the Ext JS library.

Now the problem is, if I use GeoExt then likely "portions" of it have been "developed using" the GPL version. Specifically Sencha clarifies what they mean by "develop using" in their FAQ:

The license prohibits combining code that you develop using a GPL licensed version of the software with code that you develop using a commercial licensed version. In other words, you may not begin development with our GPL version and then "convert" it to our commercial version.

My interpretation is that it's not allowed by the Sencha commercial license to combine Ext JS with GeoExt and who knows what other libraries whose contributors at some point may have "developed using" a GPL version of Ext JS. This may or may not include OpenLayers, jQuery and other libraries developers would likely also need to use in their commercial projects.

If Sencha then so desires, according to their commercial contract they can demand commercial customers who combined Ext JS with other libraries, to release their software under the GPL, since the commercial license doesn't offer any other resolution.

My question is: do you agree that this sounds like developing commercial software using Ext JS may be risky, or is my interpretation incorrect?

2 Answers 2


As far as I can determine, the commercial license forbids the development of libraries, because libraries permit a third party to do software development using Ext JS.

This means that any libraries that are built upon Ext JS must, by necessity, be using the GPL version of Ext JS.
By extension, if you use any of those libraries in your own application, you are also forbidden from using the commercial version of Ext JS.

I am not familiar enough with how the GPL interacts with JS to be able to tell in how far the use of the GPL version of Ext JS "infects" the rest of the code.

  • Well spotted! "You may not redistribute the Software or Modifications as part of -- any product that is intended for use by software, application, or website developers or designers." I was planning to distribute a GPL-licensed library and develop a commercial web service, but it seems I'm not allowed to distribute the same modifications under GPL and use them in a closed source web service.
    – jjrv
    Commented Apr 1, 2013 at 20:11
  • 1
    I'm giving up on Ext JS, the license is too insane.
    – jjrv
    Commented Apr 1, 2013 at 20:13
  • @jjrv: You might as well let them know that they are losing business due to their license restrictions. Commented Apr 2, 2013 at 8:11

IANAL, but here's how I see it.

The GPL uses a simple model of pay it forward. All your changes, modifications, improvements are shared with the same understanding which you created them. I believe it's the purest of all open source licenses. It's also the most popular.

The "permissive" open source licenses don't care about future changes. The author feels fine that their work can commercialized or forked. Here corporations can make improvements, modifications, and changes that add value only for them and NEVER give back.

In this case, Sencha allows third-party developers to build and deploy new works under an permissive license (a FLOSS-exception). The only reason to do this is to support a community. Their is no good reason to have a FLOSS exception other than to be a good open source citizen to those using your product under a permissive license. Case in point here - GeoExt.

GeoExt is MIT/BSD licensed thanks to the FLOSS-exception. Which affords commercial license holders to use this with their commercial applications without fear of the GPL "pay it forward" philosophy so long as they have a commercial license of the dependent software (in this case, Ext JS).

This is a huge win all around. It enables the author to have a commercial business while allowing open source, in all flavors, the ability to use the original software.

  • However Ext JS commercial license has a NON-FLOSS exception that you can't use other FLOSS software with Ext JS. Once you go commercial, they want you to go all the way and not benefit from other FLOSS either. The mechanism of this is that they don't allow any code that was developed by a person using the GPL version of Ext JS, to be used together with the commercial version. It doesn't matter if GeoExt is BSD - commercial Ext JS users cannot use it anyway if it was developed with the GPL version.
    – jjrv
    Commented Apr 12, 2013 at 10:50
  • This has nothing to do with GeoExt license. Ext JS commercial license could say you're not allowed to use code by developers whose favorite color is blue, and then you couldn't safely combine it with any other code regardless of the licensing of that other code. This is a BIG LOSS all way around because their customers cannot dual-license software. It's commercial OR open, you can't open parts and close others because you're not allowed to combine parts released as GPL with parts released commercially (in another unrelated package) even if you yourself are the author of all those parts.
    – jjrv
    Commented Apr 12, 2013 at 10:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.