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

Preguntas frecuentes acerca de la versión 2 de la GPL de GNU

Esta página contiene respuestas a las preguntas más comunes acerca de la Licencia Pública General de GNU (GPL), versión 2. Las FAQ de la versión actual de la GPL se encuentran aquí. Para más información acerca de otras licencias de la Free Software Foundation, consulte nuestra página de licencias.

Una vez que haya leído estas FAQ, puede poner a prueba sus conocimientos de las licencias de software libre con nuestro test.

Índice general


Preguntas básicas acerca de la GPL, el proyecto GNU y la Free Software Foundation

Ideas generales acerca de la GPL

Utilización de 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 trabajos con código publicado bajo la GPL

Preguntas acerca de incumplimientos de la GPL


¿Qué significa «GPL»?
«GPL» significa «General Public License» (Licencia Pública General). La más extendida 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?
En absoluto, hay muchas otras licencias diferentes 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?
Usar la GPL de GNU exige que todas las versiones mejoradas que se publiquen sean software libre. Esto significa que evitará 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?
La mayor parte de los paquetes de programas de 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. Cuando lo hacemos así es por razones de estrategia.
Utilizar la GPL para un programa, ¿lo convierte en software de GNU?
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 sólo 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 <[email protected]>.

¿Qué debo hacer si descubro un posible incumplimiento de la GPL?
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 concreto cubierto por la GPL. Si es la Free Software Foundation, escriba a <[email protected]>. También es posible que el titular del copyright sea el responsable del mantenimiento del programa, o si no él podría decirle cómo ponerse en contacto con el poseedor del copyright, de modo que comuníqueselo al responsable de mantenimiento.
¿Por qué la GPL permite a los usuarios publicar versiones modificadas?
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 de 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?
La GPL no le obliga a publicar el programa modificado. 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 el código fuente modificado a disposición de los usuarios, 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?
Sí. La cláusula de la «mera agregación» de la GPL lo permite de manera explícita, pero esto no hace más que reforzar lo que creemos sucedería de cualquier modo.
Si sé de alguien que tiene copias de un programa cubierto por la GPL, ¿puedo exigirle que me proporcione una copia?
No. La GPL autoriza a esa persona a hacer y redistribuir copias del programa si así lo decide y cuando lo decida. Tiene también derecho a no redistribuir el programa, cuando así lo decida.
¿Qué significa eso de «oferta escrita válida para cualquier tercera parte»? ¿Significa que cualquier persona puede obtener el código fuente de cualquier programa publicado bajo la GPL, incondicionalmente?

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 usted distribuye comercialmente los archivos binarios sin acompañarlos del código fuente, la GPL dice que 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 GPL dice que las versiones modificadas, de hacerse públicas, han de ser «licenciadas … a todas las terceras partes». ¿Quiénes son esas terceras partes?
La Sección 2 dice que las versiones modificadas que usted distribuya han de ser licenciadas a todas las terceras partes bajo la GPL. «Todas las terceras partes» significa absolutamente todo el mundo, pero esto no exige que usted haga físicamente algo por ellos. Sólo 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?
No es preciso que reclame el copyright de sus cambios. De todos modos, en la mayoría de los países esto sucede automáticamente, de manera que si quiere que sus cambios no tengan copyright tendrá que declarar explícitamente que son de dominio público.

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

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?
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?
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 un 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 no se distribuyen junto a su código fuente).
¿Me permite la GPL cobrar por bajar el programa del sitio de mi distribución?
Sí. Usted puede establecer la tarifa que desee por distribuir copias del programa. Si distribuye binarios para descargar, ha de facilitar un «acceso equivalente» para descargar los archivos fuente. Por tanto, la tarifa para descargar los fuente no puede ser mayor que la tarifa para bajar los binarios.
¿Me autoriza la GPL a exigir que cualquiera que reciba el software haya de abonarme alguna cantidad o notificármelo?
No. En realidad, una exigencia de ese tipo haría que el programa no fuese 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 a las personas usar e incluso distribuir los programas sin que por hacerlo pueda exigírsele el abono de ninguna cantidad 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?
No. De todos modos, si alguien abona la cantidad y obtiene una copia, la GPL le concede la libertad de hacerlo público por 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?
No. La GPL dice que cualquiera que reciba de usted una copia de su versión tiene derecho a redistribuir copias, modificadas o no. No le autoriza a 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 cuyo titular de los derechos es la FSF, comuníquenoslo por favor de inmediato escribiendo a [email protected].

Si ese incumplimiento de la GPL se refiere a código cubierto por la GPL cuyo titular de derechos sea otro, infórmele por favor a dicho titular, 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?
No. La GPL dice que sus versiones modificadas han de llevar aparejados todos los derechos que figuran en la GPL. De este modo, cualquiera que reciba de usted una copia de su versión tiene derecho a redistribuir copias (modificadas o no) de esa versión. No puede 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?
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 hay código cubierto por la GPL distribuido 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 su versión. En un caso como este, el cliente probablemente elegirá no ejercer ese derecho, pero lo tiene.

Quiero obtener el reconocimiento por mi trabajo. Quiero que la gente sepa lo que he escrito. ¿Puedo obtener el reconocimiento si uso la GPL?
Sin duda puede obtener el reconocimiento por su trabajo. Parte de la publicación de un programa bajo la GPL consiste en escribir una nota de copyright en su propio nombre (suponiendo que sea usted el titular del copyright). La GPL exige que en todas las copias figure una nota de copyright apropiada.
¿Por qué exige la GPL que en toda copia del programa se incluya una copia de la GPL?
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.

¿Y si la obra no es mucho más larga que la propia licencia?
Si un programa es así de breve, en vez de la GPL de GNU puede utilizar una licencia sencilla, completamente permisiva.
¿Puedo omitir el preámbulo de la GPL, o las instrucciones acerca de la manera de utilizarla en los programas propios, para ahorrar espacio?
El preámbulo y las instrucciones son parte integrante de la GPL y no pueden omitirse. En realidad, 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 hacerotra licencia, pero no será la GPL de GNU).

El preámbulo y las instrucciones suman unos 5000 caracteres, menos de un tercio 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 propio 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»?
Para combinar dos programas (o partes sustanciales de los mismos) dentro de una obra más amplia es preciso tener permiso para usar ambos programas de esa manera. Si las licencias de dichos 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 del tipo de combinación que se haga. Por ejemplo, pueden permitir vincular dos módulos, pero no fundir los códigos en un solo módulo.

Si lo que se desea es únicamente instalar dos programas separados en un mismo sistema, no es necesario que sus licencias sean compatibles, pues eso no es una combinación de los programas para crear una obra más amplia.

¿Qué significa que una licencia es «compatible con la GPL»?
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 dentro de un programa más amplio.

La GPL permite tal combinación siempre que se publique bajo la GPL de GNU. La otra licencia es compatible con la GPL si también lo permite.

¿Puedo escribir software libre que utilice bibliotecas que no son libres?
Si hace esto, su programa no podrá utilizarse por completo en un entorno libre. Si su programa depende de una biblioteca que no es libre para realizar determinada tarea, 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 la tarea sin emplear esa biblioteca? ¿Puede escribir un sustituto 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 archivo LÉEME que la necesidad de la biblioteca privativa es un inconveniente, y sugiera la tarea de cambiar el programa de tal modo que cumpla la misma función 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 privativa.

Advierta 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.

¿Qué problemas legales pueden producirse si utilizo bibliotecas incompatibles con la GPL con softwareque está bajo la GPL?
Si las bibliotecas que usted enlaza entran dentro de la siguiente salvedad de la GPL:

However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable..[1]

entonces no tiene que hacer nada en especial para utilizarla; 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. De este modo, si las bibliotecas que usted necesita vienen con partes fundamentales de un sistema operativo privativo, la GPL dice que se permite enlazar su programa con dichas bibliotecas, sin condiciones de ningún tipo.

Si usted quiere enlazar su programa con una biblioteca que no entra dentro de esa excepción, tendrá que añadir su propia cláusula de excepción, completamente aparte de la GPL. Esta nota de copyright y la de la licencia dan permiso para enlazar con el programa X:

Copyright (C) yyyy [nombre del titular del copyright]

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/>.[2]

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.[3]

In addition, 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 code included in the standard release of DEF under the XYZ 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 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.[4]

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.[5]

Deberá poner este texto en cada archivo al que se aplique la excepción.

Sólo los titulares del copyright del programa tienen capacidad legal para autorizar esta excepción. Si usted ha escrito todo el programa, suponiendo que su empleador o centro de enseñanza no reclame los derechos, usted es el titular del copyright, de modo que puede autorizar esta excepción. Pero si quiere utilizar en su código partes de otros programas cubiertos por la GPL, de autores diferentes, usted no puede autorizar esta excepción en lugar de ellos. 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 intenta enlazar no son libres, consulte la sección acerca de escribir software libre que utiliza bibliotecas que no son libres.

¿Cómo consigo un copyright de mi programa con el fin de publicarlo bajo la GPL?
En virtud de la Convención de Berna, todo lo que se escribe tiene automáticamente 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, con tal que nadie más pueda reclamar la titularidad de su trabajo.

En cualquier caso, es una buena idea registrar su copyright en los EE. UU. Eso le dará más fuerza para combatir a los posibles infractores en ese país.

El caso en que existe la posibilidad de que alguien más reclame el copyright se da cuando usted es un empleado o un 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 en sus productos de software privativo?
En la actualidad muchas universidades tratan de obtener fondos restringiendo el uso del conocimiento y la información que desarrollan, 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?
Consulte la página instrucciones sobre la GPL.
He oído que alguien obtuvo una copia de un programa GPL bajo otra licencia. ¿Es esto posible?
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.
Publicar un programa que no es libre es siempre censurable desde el punto de vista ético, pero legalmente no existe ningún problema para que lo haga. 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?
En sentido estricto, la GPL es una licencia del desarrollador para otros, a fin de determinar 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.

De todos modos, 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 terceras partes para su uso exclusivo?
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 desarrollar programas que no son libres? ¿Puedo emplear herramientas tales como GCC para compilarlos?
Sí, puesto que el copyright de los editores y 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 los derechos 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?
Sí, los 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 desarrolladores, 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.

Advierta, no obstante, que el principio de uso legítimo no es igual en todas partes; los tipos de uso que se consideran «legítimos» varían de un país a otro.

¿Puede el gobierno de los EE. UU. publicar un programa bajo la GPL de GNU?
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).

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

¿Puede el gobierno de los EE. UU. publicar mejoras de un programa cubierto por la GPL?
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 las mejoras también pueden estar cubiertas por la GPL.

¿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 desarrollar diseños de hardware, ¿puedo exigir que esos diseños tengan que ser libres?
En general, esto es legalmente imposible. 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 creado. Si el usuario utiliza el programa que usted ha creado, 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, para que usted pudiera tener algo que decir acerca del uso de los archivos de salida tendría que suceder 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éase 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 ese 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 sólo el resto. De esa manera no tendría que respetar las condiciones de redistribución del texto copiado.

¿En qué casos los archivos de salida de un programa cubierto por la GPL están también cubiertos por la GPL?
Únicamente cuando el programa copia partes de sí mismo en el archivo de salida.
Si añado un módulo a un programa cubierto por la GPL, ¿tengo que usar la GPL como licencia para mi módulo?
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?

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 se publica bajo la GPL, ¿significa esto que los programas escritos para ser interpretados por él han de tener licencias compatibles con la GPL?
Cuando el intérprete no hace más que interpretar un lenguaje, la respuesta es no. El programa interpretado, para el intérprete, son sólo 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 utiliza por medio de esos enlaces. Así pues, si esas utilidades están publicadas bajo la GPL, el programa interpretado que las utiliza 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 de 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 de 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)?
Sí, la GPL lo permite porque esa biblioteca en tiempo de ejecución acompaña normalmente al compilador o intérprete que usted está utilizando. Así pues, entra dentro de la excepción de la sección 3 de la GPL.

Esto no significa que sea una buena idea escribir el programa de modo que pueda ejecutarse sólo en Windows. Hacerlo así da como resultado un programa que es software libre, pero «atrapado» (en este caso, atrapado por Windows en vez de por Java, pero el resultado es el mismo). (Nota: En diciembre de 2006 Sun comenzó a relicenciar su plataforma Java bajo la GPL de GNU.)

¿Por qué la licencia BSD original es incompatible con la GPL?
Porque impone una exigencia específica que no está en la GPL; a saber, el requisito acerca de los avisos del programa. La GPL estipula:

You may not impose any further restrictions on the recipients' exercise of the rights granted herein.[6].

La cláusula acerca de los avisos 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?
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 comunicar con estructuras de datos complejas es prácticamente equivalente al enlazado dinámico.

Si un programa publicado bajo la GPL utiliza accesorios [plug-ins], ¿cuáles son los requisitos para las licencias de un accesorio?
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 al escribir un accesorio para un programa que no es libre?
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?
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?
Sí.
En tal caso, ¿hay alguna posibilidad de conseguir una licencia de su programa bajo la GPL Reducida?
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 pretende así 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 alternativa legal de no usar nuestro código.

¿Cómo puedo autorizar que con mi biblioteca, cubierta por la GPL, se enlacen módulos privativos únicamente bajo una interfaz controlada?
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.[3]

In addition, 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.[7].

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.[5]

Sólo los titulares del copyright del programa tienen capacidad legal para autorizar esta excepción. Si usted ha escrito todo el programa, suponiendo que su empleador o centro de enseñanza no reclame los derechos, usted es el titular del copyright, de modo que puede autorizar esta excepción. Pero si quiere utilizar en su código partes de otros programas cubiertos por la GPL, de autores diferentes, usted no puede autorizar esta excepción en lugar de ellos. 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é características ha de tener la licencia de mi programa. ¿Pueden explicarme qué licencias puedo usar?
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) 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 la «mera agregación» y la «combinación de dos módulos para formar un programa»?
La mera agregación de dos programas consiste en ponerlos uno junto al otro en el mismo CD-ROM o disco duro. Empleamos esta expresión cuando se trata de programas independientes y no de partes de un único programa. En este caso, si uno de los programas está cubierto por la GPL, eso no tiene efecto alguno en el otro programa.

Combinar dos módulos significa conectarlos entre sí para dar lugar a un único programa mayor. Si uno de ellos está cubierto por la GPL, el conjunto formado por ambos deberá publicarse bajo la GPL; si no puede o no quiere hacerlo así, no podrá combinarlos.

¿Qué determina la combinación de dos partes para formar un programa? Esta es una cuestión legal que, en último término, tendrían que decidir los tribunales. A nuestro juicio, un criterio adecuado depende del mecanismo de comunicación (exec, tuberías, rpc, invocación de funciones dentro de un espacio de direcciones compartido, etc.) y de 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í, 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 dentro de un programa mayor.

¿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?
Nuestros abogados nos han explicado que para estar en la mejor posición para hacer respetar la GPL frente a los infractores en los tribunales deberíamos mantener el copyright del programa tan simple como sea posible. Esto lo hacemos pidiendo a los colaboradores que o bien asignen el copyright de su contribución a la FSF, o bien que renuncien al copyright y pongan de ese modo el programa en el dominio público.

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 reforzar la GPL. Así pues, animamos a la gente a que asignen un copyright a las contribuciones de códigos grandes, y que pongan en el dominio público sólo 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 <[email protected]>.

¿Puedo modificar la GPL y hacer una licencia modificada?
Puede utilizar 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, que modifique la instrucciones de uso finales lo suficiente para que su redacción sea claramente diferente y que no mencione a GNU (aunque el procedimiento que describa puede ser similar).

Si quiere usar nuestro preámbulo en una licencia modificada, escriba por favor a <[email protected]> para pedir permiso. Antes nos gustaría comprobar los requisitos de la licencia para ver si los aprobamos.

Si bien nosotros no plantearemos objeciones legales a que de esa 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.

Si utilizo parte de 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?
Usted está autorizado a distribuir comercialmente copias del programa modificado, pero sólo 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 el código cubierto por la GPL dentro de su propio programa.

¿Puedo utilizar la GPL para algo que no sea software?
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.

De todos modos, 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?
Véase este artículo para más detalles. Funciona como se proyectó, como se pretendía y como se esperaba.
Consideren 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?
Sí. A Y se le exigió 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. ¿Puedo hacerlo?
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 que no sería libre.

Un sistema que incorpora 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.

De todos modos, 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 comuniquen 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 sustancial 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 órdenes (shell), entonces puede tratarlos como dos programas separados; pero tiene que hacerlo adecuadamente. Se trata de una simple cuestión de forma: cómo describir lo que está haciendo. ¿Por qué nos preocupamos de esto? Porque queremos asegurarnos de que los usuarios entienden 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 bajo la GPL cierto programa de GNU no encaja en nuestro proyecto de hacer software privativo. ¿Harían una excepción para nosotros? Eso representaría más usuarios del programa.
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 más un obstáculo que 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 una buena razón de que esto servirá para hacer avanzar la causa del software libre.

A veces también cambiamos 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 (como la licencia X11), entre la parte cubierta por la GPL y la parte privativa?
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 de GNU.

El hecho de que el módulo privativo A se comunique con el módulo C —cubierto por la GPL— sólo 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.

¿La excepción de libstdc++ permite los enlaces dinámicos?
Sí. El propósito de la excepción es permitir que se compile software privativo usando 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 cualquier usuario que quisiera cambiar esas versiones tendría que obtener dichas bibliotecas por separado. ¿Por qué la GPL no lo permite?
Por dos razones.

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 se colaría de todo. Daría carta blanca para reservarse el código fuente de toda clase de modificaciones y extensiones del software cubierto por la GPL.

Que todos los usuarios tengan acceso al código fuente es uno de nuestros objetivos primordiales, de modo que esa consecuencia es algo que queremos evitar a toda costa.

Más concretamente, las versiones del programa enlazado con las bibliotecas Money Guzzler no serían en realidad software libre tal y como nosotros entendemos esa expresión: no vendrían acompañadas del código fuente completo, que permite a los usuarios modificar y recompilar el programa.

Si una licencia para un módulo Q contiene un requisito que es incompatible con la GPL, pero el requisito únicamente es aplicable cuando Q se distribuye solo, no cuando Q está incluido en un programa más grande, ¿hace eso que la licencia sea incompatible con la GPL? ¿Puedo combinar o enlazar Q con un programa cubierto por la GPL?
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 sólo Q, todavía bajo la GPL.

Si la licencia del módulo Q le permite dar permiso para ello, entonces es compatible con la GPL. De otro modo, no es compatible con la GPL.

Si la licencia de Q dice, en términos que no dejan lugar a duda, 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 o combinar P con Q.

¿Puedo publicar una versión modificada de un programa cubierto por la GPL, en forma binaria únicamente?
No. Lo que se pretende con la GPL es 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 sólo los binarios. Si distribuyo copias, ¿tengo que conseguir los archivos fuente y distribuirlos también?
Sí. La regla general es que si distribuye binarios, debe también distribuir el correspondiente código fuente completo. La excepción para el caso en que se recibe una oferta escrita de proporcionarle el código fuente es bastante limitada.
Quiero distribuir los binarios por medio de un soporte material sin acompañarlos de los archivos fuente. ¿Puedo proporcionar el código fuente por FTP en vez de hacerlo por correo postal?
Se supone que usted, si alguien se lo pide, proporcionará el código fuente por correo postal en un medio físico. Si lo desea puede ofrecer la posibilidad de copiar el código fuente correspondiente por FTP, además de la opción por correo, pero el acceso a los archivos fuente por FTP no es suficiente para satisfacer la sección 3 de la GPL.

Cuando un usuario pide los fuente, usted tiene que asegurarse de que el usuario obtiene el código fuente. Si determinado usuario puede obtener de usted el código fuente por medio de un FTP anónimo, perfecto, tarea cumplida. Pero no todos los usuarios podrán bajárselo. El resto de los usuarios tienen el mismo derecho a obtener de usted el código fuente, lo que significa que usted ha de estar dispuesto a enviárselo por correo.

Si el acceso por FTP está lo bastante a mano, quizá nadie elija solicitar una copia por correo postal. Si es así, nunca tendrá que enviar copias. Pero usted no puede darlo por hecho.

Claro que lo más sencillo es enviar los archivos fuente con los binarios desde el primer momento.

Si distribuye los binarios por medio de FTP, debería distribuir los fuente por medio de 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 los archivos fuente?
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 fuente en un sitio diferente de Internet?
La GPL dice que se debe ofrecer acceso para copiar el código fuente «desde el mismo lugar»; esto es, junto a los binarios. En cualquier caso, si hace las gestiones precisas para que el necesario código fuente permanezca accesible en otro sitio de Internet y, al lado de los binarios, pone un enlace o una referencia cruzada al código fuente, pensamos que esto puede considerarse «desde el mismo lugar».

De todos modos, tenga en cuenta que no basta con encontrar un sitio en el que hoy se halle el código fuente apropiado y decir a la gente que mire ahí. Mañana ese sitio puede haber borrado ese código fuente, o simplemente reemplazarlo con una versión más reciente del mismo programa. En ese caso ya no estaría satisfaciendo los requisitos de la GPL. Para hacer un esfuerzo razonable por satisfacerlos, es preciso que usted establezca un acuerdo explícito con ese otro sitio, para así asegurarse de que el código fuente estará disponible tanto tiempo como usted mantenga los binarios a disposición del público.

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?
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 dicha versión.

Un objetivo primordial de la GPL es ampliar la extensión del Mundo Libre garantizando que las mejoras de 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»?
La intención es buena, pero este modo de proporcionar el código fuente no cumple su objetivo.

A un usuario que quiera el código fuente dentro de un año es posible que para entonces le resulte ya imposible obtener de otro sitio la versión apropiada. 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 fuente completos, no sólo los diffs.

Quiero poner los binarios a disposición a través de un FTP anónimo, pero enviar los archivos fuente sólo a quien los solicite.

Si quiere distribuir binarios a través de un FTP anónimo, junto a ellos ha de proporcionar el código fuente de alguna de las maneras descritas en la sección 3. Esto no debería ser complicado. Puede hacer una oferta escrita de facilitar los fuente; la sección 3(b) lo permite. Pero si puede encontrar algún sitio para distribuir su programa, seguro que puede encontrar uno que disponga de espacio para los archivos fuente.

Pero sea cual sea la manera en que distribuya los fuente, estos deben corresponder exactamente a los binarios. En particular, debe asegurarse de que correspondan a la misma versión del programa, no a una anterior ni a una posterior.

Puede publicar los fuente y los binarios en máquinas diferentes, siempre que el procedimiento para obtenerlos sea igual de sencillo y que junto a los binarios ofrezca información del lugar donde se encuentran los fuente.

¿Cómo puedo asegurarme de que todo usuario que se baje los binarios obtenga también los archivos fuente?
No tiene por qué asegurarse de esto. Mientras publique los 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 fuente depende de él.

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

Una empresa está utilizando en un sitio web una versión modificada de un programa que está bajo la GPL. ¿Dice la GPL que deben publicar los archivos fuente modificados?
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 esto. Por tanto, la empresa no tiene por qué publicar los archivos fuente modificados.

Es esencial que la gente tenga la libertad de hacer modificaciones y usarlas en privado, sin nunca publicar esas modificaciones. No obstante, poner el programa en un servidor para comunicarse con el público, difícilmente puede calificarse de uso «privado»; de modo que, en este caso especial, sería legítimo pedir la publicación del código fuente. Estamos pensando en hacer algo así en la versión 3 de la GPL, pero aún no tenemos en mente una formulación precisa.

Entre tanto, podría usar la GPL Affero para programas diseñados para su uso en servidores.

¿Es «distribución» hacer y usar múltiples copias dentro de una organización o empresa?
No, en ese caso la organización está haciendo las copias sólo para sí misma. En consecuencia, una empresa u otra organización puede desarrollar 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 contratistas para utilizarlas 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 el derecho de redistribuir esa versión?
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 todavía la trata como secreto comercial, eso 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?
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?
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 de GNU están publicadas bajo la GPL ordinaria en lugar de la GPL Reducida?
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 desarrolla 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 alto grado. ¿Pero en qué medida sucederá? Sólo podemos hacer suposiciones.

Estaría bien hacer la prueba con la LGPL en cada biblioteca por algún tiempo, ver si era de ayuda y cambiar a la GPL si no lo era. 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 los casos uno por uno. Hay una extensa explicación de cómo tratamos la cuestión.

¿Por qué los programas deben decir «Versión 2 de la GPL o cualquier versión posterior»?
De cuando en cuando, en un intervalo de años, modificamos la GPL; unas veces para clarificarla, otras veces para permitir ciertos tipos de uso antes no permitidos, y otras para hacer más estricto un requisito. (El último cambio se hizo en 1991). Utilizar esta «referencia indirecta» en cada programa nos permite cambiar las condiciones de distribución para todo el software de GNU en su conjunto cuando actualizamos la GPL.

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

Suponga que un programa dice «Versión 2 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 2 de la GPL. Cuando un programa dice «Versión 2 de la GPL o cualquier versión posterior», a los usuarios siempre les estará permitido utilizarlo según las condiciones de la versión 2 de la GPL, aun cuando existan nuevas versiones de esta licencia.

Si un requisito más estricto de 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 se disponga de la versión 3 de la GPL, los autores de la mayor parte de los programas cubiertos por la GPL publicarán las siguientes versiones de sus programas indicando «Versión 3 de la GPL o cualquier versión posterior». Entonces los usuarios tendrán que seguir los requisitos, más estrictos, de la versión 3 de la GPL en toda versión posterior del programa.

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

¿Por qué no utilizan la GPL para manuales?
Se puede utilizar la GPL para un manual, pero para ellos es mucho mejor la GNU Free Documentation License (GFDL) (Licencia de Documentación Libre de GNU).

La GPL se diseñó para programas; contiene muchas cláusulas complejas que son cruciales para 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 de ellos 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 debería 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?
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 <[email protected]>.

Para utilizar esta excepción, añada este 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. [8].

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?

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

Esta es una excepción para el código JavaScript:

As a special exception to 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.[9].

¿Puedo publicar bajo la GPL un programa que he desarrollado utilizando herramientas que no son libres?
Qué programas haya utilizado para editar el código fuente, compilarlo, estudiarlo o grabarlo es normalmente indiferente 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. La FSF puede aconsejarle sobre el modo de hacerlo.

¿Hay traducciones de la GPL a otras lenguas?
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. Esto 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. Sólo un jurista que conozca bien ambas lenguas puede hacerlo, e incluso así existen riesgos de introducir 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, ya no hay forma de revocar esa autorización si más adelante descubrimos que contenía un error.

En ocasiones, gente con ganas de cooperar se ofrece a hacer la labor de 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).

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

    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 de 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 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, una traducción exigiría un considerable esfuerzo por parte de algún voluntarioso y experto jurista, 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 ejecutar en él programas cubiertos por la GPL?
Cuando el intérprete no hace más que interpretar un lenguaje, la respuesta es sí. El programa interpretado, para el intérprete, son sólo 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 ha escrito el programa, lo publicó bajo la GPL y lo diseñó específicamente para que funcione con esas utilidades, la gente puede tomarlo como una excepción implícita que les permite enlazarlo con esas utilidades. Pero si es eso lo que pretendía, es mejor decirlo explícitamente.
  3. Usted no puede tomar código ajeno cubierto por la GPL y utilizarlo de esa manera o añadirle tales excepciones. Sólo los titulares del copyright de ese código pueden añadir la excepción.
¿Quién tiene la facultad de hacer cumplir la GPL?

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?
Subclasificar es crear una obra derivada. Por tanto, los términos de la GPL afectan al programa completo en el que de una clase cubierta por la GPL se hizo una subclase.
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?
En general, la respuesta es no: ese no es un requisito legal. En casos concretos, 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. Sólo 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 poner el programa a disposición en Internet?
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 ser libre de facilitarle a usted una copia, si así lo desea. Una vez el titular del copyright distribuye una copia a alguien, esa persona 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 puede distribuir versiones modificadas del mismo bajo la GPL, pero que no puede distribuir el original bajo la GPL?
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 1.000 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 1.000 líneas, produciendo la versión C, que tiene el mismo código que la versión A, pero que está 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?

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 mostrar su acuerdo con la GPL? Si obtengo un programa bajo la GPL, ¿he de manifestar mi acuerdo con algo?

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 sólo 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 usar un software de instalación para un software licenciado bajo la GPL. ¿Implica esto que el instalador debe tener una licencia compatible con la GPL?

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


Notas de traducción

IMPORTANTE: Las siguientes traducciones tienen carácter meramente informativo y carecen de validez legal.
  1. No obstante, como excepción especial, no es necesario que el código fuente que se distribuye incluya nada de lo que normalmente se distribuye (bien como fuente, bien en forma binaria) con los componentes principales (compilador, kernel y similares) del sistema operativo en el cual funciona el ejecutable, a no ser que el propio componente acompañe al ejecutable.
  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 la publica 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 y sin garantizar el USO PARA NINGÚN PROPÓSITO EN PARTICULAR. Véase la Licencia Pública General de GNU para más detalles.

    Usted debe haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha sido así, vea https://www.gnu.org/licenses/.
  3. 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.
  4. Además, como excepción especial, los titulares del copyright de ABC le conceden permiso para combinar el programa ABC con programas o bibliotecas de software libre publicados bajo la LGPL de GNU y con código incluido en la edición estándar de DEF bajo la licencia XYZ (o versiones modificadas de dicho código, sin modificación de la licencia). Puede copiar y distribuir el sistema así construido, según los términos de la GPL de GNU para ABC y 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 en que la GPL de GNU exija la distribución del código fuente.
  5. Tenga en cuenta que quien haga versiones modificadas de ABC 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.
  6. No puede imponer al receptor ninguna restricción ulterior sobre el ejercicio de los derechos aquí concedidos.
  7. Además, 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 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.
  8. 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.
  9. 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 la ley 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.