Qué código GPL enlazar con la biblioteca propietaria depend el que se crea por primera vez? [cerrado]

StackOverflow https://stackoverflow.com/questions/1854843

Pregunta

Microsoft crea sus ventanas y biblioteca MFC DLL, etc. Una fuente abierta conviértase escribir una nueva aplicación MFC y liberar el código fuente GPL. La aplicación tiene que enlazar con la MS / DLL bibliotecas para ejecutar en Windows, pero yo no creo que nadie puede discutir que ahora tenemos el derecho de forzar la GPL de la Microsoft su DLL.

¿Quiere esto decir la licencia GPL es realmente depende de lo que uno se "crea" en primer lugar? Si se crea la biblioteca propietaria primera (como Windows DLL) que se publica sin vincular y cualquier código GPL y más adelante un programa GPL está vinculado con él, entonces el programa GPL no puede convertir la biblioteca propietaria en GPL aunque el código propietario está "ligado" con el código GPL.

Si este es el caso, pueden compañía tan NVidia o RealNetworks hacen lo siguiente? Vamos a suponer que les gusta mantener la biblioteca de motor de decodificación medios HDDecoding propiedad privada, sino que también quieren "aprovechar" el código de código abierto licencia GPL para mostrar su hardware.

  1. Crean una biblioteca propietaria para hacer la decodificación de los medios y liberar algunos ejemplos de código.
  2. Alguien (desarrollo de código abierto) crea "plug-in" que se vincula en esta biblioteca propietaria de código GPL como XBMC, Mplayer o VLC.
  3. ¿Pueden argumentar que desde que crearon la biblioteca propietaria primero (al igual que MS crear primero todas las DLL), programas GPL que enlazan con su código propietario no encubierta en código GPL.

Uno puede en teoría argumentan que el desarrollador de código abierto que crea el archivo vlc.exe GPL que enlace con la biblioteca decodificador de medios de propiedad NVidia está violando la licencia GPL.

¿Eso significa que todos los programas GPL que se ejecutan en Windows, como VLC, git, cygwin, etc son todos violar la licencia GPL, ya que sin duda necesitan para enlazar con los propietarios de Microsoft bibliotecas de Windows para funcionar.

Caso 2: ¿Qué hay de malo en esto:

NVidia puede crear una nueva biblioteca de abstracción de hardware que oculta las últimas funciones de gráficos. También crean un conductor FreeBSD con esta biblioteca y liberar el código fuente del controlador de BSD pero no el código fuente de la biblioteca.

Alguien (Linux desarrollador) se puede implementar el controlador de Linux que enlaza con esta biblioteca para crear un controlador de gráficos NVIDIA para Linux. Pero desde NVidia no hizo esto, se puede mantener la fuente de la biblioteca "oculta", mientras que permite el "soporte de Linux".

Sin duda, viola el espíritu de la GPL.

¿Quiere decir que el funcionamiento de cualquier exe creado con la fuente GPL en Windows / Mac / Iphone / PSP3 también viola el espíritu de la GPL?

¿Fue útil?

Solución

A partir de la GNU GPL FAQ:

  

¿Puedo solicitar la GPL al escribir una   plug-in para un programa que no es libre?

     

Si el programa utiliza un tenedor y un ejecutivo de   invocar plug-ins, a continuación, los plug-ins son   programas separados, por lo que la licencia para   el programa principal no hace exigencias   para ellos. Así que usted puede utilizar la GPL para una   plug-in, y no hay especial   requisitos.

     

Si el programa se enlaza dinámicamente   plug-ins, y hacen llamadas a funciones   el uno al otro y compartir datos   estructuras, creemos que forman una   programa único, que debe ser tratada   como una extensión de tanto el principal   programa y los plug-ins. Esto significa   esa combinación de la GPL-cubierto   plug-in con el programa principal no libre   violaría la GPL. Sin embargo,   puede resolver ese problema legal   añadiendo una excepción a sus plug-in de   licencia, dando permiso para enlazarlo   con el programa principal no-libre.

     

Ver también la cuestión estoy escribiendo   software libre que utiliza un no-libre    biblioteca.

Y:

  

¿Qué problemas legales surgen si uso   bibliotecas GPL-incompatibles con la GPL   software?

     

Ambas versiones de la GPL tienen una   excepción a su copyleft, comúnmente   llama la excepción biblioteca del sistema.   Si las bibliotecas incompatible con la GPL le   desee utilizar cumplir con los criterios para una   biblioteca del sistema, entonces usted no tiene que   hacer nada especial para usarlos; el   obligación de distribuir el código fuente   para todo el programa no incluye   esas bibliotecas, incluso si   distribuir un ejecutable enlazado   los contienen.

     

Los criterios para lo que se considera una   "Biblioteca del sistema" variar entre   diferentes versiones de la GPL. GPLv3   define explícitamente "Bibliotecas del sistema"   en la sección 1, para excluirlo de la   definición de "Fuente Correspondiente".   GPLv2 dice lo siguiente, cerca del final   de la sección 3:

     

Sin embargo, como una excepción especial, el   código fuente distribuido no necesita   incluir cualquier cosa que es normalmente   distribuido (bien como fuente o   en forma binaria) con los componentes principales   (Compilador, kernel, etc.) del   sistema operativo en el que la   ejecutable, a menos que el componente   acompañe al ejecutable.

     

...

Otros consejos

Hay un malentendido fundamental de la forma en que las restricciones GPL entran en vigor. Su primer ejemplo está cubierto por la "exención biblioteca del sistema." - pero incluso si no lo fuera, no tendría el efecto que postulan

El GPL dice que si distribuye el programa GPL, o un derivado del mismo, que tiene que proporcionar también la fuente para el programa o derivado bajo los términos GPL-equivalente (para las personas que distribuyó el programa / derivado a) .

Esto significa que si distribuyo su programa GPL vinculado con algunos de código de Microsoft, tengo que proporcionar la fuente de toda la bola de cera, o el riesgo de ser demandado por usted para romper sus derechos de autor. Tenga en cuenta que el tiempo que Microsoft es un tercero, esto no pone ninguna restricción a a (por supuesto!). Si no tengo acceso al código de Microsoft, que es probable, entonces no puedo distribuir ese trabajo derivado sin estar en violación de su licencia.

IANAL, pero el orden de la creación no importa. Si los que unen dos binarios sería una violación de la GPL, entonces no está permitido por la GPL, independientemente de que se creó en primer lugar.

Caso 1 está dirigida por la excepción biblioteca del sistema, como Michael Burr citado. Tenga en cuenta que no es dependiente del tiempo - si no fuera por la excepción biblioteca del sistema, sería igual que gran parte de una violación de la GPL para ejecutar código GPL escrito en 2003 en Windows 98 (que fue escrito antes de que el código GPL), ya que sería de ejecutarlo en Vista (que fue escrito después de que el código GPL).

Estoy de acuerdo que el caso 2 viola el espíritu de la GPL, pero, como el término es utilizado por la GPL, que el conductor NVidia no está "ligado" con el núcleo Linux, ya que se carga como un módulo. No sería capaz de distribuir un núcleo de Linux con el binario no-Libre NVidia enlazado estáticamente en ella, sino que distribuye los núcleos vinculados estáticamente en estos días de todos modos?

cannnot cambiar otras licencias de programas mediante la vinculación a ellos, jamás. Si su licencia no permite la vinculación de los programas de código abierto no debe escoger para su licencia o dejar de vincular a esos programas. La situación sería diferente si los otros programas vinculados a la suya. En ese caso deberán cahnge su licencia o dejar de vincular a su programa.

Lo que significa, simplemente, es que no se puede aplicar la GPL en la parte superior del código o bibliotecas que no son compatible con la GPL y distribuir un trabajo conjunto compilado, a menos que aplique una vincular excepción .

La excepción vinculación proporciona una manera para que usted distribuya ejecutables compilados que contiene los bits que no son libres, mientras que no se necesita un permiso especial para distribuir el programa en formato fuente.

Esta excepción, por supuesto, depende de las bibliotecas no libres que le permite distribuir programas que están vinculados en contra de ella (sobre todo de forma estática).

Por lo tanto, para responder a su primera pregunta, no .. esto no es un escenario 'huevo o la gallina'. Lo que recomiendo es cuando se enfrentan a la posibilidad de tener que escribir una excepción, es probablemente mejor simplemente elegir una licencia con menos restricciones, como el Apache o licencia BSD 3 cláusula.

En segundo lugar, no se puede aplicar no sólo la GPL a su código a los efectos del cambio de la licencia por algo que le sucede a vincular en contra. Una vez más, volvemos a la excepción que une, que es su responsabilidad de proporcionar.

El spririt de la GPL vive en un mundo donde no hay tal cosa como el software propietario. RMS ha declarado esto como el objetivo final en muchas ocasiones. Lo que queda son prácticos que debe ser abordado para las personas que quieran distribuir software libre en plataformas que no son libres.

Esta es una de las mayores razones por las que Linux (como en el Kernel) sigue siendo GPL v2 sólo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top