Una excepción de vinculación GPL modifica la Licencia Pública General GNU (GPL) de una manera que permite que los proyectos de software que proporcionan código de biblioteca estén " vinculados " a los programas que los utilizan, sin aplicar los términos completos de la GPL al programa que los utiliza. La vinculación es el proceso técnico de conectar el código de una biblioteca con el código de uso para producir un único archivo ejecutable . Se realiza en tiempo de compilación o en tiempo de ejecución para producir código funcional legible por máquina. La Free Software Foundation afirma que, sin aplicar la excepción de vinculación , un programa vinculado al código de la biblioteca GPL sólo puede distribuirse bajo una licencia compatible con GPL. [1] Esto no se ha probado explícitamente en los tribunales, pero la vinculación de violaciones ha dado lugar a un acuerdo. [2] La licencia del proyecto GNU Classpath incluye explícitamente una declaración a tal efecto.
Muchas bibliotecas de software libre que se distribuyen bajo la GPL utilizan una excepción equivalente, aunque la redacción de la excepción varía. Los proyectos notables incluyen ERIKA Enterprise , [3] GNU Guile , [4] las bibliotecas de tiempo de ejecución de GNAT , [4] GNU Classpath [5] y GCC Runtime Library Exception. [6]
Las bibliotecas en tiempo de ejecución del compilador también suelen utilizar esta modificación de licencia o una equivalente, por ejemplo, la libgcc
biblioteca de la Colección de compiladores GNU , [7] así como todas las bibliotecas del proyecto Free Pascal .
En 2007, Sun Microsystems lanzó la mayor parte del código fuente de las bibliotecas de clases para los proyectos Java SE y Java EE bajo la versión 2 de la licencia GPL más la excepción de enlace Classpath, [8] y utilizó la misma licencia como una posible licencia para su servidor empresarial GlassFish [9] y para su IDE NetBeans Java . [10]
La versión 3 de la Licencia pública general reducida (LGPL) de GNU [11] también se construye como una excepción a la GPL. [12]
El proyecto GNU Classpath proporciona un ejemplo del uso de dicha excepción de vinculación GPL. La biblioteca GNU Classpath utiliza la siguiente licencia:
Classpath se distribuye bajo los términos de la Licencia Pública General GNU con la siguiente aclaración y excepción especial.
Vincular esta biblioteca de forma estática o dinámica con otros módulos es realizar un trabajo combinado basado en esta biblioteca. Por tanto, los términos y condiciones de la Licencia Pública General GNU cubren toda la combinación.
Como excepción especial, los titulares de los derechos de autor de esta biblioteca le otorgan permiso para vincular esta biblioteca con módulos independientes para producir un ejecutable, independientemente de los términos de licencia de estos módulos independientes, y para copiar y distribuir el ejecutable resultante bajo los términos de su elección. siempre que también cumpla, para cada módulo independiente vinculado, los términos y condiciones de la licencia de ese módulo. Un módulo independiente es un módulo que no se deriva ni se basa en esta biblioteca. Si modifica esta biblioteca, puede extender esta excepción a su versión de la biblioteca, pero no está obligado a hacerlo. Si no desea hacerlo, elimine esta declaración de excepción de su versión.
Como tal, se puede utilizar para ejecutar, crear y distribuir una gran clase de aplicaciones y subprogramas. Cuando GNU Classpath se utiliza sin modificaciones como biblioteca de clases principal para una máquina virtual, compilador para el lenguaje Java o para un programa escrito en el lenguaje de programación Java, no afecta la licencia para distribuir esos programas directamente. [5]
Si bien la versión 2.1 de LGPL era una licencia independiente, la actual versión 3 de LGPL se basa en una referencia a la GPL.
En comparación con la licencia GNU Classpath anterior, la LGPL formula más requisitos para la excepción de vinculación: los licenciatarios deben permitir la modificación de las partes de la biblioteca que utilizan y la ingeniería inversa (de su software y de la biblioteca) para depurar dichas modificaciones. [ cita necesaria ]
Trabajos relacionados con la excepción de vinculación GPL en Wikisource