¿Se puede implicar GPL a un trabajo derivado?

13

Hay tres proyectos de software: A, B y C.

A se publica a cualquier persona y tiene licencia GPL.

B se extiende A, también se publica, pero no tiene información de licencia o se licencia por error bajo LGPL. Básicamente viola la licencia de A al no ser GPL. El código fuente de B todavía está disponible.

C se extiende B. ¿Se puede publicar C bajo GPL? La motivación sería "A es GPL, cualquier derivada debe ser GPL también, por lo que B es GPL y C también puede ser GPL".

Andrej
fuente
55
¿Qué parte de B se extiende C? Si ya están todos en A, no veo ningún problema. Si C extiende partes de B que no están en A, las cosas se están poniendo interesantes.
Me gustaría nombrar los proyectos A, B, C y contactar a los autores de B.
Basile Starynkevitch
1
Además, creo que al menos podría publicar C bajo GPL, ya que GPL es compatible con LGPL. Pero IANAL
Basile Starynkevitch
2
@Tichodroma, C extiende partes de B, pero B no puede existir sin A :)
Andrej
¿El autor de C también escribió (una parte de) A? Si no es así, no tenemos idea de qué licencia otorgaron los autores de A a B, por lo que no tenemos idea de si podemos construir sobre ella.
dcorking

Respuestas:

23

En primer lugar, B viola la GPL de A. Pero esa no es exactamente su preocupación y es irrelevante para la pregunta aquí (quién sabe, ¿tal vez B obtuvo una licencia LGPL de A en su código para que pueda ser liberada bajo LGPL? )

La pregunta es "¿Puedes construir un software GPL basado en el código LGPL?" La respuesta a esto es simplemente "sí".

La LGPL es menos restrictiva que la GPL (por lo que B infringe la licencia de A a menos que se hayan hecho otras disposiciones), pero también permite que se vuelva a incorporar a un proyecto GPL con bastante facilidad.

De la licencia LGPL:

  1. Código de objeto que incorpora material de archivos de encabezado de biblioteca. La forma del código objeto de una Aplicación puede incorporar material de un archivo de encabezado que es parte de la Biblioteca. Puede transmitir dicho código de objeto bajo los términos de su elección, siempre que, si el material incorporado no se limita a parámetros numéricos, diseños de estructura de datos y accesores, o pequeñas macros, funciones en línea y plantillas (diez o menos líneas de longitud), usted haga lo siguiente:

    a) Notifique con cada copia del código de objeto que la Biblioteca se usa en ella y que la Biblioteca y su uso están cubiertos por esta Licencia.
    b) Acompañe el código objeto con una copia de la GNU GPL y este documento de licencia.

Es parte de la licencia. Puede crear fácilmente un software GPL basado en el código LGPL.

Hay algunas diferencias de versión a las que deberá prestar atención para asegurarse de que el código tenga licencia de la manera correcta, bajo la versión correcta de la GPL.


En el caso de que no se presente información sobre la licencia, no tiene derecho a extenderla. B no debería haberse distribuido, pero sus contribuciones no están autorizadas bajo una licencia de código abierto. Este puede haber sido un proyecto interno que se publicó o algún otro evento.

No se presenta bajo una licencia que sea compatible con la extensión con la GPL. Considere la situación en la que una empresa, utilizando el software GPL internamente (aceptable, no una violación), hizo público su repositorio por error.

En este caso, es muy posible que el proyecto C viole una infracción de derechos de autor (el material que B agregó que no tiene licencia bajo la GPL ya que no debería haberse distribuido en primer lugar).

No se puede forzar una licencia en la fuente de otra persona. Cumple con la licencia o infringe la misma. Si lo viola, entonces como se detalla en la licencia:

No puede propagar ni modificar un trabajo cubierto, excepto según lo dispuesto expresamente en esta Licencia. Cualquier intento de propagarlo o modificarlo es nulo, y terminará automáticamente sus derechos bajo esta Licencia (incluidas las licencias de patente otorgadas en virtud del tercer párrafo de la sección 11).

Una violación de la GPL no significa que el material esté bajo la GPL, sino que no se puede distribuir.


fuente
3
Buena respuesta. ¿Consideró comprometerse con la propuesta Open Source Stackexchange ?
Philipp
55
@Andrej La única persona que tiene el derecho de determinar cómo se va a licenciar B son las personas que escribieron B. Si A tiene licencia GPL, tienen la opción de "no distribuir" o "licencia como GPL". Que se haya distribuido por error, no significa que tenga licencia como GPL.
66
Además, una buena observación de "no sabes si B obtuvo una licencia diferente de los autores de A"; es posible que B no viole los derechos de autor de A, porque no sabe que B está usando A bajo la GPL (los autores de A pueden emitir tantas licencias de los tipos que deseen y, por ejemplo, pueden ofrecerlo bajo la GPL y venda una licencia que le permita usarlo en código propietario).
cpast
1
En el caso de que el autor de B reciba A bajo la licencia GPL, el hecho de la distribución no obliga a GPL a B. Pero, ¿hay alguna licencia que haga esto? ¿Entonces una persona puede publicar su software y estar seguro de que alguien tendrá acceso a todos los futuros derivados publicados? Y permitir que cualquiera fuerce la licencia de derivados. (Puedo comenzar una nueva pregunta para esta :))
Andrej
2
Cuarto, un EULA es mucho, mucho, mucho más cuestionable legalmente que la GPL. La GPL no impone restricciones; cualquier restricción es en realidad de la ley legal de derechos de autor (lo que hace la GPL es renunciar a esas restricciones en algunos casos). Es por eso que la GPL funciona tan bien: no existe una "violación de la GPL", solo hay violaciones de derechos de autor . Con un EULA, debe lograr que las personas acepten restringirse; Esto significa que estás en el ámbito del derecho contractual, que es muy turbio y está lleno de posibles defensas, como si alguien no estuviera de acuerdo (no es necesario que aceptes los derechos de autor).
cpast
4

Hay titulares de derechos de autor: hay derechos de autor en las obras creadas por A, hay derechos de autor en las adiciones de B y hay derechos de autor en cualquier cambio que C haya realizado. C debe verificar si tiene permiso para usar el software en el que A y B tienen derechos de autor.

A fue licenciado bajo la GPL. Estoy bastante seguro de que la GPL le da permiso para usar el trabajo de A bajo los términos de la GPL, incluso si los recibió de B que los autorizó incorrectamente. Puede haber problemas prácticos: por ejemplo, debe poder proporcionar el código fuente. Si recibió el software sin código fuente, entonces no tiene forma de publicarlo bajo los términos de GPL.

B fue licenciado bajo alguna otra licencia. B debería haber sido licenciado bajo la GPL, pero no fue así. Si la licencia de B le otorga más derechos que la GPL, en realidad no tiene ninguno de esos derechos para el código de A; B no puede otorgarle derechos adicionales sobre el código de A. Puede usar el código de A bajo los términos de la GPL porque A lo permitió y el código adicional de B bajo la licencia de B.

Si B lanzó su código bajo una licencia más estricta que GPL, entonces B probablemente esté cometiendo una infracción de derechos de autor. No puede usar el código de B bajo la licencia GPL. Eso a menudo se confunde: GPL no puede obligar a B a hacer nada. Solo le da a B la opción: publicar de esta manera, y está legalmente bien, o publicar de otra manera, y es ilegal. B tiene derecho a hacer algo ilegal y sufrir las consecuencias (ser demandado por infracción de derechos de autor). No tienes ningún derecho sobre el código de B que B no te dio.

gnasher729
fuente
3

Técnicamente, es posible extender una biblioteca GPL con código que no está cubierto por la licencia GPL. El inconveniente es que cuando distribuye el trabajo derivado que creó, debe observar todos los requisitos que la GPL le impone.

En su situación, esto significa que es posible tener la biblioteca A bajo la GPL y el nuevo código en la biblioteca B bajo la LGPL. El trabajo combinado (biblioteca B) se distribuye efectivamente bajo la licencia GPL, y se puede distribuir como tal porque la licencia LGPL es compatible con la licencia GPL (puede usar el código de licencias LGPL en un proyecto con licencia GPL).
En esa situación, está perfectamente bien tener el nuevo código en la biblioteca C bajo la GPL, con el trabajo resultante también bajo la GPL.

Bart van Ingen Schenau
fuente
Esto solo funciona porque las partes LGPLed de B se pueden usar con la GPLed A debajo de la GPL. Si el nuevo código estaba bajo alguna licencia en conflicto con la GPL (por ejemplo, todos los derechos reservados), no puede asumir que B en su conjunto se distribuyó efectivamente bajo la GPL.
cpast
1
@cpast: Tienes razón, olvidé mencionar que la LGPL es compatible con la GPL. Si las licencias fueran incompatibles, no se le permitiría distribuir el resultado.
Bart van Ingen Schenau