stringtranslate.com

Licencia Pública General Reducida de GNU

La Licencia Pública General Reducida de GNU (GNU Lesser General Public License , LGPL ) es una licencia de software libre publicada por la Free Software Foundation (FSF). La licencia permite a los desarrolladores y a las empresas utilizar e integrar un componente de software publicado bajo la LGPL en su propio software (incluso propietario ) sin que los términos de una licencia copyleft estricta les exijan publicar el código fuente de sus propios componentes. Sin embargo, cualquier desarrollador que modifique un componente cubierto por la LGPL debe hacer que su versión modificada esté disponible bajo la misma licencia LGPL. Para el software propietario, el código bajo la LGPL se utiliza generalmente en forma de biblioteca compartida , de modo que haya una clara separación entre los componentes propietarios y LGPL. La LGPL se utiliza principalmente para bibliotecas de software , aunque también se utiliza en algunas aplicaciones independientes.

La LGPL se desarrolló como un compromiso entre el copyleft fuerte de la Licencia Pública General GNU (GPL) y licencias más permisivas como las licencias BSD y la Licencia MIT . La palabra "Lesser" en el título muestra que la LGPL no garantiza la completa libertad del usuario final en el uso del software; sólo garantiza la libertad de modificación para los componentes licenciados bajo la LGPL, pero no para ningún componente propietario.

Historia

La licencia se llamó originalmente Licencia Pública General para Bibliotecas GNU y se publicó por primera vez en 1991, adoptando la versión número 2 para equipararla con la versión 2 de la GPL. La LGPL se revisó en aspectos menores en la versión 2.1, publicada en 1999, cuando se le cambió el nombre a Licencia Pública General Reducida de GNU para reflejar la posición de la FSF de que no todas las bibliotecas deberían usarla. La versión 3 de la LGPL se publicó en 2007 como una lista de permisos adicionales aplicados a la versión 3 de la GPL.

Además del término "trabajo basado en el Programa" de la GPL, la versión 2 de la LGPL introdujo dos términos aclaratorios adicionales: "trabajo basado en la biblioteca" y "trabajo que utiliza la biblioteca". [4] La versión 3 de la LGPL eliminó parcialmente estos términos.

Diferencias con la GPL

La principal diferencia entre la GPL y la LGPL es que esta última permite que la obra se vincule con (en el caso de una biblioteca, "se utilice por") un programa que no esté bajo la (L)GPL, independientemente de si está licenciado bajo una licencia de la familia GPL u otras licencias. [5] En la LGPL 2.1, el programa que no esté bajo la (L)GPL puede distribuirse bajo cualquier término si no es una obra derivada . Si es una obra derivada, entonces los términos del programa deben permitir la "modificación de la obra para el uso propio del cliente y la ingeniería inversa para depurar dichas modificaciones". Si una obra que utiliza un programa LGPL es una obra derivada o no es una cuestión legal. Un ejecutable independiente que se vincula dinámicamente a una biblioteca a través de un .so , .dll o medio similar generalmente se acepta como que no es una obra derivada según la definición de la LGPL. Entraría dentro de la definición de una "obra que utiliza la Biblioteca". El párrafo 5 de la versión 2.1 de la LGPL establece:

Un programa que no contiene ningún derivado de ninguna parte de la Biblioteca, pero que está diseñado para funcionar con la Biblioteca al ser compilado o vinculado con ella, se denomina "trabajo que utiliza la Biblioteca". Dicho trabajo, en forma aislada, no es un trabajo derivado de la Biblioteca y, por lo tanto, queda fuera del alcance de esta Licencia.

En esencia, si se trata de un "trabajo que utiliza la biblioteca", entonces debe ser posible vincular el software con una versión más reciente del programa cubierto por la LGPL. El método más común para hacerlo es utilizar "un mecanismo de biblioteca compartida adecuado para la vinculación". Alternativamente, se permite una biblioteca vinculada estáticamente si se proporciona el código fuente o archivos de objetos vinculables. [6]

Compatibilidad

Una característica de la LGPL es el permiso para sublicenciar [7] bajo la GPL cualquier pieza de software que se reciba bajo la LGPL (véase la sección 3 de la versión 2.1 de la LGPL y la sección 2 opción b de la versión 3 de la LGPL). Esta característica permite la reutilización directa de código LGPL en bibliotecas y aplicaciones GPL.

La versión 3 de la LGPL no es intrínsecamente compatible con la versión 2 de la GPL. Sin embargo, las obras que utilicen esta última y que hayan dado permiso para utilizar una versión posterior de la GPL sí lo son: [8] una obra publicada bajo la GPLv2 "o cualquier versión posterior" puede combinarse con código de una biblioteca de la versión 3 de la LGPL, quedando la obra combinada en su conjunto bajo los términos de la GPLv3. [9]

Recomendaciones de la FSF sobre licencias de bibliotecas

El antiguo nombre de Licencia Pública General de Bibliotecas GNU dio a algunos la impresión de que la FSF recomendaba que todas las bibliotecas de software utilizaran la LGPL y los programas la GPL. En el ensayo de 1999 Por qué no debería utilizar la GPL menor para su próxima biblioteca, Richard Stallman explicó que, si bien la LGPL no había quedado obsoleta , no se debería utilizar necesariamente para todas las bibliotecas, ya que el uso de la GPL puede dar ventaja a los desarrolladores de software libre. [5]

Por otra parte, la FSF a veces aboga por licencias aún menos restrictivas. Por ejemplo, Stallman respaldó el uso de la licencia estilo BSD por parte del proyecto Vorbis en sus bibliotecas en 2001. [10]

Especificaciones del lenguaje de programación

La licencia utiliza una terminología que está destinada principalmente a aplicaciones escritas en el lenguaje de programación C o su familia. Franz Inc., los desarrolladores de Allegro Common Lisp , publicaron su propio preámbulo a la licencia para aclarar la terminología en el contexto de Lisp . La LGPL con este preámbulo a veces se conoce como LLGPL. [11]

Además, Ada tiene una característica especial, los genéricos, que pueden motivar el uso de la Licencia Pública General Modificada GNAT (GMGPL): permite que el código se vincule con o cree instancias de unidades cubiertas por la GMGPL sin que el código en sí mismo quede cubierto por la GPL.

Las plantillas de C++ y las bibliotecas de solo encabezado tienen el mismo problema que los genéricos de Ada. La versión 3 de la LGPL aborda estos casos en la sección 3. [12]

Herencia de clases

Ha surgido cierta preocupación sobre la idoneidad de que las clases orientadas a objetos en código con licencia LGPL sean heredadas por código que no sea (L)GPL. Se ofrece una aclaración en el sitio web oficial de GNU:

La LGPL no contiene disposiciones especiales para la herencia, porque no es necesaria. La herencia crea obras derivadas de la misma manera que los enlaces tradicionales, y la LGPL permite este tipo de obras derivadas de la misma manera que permite las llamadas a funciones ordinarias. [13]

Véase también

Referencias

  1. ^ Información de licencia Debian
  2. ^ abc «Varias licencias y comentarios sobre ellas». Free Software Foundation . 26 de junio de 2018. Consultado el 2 de agosto de 2018 .
  3. ^ Iniciativa de código abierto de licencias y estándares
  4. ^ "Capítulo 10. La GPL menor". Copyleft y la licencia pública general de GNU: un tutorial y una guía completos . 2018.
  5. ^ ab Stallman, Richard. "Por qué no debería utilizar la GPL menor para su próxima biblioteca". Sitio web oficial de la Free Software Foundation .
  6. ^ Licencia Pública General Reducida de GNU, Sección 4, pt. d) 0)
  7. ^ "sublicencia". Wikcionario . 7 de diciembre de 2020.
  8. ^ Licencia Pública General Reducida GNU (LGPL) versión 3. Sitio web oficial de la Free Software Foundation .
  9. ^ Preguntas frecuentes sobre las licencias GNU - Proyecto GNU - Free Software Foundation. Sitio web oficial de la Free Software Foundation .
  10. ^ Stallman, Richard. Re: [open-source] [Fwd: [icecast-dev] Xiph.org anuncia Vorbis Beta 4 y el Xiph.org
  11. ^ Preámbulo de la Licencia Pública General Reducida de GNU
  12. ^ ¿ LGPLv3 para una biblioteca de plantillas pura de C++?
  13. ^ Turner, David. La LGPL y Java. Sitio web oficial de GNU .

Enlaces externos