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.
Kommt darauf an, was du damit meinst?
Es hängt auch genau davon ab, unter welcher Version / Variante der GPL sich der andere Code befindet.
Haftungsausschluss: Ich bin kein Anwalt.
quelle
Das hängt davon ab, wie genau Ihr Programm die GPL "benutzt". Die GPL-FAQ hat eine recht lange Erklärung , lässt aber noch viel zu interpretieren:
Ich denke in Ihrem Beispiel einer GUI, die hauptsächlich zum Aufrufen eines Befehlszeilen-GPL-Programms existiert, bilden die beiden eindeutig ein einziges Programm, sodass Sie Ihren Code unter der GPL freigeben müssten.
quelle
Nein.
GPL-Code kann nur von anderen GPL-Codes verwendet werden.
Unter Berufung auf die erste Zeile des GPL- Artikels von Wikipedia :
Daneben ist die GPL mehrere Seiten lang und existiert in mehreren Versionen.
Achtung, persönliches Geschwätz voraus!
Ich persönlich mag die GPL-Lizenz nicht sehr, weil sie sehr restriktiv und virenartig ist. Sie nennen es "frei", aber es ist genau das Gegenteil, GPL-Code kann nur von anderen GPL-Codes verwendet werden. So können Sie andere Projekte in die GPL zwingen oder ganze Bibliotheken neu schreiben, unabhängig davon, ob Ihr aktuelles Projekt Open Source ist oder nicht. Es gab riesige Open-Source-Projekte, wie zum Beispiel freeBSD, die gezwungen waren, hunderttausende Zeilen Linux-Code umzuschreiben, weil ihre Lizenz nicht kompatibel war. Sie war zu "kostenlos" in dem Sinne "mach was du willst", was offensichtlich ist nicht kompatibel mit GPL.
Wenn Sie eine wirklich "kostenlose" Lizenz im Sinne von "tun, was Sie wollen" möchten, empfehle ich eine BSD- oder MIT-Lizenz ... eigentlich sind die meisten anderen Lizenzen in Ordnung. Es ist nur die GPL, die wirklich problematisch ist, weil sie so restriktiv ist und andere dazu zwingt. Schließlich ist es zu kompliziert.
Ah, ja, es ist auch ein One-Way-Ticket. GPL kann Code / Bibliotheken verwenden, die von den meisten Lizenzen lizenziert wurden. Diese Bibliotheken / Codes können jedoch keinen GPL-Code verwenden.
quelle