GPL 3: ¿Por qué actualizar a la versión 3 de la licencia GPL?
Hoy llegó a la lista de mail de SOLAR un mail de Diego Saravia que retransmite un reciente mail de Richard Stallman en la lista de mail [Info-gplv3] : ‘Why Upgrade to GPLv3 and ‘Last Call’ Draft’.
Es un punto clave en la historia de la informática a nivel mundial. ¿Por qué? Porque en este texto se entiende todo el asunto relativo a la actualización de ‘la madre’ de todas las licencias libres (la utilizada por Linux, GCC, Bash y tantos otros), y la lucha que está dando Free Software Foundation para proteger a los usuarios frente a problemas de patentes y otros asuntos.
Por ejemplo, en este texto se entiende una movida genial por parte de FSF: aprovechar el pacto Microsoft-Novell para extender a toda la comunidad la protección que Microsoft le dio a los usuarios de Novell sobre sus patentes, aprovechando un error que los abogados de la empresa de Bill Gates han cometido.
Cuando vi el el comienzo casi definitivo del texto de la nueva versión de la licencia GPL, una emoción recorrió mi pecho, y hasta casi ‘se me pianta un lagrimón’:
Copyright (C) 2007 Free Software Foundation, Inc. (http://fsf.org)
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Tengo desparramado por todo el sistema operativo GNU/Linux que manejo día a día el texto de la GPL2 en miles de archivos y programas, fechada en Junio de 1991… entonces ver ese ‘2007’ en el boceto casi definitivo de la nueva licencia me transmitió un mensaje al siguiente estilo: ‘los hackers están luchando hoy, más que nunca, para que la cultura pueda ser libre’.
Por ejemplo, siempre que en Musix escribimos un programa, por más mínimo que sea, incluimos este texto al menos: ‘under GNU GPL V2 or later’… no sólo es un resguardo legal y una garantía de que ese programa continuará siendo libre, sino que es una especie de canto de lucha hacker por la libertad informática.
Siendo que llegué hace muy poco al mundo del software libre, no quiero imaginar lo que sentirán programadores experimentados que están liberando código desde hace más de una década.
En el extenso texto ‘Why Upgrade to GPL Version 3’, Richard Stallman no deja nada en el tintero, veamos sólo algunos párrafos esclarecedores (traducción no literal, con algunos agregados, comentarios y pequeñas remociones).
Richard comienza explicando que la versión 3 de la la Licencia Pública General de GNU será prontamente finalizada, habilitando a los paquetes de software libre a ser actualizados desde la versión 2 de la GPL. Este artículo explica por qué actualizar esta licencia es importante.
Primero de todo, es importante notar que actualizar es una opción. La GPL versión 2 seguirá siendo una licencia válida, y no sucederá ningún desastre si algunos programas quedan bajo la GPL v2 mientras otros avanzan a la GPL v3. Estas dos licencias son incompatibles, pero ese no es un serio problema.
Cuando decimos que GPLv2 y GPLv3 son incompatibles, esto significa que no hay una manera legal de combinar código bajo GPLv2 con código bajo GPLv3 en un sólo programa. Esto es porque ambas GPLv2 y GPLv3 son licencias copyleft: ambas dicen ‘Si tú incluyes código bajo esta licencia en un programa más grande, ese programa más grande debe estar licenciado bajo esta licencia también’. No hay modo de hacerlas compatibles. Podríamos agregar una cláusula de compatibilidad a la GPLv3, pero eso no cumpliría bien el trabajo, porque GPLv2 necesitaría una cláusula similar.
Afortunadamente, la incompatibilidad en la licencia sólo importa cuando tú quieres enlazar, mezclar o combinar código de dos programas diferentes dentro de uno sólo. No hay problemas en tener programas cubiertos por GPLv3 y GPLv2 uno al lado del otro dentro de un sistema operativo. Por ejemplo, la licencia TeX y la licencia Apache son incompatibles con la GPLv2, pero eso no nos detiene a la hora de correr TeX y Apache en el mismo sistema con Linux, Bash y GCC. Esto es porque son todos programas separados. Igualmente, si Bash y GCC se mueven a la GPLv3, mientras Linux continúa bajo GPLv2, no hay conflicto.
Mantener un programa bajo GPLv2 no creará problemas. La razón para migrar tiene que ver con los problemas existentes que ataca la GPLv3.
Un problema fundamental que la GPLv3 bloqueará es la llamada ‘tivoization’: esto sucede cuando se crea un sistema que incorpora software bajo los términos de una licencia libre (copyleft), pero utiliza hardware para prevenir que los usuarios corran versiones modificadas del software en ese equipamiento. (http://en.wikipedia.org/wiki/Tivoization)
Entonces el software bajo esta ‘tivoización’ no puede ser modificado, por más que sea software libre, porque si el mecanismo de hardware detecta una modificación, el hardware se apaga.
Tener libertad sobre el software significa que tú (se remarca el ‘tú’) controlas lo que el software hace, no tendrías que rogar o hacer tratos con alguien más que decide por ti.
Luego el texto de Stallman habla de los ‘Digital Restrictions Management’ (DRM), de la ‘Digital Millenuium Copyright Act’ y leyes similares. Es ilegal en los EEUU y en muchos otros países vender reproductores de DVD al menos que estos restrinjan al usuario de acuerdo a las reglas oficiales de la conspiración DVD (http://www.dvdcca.org/). Entonces el público no puede rechazar los DRM comprando reproductores NO-DRM, porque no están disponibles. No importa cuántos dispositivos escojamos, todos ellos tienen esposas equivalentes.
La GPLv3 asegura que tú eres libre de remover esas esposas. No prohíbe los DRM, o cualquier tipo de característica. No pone límites en cuanto a la funcionalidad que puedes agregar o remover a un programa. En cambio, asegura que tú eres tan libre de remover características sucias tanto como pudo el distribuidor de tu copia adherirlas. La tivoización es la forma en que ellos te niegan la libertad: para proteger tu libertad, GPLv3 prohíbe la tivoización.
GPLv3 sólo tolera la tivoización para productos que están casi exclusivamente destinados a negocios y organizaciones (el último boceto deja este criterio bien en claro).
Otro punto importante de la GPLv3 es la resistencia a los pactos como el de Novell-Microsoft. Microsoft quiere utilizar sus miles de patentes registradas para hacer pagar a los usuarios de GNU/Linux, e hizo este trato para llegar allí. El trato ofrece a los clientes de Novell una protección realmente limitada frente a las patentes de Microsoft.
Microsoft cometió algunos pocos errores en este trato con Novell, y la GPLv3 fue diseñada para tomar estos errores y volverlos contra ellos, extendiendo esa limitada protección de patentes al resto de la comunidad. Para tomar ventaja de esto, los programas necesitan usar la GPLv3.
Los abogados de Microsoft no son estúpidos, y la próxima vez pueden llegar a evitar estos errores. Por eso GPLv3 dice que ellos no llegarán a esa próxima vez. Liberar un programa bajo GPLv3 lo protege de los futuros intentos de Microsoft para hacer que los redistribuidores recolecten royalties de Microsoft por parte de los usuarios de los programas.
Más adelante, Stallman explica que la GPLv3 no puede hacer todo lo que se quisiera en materia de protección contra las licencias de software y que el único camino para desarrollar software libre de un modo seguro sería abolir las patentes de software, un objetivo que FSF y otros pretenden alcanzar algún día, pero que no puede alcanzarse mediante una licencia de software.
Más información:
http://gplv3.fsf.org
Por Marcos Guglielmetti, el 31/05/2007.