Sie können verwenden ein GPLed Programm von Ihrem eigenen Programm ohne Ihr Programm von der GPL beeinflusst zu werden, aber Sie können die GPL - lizenzierten Code in Ihr eigenes Programm ohne Ihr Programm immer unterliegt der GPL Bedingungen nicht verknüpfen.
In dem in der Frage angegebenen Beispiel, in dem Sie einen GUI-Wrapper um ein vorhandenes Befehlszeilenprogramm geschrieben haben, ist Ihre GUI nicht an die Bedingungen der GPL gebunden, vorausgesetzt, es handelt sich um ein separates Programm, mit dem das GPLed-Programm in a ausgeführt wird Prozess trennen und nur über die vorhandene (n) Schnittstelle (n) damit kommunizieren - zB über die Kommandozeile und / oder über stdin / stdout.
Einige relevante Teile der GPL-FAQ :
Wo ist die Grenze zwischen zwei getrennten Programmen und einem Programm mit zwei Teilen? Dies ist eine rechtliche Frage, die letztendlich von den Richtern entschieden wird. Wir glauben, dass ein geeignetes Kriterium sowohl vom Kommunikationsmechanismus (exec, pipes, rpc, Funktionsaufrufe innerhalb eines gemeinsam genutzten Adressraums usw.) als auch von der Semantik der Kommunikation abhängt (welche Arten von Informationen ausgetauscht werden).
Wenn die Module in derselben ausführbaren Datei enthalten sind, werden sie definitiv in einem Programm kombiniert. Wenn Module so konzipiert sind, dass sie in einem gemeinsam genutzten Adressraum miteinander verknüpft ausgeführt werden, bedeutet dies fast sicher, dass sie zu einem Programm zusammengefasst werden.
Im Gegensatz dazu sind Pipes, Sockets und Befehlszeilenargumente Kommunikationsmechanismen, die normalerweise zwischen zwei separaten Programmen verwendet werden. Wenn sie für die Kommunikation verwendet werden, sind die Module normalerweise separate Programme. Aber wenn die Semantik der Kommunikation intim genug ist und komplexe interne Datenstrukturen ausgetauscht werden, könnte dies auch eine Grundlage sein, um die beiden Teile als zu einem größeren Programm zusammengefasst zu betrachten.
Kann ich ein nicht-kostenloses Programm veröffentlichen, mit dem ein Plug-in mit GPL geladen werden kann?
Es hängt davon ab, wie das Programm seine Plug-Ins aufruft. Wenn das Programm zum Aufrufen und Kommunizieren mit Plug-Ins beispielsweise nur einfache Fork- und Exec-Befehle verwendet, handelt es sich bei den Plug-Ins um separate Programme, sodass die Lizenz des Plug-Ins keine Anforderungen an das Hauptprogramm stellt.
Wenn das Programm Plug-Ins dynamisch verknüpft, Funktionsaufrufe vornimmt und Datenstrukturen gemeinsam nutzt, bilden sie unserer Ansicht nach ein einziges Programm, das als Erweiterung des Hauptprogramms und der Plug-Ins behandelt werden muss. Um die von der GPL abgedeckten Plug-Ins verwenden zu können, muss das Hauptprogramm unter der GPL oder einer GPL-kompatiblen freien Softwarelizenz veröffentlicht sein und die Bestimmungen der GPL müssen befolgt werden, wenn das Hauptprogramm zur Verwendung mit diesen verbreitet wird Plugins.
Wenn das Programm Plug-Ins dynamisch verknüpft, die Kommunikation zwischen ihnen sich jedoch darauf beschränkt, die Hauptfunktion des Plug-Ins mit einigen Optionen aufzurufen und auf die Rückkehr zu warten, ist dies ein Grenzfall.
Beachten Sie, dass die GPL in jedem Fall in vollem Umfang für das zugrunde liegende Befehlszeilenprogramm gilt. Wenn Sie sie vertreiben (im Gegensatz dazu, dass Benutzer sie von einer anderen Quelle beziehen), sind Sie dafür verantwortlich, Benutzern eine Kopie der GPL zur Verfügung zu stellen und sie zu erstellen Machen Sie ihnen klar, dass sich das Befehlszeilenprogramm unter der GPL befindet (auch wenn der GUI-Wrapper nicht vorhanden ist), und stellen Sie ihnen auf Anfrage den Quellcode des Befehlszeilenprogramms zur Verfügung. Nochmals aus der GPL-FAQ:
Wenn Leute GPL-bedeckte Software vertreiben, die als "Teil" eines Systems bezeichnet wird, von dem Benutzer wissen, dass es teilweise proprietär ist, sind sie sich möglicherweise ihrer Rechte bezüglich der GPL-bedeckten Software nicht sicher. Aber wenn sie wissen, dass das, was sie erhalten haben, ein kostenloses Programm plus ein weiteres Programm ist, werden ihre Rechte klar sein.
Standard-Haftungsausschluss: Ich bin kein Anwalt und auch wenn ich Anwalt wäre, bin ich nicht Ihr Anwalt. Wenn Sie eine endgültige Antwort benötigen, wenden Sie sich an einen geeigneten Anwalt, der für Ihre Rechtsprechung zugelassen ist.