Ich schreibe ein kommerzielles Paket, das R (GPL) für seine Berechnung verwendet. In den häufig gestellten Fragen zur GPL wird klargestellt, dass GPLed-Programmiersprachendolmetscher dem "Programm" (Textdatei mit R-Code) keine Lizenzbeschränkungen auferlegen. So weit, ist es gut.
Ein Teil des Pakets wird mit Rcpp kompiliert, das auch die GPL verwendet. Der nächste Absatz in den FAQ lautet:
Wenn der Interpreter jedoch erweitert wird, um "Bindungen" für andere Einrichtungen (häufig, aber nicht unbedingt für Bibliotheken) bereitzustellen, wird das interpretierte Programm effektiv mit den Einrichtungen verknüpft, die es über diese Bindungen verwendet.
Es kann interpretiert werden, dass R eine Bindung zu den Rcpp-Bibliotheken bereitstellt ( Rcpp.dll
im Windows-Paket). Die sichere Annahme ist, dass dies meinen Code mit der GPL verschmutzt, aber ist dies wirklich die richtige Schlussfolgerung?
Ein Teil meiner Unsicherheit ist die enge Verbindung zwischen meinem Code und Rcpp.dll
. Es gibt Verweise auf Rcpp in der DLL, aber ich bin nicht kompetent genug, um zu wissen, ob dies Verweise auf die Entwicklungsumgebung oder auf Aufrufe von Symbolen in der Rcpp-Bibliothek sind. Wenn erstere, dann glaube ich, dass die Rcpp-Bibliothek durch R und nicht durch meine Bibliothek verknüpft wird. Ich vermute jedoch Letzteres, da Rcpp einen Klebstoff (eigentlich Zucker) bereitstellt, um das Schreiben und Ausführen von Code zu vereinfachen.
Es gibt unzählige verwandte Diskussionen im Zusammenhang mit der GPL in der Codeverteilung. Um ein paar zu nennen:
- In einer virtuellen Maschine
- Offenlegung von geistigem Eigentum
- Folgen von GPL-Abhängigkeiten
- Verwenden einer GPL-Bibliothek in kommerzieller Software
NB: Ich bin im Allgemeinen ein großer Befürworter von OSS und habe in der Vergangenheit an der Entwicklung und dem Vertrieb teilgenommen. Fragen zum "Schutz von Code" werfen häufig Probleme bei Open-Source-Programmierern auf, was häufig zu heftigen Debatten über die Softwarephilosophie führt. Ich erkenne den Wert auf beiden Seiten und möchte sicherstellen, dass ich den Buchstaben und (wenn möglich) den Geist der Gesetze erfülle. Ich fische nicht nach einer Lücke in der Lizenz; Ich suche Hilfe beim Interpretieren und Einfügen in den Kontext.
Sind R-Pakete, die von Rcpp abhängen, erforderlich, um die GPL zu verwenden?
Antworten:
Ja, wenn Sie Ihren Code mit der Rcpp-Bibliothek verknüpfen und die abgeleitete Arbeit verteilen, unterliegt Ihr Paket mit ziemlicher Sicherheit der GPL. Die Antworten auf diese verwandte Frage gelten für Ihre Situation.
Manchmal bietet der Autor eines Werks die Wahl zwischen kommerziellen und Open-Source-Lizenzen (mit einer Gebühr, die häufig für die kommerzielle Option erforderlich ist), aber es scheint nicht, dass dies bei Rcpp der Fall ist.
quelle
Rcpp.dll
Bibliothek den Deal besiegeln. Danke, @sifferman.Ich glaube, dass R-Pakete, die von Rcpp abhängen, keine GPL verwenden müssen, sondern eine GPL-kompatible Lizenz.
Beim Lesen der Rcpp-FAQ in Abschnitt 1.5 heißt es eindeutig:
Das würde bedeuten, dass man, wenn man zum Beispiel die BSD-3-Klausel-Lizenz verwendet, vollkommen in Ordnung ist, dies zu tun.
Um eine wichtige Einschränkung hinzu: Wie Dirk hat in den Kommentaren die Aggregation von GPL-kompatiblen lizenzierten Code und GPL-lizenzierten Code darauf hingewiesen werden müssen GPL-ed. Man kann in gnu.org eine gute Erklärung finden, was ein Aggregat ist und was nicht. Beachten Sie, dass Sie bei der Veröffentlichung eines Pakets nur Ihren Code verteilen . Aus diesem Grund können Sie jede GPL-kompatible Lizenz und nicht ausschließlich GPL verwenden.
quelle