¿Se utiliza algún código JavaScript solo para sitios web de código abierto?

12

Pregunta reescrita:

No estoy haciendo una pregunta relacionada con JavaScript, pero todos los lenguajes "cliente" utilizados en la web (HTML5, JavaScript, CSS, etc.). Si pongo el código JavaScript (que es GPL) en mi sitio web, y cualquier persona en la web puede acceder a este sitio web, ¿estoy violando la GPL de alguna manera?

¿Qué sucede si quisiera vender el código del cliente (HTML, CSS, JavaScript) a alguien? ¿Necesito una licencia diferente en este caso?

¿No es JavaScript (cuando se usa para sitios web) siempre de código abierto? Cuando abre una página web, siempre puede leer la fuente.

¿También necesito liberar mi código del lado del servidor si estoy vendiendo un sitio web que contiene el código GPL de JavaScript?

¿Qué sucede si este sitio web es parcialmente accesible (una parte es gratuita y la otra requiere que pague) pero el código GPL (la misma parte) se usa en ambos lados del sitio web?

¿Qué sucede si el código GPL está solo en una parte del sitio web que requiere que pague para acceder a él?

Si estoy vendiendo un sitio web a un cliente de esta manera:

  1. Te estoy vendiendo (tarifa única) todo el código relacionado con el cliente (JavaScript, HTML y CSS)
  2. Estoy no se vender el código del lado del servidor, que está alquilarlo (no quiero que le permite volver a utilizar mi código del lado del servidor)

Si estoy usando un código GPL de JavaScript, ¿estoy violando algo? (El sitio web es accesible desde cualquier persona en la web).

Edición 2:

Se agregó una nueva pregunta específica:

¿Qué pasa si el sitio web puede funcionar sin código del lado del servidor? Quiero decir, JavaScript solo está llamando a algunas páginas PHP que contienen datos en formato JSON. Otras personas pueden crear un sitio web con el lado del cliente, pero deberán proporcionar datos. En este caso, JavaScript llama al código "PHP" (pero no al contrario), creo. En este caso, ¿estoy violando la GPL?

Dragón de fuego-DoL
fuente
44
La capacidad de "ver" el código no tiene nada que ver con las licencias, por lo que JavaScript no es diferente a otra cosa. Será mejor que consulte a un abogado experto en esta especialidad.
Sparky
Para el javascript en un sitio web, ¿es allí donde está hablando específicamente del código GPL? es decir, ¿el código tiene licencia explícita bajo la GPL?
Philip
Bueno, no estoy vendiendo ningún producto, solo pregunto esto porque no entiendo bien cómo funciona. Le pregunto específicamente si algún idioma relacionado con el cliente no es todo "GPL" (descarga la fuente cada vez que visita una página web)
Fire-Dragon-DoL
En una aplicación no trivial, su código fuente no es solo Javascript, también es su código del lado del servidor. ¿Quieres lanzarlo todo al público? Porque eso es lo que dice la GPL. No dice que puede liberar algunos de ellos y seguir cumpliendo con la licencia.
Robert Harvey

Respuestas:

3

Cuando se trata de GPL, la unidad de lanzamiento es la unidad de licencia.

Si su sitio web y su javascript son una cosa única que funciona en conjunto, entonces el conjunto tiene una licencia efectiva. Si alguna parte es GPL, la licencia efectiva del conjunto es GPL. (Esto no es cierto para LGPL, MIT, etc.)

Si aloja el sitio web y sus clientes compran el acceso al servicio, entonces no ha distribuido ni transmitido el código del lado del servidor, por lo tanto, la GPL es irrelevante. (La AGPL cambia esto y afirma que el Software como servicio debe tener su fuente liberada).

Javascript que forma parte de su aplicación no tiene licencia automática de ninguna manera. Estrictamente hablando, descargar el javascript para ejecutarlo en el navegador es una infracción de derechos de autor. Por supuesto, eso es una tontería. Probablemente haya una licencia implícita para ejecutar el código, pero eso es todo.

Si usa una biblioteca Javascript, debe obedecer la licencia de esa biblioteca. Si esa licencia es GPL, entiendo que eso significa que toda su aplicación es GPL. Esta es probablemente la razón por la cual jQuery tiene una licencia dual: su elección, MIT o GPL. Sin la opción de usar la licencia MIT, solo podría ser utilizada por aplicaciones GPL.

Sean McMillan
fuente
4

Primero: tiene todo el derecho de usar el código de fuente abierta en proyectos comerciales siempre que cumpla con las restricciones de la licencia (esto es principalmente que deja todas las atribuciones en su lugar y que realiza los cambios disponibles bajo una licencia similar).

La GPL es, entiendo, una de las licencias más restrictivas cuando se trata de forzar sus licencias en otras partes de un proyecto. No creo que se haya probado alguna vez en el tribunal, pero en general la interpretación que siempre he visto es que si el código GPL se deja en sus propios módulos separados a los que solo se hace referencia (es decir, se tratan como productos completamente independientes que estás usando), deberías estar bien.

Sin embargo, si no está seguro de esto y / o quiere estar más seguro, hay otras licencias menos prescriptivas.

Segundo: la capacidad de ver el código y los derechos para usarlo están completamente separados . No puedo quitar JavaScript de ningún sitio y usarlo solo porque puedo verlo. Si tengo acceso a la fuente de Windows, incluso legalmente, eso no lo hace mío. La web hace necesario que se vea mucho código, aún puede obtener la licencia que desee.

Tercero: en términos de la licencia bajo la que se encuentra el resto del sitio, es muy poco probable que su cliente esté feliz de pagarle algo y luego hacerlo de código abierto . Además del básico "por qué hemos pagado por algo que acaba de regalar", es probable que tenga consecuencias para el diseño y la marca y permitir que otra persona tome prestados elementos de su identidad corporativa. Si se lo estás vendiendo, querrán que sea suyo . Si va a venderles partes de él, aunque debe decirles que hay OSS allí, ya que no puede vender eso, solo otro código que lo use.

Cuarto: es un modelo muy extraño que vende un bit del código y alquila el otro . Parecen ser tan fuertemente interdependientes que uno no tiene valor sin el otro. Supongo que técnicamente podrían tomar el diseño de front-end que hiciste y parcharlo en otra cosa, pero generalmente cuando eso sucede, la gente simplemente comienza de nuevo.

Dado que las dos partes no son realmente tan útiles sin la otra, propongo que paguen por la personalización de un producto de software como servicio que usted posee. Es decir, usted es el propietario de todo el código, simplemente lo personaliza según sus especificaciones (es decir, el front end a su manera). Lo hace mucho más ordenado y simple.

Jon Hopkins
fuente
Mhhh ahora tengo una duda: cuando creo un sitio web para un cliente, ¿quién es el cliente: la persona a quien le vendo mi sitio web o los usuarios que accederán a él? Si vendo todo el sitio web como un producto GPL (con fuentes) a mi cliente, ¿necesito publicar el código fuente incluso para todas las personas que navegan en ese sitio web?
Fire-Dragon-DoL
@ Fire-Dragon-DoL: su cliente es la persona que paga sus facturas. Si aplica GPL a su código, debe hacerlo público para todos, en todas partes , no solo para sus clientes y / o usuarios (y todos tienen el derecho de reutilizar ese código).
Jon Hopkins
En la última parte (su explicación es realmente inteligente, gracias): Dado que las dos partes no son realmente tan útiles sin las otras : en este caso, si estoy usando el código GPL, ¿aún debería liberar las fuentes? Porque puedo leer tu oración como "Te estoy vendiendo el servicio de personalizar el software, no el software en sí mismo que aún es mío"
Fire-Dragon-DoL
Para responder a su último comentario: No estoy seguro, quiero decir que la GPL dice que debe liberar el código con su software, pero si una persona está navegando en mi sitio web, no le doy mi programa, está usando mi programa. Creo que es diferente. GPL no dice que tenga que lanzar su programa.
Fire-Dragon-DoL
1
@ Jon Solo necesita dar la fuente a las personas que obtuvieron el binario; No a cualquiera que pregunte. (Por supuesto, tienen el derecho de dar a quien quieran, pero no está obligado a hacerlo).
Sean McMillan
3

En términos generales, si está utilizando el código GPL en cualquier parte de su proyecto y redistribuye su proyecto (es decir, lo vende o se lo da a otros), debe divulgar el código fuente de su proyecto al público en su totalidad para cumplir con La licencia GPL.

Si está proporcionando su propio sitio web público como un servicio utilizando el código GPL del lado del servidor, puede estar bien, ya que esto no se considera redistribución.

El código Javascript en el navegador me parece un área gris. Técnicamente, está redistribuyendo el código GPL al navegador de todos, lo que provocaría el requisito de liberar su propia fuente.

Editar: Para probar mi punto, ahora incluiré texto de las Preguntas frecuentes sobre licencias del sitio web de ExtJS. ExtJs es un marco Javascript con licencia bajo la GPL. Esta es su interpretación de cómo funciona la licencia con respecto a su marco (la cursiva es mía):

Trabajos derivados
Cuando un programa de software llama a un código que tiene licencia bajo la GPLv3, ese programa de software se convierte en un trabajo derivado del código de la GPL y, por lo tanto, está sujeto a la licencia de derechos de autor de la GPLv3. Si el programa de software se "transmite" a un usuario, la GPLv3 requiere que el código fuente de ese programa de software también se "transmita". La “transferencia” para una aplicación web se activa cuando un usuario externo a la entidad legal que creó la aplicación la utiliza.

La definición de un programa de
software Para los programas de software creados utilizando las arquitecturas web actuales que utilizan interfaces de servicio remotas basadas en la red para la comunicación interna en lugar de la vinculación estática o dinámica tradicional, el programa de software relevante es la totalidad del código de la aplicación, incluido el código ejecutado en el servidor y código ejecutado en el cliente, siempre que el código del servidor sea parte integral de la aplicación.

Ejemplo
Supongamos que la aplicación tiene un front-end (que genera páginas web vinculadas a Ext JS JavaScript) que se comunica a través de JSON / HTTP con un servicio de back-end. Este servicio de back-end contiene lógica de aprobación y validación solo para esta aplicación. Incluso si solo el front-end usa el código Ext JS, debe considerar que la combinación de front-end y back-end constituye la aplicación, y el código fuente tanto para back-end como para front-end debería proporcionarse a los usuarios finales de la aplicación bajo GPLv3 si la aplicación es utilizada por un usuario final que no forma parte de la misma entidad legal que posee la licencia GPLv3 para el código Ext JS.

Robert Harvey
fuente
2
Esto está mal, la GPL no funciona de esta manera. La inclusión de un enlace a un archivo GPL'd JS en la salida de su código PHP de alguna manera no hace que su código PHP sea de código abierto.
user229044
@meager: ver mi edición.
Robert Harvey
Eso parece completamente incorrecto. ¿Qué sucede si mi back-end se dirige a un sitio de terceros que utiliza archivos GPL'd JS? ¿Entonces tengo que abrir el código fuente de toda mi aplicación? No creo que esto pueda sostenerse en ningún tribunal. Lo siento.
Rob
1

Para un sitio web con javascript del lado del cliente, aún poseen el código. Si simplemente tomara ese código y lo usara como propio, probablemente sería una infracción de IP. Supongo que no sé si no incluyen una licencia. También hay problemas de no exigibilidad. Hable con un abogado, supongo, pero probablemente no le dirán nada útil.

Los proyectos con una combinación de licencias son complicados. El código GPL que interactúa con otras bibliotecas, presumiblemente incluyendo back-end del lado del servidor, también requiere que sean GPL. Otras licencias de código abierto son menos estrictas, como la LGPL y la licencia BSD.

Y no, si no quieres que vuelva a usar tu código php, entonces eso no encaja en el modelo GPL. Si libera su código bajo GPL, entonces está OBLIGADO a entregar el código fuente.

Por lo tanto, parece que está creando un sitio web para alguien y no desea entregar su código a nadie. ¿Por qué estás buscando en código abierto? Si es de código abierto, está regalando el código.

Philip
fuente
No estoy vendiendo nada en este momento, solo pregunto esto porque creo que un sitio web tiene 2 partes diferentes, el sitio web del cliente y el sitio web del servidor. La primera parte es gratis, mientras que la segunda parte no lo es. Si un sitio web es "de código abierto", ¿debería liberar el código fuente del lado del servidor? Me resulta un poco difícil, ¡creará desastres sobre la seguridad!
Fire-Dragon-DoL
2
Esto no esta bien. Si parte de un proyecto es GPL, todo el proyecto debe lanzarse bajo una licencia compatible con GPL (suponiendo que todo se considere el mismo programa y no se pueda dividir en pedazos). Y ser GPL no le impide venderlo, solo significa que debe proporcionar a la fuente cualquier binario y no puede restringir la redistribución adicional.
KeithB
¿Qué pasa si el sitio web puede funcionar sin código del lado del servidor? Quiero decir, JavaScript solo está llamando a algunas páginas php que contienen datos en formato json. Otras personas pueden crear un sitio web con el lado del cliente, pero deberán proporcionar datos. En este caso, javascript llama al código "php" (pero no al contrario), creo. En este caso, ¿estoy violando la GPL?
Fire-Dragon-DoL
@KeithB ACK! Tienes razón. Estaba pensando en GTK y SDL, pero esos son LGPL. Gracias.
Philip
Sí LPGL es una buena licencia, me gustaría entender GPL por cierto porque ... bueno, creo que es más difícil de entender
Fire-Dragon-DoL