Restricciones de licencias de código abierto GPL y LGPL [cerrado]

107

Tengo problemas para comprender los permisos de uso del código abierto. Leí en alguna parte que GPL o LGPL hace cumplir que el software que usa software GPL también debe ser de código abierto. Quiero crear una aplicación que use alguna biblioteca de reconocimiento de imágenes de código abierto. ¿Puedo vender esta aplicación o tiene que ser de código abierto?

¡Gracias!

rsinha
fuente

Respuestas:

80

LGPL le permite usar y distribuir el software de código abierto con su aplicación sin liberar el código fuente de su aplicación.

GPL requiere que publique el código fuente de su aplicación si elige usar y distribuir el software de código abierto con licencia GPL con su aplicación. En otras palabras, su aplicación también debe tener la licencia GPL.

Robert Harvey
fuente
14
Tenga en cuenta que la LGPL establece que la biblioteca utilizada debe ser reemplazable. Por tanto, la vinculación estática no es posible.
Dykam
1
Entonces, una "DLL" (Biblioteca de vínculos dinámicos) sería legal, ¿correcto?
Robert Harvey
Solo si también proporciona el código fuente para esa DLL, así como los archivos de encabezado o la documentación necesarios para poder interactuar con el resto de la aplicación, alguien quisiera modificar en gran medida, o reescribir desde cero, que DLL.
thomasrutter
48
  • GPL

    Otros desarrolladores pueden tomar prestado y modificar el código y redistribuirlo como parte de su propio proyecto, solo si su proyecto completo también tiene licencia bajo la GPL.

    Esto evita que el código se utilice en software propietario.

  • LGPL

    Otros desarrolladores pueden pedir prestado y modificar el código y redistribuirlo como parte de su propio proyecto, siempre que la parte utilizada bajo la LGPL se vuelva a licenciar bajo la LGPL. Se permite que otras partes del proyecto tengan otras licencias.

    Esto permite que el código se utilice en software que de otro modo sería propietario.

La LGPL tiene una serie de condiciones adicionales que deben cumplirse para poder distribuirla en un proyecto con otra licencia. Por ejemplo, debe ser posible para cualquierusuario del software terminado para modificar, volver a compilar o reemplazar la parte del software que tiene licencia bajo la LGPL y utilizar este código modificado con el mismo software. Si está publicando software propietario que contiene algún código LGPL, una forma de satisfacer este requisito es colocar el código LGPL en una biblioteca separada dinámicamente vinculada, y distribuir con su software los archivos de encabezado necesarios y la documentación requerida para volver a compilar la LGPL. parte de tal manera que aún se pueda vincular y utilizar con el software proporcionado. No es aceptable tomar medidas para evitar la modificación del código LGPL, como ocultar el código en sí, la API o los archivos de encabezado.

Tenga en cuenta que la LGPL es compatible con la GPL: puede optar por "actualizar" el código a GPL e incorporarlo en un proyecto con licencia GPL como se establece en mi primera viñeta si lo desea. Sin embargo, no puede ir al otro lado y volver a licenciar el código con licencia GPL como LGPL.

thomasrutter
fuente
30

IANAL, pero los conceptos son bastante sencillos.

Primero, usted y su abogado deben leer las licencias GPL y LGPL . En segundo lugar, debería leer las preguntas frecuentes sobre la GPL . Por lo que tengo entendido, puede pensar en usar bibliotecas GPL / LGPL de esta manera:

  • Si se vincula de forma dinámica o estática con una biblioteca GPL o LGPL, ha creado un trabajo derivado.
  • Si utiliza una biblioteca que es GPL y se vincula con esa biblioteca, su software debe publicarse con una licencia compatible .
  • Si usa una biblioteca que es LGPL y se vincula dinámicamente con esa biblioteca, su software no tiene que ser lanzado con una licencia compatible, pero aún debe cumplir con la LGPL.
  • Si usa una biblioteca que es LGPL y se vincula estáticamente con esa biblioteca, su software debe publicarse con una licencia compatible.
  • Las licencias GPL / LGPL significan "gratis" como en "libertad de expresión", no "cerveza gratis" . Puede crear un trabajo derivado y venderlo por grandes cantidades de dinero, pero debe cumplir con la GPL / LGPL.
Jared Oberhaus
fuente
29
"Primero, usted y su abogado deben leer las licencias GPL y LGPL". - mátame ahora
d512
10
"sencillo". De hecho, es tan sencillo que necesita contratar a un abogado solo para ver si puede usar un poco de código. Es por eso que los desarrolladores nunca deben usar licencias GPL.
Womble
9

Si corta y pega o enlaza con código GPL en su aplicación, su aplicación debe tener una licencia GPL y, a continuación, debe publicar el código.

Sin embargo, aún puede vender su aplicación y afaik, la única obligación es que entregue el código fuente a sus clientes.

Si la biblioteca contra la que enlaza es una licencia pública de GNU menor, también conocida como LGPL, no necesita publicar el código de su propia aplicación, pero aún debe publicar todas las modificaciones si modificó el código lgpl.

rasjani
fuente
"liberar el código fuente a sus clientes", ¿de verdad? solo para ellos? Pensé que el src tenía que estar disponible públicamente.
relascopio
No soy hablante nativo de inglés ni abogado. gnu.org/licenses/gpl-faq.html#WhatDoesWrittenOfferValid afirma que la mayoría proporciona la fuente a cualquiera que tenga acceso al binario. No dice que cualquiera pueda solicitar la fuente, sino cualquiera a quien se le haya proporcionado el binario, ya sea directamente de usted o de sus clientes directos.
Rasjani
lo dice directamente, solo para los clientes ... "Pero si libera la versión modificada al público de alguna manera, la GPL requiere que ponga el código fuente modificado a disposición de los usuarios del programa, bajo la GPL".
relascopio
7

GPL no le prohíbe vender software. Sin embargo, debe poner a disposición las fuentes del software.

La cuestión del uso es un poco más complicada. GNU / Linux se publica bajo la GPL. Nada le prohíbe escribir software que se ejecute en Linux, independientemente de la licencia de su software. Sin embargo, no puede distribuir Linux junto con su software. Suele ser un problema con las bibliotecas que deben formar parte de un programa. Para eso sirve la licencia LGPL. Puede compilar el programa de CA que escribe con gcc (por lo tanto, utilizar bibliotecas de rutina de tiempo de ejecución con licencia LGPL de gcc) y aún así lanzar su software sin las restricciones de la GPL.

Creo que esa es la esencia general de la misma. Sin embargo, este no es de ninguna manera asesoramiento legal. Para obtener asesoramiento legal, debe contratar a un abogado certificado que pueda brindarle asesoramiento legal que se ajuste a sus circunstancias particulares.

Espero que esto ayude.

txwikinger
fuente
3

La distinción entre GPL y LGPL determina si debe o no divulgar la fuente de su aplicación a cualquiera que tenga una copia del binario. De cualquier manera, aún puede vender la aplicación.

Trovador
fuente