Es importante tener en cuenta que la "GPL" puede referirse a dos licencias.
- La Licencia Pública General de GNU
- la Licencia Pública General de GNU (alias) La Licencia Pública General
Cualquiera de los dos es muy claro para indicar que se considera código de una biblioteca entremezclado con un programa como trabajo combinado. Esto significa que, si su programa carga una biblioteca a través de un cargador dinámico (es decir, un objeto común compartido) o enlaces contra él estáticamente, el ejecutable resultante es un trabajo combinado del programa en sí y de las bibliotecas que lo soportan.
Ahora, las diferencias entre las dos licencias se vuelven muy importantes.
La GPL establece que si su programa usa una biblioteca (o cualquier otro código cubierto por la GPL), debe ser publicada bajo los mismos términos que la GPL. Esto (nuevamente) se debe a que GPL considera que el programa resultante es un trabajo combinado de su código, más el trabajo de otros.
Afortunadamente (¿o no? Según sus opiniones), la Biblioteca GNU C no está cubierta por la GPL. Está cubierto por la LGPL. La LGPL dice que simplemente cargar y usar la biblioteca del sistema C constituye un trabajo combinado, pero se hace una excepción que permite que las aplicaciones propietarias lo hagan sin tener que cumplir con los requisitos de distribución de la GPL. Entonces, en este caso, Oracle es libre de usar la biblioteca del sistema C (necesaria para ejecutar su código) sin estar obligada a liberar su código fuente.
Si Oracle lanzó un software que necesitaba cargar o vincular con una biblioteca cubierta por GPL, por ejemplo ... readline()
, entonces sí, estarían obligados a compartir el código. Oracle (como muchos otros que escriben software para sistemas operativos similares a UNIX) tiene cuidado de elegir bibliotecas que se publican bajo una licencia más permisiva (también conocida como BSD de 2 o 3 cláusulas), o implementar las propias.
En lo que respecta al kernel, simplemente usar su interfaz syscall no constituye un trabajo combinado. Si bien la mayoría de nosotros simplemente dejamos que la biblioteca del sistema C abstraiga estas complejidades, usted es completamente libre de implementar sus propias llamadas de sistema en los términos que desee. Esto ilustra por qué la LGPL para la biblioteca del sistema C fue una elección muy estratégica. Si hubiera sido al revés, GNU/Linux habría disuadido a más desarrolladores de lo que atraían. Tenga en cuenta también que muchos de los encabezados de Linux que definen los números mágicos necesarios para comunicarse con la interfaz syscall del kernel no tienen ninguna licencia mencionada en absoluto. Ver linux/sysctl.h
por ejemplo, o esta nota de Linus en el archivo COPYING
distribuido con el kernel:
NOTA! Este derecho de autor hace no programas de usuario cubierta que utilizan los servicios del núcleo por el sistema normal de llamadas - esto no es más que considera un uso normal de el núcleo, y hace no caen bajo el título de "obra derivada".También tenga en cuenta que la GPL a continuación es con derechos de autor por la Free Software Foundation, pero la instancia de código que se refiere a (el kernel de Linux) es propiedad de y otros que realmente lo escribieron.
También tenga en cuenta que la única versión válida de la GPL por lo que el núcleo se refiere es esta versión particular de la licencia (es decir, v2, no v2.2 o v3.x o lo que sea), a menos que explícitamente se indique lo contrario.
Linus Torvalds
Nota, Linus dice específicamente usando las cabeceras del núcleo y la interfaz de syscall no constituye una deriva (como en modificado) o combinado trabajo (como en utilizado simplemente). Esto, entre otras cosas, es parte de la brecha entre Linux y GNU. Menciono esto solo porque mencionas indirectamente las ramificaciones de la GPL. Linus (a veces) quiere un código que modifique el núcleo, pero eligió la GPL para asegurarse de que (a veces) fuera su elección.
En resumen, si enlaza o carga una biblioteca que está cubierta por la GPL, debe hacer que su código esté disponible bajo la misma licencia. Si vincula o carga una biblioteca que está cubierta por la LGPL, los términos de la licencia dependen de usted.
Tenga en cuenta también que la LGPL tiene mucho más que decir, especialmente con respecto a modificaciones, enlaces estáticos, etc. Lo que he descrito es solo el bit que responde a su pregunta.
Finalmente, la GPL se aplica solo cuando se distribuye o transmite un programa. Puede hacer lo que quiera con su software en su computadora y no tiene la obligación de compartirlo con otros usuarios de su computadora (o servidor, o lo que sea). La AGPL tiene algo que decir al respecto, si el software interactúa con una red ... pero ese es un tema para una pregunta diferente.
La FSF responde a preguntas relacionadas con la GPL en [email protected] Si tiene alguna duda sobre un caso en particular y desea asegurarse de no tener problemas, son bastante amables y están felices de responder preguntas. .incluso si está haciendo software no libre. Les gusta cuando las personas hacen un esfuerzo para asegurarse de que sigan la licencia de forma adecuada, lo que lamentablemente no sucede de vez en cuando.
Este tema sigue siendo tan delicado como lo era a principios de los 90.
Votamos para cerrar esta pregunta como fuera de tema porque ** se trata de licencias o cuestiones legales **, no de programación o desarrollo de software. [Consulte aquí] (http://meta.stackoverflow.com/a/274964/1402846) para obtener más información y [ayuda/tema] para obtener más información. –