stringtranslate.com

Licencia pública general reducida GNU

La Licencia Pública General Reducida de GNU ( LGPL ) es una licencia de software libre publicada por la Free Software Foundation (FSF). La licencia permite a los desarrolladores y 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 fuerte le exijan publicar el código fuente de sus propios componentes. Sin embargo, cualquier desarrollador que modifique un componente cubierto por LGPL debe hacer que su versión modificada esté disponible bajo la misma licencia LGPL. Para el software propietario, el código LGPL se suele utilizar en forma de biblioteca compartida , de modo que existe una clara separación entre los componentes propietario 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 fuerte copyleft 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 total libertad del usuario final en el uso del software; solo garantiza la libertad de modificación de los componentes con licencia LGPL, pero no de ningún componente propietario.

Historia

La licencia se llamó originalmente Licencia Pública General de Biblioteca GNU y se publicó por primera vez en 1991, y adoptó la versión número 2 para igualarla con la versión 2 de GPL. La LGPL fue revisada en aspectos menores en la versión 2.1, publicada en 1999, cuando pasó a llamarse Licencia pública general reducida GNU para reflejar la posición de la FSF de que no todas las bibliotecas deberían usarla. La versión 3 de LGPL se publicó en 2007 como una lista de permisos adicionales aplicados a la versión 3 de GPL.

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

Diferencias con la GPL

La principal diferencia entre la GPL y la LGPL es que esta última permite vincular la obra con (en el caso de una biblioteca, "usada por") un programa no (L)GPL, independientemente de si tiene una licencia bajo una Licencia de la familia GPL u otras licencias. [5] En LGPL 2.1, el programa no (L)GPLed puede distribuirse bajo cualquier término si no es un trabajo derivado . Si se trata de un trabajo derivado, entonces los términos del programa deben permitir "la modificación del trabajo 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. Generalmente se acepta que un ejecutable independiente que se vincula dinámicamente a una biblioteca a través de un .so , .dll o un medio similar no es un trabajo derivado según lo define la LGPL. Se incluiría en la definición de "obra que utiliza la Biblioteca". El párrafo 5 de la LGPL versión 2.1 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". Dicha obra, de forma aislada, no es una obra derivada de la Biblioteca y, por lo tanto, queda fuera del alcance de esta Licencia.

Esencialmente, 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 LGPL. El método más utilizado para hacerlo es utilizar "un mecanismo de biblioteca compartida adecuado para vincular". Alternativamente, se permite una biblioteca vinculada estáticamente si se proporciona código fuente o archivos objeto 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 (consulte la sección 3 de la LGPL versión 2.1 y la sección 2, opción b de la LGPL versión 3). Esta característica permite la reutilización directa del código LGPLed en bibliotecas y aplicaciones GPLed.

La versión 3 de LGPL no es inherentemente compatible con la versión 2 de GPL. Sin embargo, las obras que utilizan esta última y que han dado permiso para utilizar una versión posterior de la GPL son compatibles: [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, con la trabajo combinado en su conjunto bajo los términos de la GPLv3. [9]

Recomendaciones de la FSF sobre licencias de bibliotecas

El nombre anterior Licencia pública general de biblioteca GNU dio a algunos la impresión de que la FSF recomendaba que todas las bibliotecas de software utilizaran la LGPL y que los programas utilizaran 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 necesariamente se debería usar la LGPL para todas las bibliotecas, ya que el uso de la GPL puede brindar ventajas a los desarrolladores de software libre. . [5]

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

Especificaciones del lenguaje de programación

La licencia utiliza terminología 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 de la licencia para aclarar la terminología en el contexto Lisp . La LGPL con este preámbulo a veces se denomina LLGPL. [11]

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

Las plantillas de C++ y las bibliotecas de solo encabezados 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 el código con licencia LGPL sean heredadas por el código que no es (L) GPL. Se da una aclaración en el sitio web oficial de GNU:

La LGPL no contiene disposiciones especiales para la herencia, porque no son necesarias. La herencia crea trabajos derivados de la misma manera que la vinculación tradicional, y la LGPL permite este tipo de trabajo derivado de la misma manera que permite las llamadas a funciones ordinarias. [13]

Ver también

Referencias

  1. ^ Información de licencia Debian
  2. ^ abc "Varias licencias y comentarios sobre ellas". Fundación de Software Libre . 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 GNU: una guía y un tutorial completo . 2018.
  5. ^ ab Stallman, Richard. "Por qué no debería utilizar la GPL reducida para su próxima biblioteca". Sitio web oficial de la Fundación de Software Libre .
  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 (LGPL) de GNU 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 Fundación de Software Libre .
  10. ^ Stallman, Richard. Re: [código abierto] [Fwd: [icecast-dev] Xiph.org anuncia Vorbis Beta 4 y 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