Archive for Septiembre, 2010

Anatom?a de la Licencia Gubernamental de Software

S?bado 04 de 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:

GPLv3Objetivo?Est? en la LGS?
Pre?mbuloPrincipios de la GPLNo
0DefinicionesSi, modificada
1Definici?n de C?digo Fuente, c?digo objeto, fuente correspondiente, bibliotecas de sistema.No (!!!)
2Permisos B?sicosSolo primer p?rrafo.
3Protecci?n para evadir sistemas DRM.No
4Regula transmisi?n de copias exactasSi, pero agrega requisito de enviar sugerencias a www.softwarepublico.cl si se encuentran problemas.
5Transmisi?n de versiones modificadas del c?digo fuente.Si, con modificaciones, siendo la principal enviar copias de modificaciones a www.softwarepublico.cl.
6Transmisi?n de c?digos que no son c?digos fuente.No
7T?rminos adicionales. Restringe la habilidad de agregar condiciones onerosas a la GPL. Si, pero limitada y no lista que condiciones son aceptables de agregar.
8Cancelaci?n: establece condiciones en que se viola la licencia. Si, pero limitada y modificada.
9Aceptaci?n innecesaria para la posesi?n de copias.Si, textual.
10Traspaso autom?tico de licencia a destinatarios subsiguientesSi, textual.
11PatentesNo
12Protecci?n de la libertad de terceros. Contratos u otras obligaciones no eximen cumplir con la licencia.Si, textual.
13Uso conjunto con la Licencia P?blica General Affero de GNU.No
14Revisiones de esta Licencia.No
15Ausencia de garant?as.Si, textual.
16Limitaci?n de la responsabilidad.Si, textual
17Interpretaci?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.

Los contenidos de este blog est?n publicados bajo una licencia Creative Commons Atribuci?n-Compartir-Igual. (c) 2005-2012 El Diablo en los Detalles | Usando WordPress y una versi?n modificada de Barecity.