Viernes, 9 de diciembre de 2016Actualizado a las 14:05

Autor Imagen

Anatomía de la Licencia Gubernamental de Software

por 6 septiembre 2010

Esta semana recién pasada se anunció un esfuerzo emanado de la Secretaría de Desarrollo Digital para generar un mecanismo más eficiente de licenciamiento de software por parte del gobierno. La cara visible de esta iniciativa es un borrador de la Licencia Gubernamental de Software (LGS), cuya motivación y estructura fueron explicadas en una serie de talleres a la que se invitó a distintos actores relacionados con el tema digital en Chile. Aunque no estuve presente en los talleres, la licencia está disponible en la red [PDF], lo que permite hacer una anatomía preliminar de la LGS. Y este ejercicio revela que, como era de esperarse, crear una nueva licencia de software como esta no es cosa fácil, y en este caso, huele a desastre.

Antes de partir, tenemos que entender que una licencia de software existe como un instrumento legal que permite usar y distribuir software. Aunque es posible usarla sin entender los objetivos que la inspiran, es útil (sobre todo en este caso) tenerlos en mente. Varios de los que estuvieron presentes en los talleres me contaron que en el caso de la LGS estos objetivos incluyen ayudar a paliar problemas tales como la falta de consenso en la forma de licenciar software en el Estado, la imposibilidad de exportar soluciones producidas dentro del mismo, falta de protección de derechos de autor, y la frecuente imposición de restricciones por parte de entidades que producen software para el estado.

La LGS se llamaba originalmente GPL-CL, y aunque el cambio de nombre es bienvenido (espero que esto esté claro después de leer este artículo), el nombre original revela inmediatamente la licencia de software libre en la cuál la LGS esta basada. Pero la LGS es una derivada de la GPL que ha sido transformada significativamente al agregar, quitar o modificar secciones completas del original. Y estas transformaciones tienen consecuencias inesperadas, quizás incluso para sus autores.

La GPLv3 tiene un preámbulo, una sección de definiciones (o sección 0) y 17 secciones que fijan las reglas para distintos aspectos del uso y distribución de software. Tomadas como un todo, la licencia tiene como objetivo defender las cuatro libertades definidas por Richard Stallman. La LGS, como ya dije, comparte mucho del texto de una traducción al español de la GPLv3, pero tiene diferencias importantes:

GPLv3 Objetivo ¿Está en la LGS?
Preámbulo Principios de la GPL No
0 Definiciones Si, modificada
1 Definición de Código Fuente, código objeto, fuente correspondiente, bibliotecas de sistema. No (!!!)
2 Permisos Básicos Solo primer párrafo.
3 Protección para evadir sistemas DRM. No
4 Regula transmisión de copias exactas Si, pero agrega requisito de enviar sugerencias a www.softwarepublico.cl si se encuentran problemas.
5 Transmisión de versiones modificadas del código fuente. Si, con modificaciones, siendo la principal enviar copias de modificaciones a www.softwarepublico.cl.
6 Transmisión de códigos que no son códigos fuente. No
7 Términos adicionales. Restringe la habilidad de agregar condiciones onerosas a la GPL. Si, pero limitada y no lista que condiciones son aceptables de agregar.
8 Cancelación: establece condiciones en que se viola la licencia. Si, pero limitada y modificada.
9 Aceptación innecesaria para la posesión de copias. Si, textual.
10 Traspaso automático de licencia a destinatarios subsiguientes Si, textual.
11 Patentes No
12 Protección de la libertad de terceros. Contratos u otras obligaciones no eximen cumplir con la licencia. Si, textual.
13 Uso conjunto con la Licencia Pública General Affero de GNU. No
14 Revisiones de esta Licencia. No
15 Ausencia de garantías. Si, textual.
16 Limitación de la responsabilidad. Si, textual
17 Interpretación de las secciones 15 y 16. Si, textual (pero no como sección independiente)

Sin duda, tantas diferencias dan para mucha discusión, pero quiero por ahora enfocarme en tres puntos que me parecen esenciales y que ilustran que esta licencia tiene más probabilidad de generar más problemas que soluciones para el Estado chileno:

  1. La LGS crea un ecosistema semi-cerrado de desarrollo de software: aunque está basada en una licencia de software libre, me parece indudable que la LGS es una licencia totalmente incompatible con la GPLv3 y otras licencias (no las más permisivas) similares. Mientras los autores de la GPLv3 hicieron un esfuerzo por aumentar la compatibilidad con otras licencias, la LGS va en dirección contraria. Entre otras cosas, esto implica que autores de software no podrán tomar código GPL de programas existentes y mezclarlos con código LGS. Es por esto que el cambio de nombre no solo es bienvenido, sino inevitable.
  2. La LGS no permite la distribución de código objeto (es decir, ejecutables): La equivalente de la sección 8 impide la propagación (es decir, distribución) de software LGS en cualquier forma que no esté explícitamente autorizada por la licencia. Ahora bien, la LGS solo regula y autoriza la transmisión de código fuente, y no tiene una sección 6 (de la GPLv3) que regula la propagación de código objeto (es decir, programas compilados o binarios). Es decir, la LGS esta entonces prohibiendo la transmisión de este. En la práctica, esto significa que no será posible para usuarios de la LGS publicar programas ejecutables, si no que cada recipiente deberá bajar el código fuente y compilar sus propios binarios en su computador para poder usarlo. ¿Un buen sistema para “exportar soluciones producidas en el Estado”?.
  3. El requerimiento de uso de un repositorio es oneroso y poco práctico: Este punto es más de opinión que otra cosa, pero me parece que la obligación de enviar a un repositorio central reportes de problemas y versiones modificadas de código fuente es tremendamente oneroso para cualquier usuario del software (pero ver punto 2), y probablemente creará una pesadilla de mantención del repositorio central. Es participación forzada en el desarrollo del software.

Es entendible el por qué, partiendo de los objetivos de ordenar el gallinero que es la producción de software en el Estado Chileno, uno querría desarrollar una herramienta perfectamente ajustada a la realidad Chilena. Sin embargo, en el camino de desarrollarla sus autores parecen olvidar la naturaleza interconectada del desarrollo de software, y la facilidad con que el ignorar el contexto y los precedentes históricos (la proliferación de licencias es, después de todo, tema antiguo y muy analizado por verdaderos expertos en tecnología)  en que se lleva a cabo este proceso pueden llevar a un desastre de proporciones.

Aunque no descarto que sea posible cambiar la licencia de modo de solucionar los problemas enumerados acá (aunque no son los únicos),  me parece que la creación de una licencia exclusiva para la producción de software en Chile es una pésima idea, que sin solucionar los que el Estado ya tiene creará una serie de problemas nuevos. Es de esperar que los autores del borrador de la LGS consideren éstas y otras críticas y decidan simplificar significativamente el proceso de licenciamiento mediante la adopción de una licencia existente (la GPLv3 es una excelente candidata) que conserve el espíritu de colaboración y libre intercambio de información que sin duda los inspiró a escribir la LGS.

Ver el posteo original

Compartir Noticia

Más información sobre El Mostrador

Videos

Más Noticias

Blogs y Opinión

Encuesta

Mercados

TV

Cultura + Ciudad

Deportes