Esta es una traducción de la página original en inglés.

Preguntas frecuentes acerca de las licencias de GNU

Índice


Preguntas básicas acerca del proyecto GNU, la Free Software Foundation y sus licencias

Nociones generales acerca de las licencias de GNU

Cómo utilizar la GPL para sus programas

Distribución de programas publicados bajo la GPL

Utilización de programas publicados bajo la GPL cuando se escriben otros programas

Combinación de otras obras con código publicado bajo la GPL

Preguntas acerca de incumplimientos de las licencias de GNU


Qué significa «GPL»? (#WhatDoesGPLStandFor)

«GPL» significa General Public License («Licencia Pública General»). La más difundida de tales licencias es la Licencia Pública General de GNU, o «GPL de GNU», para abreviar. Puede reducirse aún más, a «GPL», cuando se sobreentienda que nos estamos refiriendo a la «GPL de GNU».

Cuando se habla de software libre, ¿significa que se está empleando la GPL? (#DoesFreeSoftwareMeanUsingTheGPL)

No, en absoluto; hay muchas otras licencias de programas libres. Disponemos de una lista incompleta. Cualquier licencia que conceda al usuario ciertas libertades específicas es una licencia de software libre.

¿Por qué deberí­a usar la GPL de GNU en lugar de otras licencias de software libre? (#WhyUseGPL)

Usar la GPL de GNU exige que todas las versiones mejoradas que se publiquen sean software libre. Esto significa que usted no correrá el riesgo de tener que competir con una versión modificada privativa de su propio trabajo. No obstante, en algunas situaciones particulares puede ser mejor emplear una licencia más permisiva.

¿Todos los programas de GNU utilizan como licencia la GPL de GNU? (#DoesAllGNUSoftwareUseTheGNUGPLAsItsLicense)

La mayor parte de los paquetes de programas GNU utilizan la GPL de GNU, pero hay unos pocos programas (y partes de programas) que emplean licencias menos estrictas, tales como la GPL Reducida (Lesser GPL). Cuando lo hacemos así es por razones de estrategia.

Utilizar la GPL para un programa, ¿lo convierte en software GNU? (#DoesUsingTheGPLForAProgramMakeItGNUSoftware)

Cualquiera puede publicar un programa bajo la GPL de GNU, pero eso no lo convierte en un programa de GNU.

Para que el programa sea un paquete de software de GNU ha de ser una contribución explícita al proyecto GNU. Eso sucede solo cuando los desarrolladores del programa y el Proyecto GNU se ponen de acuerdo. Si está interesado en aportar un programa al proyecto GNU, escriba por favor a <maintainers@gnu.org>.

¿Qué debo hacer si descubro un posible incumplimiento de la GPL? (#ReportingViolation)

Debe comunicarlo. En primer lugar, compruebe los hechos lo mejor que pueda. A continuación, comuníqueselo al publicador o titular del copyright del programa. Si es la Free Software Foundation, escriba a <license-violation@gnu.org>. También es posible que el encargado de mantener el programa sea el titular del copyright, o si no, él podría indicarle cómo ponerse en contacto con el titular del copyright, de modo que comuníqueselo al responsable del mantenimiento.

¿Por qué la GPL permite a los usuarios publicar versiones modificadas de los programas? (#WhyDoesTheGPLPermitUsersToPublishTheirModifiedVersions)

Un aspecto crucial del software libre es que los usuarios tienen la libertad de cooperar. Es absolutamente esencial que a los usuarios que deseen ayudarse entre sí se les permita compartir sus correcciones de errores y mejoras con otros usuarios.

Algunos han propuesto licencias alternativas a la GPL que requerirían que las versiones modificadas fueran supervisadas por el autor original. Mientras el autor original permaneciera atento a las necesidades de mantenimiento, esto podría funcionar bien en la práctica; pero si el autor deja de hacerlo (en mayor o menor medida) para dedicarse a otras tareas o no atiende a las necesidades de todos los usuarios, el procedimiento fracasa. Dejando a un lado los problemas prácticos, este planteamiento no permite a los usuarios ayudarse entre sí.

En ocasiones, el control de las versiones modificadas se propone como un medio para evitar la confusión entre las diferentes versiones hechas por los usuarios. A juzgar por nuestra experiencia, esta confusión no supone mayor problema. Se han hecho muchas versiones de Emacs independientes del proyecto GNU, pero los usuarios son capaces de distinguirlas. La GPL exige al autor de una versión que ponga su nombre en ella, con el objeto de distinguirla de otras versiones y para proteger la reputación de otros responsables del mantenimiento del programa.

¿Exige la GPL que el código fuente de las versiones modificadas se ponga a disposición del público? (#GPLRequireSourcePostedPublic)

La GPL no le obliga a publicar el programa modificado, ni ninguna parte del mismo. Usted es libre de hacer versiones modificadas y usarlas en privado, sin tener nunca que hacerlas públicas. Esto es aplicable también a organizaciones (empresas incluidas); una organización puede hacer una versión modificada y usarla internamente sin hacerla pública fuera de la organización.

Pero si publica de alguna manera la versión modificada, la GPL le exige que ponga a disposición de los usuarios el código fuente modificado, bajo la GPL.

Así pues, la GPL le autoriza a publicar el programa modificado de determinadas maneras y no de otras; pero la decisión de publicarlo o no depende de usted.

¿Puedo tener en el mismo ordenador un programa cubierto por la GPL y un programa distinto que no sea libre? (#GPLAndNonfreeOnSameMachine)

Sí.

Si sé de alguien que tiene copias de un programa cubierto por la GPL, ¿puedo exigirle que me proporcione una copia? (#CanIDemandACopy)

No. La GPL le autoriza a hacer y redistribuir copias del programa si esa persona así lo decide y cuando lo decida. Esa persona tiene también derecho a no redistribuir el programa.

¿Qué significa eso de «oferta escrita válida para cualquier tercera parte» en la GPLv2? ¿Significa que cualquier persona puede obtener el código fuente de cualquier programa publicado bajo la GPL, incondicionalmente? (#WhatDoesWrittenOfferValid)

Si usted opta por hacer un ofrecimiento por escrito de facilitar el código fuente, cualquiera que se lo solicite tendrá derecho a recibirlo.

Si distribuye comercialmente los archivos binarios sin acompañarlos del código fuente, la GPL dice que usted debe hacer por escrito la oferta de facilitar el código fuente más adelante. Cuando los usuarios redistribuyan sin ánimo comercial los binarios recibidos de usted, deberán incluir una copia de esa oferta escrita. Eso significa que quienes no hayan obtenido los binarios directamente de usted tienen también la posibilidad de recibir copia del código fuente, junto a la oferta escrita.

La razón por la que exigimos que la oferta sea válida para cualquier tercera parte es que, de este modo, quien reciba los binarios por otra vía pueda solicitarle a usted el código fuente.

La GPLv2 dice que las versiones modificadas, si se publican, han de ser «licenciadas… a toda tercera parte». ¿Quiénes son esas terceras partes? (#TheGPLSaysModifiedVersions)

La sección 2 dice que las versiones modificadas que usted distribuya han de ser licenciadas a toda tercera parte bajo la GPL. «Toda tercera parte» significa absolutamente todo el mundo, pero esto no exige que usted haga algo por ellos físicamente. Solo significa que tienen una licencia de usted, bajo la GPL, para esa versión.

¿Es preciso que reclame el copyright de mis modificaciones de un programa cubierto por la GPL?(#RequiredToClaimCopyright)

No es preciso que reclame el copyright de sus cambios. No obstante, en la mayoría de los países esto sucede automáticamente, de manera que si quiere que sus cambios no queden sujetos a copyright, tendrá que declarar explícitamente que son de dominio público.

Reclame o no el copyright sobre sus cambios, en cualquier caso debe publicar la versión modificada, en su conjunto, bajo la GPL (si es que publica su versión modificada).

¿Qué estipula la GPL respecto a la traducción del código a un lenguaje de programación diferente? (#TranslateCode)

Bajo la ley de copyright, la traducción de una obra se considera un tipo de modificación. Por tanto, lo que estipula la GPL para las versiones modificadas se aplica también a las versiones traducidas. La traducción está cubierta por el copyright del programa original.

Si el programa original tiene una licencia libre, esa licencia da permiso para traducirlo. Cómo pueda utilizarse y licenciarse el programa traducido vendrá determinado por dicha licencia. Si el programa original está licenciado bajo ciertas versiones de la GPL de GNU, el programa traducido ha de estar cubierto por las mismas versiones de la GPL de GNU.

Si un programa combina código de dominio público con código cubierto por la GPL, ¿puedo tomar la parte que es de dominio público y utilizarla como código de dominio público? (#CombinePublicDomainWithGPL)

Puede hacerlo, si acierta a saber qué parte es de dominio público y a separarla del resto. Si el desarrollador puso su código en el dominio público, es de dominio público sin importar donde haya estado.

¿Me permite la GPL vender copias del programa? (#DoesTheGPLAllowMoney)

Sí. La GPL autoriza a cualquier persona a hacerlo. El derecho de vender copias es parte de la definición de software libre. Excepto en una situación particular, no existe límite al precio que puede ponerles. (Esa excepción es la oferta escrita de proporcionar el código fuente, que ha de acompañar a los binarios obligatoriamente cuando estos se distribuyan sin su código fuente.)

¿Me autoriza la GPL a cobrar una tarifa por descargar un programa desde mi sitio de distribución? (#DoesTheGPLAllowDownloadFee)

Sí. Usted puede cobrar el precio que desee por distribuir copias del programa. Bajo la GPLv2, si distribuye binarios para descargar, ha de facilitar un «acceso equivalente» para descargar los archivos con el código fuente. Por tanto, la tarifa para descargar los archivos fuente no puede ser mayor que la tarifa para bajar los binarios. Si los binarios que usted distribuye están bajo la GPLv3, debe ofrecer un acceso equivalente a los archivos fuente de la misma manera y desde el mismo lugar, sin costo adicional.

¿Me autoriza la GPL a exigir que cualquiera que reciba el software haya de abonarme alguna cantidad o notificármelo? (#DoesTheGPLAllowRequireFee)

No. De hecho, una exigencia de ese tipo haría que el programa no sea libre. Si la gente tiene que pagar cuando obtiene una copia del programa, o si tiene que notificárselo a alguien en particular, entonces el programa no es libre. Véase la definición de software libre.

La GPL es una licencia de software libre, y por tanto permite el uso e incluso la redistribución de los programas sin que para hacerlo haya que pagarle nada a nadie.

Sí puede cobrar cuando es usted mismo quien entrega la copia. No puede exigir ningún pago cuando quien entrega la copia es alguna otra persona.

Si distribuyo software con licencia GPL a cambio de dinero, ¿es necesario que lo ponga a disposición también gratuitamente? (#DoesTheGPLRequireAvailabilityToPublic)

No. No obstante, si alguien abona esa cantidad y obtiene una copia, la GPL le concede la libertad de publicarla poniéndole un precio o no. Por ejemplo, alguien podría pagarle el precio y después colgar una copia en su sitio web para el público en general.

¿Me permite la GPL distribuir copias bajo un acuerdo de no divulgación? (#DoesTheGPLAllowNDA)

No. La GPL dice que cualquiera que reciba una copia de usted tiene derecho a redistribuir copias, modificadas o no. No le está permitido distribuir la obra en condiciones más restrictivas, cualesquiera que sean.

Si alguien le pide que firme un acuerdo de no divulgación como condición para recibir software de cuyo copyright es titular la FSF, infórmenos por favor inmediatamente escribiendo a license-violation@fsf.org.

Si el incumplimiento se refiere a un código cubierto por la GPL y el titular del copyright es otro, infórmele por favor al titular del copyright, tal como haría con cualquier otro tipo de incumplimiento de la GPL.

¿Me permite la GPL distribuir una versión modificada o una versión beta bajo un acuerdo de no divulgación? (#DoesTheGPLAllowModNDA)

No. La GPL dice que sus versiones modificadas deben llevar aparejadas todas las libertades que figuran en la GPL. Así pues, cualquiera que reciba una copia de su versión tiene derecho a redistribuir copias de la misma, modificadas o no. No le está permitido distribuir ninguna versión de la obra en condiciones más restrictivas.

¿Me permite la GPL desarrollar una versión modificada bajo un acuerdo de no divulgación? (#DevelopChangesUnderNDA)

Sí. Por ejemplo, puede aceptar un contrato para desarrollar cambios y acordar no publicar sus cambios hasta que el cliente dé su aprobación. Esto está permitido porque en tal caso no se está distribuyendo código cubierto por la GPL bajo un acuerdo de no divulgación.

También puede proporcionar al cliente sus cambios bajo la GPL, pero acordar no proporcionárselos a nadie más hasta que el cliente lo autorice. En este caso tampoco hay código cubierto por la GPL que esté siendo distribuido bajo un acuerdo de no divulgación o con restricciones adicionales.

La GPL concedería al cliente el derecho de redistribuir la versión que usted ha realizado. En un caso como este, el cliente probablemente optará por no ejercer ese derecho, pero lo tiene.

Quiero obtener reconocimiento por mi trabajo. Quiero que la gente conozca lo que he escrito. ¿Puedo obtener reconocimiento si uso la GPL? (#IWantCredit)

Sin duda puede obtener reconocimiento por su trabajo. Parte de la publicación de un programa bajo la GPL consiste en escribir una nota acerca del copyright en su propio nombre (suponiendo que sea usted el titular del copyright). La GPL exige que en todas las copias figure una nota apropiada sobre el copyright.

¿Me autoriza la GPL a añadir condiciones exigiendo la cita o reconocimiento en trabajos de investigación que empleen software cubierto por la GPL o su resultado? (#RequireCitation)

No, los términos de la GPL no lo permiten. Si bien reconocemos que la citación apropiada es una parte importante de las publicaciones académicas, la cita no se puede añadir a la GPL como una exigencia adicional. Exigir la cita en trabajos de investigación que emplean software bajo la GPL excede lo que sería una exigencia adicional aceptable según la sección 7(b) de la GPLv3, y por tanto se consideraría una restricción adicional según la sección 7 de la GPL. Y la ley de copyright no permite imponer tal exigencia al resultado del software, independientemente de que que esté licenciado bajo los términos de la GPL o de cualquier otra licencia.

¿Por qué exige la GPL que en toda copia del programa se incluya una copia de la GPL? (#WhyMustIInclude)

Incluir en la obra una copia de la licencia es vital, pues de este modo cualquiera que obtiene una copia del programa puede conocer cuáles son sus derechos.

Uno podría sentirse tentado de incluir una dirección de Internet que remita a la licencia, en lugar de la licencia misma. Pero no puede estar seguro de que esa dirección seguirá siendo válida dentro de cinco o diez años. Es posible que dentro de veinte años ni siquiera existan las direcciones de Internet tal y como hoy las conocemos.

La única forma de asegurarse de que, por muchos cambios que sufra la red, la gente que tiene copias del programa continuará teniendo la posibilidad de ver la licencia consiste en incluir una copia de la licencia en el programa.

¿Es suficiente incluir una copia de la licencia en mi repositorio? (#LicenseCopyOnly)

Con el solo hecho de incluir una copia de la GPL de GNU en el repositorio usted no declara explícitamente que el código que se encuentra en ese mismo repositorio puede ser utilizado bajo los términos de la GPL de GNU. En ausencia de tal declaración, no resulta del todo claro si los permisos que otorga la licencia se aplican realmente a cualquier archivo fuente en particular. Una declaración específica que lo indique elimina todas las dudas.

Un archivo que contiene una licencia y nada más, sin ninguna declaración que indique que existen otros archivos que están cubiertos por esa licencia, se asemeja a un archivo que contiene solo una subrutina que no recibe llamadas. La similitud no es perfecta: los abogados y los tribunales podrían usar el sentido común y llegar a la conclusión de que usted muy probablemente incluyó allí una copia de la GPL de GNU porque su intención era poner el código bajo esa licencia. O puede que no. ¿Por qué dejarlo en la incertidumbre?

Esta declaración debe estar presente en cada archivo fuente. Una declaración clara en el archivo LEEME es legalmente suficiente mientras acompañe al código, pero es fácil que estos queden separados. ¿Por qué arriesgarse a esa inseguridad con respecto a la licencia de su código?

Esto no se aplica exclusivamente a la GPL de GNU, lo mismo vale para todas las licencias libres.

¿Por qué tengo que incluir una nota de licencia en cada uno de los archivos fuente? (#NoticeInSourceFile)

Para evitar el riesgo de que el código quede desconectado de la licencia, al inicio de cada archivo fuente usted debe incluir una nota que especifique la licencia bajo la cual se encuentra el código. Si en el LÉEME del repositorio se dice que el archivo fuente está bajo la GPL de GNU, ¿qué sucede si alguien copia ese archivo para incluirlo en otro programa? Puede que el otro entorno no muestre la licencia del código. Existe la posibilidad de que aparente estar bajo alguna otra licencia o no tener ninguna licencia (con lo cual ese código no sería libre).

Es muy fácil añadir una nota de licencia al inicio de cada archivo fuente, y así se reduce la posibilidad de que se produzca una confusión.

Esto no se aplica exclusivamente a la GPL de GNU, lo mismo vale para todas las licencias libres.

¿Y si la obra no es muy extensa? (#WhatIfWorkIsShort)

Si el paquete de software en conjunto contiene poco código (tomamos un límite de 300 líneas como referencia), y siempre que el código no sea particularmente importante, en lugar de una licencia con copyleft como la GPL de GNU puede utilizar una licencia laxa, permisiva. Para tales casos recomendamos la Licencia Apache 2.0.

¿Puedo omitir el preámbulo de la GPL, o las instrucciones acerca de la manera de utilizarla en los programas propios, para ahorrar espacio? (#GPLOmitPreamble)

El preámbulo y las instrucciones son parte integrante de la GPL y no pueden omitirse. De hecho, la GPL tiene copyright, y su licencia permite únicamente la copia literal de la GPL en su integridad. (Puede utilizar los términos legales para hacer otra licencia, pero no será la GPL de GNU).

El preámbulo y las instrucciones contienen unas 1.000 palabras, menos de una quinta parte del tamaño total de la GPL. No supondrán un cambio sustancial en el tamaño de un paquete de software, a menos que el paquete sea muy pequeño. En ese caso, puede utilizar también una licencia sencilla, totalmente permisiva, en lugar de la GPL de GNU.

¿Qué significa que dos licencias son «compatibles»? (#WhatIsCompatible)

Para poder combinar dos programas (o partes sustanciales de los mismos) con el fin de hacer una obra más amplia, es preciso tener permiso para usar ambos programas de esa manera. Si las licencias de ambos programas lo permiten, son compatibles. Si no es posible respetar a la vez las cláusulas de ambas licencias, son incompatibles.

En algunas licencias la compatibilidad puede depender de cómo se haga la combinación. Por ejemplo, podrían permitir vincular dos módulos, pero no fundir los códigos en un solo módulo.

Si únicamente quiere instalar dos programas independientes en el mismo sistema no es necesario que las licencias sean compatibles, ya que de este modo no se combinan para dar lugar a una obra mayor.

¿Qué significa que una licencia es «compatible con la GPL»? (#WhatDoesCompatMean)

Significa que la otra licencia y la GPL de GNU son compatibles; usted puede combinar el código publicado bajo la otra licencia con el código publicado bajo la GPL de GNU en un programa más amplio.

Todas las versiones de la GPL de GNU permiten efectuar tal combinación de forma privada; también permiten la distribución de dichas combinaciones siempre que éstas se publiquen bajo la GPL de GNU. La otra licencia es compatible con la GPL si también lo permite.

La GPLv3 es compatible con más licencias que la GPLv2; le permite efectuar combinaciones con código que tenga determinados requisitos adicionales que no figuran en la propia GPLv3. La sección 7 ofrece más información acerca de esto e incluye la lista de requisitos adicionales permitidos.

¿Puedo escribir software libre que utilice bibliotecas que no son libres? (#FSWithNFLibs)

Si hace esto, su programa no podrá utilizarse por completo en un entorno libre. Si para realizar determinada tarea su programa depende de una biblioteca que no es libre, no puede realizar esa tarea en el mundo libre. Si para funcionar depende de una biblioteca que no es libre, no puede formar parte de un sistema operativo libre como GNU: está completamente fuera del mundo libre.

De modo que, por favor, plantéese lo siguiente: ¿Puede encontrar la manera de realizar esa tarea sin emplear esa biblioteca? ¿Puede escribir un sustitutivo libre para esa biblioteca?

Si el programa está ya escrito haciendo uso de la biblioteca que no es libre, quizá sea demasiado tarde para cambiar la decisión. Puede también publicar el programa tal cual está, antes que no publicarlo. Pero haga el favor de mencionar en el LÉEME que la necesidad de la biblioteca privativa es un inconveniente, y sugiera la tarea de cambiar el programa de tal modo que realice el mismo trabajo sin dicha biblioteca. Sugiera que cualquiera que se proponga desarrollar el programa a fondo, lo libere en primer lugar de su dependencia de la biblioteca en cuestión.

Tenga en cuenta que también puede haber problemas legales en combinar algunas bibliotecas que no son libres con software libre cubierto por la GPL. Para más información, véase la pregunta sobre software GPL con bibliotecas incompatibles con la GPL.

¿Puedo enlazar un programa que está bajo la GPL con una biblioteca del sistema que no es libre? (#SystemLibraryException)

Las versiones 2 y 3 de la GPL contienen una excepción a su copyleft, que suele recibir el nombre de excepción de bibliotecas del sistema. Si las bibliotecas incompatibles con la GPL que desea utilizar cumplen los criterios de una biblioteca del sistema, entonces no tiene que hacer nada especial para poder usarlas; el requisito de distribuir el código fuente del programa en su conjunto no incluye esas bibliotecas, ni siquiera si distribuye un ejecutable enlazado que las contenga.

Los criterios para determinar qué se considera «biblioteca del sistema» (system library) varían en las diferentes versiones de la GPL. La GPLv3 define de forma explícita «bibliotecas del sistema» en la sección 1, para dejarlas fuera de la definición de «Fuente Correspondiente» (Corresponding Source). La GPLv2 trata este tema de manera ligeramente diferente, hacia el final de la Sección 3.

¿De qué maneras puedo enlazar o combinar código que está cubierto por la AGPLv3 con código cubierto por la GPLv3? (#AGPLGPL)

Cada una de esas licencias permite explícitamente enlazar su código con código que esté bajo la otra licencia. Siempre puede enlazar módulos que están bajo la GPLv3 con módulos que están bajo la AGPLv3 y viceversa. Esto es así independientemente de que algunos de los módulos sean bibliotecas.

¿Qué problemas legales pueden producirse si utilizo bibliotecas incompatibles con la GPL con software GPL? (#GPLIncompatibleLibs)

Si usted quiere enlazar su programa con una biblioteca que no entra dentro de la excepción relativa a las bibliotecas del sistema, tendrá que dar permiso para hacerlo. Más abajo tiene dos ejemplos de notas que puede utilizar para ello: una para la GPLv3 y otra para la GPLv2. En ambos casos deberá poner este texto en cada archivo para el que quiera conceder ese permiso.

Solo los titulares del copyright del programa tienen capacidad legal para publicar su software bajo estas condiciones. Si usted ha escrito todo el programa, suponiendo que su empleador o centro de enseñanza no lo reclame, usted es el titular del copyright, de modo que puede autorizar esa excepción. Pero si quiere utilizar en su código partes de programas escritos por otros autores y cubiertos por la GPL, usted no puede autorizar la excepción en su lugar. Tendrá que obtener la aprobación de los titulares del copyright de esos programas.

Si otros modifican el programa, ellos no tienen por qué hacer la misma excepción para su código; queda a su discreción hacerlo o no.

Si las bibliotecas con las que tiene intención de enlazar no son libres, consulte la sección acerca de escribir software libre que utiliza bibliotecas que no son libres.

Si usted está utilizando la GPLv3, puede alcanzar este objetivo concediendo un permiso adicional en virtud de la sección 7. La siguiente nota le servirá para hacerlo. Deberá sustituir todo el texto entre corchetes por el que corresponda a su programa. Si no todo el mundo puede distribuir el código fuente de las bibliotecas con las que tiene intención de enlazar, deberá suprimir el texto entre llaves; de lo contrario, quite simplemente solo las llaves.

Copyright (C) [years] [name of copyright holder]

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see <https://www.gnu.org/licenses>.

Additional permission under GNU GPL version 3 section 7

If you modify this Program, or any covered work, by linking or combining it with [name of library] (or a modified version of that library), containing parts covered by the terms of [name of library's license], the licensors of this Program grant you additional permission to convey the resulting work. {Corresponding Source for a non-source form of such a combination shall include the source code for the parts of [name of library] used as well as that of the covered work.}[1] Traducción no oficial.

Si usted está utilizando la GPLv2, puede añadir su propia excepción a los términos de la licencia. La siguiente nota le servirá para hacerlo. De nuevo deberá sustituir el texto entre corchetes por el que corresponda a su programa. Si no todo el mundo puede distribuir el código fuente de las bibliotecas con las que tiene intención de enlazar, deberá suprimir el texto entre llaves; de lo contrario, quite simplemente solo las llaves.

Copyright (C) [years] [name of copyright holder]

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see <https://www.gnu.org/licenses>.

Linking [name of your program] statically or dynamically with other modules is making a combined work based on [name of your program]. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

In addition, as a special exception, the copyright holders of [name of your program] give you permission to combine [name of your program] with free software programs or libraries that are released under the GNU LGPL and with code included in the standard release of [name of library] under the [name of library's license] (or modified versions of such code, with unchanged license). You may copy and distribute such a system following the terms of the GNU GPL for [name of your program] and the licenses of the other code concerned{, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code}.

Note that people who make modified versions of [name of your program] are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception.[2] Traducción no oficial.

¿Cómo consigo el copyright de mi programa a fin de publicarlo bajo la GPL?(#HowIGetCopyright)

En virtud de la Convención de Berna, todo lo que se escribe queda automáticamente sujeto a copyright desde el momento en que la obra es fijada en un soporte material. De manera que no tiene que hacer nada para «obtener» el copyright de lo que usted escribe, siempre que nadie más pueda reclamar la titularidad de su obra.

En cualquier caso, es una buena idea registrar el copyright en los EE. UU. Eso le dará más fuerza para afrontar a los posibles infractores en los EE. UU.

El caso en que existe la posibilidad de que alguien más reclame el copyright se da si usted es empleado o estudiante. En ese caso, el empleador o el centro de enseñanza podrían alegar que usted hizo ese trabajo para ellos y que es a ellos a quienes pertenece el copyright. La validez de esa alegación dependerá de diversas circunstancias tales como las leyes del lugar donde reside, su contrato de trabajo y el tipo de trabajo que hace. Si existe alguna duda, lo mejor es consultar a un abogado.

Si cree que su empleador o centro de enseñanza podrían tener algún derecho sobre la obra, puede resolver el problema consiguiendo una renuncia al copyright firmada por una persona convenientemente autorizada de la empresa o centro de enseñanza. (Su inmediato superior o un profesor normalmente NO están autorizados a firmar tal renuncia).

¿Qué sucede si mi centro de enseñanza quiere incluir mi programa entre sus productos de software privativo? (#WhatIfSchool)

En la actualidad muchas universidades tratan de obtener fondos restringiendo el uso del conocimiento y la información que elaboran, comportándose en la práctica de manera muy similar a la de las empresas comerciales. (Cfr. «The Kept University», Atlantic Monthly, marzo de 2000, para un tratamiento más amplio de este problema y sus consecuencias).

Si ve alguna posibilidad de que su escuela rehúse el permiso para que su programa sea publicado como software libre, lo mejor es abordar el asunto en las primeras etapas de su desarrollo. Cuanto más cerca esté el programa de funcionar y ser útil, más tentada podrá sentirse la administración de arrebatárselo y terminarlo sin usted. En una etapa más temprana sus posibilidades de conseguirlo serán mayores.

Así pues, le recomendamos que se dirija a ellos cuando el programa esté todavía a medio hacer, diciendo: «Si están de acuerdo en publicar esto como software libre, lo termino.» No vea esto como una argucia. Para conseguir su objetivo tiene que tener el valor de decir: «Mi programa será libre o nunca verá la luz».

¿Podrían indicarme uno a uno los pasos a seguir para aplicar la GPL a mi programa? (#CouldYouHelpApplyGPL)

Consulte la página Instrucciones para el uso de la GPL.

He oído que alguien obtuvo una copia de un programa GPL bajo otra licencia. ¿Es esto posible? (#HeardOtherLicense)

La GPL de GNU no autoriza a los usuarios a añadir otras licencias al programa. Pero el titular del copyright de un programa puede publicarlo bajo diversas licencias a la vez. Una de ellas puede ser la GPL de GNU.

La licencia incluida en la copia que usted tiene, suponiendo que haya sido puesta por el titular del copyright y que usted consiguiera la copia de forma legítima, es la licencia aplicable a su copia.

Me gustaría publicar bajo la GPL de GNU un programa que he escrito, pero quisiera usar el mismo código en programas que no son libres. (#ReleaseUnderGPLAndNF)

Publicar un programa privativo es siempre censurable desde el punto de vista ético, pero legalmente no existe ningún problema para hacerlo. Si usted es el titular del copyright del código, puede publicarlo bajo diferentes licencias no exclusivas en diferentes momentos.

El desarrollador de un programa cubierto por la GPL, ¿se encuentra vinculado por la GPL? ¿Podrían en algún caso los actos del desarrollador constituir un incumplimiento de la GPL? (#DeveloperViolate)

En sentido estricto, la GPL es una licencia del desarrollador para otros, a fin de establecer lo que estos pueden hacer con el programa: uso, distribución y cambios. El desarrollador mismo no se encuentra vinculado por la licencia, de manera que, haga lo que haga, no puede considerarse un «incumplimiento» de la GPL.

No obstante, si el desarrollador hace algo que supondría un incumplimiento de la GPL si fuera otro quien lo hiciera, sin duda perderá su credibilidad moral ante la comunidad.

El desarrollador de un programa que en principio lo distribuyó bajo la GPL, ¿puede más adelante licenciarlo a una tercera parte para uso exclusivo? (#CanDeveloperThirdParty)

No, porque el público ya tiene el derecho de usar el programa bajo la GPL, y este derecho no puede ser revocado.

¿Puedo emplear editores de texto cubiertos por la GPL, tales como GNU Emacs, para crear programas que no sean libres? ¿Puedo emplear herramientas tales como GCC para compilarlos? (#CanIUseGPLToolsForNF)

Sí, puesto que el copyright de los editores y de las herramientas no cubre el código que usted escriba. El hecho de utilizarlos no impone, legalmente, ninguna restricción a la licencia que use para su código.

Algunos programas, por razones técnicas, copian partes de sí mismos en su salida; por ejemplo, Bison copia un analizador sintáctico estándar en el archivo de salida. En tales casos, el texto copiado en la salida está cubierto por la misma licencia que lo cubre en el código fuente. A su vez, la parte del archivo de salida que se deriva de los datos suministrados al programa hereda el copyright de dichos datos.

Como sucede de hecho, Bison puede utilizarse también para desarrollar programas que no son libres. Esto es así porque en su momento decidimos autorizar de forma explícita y sin restricciones el uso del analizador sintáctico estándar de Bison en los archivos de salida de este programa. Tomamos esta decisión porque ya existían otras herramientas análogas que permitían su uso para programas que no son libres.

¿Tengo derechos de «uso legítimo» (fair use) para utilizar el código fuente de un programa cubierto por la GPL? (#GPLFairUse)

Sí, lo tiene. «Uso legítimo» es el uso que está autorizado sin ningún permiso especial. Puesto que para dicho uso no necesita el permiso de los autores, puede hacerlo independientemente de lo que estos digan al respecto, ya sea en la licencia o en cualquier otra parte, ya sea esa licencia la GPL de GNU o cualquier otra licencia de software libre.

Tenga en cuenta, no obstante, que el principio de uso legítimo no es igual en todas partes; las clases de uso que se considera «legítimo» varían de un país a otro.

¿Puede el gobierno de EE. UU. publicar un programa bajo la GPL de GNU? (#GPLUSGov)

Si el programa lo escriben empleados del gobierno federal como parte de su trabajo, está en el dominio público, lo que significa que no tiene copyright. Puesto que la GPL de GNU tiene su fundamento en el copyright, dicho programa no puede publicarse bajo la GPL de GNU. (No obstante, será software libre: un programa de dominio público es libre).

No obstante, cuando una agencia del gobierno federal de los EE. UU. se sirve de contratistas para producir software, la situación es diferente. El contrato puede exigir al contratista que lo publique bajo la GPL de GNU (GNU Ada fue desarrollado de esta manera). O bien el contrato puede asignar el copyright a la agencia del gobierno, la cual puede luego publicar el software bajo la GPL de GNU.

¿Puede el gobierno de EE. UU. publicar mejoras de un programa cubierto por la GPL? (#GPLUSGovAdd)

Sí. Si las mejoras son escritas por empleados del gobierno federal como parte de su trabajo, entonces las mejoras están en el dominio público. No obstante, la versión mejorada, en su conjunto, sigue estando cubierta por la GPL de GNU. No hay ningún problema en esta situación.

Si el gobierno se sirve de contratistas para hacer el trabajo, entonces también las mejoras mismas pueden estar cubiertas por la GPL.

Cuando se enlaza código cubierto por la GPL con otros módulos, ¿los requisitos de la GPL son diferentes según el enlace sea estático o dinámico? (#GPLStaticVsDynamic)

No. Enlazar código cubierto por la GPL con otros módulos, estática o dinámicamente, es hacer una obra derivada basada en el código cubierto por la GPL. Por lo tanto, los términos y condiciones de la Licencia Pública General de GNU cubren la combinación completa. Véase también ¿Qué problemas legales pueden producirse si utilizo bibliotecas incompatibles con la GPL con software GPL?

Cuando se enlaza código cubierto por la LGPL con otros módulos, ¿los requisitos de la LGPL son diferentes según el enlace sea estático o dinámico? (#LGPLStaticVsDynamic)

Para cumplir con la LGPL (cualquiera de las versiones existentes: v2, v2.1 o v3):

(1) Si usted enlaza estáticamente con una biblioteca cubierta por la LGPL, debe proporcionar su aplicación también en un formato objeto (no necesariamente fuente) para que los usuarios puedan modificar la biblioteca y volver a enlazar la aplicación.

(2) Si usted enlaza dinámicamente con una biblioteca cubierta por la LGPL que ya se encuentra en el ordenador del usuario, no es necesario que difunda (convey) el código fuente de la biblioteca. Por otro lado, si usted mismo difunde el ejecutable de la biblioteca cubierta por la LGPL junto con su aplicación —ya sea que esté enlazada estática o dinámicamente—, debe también difundir el código fuente de la biblioteca según una de las modalidades que se indican en la LGPL.

¿Existe alguna manera de que yo pueda licenciar bajo la GPL los archivos que la gente obtenga mediante el uso de mi programa? Por ejemplo, si mi programa se utiliza para crear diseños de hardware, ¿puedo exigir que esos diseños tengan que ser libres? (#GPLOutput)

En general, esto no es legalmente posible. Las leyes de copyright no le autorizan a decir nada acerca del uso que la gente haga de los archivos que obtengan al introducir sus propios datos en el programa que usted ha desarrollado. Si el usuario utiliza el programa que usted ha desarrollado, para introducir o procesar sus propios datos, el copyright de los archivos de salida le pertenece a él, no a usted. Dicho de otro modo, cuando un programa traduce los datos introducidos y los convierte de alguna manera, el código resultante hereda los derechos de los datos a partir de los cuales se ha producido dicho código.

Así pues, la única manera de que usted pudiera tener voz sobre el uso de los archivos de salida sería en el caso de que partes sustanciales de dichos archivos hubieran sido copiadas (más o menos) del texto de su programa. Por ejemplo, parte de los archivos de salida de Bison (V. más arriba) estarían cubiertos por la GPL de GNU si no hubiéramos hecho una excepción para este caso concreto.

Usted, artificialmente, podría hacer que un programa copiara determinado texto en los archivos de salida, aun cuando no existiera ninguna razón técnica para ello. Pero si el texto copiado no sirve a ningún propósito práctico, el usuario podría sencillamente borrar del archivo de salida ese texto y utilizar solo el resto. De esa manera no tendría que respetar las condiciones de redistribución del texto copiado.

¿En qué casos los resultados de un programa cubierto por la GPL están también cubiertos por la GPL? (#WhatCaseIsOutputGPL)

En general, el resultado de un programa no está cubierto por el copyright que cubre el programa. En consecuencia, la licencia del código del programa no se aplica al resultado, ya sea que se canalice hacia un archivo o se haga una captura, grabación o vídeo de la pantalla.

Una excepción sería cuando el programa hace que se visualice una pantalla completa de texto y/o de arte gráfica proveniente del programa. En ese caso el copyright del texto y/o de la gráfica cubre también el resultado. Los programas que producen un resultado audio, como los videojuegos, también entrarían en esta excepción.

Si la gráfica o la música están bajo la GPL, la GPL se aplica cuando usted copia, sin importar de qué manera realice la copia. Sin embargo, puede que también se aplique el uso legítimo (fair use).

Recuerde que algunos programas, especialmente los videojuegos, pueden contener elementos gráficos o audio cubiertos por una licencia diferente de la GPL que cubre el juego. En tales casos, la licencia de los elementos gráficos o el audio fijaría los términos bajo los cuales se puede difundir el vídeo o vídeo en tiempo real. Véase también: ¿Puedo utilizar la GPL para algo que no sea software?

Si añado un módulo a un programa cubierto por la GPL, ¿tengo que usar la GPL como licencia para mi módulo? (#GPLModuleLicense)

La GPL dice que el programa combinado, en su conjunto, ha de publicarse bajo la GPL. De modo que su módulo ha de estar disponible para su uso bajo la GPL.

Pero usted puede dar un permiso adicional para el uso de su código. Si lo desea, puede publicar su módulo bajo una licencia más laxa que la GPL, pero compatible con ella. La página de licencias le ofrece una lista parcial de licencias compatibles con la GPL.

Si una biblioteca se publica bajo la GPL (y no bajo la LGPL), ¿significa esto que cualquier programa que la utilice ha de estar bajo la GPL o una licencia compatible? (#IfLibraryIsGPL)

Sí, puesto que el programa enlaza efectivamente con la biblioteca. Por tanto, los términos de la GPL se aplican a la combinación entera. Los módulos de software que enlazan con la biblioteca pueden estar bajo diversas licencias compatibles con la GPL, pero la obra en su conjunto debe estar licenciada bajo la GPL. Consulte también: ¿Qué significa que una licencia es «compatible con la GPL»?

Si un intérprete de lenguajes de programación es publicado bajo la GPL, ¿significa esto que los programas escritos para ser interpretados por él han de tener licencias compatibles con la GPL? (#IfInterpreterIsGPL)

Cuando el intérprete no hace más que interpretar un lenguaje, la respuesta es no. El programa interpretado, para el intérprete, son solo datos; una licencia de software libre como la GPL, basada en las leyes de copyright, no puede poner límites a los datos que usted use en el intérprete. Puede utilizarlo con datos cualesquiera (el programa interpretado), de la manera que quiera, y no hay ningún requisito con relación a la licencia de esos datos.

No obstante, cuando el intérprete se amplía para proporcionar «enlaces» a otras utilidades (a menudo, aunque no necesariamente, bibliotecas) el programa interpretado se enlaza de hecho a las utilidades que emplea por medio de esos enlaces. Así pues, si esas utilidades están publicadas bajo la GPL, el programa interpretado que las emplea ha de publicarse de manera compatible con la GPL. La JNI o Java Native Interface es un ejemplo de dicho mecanismo de enlace; las bibliotecas a las que se accede de esta manera están enlazadas dinámicamente con los programas en Java que hacen llamadas a ellas. Estas bibliotecas están también enlazadas con el intérprete. Si el intérprete está enlazado estáticamente con esas bibliotecas, o si está diseñado para enlazar dinámicamente con esas bibliotecas en concreto, entonces tiene que publicarse también de manera compatible con la GPL.

Otro caso parecido y muy común es el de proporcionar con el intérprete bibliotecas que son también, ellas mismas, interpretadas. Por ejemplo, Perl viene con muchos módulos en Perl, y una implementación de Java viene con muchas clases Java. Estas bibliotecas y los programas que hacen llamadas a ellas están siempre enlazados dinámicamente.

Una consecuencia de ello es que si decide utilizar en su programa módulos de Perl o clases Java con licencia GPL, deberá publicar el programa de manera compatible con la GPL, con independencia de la licencia utilizada en el intérprete de Perl o Java en el que correrá el programa combinado de Perl o Java.

Estoy escribiendo una aplicación para Windows con Microsoft Visual C++ (o Visual Basic) y voy a publicarla bajo la GPL. ¿Permite la GPL enlazar mi programa dinámicamente con la biblioteca en tiempo de ejecución Visual C++ (o Visual Basic)? (#WindowsRuntimeAndGPL)

Usted puede enlazar su programa con esas bibliotecas y distribuir el programa compilado. Cuando lo hace de esta manera las bibliotecas en tiempo de ejecución son «Bibliotecas del Sistema» (System Libraries), tal como las define la GPLv3. Esto significa que no tiene que preocuparse de incluir el código fuente de las mismas con la «Fuente Correspondiente» (Corresponding Source) del programa. La GPLv2 contiene una excepción similar en la sección 3.

No puede distribuir con el programa esas bibliotecas compiladas en forma DLL. Para evitar que distribuidores sin escrúpulos pudieran aprovechar algún agujero legal en la excepción relativa a las Bibliotecas del Sistema, la GPL dice que las bibliotecas solo pueden tener la consideración de Bibliotecas del Sistema en tanto no se distribuyan con el programa mismo. Si distribuye los DLL con el programa, ya no entrarán dentro de esta excepción; en tal caso la única forma de ajustarse a la GPL consistiría en proporcionar su código fuente, lo cual a usted le resulta imposible.

Es posible escribir programas libres que corran solo en Windows, pero no es una buena idea. Esos programas quedarían «atrapados» por Windows, y no harían por tanto ninguna contribución al mundo libre.

¿Por qué la licencia BSD original es incompatible con la GPL? (#OrigBSD)

Porque impone una exigencia específica que no está en la GPL; a saber, el requisito acerca de la publicidad del programa. La sección 6 de la GPLv2 estipula:

You may not impose any further restrictions on the recipients' exercise of the rights granted herein.[3] Traducción no oficial

La GPLv3 dice algo similar en la sección 10. La cláusula de publicidad impone una nueva restricción, de modo que es incompatible con la GPL.

La licencia BSD revisada carece de dicha cláusula, lo cual elimina el problema.

¿Cuándo un programa y sus accesorios se consideran un solo programa combinado? (#GPLPlugins)

Depende del modo en que el programa principal invoque sus accesorios. Si lo hace utilizando fork y exec y entre ellos se establece una íntima comunicación, compartiendo o enviando de un lado a otro complejas estructuras de datos, eso puede hacer de ellos un solo programa combinado. Si el programa principal utiliza fork y exec para invocar los accesorios y entre ellos no se establece una íntima comunicación, los accesorios son programas independientes.

Si el programa principal enlaza dinámicamente con los accesorios, se producen recíprocas llamadas a funciones y comparten estructuras de datos, consideramos que forman un único programa combinado que debe contemplarse como una ampliación de ambos: programa principal y accesorios. Si el programa principal enlaza dinámicamente con los accesorios, pero la comunicación entre ellos se limita a invocar la función 'principal' del accesorio con algunas opciones y esperar su retorno, estamos ante un caso límite.

Utilizar memoria compartida para la comunicación con estructuras de datos complejas es más o menos equivalente al enlazado dinámico.

Si escribo un accesorio (plug-in) para usar con programa que está bajo la GPL, ¿cuáles son los requisitos que deben cumplir las licencias que puedo utilizar para distribuir el accesorio? (#GPLAndPlugins)

Consulte esta pregunta para determinar cuándo los accesorios y un programa principal se consideran un solo programa combinado y cuándo se consideran obras independientes.

Si el programa principal y los accesorios constituyen un solo programa combinado, esto significa que el accesorio debe publicarse bajo la GPL u otra licencia de software libre compatible con la GPL, y que debe distribuirse junto al código fuente respetando los términos de la GPL. Un programa principal que es independiente de sus accesorios no impone a estos ningún requisito.

¿Puedo utilizar la GPL si escribo un accesorio para un programa que no es libre? (#GPLPluginsInNF)

Consulte esta pregunta para determinar cuándo los accesorios y un programa principal se consideran un solo programa combinado y cuándo se consideran programas independientes.

Si constituyen un solo programa combinado, esto significa que combinar el accesorio cubierto por la GPL con el programa principal no libre vulneraría la GPL. No obstante, puede resolver ese problema legal añadiendo a la licencia de su accesorio una excepción, dando permiso para enlazarlo con el programa principal no libre.

Véase también la pregunta: ¿Puedo escribir software libre que utilice bibliotecas que no son libres?

¿Puedo publicar un programa privativo que está diseñado para cargar un accesorio cubierto por la GPL? (#NFUseGPLPlugins)

Consulte esta pregunta para determinar cuándo los accesorios y un programa principal se consideran un solo programa combinado y cuándo se consideran programas independientes.

Si constituyen un solo programa combinado, entonces el programa principal debe publicarse bajo la GPL u otra licencia de software libre compatible con la GPL, y los términos de la GPL deben ser respetados cuando el programa principal se distribuya para ser utilizado con esos accesorios.

No obstante, si son obras independientes la licencia del accesorio no impone ningún requisito al programa principal.

Véase también la pregunta: ¿Puedo escribir software libre que utilice bibliotecas que no son libres?

Usted tiene un programa cubierto por la GPL que yo quisiera enlazar con mi código para construir un programa privativo. El hecho de enlazar con su programa, ¿significa que tengo que publicar mi programa bajo la GPL? (#LinkingWithGPL)

No exactamente. Significa que debe publicar su programa bajo una licencia compatible con la GPL; para ser más precisos, que sea compatible con una o más versiones de la GPL admitidas por el resto del código presente en la combinación resultante. La combinación estará entonces disponible bajo esas versiones de la GPL.

En tal caso, ¿hay alguna posibilidad de que obtenga una licencia de su programa bajo la GPL Reducida? (#SwitchToLGPL)

Puede preguntarlo, pero la mayoría de los autores se mantendrán firmes y dirán que no. La idea de la GPL es que si usted quiere incluir nuestro código en su programa, su programa deberá ser también software libre. Se confía en que esto ejercerá alguna presión sobre usted para que publique su programa de manera que entre a formar parte de nuestra comunidad.

Siempre le queda la opción legal de no usar nuestro código.

¿Constituye una violación de la GPL distribuir un controlador que no es libre, pensado para enlazar con el núcleo Linux? (#NonfreeDriverKernelLinux)

Linux (el núcleo del sistema operativo GNU/Linux) se distribuye bajo la versión 2 de la GPL de GNU. ¿Constituye una violación de la GPL distribuir un controlador que no es libre, pensado para enlazar con Linux?

Sí, es una violación porque se está haciendo una combinación que da como resultado una obra más amplia. El hecho de que se espera que el usuario una las diferentes partes, en realidad no cambia nada.

Toda persona que contribuye al desarrollo de Linux y que es titular del copyright de una parte considerable del código tiene la facultad de hacer cumplir la GPL, y nosotros animamos a todas ellas a que actúen contra quienes distribuyen controladores para Linux que no son libres.

¿Cómo puedo autorizar que con mi biblioteca, cubierta por la GPL, se enlacen módulos privativos únicamente bajo una interfaz controlada? (#LinkingOverControlledInterface)

Añada este texto a la nota legal de cada archivo incluido en el paquete, al final del texto que dice que el archivo se distribuye bajo la GPL de GNU:

Linking ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

As a special exception, the copyright holders of ABC give you permission to combine ABC program with free software programs or libraries that are released under the GNU LGPL and with independent modules that communicate with ABC solely through the ABCDEF interface. You may copy and distribute such a system following the terms of the GNU GPL for ABC and the licenses of the other code concerned, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code and provided that you do not modify the ABCDEF interface.

Note that people who make modified versions of ABC are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception. If you modify the ABCDEF interface, this exception does not apply to your modified version of ABC, and you must remove this exception when you distribute your modified version.

This exception is an additional permission under section 7 of the GNU General Public License, version 3 (“GPLv3”). [4] Traducción no oficial.

Esta excepción permite enlazar con módulos que están bajo licencias diferentes en la interfaz especificada («ABCDEF»), y asegura al mismo tiempo que los usuarios reciban el código fuente como sucedería normalmente si estuvieran bajo la GPL.

Solo los titulares del copyright del programa tienen capacidad legal para autorizar esta excepción. Si usted escribió todo el programa, suponiendo que su empleador o centro de enseñanza no reclame el copyright, usted es el titular del copyright, de modo que puede autorizar la excepción. Pero si quiere utilizar en su código partes de otros programas escritos por otros autores y cubiertos por la GPL, usted no puede autorizar esta excepción en su lugar. Tendrá que obtener la aprobación de los titulares del copyright de esos programas.

He escrito una aplicación que enlaza con muchos componentes distintos que tienen licencias diferentes. No tengo nada claro qué limitaciones afectan a la licencia de mi programa. ¿Pueden explicarme qué licencias puedo usar? (#ManyDifferentLicenses)

Para responder a esta pregunta necesitaríamos ver la lista completa de cada uno de los componentes que utiliza su programa, la licencia de cada uno de ellos y una breve descripción (bastarían unas líneas para cada caso) de cómo los utiliza su biblioteca. Dos ejemplos serían:

  • Para hacer que mi programa funcione ha de estar enlazado con la biblioteca X, disponible bajo la GPL Reducida.
  • Mi programa hace una llamada del sistema (mediante una línea de órdenes hecha por mí) al programa Y, que está licenciado bajo «la GPL, con una excepción especial que permite su enlace con Z».
¿Qué diferencia hay entre un «agregado» y otro tipo de «versiones modificadas»? (#MereAggregation)

Un «agregado» consiste en un conjunto de programas independientes distribuidos juntos en el mismo CD-ROM o en otro soporte. La GPL le permite crear y distribuir un agregado, incluso si las licencias del resto del software no son libres o son incompatibles con la GPL. La única condición es que no publique el agregado bajo una licencia que prohíba a los usuarios ejercer derechos que la licencia individual de cada programa les concede.

¿Dónde está el límite entre dos programas separados y un programa con dos partes? Esta es una cuestión legal que, en último término, tendrán que decidir los tribunales. A nuestro juicio, un criterio adecuado viene determinado por el mecanismo de comunicación (exec, tuberías, rpc, invocación de funciones dentro de un espacio de direcciones compartido, etc.) y por la semántica de la comunicación (qué tipo de información se intercambia).

Si los módulos están incluidos en el mismo archivo ejecutable, entonces no hay duda de que están combinados en un solo programa. Si los módulos están diseñados para su ejecución conjunta en un espacio de direcciones compartido, es casi seguro que eso significa que están combinados en un solo programa.

Por contra, tuberías, sockets y argumentos en la línea de órdenes son mecanismos de comunicación habitualmente utilizados entre dos programas independientes. Así pues, cuando los módulos se utilizan para su comunicación, normalmente se trata de programas independientes. Pero si la semántica de la comunicación es lo bastante íntima, teniendo lugar un intercambio de estructuras de datos internos complejos, eso podría también servir de base para considerar que las partes están combinadas formando un programa más grande.

Cuando se trata de determinar si dos piezas de software conforman una sola obra, ¿tiene alguna relevancia el hecho de que el software se encuentre dentro de uno o más contenedores? (#AggregateContainers)

No, No, el análisis de si constituyen una sola obra o un agregado no se ve afectado por su inclusión en contenedores.

¿Por qué la FSF pide a quienes contribuyen al desarrollo de programas de cuyo copyright es titular la FSF, que asignen el copyright a la FSF? Si soy el titular del copyright de un programa que está bajo la GPL, ¿también yo debo hacerlo? Si es así, ¿cómo?(#AssignCopyright)

Nuestros abogados nos han explicado que para estar en la mejor posición para hacer respetar la GPL en los tribunales contra los infractores, tenemos que mantener el copyright del programa de la manera más simple posible. Para ello pedimos a los colaboradores que o bien asignen a la FSF el copyright de las contribuciones, o bien que renuncien al copyright de las mismas.

También pedimos a los colaboradores individuales que obtengan de sus empleadores (si los hay) su renuncia al copyright, de tal modo que podamos estar seguros de que esos empleadores no van a reclamar la titularidad de las contribuciones.

Por supuesto, si todos los colaboradores ponen su código en el dominio público, no habrá copyright con el que hacer respetar la GPL. Así, pues, animamos a la gente a que asignen el copyright de las contribuciones de códigos grandes, y que pongan en el dominio público solo los pequeños cambios.

Si quiere hacer un esfuerzo para hacer respetar la GPL en su programa, probablemente será una buena idea que siga esas pautas. Si desea más información, escriba a <licensing@gnu.org>.

¿Puedo modificar la GPL y crear una licencia modificada? (#ModifyGPL)

Es posible hacer versiones modificadas de la GPL, pero suele tener consecuencias prácticas.

Puede utilizar legalmente los términos de la GPL (tal vez modificados) en otra licencia, siempre que le dé a su licencia un nombre diferente y no incluya el preámbulo de la GPL, y siempre que modifique la instrucciones de uso finales lo suficiente para que su redacción sea claramente diferente y que no mencione a GNU (aunque las estipulaciones que describa puedan ser similares).

Si quiere usar nuestro preámbulo en una licencia modificada, escriba por favor a <licensing@gnu.org> para pedir permiso. A tal efecto, nos gustaría examinar los requisitos de la licencia para ver si estamos de acuerdo con ellos.

Si bien nosotros no plantearemos objeciones legales a que de tal manera haga una licencia modificada, esperamos que lo piense mejor y no lo haga. Tal licencia modificada será casi con toda seguridad incompatible con la GPL de GNU, y esa incompatibilidad impedirá combinaciones de módulos que pueden ser muy útiles. La mera proliferación de diferentes licencias de software libre es de por sí un problema.

En lugar de modificar la GPL, por favor use el mecanismo de excepción que ofrece la versión 3 de la GPL.

Si utilizo un programa obtenido bajo la GPL de GNU, ¿estoy autorizado a modificar el código original para hacer un nuevo programa, y luego distribuir y vender ese nuevo programa comercialmente? (#GPLCommercially)

Usted está autorizado a vender comercialmente copias del programa modificado, pero solo bajo los términos de la GPL de GNU. Así, por ejemplo, usted debe poner el código fuente a disposición de los usuarios del programa en la forma descrita en la GPL, y estos han de estar autorizados a redistribuirlo y modificarlo en la forma descrita en la GPL.

Estos requisitos son condición indispensable para que usted pueda incluir en su propio programa el código cubierto por la GPL que ha recibido.

¿Puedo utilizar la GPL para algo que no sea software? (#GPLOtherThanSoftware)

Puede aplicar la GPL a obras de cualquier tipo, siempre que quede claro qué constituye el «código fuente» de la obra. La GPL lo define como la forma de la obra más idónea para operar cambios en ella.

No obstante, para manuales y libros de texto, o en general cualquier tipo de obra pensada para instruir en cierta materia, recomendamos el uso de la GFDL antes que la GPL.

¿Cómo funciona la LGPL con Java? (#LGPLJava)

Véase este artículo para más detalles. Funciona como se proyectó, como se pretendía y como se esperaba.

Considere el siguiente caso: 1) X publica la versión 1 de un proyecto bajo la GPL. 2) Y contribuye al desarrollo de la versión 2 con cambios y código nuevo basado en la versión 1. 3) X quiere poner la versión 2 bajo una licencia distinta de la GPL. ¿Necesita X el permiso de Y? (#Consider)

Sí. Se le exigió a Y que publicara su versión bajo la GPL de GNU debido precisamente a que se basó en la versión 1 de X. Nada obligaba a Y a aceptar ninguna otra licencia para su código. Por consiguiente, X ha de obtener el permiso de Y antes de publicar el código bajo otra licencia.

Me gustaría incorporar software cubierto por la GPL a mi sistema privativo. No tengo más permiso para hacerlo que el que me conceda la GPL. ¿Puedo hacerlo? (#GPLInProprietarySystem)

Usted no puede incorporar programas cubiertos por la GPL a un sistema privativo. El objetivo de la GPL consiste en garantizar a todo el mundo la libertad de copiar, redistribuir, examinar y modificar el programa. Si le estuviera permitido incorporar software cubierto por la GPL a un sistema privativo, la consecuencia sería que el software cubierto por la GPL se convertiría también en software privativo.

Un sistema que incorpore un programa cubierto por la GPL es una versión ampliada de ese programa. La GPL dice que toda versión ampliada del programa, si llega a publicarse, ha de serlo bajo la GPL. Esto es así por dos razones: para asegurarnos de que los usuarios que obtienen el software reciban las libertades que deben tener, y para animar a la gente a publicar también ellos las mejoras que hagan.

No obstante, en muchos casos usted puede distribuir el software cubierto por la GPL junto a su sistema privativo. Para hacerlo de forma válida, debe asegurarse de que los programas libres y privativos se comunican a distancia, de que no estén combinados de ninguna manera que los convierta de hecho en un solo programa.

La diferencia entre esto y la «incorporación» del software cubierto por la GPL es en parte un asunto substancial y en parte una cuestión de forma. La parte substancial es esta: si dos programas se combinan de tal manera que pasan a ser de hecho dos partes de un único programa, usted no puede tratarlos como si fueran dos programas separados. Así, pues, la GPL ha de cubrirlos en conjunto.

Si los dos programas permanecen bien separados, como el compilador y el núcleo, o como un editor y un intérprete de comandos (shell), entonces puede tratarlos como dos programas separados; pero tiene que hacerlo adecuadamente. Se trata de una simple cuestión de forma: el modo en que se describe lo que se está haciendo. ¿Por qué nos interesa esto? Porque queremos asegurarnos de que los usuarios entiendan con claridad el carácter libre del software cubierto por la GPL que se halla dentro de un conjunto más amplio.

Si la gente distribuyera software cubierto por la GPL llamándolo «parte de» un sistema que los usuarios saben que es parcialmente privativo, estos podrían tener dudas acerca de sus derechos en relación con el software cubierto por la GPL. Pero si saben que lo que han recibido es un programa libre más otro programa, uno junto al otro, tendrán claro cuáles son sus derechos.

Utilizar un cierto programa de GNU cubierto por la GPL no encaja en nuestro proyecto para hacer software privativo. ¿Harían una excepción con nosotros? Eso representaría más usuarios del programa. (#WillYouMakeAnException)

Lo sentimos, pero no hacemos tales excepciones. No sería correcto.

Nuestro objetivo no es alcanzar el mayor número de usuarios. Lo que intentamos es más bien proporcionar las libertades fundamentales a tantos usuarios como sea posible. En general, los proyectos de software privativo son un obstáculo en lugar de una contribución a la causa de la libertad.

En ocasiones hacemos excepciones en la licencia para apoyar proyectos que están produciendo software libre bajo una licencia distinta de la GPL. En cualquier caso, tenemos que encontrar un buen argumento en el sentido de que esto servirá para hacer avanzar la causa del software libre.

A veces cambiamos también las condiciones de distribución de un paquete, cuando vemos claro que ese es el camino correcto para servir a la causa del software libre; pero en este terreno somos muy cautelosos y se nos tienen que ofrecer razones muy convincentes.

Me gustaría incorporar software cubierto por la GPL a mi sistema privativo. ¿Puedo hacerlo poniendo un módulo «envoltorio», bajo una licencia compatible con la GPL pero más permisiva y laxa (como la licencia X11), entre la parte cubierta por la GPL y la parte privativa? (#GPLWrapper)

No. La licencia X11 es compatible con la GPL, de manera que al programa cubierto por la GPL puede añadirle un módulo y ponerlo bajo la licencia X11. Pero si fuera a incorporar ambos dentro de un programa más grande, el conjunto incluiría la parte cubierta por la GPL, de tal modo que habría que licenciar el programa por entero bajo la GPL.

El hecho de que el módulo privativo A se comunique con el módulo C, cubierto por la GPL, solo mediante el módulo B, cubierto por la licencia X11, es irrelevante desde el punto de vista legal; lo importante es el hecho de que el módulo C está incluido en el conjunto.

¿Dónde puedo obtener más información acerca de la excepción relativa a las bibliotecas en tiempo de ejecución de GCC? (#LibGCCException)

La excepción relativa a las bibliotecas en tiempo de ejecución de GCC comprende libgcc, libstdc++, libfortran, libgomp, libdecnumber y otras bibliotecas distribuidas con GCC. El propósito de la excepción es permitir a la gente distribuir programas compilados con GCC en los términos que ellos elijan, aun cuando partes de esas bibliotecas queden incluidas en el ejecutable como consecuencia del proceso de compilación. Para obtener más información, consulte las FAQ acerca de la excepción relativa a las bibliotecas en tiempo de ejecución de GCC.

Me gustaría modificar programas cubiertos por la GPL y enlazarlos con las bibliotecas de portabilidad de Money Guzzler Inc. No puedo distribuir el código fuente de esas bibliotecas, de manera que el usuario que quisiera cambiar esas versiones tendría que obtener dichas bibliotecas por separado. ¿Por qué la GPL no lo permite? (#MoneyGuzzlerInc)

Hay dos razones para ello. En primer lugar, una de carácter general. Si permitiéramos a la empresa A hacer un archivo privativo, y a la empresa B distribuir software cubierto por la GPL enlazado con ese archivo, la consecuencia sería un enorme agujero en la GPL por el que podría colarse cualquier cosa. Daría carta blanca para reservarse el código fuente de toda clase de modificaciones y extensiones del software cubierto por la GPL.

Que todo usuario tengan acceso al código fuente es uno de nuestros objetivos primordiales, de modo que eso es algo que queremos evitar a toda costa.

Más en concreto, las versiones de los programas enlazados con las bibliotecas Money Guzzler no serían en realidad software libre tal y como nosotros lo entendemos: no vendrían acompañadas del código fuente completo que permite a los usuarios cambiar y recompilar el programa.

Si la licencia para un módulo Q contiene un requisito que es incompatible con la GPL, pero el requisito sólo es aplicable cuando Q se distribuye solo y no cuando Q está incluido en un programa más grande, ¿hace eso que la licencia sea compatible con la GPL? ¿Puedo combinar o enlazar Q con un programa cubierto por la GPL? (#GPLIncompatibleAlone)

Si un programa P se publica bajo la GPL, eso significa que todas y cada una de sus partes pueden utilizarse bajo la GPL. Si le integra el módulo Q y publica el programa combinado P+Q bajo la GPL, eso significa que cualquier parte de P+Q puede usarse bajo la GPL. Q es una parte de P+Q. Así, pues, publicar P+Q bajo la GPL significa que Q o cualquier parte de él puede utilizarse bajo la GPL. Dicho de otro modo, un usuario que obtiene P+Q bajo la GPL puede borrar P, de manera que le quede solo Q, todavía bajo la GPL.

Si la licencia del módulo Q le autoriza a dar permiso para ello, entonces es compatible con la GPL. En caso contrario no es compatible con la GPL.

Si la licencia de Q dice, en términos que no dejen lugar a dudas, que si usted redistribuye Q por sí solo debe hacer ciertas cosas (no compatibles con la GPL), entonces no le permite distribuir Q bajo la GPL. De ahí se deduce que tampoco puede publicar P+Q bajo la GPL. De modo que no puede enlazar ni combinar P con Q.

¿Puedo publicar únicamente en forma binaria una versión modificada de un programa cubierto por la GPL? (#ModifiedJustBinary)

No. Lo que se pretende con la GPL es justamente que todas las versiones modificadas hayan de ser software libre, lo que significa, en particular, que el código fuente de las versiones modificadas está a disposición de los usuarios.

Me he bajado solo los binarios. Si distribuyo copias, ¿tengo que conseguir los archivos fuente y distribuirlos también? (#UnchangedJustBinary)

Sí. La regla general es que si distribuye binarios, debe también distribuir el código fuente correspondiente en su totalidad. La excepción para el caso en que usted haya recibido una oferta escrita de proporcionarle el código fuente es bastante limitada.

Quiero distribuir los binarios por medio de un soporte físico sin acompañarlos de los archivos fuente. ¿Puedo proporcionar el código fuente por FTP? (#DistributeWithSourceOnInternet)

La versión 3 de la GPL le autoriza a ello; para más detalles, consulte el punto (b) de la sección 6. Bajo la versión 2 ciertamente usted puede hacer la oferta de facilitar los fuente por FTP, y así los obtendrá la mayor parte de los usuarios. No obstante, si alguno de ellos prefiere recibirlos en un medio físico, por correo, usted está obligado a proporcionárselos.

Si distribuye los binarios por FTP, debe distribuir los archivos fuente también por FTP

Un amigo consiguió un binario cubierto por la GPL, con una oferta de facilitar el código fuente, e hizo una copia para mí. ¿Puedo también yo hacer uso de la oferta para obtener el archivo fuente? (#RedistributedBinariesGetSource)

Sí, puede. La oferta ha de estar abierta a cualquiera que tenga una copia del binario al que acompaña. Esta es la razón de que la GPL diga que su amigo, junto a la copia del binario, debe darle una copia de la oferta, de modo que usted pueda aprovecharla.

¿Puedo poner los binarios en mi servidor y los archivos fuente en un sitio diferente de Internet? (#SourceAndBinaryOnDifferentSites)

Sí. El punto (d) de la sección 6 lo autoriza. No obstante, debe facilitar a la gente instrucciones claras para que puedan obtener los archivos fuente, y debe poner cuidado y asegurarse de que los mismos continúen disponibles durante todo el tiempo en que usted distribuye el código objeto.

Quiero distribuir en forma binaria una versión ampliada de un programa cubierto por la GPL. ¿Basta con distribuir el código fuente de la versión original? (#DistributeExtendedBinary)

No, debe suministrar el código fuente que corresponde al binario. «Código correspondiente» significa el código a partir del cual los usuarios pueden reconstruir ese mismo binario.

Parte de la idea del software libre consiste en que los usuarios tengan acceso al código fuente de los programas que utilizan. Quienes utilicen su versión deben tener acceso al código fuente de la misma.

Un objetivo primordial de la GPL es reforzar el mundo libre asegurándose de que las mejoras a un programa libre serán también libres. Si usted publica una versión mejorada de un programa cubierto por la GPL, también deberá publicar bajo la GPL el código fuente mejorado.

Quiero distribuir los binarios, pero distribuir el código fuente completo es un engorro. ¿Vale si con los binarios proporciono a los usuarios los diffs de la versión «estándar»? (#DistributingSourceIsInconvenient)

La petición es bienintencionada, pero este modo de proporcionar el código fuente no es satisfactorio.

A un usuario que quiera el código fuente dentro de un año es posible que para entonces le resulte ya imposible obtener la versión apropiada de otro sitio. El sitio con la distribución estándar puede tener una versión más reciente, pero los mismos diffs probablemente no funcionarán con esa versión.

Así pues, con los binarios tiene que proporcionar los archivos fuente completos, no solo los diffs.

¿Puedo poner los binarios a disposición en un servidor pero enviar los archivos fuente solo a quien los solicite? (#AnonFTPAndSendSources)

Si quiere poner el código objeto a disposición en un servidor, también ha de proporcionar en un servidor el código fuente correspondiente. La manera más sencilla de hacerlo es publicarlos en el mismo servidor, pero si lo desea puede facilitar instrucciones para conseguir los archivos fuente en otro servidor, o incluso en un sistema de control de versiones. Puede hacerlo de una manera u otra, pero ha de ser igual de sencillo acceder al código fuente que al código objeto. Esto se detalla en el punto (d) de la sección 6 de la GPLv3.

Los archivos fuente que usted proporcione deben corresponder exactamente a los binarios. Debe asegurarse especialmente de que correspondan a la misma versión del programa, no a una anterior ni a una posterior.

¿Cómo puedo asegurarme de que todo usuario que se baje los binarios obtenga también los archivos fuente? (#HowCanIMakeSureEachDownloadGetsSource)

No tiene por qué asegurarse de esto. Mientras publique los archivos fuente y los binarios de manera que los usuarios puedan ver lo que hay disponible y tomen lo que deseen, usted ya ha hecho todo lo que se le pide. Que el usuario se baje o no los archivos fuente depende de él.

El propósito de nuestros requisitos para los redistribuidores es asegurarnos de que los usuarios puedan acceder al código fuente, no forzar a los usuarios a bajárselo aun cuando no quieran hacerlo.

¿La GPL me exige proveer un código fuente que pueda ser compilado de manera tal que el valor hash de comprobación coincida exactamente con el valor hash del binario que distribuyo? (#MustSourceBuildToMatchExactHashOfBinary)

«Código fuente correspondiente completo» se refiere al código fuente a partir del cual se obtuvieron los binarios, pero esto no implica que las herramientas que usted utiliza deban ser capaces de producir un binario cuyo valor hash coincida exactamente con el del binario que distribuye. En algunos casos puede resultar (casi) imposible obtener, a partir del código fuente, un binario que tenga un valor hash idéntico al binario que se distribuye; considere los siguientes ejemplos: el sistema podría insertar la fecha y la hora en los binarios, o el binario podría haber sido construido utilizando un compilador de versión diferente (incluso una versión que no haya sido publicada).

Una empresa está utilizando una versión modificada de un programa bajo la GPL en un sitio web. ¿Dice la GPL que deben publicar los archivos fuente modificados? (#UnreleasedMods)

La GPL permite a cualquiera hacer una versión modificada y utilizarla sin nunca distribuirla a otros. Lo que esa empresa está haciendo es un caso particular de ello. Por tanto, la empresa no tiene por qué publicar los archivos fuente modificados. La situación es diferente cuando el programa modificado está licenciado bajo los términos de la Affero GPL de GNU.

Compare esto con la situación en la que el sitio web contiene o enlaza con programas independientes, cubiertos por la GPL, que se distribuyen al usuario cuando este visita ese sitio (a menudo escritos en JavaScript, aunque también se utilizan otros lenguajes). En esta situación, al usuario debe proporcionársele el código fuente de los programas que se distribuyen, bajo los términos de la GPL.

Una empresa está utilizando una versión modificada de un programa bajo la Affero GPL de GNU (AGPL) en un sitio web. ¿Dice la AGPL que deben publicar los archivos fuente modificados? (#UnreleasedModsAGPL)

La Affero GPL de GNU exige que las versiones modificadas del software ofrezcan la oportunidad de recibir el código fuente a todos los usuarios que interactúen con él a través de una red de ordenadores. Lo que la empresa está haciendo entra dentro de ese caso, de modo que debe publicar el código fuente modificado.

¿Es «distribución» hacer y usar múltiples copias dentro de una organización o empresa? (#InternalDistribution)

No, en ese caso la organización está haciendo las copias solo para sí misma. En consecuencia, una empresa u otra organización puede crear una versión modificada e instalar esa versión en sus equipos, sin que la dirección dé permiso para hacer pública esa versión fuera de la empresa.

No obstante, cuando la organización facilita copias a otras organizaciones o individuos, eso es distribución. En particular, es distribución facilitar copias a clientes para su uso fuera de la empresa.

Si alguien roba un CD que contiene una versión de un programa cubierto por la GPL, ¿le concede la GPL al ladrón el derecho de redistribuir esa versión? (#StolenCopy)

Si la versión ha sido publicada en algún otro lugar, entonces el ladrón probablemente tiene derecho a hacer copias y redistribuirlas bajo la GPL, pero si es encarcelado por robar el CD, puede que para hacerlo tenga que esperar a que lo dejen en libertad.

Si la versión en cuestión no está publicada y la empresa la considera un secreto comercial, entonces publicarla puede constituir una vulneración de la ley de secretos comerciales, dependiendo de otras circunstancias. La GPL no cambia esto. Si la empresa trató de publicar su versión y la sigue tratando como secreto comercial, esto vulneraría la GPL; pero si la empresa no ha publicado esa versión, no se ha producido tal vulneración.

¿Qué sucede si una empresa distribuye como secreto comercial una copia de alguna obra de otros desarrolladores cubierta por la GPL? (#TradeSecretRelease)

La compañía ha violado la GPL y tendrá que dejar de distribuir ese programa. Note la diferencia con el anterior caso del robo: cuando una copia es robada la empresa no distribuye intencionadamente esa copia, de modo que en tal caso la empresa no vulnera la GPL.

¿Qué sucede si una empresa me proporciona como secreto comercial una copia de una obra suya cubierta por la GPL? (#TradeSecretRelease2)

Si el programa distribuido no incluye ninguna obra ajena cubierta por la GPL, entonces la compañía no está violando la GPL (para más información, V. «El desarrollador de un programa cubierto por la GPL, ¿se encuentra vinculado por la GPL?»). Pero esa compañía está haciendo dos declaraciones contradictorias acerca de lo que usted puede hacer con el programa: que puede redistribuirlo y que no puede hacerlo. Sería razonable pedir una aclaración de las condiciones de uso de ese programa antes de aceptar una copia.

¿Por qué algunas bibliotecas GNU están publicadas bajo la GPL ordinaria en lugar de la GPL Reducida? (#WhySomeGPLAndNotLGPL)

La utilización de la GPL Reducida para una biblioteca concreta representa una renuncia para el software libre. Significa que abandonamos parcialmente el intento de defender la libertad del usuario y algunos de los requisitos de distribución de lo que se crea sobre software cubierto por la GPL. En sí mismos, estos son cambios a peor.

A veces una retirada parcial es una buena estrategia. En ocasiones, la utilización de la GPL reducida para una biblioteca podría llevar a un mayor uso de esa biblioteca, y así, a su mejora, a un mayor apoyo al software libre, etc. Esto podría ser bueno para el software libre si sucede en gran medida. ¿Pero en qué medida sucederá? Solo podemos hacer suposiciones.

Estaría bien hacer la prueba con la LGPL en cada biblioteca por algún tiempo, ver si ayuda y cambiar a la GPL si no ayudó. Pero esto no es factible. Una vez que en una biblioteca concreta utilizamos la LGPL, cambiar de licencia sería complicado.

De modo que decidimos qué licencia emplear en las bibliotecas examinando cada caso uno por uno. Hay una extensa explicación de nuestra opinión en este tema.

¿Por qué los programas deben decir «Versión 3 de la GPL o cualquier versión posterior»? (#VersionThreeOrLater)

De cuando en cuando, en un intervalo de años, modificamos la GPL: a veces para clarificarla, a veces para autorizar ciertos tipos de uso antes no permitidos, y a veces para hacer más estricto algún requisito (los dos últimos cambios se hicieron en 2007 y en 1991). Utilizar esta «referencia indirecta» en cada programa nos permite cambiar las condiciones de distribución para todo el software GNU en su conjunto cuando actualizamos la GPL.

Si en los programas faltara esta referencia indirecta, nos veríamos obligados a discutir el cambio pormenorizadamente con numerosos titulares del copyright, lo que sería materialmente imposible. En la práctica, ya no sería posible que el software GNU tuviera unas condiciones de distribución uniformes.

Suponga que un programa dice «Versión 3 de la GPL o cualquier versión posterior», y que se publica una nueva versión de la GPL. Si la nueva versión da un permiso adicional, ese permiso alcanzaría de inmediato a todos los usuarios del programa. Pero si la nueva versión de la GPL plantea exigencias más estrictas, el uso de la versión actual del programa no sufriría ninguna restricción ya que se podría seguir utilizando bajo la versión 3 de la GPL. Cuando un programa dice «Versión 3 de la GPL o cualquier versión posterior», a los usuarios siempre les estará permitido utilizarlo de acuerdo con las condiciones de la versión 3 de la GPL, aun cuando existan nuevas versiones de esta licencia.

Si un requisito más estricto en una nueva versión de la GPL no tiene por qué ser respetado en el software ya existente, ¿cuál es su utilidad? Una vez que se disponga de la versión 4 de la GPL, los desarrolladores de la mayor parte de los programas cubiertos por la GPL publicarán las siguientes versiones de sus programas indicando «Versión 4 de la GPL o cualquier versión posterior». Entonces los usuarios tendrán que seguir los requisitos, más estrictos, de la versión 4 de la GPL en toda versión posterior del programa.

No obstante, los desarrolladores no están obligados a hacerlo así; si lo desean pueden seguir autorizando el uso de la versión anterior de la GPL.

¿Es buena idea emplear una licencia que diga que cierto programa puede usarse solo bajo la última versión de la GPL de GNU? (#OnlyLatestVersion)

La razón de que no deba hacerlo es que eso podría dar lugar a que un día los usuarios perdieran automáticamente algunos permisos que antes tenían.

Suponga que un programa haya sido publicado en 2000 bajo «la versión más reciente de la GPL». En ese momento la gente lo habría utilizado bajo la GPLv2. Pero el día que publicamos la GPLv3, en 2007, todo el mundo se habría visto de repente obligado a utilizarlo bajo la GPLv3.

Algunos usuarios podrían no conocer siquiera la existencia de la versión 3 de la GPL, pero se les estaría exigiendo que la utilizaran. Podrían estar vulnerando la licencia del programa inadvertidamente, simplemente por no haber tenido conocimiento de esa noticia. Esta no es manera de tratar a la gente.

Creemos que es un error revocar permisos ya concedidos, a menos que se deba a alguna vulneración. Si su libertad pudiera ser revocada, no sería una auténtica libertad. Así pues, si obtiene una copia de una versión de un programa bajo determinada versión de una licencia, siempre debe disfrutar de los derechos que concede dicha versión. Publicarla bajo la «versión N de la GPL o cualquier versión posterior» se atiene a este principio.

¿Por qué no utilizan la GPL para manuales? (#WhyNotGPLForManuals)

Se puede utilizar la GPL para un manual, pero es mucho mejor emplear la GNU Free Documentation License (GFDL).

La GPL se diseñó para programas; contiene muchas cláusulas complejas que son cruciales para los programas, pero que no tienen ningún sentido para un libro o manual. Por ejemplo, cualquiera que publicara el libro en papel tendría que incluir el «código fuente» del libro en formato electrónico junto a cada copia impresa, o acompañarlo de una oferta por escrito de proporcionar el «código fuente» más adelante.

Por contra, la GFDL tiene cláusulas que permiten a los editores de manuales libres obtener un beneficio vendiendo copias: textos de cubierta, por ejemplo. Las reglas especiales para las secciones de Aprobaciones hacen posible utilizar la GFDL para un estándar oficial. Esto permitiría versiones modificadas, pero no podrían ser etiquetadas como «la estándar».

Al utilizar la GFDL permitimos cambios en el texto de un manual que trata un asunto técnico. Es importante poder modificar las partes técnicas, pues quien modifica un programa debe modificar también la documentación correspondiente. La libertad de hacer esto es un imperativo ético.

Nuestros manuales incluyen también secciones en las que se expone nuestra posición política con respecto al software libre. Las marcamos como «invariables», de modo que no puedan ser modificadas o eliminadas. La GFDL prevé estas «secciones invariables».

¿Cómo se aplica la GPL a los tipos de letra? (#FontException)

Adjudicar una licencia a los tipos de letra es un asunto complejo que precisa un estudio serio. La siguiente excepción es experimental, pero está aprobada para uso general. Agradeceremos las sugerencias en torno a este asunto: lea por favor este artículo aclaratorio y escriba a licensing@gnu.org.

Para utilizar esta excepción, añada el siguiente texto al aviso acerca de la licencia de cada archivo del paquete (hasta donde sea posible), al final del texto que dice que el archivo se distribuye bajo la GPL de GNU:

As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.[5] Traducción no oficial.

Estoy escribiendo un sistema de mantenimiento para un sitio web (llamado por algunos «sistema de gestión de contenidos»), o alguna otra aplicación que genera páginas web a partir de plantillas. ¿Qué licencia debería utilizar para esas plantillas? (#WMS)

Las plantillas no son tan relevantes como para que haga falta emplear el copyleft para protegerlas. Normalmente no hay problema en utilizar el copyleft para obras menores, pero las plantillas son un caso especial, ya que se combinan con datos proporcionados por los usuarios de la aplicación y esa combinación se distribuye. Así pues, le recomendamos que licencie sus plantillas bajo condiciones sencillas y permisivas.

Algunas plantillas hacen llamadas a funciones de JavaScript. Puesto que el JavaScript a menudo no es trivial, merece la pena ponerlo bajo copyleft. Dado que las plantillas se combinarán con datos del usuario, es posible que el conjunto plantilla+datos-del-usuario+JavaScript se considere una obra sujeta a las leyes de copyright. Por tanto, debe trazarse una línea divisoria entre el JavaScript (bajo copyleft) y el código del usuario (normalmente bajo condiciones incompatibles).

Un diagrama del contenido arriba mencionado

Así lo hace esta excepción para el código JavaScript:

As a special exception to the GPL, any HTML file which merely makes function calls to this code, and for that purpose includes it by reference shall be deemed a separate work for copyright law purposes. In addition, the copyright holders of this code give you permission to combine this code with free software libraries that are released under the GNU LGPL. You may copy and distribute such a system following the terms of the GNU GPL for this code and the LGPL for the libraries. If you modify this code, you may extend this exception to your version of the code, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.[6] Traducción no oficial.

¿Puedo publicar bajo la GPL un programa que he desarrollado utilizando herramientas que no son libres? (#NonFreeTools)

Qué programas haya utilizado para editar el código fuente, compilarlo, estudiarlo o grabarlo es habitualmente irrelevante por lo que se refiere a la licencia de dicho código fuente.

No obstante, si con el código fuente enlaza bibliotecas que no son libres, deberá tenerlo en cuenta. Esto no le impide publicar el código bajo la GPL, pero si las bibliotecas no se ajustan a la excepción de la GPL relativa a las «bibliotecas del sistema» deberá añadir una nota dando permiso para enlazar su programa con ellas. El punto de las FAQ acerca de la utilización de bibliotecas incompatibles con la GPL le proporciona más información acerca del modo de hacerlo.

¿Hay traducciones de la GPL a otras lenguas? (#GPLTranslations)

Sería útil disponer de traducciones de la GPL en lenguas distintas del inglés. Hay personas que han hecho traducciones y nos las han enviado. Pero no nos hemos atrevido a darles validez oficial. Eso entraña un riesgo tan grande que no nos atrevemos a asumirlo.

Un documento legal es en cierto modo como un programa. Traducirlo es como trasladar un programa de un lenguaje y sistema operativo a otro. Solo un jurista que conozca bien ambas lenguas puede hacerlo, e incluso así existen riesgos de cometer algún error.

Si diéramos nuestra aprobación oficial a una traducción de la GPL estaríamos permitiendo a todo el mundo hacer todo lo que la traducción diga que pueden hacer. Si la traducción es absolutamente precisa, perfecto. Pero si la traducción contiene algún error, los resultados podrían ser desastrosos e irreparables.

Si un programa contiene un fallo podemos publicar una nueva versión, y probablemente la versión antigua irá poco a poco desapareciendo. Pero una vez que hemos autorizado a todo el mundo a actuar conforme a una traducción concreta, si más adelante descubrimos que contenía un error ya no hay forma de revocar esa autorización.

En ocasiones hay gente que se ofrece a hacer la traducción por nosotros. Si el problema radicara en encontrar a alguien que hiciera ese trabajo, ya se habría resuelto. Pero el verdadero problema es el riesgo de errores, y los ofrecimientos para hacer el trabajo no evitan el riesgo. En ningún caso podríamos autorizar una traducción realizada por alguien que no fuera jurista.

En consecuencia, por el momento no aprobamos traducciones de la GPL como universalmente válidas y vinculantes. En vez de eso, hacemos dos cosas:

  • Remitir a la gente a traducciones no oficiales. Esto significa que permitimos que se hagan traducciones de la GPL, pero no las aprobamos como legalmente válidas y vinculantes.

    Una traducción no aprobada no tiene fuerza legal, y así debe decirlo de forma explícita. Debe indicarlo como sigue:

    This translation of the GPL is informal, and not officially approved by the Free Software Foundation as valid. To be completely sure of what is permitted, refer to the original GPL (in English).[7].

    Sin embargo, la traducción no aprobada puede servir de pista para comprender la GPL en inglés. Para muchos usuarios eso es suficiente.

    No obstante, las empresas que utilicen software GNU en actividades comerciales y la gente que lo distribuya públicamente a través de FTP, tendría que consultar la auténtica GPL, en inglés, para cerciorarse de lo que permite.

  • Publicación de traducciones válidas únicamente para un solo país.

    Estamos considerando la idea de publicar traducciones que sean oficialmente válidas para un solo país. De este modo, si hay algún error quedaría limitado a ese país y el daño no sería demasiado grande.

    Así y todo, la traducción exigiría un considerable esfuerzo por parte de algún jurista voluntarioso y experto, por lo que no podemos prometer que vayamos a poder ofrecerlas en breve.

Si un intérprete de lenguajes de programación tiene una licencia que es incompatible con la GPL, ¿puedo correr en él programas cubiertos por la GPL? (#InterpreterIncompat)

Cuando el intérprete no hace más que interpretar un lenguaje, la respuesta es sí. El programa interpretado, para el intérprete, son solo datos; la GPL no pone límites a las herramientas que se utilicen para procesar el programa.

No obstante, cuando el intérprete se amplía para proporcionar «enlaces» a otras utilidades (a menudo, aunque no necesariamente, bibliotecas) el programa interpretado se enlaza de hecho a las utilidades que emplea por medio de esos enlaces. La JNI (Java Native Interface) es un ejemplo de dicho mecanismo de enlace; las bibliotecas a las que se accede de esta manera están enlazadas dinámicamente con los programas en Java que hacen llamadas a ellas.

Así pues, si estas utilidades se han publicado bajo una licencia incompatible con la GPL, la situación es la misma que si se enlaza de cualquier otra forma con una biblioteca incompatible con la GPL. Y esto implica que:

  1. Si está usted escribiendo código y publicándolo bajo la GPL, puede establecer una excepción especial dando permiso para enlazarlo con esas utilidades incompatibles con la GPL.
  2. Si usted escribió el programa, lo publicó bajo la GPL y lo diseñó específicamente para trabajar con esas utilidades, la gente puede tomarlo como una excepción implícita que les permite enlazarlo con dichas utilidades. Pero si es eso lo que pretendía, es mejor indicarlo explícitamente.
  3. Usted no puede tomar código ajeno cubierto por la GPL y utilizarlo de esa manera o añadirle tales excepciones. Solo los titulares del copyright de ese código pueden añadir la excepción.
¿Quién tiene la capacidad de hacer cumplir la GPL? (#WhoHasThePower)

Puesto que la GPL es una licencia con copyright, los titulares del copyright del software tienen la facultad de hacer cumplir la GPL. Si observa un incumplimiento de la GPL debe informar a los desarrolladores del software afectado cubierto por la GPL. O bien son ellos los titulares del copyright, o bien están en contacto con los titulares del copyright.

Además de eso, alentamos el empleo de cualquier mecanismo legal a disposición de los usuarios para la obtención del código fuente correspondiente y completo, como es su derecho, y para hacer cumplir la GPL de GNU en su totalidad. A fin de cuentas, desarrollamos la GPL para que el software sea libre para todos los usuarios.

En un lenguaje orientado a objetos tal como Java, si utilizo, sin modificarla, una clase que está bajo la GPL y la convierto en una subclase, ¿en qué modo afecta la GPL al programa mayor? (#OOPLang)

Subclasificar es crear una obra derivada. Por tanto, los términos de la GPL afectan al programa completo donde creó una subclase a partir de una clase cubierta por la GPL.

Si adapto mi programa para que funcione en GNU/Linux, ¿significa eso que tengo que publicarlo como software libre, bajo la GPL o alguna otra licencia de software libre? (#PortProgramToGPL)

En general, la respuesta es no: ese no es un requisito legal. En concreto, la respuesta depende de qué bibliotecas quiere usar y cuáles son sus licencias. La mayor parte de las bibliotecas del sistema utilizan la GPL de GNU Reducida o la GPL de GNU más una excepción que permite enlazar la biblioteca con cualquier cosa. Estas bibliotecas pueden utilizarse en programas que no son libres; pero en el caso de la GPL Reducida hay algunos requisitos que debe respetar.

Algunas bibliotecas están publicadas bajo la GPL de GNU, sin más; para usar estas bibliotecas debe utilizar una licencia compatible con la GPL. Pero normalmente se trata de las bibliotecas más especializadas, y en otras plataformas no habría encontrado nada parecido, de modo que probablemente no se dará el caso de que quiera usarlas para portar simplemente su programa de un sistema a otro.

Por supuesto, si no es libre, su programa no es una contribución a nuestra comunidad, y la gente que valora su libertad rehusará usarlo. Solo la gente dispuesta a renunciar a su libertad hará uso de su software, lo que significa que de hecho actuará como inductor para que la gente pierda su libertad.

Si espera poder algún día echar la vista atrás en su carrera y sentir que ha contribuido al crecimiento de una sociedad buena y libre, es preciso que haga su software libre.

He descubierto que una empresa tiene una copia de un programa bajo la GPL y que para conseguirla hay que pagar. ¿No están vulnerando la GPL al no ponerlo a disposición en Internet? (#CompanyGPLCostsMoney)

No. La GPL no exige a nadie usar Internet para la distribución. Tampoco exige a nadie en particular que redistribuya el programa. Y (aparte de un caso especial), aun cuando alguien decida a veces redistribuir el programa, la GPL no dice que tenga que facilitarle una copia a usted o a cualquier otra persona en particular.

Lo que exige la GPL es que ha de tener la libertad de facilitarle a usted una copia, si así lo desea. Una vez el titular del copyright distribuye una copia del programa a alguien, ese alguien puede luego redistribuir el programa a usted o a cualquier otra persona, como crea conveniente.

¿Puedo publicar un programa con una licencia que diga que se pueden distribuir versiones modificadas del mismo bajo la GPL, pero que no se puede distribuir el original bajo la GPL? (#ReleaseNotOriginal)

No. Tal licencia sería contradictoria. Veamos sus implicaciones para mí como usuario.

Suponga que empiezo con la versión original (llamémosla versión A), le añado algún código (digamos 1000 líneas), y que publico esa versión modificada (llamémosla B) bajo la GPL. La GPL dice que cualquiera puede cambiar de nuevo la versión B y publicar la versión resultante bajo la GPL. De este modo, yo (u otra persona) puede borrar esas 1000 líneas, produciendo la versión C, que tiene el mismo código que la versión A, pero bajo la GPL.

Si trata de impedir ese proceso diciendo de manera explícita en la licencia que no estoy autorizado a reproducir algo idéntico a la versión A bajo la GPL borrando esas líneas de la versión B, la licencia estará de hecho diciendo que no puedo usar por completo la versión B de todas las maneras permitidas por la GPL. En otras palabras, la licencia no permite de hecho al usuario publicar una versión modificada tal como B bajo la GPL.

¿Es distribución trasladar una copia a una empresa subsidiaria cuyo control y propiedad se tiene en mayoría? (#DistributeSubsidiary)

Si trasladar una copia a —o desde— una empresa subsidiaria constituye «distribución» es un asunto que ha de decidirse en cada caso en función de las leyes de copyright de la jurisdicción correspondiente. La GPL no anula (ni puede hacerlo) las leyes locales. La ley de copyright de los EE.UU. no es muy clara al respecto, pero parece que no lo considera distribución.

Si en algún país esto se considera distribución y la empresa subsidiaria ha de obtener el derecho de redistribuir el programa, en la práctica esto no representará diferencia alguna. La empresa subsidiaria está controlada por la empresa matriz; derechos aparte, no redistribuirá el programa a menos que la empresa matriz decida hacerlo.

¿Pueden los programas para la instalación de software pedir al usuario que pulse con el ratón para aceptar la GPL? Si obtengo un programa bajo la GPL, ¿he de manifestar mi acuerdo con alguna cosa? (#ClickThrough)

Algunos sistemas de empaquetamiento de programas, en cierto momento de la instalación piden al usuario que pulse con el ratón o indique de alguna otra manera su acuerdo con las condiciones de la GPL. Esto ni es obligatorio ni está prohibido. Se pulse o no se pulse, las condiciones de la GPL siguen siendo las mismas.

Por el mero hecho de manifestar su acuerdo con la GPL usted no adquiere compromiso alguno. Para solo usar software con licencia GPL usted no está obligado a manifestar su acuerdo con nada. Contraerá obligaciones únicamente si modifica o distribuye el software. Si de verdad le molesta pulsar el ratón para aceptar la GPL, nada le impide modificar el software para saltarse ese paso.

Me gustaría empaquetar software licenciado bajo la GPL con un programa de instalación. ¿Implica esto que el programa de instalación ha de tener una licencia compatible con la GPL? (#GPLCompatInstaller)

No. El instalador y los archivos que instala son obras diferentes. Como consecuencia, los términos de la GPL no se aplican al software de instalación.

Algunos distribuidores de software cubierto por la GPL me exigen en su licencia o como condición para bajármelo que «declare y garantice» que resido en EE. UU. o que distribuiré el software en conformidad con la leyes de exportación pertinentes. ¿Por qué lo hacen? ¿Es esto una vulneración de las obligaciones de los distribuidores establecidas en la GPL? (#ExportWarranties)

Esto no es un incumplimiento de la GPL. Esos distribuidores (casi todos los cuales son negocios comerciales que venden distribuciones de software libre y servicios relacionados) están tratando de minimizar sus riesgos legales, no de controlar lo que usted haga. La ley de control de las exportaciones estadounidense podría exigirles responsabilidades si con conocimiento exportan software a determinados países o proporcionan el software a terceras partes a sabiendas de que harán tales exportaciones. Al pedir esas declaraciones a sus clientes y a otros destinatarios del software, se protegen de la posibilidad de que más adelante las autoridades reguladoras les pidan explicaciones acerca de su conocimiento de adónde iría a parar el software que distribuyen. No están poniendo restricciones a lo que usted haga con el software, sino solo precaviéndose de ser culpados de lo que usted pueda hacer. Puesto que no están imponiendo restricciones adicionales sobre el software, no vulneran la sección 10 de la GPLv3 ni la sección 6 de la GPLv2.

La FSF se opone a que las leyes estadounidenses de control de las exportaciones se apliquen al software libre. Esas leyes no solo son incompatibles con el objetivo general de libertad del software, sino que no sirven a ningún propósito gubernamental razonable, ya que el software libre está en la actualidad y debería siempre estar disponible para gente de casi todos los países, incluidos países sin leyes de control de las exportaciones y que no participan en los embargos comerciales promovidos por EE. UU. Por tanto, las leyes estadounidenses de control de las exportaciones no hacen que el software libre quede fuera del alcance de ningún gobierno, y los ciudadanos de ningún país deben ser privados del software libre, independientemente de las políticas de sus gobiernos, en lo que a nosotros respecta. Nosotros facilitamos copias de todo el software con licencia GPL publicado por la FSF, sin necesidad de que se nos den explicaciones del lugar de residencia o del uso que se le pretende dar. Al mismo tiempo, la FSF comprende el deseo de los distribuidores comerciales con sede en EE. UU. de ajustarse a la leyes estadounidenses. Tienen derecho a elegir a quién facilitan copias de software libre; el ejercicio de este derecho no vulnera la GPL siempre que no añadan restricciones contractuales más allá de las permitidas por la GPL.

¿Puedo utilizar software cubierto por la GPL en un dispositivo que dejará de funcionar si los clientes no siguen pagando la cuota de suscripción? (#SubscriptionFee)

No. En este caso el requisito de continuar pagando una cuota limita la capacidad del usuario de correr el programa. Este es un requisito adicional sobre la GPL, y la licencia lo prohíbe.

¿Cómo actualizo de la (L)GPLv2 a la (L)GPLv3? (#v3HowToUpgrade)

En primer lugar, incluya la nueva versión de la licencia en su paquete. Si en su proyecto está utilizando la LGPLv3, asegúrese de incluir copia tanto de la GPLv3 como de la LGPLv3, puesto que la LGPLv3 está ahora escrita como un conjunto de permisos adicionales a la GPLv3.

En segundo lugar, sustituya todas las notas de licencia v2 (normalmente en la cabecera de cada archivo) por el nuevo texto recomendado, disponible en Cómo usar licencias de GNU para su propio software. Soportará mejor el paso del tiempo, pues ya no incluye la dirección postal de la FSF.

Por supuesto, cualquier texto descriptivo (como el LÉAME) que se refiera a la licencia del paquete deberá también actualizarse adecuadamente.

¿Cómo facilita la GPLv3 la distribución mediante BitTorrent? (#BitTorrent)

Dado que la GPLv2 se escribió antes de que la distribución peer-to-peer se popularizara, es difícil cumplir con sus requisitos cuando se comparte código por esta vía. El mejor modo de asegurarse de cumplir con la licencia cuando distribuye código objeto bajo la GPLv2 consistiría en incluir todo el código correspondiente en el mismo torrent, lo cual es muy costoso.

La GPLv3 aborda este problema de dos maneras. En primer lugar, a quienes se bajen el torrent y envíen datos a otros como parte de ese proceso no se les exige que hagan nada especial. Esto es así porque la sección 9 dice que «La propagación de un trabajo amparado surgida simplemente como consecuencia de la transmisión entre usuarios para obtener una copia tampoco requiere aceptación. [de la licencia].» (En inglés: “Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance [of the license].”).

En segundo lugar, el punto (e) de la sección 6 de la GPLv3 está pensado para proporcionar a los distribuidores —quienes siembran inicialmente los torrent— un medio claro y directo de entregar el código fuente, indicando a los destinatarios un servidor público donde se encuentre disponible. Esto garantiza que cualquiera que quiera obtener el código fuente pueda hacerlo, y apenas supone molestias para el distribuidor.

¿Qué es la tivoización? ¿Cómo la previene la GPLv3? (#Tivoization)

Algunos dispositivos usan software libre que puede ser actualizado, pero están diseñados de tal manera que los usuarios no puedan modificar ese software. Hay diferentes formas de hacerlo; por ejemplo, a veces el hardware hace una suma de verificación (cheksum) del software instalado y se apaga si no coincide con la firma esperada. Los fabricantes, al proporcionarle el código fuente, cumplen con la GPLv2, pero usted ya no es libre de modificar el software que utiliza. Llamamos a esta práctica tivoización.

Cuando la gente distribuye Productos de Usuario que incluyen software bajo la GPLv3, la sección 6 exige que le proporcionen la información necesaria para modificar ese software. «Producto de Usuario» es una expresión que viene definida de forma particular en la licencia; ejemplos de Productos de Usuario son los reproductores de música portátiles, las grabadoras de vídeo digital y los sistemas de seguridad domésticos.

¿Prohíbe la GPLv3 el DRM? (#DRMProhibited)

No, usted puede utilizar software publicado bajo la GPLv3 para desarrollar tecnología DRM del tipo que desee. No obstante, si lo hace, la sección 3 dice ese sistema no podrá considerarse como una medida de «protección» tecnológica efectiva, lo que significa que si una persona elimina el DRM, ella será libre de distribuir también su software, sin que la DCMA o leyes similares supongan ningún obstáculo.

Como de costumbre, la GPL de GNU no limita lo que el usuario pueda hacer con el software, solo les impide que impongan restricciones a otros.

¿Puedo utilizar la GPL para licenciar hardware? (#GPLHardware)

Cualquier bien material susceptible de quedar cubierto por copyright puede ser licenciado bajo la GPL. La GPLv3 puede utilizarse también para licenciar materiales cubiertos por otras leyes similares al copyright; por ejemplo, las máscaras de semiconductores. Así, por ejemplo, puede publicar bajo la GPL el diseño gráfico de un objeto físico o de un circuito.

En muchas situaciones el copyright no cubre la fabricación material de hardware a partir de un diseño gráfico. En tales situaciones, su licencia del diseño gráfico no ejerce ningún control sobre la manufacturación o la venta del hardware, sea cual fuere la licencia que use. En aquellos casos en que el copyright sí cubre la manufacturación de hardware, por ejemplo las máscaras IC, la GPL sí es de utilidad.

Utilizo criptografía de clave pública para firmar mi código y garantizar así su autenticidad. ¿Es cierto que la GPLv3 me obliga a publicar mi clave privada? (#GiveUpKeys)

No. El único caso en que se le exigiría publicar sus claves sería si difundiera (convey) software bajo la GPL en un Producto de Usuario y el hardware analizara el software en busca de una firma criptográfica válida para empezar a funcionar. En este caso concreto, se le exigiría que le proporcionara las claves a cualquier poseedor del dispositivo que se lo solicitara, a fin de que este pudiera instalar software modificado en el dispositivo y hacerlo funcionar. Si cada unidad del dispositivo utilizara una clave diferente, entonces tendría que proporcionar a cada comprador únicamente una clave para ese dispositivo.

¿Exige la GPLv3 que los votantes tengan la posibilidad de modificar el software que opera en una máquina de votación? (#v3VotingMachine)

No. A las compañías que distribuyen dispositivos que incluyen software bajo la GPLv3 se les requiere a lo más que proporcionen el código fuente y la información necesaria para la instalación del software a aquellos que poseen una copia del código objeto. El votante que utiliza una máquina de votación (al igual que cualquier otra cabina) no toma posesión de ella, ni siquiera temporalmente, de manera que el votante no toma posesión del software binario presente en ella.

Advierta, no obstante, que votar es un caso muy especial. Solo por que el software que opera en una computadora sea libre, eso no quiere decir que puede confiar en la máquina de votar. Nosotros creemos que las computadoras no son fiables para votar. El voto debería emitirse en papel.

Tiene la GPLv3 alguna «cláusula de represalia por patentes»? (#v3PatentRetaliation)

En efecto, la tiene. La sección 10 prohíbe a quienes distribuyan el software plantear demandas sobre patentes a otros licenciatarios. Si de todos modos alguien lo hiciera, la sección 8 explica que perderían su licencia y cualquier licencia de patente que la acompañara.

¿Puedo utilizar fragmentos de código fuente cubierto por la GPL dentro de una documentación licenciada bajo otra licencia que sea incompatible con la GPL? (#SourceCodeInDocumentation)

Si los fragmentos son lo bastante pequeños que pueda incorporarlos ateniéndose a la doctrina del uso legítimo (fair use) o similar, entonces sí. En caso contrario, no.

Al comienzo de la sección 6 de la GPLv3 se dice que puedo difundir convey una obra en forma de código objeto «en virtud de los términos de las cláusulas 4 y 5» siempre que cumpla también las condiciones de la sección 6. ¿Qué significa esto? (#v3Under4and5)

Significa que todos los permisos y condiciones para difundir código fuente son también de aplicación cuando difunde código objeto: puede aplicarle una tarifa, debe mantener las notas de copyright intactas, etc.

Mi empresa posee multitud de patentes. A lo largo de los años hemos contribuido con nuestro código en proyectos bajo la «Versión 2 de la GPL o cualquier versión posterior», y el propio proyecto se ha distribuido bajo las mismas condiciones. Si un usuario decide tomar el código del proyecto (incorporando mis contribuciones) bajo los términos de la GPLv3, ¿significa esto que yo le concedo automáticamente a dicho usuario una licencia de patente explícita GPLv3? (#v2OrLaterPatentLicense)

No. Cuando difunde (convey) código bajo la GPL, debe respetar los términos y condiciones de una versión concreta de la licencia. Al hacerlo, esa versión determina las obligaciones que usted tiene. Si los usuarios también pueden elegir utilizar versiones posteriores, esto es meramente un permiso adicional del que disfrutan, pero no le exige a usted que cumpla también con los términos de la versión posterior de la GPL.

No interprete esto como que usted puede amenazar a la comunidad con sus patentes. En muchos países, distribuir software bajo la GPLv2 proporciona a los destinatarios una licencia de patente implícita para ejercer sus derechos bajo la GPL. Aun cuando no lo hiciera, cualquiera que se plantee hacer valer sus patentes de forma agresiva es un enemigo de la comunidad, y nos defenderemos de tales ataques.

Si distribuyo un programa privativo que enlaza con una biblioteca cubierta por la LGPLv3 y modificada por mí, ¿qué constituye la «versión en colaboración» a efectos de determinar el alcance de mi otorgamiento de licencia de patente explícita? ¿Solo la biblioteca o la combinación entera? (#LGPLv3ContributorVersion)

La «versión en colaboración» es únicamente su versión de la biblioteca.

¿Es compatible la GPLv3 con la GPLv2? (#v2v3Compatibility)

No. Muchos requisitos han cambiado entre la GPLv2 y la GPLv3, lo que significa que requisitos concretos de la GPLv2 no están presentes en la GPLv3, y viceversa. Por ejemplo, las condiciones de Anulación de la GPLv3 son considerablemente más permisivas que las de la GPLv2, y por tanto diferentes de las condiciones de Anulación de la GPLv2.

Debido a estas diferencias, las dos licencias no son compatibles: si tratara de combinar código publicado bajo la GPLv2 con código publicado bajo la GPLv3, estaría vulnerando la sección 6 de la GPLv2.

No obstante, si el código está publicado bajo la «versión 2 o posterior» de la GPL, es compatible con la GPLv3, puesto que la GPLv3 es una de las opciones que admite.

¿Tiene la GPLv2 algún requisito acerca de proporcionar información de instalación? (#InstInfo)

GPLv3 exige de forma explícita que en la redistribución se incluya toda la «Información de Instalación» necesaria, mientras que la GPLv2 no utiliza esa expresión, pero exige que en la redistribución se incluyan los scripts utilizados para controlar la compilación e instalación del ejecutable, junto con el correspondiente código fuente completo. Esto comprende parte pero no todo lo que la GPLv3 llama «Información de Instalación». Así pues, el requisito de la GPLv3 acerca de la información de instalación es más fuerte.

¿Que significa «subsanar» un incumplimiento de la GPLv3? (#Cure)

Subsanar un incumplimiento significa ajustar sus prácticas para que sean conformes a los requisitos de la licencia.

Los avisos de ausencia de garantía y limitación de responsabilidad parecen específicos de las leyes estadounidenses. ¿Puedo añadir a mi código descargos de responsabilidad propios? (#v3InternationalDisclaimers)

Sí. La sección 7 le concede permiso para añadir sus propios descargos de responsabilidad, concretamente en su punto (a).

Mi programa tiene interfaces de usuario interactivas de carácter no visual. ¿Cómo puedo ajustarme al requisito de los Avisos Legales Apropiados de la GPLv3? (#NonvisualLegalNotices)

Todo lo que tiene que hacer es asegurarse de que los Avisos Legales Apropiados sean fácilmente accesibles al usuario en su interfaz. Por ejemplo, si usted ha escrito una interfaz de audio, podría incluir una orden que reprodujera los avisos en voz alta.

Si doy una copia de un programa bajo la GPLv3 a un compañero de trabajo de mi empresa, ¿he «difundido» (conveyed) una copia? (#v3CoworkerConveying)

Mientras ambos estén utilizando el software en su trabajo en la empresa, en lugar de hacer un uso personal del mismo, la respuesta es no. Las copias pertenecen a la empresa, no a usted ni a su compañero. Esta forma de copia es propagation (propagación), no conveying (difusión), puesto que la empresa no está poniendo copias a disposición de terceros.

Si distribuyo un programa cubierto por la GPLv3, ¿puedo ofrecer una garantía que quede anulada si el usuario modifica el programa? (#v3ConditionalWarranty)

Sí. Al igual que los aparatos no tienen por qué seguir bajo garantía si el usuario modifica el software, a usted no se le exige que proporcione una garantía que cubra todas las actividades que el usuario pueda realizar con software cubierto por la GPLv3.

¿Por qué han decidido ustedes escribir la Affero GPLv3 de GNU como licencia aparte? (#SeparateAffero)

Los primeros borradores de la GPLv3, en la sección 7, permitían a los licenciantes añadir un requisito tipo Affero para publicar el código fuente. Sin embargo, algunas compañias que producen y se apoyan en el software libre consideran que este requisito es demasiado gravoso. Quieren evitar código con este requisito y expresaron su preocupación por los costes administrativos que conlleva verificar si el código contiene dicho requisito. Al publicar la Affero GPLv3 de GNU como licencia aparte, con disposiciones en ella y en la GPLv3 para permitir enlazar entre sí código con esas licencias, alcanzamos todos nuestros objetivos originales a la vez que hacemos más sencillo determinar qué código contiene el requisito de publicar el código fuente.

¿Por qué han creado nuevos significados para los términos «propagate» (propagar) y «convey» (difundir) en la GPLv3? (#WhyPropagateAndConvey)

El término «distribute» empleado en la GPLv2 fue tomado de legislación de copyright estadounidense. Con los años hemos aprendido que algunos ordenamientos jurídicos empleaban ese mismo término en sus leyes de copyright, pero dándole un significado diferente. Hemos creado estos nuevos términos para que nuestros propósitos sean lo más claros posibles sea cual sea el lugar en el que se interprete la licencia. Son términos que no emplea ninguna ley de copyright en ninguna parte del mundo, y proporcionamos sus definiciones directamente en la licencia.

Me gustaría licenciar mi código bajo la GPL, pero también quisiera dejar claro que no puede emplearse para usos militares y/o comerciales. ¿Puedo hacerlo? (#NoMilitary)

No, puesto que esos objetivos son contradictorios. La GPL de GNU está diseñada específicamente para evitar que se añadan restricciones adicionales. La GPLv3, en la sección 7, permite un conjunto muy limitado de ellas, pero cualquier otra restricción puede ser eliminada por el usuario.

Dicho de otro modo, una licencia que impone restricciones sobre quién puede usar el programa, o para qué, no es una licencia de software libre.

¿Es «convey» (difundir) en la GPLv3 lo mismo que en la GPLv2 se quiere significar con «distribute»? (#ConveyVsDistribute)

Sí, más o menos. En el curso de la aplicación de la GPLv2 hemos visto que en las leyes de copyright de algunos ordenamientos jurídicos se empleaba el término «distribute», pero con diferentes significados. Inventamos un término nuevo para dejar claros nuestros propósitos y evitar cualquier problema que pudiera producirse debido a esas diferencias.

La GPLv3 menciona «poner a disposición del público» como un ejemplo de propagation (propagación). ¿Qué significa esto? ¿La puesta a disposición es una forma de conveying (difusión)? (#v3MakingAvailable)

Un ejemplo de «poner a disposición del público» es poner el software en una web o servidor de FTP públicos. Una vez que lo haya hecho es posible que pase algún tiempo antes de que alguien se baje el software, pero como eso podría suceder inmediatamente, usted ha de cumplir con las obligaciones de la GPL de forma también inmediata. De ahí que hayamos definido conveying (difusión) de manera que incluya esta acción.

Dado que la distribución y la puesta a disposición del público son formas de propagation (propagación) que en la GPLv3 son también conveying (difusión), ¿pueden señalar algún ejemplo de propagation que no constituya conveying? (#PropagationNotConveying)

Hacer copias de software para usted mismo es la principal forma de propagation que no es conveying. Podría hacer esto para instalar software en múltiples equipos o para hacer copias de seguridad.

¿Se considera modificación el preenlazado de un binario GPL a diversas bibliotecas del sistema a fin de optimizar su rendimiento? (#Prelinking)

No. El preenlazado es parte del proceso de compilación; no implica ningún requisito adicional más allá de lo que lo haría cualquier otro aspecto de la compilación. Si enlazar el programa con las bibliotecas está permitido, entonces tampoco hay problema en preenlazar con ellas. Si distribuye código objeto preenlazado, tendrá que respetar las condiciones de la sección 6.

Si alguien instala software GPL en un ordenador portátil y luego se lo presta a un amigo sin proporcionarle el código fuente del software, ¿está vulnerando la GPL? (#LaptopLoan)

No. En los ordenamientos jurídicos en que hemos investigado el asunto, esta clase de préstamo no se consideraría difusión (conveying). La GPL no impone ninguna obligación al propietario del portátil.

Supongan que dos compañías tratan de eludir el requisito de proporcionar información acerca de la instalación haciendo que una de ellas publique software firmado y la otra publique un Producto de Usuario que solo funciona con el software firmado de la primera. ¿Constituye esto un incumplimiento de la GPLv3? (#TwoPartyTivoization)

Sí. Si dos compañías se proponen colaborar para sortear los requisitos de la GPL, ambas pueden ser denunciadas por infracción del copyright. Esto es así en especial porque la definición de convey (difundir) incluye de forma explícita las actividades que harían a alguien responsable de infracción secundaria.

¿Estoy respetando las condiciones de la GPLv3 si ofrezco los binarios en un servidor de FTP y los archivos fuente mediante un enlace a un repositorio de código fuente dentro de un sistema de control de versiones como CVS o Subversion? (#SourceInCVS)

Esto es admisible siempre que el proceso de descarga del código fuente no se vuelva demasiado engorroso o resulte de alguna otra manera restrictivo. Cualquiera que pueda bajarse su código objeto ha de tener también la posibilidad de descargarse el código fuente desde su sistema de control de versiones empleando un cliente de software libre públicamente disponible. Se debe proporcionar a los usuarios instrucciones claras y fáciles sobre cómo obtener el código fuente que corresponde exactamente al código objeto que se han bajado; después de todo, es probable que no estén interesados en el código de desarrollo más reciente.

¿Puede alguien que difunde (convey) en un Producto de Usuario software bajo la GPLv3 utilizar la certificación remota a fin de evitar que los usuarios modifiquen el software? (#RemoteAttestation)

No. La definición de Instrucciones de Instalación, que ha de facilitarse con el código fuente cuando el software se difunde dentro de un Producto de Usuario, dice explícitamente: «Las instrucciones deben ser suficientes para asegurar el funcionamiento continuo del código objeto modificado sin ningún tipo de condicionamiento o intromisión por el simple hecho de haber sido modificado» (en inglés: “The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.”). Si el dispositivo utiliza alguna forma de certificación remota, las Instrucciones de Instalación deben proporcionarle algún medio de hacer que su software modificado se presente como legítimo.

¿Qué significa en la GPLv3 «reglas y protocolos de comunicación en la red»? (#RulesProtocols)

Esto se refiere a la reglas relativas al tráfico de datos que usted envíe por la red. Por ejemplo, si existe un límite para el número de peticiones que puede enviar diariamente a un servidor, o del tamaño de los archivos que puede subir a alguna parte, su acceso a esos recursos puede ser denegado en caso de no respetar dichos límites.

Estas reglas no incluyen nada que no concierna directamente a los datos que se transmiten por la red. Por ejemplo, si un servidor de la red envía a su dispositivo mensajes dirigidos a los usuarios, no se le podría denegar el acceso a la red simplemente por que usted haya modificado el software a fin de que no se muestren los mensajes.

A los distribuidores que bajo la GPLv3 proporcionan Información de Instalación no se les exige que proporcionen «servicio de soporte» para el producto. ¿A qué clase de «servicio de soporte» se refieren? (#SupportService)

Esto incluye la clase de servicios que muchos fabricantes de dispositivos proporcionan para ayudarle a instalar, utilizar o resolver los problemas que encuentre al utilizar el aparato. Si para funcionar correctamente un dispositivo tiene que acceder a servicios web o depende de tecnologías similares, normalmente éstas deberían seguir siendo accesibles para las versiones modificadas, de conformidad con los términos de la sección 6 relativos al acceso a una red.

¿Qué significa en la GPLv3 y la AGPLv3 «sin perjuicio de cualquier otra disposición de la presente licencia» (en inglés: “notwithstanding any other provision of this License”)? (#v3Notwithstanding)

Esto significa simplemente que las condiciones que se especifican a continuación prevalecen sobre cualquier otra condición de la licencia que pueda entrar en conflicto con ellas. Por ejemplo, sin este texto alguien podría pretender que usted no puede combinar código bajo la GPLv3 con código bajo la AGPLv3, puesto que los requisitos adicionales de la AGPL quedarían clasificados como «restricciones adicionales» en virtud de la sección 7 de la GPLv3. Este texto deja claro que la interpretación que pretendemos es la correcta y que usted puede hacer esa combinación.

Este texto no hace más que resolver posibles conflictos entre las diferentes condiciones de la licencia. Cuando no existe conflicto entre dos condiciones, usted puede satisfacer ambas. Pero estas líneas no le conceden carta blanca para ignorar el resto de la licencia; lo que hacen es señalar muy limitadas excepciones.

Bajo la AGPLv3, cuando modifico el Programa en virtud de la sección 13, ¿qué «Fuente Correspondiente» he de ofrecer? (#AGPLv3CorrespondingSource)

La definición de «Fuente Correspondiente» aparece en la sección 1 de la licencia y usted debe proporcionar todo lo que ahí se menciona. De este modo, si su versión modificada depende de bibliotecas bajo otras licencias, tales como la licencia Expat o la GPLv3, la Fuente Correspondiente debe incluir estas bibliotecas (a menos que se trate de Bibliotecas del Sistema). Si usted ha modificado esas bibliotecas, ha de proporcionar el código fuente modificado.

El único propósito de la última frase del primer párrafo de la sección 13 es reafirmar lo que de todos modos la mayoría de la gente habría dado por sentado: aun cuando a las combinaciones con código bajo la GPLv3 se les aplica una excepción especial (sección 13), el Código Correspondiente comprende el código así combinado con el Programa. Esta frase no significa que usted sólo ha de proporcionar el código fuente que está bajo la GPLv3; antes al contrario, significa que dicho código no queda excluido de la definición de Código Correspondiente.

En la AGPLv3, ¿qué se considera «interactuar con [el software] remotamente por medio de una red de computadoras» (en inglés: “interacting with [the software] remotely through a computer network?”)? (#AGPLv3InteractingRemotely)

Si el programa está diseñado ex profeso para aceptar peticiones de los usuarios y enviar respuestas a través de una red, entonces cumple esta condición. Entre los ejemplos corrientes de programas que entran dentro de esta categoría se cuentan los servidores de páginas web y correo, las aplicaciones web interactivas y los servidores para juegos en línea.

Si un programa no está diseñado ex profeso para interactuar con el usuario a través de una red pero se ejecuta en un entorno en el que eso sucede, entonces no entra dentro de esta categoría. Por ejemplo, no se exige la publicación del código fuente de una aplicación por el mero hecho de que el usuario la esté ejecutando a través de SSH o de una sesión X remota.

¿Cuál es la diferencia entre el concepto de «usted» en la GPLv3 y el de «Entidad Legal» en la licencia Apache 2.0? (#ApacheLegalEntity)

Son de hecho idénticas. La definición de «Entidad Legal» de la licencia Apache 2.0 es la norma en diversos tipos de acuerdos legales, tan es así que sería muy sorprendente que, a falta de una definición explícita, un tribunal interpretara esa expresión de manera diferente. Estamos convencidos de que harán lo mismo cuando examinen la GPLv3 e interpreten a quién se considera licenciatario.

¿A qué se refiere la GPLv3 con «el Programa»? ¿Se trata de cualquier programa que haya sido alguna vez publicado bajo la GPLv3? (#v3TheProgram)

La expresión «el Programa» significa una obra concreta con licencia GPLv3 y obtenida por un licenciatario particular de un previo licenciante o distribuidor. El Programa es la obra concreta de software que usted ha recibido bajo licencia GPLv3, tal y como lo recibió.

«El Programa» no significa «todas las obras que hayan sido alguna vez publicadas bajo la GPLv3»; tal interpretación carece de sentido por diversas razones. Hemos publicado un análisis de la expresión «el Programa» para aquellos que quieran tener más información acerca de esto.

Si únicamente hago copias de un programa bajo la GPL y las ejecuto, sin difundirlas (conveying) ni distribuirlas a terceros, ¿qué me exige la licencia? (#NoDistributionRequirements)

Nada. La GPL no impone ninguna condición al respecto.

Si un software cliente de red se publica bajo la AGPLv3, ¿tiene que tener la capacidad de proporcionar el código fuente a los servidores con los que interactúa? (#AGPLv3ServerAsUser)

La APLv3 exige que un programa ofrezca el código fuente a «todos los usuarios que interactúen con él remotamente por medio de una red de computadoras». No importa que llamemos al programa «cliente» o «servidor», la cuestión es si hay una expectativa razonable de que una persona interactúe con el programa remotamente a través de una red.

Para el software que se usa para hacer funcionar un servidor proxy, y que está licenciado bajo la AGPL, ¿cómo puedo suministrar el código fuente a los usuarios que interactúan con ese código? (#AGPLProxy)

Para el software que se utiliza en un servidor proxy, puede ofrecer el código fuente mediante un normal método de envío de mensajes a los usuarios de ese tipo de proxy. Por ejemplo, para un proxy de Web se podría utilizar una página de inicio. Así, cuando los usuarios comienzan a utilizar el proxy, usted puede dirigirlos a una página que contenga el ofrecimiento del código fuente y cualquier otro tipo de información que desee suministrar.

La AGPL especifica que el ofrecimiento se debe hacer a «todos los usuarios». Si usted sabe que un determinado usuario ya ha recibido el ofrecimiento para la versión actual del software, no es necesario que vuelva a ofrecerlo a ese usuario en particular.

¿Qué compatibilidad hay entre las diversas licencias de GNU? (#AllCompatibility)

Las diversas licencias de GNU poseen una amplia compatibilidad entre sí. El único caso en el que puede no ser posible combinar código bajo dos de tales licencias se da cuando pretende utilizar código que está bajo una versión antigua de una licencia solo, con código que está bajo una versión más reciente.

A fin de proporcionarle una guía de consulta rápida para casos específicos, más abajo incluimos un cuadro detallado de compatibilidad para varias combinaciones de licencias de GNU. Se parte de la base de que alguna otra persona ha escrito software bajo una de esas licencias y usted quiere incorporar parte de ese código en un proyecto propio para su publicación (una obra suya original o una versión modificada del software de otros). Busque la licencia de su proyecto en una de las columnas de la parte superior de la tabla y la licencia del otro código en una de las filas de la izquierda. La celda de intersección le dirá si tal combinación está permitida o no.

Cuando decimos «copiar código», eso es exactamente lo queremos decir: usted toma un fragmento del código de un archivo fuente, con o sin modificar, y lo inserta en su propio programa formando así una obra basada en la anterior sección de código. «Utilizar una biblioteca» significa que usted no copia ningún código fuente directamente, sino que interactúa con él mediante enlace, importación u otro de los mecanismos típicos que ligan las diversas fuentes cuando compila o ejecuta el código.

En el cuadro de compatibilidad, cada vez que se menciona la GPLv3, la compatibilidad se aplica también a la AGPLv3.

Saltar cuadro de compatibilidad


Quiero poner mi código bajo la licencia:
«GPLv2 solo» «GPLv2
o posterior»
«GPLv3
o posterior»
«LGPLv2.1 solo» «LGPLv2.1
o posterior»
«LGPLv3
o posterior»
Quiero copiar código que está bajo la: «GPLv2 solo» OK OK [2] NO OK: La combinación está bajo la «GPLv2 solo»  [7] OK: La combinación está bajo la «GPLv2 solo»  [7][2] NO
«GPLv2
o posterior»
OK [1] OK OK OK: La combinación está bajo la «GPLv2 o posterior» [7] OK: La combinación está bajo la «GPLv2 o posterior» [7] OK: La combinación está bajo la GPLv3 [8]
GPLv3 NO OK: La combinación está bajo la GPLv3 [3] OK OK: La combinación está bajo la GPLv3 [7] OK: La combinación está bajo la GPLv3 [7] OK: La combinación está bajo la GPLv3 [8]
«LGPLv2.1 solo» OK: Difundir el código copiado bajo la GPLv2 [7] OK: Difundir el código copiado bajo la «GPLv2 o posterior» [7] OK: Difundir el código copiado bajo la «GPLv3 o posterior» [7] OK OK [6] OK: Difundir el código copiado bajo la GPLv3 [7][8]
«LGPLv2.1
o posterior»
OK: Difundir el código copiado bajo la GPLv2 [7][1] OK: Difundir el código copiado bajo la «GPLv2 o posterior» [7] OK: Difundir el código copiado bajo la «GPLv3 o posterior» [7] OK [5] OK OK
LGPLv3 NO OK: La combinación está bajo la GPLv3 [8][3] OK: La combinación está bajo la GPLv3 [8] OK: La combinación está bajo la GPLv3 [7][8] OK: La combinación está bajo la LGPLv3 [4] OK: La combinación está bajo la LGPLv3
Quiero utilizar una biblioteca que está bajo la «GPLv2 solo» OK OK [2] NO OK: La combinación está bajo la «GPLv2 solo»  [7] OK: La combinación está bajo la «GPLv2 solo»  [7][2] NO
«GPLv2
o posterior»
OK [1] OK OK OK: La combinación está bajo la «GPLv2 o posterior» [7] OK: La combinación está bajo la «GPLv2 o posterior» [7] OK: La combinación está bajo la GPLv3 [8]
GPLv3 NO OK: La combinación está bajo la GPLv3 [3] OK OK: La combinación está bajo la GPLv3 [7] OK: La combinación está bajo la GPLv3 [7] OK: La combinación está bajo la GPLv3 [8]
«LGPLv2.1 solo» OK OK OK OK OK OK
«LGPLv2.1
o posterior»
OK OK OK OK OK OK
LGPLv3 NO OK: La combinación está bajo la GPLv3 [9] OK OK OK OK

Saltar las notas

1: Cuando incorpore el código en este caso, ha de respetar los términos de la GPLv2. No puede acogerse a las condiciones de versiones posteriores de la GPL.

2: Si bien puede publicar bajo la «GPLv2 o posterior» tanto su obra original como la versión modificada de una obra que recibió bajo la «GPLv2 o posterior», el código que está bajo la «GPLv2 solo» y que usted utiliza debe permanecer bajo la «GPLv2 solo». En caso de que su proyecto dependa de ese código, no podrá actualizar la licencia de su propio código a la «GPLv3 o posterior», y la obra en su totalidad (cualquier combinación de su proyecto con el otro código) solo puede difundirse bajo las condiciones estipuladas en la GPLv2.

3: Si puede publicar el proyecto bajo la «GPLv2 o cualquier versión posterior», puede optar por publicarla bajo la «GPLv3 o cualquier versión posterior» y, una vez que lo haya hecho, podrá incorporar el código publicado bajo la GPLv3.

4: Si puede publicar el proyecto bajo la «LGPLv2.1 o cualquier versión posterior», puede optar por publicarla bajo la «LGPLv3 o cualquier versión posterior» y, una vez que lo haya hecho, podrá incorporar el código publicado bajo la LGPLv3.

5: En este caso, cuando incorpore el código ha de respetar los términos de la LGPLv2.1. No puede acogerse a las condiciones de versiones posteriores de la LGPL.

6: Si hace esto, en la medida en que su proyecto contenga el código publicado bajo la «LGPLv2.1 solo», no podrá actualizar la licencia del proyecto a la «LGPLv3 o posterior».

7: La LGPLv2.1 le autoriza a relicenciar el código y ponerlo bajo cualquier versión de la GPL a partir de la GPLv2. En este caso, si puede tomar el código que está bajo la LGPL y ponerlo bajo una versión apropiada de la GPL (como se indica en la tabla), puede hacer esta combinación.

8: La LGPLv3 es la GPLv3 a la que se le han añadido algunos permisos que se pueden ignorar en este caso.

9: Puesto que la GPLv2 no permite combinaciones con la LGPLv3, en este caso ha de difundir (convey) el proyecto bajo las condiciones estipuladas en la GPLv3, puesto que ésta sí le permite dicha combinación.

Notas de traducción

IMPORTANTE: Las siguientes traducciones tienen carácter meramente informativo y carecen de validez legal.
  1. Copyright (C) [años] [nombre del titular del copyright]

    Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU tal como está publicada por la Free Software Foundation, bien de la versión 3 de dicha Licencia o bien (según su elección) de cualquier versión posterior.

    Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. Véase la Licencia Pública General de GNU para más detalles.

    Usted debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha sido así, consulte <http://www.gnu.org/licenses>.

    Permiso adicional bajo la GPL de GNU versión 3, seccción 7

    Si usted modifica este programa, o cualquier obra incluida en él, enlazándolo o combinándolo con [nombre de la biblioteca] (o una versión modificada de esta biblioteca), conteniendo así partes cubiertas por los términos de la licencia [nombre de la licencia de la biblioteca], los licenciadores de este programa le conceden permiso adicional para distribuir la obra resultante. {La Fuente Correspondiente de una forma no fuente de tal combinación incluirá el código fuente de las partes de [nombre de la biblioteca] utilizadas así como de la obra cubierta.}

  2. Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU tal como está publicada por la Free Software Foundation, bien de la versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.

    Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. Véase la Licencia Pública General de GNU para más detalles.

    Usted debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha sido así, consulte <http://www.gnu.org/licenses>.

    Enlazar [nombre de su programa] estática o dinámicamente con otros módulos es hacer una obra combinada basada en [nombre de su programa]. De este modo, los términos y condiciones de la Licencia Pública General de GNU cubren la combinación en conjunto.

    Además, como excepción especial, los titulares del copyright de [nombre de su programa] le conceden permiso para combinar [nombre de su programa] con programas de software libre o bibliotecas publicadas bajo la LGPL de GNU y con código incluido en la edición estándar de [nombre de la biblioteca] bajo la licencia [nombre de la licencia de la biblioteca] (o versiones modificadas de dicho código, siempre que la licencia no haya cambiado). Puede copiar y distribuir el sistema así construido, según los términos de la GPL de GNU para [nombre de su programa] y las licencias del resto del código implicado{, siempre que incluya el código fuente de ese otro código cuando y de la manera en que la GPL de GNU exija la distribución del código fuente}.

    Tenga en cuenta que quien haga versiones modificadas de [nombre de su programa] no está obligado a garantizar esta excepción especial en sus versiones modificadas; queda a su discreción hacerlo o no. La Licencia Pública General de GNU concede permiso para publicar una versión modificada sin esta excepción; esta excepción hace también posible publicar una versión modificada que contenga dicha excepción.

  3. No puede imponer al receptor ninguna restricción ulterior sobre el ejercicio de los derechos aquí concedidos.

  4. Al enlazar ABC estática o dinámicamente con otros módulos se está haciendo una obra combinada basada en ABC. Así, pues, los términos y condiciones de la Licencia Pública General de GNU cubren la combinación en conjunto.

    Como excepción especial, los titulares del copyright de ABC le conceden permiso para combinar el programa ABC con programas de software libre o bibliotecas publicadas bajo la LGPL de GNU y con módulos independientes que se comuniquen con ABC únicamente a través de la interfaz ABCDEF. Puede copiar y distribuir el sistema así construido, según los términos de la GPL de GNU para ABC y de las licencias del resto del código implicado, siempre que incluya el código fuente de ese otro código, en el momento y de la manera que la GPL de GNU exija la distribución del código fuente, y siempre que usted no modifique la interfaz de ABCDEF.

    Nótese que quien haga modificaciones de ABC no está obligado a mantener esta excepción especial en sus versiones modificadas; queda a discreción de ellos hacerlo o no. La Licencia Pública General de GNU concede permiso para publicar una versión modificada sin esta excepción; esta excepción hace también posible publicar una versión modificada que contenga dicha excepción. Si usted modifica la interfaz de ABCDEF, esta excepción no se aplica a su versión modificada de ABC, y debe eliminar esta excepción cuando distribuya su versión modificada.

    Esta excepción constituye un permiso adicional bajo la sección 7 de la Licencia Pública General de GNU, versión 3 («GPLv3»).

  5. Como excepción especial, si crea un documento que utiliza este tipo de letra, e inserta en el documento este tipo de letra o partes inalteradas del mismo, este tipo de letra por sí mismo no hace que el documento resultante esté cubierto por la Licencia Pública General de GNU. No obstante, esta excepción no invalida ninguna otra razón por la cual el documento podría estar cubierto por la Licencia Pública General de GNU. Si modifica este tipo de letra puede hacer extensiva esta excepción a su versión del tipo de letra, pero no está obligado a hacerlo. Si no desea hacerlo, borre esta nota de excepción de su versión.

  6. Como excepción especial a la GPL, cualquier archivo HTML que simplemente haga llamadas a funciones de este código y que a tal fin lo incluya por referencia, a efectos de las leyes de copyright habrá de considerarse como una obra separada. Además, los titulares del copyright de este código le conceden permiso para combinar este programa con bibliotecas libres publicadas bajo la LGPL de GNU. Puede copiar y distribuir el sistema así construido, según los términos de la GPL de GNU para este código y según los de la LGPL para las bibliotecas. Si modifica este código puede hacer extensiva esta excepción a su versión del código, pero no está obligado a hacerlo. Si no desea hacerlo, borre esta nota de excepción de su versión.

  7. Esta traducción de la GPL es informal y no ha sido aprobada oficialmente por la Free Software Foundation como válida. Para estar completamente seguro de lo que está permitido, consulte la GPL original (en inglés).