GPL: Entrega del código fuente

GPL, código fuente
Oct10Todos sabemos que la GPL te obliga a entregar el código fuente, si quieres saber como hacerlo respetando las condiciones de la licencia esta es el post que estabas buscando.

Por :NO{legaltech}
// Son 915 palabras. Esto se lee en, nah, 4 minutos, 34 segundos.

Después de abordar la licencia, de manera sencilla, y el trabajo agregado como forma de escaquearse de ella, seguimos en esta ocasión con una de las principales preocupaciones de los profesionales que utilizan software licenciado con GPL. Da igual la versión de que se trate, es la obligación de entregar el código fuente y en muchas ocasiones nos preguntan: ¿ de verdad si alguien me lo pide se lo tengo que entregar?, ¿no existe alguna forma de evitar esto?...La respuesta corta es "no, tienes que entregarlo", pero si quieres saber la respuesta larga sigue leyendo este post.

¿Qué dice la GPL sobre el código fuente?
La GPL, en este caso la versión 3, define el código fuente de la siguiente manera: The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work.

De esta definición se deduce que código fuente es la forma preferida o adecuada para poder hacer modificaciones en el programa y en contraposición, todo lo que no sea código fuennte es código objeto.

¿Qué tengo que hacer para cumplir con esta obligación?

¡Si es que está todo en el texto de la licencia! Se plantean en la GPLv3 tres posibles situaciones: la mera distribución del programa sin haber modificado el código fuente (sección 4 de la licencia), la distribución de versiones modificadas del programa entregando el código fuente (sección 5 de la licencia) y la distribución del programa a través únicamente del ejecutable (sección 6 de la licencia).

Las condiciones de estas secciones son acumulativas. ¿Esto que significa? Que si optas por la de la sección 5 tienes que cumplir las propias de la 5 y las de la 4; si optas por las de la 6 tienes que cumplir, en la medida en que sea aplicable, las de la 4 y la 5 y las propias de la 6.

Las destripamos para que puedas entenderlas mejor:

Distribución de versiones no modificadas del programa (sección 4)

Es la situación más sencilla, para cumplir simplemente tienes que:

  • transmitir exactamente lo que has recibido, sin cambiar una coma al programa ni a los avisos de copyright y disclaimer y
  • entregar una copia de la licencia junto con el programa.

Distribución de versiones modificadas del código fuente programa (sección 5)

Además de las condiciones de la sección 4 por ese efecto acumulativo, tendrás que:

  • Incluir un aviso para que los siguientes receptores del programa sepan que has sido tú quien ha creado ese trabajo basado en el programa o quien ha introducido esos cambios en el código fuente. En ese aviso te tienes que identificar y decir la fecha en la que se pueda considerar que se han producido los cambios.
  • Tienes que licenciar tu versión del programa con la misma licencia GPL.
  • Si has incluido alguna condición extra de las permitidas en la sección 7 de la licencia tienes que advertirlo.
  • Si la interfaz de usuario muestra los avisos legales entre ellos se tiene que mostrar la información relativa a la licencia GPL.

Distribución de versiones modificadas del programa mediante entrega del ejecutable o código objeto (sección 6)

Además de las condiciones de las secciones 4 y 5 tienes que proporcionar el código fuente de alguna de las siguientes maneras:

  • Si el ejecutable lo entregas en soporte físico (ej cd-rom, dvd, usb...), en ese mismo soporte tiene también que ir el código fuente.
  • Si el ejecutable lo entregas en soporte físico (ej cd-rom, dvd, usb...), tienes que acompañar a ese soporte de una oferta por escrito válida durante al menos 3 años y en todo caso durante todo el periodo de tiempo que ofrezcas soporte de que si te lo solicitan le entregarás una copia del código fuente en ese mismo tipo de soporte o le darás acceso a un servidor para que se lo puedan descargar de forma gratuita.
  • Si el código objeto se puede obtener desde un lugar concreto (descargarlo de forma gratuita o de pago) dar la posibilidad de descargar el código fuente de la misma manera y del mismo sitio sin coste adicional. El servidor no tiene que ser tuyo, pero sí que estás obligado a garantizar la accesibilidad al código fuente.
  • Si transmites el código objeto a través de P2P, el código fuente tiene que ser igualmente accesible a través de P2P, dando la información necesaria para que el usuario pueda descargarlo y además de forma gratuita.

Conclusión

Si distribuyes un programa licenciado con GPL tienes que dar el código fuente de manera directa o bien facilitar el acceso y descarga del mismo a los usuarios del programa.

Es importante destacar que estás obligado a ello solamente si distribuyes el programa, si no haces esto nadie puede obligarte a que entregues el código fuente de tu programa.

Ej: obtengo un programa que tiene una funcionalidad que me soluciona muchos problemas dentro de mi empresa, lo adapto, lo modifico para que sea todavía más eficiente a mis necesidades y lo uso internamente sin distribuirlo, nadie puede obligarme a distribuir una copia de mi programa. Eso sí, en cuanto lo distribuya me veo vinculado por los términos de la GPL y tengo que dar el código fuente.

Estas son las reglas del juego… y te esperamos la próxima semana para enseñarte los puntos extra que te ayudarán a licenciar mejor tu software ;) Stay tuned!

 

Si quieres una copia de la GPL v3 pincha aquí

 

Fotografía: Photo by Danial RiCaRoS on Unsplash


Publicado el 10 de octubre de 2018