Creé un programa basado en un proyecto LGPL, y no tengo permitido publicar el código fuente


13

Pensé que LGPL era una licencia permisiva, al igual que MIT, BSD o Apache. Pero hoy leí, que solo se permite vincular a LGPL (bibliotecas, etc.) desde el código fuente cerrado, aparte de eso, es copyleft, así que tengo que publicar el código que se basa en un programa LGPL.

Creé un programa para mi empleador que se basa en un programa LGPL, pero tiene modificaciones considerables. Por supuesto, no se me permite publicar ese código fuente modificado. Al mismo tiempo, tengo que hacerlo, si lo distribuyo (¿verdad?).

Entonces, me pregunto si hay una solución alternativa para esto, de modo que pueda mantener esta fuente cerrada (ojalá pudiera publicar la fuente). ¿Alguna sugerencia?

Mi idea: ¿puedo poner la mayoría de las funciones de la aplicación LGPL original en una biblioteca externa, escribir el ejecutable principal desde cero, pero consultar la biblioteca para todas las funciones que no he modificado?

Actualmente, todo está en un archivo .jar (es Java / Swing). si crees que mi idea es legal / técnicamente factible, ¿cuánto esfuerzo sería separar lo que escribí y cuál es el original? No soy el más inteligente de Java.


En esta publicación , el chico dice "Además, se puede eludir el LGPL simplemente colocándolo en un nuevo dll y usar delegados o interfaces para llamarlo desde el código fuente LGPLed". - ¿Alguien puede explicar un poco más cómo hago esto con la aplicación Java original?

16
este no es un sitio web legal , no tomaría ningún consejo sobre asuntos legales de nadie aquí, excepto el consejo para obtener asesoramiento legal real, por supuesto.

55
La LGPL se ocupa principalmente de la distribución y no nos ha proporcionado ninguna información sobre la forma en que planea distribuir este código. Es poco probable que la pregunta obtenga respuestas precisas hasta que lo haga. En cualquier caso, reiteraré que no debe recibir asesoramiento legal de Internet .
Rein Henrichs

Creo que ahora entiendo LGPL bastante bien en términos de legalidad. Así que realmente les estoy preguntando cómo hacer que funcione técnicamente , aunque tienen razón, por supuesto, en caso de duda, consultaré a un abogado.
Esuus

No dice qué software está utilizando, pero algunos proveedores de software GPL / LGPL (y otros) proporcionan licencias comerciales para las personas en su situación.
Jaydee

Respuestas:


13

En primer lugar, no es una buena idea tomar asesoramiento legal aquí (como en: Internet).

En segundo lugar, y solo soy yo quien habla, no un abogado, debería haber pensado en eso antes de tomar un programa LGPL y modificarlo para su empleador.

Si la licencia fuera algo que podría ignorar solo porque no le gustó, ¿no tendría mucho sentido tener una ahora?

Si usted y / o su empleador no están dispuestos a publicar el código fuente con sus modificaciones, debe dejar de usar ese código LGPL y deshacerse de él.

De nuevo, solo soy yo quien habla.

Obtenga consejos de un abogado real.


En respuesta a su pregunta sobre eludir la licencia agregando el código a un archivo DLL, supongo que funcionaría de la siguiente manera.

Lo que haría sería cambiar el programa original lo suficiente como para que pueda invocar funciones en bibliotecas externas. Tendría que hacerlo sin hacer que ese código sea específico para sus necesidades, bibliotecas, nombres de funciones, etc.

Esos cambios que luego publica, según los requisitos de la licencia.

Luego, crea su propia biblioteca externa con su propio código propietario y le pide a ese programa que lo cargue y lo ejecute, utilizando las modificaciones que le hizo.

Sin conocer el alcance completo de la licencia LGPL, no puedo decir si eso es suficiente para evitar tener que publicar su biblioteca, aunque sospecho que lo hará.

Sin embargo, de nuevo ...

Obtenga asesoramiento de un abogado.


44
Tenga en cuenta que la FSF, que escribió la familia de licencias GPL, considera la vinculación dinámica para crear un trabajo derivado, por lo que puede no funcionar. (Otras personas piensan que la FSF está equivocada). No creo que haya una determinación legal, aunque bien podría estar equivocado.
David Thornley

De Verdad? Estoy convencido de que sabes más sobre esto que yo, David, pero Wikipedia dice que incluso puedes vincular dinámicamente a bibliotecas con licencia GPL sin tener que publicar bajo GPL: "Por ejemplo, la excepción de enlace GPL permite programas que no se licencian a sí mismos bajo GPL para enlazar a bibliotecas con licencia bajo GPL sin estar sujeto a los requisitos de GPL ". Así que ahora me pregunto cuál es la diferencia entre GPL y LGPL: pensé que solo LGPL lo permitía.
Esuus

2
@Dave: El gran equipo legal de mi empleador no estaría de acuerdo. Son muy agresivos con respecto a la protección de su propiedad intelectual, y se nos prohíbe explícitamente vincular el código GPL con el nuestro a menos que estemos distribuyendo el código bajo la GPL. ¿Dónde encontraste esa excepción? No lo veo en GPLv2 o v3. Parece que te refieres a una excepción de enlace que no es parte de la GPL de vainilla. Sin embargo, los propietarios de los derechos de autor pueden agregar una excepción de enlace a su código GPL a su discreción. Consultar al equipo legal de uno es realmente lo mejor que se puede hacer.
Nulo

55
No confiaría en Wikipedia en esto. Por lo que sabes, la entrada está escrita por un niño de 14 años que leyó sobre las licencias el fin de semana anterior. Obtén consejos reales. O bien, podría apostar la granja y esperar que su empresa no se meta en problemas. Lo que sea que funcione.
Lasse V. Karlsen

@Dave enlazar a la GPL es un problema. Hasta donde sé, esta fue una de las principales razones por las que FreeBSD abandonó GCC a favor de Clang / LLVM .
Legolas

4

La mayoría de las bibliotecas de código abierto publicadas bajo LGPL o una licencia comparable, al menos las suficientemente buenas para usar en sus proyectos, se crean utilizando el principio abierto / cerrado: http://en.wikipedia.org/wiki/Open/closed_principle .

Debería poder refactorizar su código para que su aplicación esté vinculada a la biblioteca LGPL y todas las extensiones estén contenidas en su código de aplicación cerrado.


Bueno, el código LGPL que utilicé es una aplicación, no una biblioteca ... así que la pregunta es si puedo convertirlo en una biblioteca o, como sugirió Lasse, convertir mi código en una biblioteca y mantener el resto LGPL / abierto
Esuus

1
@Dave: LGPL solía ser conocido como Library GPL. Realmente no he visto ninguna aplicación que use esta licencia. ¿Qué estabas usando, si no es un secreto?
Olaf

La FSF ahora lo llama la GPL Menor. El único uso que puedo pensar en este momento para las aplicaciones es poder vincular en bibliotecas propietarias y similares.
David Thornley

Curiosamente, tanto Mozilla como OpenOffice.org tienen licencia bajo LGPL.
Esuus

@Dave: Entonces estoy con @David Thornley. Mozilla proporciona medios para crear complementos personalizados que pueden ser código cerrado. No estoy tan familiarizado con OpenOffice, pero apuesto a que lo hacen. ¿La aplicación LGPL que usa proporciona algún tipo de funcionalidad extendida, como agregar complementos o tener un lenguaje de script? ¿Puedes usar ese mecanismo para tu código?
Olaf

2

Mismo descargo de responsabilidad: IANAL.

Algo que nadie más ha mencionado hasta ahora es que, incluso si separa el código, aún tiene que distribuir el código fuente a las partes de LGPL, o al menos dar información sobre dónde se pueden descargar.

La única forma de evitarlo es no distribuirlos en primer lugar.


2

No creo que necesite un abogado para comprender que tratar de eludir una licencia no es algo bueno. El sentido común es suficiente.

En su lugar, puede contactar al autor original del programa LGPL y solicitar / comprar una licencia diferente y patentada.

Las únicas otras alternativas son liberar la fuente o reescribirla por completo.


1

IANAL, TINLA, etc.

Pensé que LGPL era una licencia permisiva, al igual que MIT, BSD o Apache. Pero hoy leí, que solo se permite vincular a LGPL (bibliotecas, etc.) desde el código fuente cerrado, aparte de eso, es copyleft, así que tengo que publicar el código que se basa en un programa LGPL.

Sí, la LGPL requiere que usted ponga a disposición el código fuente a cualquier persona que reciba una copia del trabajo, o que debe distribuir su trabajo de forma tal que los destinatarios del software puedan reemplazar su versión de la LGPL con un nuevo trabajo. versión. En cualquier caso, todas las modificaciones a la parte LGPL del trabajo deben estar disponibles para todos los destinatarios del trabajo.

Creé un programa para mi empleador que se basa en un programa LGPL, pero tiene modificaciones considerables. Por supuesto, no se me permite publicar ese código fuente modificado. Al mismo tiempo, tengo que hacerlo, si lo distribuyo (¿verdad?).

Correcto. La licencia exige que todos los destinatarios del software tengan acceso al código fuente.

Mi idea: ¿puedo poner la mayoría de las funciones de la aplicación LGPL original en una biblioteca externa, escribir el ejecutable principal desde cero, pero consultar la biblioteca para todas las funciones que no he modificado?

Eso puede constituir un trabajo derivado, y aún se le pedirá que distribuya todos los scripts de compilación que eliminan el programa a una biblioteca.

Actualmente, todo está en un archivo .jar (es Java / Swing). si crees que mi idea es legal / técnicamente factible, ¿cuánto esfuerzo sería separar lo que escribí y cuál es el original? No soy el más inteligente de Java.

Java agrega una gran cantidad de nuevos problemas a la LGPL, ya que no está claro qué constituye la vinculación "estática" y "dinámica". Dado que las excepciones de la LGPL sobre la GPL se basan en ese concepto, la LGPL es realmente equivalente a la GPL en la mayoría de los casos. Deberá consultar al equipo legal de la compañía para responder cualquier pregunta que surja.

Mi consejo es que si alguien fuera de su empresa tendrá acceso al programa, deséchelo y comience de nuevo. Si no puede cumplir con los requisitos de la licencia, no se le permite distribuirla.

Si el programa solo estará disponible dentro de la empresa, entonces solo se le pedirá que ponga la fuente a disposición de los empleados de la empresa. Sugeriría agregarlo al control de fuente de su compañía existente. Esto satisfará los requisitos de la LGPL, siempre que nadie fuera de la empresa tenga acceso.


1

puede usar el patrón del adaptador y no tocar el código original. Además, LGPL le permite heredar clases y anular la funcionalidad de sus clases en su propio proyecto.


0

Este es mi entendimiento, IANAL.

Verifique el texto de la versión LGPL que cubre el código que está utilizando. Creo que el requisito es que cualquier código LGPL'd debe ser intercambiable, generalmente mediante el uso de un archivo jar / biblioteca compartido. Si puede separar el código que usa que es LGPL'd en una biblioteca, puede liberarlo bajo LGPL, mientras libera su aplicación bajo la licencia que desee.


0

No puedes eludir la licencia. Incluso si encuentra una escapatoria, todavía no es ético (aunque esa es una pregunta diferente para algunas personas). Lo que PUEDE hacer es comunicarse con el autor de dicho software, explicar la situación y solicitar una licencia por separado. Si está dispuesto a otorgarle una licencia especial por un precio, puede comparar esto con el costo de reescribir su software sin usar el componente en cuestión. Y simplemente ve con el más barato.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.