GPL-Code stimmt nicht mit proprietärer Bibliothek Verknüpfung ab, die zuerst erstellt? [geschlossen]

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

Frage

Microsoft ihre Fenster und MFC-DLL-Bibliothek erstellt, etc. Ein Open-Source eine neue MFC-Anwendung entwickeln, schreiben und den Quellcode als GPL freigeben. Die App hat mit den MS DLL / Bibliotheken in Windows laufen zu verbinden, aber ich glaube nicht, dass jemand kann argumentieren, dass wir jetzt das Recht haben, die Microsofts GPL ihre DLL zu erzwingen.

Bedeutet dies, die GPL-Lizenz hängt wirklich davon ab, auf dem eine erste „geschaffen“ wird? Wenn proprietäre Bibliothek erstellt wird (wie Windows DLLs), die ohne Verknüpfung und jeder GPL-Code veröffentlicht und später ein GPL-Programm mit ihm verbunden ist, dann ist das GPL-Programm kann nicht die proprietäre Bibliothek in GPL konvertieren, obwohl der proprietären Code „verknüpft“ mit dem GPL-Code wird.

Wenn dies der Fall ist, können Unternehmen solche NVidia oder Real Networks gehen Sie wie folgt? Lassen Sie uns annehmen, dass sie die proprietäre HDDecoding Medien Dekodierungsengine Bibliothek privat halten wollen, aber sie wollen auch die Open-Source-Unterliegt der GPL-Code „Hebelwirkung“ ihre Hardware zu präsentieren.

  1. Sie schaffen eine proprietäre Bibliothek Medien-Decodierung zu tun und einige Beispiel-Code freigeben.
  2. Someone (Open-Source-Entwicklung) schafft „Plugin“, die in diese proprietären Bibliothek für GPLed Code wie XBMC, Mplayer oder VLC verknüpft ist.
  3. Können sie argumentieren, dass, da sie die proprietäre Bibliothek erstellt zunächst (wie MS alle DLLs erstellen zuerst), GPL-Programme, die mit ihrem proprietären Code verknüpfen jedoch verdeckte sie nicht in GPL-Code.

Man kann in der Theorie argumentieren, dass der Open-Source-Entwickler, die die GPL vlc.exe-Datei, die mit der NVidia proprietären Medien Decoder Bibliothek Link erstellt wird, um die GPL-Lizenz zu verletzen.

Bedeutet dies, dass alle GPL-Programme in Windows ausgeführt wird, wie VLC, git, Cygwin, etc. sind alle GPL-Lizenz zu verletzen, weil sie auf jeden Fall mit den proprietären Microsoft Windows Bibliotheken müssen eine Verknüpfung zu laufen.

Fall 2: Was ist los mit diesem:

NVidia kann eine neue Hardware-Abstraktionsbibliothek erstellen, die die neuesten Grafikfunktionen verbergen. Sie schaffen auch einen FreeBSD-Treiber mit dieser Bibliothek und lassen Sie den Quellcode der BSD-Treiber aber nicht die Bibliothek Quellcode.

Jemand (Linux-Entwickler) kann die Linux-Treiber implementieren, die mit dieser Bibliothek verknüpft ein NVidia-Grafiktreiber für Linux zu erstellen. Aber da NVidia tat dies nicht, kann sie die Bibliothek Quelle halten „versteckt“, während ermöglichen, die „Linux-Unterstützung“.

Es verletzt sicherlich den Geist der GPL.

Bedeutet es, dass jede exe läuft mit GPLed Quelle erstellt in Windows / Mac / Iphone / PSP3 auch den Geist der GPL verletzt?

War es hilfreich?

Lösung

Von der GNU GPL FAQ:

  

Kann ich mir die GPL, wenn ein Schreiben   Plug-in für ein unfreie Programm?

     

Wenn das Programm verwendet fork und exec zu   Aufrufen Plug-Ins, dann sind die Plug-Ins sind   separate Programme, so dass die Lizenz für   das Hauptprogramm übernimmt keine Anforderungen   für Sie. So können Sie die GPL für eine Verwendung   Plug-in, und es gibt keine spezielle   Anforderungen.

     

Wenn das Programm dynamisch Links   Plug-Ins, und sie machen Funktionsaufrufe   miteinander und Daten austauschen   Strukturen, wir glauben, dass sie eine Form   Single-Programm, das behandelt werden muss   als Erweiterung sowohl des Haupt   Programm und die Plug-In. Das heisst   diese Kombination der GPL-covered   Plug-in mit dem nicht-freien Hauptprogramm   würde die GPL verletzen. Aber du   dass rechtliches Problem lösen kann   eine Ausnahme zu Ihrem Plug-Ins Hinzufügen   Lizenz, Erlaubnis, sie zu verknüpfen   mit dem unfreien Hauptprogramm zurück.

     

Siehe auch die Frage Ich schreibe   freie Software, die eine unfreie verwendet   Bibliothek .

Und:

  

Was rechtliche Fragen kommen, wenn ich   GPL-inkompatible Bibliotheken mit GPL   Software?

     

Beide Versionen der GPL haben eine   Ausnahme zu ihren copyleft, häufig   die Systembibliothek Ausnahme genannt.   Wenn die GPL-inkompatible Bibliotheken, die Sie   verwenden möchten, die Kriterien für eine erfüllen   Systembibliothek, dann müssen Sie nicht auf   tun etwas Besonderes, sie zu benutzen; das   Anforderung Quellcode zu verteilen   für das gesamte Programm nicht enthalten   diese Bibliotheken, auch wenn Sie   verteilen eine verknüpfte ausführbare   sie enthalten.

     

Die Kriterien für das, was zählt als ein   „Systembibliothek“ variieren zwischen   verschiedene Versionen der GPL. GPLv3   explizit definiert „Systembibliotheken“   in Abschnitt 1, der aus auszuschließen   Definition von „Entsprechender Quelle.“   GPLv2 sagt die folgenden, in der Nähe des Endes   von Abschnitt 3:

     

Allerdings Als besondere Ausnahme, die   Quellcode verteilt braucht nicht   umfasst alles, was in der Regel   verteilt (in entweder Quelle oder   in binärer Form) mit den Hauptkomponenten   (Compiler, kernel, und so weiter) des   Betriebssystem, auf dem die   Programm läuft, es sei denn, dass die Komponente   selbst gehört zum ausführbaren Programm.

     

...

Andere Tipps

Sie haben ein grundlegendes Missverständnis der Art und Weise, in der die GPL Beschränkungen Kraft. Ihr erstes Beispiel ist die „Systembibliothek Befreiung“ abgedeckt -. Aber auch wenn es nicht ist, wäre es nicht die Wirkung haben Sie postulieren

Die GPL sagt, dass, wenn Sie das GPL-Programm zu verteilen oder ein Derivat davon, müssen Sie auch die Quelle für das Programm oder Derivats unter Bedingungen gleichwertig GPL-bieten (an den Menschen verteilen das Programm / Derivat) .

Das bedeutet, dass, wenn ich mit einigen Microsoft-Code Ihres GPL-Programm verknüpft verteilen, ich die Quelle für die gesamte Kugel aus Wachs zur Verfügung stellen müssen, oder das Risiko von Ihnen verklagt Ihr Urheberrecht zu brechen. Beachten Sie, dass solange Microsoft ein Dritter ist, dies keine Einschränkungen nicht setzen Sie auf sie (natürlich!). Wenn ich den Zugriff auf Microsoft keinen Code haben, die wahrscheinlich ist, dann kann ich nicht, dass die abgeleitete Arbeit verteilen, ohne eine Verletzung der Lizenz zu sein.

IANAL, aber die Ordnung der Schöpfung keine Rolle spielt. Wenn die Verknüpfung von zwei Binärdateien eine Verletzung der GPL wären, dann wird es nicht durch die GPL erlaubt, unabhängig davon, welche zuerst erstellt wurde.

Fall 1 wird durch die Systembibliothek Ausnahme behandelt, als Michael Burr zitiert. Beachten Sie, dass es nicht zeitabhängig ist - wenn es nicht für die Systembibliothek Ausnahme wäre, wäre es nur so viel von einer GPL Verletzung sein Unterlag die GPL-Code in 2003 unter Windows 98 geschrieben zu laufen (was vor dem GPLed Code geschrieben wurde), wie es wäre es auf Vista laufen (die nach dem GPL-lizenzierten Code geschrieben wurde).

Ich bin damit einverstanden, dass Fall 2 den Geist der GPL verletzt, sondern, wie der Begriff von der GPL verwendet wird, dass NVidia-Treiber nicht „verbunden“ mit dem Linux-Kernel, weil es als Modul geladen wird. Sie würden einen Linux-Kernel mit dem nicht-Free NVidia binary nicht in der Lage sein, statisch in ihm verbunden zu verteilen, aber wer verteilt statisch gelinkte Kerne in diesen Tagen überhaupt?

cannnot Sie andere Programme Lizenzen ändern, um sie durch die Verknüpfung, nie. Wenn Ihre Lizenz nicht-Open-Source-Programme nicht Verknüpfung erlaubt, müssen Sie entweder Ihre Lizenz ändern oder zu diesen Programmen verknüpfen stoppen. Die Situation wäre anders, wenn die anderen Programme zu Ihnen verbunden. In diesem Fall müssen sie ihre Lizenz oder stoppen die Anbindung an Ihr Programm cahnge.

Was es bedeutet einfach, ist, dass Sie die GPL auf dem Code nicht anwenden können oder Bibliotheken, die nicht kompatibel mit der GPL und verteilen eine kompilierte kombinierte Arbeit, es sei denn, Sie Verknüpfung Ausnahme .

Die Verknüpfung Ausnahme bietet eine Möglichkeit für Sie, das nicht-freien Bits zusammengestellt ausführbare Dateien zu verteilen enthalten, während keine besondere Genehmigung erforderlich ist, um das Programm in Quellformat zu verteilen.

Diese Ausnahme, natürlich, hängt von den unfreien Bibliotheken ermöglicht es Ihnen, Programme zu verteilen, die gegen sie verbunden sind (insbesondere statisch).

Also, Ihre erste Frage zu beantworten, nein .. das ist kein ‚Huhn oder Ei‘ -Szenario. Was ich empfehlen ist, wenn mit der Möglichkeit konfrontiert, eine Ausnahme zu schreiben, ist es wahrscheinlich besser, nur eine Lizenz mit weniger Einschränkungen zu wählen, wie die Apache oder 3 Klausel-BSD-Lizenz.

Zweitens, nein, können Sie nicht nur die GPL, um Ihren Code gelten für die Zwecke der die Lizenz für etwas zu ändern, die Sie verknüpfen gegen passieren. Auch hier kommen wir auf die Verknüpfung Ausnahme zurück, die Ihre Aufgabe ist es zu schaffen.

Die spririt der GPL leben in einer Welt, wo es nicht so etwas wie proprietäre Software. RMS hat bei vielen Gelegenheiten dies als Fernziel angegeben. Was bleibt, sind Praktikabilität , die für Menschen angegangen werden müssen, die freie Software zu verteilen, auf unfreie Plattformen wollen.

Dies ist einer der größten Gründe, dass Linux (wie im Kernel) bleibt GPL v2 nur.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top