Ext JS es una gran libreria para Javascript, una de las mejores y más completas que he utilizado. Sin embargo, recientemente ha visto un poco de controversia debido a su elección de distribuir la librería bajo un esquema de licencia doble:
- LGPL para aquellos que planeen usar Ext de manera personal, sin ánimos de lucro o educacional.
- Si planeas distribuir a Ext como parte de un producto de desarrollo de software (como un toolkit, librería, lenguaje, etc) entonces no puedes obtener Ext bajo los términos de la LGPL y tendrás que adquirir una licencia comercial.
Hasta aquí todo bien ¿no? Pero la cosa se complica un poquito: la LGPL versión 3 especifica claramente que si tu obtienes un software con licencia LGPLv3 y tiene alguna restricción extra a aquellas impuestas por la propia LGPL, tu tienes el derecho de eliminar dichas restricciones extras.
Dicho de otra manera: cualquier software con licencia LGPLv3 no puede tener más restricciones que las que la LGPL especifica. Por lo anterior, Matthew Garrett, desarrollador de Debian, decidió redistribuir Ext pero únicamente con la licencia LGPL (sin la licencia propia de Ext).
Matthew dice que él va a usar Ext de manera personal, sin ánimo de lucro y por lo tanto es elegible para obtenerla con LGPL. Al momento de obtenerla con LGPL él es libre de distribuírla de cualquier manera, siempre y cuando se apegue a los términos de la LGPL.
Ni tardo ni perezoso Jack Slocum, autor de Ext, le dice que está en violación de su licencia, porque Ext no se distribuye con licencia LGPL sino con una licencia propia de Ext, que te permite usar Ext bajo los términos de la LGPL en caso de que seas elegible para ello. Esta licencia propia de Ext, de acuerdo a Jack, no le permite a Matthew redistribuir porque Matthew está distribuyendo Ext como parte de una herramienta de desarrollo (como una librería) cosa que la licencia propia de Ext explícitamente prohibe:
If you plan to distribute Ext in a product that will be packaged or sold as a software development library, toolkit or plug-in-based framework (LIBRARY), we require that you work with us to establish a specific license that is appropriate. Use of the open source license terms in a LIBRARY is not permitted without explicit permission.
¿Entonces por qué Matthew se sintió con derecho de hacerlo? Porque él obtuvo Ext con licencia LGPL al planear usar Ext de manera personal, sin ánimos de lucro. Y como la LGPL le permite redistribuír, siempre y cuando se apegue a la LGPL (cosa que está haciendo) simplemente lo hace.
¿Entonces por qué Jack dice que no se puede? Porque él dice que si vas a usar Ext de manera personal, sin ánimos de lucro no obtienes Ext con licencia LGPL, sino que la licencia original de Ext te de da derecho de usar Ext bajo los términos de la LGPL.
¿Lo ven? es como si la licencia propia de Ext fuera una envoltura sobre la LGPL. La palabra clave es bajo los términos de la LGPL. ¿Eso que significa? ¿Es diferente otorgar uso bajo los términos de la LGPL a distribuír un software con licencia LGPL? Al parecer lo que intenta hacer la licencia de Ext es:
Si vas a usar Ext de manera personal, sin ánimos de lucro o si eres una organización educativa, puedes obtener Ext y usarla con los mismos derechos que te otorga la LGPL. Pero si decides distribuir Ext como parte de una librería de desarrollo, esos derechos se te eliminan y tienes que contactarnos para llegar a un acuerdo de licencia.
Aún si lo anterior es lo que en efecto quieren hacer, al momento de obtener los derechos otorgados por la LGPL tu puedes eliminar esa restricción que te intenta quitar esos derechos y hacer con Ext cualquier cosa que la LGPL permita.
No soy abogado, y habrá que estar atentos a la resolución de este problema, pero creo que Matthew tiene razón en esta. Si lo que Jack Slocum y los autores de Ext quieren hacer es proporcionar una licencia similar a la LGPL pero con algunas restricciones extras, deberían de tomar las secciones de la LGPL que le acomoden e incluirlas en la licencia de Ext y distribuir únicamente bajo esa licencia, y no otorgar uso bajo los términos de la LGPL, sea lo que sea que eso signifique.