¿Puedo utilizar los complementos de licencia Apache Software License, Versión 2.0 y GNU LGPL 3 en mi aplicación web comercial?

31

Tengo dos complementos. Uno tiene la licencia GNU LGPL 3 y el otro tiene la licencia Apache Software, versión 2.0. ¿Puedo usarlos en mi aplicación comercial? Y si es así, ¿qué precauciones debo tomar?

umairaslam
fuente
17
Tenga en cuenta que NUNCA debe seguir el consejo legal que recibe en Internet, excepto si proviene de un abogado. Preferiblemente uno que se especialice en el campo dado, en este caso: licencias de software. Por lo tanto, tome todas las respuestas que obtenga con un grano de sal, porque de lo contrario puede exponerse a demandas (ya que su aplicación es comercial).
Radu Murzea

Respuestas:

34

¿Puedo usarlos en mi aplicación comercial?

Depende de lo que intente hacer con el software que produce.

En primer lugar, ni ASL 1 , GPL ni LGPL establecen restricciones sobre lo que puede usar el software dentro de su organización. Todas las restricciones están en el código que se distribuye fuera de su organización.

  • Para GPL, la restricción es que si incorpora código GPL en su propio software, y luego distribuye su software fuera de su organización, ENTONCES debe hacer que el código fuente esté disponible bajo los términos de la GPL o una licencia de código abierto compatible.

    Entonces, si usa código GPL en su aplicación y lo distribuye, entonces su aplicación debe ser de código abierto ... o de lo contrario está violando la licencia.

  • Para LGPL, la restricción (ver arriba) solo se aplica al código fuente de la propia biblioteca LGPL; es decir, si cambia la biblioteca. Si solo usa la biblioteca, no está obligado a hacer que su código fuente esté disponible.

    También hay una restricción de que el código LGPL en su aplicación debe ser reemplazable por el usuario de su código. Eso significa (en efecto) que si distribuye su código solo como binarios, entonces no puede vincular estáticamente su código con esa biblioteca. Debe usar la vinculación dinámica.

  • Para ASL, la única restricción significativa es que debe decir si ha cambiado algo de la versión original el código ASL que estaba utilizando.

Finalmente, solo para dejarlo claro, ni GPL, LPGL ni ASL imponen restricciones a su propósito al usar el software. Y eso incluye si su propósito es ganar dinero. Simplemente limitan la forma en que puede ganar dinero ... y en el caso de LGPL y ASL, la restricción es bastante mínima.

Y si es así, ¿qué precauciones debo tomar?

Para LGPL y ASL, no se requieren precauciones.

IANAL - No soy abogado. Si necesita estar seguro, consulte a un experto real y calificado; es decir, un abogado especializado en derecho de propiedad intelectual de software.


1 - A los fines de esta respuesta, ASL == Apache Software License versión 2.

Stephen C
fuente
¿Esto se aplica a una aplicación web? Me refiero a que el cliente recibirá solo el archivo war que contiene los archivos .class y .JAR. Si todo sigue siendo LGPL bien?
Java Main
Si no está modificando las bibliotecas LGPL, puede incluirlas con su código de aplicación en el archivo WAR. Pero debe hacerlo de tal manera que la persona a la que distribuya su código pueda reemplazar el código LBPL con otra versión. Un "uber-JAR" es probablemente una violación. Ofuscar las bibliotecas LGPL junto con su código es definitivamente una violación. (IANAL)
Stephen C
Hay una carpeta llamada lib donde coloco todos los archivos jar. Para que pueda reemplazar cualquier archivo Jar con su otra versión. Pero no garantizo que funcione siempre. ¿Eso todavía está bien?
Java Main
Pregúntele a su abogado :-)
Stephen C
Es solo una aplicación web normal que se ejecuta en tomcat. Si puedes ayudar será bueno. De todos modos gracias por su aclaración realmente ayudando.
Java Main
5

La licencia de Apache no impone restricciones al software que se vincula a un complemento o biblioteca que se distribuye bajo la licencia de Apache. Por otro lado, la LGPL tiene el requisito de que la biblioteca LGPL se vincule dinámicamente (y puede ser reemplazada por un usuario) o que todo el trabajo se debe liberar bajo una licencia de código abierto compatible con GPL.

Para el uso en una aplicación de código cerrado, esto significa que puede usar el complemento con licencia de Apache sin restricciones y que el complemento con licencia LGPL debe estar vinculado dinámicamente.

Si distribuye cualquiera de los complementos junto con su aplicación, también debe proporcionar las fuentes de los complementos o informar a sus usuarios dónde pueden obtener esas fuentes.

Bart van Ingen Schenau
fuente
BartvanIngenSchenau ¿qué quiere decir con aplicación de "código cerrado"? ¿Te refieres a una solución empaquetada (sin distribuir el código fuente), o te refieres a su distribución dentro de una organización frente a algo como la distribución comercial?
Rachael
1
@Rachael: "Fuente cerrada" se usa generalmente para referirse a software para el que no se distribuye el código fuente. Distribución dentro de una organización es un poco de un caso especial cuando se trata de la concesión de licencias de derechos de autor, ya que proporciona copias de un producto de software para las personas dentro de una organización no se considera la distribución de la mayoría de las leyes de copyright (que se considera la copia).
Bart van Ingen Schenau
-4

En primer lugar, esto no es asesoramiento legal.

El software GPL no puede vincularse (incluso a través de la red), compilarse o enviarse con software que no sea GPL de ninguna forma. LGPL afloja esto un poco para permitir el soporte de terceros que no son GPL, incluso para productos comerciales. La parte importante aquí es que debe ser un tercero (por así decirlo), lo que crea un pequeño vacío.

En resumen, se vincula a una biblioteca LGPL existente (llame a esto la primera parte), pero el software que hace este enlace debe ser LGPL. Llame a este software la segunda parte. Aunque el software de la segunda parte debe lanzarse como LGPL, como propietario del software de la segunda parte, puede permitir que otro software lo use fuera de la LGPL (siempre que el software de la segunda parte también esté disponible bajo la LGPL). En otras palabras, el software de terceros debe estar disponible como LGPL, pero no es obligatorio.licenciarlo como LGPL en todos los casos. Cada usuario individual de un software debe tener licencia para usar dicho software por ley. Lo que digo es que, siempre y cuando cada usuario tenga acceso al software como LGPL, también puede licenciarlo utilizando términos no virales. También puede crear el software de terceros, de hecho, licenciar el software de terceros a usted mismo para que lo use el software de terceros en términos que no sean LGPL. Incluso he oído de gente que escribe a sí mismos un contrato y licencia para usar su propio software. ¡La ley puede ser extraña! El software de terceros no tiene que ser LGPL en ningún caso.

Entonces, lo que debe hacer es crear una biblioteca para vincular a la biblioteca LGPL como solo un contenedor y liberar el contenedor como LGPL. Luego puede vincular a este contenedor ( su contenedor) en un software que no sea LGPL, siempre que su contenedor esté disponible como LGPL.

No puedo hablar por la licencia del software Apache porque no estoy familiarizado con ella.

JSON
fuente
Tenga en cuenta que estoy usando el término "enlace" de manera muy genérica porque esto no solo se aplica a los idiomas compilados y también puede incluir el software "incluido" LGPL (desde una ubicación local o de red, como PHP o Javascript), o de otra manera "vinculación" a un software a través de una red como Java RMI, etc.
JSON
1
"El software GPL no puede vincularse (incluso a través de la red), compilarse o enviarse con software que no sea GPL de ninguna forma". . El "o" debería ser "y". PUEDE usar el software GPL en software no GPL siempre que no lo "envíe".
Stephen C
2
Esa respuesta es incorrecta en muchos niveles. La pregunta no es sobre GPL, sino LGPL. El código ASL se puede integrar en el código bajo casi cualquier otra licencia, lo que significa también LGPL o incluso GPL (incluso si lo contrario está prohibido). Incluso puede usarlo en software de código cerrado. Y, como señaló Stephen C., puede hacer lo que quiera siempre que no lo publique o lo ponga a disposición del público.
Alexis Dufrenoy