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?