Suponga que hay una biblioteca con licencia bajo GPL. Quiero usarlo es un proyecto de código cerrado. Hago lo siguiente:
- Cree una pequeña aplicación envolvente alrededor de esa biblioteca GPL que escuche socket, analice mensajes y llame a la biblioteca GPL. Luego devuelve los resultados.
- Libere sus fuentes (para cumplir con la GPL)
- Crear cliente para este contenedor en mi aplicación principal y no liberar fuentes.
Sé que esto agrega una gran sobrecarga en comparación con la vinculación estática / dinámica, pero estoy interesado en forma teórica.
Respuestas:
Legalmente , diría que estaría bien (pero no soy abogado, consulte a un abogado para obtener asesoramiento legal).
Moralmente , es bastante reprensible. Si no le gusta la GPL, entonces la solución "adecuada" es no usar una biblioteca GPL.
Editar : Para aclarar, cualquiera que sea la posición legal de la GPL con respecto a si se permite o no la vinculación dinámica, la LGPL se creó específicamente con la intención de permitir la vinculación dinámica en el caso de las bibliotecas. Entonces, me parece claro que al elegir la GPL sobre la LGPL, el autor de la biblioteca lo hizo explícitamente para no permitir la vinculación dinámica. Usar un medio técnico para evitar una restricción legal que exprese la intención explícita del autor para su código es lo que es reprensible, en mi opinión.
Para el registro, no soy personalmente un fanático de la GPL (prefiero una licencia más permisiva como MIT o BSD). Sin embargo, soy un gran admirador de respetar el trabajo de otros desarrolladores, y si no quieren que vincules su biblioteca con software de código cerrado, entonces eso es prerrogativa.
fuente
IANAL pero creo que está bien, la sección relevante de GPL3 está al final de la sección 5:
Esto probablemente dependerá exactamente de lo que haga su 'cliente', la respuesta de Mouviciel es probablemente una buena guía sobre cómo hacerlo de manera segura
Si crees que tu aplicación es una extensión de la biblioteca en lugar de algo agregado con ella, entonces probablemente tengas razón (deberías estar en un buen lugar para saberlo), en cuyo caso tu mejor opción es contactar al autor e intentar obtener un licencia diferente
Esto parece respaldar mi posición de que esto está explícitamente permitido por la GPL, suponiendo que se haga correctamente.
fuente
Consulte la sección Me gustaría incorporar software cubierto por GPL en mi sistema propietario. ¿Puedo hacer esto?
La pregunta es, ¿su aplicación de envoltura tiene algún uso por sí misma? Si creó una versión de línea de comando de su programa que era GPL, podría liberar la GUI con una licencia diferente. Por ejemplo, podría hacer un IDE para gcc que era de código cerrado o una herramienta de diferencia visual basada en diff.
Sin embargo, si su biblioteca finalizada no tiene otro uso que el que usa su programa, y su programa no tiene ningún uso sin esta biblioteca, entonces es un trabajo derivado y necesitaría ser lanzado bajo la GPL.
fuente
OMI, legalmente está bien. (IANAL) Para mejorar el aspecto moral del problema, no lo llame "envoltorio FooBar que hace que FooBar esté legalmente disponible para MyClosedApp", llámelo servidor. Que sea un pequeño programa de código abierto que "permita hacer FooBar a través de la red". Póngalo en SourceForge o dedíquele un sitio web, con la página del proyecto e instrucciones y demás. Luego, deje que "MyClosedApp" solo use el "servidor FooBar".
fuente
Según tengo entendido, puede dejar su software de código cerrado siempre que pueda hacer su trabajo sin la biblioteca GPL. Vea la biblioteca GPL como un complemento cuya ausencia no hace que su software sea inútil.
fuente
También hay una opción algo controvertida. En la mayoría de las legislaturas, la vinculación dinámica debería ser un límite para el "trabajo derivado". La lógica detrás de esto es que si bien se vincula dinámicamente solo se incluyen archivos de encabezado en su programa. En muchas legislaciones, los archivos de encabezado se consideran definición de API y se excluyen explícitamente de tener derechos de autor. Por otro lado, con el enlace dinámico, el enlace real con la biblioteca GPL se realiza en el sistema del usuario final. Pero como ya he dicho, hay mucha controversia con esto, Stallman está fuertemente enfadado contra esto.
fuente
¿Sería legal para Adam Brown escribir un programa que utilizara una biblioteca GPL y actuara como un "servidor", si lanzara todo el código fuente a todo lo relacionado con él, pero el único código de cliente que lanzó fue bastante débil porque eso es todo había escrito del lado del cliente? No veo ninguna base para pensar que no lo haría.
Si Charles Dover encontró el "servidor" de Adam Brown y decidió escribir un programa de código cerrado para comunicarse con él, ¿la GPL restringiría sus acciones de alguna manera? No es que pueda verlo, ya que su único uso del software GPL sería como los archivos binarios que recibió de Adam Brown. Si distribuía los binarios de Adam, también tendría que incluir un enlace a la fuente, pero nada más en la GPL afectaría el código de Charles.
Con respecto a una persona que escribe un servidor con licencia GPL y luego usa el servidor para sus propios fines de código cerrado, no creo que deba haber ningún problema legal si al escribir el servidor hizo un esfuerzo de buena fe para hacerlo útil para otras personas que deseen utilizar el código GPL suministrado de la misma manera. En particular, la documentación de la interfaz publicada públicamente debería ser suficiente para permitir que un programador competente escriba código para un servidor que sería aceptado por el programa cliente tal como sería el original, y escribir programas cliente que utilizarían servidor de la misma manera que la aplicación del autor.
fuente