With the release of Ext JS 2.1 a few days ago the license terms for non-commercial use changed from the LGPLv3 to GPLv3.
And everyone freaked out.
There are several discussions on the Ext Forums, the longest being 35 pages long (and growing). The discussion has spread from the announcement blog post to Slashdot, the Wikipedia Talk Page and Ajaxian.
Ext JS is a JavaScript library that facilitates the development of rich web interfaces, and the GPL FAQ has a nice illustration of how that affects your code and licensing.
Essentially if you're using Ext under the GPLv3 license, you're required to release the source of your application. Say I wanted to pop up an alert every time someone loaded my page, and I use the following JavaScript code, output by a PHP function called generate_alert.
Ext.onReady(function(){ Ext.MessageBox.alert('Welcome', 'Hello Corey.') });
Assume I have have two files:
- index.php - includes alert.php, and calls generate_alert($first_name) which is defined in alert.php.
- alert.php - defines the generate_alert() function
I'd be required to release alert.php under the GPL because it's essentially linked to Ext, and Ext is licensed under the GPL. And since index.php includes alert.php, it also has to be released under the GPL.
Again from the GPL FAQ:
If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?
Yes, because the program as it is actually run includes the library
Licensing Options
If you're not developing an application that will be open source Ext offers a commercial license. They refer to their dual licensing as quid pro quo.
Quid Pro Quo
Dual Licensing is based on the principle of Quid Pro Quo - "something for something". In return for the advantages you realize from using an Ext product to create your application, we require that you do one of the following:
- Contribute to the continued development of the product by purchasing commercial licenses from Ext. This option secures you the right to distribute your application under the license terms of your choice.
- Contribute to the Open Source community by placing your application under an Open Source license (e.g. GPL v3). This option secures all users the rights to obtain the application's full source code, modify it, and redistribute it.
Naturally many people on the forum thread (most newly registered) balked at the idea of paying for the software, but there is still quite a bit of confusion surrounding exactly how it affects developers. The real questions seem to be if using a JavaScript library is a close binding with your backend application, or if hosting an application on a website counts as distribution - both of which would require you to open source your application and under the terms of the GPL.
I am most definitely not a lawyer and my interpretation of the situation may be incorrect. Does anyone have a more informed opinion? Or have you run into similar issues using GPLd libraries?

