¿Por qué actualizar a la GPLv3? por Richard Stallman La versión 3 de la Licencia Pública General de GNU [https://www.gnu.org/licenses/gpl.html] (GNU GPL) ha sido publicada, permitiendo que los paquetes de software libre se actualicen desde la versión 2 de la GPL. Este artículo explica por qué actualizar la licencia es importante. Antes de nada es importante indicar que la actualización es opcional. La versión 2 de la GPL continuará siendo una licencia válida, y no ocurrirá ningún desastre si algunos programas continúan bajo la GPLv2 mientras otros progresan a la GPLv3. Estas dos licencias son incompatibles, pero ese no es un problema fundamental. Cuando decimos que la GPLv2 y la GPLv3 son incompatibles, queremos decir que no hay forma legal de combinar código bajo la GPLv2 con código bajo la GPLv3 en un mismo programa. Esto se debe a que ambas, GPLv2 y GPLv3 son licencias copyleft; en ambas se dice: "si se incluye código bajo esta licencia en un programa mayor, ese programa mayor también debe estar bajo esta licencia". No hay forma de hacerlas compatibles. Podríamos añadir a la GPLv3 una cláusula de compatibilidad con GPLv2, pero no funcionaría, porque la GPLv2 también necesitaría una cláusula similar. Afortunadamente, la incompatibilidad de licencias sólo importa cuando se quiere vincular, unir o combinar código de dos programas distintos en uno solo. No hay problema si tenemos unos programas bajo la GPLv3 y otros bajo la GPLv2 juntos en un mismo sistema operativo. Por ejemplo, la licencia TeX y la licencia Apache son incompatibles con la GPLv2, pero eso no nos impide ejecutar TeX y Apache en el mismo sistema con Linux, Bash y GCC. Esto es porque son programas separados. Del mismo modo, si Bash y GCC se pasan a la GPLv3, mientras Linux permanece bajo la GPLv2, no habrá conflicto. Mantener un programa bajo la GPLv2 no causará problemas. La razón para cambiarse es debido a problemas existentes que la GPLv3 podrá abordar. Un peligro grave que la GPLv3 bloqueará es el de la tivoización. Tivoización se refiere a ciertos "aparatos" (que llevan computadoras dentro) que contienen software cubierto por la GPL, pero que de hecho no se pueden modificar, porque el aparato se apaga si detecta software modificado. El motivo habitual para la tivoización es que el software tiene características que el fabricante sabe que la gente querrá modificar, y su objetivo es impedírselo. Los fabricantes de estas computadoras sacan ventaja de la libertad que proporciona el software libre, pero no permiten que los demás hagan lo mismo. Algunos argumentan que la competencia entre aparatos en un mercado libre debería ser suficiente para mantener a raya estas características indeseables. Quizás la competencia por sí sola evitaría características negativas arbitrarias y desatinadas como "debe apagarse entre las 13:00 y las 17:00 cada martes"; pero aún así, lo que elijan los amos no es la libertad. Libertad significa que tú controlas lo que hace tu software, no que puedas suplicar o amenazar a alguien que decide por ti. En el área crucial de la DRM (Gestión digital de restricciones) —características indeseables diseñadas para restringir el uso de datos en tu computadora— la competencia no ayuda, porque la competencia efectiva está prohibida. La Digital Millenium Copyright Act, y otras leyes similares, declaran ilegal, en los EEUU y muchos otros países, la distribución de reproductores de DVD que no pongan restricciones al usuario según las normas oficiales de la conspiración del DVD (su página web es http://www.dvdcca.org/, pero parece que estas normas no están publicadas aquí). El público no puede rechazar la DRM comprando reproductores que no la suscriban, porque en la práctica no existen. No importa entre cuántos productos se pueda elegir, todos ellos incorporan trabas digitales equivalentes. La GPLv3 asegura la libertad para eliminar estas trabas. No es que prohíba la DRM, o cualquier otra característica. No pone límites a la funcionalidad sustantiva que pueda añadirse a un programa, o restársele. Lo que hace es asegurar que tú tengas la misma libertad para eliminar características indeseables que el distribuidor de tu copia tuvo para añadírselas. La tivoización es la forma en que te niegan esa libertad; para protegerla, la GPLv3 prohíbe la tivoización. La proscripción de la tivoización se aplica a cualquier producto que se espera que sea usado por consumidores, aunque sea ocasionalmente. La GPLv3 tolera la tivoización sólo en productos que sean destinados casi exclusivamente a negocios y organizaciones. Otra amenaza a la que se opone la GPLv3 es la de los acuerdos de patentes como puede ser el pacto Novell-Microsoft. Microsoft quiere usar sus miles de patentes para hacer que los usuarios les paguen por el privilegio de ejecutar GNU/Linux, y llegaron a este pacto para intentar conseguirlo. El pacto ofrece a los clientes de Novell una protección bastante limitada contra las patentes de Microsoft. Microsoft cometió unos cuantos errores en el pacto Novell-Microsoft, y la GPLv3 está diseñada para usarlos contra Microsoft, extendiendo esa protección limitada contra patentes a toda la comunidad. Para sacar partido de esa protección, los programas necesitan usar la GPLv3. Los abogados de Microsoft no son estúpidos, y la próxima vez podrían arreglárselas para evitar esos errores. Por tanto, la GPLv3 dice que no tendrán una "próxima vez". Publicar un programa bajo la GPL versión 3 lo protege de futuros intentos de Microsoft para hacer que los redistribuidores recauden regalías para Microsoft a los usuarios del programa. La GPLv3 también proporciona a los usuarios protección explícita contra patentes de los contribuidores y redistribuidores del programa. Con la GPLv2, los usuarios confiaban en una licencia implícita de patente para asegurar que la compañía que les proporcionó la copia no los demandaría a ellos, o a quienes ellos les hubiesen redistribuido copias, por infracción de patente. La licencia explícita de patente de la GPLv3 no llega tan lejos como hubiésemos querido. Lo ideal sería hacer que todo el que redistribuya código cubierto por la GPL abandonase toda patente de software, junto con todos los que no redistribuyan código cubierto por la GPL, porque no debería haber patentes de software. Las patentes de software son un sistema perverso y absurdo que pone a todos los desarrolladores de software en peligro de ser demandados por compañías de las que jamás han oído hablar, o por cualquiera de las megacorporaciones del ramo. Los grandes programas combinan normalmente miles de ideas, de forma que no es ninguna sorpresa que implementen ideas que se encuentren bajo cientos de patentes. Las megacorporaciones acumulan miles de patentes, y las usan para abusar de los pequeños desarrolladores. Las patentes están efectivamente obstruyendo el libre desarrollo de software. La única forma de que el desarrollo de software sea seguro es abolir las patentes de software, y nuestra meta es lograr esto algún día. Pero no podemos hacerlo mediante una licencia de software. Cualquier programa, libre o no, puede ser destrozado por una patente de software en manos de terceros, y la licencia del programa no puede evitarlo. Solamente decisiones judiciales o cambios en la ley de patentes pueden proteger al desarrollo de software de las patentes. Si intentásemos hacer esto con la GPLv3, no funcionaría. Así pues, la GPLv3 busca limitar y encauzar el peligro. En particular, hemos intentado proteger al software libre de un destino peor que la muerte: que se convierta efectivamente en privativo, mediante patentes. La licencia explícita de patente de la GPLv3 asegura que las compañías que usan la GPL para darles a los usuarios las cuatro libertades no puedan revolverse y usar sus patentes para decirles a algunos usuarios: "Eso no te incluye". También impide que se confabulen con otros propietarios de patentes para hacer esto. Otras ventajas de la GPLv3 incluyen: mejor internacionalización, rescisión más cordial, soporte de BitTorrent y compatibilidad con la licencia Apache. Considerándolo todo, sobran razones para actualizarse. No se espera que los cambios terminen una vez publicada la GPLv3. Si aparecen nuevas amenazas a los usuarios, tendremos que desarrollar una GPL versión 4. Es importante asegurarse de que los programas no tendrán problema para actualizarse a una GPLv4 cuando la redactemos, si es que llega a suceder. Una forma de hacerlo es publicar los programas bajo "GPL versión 3 o versiones subsiguientes". Otra manera es que todos los contribuidores de un programa determinen un apoderado que pueda decidir la actualización a versiones futuras de la GPL. La tercera forma es que todos los contribuidores asignen un copyright a un tenedor de copyright designado, que estará en posición de actualizar la versión de la licencia. De una forma u otra, los programas deben facilitar esta flexibilidad para futuras versiones de la GPL.