¿Cómo se pueden usar las licencias compatibles con GPL como MIT en los programas GPL sin estar sujetos a la disposición de copyleft?

19

Actualmente estoy examinando las posibilidades e implicaciones de vincular contra una biblioteca GPL para una aplicación en un contexto comercial.

Por lo que he entendido de la GPL, siempre que la aplicación se use internamente, no hay obligación de liberar su código (incluso si una copia se traslada a una subsidiaria controlada).

Lo que no entiendo es el siguiente punto de las preguntas frecuentes:

Si una biblioteca se lanza bajo la GPL (no la LGPL), ¿eso significa que cualquier software que la use debe estar bajo la GPL o una licencia compatible con la GPL ? Sí, porque el software tal como se ejecuta realmente incluye la biblioteca.

Si echo un vistazo a las licencias compatibles con GPL , algunas de ellas (como la de refuerzo) no parecen imponer la publicación del código. Usarlo crearía una situación en la que podría cumplir con la licencia GPL sin tener que respetar su obligación de hacer público su código (lo que no parece muy creíble).

(Nota: hay componentes en Adobe Photoshop con licencia bajo impulso y no creo que el código esté disponible bajo demanda)

La explicación más razonable sería que me falta algo ... ¿Podría decirme dónde cometí un error?

Louis Morazzani
fuente
1
+1 para explicación solo porque ¿por qué usarías esa palabra en una oración?
Jimmy Hoffa
@JimmyHoffa +1 por tu amor al lenguaje.
Racheet
1
¿Dónde sabías que Boost era GPL? Tiene su propia licencia. La regla estándar es que GPLv2 no se mezcla con software propietario. Hay una pregunta a la semana en este sitio sobre cómo solucionar esto. Deberíamos prohibir todas las preguntas de GPL.
Andrew T Finnell
Ya veo que dijo que Boost era compatible con GPL. El resto de mi comentario se mantiene.
Andrew T Finnell

Respuestas:

26

¿Cómo se pueden usar las licencias compatibles con GPL como MIT en los programas GPL sin estar sujetos a la disposición de copyleft?

Respuesta corta: no lo son. Estarán sujetos al copyleft.

Respuesta larga:

El artículo de Wikipedia sobre compatibilidad de licencias tiene una buena sección sobre compatibilidad de GPL :

Muchas de las licencias de software libre más comunes, como la licencia original de MIT / X, ... son "compatibles con GPL". Es decir, su código se puede combinar con un programa bajo la GPL sin conflicto ( la nueva combinación tendría la GPL aplicada al conjunto ).

[énfasis añadido]

Y más explícitamente de las preguntas frecuentes de FSF sobre compatibilidad GPL :

Significa que la otra licencia y la GNU GPL son compatibles; puede combinar el código publicado bajo la otra licencia con el código publicado bajo la GNU GPL en un programa más grande.

Y solo para la edificación, aquí están los comentarios de la FSF sobre varias licencias

Comentario de la FSF sobre la licencia de refuerzo

Esta es una licencia de software libre laxa, permisiva, sin copyleft, compatible con la GNU GPL.

Lo que significa que cualquier cosa bajo licencia de Boost es fácilmente subsumida por la GPL.

Donde se pone complicado

Digamos que tenemos un proyecto con Foolicencia bajo Boost, y un proyecto con Barlicencia bajo GPL y que quiere usar Foo.

Bar+Fooestá permitido ya que las licencias son compatibles, y el lanzamiento de Bar+Foodebe ser GPL al igual Barque GPL. Foo, por sí mismo y sin Bar o Bar+Foo , todavía está disponible bajo la licencia Boost. Dicho de otra manera, Bar+Foono tiene impacto de licencia sobre Foosí mismo.

La licencia resultante de la combinación del proyecto es un evento de actuación directa solo para la combinación. Es no un acontecimiento retroactivo.

Entonces, si alguien más quiere tomar Fooy hacer algo más con él, aún puede hacerlo sin la disposición copyleft de la GPL. Sin embargo, si toman Bar+Foo, eliminan Bary solo usan +Foo, siguen estando sujetos a los términos de la GPL desde que Bar+Foose la GPL.

Tu otra pregunta:

Por lo que he entendido de la GPL, siempre que la aplicación se use internamente, no hay obligación de liberar su código (incluso si una copia se traslada a una subsidiaria controlada).

Esto es respondido directamente por las preguntas frecuentes de FSF GPL sobre distribución de fuentes

La GPL no requiere que lance su versión modificada, ni ninguna parte de ella. Usted es libre de hacer modificaciones y usarlas de forma privada, sin liberarlas nunca. Esto también se aplica a las organizaciones (incluidas las empresas); una organización puede hacer una versión modificada y usarla internamente sin liberarla nunca fuera de la organización.

Las subsidiarias de propiedad absoluta se consideran parte de la organización matriz, por lo que legalmente estaría en claro. Sin embargo, FSF señalaría que está violando el espíritu del Software Libre.


fuente
3
Me pregunto: si un empleado está utilizando la versión modificada no publicada en la empresa, ¿tendría derecho a obtener el código fuente de la empresa?
hasta el
@ GlenH7: gracias por su útil explicación (especialmente la parte "Donde se pone difícil")
Louis Morazzani
2
@unor: No, eso constituiría un uso privado por parte de la Compañía (el empleado es parte de la compañía, no una entidad separada).
iheanyi
"Sin embargo, si toman Bar + Foo, eliminan Bar y solo usan + Foo, entonces todavía están sujetos a los términos de la GPL ya que Bar + Foo fue GPL". ¿Estás seguro? Foo todavía tenía licencia bajo la licencia Boost. Según tengo entendido, la licencia de Boost no debe eliminarse, incluso cuando se combina con el código GPL. ("La [...] concesión de licencia anterior, esta restricción y el siguiente descargo de responsabilidad, deben incluirse en todas las copias del Software, en su totalidad o en parte, y en todos los trabajos derivados del Software [...]")
lesderid
2
@ GlenH7 Claro, pero ¿se les permitiría volver a licenciar Foobajo la GPL? La sublicencia estaría bien, pero también tendrían que mantener la licencia Boost Bar+Foo, ¿no?
lesderid
8

Por "compatible con GPL", se refieren a una licencia que no entra en conflicto con la GPL. Una licencia menos restrictiva, como la licencia de Boost, es "compatible" con la GPL porque no restringe a los usuarios del código de hacer nada que la GPL le permita a un usuario hacer. Es decir, la licencia Boost permite a las personas copiar libremente, que es lo que la GPL requiere que se permita a las personas.

Un ejemplo de una licencia que no es "compatible" sería una licencia que requiera una tarifa a los autores originales para que los usuarios distribuyan copias. Dado que la GPL permite explícitamente la distribución gratuita y de pago, esta licencia más restrictiva no sería compatible.

En otras palabras, la GPL dice "Debe permitir $ A, $ B y $ C". Cualquier licencia que permita $ A, $ B, $ C y también $ D y $ E es compatible. Una licencia que permitiera $ A y $ B pero no $ C no sería.

Gort the Robot
fuente
44
Entonces, el nuevo trabajo combinado está totalmente licenciado bajo la GPL, ¿correcto? Pero el código original con licencia bajo MIT todavía se puede distribuir por separado bajo MIT sin entrar en conflicto con la GPL, ¿correcto?
Robert Harvey
1
IANAL, pero sí, así es como funciona.
Fabio Fracassi
44
" porque no restringe a los usuarios del código de hacer algo que la GPL permitiría a un usuario hacer " - Y también porque no impide que el usuario haga nada que la GPL les exigiría que hicieran.
Ross Patterson
2
Minipick, pero la GPL en realidad no prohíbe cobrar tarifas por casi cualquier cosa; ver gnu.org/licenses/gpl-faq.html#DoesTheGPLAllowMoney
Maximus Minimus
1
Estoy bastante seguro de que la GPL permite a cualquier persona cobrar por la distribución, pero no permite que las personas exijan que otros cobren si se distribuyen. En otras palabras, puedo cobrarle por una copia, pero no puedo exigirle que me envíe un pago si entrega una copia a un tercero.
Gort the Robot
1

No cometiste un error: la respuesta a las preguntas frecuentes estaba incompleta. Debería haber dicho que el programa combinado debe tener licencia bajo la GPL, no una licencia compatible con la GPL. Desde entonces se ha corregido (ver más abajo: he enfatizado el bit importante):

Sí, porque el programa realmente enlaza con la biblioteca. Como tal, los términos de la GPL se aplican a toda la combinación. Los módulos de software que enlazan con la biblioteca pueden estar bajo varias licencias compatibles con GPL, pero el trabajo en su conjunto debe tener licencia bajo la GPL . Consulte también: ¿Qué significa decir que una licencia es "compatible con la GPL"?

Anteriormente dije que "si una biblioteca se lanza bajo la GPL, entonces cualquier software que la use debe estar bajo la misma GPL debido a su naturaleza llamada 'viral'. No se puede usar una licencia permisiva compatible con la GPL como boost ". Por "software que lo usa" me refería a los módulos combinados y la biblioteca.

Bennett McElwee
fuente
Creo que este es un malentendido común. No es necesario liberar su parte del código bajo la GPL, siempre que tenga una licencia compatible. La licencia por su parte también puede ser más permisiva, pero no menos, que la GPL. Solo el trabajo combinado permanece bajo la GPL, por lo que las restricciones adicionales de la GPL se aplican solo si uno usa su código junto con la biblioteca GPL vinculada. Ver gnu.org/licenses/gpl-faq.html#GPLModuleLicense
ert
1
Si, eso es correcto. Mi respuesta original podría haber sido malinterpretada. Afortunadamente, todo es discutible ahora, ya que Gnu ha actualizado sus preguntas frecuentes para decir lo correcto.
Bennett McElwee