Puede usar un programa GPL de su propio programa sin que su programa se vea afectado por la GPL, pero no puede vincular el código GPLed a su propio programa sin que su programa esté sujeto a los términos de la GPL.
En el ejemplo proporcionado en la pregunta, en la que ha escrito un contenedor GUI alrededor de un programa de línea de comandos existente, su GUI no está vinculada por los términos de la GPL, siempre que sea un programa separado que ejecute el programa GPL en un separe el proceso y se comunique con él solo a través de las interfaces existentes, por ejemplo, a través de la línea de comando y / o mediante stdin / stdout.
Algunas partes relevantes de GPL FAQ :
¿Dónde está la línea entre dos programas separados y un programa con dos partes? Esta es una pregunta legal, que finalmente los jueces decidirán. Creemos que un criterio adecuado depende tanto del mecanismo de comunicación (exec, tuberías, rpc, llamadas de función dentro de un espacio de direcciones compartidas, etc.) como de la semántica de la comunicación (qué tipos de información se intercambian).
Si los módulos están incluidos en el mismo archivo ejecutable, definitivamente se combinan en un programa. Si los módulos están diseñados para ejecutarse unidos en un espacio de direcciones compartido, eso seguramente significa combinarlos en un solo programa.
Por el contrario, las tuberías, los sockets y los argumentos de la línea de comandos son mecanismos de comunicación que normalmente se usan entre dos programas separados. Entonces, cuando se usan para la comunicación, los módulos normalmente son programas separados. Pero si la semántica de la comunicación es lo suficientemente íntima e intercambia estructuras de datos internas complejas, eso también podría ser una base para considerar las dos partes combinadas en un programa más amplio.
¿Puedo lanzar un programa no gratuito diseñado para cargar un complemento cubierto por la GPL?
Depende de cómo el programa invoca sus complementos. Por ejemplo, si el programa usa solo fork y exec simples para invocar y comunicarse con complementos, entonces los complementos son programas separados, por lo que la licencia del complemento no requiere requisitos sobre el programa principal.
Si el programa vincula dinámicamente los complementos, y realizan llamadas de función entre sí y comparten estructuras de datos, creemos que forman un solo programa, que debe tratarse como una extensión tanto del programa principal como de los complementos. Para usar los complementos cubiertos por la GPL, el programa principal debe publicarse bajo la GPL o una licencia de software libre compatible con la GPL, y que los términos de la GPL deben seguirse cuando el programa principal se distribuye para su uso con estos complementos
Si el programa vincula dinámicamente los complementos, pero la comunicación entre ellos se limita a invocar la función 'principal' del complemento con algunas opciones y esperar a que regrese, ese es un caso límite.
Tenga en cuenta que la GPL se aplica en su totalidad al programa de línea de comandos subyacente en cualquier caso: si lo distribuye (en lugar de que los usuarios lo obtengan de otra fuente), usted es responsable de proporcionar una copia de la GPL a los usuarios, haciéndolo aclararles que el programa de la línea de comandos está bajo la GPL (incluso si el contenedor de la GUI no lo está), y hacer que el código fuente del programa de la línea de comandos esté disponible para ellos a pedido. De las preguntas frecuentes de GPL nuevamente:
Si la gente distribuyera software cubierto por GPL llamándolo "parte de" un sistema que los usuarios saben que es en parte propietario, los usuarios podrían estar inseguros de sus derechos con respecto al software cubierto por GPL. Pero si saben que lo que han recibido es un programa gratuito más otro programa, uno al lado del otro, sus derechos estarán claros.
Descargo de responsabilidad estándar: no soy un abogado y, aunque fuera un abogado, no soy tu abogado. Si necesita una respuesta definitiva, consulte a un profesional legal apropiado que tenga licencia para ejercer en su jurisdicción.
Depende de lo que quieres decir con usarlo?
También depende exactamente de qué versión / variante de la GPL se encuentra el otro código.
Descargo de responsabilidad legal: no soy un abogado.
fuente
Eso depende de cómo exactamente su programa está "usando" el programa GPL. Las preguntas frecuentes de GPL tienen una explicación bastante larga , pero aún deja mucho abierto a la interpretación:
Creo que en su ejemplo de una GUI que existe principalmente para llamar a un programa GPL de línea de comando, los dos claramente forman un solo programa, por lo que tendría que liberar su código bajo la GPL.
fuente
No.
El código GPL solo puede ser utilizado por otro código GPL.
Citando la primera línea del artículo de la GPL de Wikipedia:
Además de eso, la GPL tiene varias páginas y existe en varias versiones.
Advertencia, despotricar por delante!
Personalmente, no me gusta mucho la licencia GPL debido a su naturaleza muy restrictiva y similar a la de un virus. Lo llaman "gratis" pero en realidad es todo lo contrario, el código GPL no puede ser usado por nada excepto otro código GPL. Por lo tanto, forzar otros proyectos a GPL o verse obligado a reescribir bibliotecas completas, ya sea que su proyecto actual sea de código abierto o no. Hubo grandes proyectos de código abierto, como freeBSD, por ejemplo, que se vieron obligados a reescribir cientos de miles de líneas de código de Linux porque su licencia era incompatible, era demasiado "gratis" en el sentido de "haz lo que quieras", lo que obviamente es no es compatible con GPL.
Si desea una licencia verdaderamente "gratuita" en el sentido de "haga lo que quiera", le recomiendo la licencia BSD o MIT ... en realidad, la mayoría de las otras licencias están bien. Es solo GPL lo que es realmente problemático porque lo restrictivo que es y cómo obliga a otros a hacerlo. Por último, es demasiado complicado.
Ah, sí, también es un boleto de ida. GPL puede usar código / bibliotecas con licencia de la mayoría de las licencias, pero estas bibliotecas / código no pueden usar el código GPL a su vez.
fuente