GNU General Public License
# 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 en inglés GNU GPL) es una licencia de derecho de autor ampliamente usada en el mundo del software libre y código abierto, 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 doble: declarar que el software cubierto por esta licencia es libre, y protegerlo (mediante una práctica conocida como copyleft) de intentos de apropiación que restrinjan esas libertades a nuevos usuarios cada vez que la obra es distribuida, modificada o ampliada. Esta licencia fue creada originalmente por Richard Stallman, fundador de la Free Software Foundation (FSF) para el proyecto GNU.

La Free Software Foundation pone la GPL a disposición de cualquiera que desee proteger los derechos de sus usuarios finales (usar, compartir, estudiar y modificar), y otorgar a los beneficiarios de un programa de ordenador u otro tipo de obra los derechos de la definición de software libre. La GPL se distingue del dominio público o de otras licencias de software libre conocidas como permisivas por hacer hincapié en el copyleft, o solo permitir que las copias y derivados de una obra bajo la GPL perpetúen la misma licencia.

La mayor parte del software GNU es copyleft, pero no todo; sin embargo, todo el software GNU debe ser software libre.

Parte del software GNU fue escrito por el equipo de la Free Software Foundation, pero la mayor parte proviene de algunos voluntarios. La Free Software Foundation es titular del copyright de parte de ese software, otra parte está bajo el copyright de sus autores.

David A. Wheeler sostiene que el copyleft proporcionado por la GPL fue crucial para el éxito de sistemas basados en Linux, dando a los programadores que han contribuido al núcleo la seguridad de que de su trabajo se beneficiaría todo el mundo y seguirá siendo libre, en lugar de ser explotado por compañías de software que no tendrían que dar nada de nuevo a la comunidad.

Los usuarios o compañías que distribuyen sus trabajos bajo las GPL, pueden cobrar o distribuirlas gratuitamente. Esto distingue las GPL de las licencias de 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), y en ese tenor la GPL establece explícitamente que las obras cubiertas por esta licencia se pueden vender a cualquier precio

## Historia

La GPL fue creada por Richard Stallman en 1989, para proteger los programas liberados como parte del proyecto GNU. La GPL original se basó en la unificación de licencias similares utilizadas en versiones anteriores de GNU Emacs, GNU Debugger y de GNU C Compiler. 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 comunidad FOSS comenzaron a preocuparse con los problemas en la GPLv2 que permitían explotar software GPL con intenciones contrarias a la licencia. Estos problemas incluían tivoización, que es la inclusión de software con GPL en hardware que rechazará ejecutar versiones modificadas de su software, problemas de compatibilidad como ocurre con la licencia Affero General Public License; y las disputas por patentes entre Microsoft y distribuidores de código libre y abierto, lo que se consideró como un intento de usar las patentes como arma contra la comunidad FOSS.

Históricamente, la familia de licencias de la GPL ha sido una de las licencias de software más populares en el software libre de dominio. La tercera versión de esta licencia (GNU GPLv3) fue desarrollada para tratar de resolver estos problemas y fue lanzada oficialmente el 25 de julio de 2007. Esta es la primera licencia copyleft para uso general, lo que significa que los trabajos derivados solo pueden ser distribuidos bajo los términos de la misma licencia.

### Versión 1

La versión 1 de GNU GPL, fue presentada el 25 de febrero de 1989, 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, la GPLv1 estableció que cualquier proveedor de software libre además de distribuir el archivo 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. Si esto se hacía, entonces la unión de los dos conjuntos de restricciones sería aplicada al trabajo combinado entonces 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, el software distribuido bajo GPLv1 puede ser combinado con software bajo términos más permisivos y no con software con licencias más restrictivas, lo que entraría en conflicto con el requisito de que todo software tiene que ser distribuido bajo los términos de la GPLv1.

### Versión 2

Según Richard Stallman, el mayor cambio en GPLv2 fue la cláusula “Liberty or Death” («libertad o muerte»), como la llama en la sección 7 de ese documento. Esta sección dice que si alguien impone 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 el recurrir a las amenazas de patentes para exigir una remuneración de los desarrolladores de software libre.

En 1991 se hizo evidente que una licencia menos restrictiva sería estratégicamente útil para la biblioteca C y para las bibliotecas de software que esencialmente hacían el trabajo que llevaban a cabo otras bibliotecas comerciales ya existentes. 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 como GNU Lesser General Public License para reflejar su lugar en esta filosofía.

### 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 fue 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.

Según Stallman los cambios más importantes se produjeron en el campo de las patentes de software, la compatibilidad de licencias de software libre, la definición de código fuente, y restricciones de hardware respecto a las modificaciones de hardware. Otros cambios están relacionados con la internacionalización, cómo son manejadas las violaciones de licencias, y cómo los 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 en el software de GPL sin romper leyes como la DMCA.

El proceso de consulta pública fue coordinado por la Free Software Foundation con asistencia de Software Freedom Law Center, Free Software Foundation Europe, y otros grupos de software libre. Los comentarios del público fueron recolectados a través del portal gplv3.fsf.org.

Durante el proceso de consulta pública, 962 comentarios fueron presentados para el primer borrador. Finalmente, al final del proceso se alcanzó la cifra de 2,636 comentarios.

El tercer borrador fue liberado el 28 de marzo de 2007. Este borrador incluye mecanismos destinados a evitar acuerdos relativos a las patentes, como el controvertido acuerdo entre Microsoft y Novell 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 de "Limitaciones geográficas", cuyo probable borrado se había anunciado en el lanzamiento de la consulta pública.

El cuarto borrador, que fue el último, fue liberado el 31 de mayo de 2007. Introdujo la compatibilidad con las Licencias Apache, clarificó el rol de los contratistas externos, y hace una excepción para evitar los problemas provocados por el acuerdo Microsoft-Novell, estableciendo en el párrafo 6 de la Sección 11 lo siguiente:

El objetivo de esto 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, lo que es posible únicamente si Microsoft es distribuidor legal del software bajo GPLv3.

Algunos desarrolladores de alto nivel del núcleo Linux, comentaron e hicieron declaraciones públicas a los medios de comunicación sobre sus objeciones a los borradores 1 y 2.

## 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, 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 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). Solo 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 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 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 o 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 la de 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áctica muchos programas bajo la GPL se distribuyen por internet, y el código se encuentra alojado en servidores FTP, HTTP, etc.

Copyleft solo se 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» del código fuente.

### Licencias y temas contractuales

GPL fue diseñado orientado más a una licencia que a un contrato. 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.

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 la 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 estar 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 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). Solo 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. Además de los términos regulares de la GPL, hay restricciones y permisos adicionales que se pueden aplicar:

* 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”.
* Código bajo LGPL puede ser vinculado con cualquier otro código, no importa que licencia tenga ese código. 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.

La FSF mantiene una lista de las licencias de software libre GPL-compatibles 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.

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. Como ejemplo específico de incompatibilidad, ZFS de Sun Microsystems no puede ser incluido en la GPL del núcleo Linux, porque este está 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.

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 incluyen MySQL 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 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. 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.

La licencia ha sido reconocida, entre otros, por juzgados en Alemania, particularmente en el caso de una sentencia en un tribunal de Múnich, lo que indica positivamente su validez en jurisdicciones de derecho civil.

## Adopción

El software bajo la GPL puede ser aplicado bajo todos los propósitos, incluidos los propósitos comerciales e incluso como herramienta de creación de software propietario. En uso puramente privativo (o interno), sin ventas ni distribuciones implicadas, el software puede ser modificado sin liberar el código fuente pero, de lo contrario, 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 prominentes bajo la GPL como Linux y también el GNU Compiler Collection, no es necesario que estén licenciadas bajo la GPL o 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, o si está combinado con software que no cumple los requisitos de copyleft no es necesario que se licencie bajo la GPL o que se distribuya con su código fuente disponible. Solo 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 otra licencia de GNU, LGPL (GNU Lesser General Public License) fue creada para tener derechos menos restrictivos que GPL, por lo que en este caso en un programa que utiliza fragmentos de código LGPL, no es necesario liberar el código original. Algunos otros programas de software libre (como ejemplo prominente esta MySQL) son de doble licencia bajo varias licencias, a menudo con uno de los certificados que son la GPL.

