¿El código fuente publicado bajo GPL debe ser legible por humanos?


Respuestas:


37

La GPL requiere que sea la versión preferida para editar. Si normalmente escribe código ofuscado y realiza cambios directamente en él, entonces esa es la fuente de GPL. Si trabaja en una versión legible y luego la ejecuta a través de cualquier tipo de ofuscador, la versión legible es lo que la GPL considera la fuente.

La "legibilidad" es subjetiva y no está definida. Es legal publicar código realmente malo y difícil de entender bajo la GPL. No es legal tomar la versión en la que realiza cambios, eliminar el espacio en blanco o hacer que sea menos legible, y llamar a eso la fuente bajo la GPL.


1
Muy interesante, gracias. ¿Hay una parte particular de la licencia que indique esto?
Armand

12
GPLv2, Términos y condiciones, de la cláusula 3: "El código fuente de una obra significa la forma preferida de la obra para modificarla".
David Thornley

44
Esta restricción se aplica solo a los licenciatarios. Para su propio código (sin código GPL externo), puede ofuscar tanto como desee y aún ponerle la etiqueta GPL (para otorgar los derechos a otros). nVidia hizo esto con el código del conductor en el día (1998 más o menos)
Patrick Georgi

2
Dicho esto, no tiene sentido "pegar una calcomanía GPL" en un trabajo donde no se proporciona código fuente utilizable, como en el ejemplo de nVidia. Es posible que también haya usado una licencia de propiedad. Claramente, nVidia quería ser visto como compartiendo su código sin compartirlo realmente.
thomasrutter

1
Solo por curiosidad. ¿Qué sucede si trabaja en un editor propietario que guarda la fuente en forma cifrada? Teóricamente tiene el código en la forma en que trabaja con él, sin embargo, nadie más podría trabajar con él porque es una herramienta patentada a la que nadie tiene acceso.
Aidiakapi

6

Tomando la GPL v3, en la sección 1 tienes:

La "Fuente correspondiente" para un trabajo en forma de código de objeto significa todo el código fuente necesario para generar, instalar y (para un trabajo ejecutable) ejecutar el código de objeto y modificar el trabajo, incluidas las secuencias de comandos para controlar esas actividades.

Si se eliminan los comentarios y el espacio en blanco, y se cambian los nombres de las funciones y variables, no podrá modificar razonablemente el trabajo.

Adicionalmente:

La fuente correspondiente para un trabajo en forma de código fuente es ese mismo trabajo.

Ese mismo trabajo, no un trabajo alterado.

Entonces, para aclarar mi punto anterior, el código fuente no debe modificarse, supongo que la escritura humana == legible por humanos. Pero sí, podría escribir directamente en lo que podría considerarse no legible por humanos.


4

La pregunta no incluye alguna información crítica. Si usted es el único autor, puede liberar su propio código bajo la licencia que desee (incluida la GPL) sin necesariamente seguir todas sus reglas. Por lo tanto, puede enviar el código de una forma que no sea preferible para editarlo y no violar ninguna ley de derechos de autor. Es cuestionable si otros podrían extender su código en el espíritu de estar bajo una licencia de Software Libre, por lo que pocos podrían intentarlo.

Sin embargo, la mayoría de las veces no serás el único autor de una obra. Aprovechará el código existente, creando un trabajo derivado. Tal trabajo debe seguir las reglas combinadas de su linaje o no tendrá permiso para distribuirlo sin violar los derechos de autor.

Para aclarar esto, aquí hay algunos ejemplos (IANAL):

  • Si usa una biblioteca GPL en su código, no se le permitirá enviar su propio código fuente solo en forma ofuscada a menos que (como escribe David Thornley) esa sea realmente la forma en que lo escribe y edita.
  • Si usa una biblioteca LGPL en su código, se le permitirá enviar su propio código fuente solo en forma ofuscada. Esto se debe a que LGPL solo requiere que pueda usar el trabajo que usa la biblioteca con una versión más reciente de la biblioteca.
  • Si extiende una biblioteca LGPL, esto sería como el caso GPL, y tendría que enviar código no ofuscado (de nuevo, a menos que así sea como lo edite realmente).

1
debe seguir todas las reglas de una licencia, independientemente de quién sea el propietario de los derechos de autor. Si decide que desea utilizar su biblioteca JS en su propio sitio web y también la publica bajo la GPL, puede hacerlo por separado. Esta pregunta no se trata de LGPL, aunque si se aplican restricciones similares a LGPL ya que GPL se refiere a la legibilidad del código, sería útil mencionarlo aquí.
Armand

@Alison: las condiciones de la licencia se aplican al que usa (y redistribuye, en este caso) las obras, no al que originalmente lo creó y le otorgó la licencia.
Paŭlo Ebermann

1
@Alison no estuvo de acuerdo. Si usted es el único propietario del trabajo, puede volver a otorgar la licencia a voluntad. Por lo tanto, puede distribuirlo bajo los términos de (licencia mágica no especificada aquí) y permitir que otros lo redistribuyan bajo los términos de la GPL: la GPL solo agrega derechos para permitir que otros redistribuyan trabajos derivados de los suyos. Por supuesto, este no es un escenario probable, ya que si no creyeras en la GPL y fuera el único propietario, no lo usarías.
Michael Urman

No tiene que enviar su propio código fuente que usa una biblioteca LGPL, siempre que el idioma permita binarios. Debe enviar lo que permitiría a un usuario cambiar la parte LGPLed y reconstruir la aplicación (aunque GPLv2 le permite evitar que el usuario instale la versión modificada). Si envía la fuente, ya sea por necesidad o por conveniencia, puede ofuscarse.
David Thornley

Buen punto. Editaré mi publicación para que ya no diga que la LGPL no impone requisitos en el trabajo que la usa.
Michael Urman
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.