2009-08-06 21 views
67

Si utilizo componentes JavaScript licenciados por GPL en mi sitio web, ¿se consideraría una versión para el público (a medida que el código del cliente de los componentes se cargue en los navegadores de los usuarios vía http) Tengo que "abrir-fuente" todo el sitio web?Restricciones de GPL en bibliotecas JavaScript

Entonces, ¿podemos decir que el uso de los componentes de JavaScript en un sitio web es la distribución del código y se trata de la distribución del código del sitio web completo?

Espero, la pregunta es clara y usted puede ayudarme a entender este aspecto de la GPL.

+5

¿Alguien puede responder esto correctamente? La pregunta es, cuando uso el JavaScript GPL desde el JavaScript propietario de mi compañía, ¿la GPL luego infecta nuestro JavaScript propietario, y quizás toda la aplicación web? ¿Tendremos que liberar toda la parte del lado del cliente de la aplicación como GPL si está disponible para los clientes? El hecho de que tengamos que preguntar esto realmente muestra cuán loca es la GPL, en mi opinión. Estoy bastante seguro de que la respuesta es "sí, toda su aplicación está infectada", como es el caso con cualquier otro lenguaje de programación. No libere bibliotecas de JavaScript bajo la licencia GPL para uso general. –

+1

@SamWatkins Sí, el JavaScript GPL infecta tu JavaScript patentado (a menos que no uses o hagas referencia al GPL en tu código). El código de fondo no se infecta en absoluto. Más detalles en [este artículo] (http://greendrake.info/#nfy0). – Greendrake

Respuesta

4

Usted ha distribuido la biblioteca JavaScript al usuario; se le exige que cumpla con los requisitos de la GPL en cuanto a la distribución. Si esto requiere que distribuyas el resto del sitio web es donde las cosas se complican. Te aconsejo que hables con un abogado competente sobre tu situación exacta si estás pensando en tomar ese camino, y ten en cuenta que esto es al menos violando el espíritu de la licencia, ya sea que viole o no la letra de la licencia también.

+5

+1 - hable con un abogado. – Quentin

+1

@Quentin: ¿por qué tenemos que hablar con una capa cada vez sobre este mismo problema? Es una pregunta frecuente por ahora. –

1

Esto definitivamente se complica. Te daré un ejemplo. ¿Qué sucede si está usando la licencia GPL de jQuery (sé it's dual licensed, pero ignorémoslo por solo un segundo).

Google tiene una distribución pública de jQuery (entre otros marcos de JavaScript) que se distribuyen en su CDN, por ejemplo:
http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js

Así que en este caso, no es el que está distribuyendo el javascript biblioteca para el usuario, google es ;-)

tenga en cuenta: como @bdonlan describe, solamente un abogado con experiencia debe ser el que pesan realmente en esto. Solo contribuí con esta respuesta para contextualizar las cosas sobre las que puede hablar con el abogado.

+0

Anuncio "Entonces, en este caso, no eres el que está distribuyendo la biblioteca javascript al usuario, google es" No importa quién está distribuyendo: tu código depende de la biblioteca con licencia GPL (es como usar C/Archivos de cabecera C++) por lo que también debe estar bajo GPL. Entonces, su javascript del lado del cliente está bajo GPL pero es una pregunta, si también su código del lado del servidor debe tener licencia GPL. – Franta

13

No soy abogado. He hablado con abogados sobre el uso de GPL y LGPL para que el código sea interpretado/vinculado dinámicamente en un software no libre. Todos tenemos grandes dolores de cabeza. La pregunta no es solo si tiene que liberar el resto de su sitio bajo GPL. Es si un navegador no libre puede ejecutar legalmente el código GPL.

Mi mejor consejo no legal es nunca intentar usar la GPL en el código Javascript. Nunca lanzaría una biblioteca Javascript bajo GPL, y si encontraba algún código que quisiera usar, trataría de hacer que el autor me dé una excepción. La LGPL may be es una mejor opción, pero esa licencia es tan compleja que sugiero evitarla también.

Los propios FSF tienen una respuesta para usted en sus preguntas frecuentes If a programming language interpreter has a license that is incompatible with the GPL, can I run GPL-covered programs on it?. Esa respuesta en sí misma es frustrantemente ambigua, pero sugiere caminos en los que podría ejecutar el código GPL en un navegador que no sea GPL. También puede encontrar el ensayo FSF The Javascript Trap interesante, aunque nuevamente en realidad no da una respuesta clara a su pregunta.

Por contexto, es útil recordar que la GPL y LPGL se escribieron en la era de Unix, cuando la mayoría de los elementos estaban vinculados estáticamente. Sin vinculación dinámica, no hay lenguajes interpretados, donde los guiones mismos fueron considerados valiosa propiedad intelectual, etc.

+9

IANAL, pero yo diría que como el navegador y el script no son trabajos derivados entre sí, y la combinación no se está distribuyendo, entonces cualquier navegador puede ejecutar el código GPL. –

+11

Está perfectamente bien ejecutar el software GPL (por ejemplo, Gimp) en Windows. ¿Cómo sería diferente el código Javascript de GPL en Internet Explorer? Esa pregunta de preguntas frecuentes de la FSF que ha vinculado parece perfectamente clara y no ambigua en absoluto. – Pointy

+2

Porque Javascript enlaza dinámicamente en enlaces a eventos DOM proporcionados por IE. Realmente creo que es un caso extremo, pero eso es lo que la FSF parece argumentar en el ensayo "The Javascript Trap". – DeepSpace101

2

Y para añadir más leña al fuego ...

Lectura de la GPL v3 está claro que si se incluye un buen trabajo, debe proporcionar la fuente con el texto de la licencia en la parte superior del archivo y la declaración de derechos de autor.

Así que si elimino los comentarios y los espacios en blanco del archivo y acorto los nombres de las variables, entonces 'lo distribuyo' al navegador de alguien (en forma de código fuente) probablemente estaría en violación de la licencia. Por cierto, una solución podría ser un uuid binario que representa las licencias apropiadas para los archivos mutilados. ¿Pensamientos?

Si proporciono la fuente de la biblioteca y mi propia 'fuente' usando la biblioteca con una última palabra, ¿entregarla al navegador constituye proporcionar la fuente libremente?

Creo que hay suficientes lagunas en esto para hacer que la licencia no se pueda hacer cumplir.

my 2cents/not a lawyer.

0

Este hombre escribió un artículo sobre el tema: http://stuck-in-windows.blogspot.com/2009/02/fud-over-javascript-and-gpl.html

En su artículo, que cita el sitio web de GNU FAQ, que tiene Q & A:

(Q) Una empresa se está ejecutando una versión modificada versión de un programa GPL en un sitio web . ¿La GPL dice que debe liberar sus fuentes modificadas?

(A) La GPL permite que cualquiera pueda hacer una versión modificada y usarla sin siquiera distribuirla a otros. Lo que esta compañía está haciendo es un caso especial de eso. Por lo tanto, la compañía no tiene que liberar las fuentes modificadas.

Las preguntas frecuentes a continuación hacen referencia al GNU Affero GPL que requiere el lanzamiento de todo el código fuente del sitio web.

+10

Sin embargo, JavaScript es diferente del código web de back-end, porque se "distribuye" al usuario final al descargarlo. Interpretaría esta Q & A como una referencia al código de back-end que no se distribuye. – Nils

-2

Por ej. Magento usa ExtJS que está bajo GPL v3. Ahora, cuando Magento es descargado e instalado por los propietarios de tiendas de compras, ¿quiere decir que los propietarios de tiendas tienen que dar un enlace a su 'fuente de todo el sitio web' junto con sus Productos? Funny Lol

En mi opinión, una biblioteca Javascript licenciada bajo GPL v3 es buena para cualquier proyecto a menos que intente modificar la biblioteca Javascript y venderla comercialmente o servicios comerciales relacionados.

+1

ExtJS también tiene licencia comercial ... ¿sabes si Magento usa la versión paga? Creo que el equipo de ExtJS argumentaría que SI tiene que abrir otras piezas si utiliza la versión de gplv3, eso es parte de cómo hacen que la gente pague. – Nils

+0

La GPL no le prohíbe cobrar por su biblioteca, pero no le permite restringir al comprador para que continúe distribuyéndola. –

2

Su aplicación + librería GPL + versión -> aplicación GPL de código abierto.

Esta es la intención de la FSF y la GPL, y se aplica independientemente del lenguaje de programación que esté utilizando.

Una lib lib de GPL infectará todo su código de JavaScript. Probablemente no infecte su HTML, contenido de página o código del lado del servidor.

Por lo tanto, no libere JavaScript libs bajo la GPL, si las tiene para uso general.

+1

El código GPL no se puede combinar libremente con otros códigos copyleft, como el código de Apache. Si quiere una licencia gratis, mire las licencias MIT o BSD. El código bajo estas licencias se puede usar libremente en cualquier proyecto de software. ¡Esto es bueno! También podría lanzar su código al dominio público, como yo. Preferiría tener software propietario que GPL. Al menos no pretende ser libre y absorbe tanto esfuerzo del verdadero software libre. Si quieres un kernel gratuito, deshazte de Linux y mira * BSD. Linux nunca puede ser software libre, hasta que la GPL se declare ilegal. –

+2

¿Qué hay de esta aparente excepción para JavaScript en las preguntas frecuentes de GPL? http://www.gnu.org/licenses/gpl-faq.html#WMS – BigOmega

+2

Esa excepción solo es válida si el autor la agrega a la licencia. De todos modos, todavía contamina tu otro código de JavaScript. También podría agregar "Como excepción especial, olvídate de la GPL y haz lo que quieras con este código". Lo llamo "dominio público". –