GNU General Public
License
La Licencia Pública General de GNU o
más conocida por su nombre en inglés GNU General Public License (o
simplemente sus siglas del inglés GNU GPL) es la licencia más
ampliamente usada 1 en el mundo del software y
garantiza a los usuarios finales (personas, organizaciones, compañías) la
libertad de usar, estudiar, compartir (copiar) y modificar el software. Su
propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos
de apropiación que restrinjan esas libertades a los usuarios. Esta licencia fue
creada originalmente por Richard Stallman fundador de la Free Software
Foundation (FSF) para el proyecto GNU (GNU project).
La licencia GPL puede ser usada por cualquiera, su
finalidad es proteger los derechos de los usuarios finales (usar, compartir,
estudiar, modificar). Esta es la primera licencia copyleft para uso general.
Copyleft significa que los trabajos derivados sólo pueden ser distribuidos bajo
los términos de la misma licencia. Bajo esta filosofía, la licencia GPL
garantiza a los destinatarios de un programa de ordenador los
derechos-libertades reunidos en definición de software libre (free
software definition) y usa copyleft para asegurar que el software
está protegido cada vez que el trabajo es distribuido, modificado ó ampliado.
En la forma de distribución (sólo pueden ser distribuidos bajo los términos de
la misma licencia) se diferencian las licencias GPL de las licencias de
software libre permisivas (permissive free software licenses), de las
cuales los ejemplos más conocidos son las licencias BSD (BSD licenses).
El software bajo licencia GPL puede ser aplicado bajo
todos los propósitos (incluidos los propósitos comerciales e incluso como
herramienta de creación de software propietario (proprietary
software)). En uso puramente privativo (ó interno) - sin ventas ni
distribuciones implicadas - el software puede ser modificado sin liberar el
código fuente (por contra, si hay implicadas ventas o distribuciones, el código
fuente y cualquier cambio realizado en él debe estar disponible para los
usuarios, ya que en este caso los derechos del usuario están protegidos por
copyleft). De esta forma, las aplicaciones instaladas en sistemas operativos
bajo licencia GPL como Linux, no es necesario que
estén licenciadas bajo GPL ó que estén distribuidas con su código fuente
disponible ya que las licencias no dependen de la plataforma. Por ejemplo, si
un programa está formado completamente por código original, ó si está combinado
con software que no se cumple los requisitos de copyleft no es necesario que se
licencie bajo GPL ó que se distribuya con su código fuente disponible. Sólo si
un programa utiliza fragmentos de código GPL (y el programa es distribuido) el
código fuente en su totalidad debe estar disponible (bajo la misma licencia).
La licencia LGPL (GNU Lesser General Public license) fue creada
para tener derechos menos restrictivos que GPL, en este caso en un programa que
utiliza fragmentos de código LGPL, no es necesario liberar el código original.
Los usuarios ó compañías que distribuyen sus trabajos
bajo licencias GPL, pueden cobrar ó distribuirlas gratuitamente. Esto distingue
las licencias GPL de las licencias software que prohíben su distribución
comercial. La FSF argumenta que no se debe restringir la distribución comercial
del software (incluyendo la redistribución)2 , la GPL establece explícitamente
que las obras GPL se puede vender a cualquier precio.
Historia
La licencia GPL fue creada por Richard Stallman en 1989 para proteger los
programas liberados como parte del proyecto GNU. La licencia GPL original se
basó en la unificación de licencias similares utilizadas en versiones
anteriores de GNU Emacs, GNU Debuggery de GNU C Compiler3 . Estas licencias contenían
disposiciones similares a las actuales GPL, pero eran específicas para cada
programa, haciéndolos incompatibles, a pesar de ser la misma licencia. El
objetivo de Stallman era producir una licencia que pudiera ser aplicada a
cualquier proyecto, por lo que es posible utilizarlas en muchos proyectos para
compartir código.
La segunda parte de esta licencia, versión 2, fue liberada en 1991. Durante los siguientes 15 años, los miembros de la comunidadFOSS (Free and Open Source Software) comenzaron a preocuparse con los problemas en la GPLv2 que permitían explotar software GPL con intenciones contrarias a la licencia.4 Estos problemas incluían tivoización (se hace uso de un hardware preparado para imposibilitar a los usuarios ejecutar versiones modificadas del software en ese hardware), problemas de compatibilidad como Affero General Public License; y las disputas por patentes entre Microsoft y distribuidores de código libre y abierto, esto fue como un intento de usar las patentes como arma contra la comunidad FOSS (Free and Open Source Software).
La tercera versión de esta licencia (GNU GPLv3) fué
desarrollada para tratar de resolver estos problemas y fue lanzada oficialmente
el 25 de julio de 2007.
Versión 1
La versión 1 de GNU GPL,5 fué liberado el 25 de febrero de
1989,6 impidió lo que eran las dos
principales formas con las que los distribuidores de software restringían las
libertades definidas por el software libre. El primer problema fue que los
distribuidores publicaban únicamente los archivos binarios, funcionales y
ejecutables, pero no entendibles o modificables por humanos. Para prevenir
esto, GPLv1 dijo que cualquier vendedor además de distribuir el binario debía
liberar a su vez código fuente entendible y que pudiera ser modificado por el
ser humano, bajo la misma licencia (secciones 3a y 3b de la licencia).
El segundo problema era que los distribuidores podían
añadir restricciones adicionales, ya fuera añadiendo restricciones a la
licencia o mediante la combinación del software con otro que tuviera otras
restricciones en su distribución.
Haciendo esto, con la unión de los dos paquetes de
restricciones aplicada en un mismo trabajo podrían añadirse restricciones
inaceptables. Para prevenir esto, GPLv1 obligaba a que las versiones
modificadas en su conjunto, tuvieran que ser distribuidas bajo los términos
GPLv1 (secciones 2b y 4 de la licencia). Por lo tanto, software distribuido
bajo GPLv1 puede ser combinado con software bajo términos más permisivos y no
con software con licencias más restrictivas. Ya que esto entraría en conflicto
con el requisito de que todo software tiene que ser distribuible bajo los
términos GPLv1.
Versión 2
Según Richard Stallman, el mayor cambio en GPLv2 fue
la cláusula “Liberty or Death”, como la llama en la sección 7.7 Esta sección dice que si alguien
tiene impuestas restricciones que le prohíben distribuir código GPL de tal
forma que influya en las libertades de los usuarios (por ejemplo, si una ley
impone que esa persona únicamente pueda distribuir el software en binario), esa
persona no puede distribuir software GPL. La esperanza es que esto hará que sea
menos tentador para las empresas a recurrir a las amenazas de patentes a exigir
una remuneración de los desarrolladores de software libre.
En 1990 se hace evidente que una licencia menos
restrictiva sería estratégicamente útil para la librería C y para las librerías
de software que esencialmente hacían el trabajo que llevaban a cabo otras
librerías comerciales ya existentes8 . Cuando la versión 2 de GPL fue
liberada en Junio de 1991, una segunda licencia Library
General Public License fue introducida al mismo tiempo y
numerada con la versión 2 para denotar que ambas son complementarias. Los
números de versiones divergieron en 1999 cuando la versión 2.1 de LGPL fue
liberada, esta fue renombrada en GNU Lesser General Public License.
Versión 3
A finales de 2005, la Free Software
Foundation (FSF) anunció estar trabajando en la versión 3 de la
GPL (GPLv3). El 16 de enero de 2006, el primer borrador de GPLv3 fué publicado,
y se inició la consulta pública. La consulta pública se planeó originalmente
para durar de nueve a quince meses, pero finalmente se extendió a dieciocho
meses, durante los cuales se publicaron cuatro borradores. La GPLv3 oficial fue
liberada por la FSF el 29 de Junio de 2007. Fué escrita por Richard Stallman
con el asesoramiento legal de Eben Moglen y elSoftware
Freedom Law Center.9
Según Stallman los cambios más importantes se
produjeron en el campo de las patentes software, la compatibilidad de licencias
de software libre, la definición de código fuente, y restricciones hardware
respecto a las modificaciones de hardware ("tivoization").9 10 Otros cambios relacionados con
la internacionalización, como son manejadas las violaciones de licencias, y
como permisos adicionales pueden ser concedidos por el titular de los derechos
de autor.
También añade disposiciones para quitar al DRM su
valor legal, por es posible romper el DRM de software GPL sin romper leyes como
la DMCA.11
El proceso de consulta pública fue coordinado por la
Free Software Foundation con asistencia de Software Freedom Law Center, Free
Software Foundation Europe,12 y otros grupos de software
libre. Los comentarios del público fueron recolectados a través del portal
gplv3.fsf.org.13
Durante el proceso de consulta pública, 962
comentarios fueron presentados para el primer borrador14 . Finalmente, al final del
proceso se alcanzó la cifra de 2,636 comentarios.15 1617
El tercer borrador fue liberado el 28 de Marzo de
2007.18 Este borrador incluye mecanismos
destinados a evitar acuerdos relativos a las patentes, como el controvertido
acuerdo entre Microsoft y Novell (Microsoft-Novell
patent agreement) y restringe las cláusulas anti-tivoización a una
definición legal de un "usuario" o "producto de consumo".
También elimina la sección "Limitaciones geográficas", cuyo probable
borrado se había anunciado en el lanzamiento de la consulta pública.
El cuarto borrador19 , que fué el último, fue
liberado el 31 de Mayo de 2007. Introdujo la compatibilidad con licencias
apache (Apache License),
clarificó el rol de los contratistas externos, y hace una excepción para evitar
los problemas provocados por el acuerdo Microsoft-Novell. Sección 11 parrafo 6:
Usted no debe distribuir
un trabajo amparado si está implicado en un acuerdo con terceros que estén
relacionados con el negocio de la distribución de software, en el que usted
haga pagos relacionados con su actividad de distribución del trabajo, y donde
se otorgue, a cualquier receptor del trabajo amparado, una licencia de patente
discriminatoria (a) en relación con las copias del trabajo amparado distribuido
por usted (o copias hechas a partir de éstas), o (b) directa o indirectamente
relacionadas con productos específicos o paquetes que contengan el trabajo
amparado, a menos que usted forme parte del acuerdo, o que esa licencia de
patente fuese otorgada antes del 28 de marzo de 2007.
Una licencia de patente es "discriminatoria"
si no incluye dentro de su ámbito de cobertura, prohíbe el ejercicio, o está
condicionada a no ejercitar uno o más de los derechos que están específicamente
otorgados por esta Licencia. El objetivo es hacer este tipo de acuerdos
ineficaces. La licencia está orientada a que Microsoft tenga que extender las
licencias de patentes para garantizar a los clientes de Novell el uso de GPLv3,
esto es posible únicamente si Microsoft es distribuidor legal del software bajo
GPLv3.20 21
Otros, sobre todo algunos desarrolladores de alto
nivel del kernel de Linux, comentaron a los medios de comunicación e hicieron
declaraciones públicas sobre sus objeciones a los borradores 1 y 2.22
Términos y condiciones
Los términos y condiciones de GPL deben estar
disponible para cualquiera que reciba una copia de la obra al cual ha sido
aplicada esta licencia. Cualquier licencia que se le apliquen dichos términos
da permiso a realizar modificaciones a una obra, realizar copias y distribuirla
o distribuir cualquiera de sus versiones derivadas. Con esta licencia, está
permitido cobrar por la distribución de cada copia, o no cobrar nada.Este
último punto distingue las licencias GPL de las licencias de software que
prohíben la distribución comercial. La FSF argumenta que en el software libre
no debe haber cabida para las restricciones comerciales,23 y las obras bajo este tipo de
licencias pueden ser vendidas a cualquier precio.
La GPL, además, establece que un distribuidor no puede
imponer "restricciones sobre los derechos otorgados por la GPL". Esta
prohíbe actividades como la distribución del software bajo un acuerdo de
confidencialidad o contrato. Distribuidores bajo la GPL también conceder una
licencia para cualquiera de sus patentes software, para ser utilizadas en
software GPL.
La cuarta sección de la versión 2 de la licencia y la
decimoséptima sección de la versión 3 requieren que que los programas
distribuidos como binarios precompilados estén acompañados de una copia del
código fuente, una oferta por escrito para distribuir el código fuente a través
del mismo mecanismo que el binario pre-compilado, o una oferta por escrito para
obtener el código fuente del binario recibido bajo la GPL. La segunda sección
de la versión 2 y la sección quinta de la versión 3 también apuntan que hay que
suministrar "a todos los destinatarios una copia de esta Licencia junto
con el Programa". La versión 3 de la licencia permite que el código fuente
esté disponible en distintas plataformas en cumplimiento de la séptima sección.
Estos incluyen la descarga de código fuente desde un servidor de red adyacente
o la obtención del mismo a través de peer-to-peer, siempre que el código
compilado esté disponible y que haya "instrucciones claras” sobre dónde
encontrar el código fuente.
La FSF no permite la aplicación de derechos de
copyright a una obra licenciada bajo GPL, al menos que el autor los aplique
explícitamente (esto sucede raras veces en con excepción de los programas que
forman parte del proyecto GNU). Sólo los titulares de los derechos individuales
tienen la autoridad para demandar una violación de la licencia cuando se lleva
a cabo.
Copyleft
Los derechos de distribución otorgados por la GPL para
versiones modificadas de la obra no son incondicionales. Cuando alguien
distribuye bajo licencia GPL añadiendo a la obra sus propias modificaciones,
los requisitos para la distribución de la totalidad de la obra no puede ser
mayor que los requisitos que están en la GPL.
Este requisito se conoce como copyleft. Que alcanza su
verdadero potencial en el caso de los derechos de autor sobre el software. Si
una obra GPL tiene derechos copyright, no se tendrá derecho a distribuir esta
obra, realizar modificaciones (excepto para uso propio) . Al aplicar una
licencia GPL a una obra, los derechos de la misma estarán protegidos por la ley
de derechos de autor. Y si por el contrario, si se distribuye copias de la obra
(licenciada bajo GPL) sin atenerse a los términos de la GPL (por ejemplo, al
mantener en secreto el código fuente), puede ser demandado por el autor
original de los derechos de autor.
Copyleft por lo tanto utiliza la ley de copyright para
lograr lo opuesto de su propósito usual: en lugar de imponer restricciones,
otorga derechos, de tal manera que garantice que los derechos no puedan ser
posteriormente quitados o restringidos. También asegura que si los derechos
ilimitados de redistribución no se conceden ó se produce cualquier falla legal
se encuentra bajo la protección de la ley.
Muchos distribuidores de programas bajo GPL empaquetan
el código fuente con el ejecutable. Una alternativa que cumple las bases de
copyleft es es proporcionar una oferta por escrito para distribuir el código
fuente en un medio físico (como por ejemplo un CD) bajo demanda. En la
prácticas muchos programas bajo la GPL se distribuyen por internet, y el código
se encuentra alojado en servidores FTP, HTTP...
Copyleft sólo es aplica cuando se trata de
redistribuir el programa. Según sus bases, está permitido hacer privadas las
modificaciones realizadas, sin obligación de divulgar las modificaciones
siempre y cuando este software sea de uso propio (no sea redistribuido).
Hubo un debate sobre si se trataba de una violación de
la GPL de liberar el código fuente tanto en forma ofuscada, como en forma
deliberadamente compleja a la comprensión. El consenso general fue que, si bien
no ética, no se consideró una violación. El asunto fue aclarado cuando la
licencia fue modificada para exigir que tuviera que estar disponible la versión
“preferida” de el código fuente.24
Licencias y temas contractuales
GPL fué diseñado orientado más a una licencia que a un
contrato.25 26 En algunas jurisdicciones, la
distinción legal entre una licencia y un contrato es muy importante: los
contratos son ejecutables por la ley de contratos, mientras que las licencias
se aplican en virtud del derecho de autor. Sin embargo, esta distinción no es
útil en las diversas jurisdicciones en que no existen diferencias entre los
contratos y licencias, como los sistemas de derecho civil.27
Aquellos que no aceptan los términos de la GPL y sus
condiciones no tienen permiso, en virtud del derecho de autor, a copiar o
distribuir software con licencia GPL o trabajos derivados. Sin embargo, si no
redistribuyen el programa, pueden utilizar el software en su organización a su
gusto, y estas obras (incluidos los programas) construidas bajo este uso no
requieren estár bajo esta licencia.
Propietarios del Copyright
El texto que compone la GPL es en sí está protegido
bajo copyright y es propiedad de la FSF. Sin
embargo, la FSF no es titular del derecho de autor de una obra publicada bajo
la licencia GPL, a menos que el autor asigne explícitamente los derechos de
autor a la FSF (que rara vez sucede con excepción de los programas que forman
parte del proyecto GNU). Sólo los titulares de los derechos individuales tienen
la autoridad para demandar una violación de la licencia cuando se lleva a cabo.
La FSF permite al público crear nuevas licencias
basadas en la GPL, siempre y cuando las licencias derivadas no utilicen GPL sin
permiso. Esto no se recomienda, ya que tal licencia puede ser incompatible con
la GPL. Otras licencias creadas por el proyecto GNU incluyen la GNU Lesser
General Public License y la GNU Free Documentation License.
Compatibilidad y licencias múltiples
Código licenciado bajo varias licencias puede ser
combinado con programas con licencias GPL sin conflictos, siempre que la
combinación de restricciones del trabajo en su conjunto no ponga ninguna
restricción adicional más allá de lo permitido por la GPL.28Además de los términos regulares de la
GPL, hay restricciones y permisos adicionales que se pueden aplicar:
1. Si se quiere combinar
código bajo diferentes versiones de GPL, se puede hacer si el código con la
versión más antigua de GPL incluye la declaración “cualquier versión
posterior”.29
2. Código bajo LGPL puede
ser vinculado con cualquier otro código, no importa que licencia tenga ese
código. 30 Código bajo LGPLv2 sin la
declaración “cualquier versión posterior” puede ser relicenciado si el trabajo
al completo se licencia con una GPLv2 o una GPLv3.31
La FSF mantiene una lista 32 de las licencias de software
libre GPL-compatibles 33 34 con muchas de las licencias de
software libre más comunes, como la licencia original MIT/X la licencia BSD (en
su forma actual de tres cláusulas) y la licencia Artistic 2.0.35
David A. Wheeler ha
abogado a los desarrolladores de software libre/abierto a que usen solo
licencias GPL-compatibles, porque hacerlo de otra manera hace más difícil para
los demás la participación y la contribución al código.36 Como ejemplo específico de
incompatibilidad, ZFS de Sun Microsystems no puede ser incluido en
la licencia GPL del kernel de Linux, porque este esta bajo una GPL-incompatible CDDL.
Además, ZFS está protegido por patentes, así que la distribución independiente
desarrollada por una implementación GPL requeriría el permiso de Oracle.37
Varias empresas usan licencias múltiples para
distribuir una versión GPL y vender una propietaria a otras compañías que
quieran combinar el paquete de código con código propietario, usando una
vinculación dinámica o no. Ejemplos de estas compañías incluyenMySQL AB, Digia PLC (Qt
framework, antes del 2011 de Nokia), Red Hat (Cygwin) y RiverBank Computing (PyQt).
Otras compañías, como Mozilla Foundation (algunos
de sus productos incluyen Mozilla
Application Suite, Mozilla Thunderbird y Mozilla firefox), usan licencias múltiples
para distribuir versiones bajo GPL y otras licencias de código abierto.
Validez legal
La licencia GPL, al ser un documento que cede ciertos
derechos al usuario, asume la forma de un contrato, por lo que usualmente se la
denomina contrato de licencia o acuerdo de licencia.38 39 En los países de tradición
anglosajona existe una distinción doctrinal entre licencias y contratos, pero
esto no ocurre en los países de tradición civil o continental. Como contrato,
la GPL debe cumplir los requisitos legales de formación contractual en cada
jurisdicción.
No hay comentarios:
Publicar un comentario