2008-12-25 10 views
5

Wenn ich einen GUI-Wrapper entwickle, der nur eine GPL-CLI-Anwendung ausführt (aus Gründen des Arguments sagen tar) muss ich den GUI-Wrapper als GPL freigeben? Ist es eine Ableitung?Ein GUI-Wrapper um eine GPL-CLI-Anwendung, ist das ein Derivat?

Wenn es eine abgeleitete Arbeit ist, was muss ich freigeben?

Sowohl die GPL-Anwendung und der Wrapper wird zusammen

+0

Können Sie "Wrapper" genauer definieren - verbindet sich die GUI-Anwendung mit dem GPL-Code oder führt sie nur die Binärdatei aus? – Rob

+0

Es exclutes nur die binäre, wird zur Beschreibung hinzufügen;) – hhafez

+0

Wenn es eine abgeleitete Arbeit ist, sollten Sie Ihr Programm unter der GPL lizenzieren und seinen Quellcode freigeben ("zur Verfügung stellen"), wenn Sie es verteilen. – ShreevatsaR

Antwort

8

IANAL. Unter Angabe der mere aggregation Abschnitt der GPL FAQ (Hervorhebung von mir):

Ein „Aggregat“ besteht aus einer Anzahl von separaten Programmen, verteilt zusammen auf der gleichen CD-ROM oder anderen Medien. Mit der GPL können Sie ein Aggregat erstellen und verteilen, selbst wenn die Lizenzen der anderen Software nicht frei oder GPL-inkompatibel sind. Die einzige Bedingung ist, dass Sie das Aggregat nicht unter einer Lizenz freigeben können, die es Benutzern verbietet, Rechte auszuüben, die ihnen die jeweilige Lizenz des jeweiligen Programms gewährt.

Wo ist die Linie zwischen zwei separaten Programmen und einem Programm mit zwei Teilen? Dies ist eine Rechtsfrage, die letztlich entscheidet. Wir glauben, dass ein geeignetes Kriterium sowohl vom Mechanismus der Kommunikation (Exec, Pipes, RPC, Funktionsaufrufe innerhalb eines gemeinsamen Adressraumes usw.) als auch von der Semantik der Kommunikation (welche Arten von Information sind vertauscht) abhängt.

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 gemeinsamen Adressraum miteinander verbunden sind, bedeutet das fast sicher, sie zu einem Programm zusammenzufassen.

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 eng genug ist und komplexe interne Datenstrukturen ausgetauscht werden, könnte dies auch eine Grundlage sein, um die beiden Teile als ein größeres Programm zu betrachten.

Ein weiterer question aus der FAQ, die auf diese bezieht, „Wenn ein Programm unter der GPL veröffentlicht verwendet Plug-Ins, was die Anforderungen an die Lizenzen eines Plug-in sind“:

Es hängt davon ab, wie das Programm seine Plugins aufruft. Wenn das Programm fork und exec verwendet, Plug-Ins aufzurufen, dann sind die Plug-Ins separate Programme, so dass die Lizenz für das Hauptprogramm keine Anforderungen an sie stellt.

..

IMHO, im Geiste, ein reiner Wrapper, der nur die Funktionalität eines GPL-Programms exponiert, sollte GPL sein.

+0

Ich stimme zu. IMHO, ein Wrapper, der speziell für eine Anwendung geschrieben wurde, ist zumindest im Geist eine Ableitung, es sei denn, es war etwas, das allgemein genug war, um als Wrapper für eine große Klasse von Programmen zu dienen. – ShreevatsaR

+0

+1 für die Diskussion über abgeleitete Werke und "intime" Kommunikation zitiert. – emk

2

IANAL verteilt werden, aber ich bin mir ziemlich sicher, dass, wenn Sie nicht den GPL-Code mit Ihrem Code verknüpfe und verwenden nur die CLI, ist, dass Sie Code nicht von GPL betroffen. Sie sind nur verpflichtet, die Quelle des GPL-Codes zu verteilen.

Wenn Sie sich entscheiden, eine GPL-App zu verteilen, schlage ich vor, dass Sie nur die komprimierte Quelle tar auf dem Medium, anstatt nur durch den Download verfügbar machen, wie Sie die Download-Site für alle unbegrenzt pflegen müssen Versionen der GPL-App, die Sie verteilen.