Rcppに依存するパッケージにはGPLライセンスが必要ですか?


8

計算にR(GPL)を使用する商用パッケージを書いています。GPLよくある質問は明確にGPLのプログラミング言語の通訳が「プログラム」(Rコードのテキストファイル)にライセンス制限を課さないと述べています。ここまでは順調ですね。

パッケージの一部は、GPLも使用するRcppを使用してコンパイルされます。FAQの次の段落は次のとおりです。

ただし、インタープリターが他の機能(ライブラリーであることが多いが必ずしもそうではない)に「バインディング」を提供するように拡張されている場合、インタープリタープログラムは、これらのバインディングを通じて使用する機能に効果的にリンクされます。

RがRcppライブラリ(Rcpp.dllwindowsパッケージ内)へのバインディングを提供していると解釈できます。安全な仮定は、これが私のコードをGPLで汚すということですが、これは本当に正しい結論ですか?

私の不確実性の一部は、私のコードとの間のリンクの緊密さですRcpp.dll。dllにはRcppへの参照がありますが、これらが開発環境への参照であるか、Rcppライブラリ内のシンボルへの呼び出しへの参照であるかを知るには十分な熟練度がありません。前者の場合は、RcppライブラリがライブラリではなくRによってリンクされていると思います。ただし、Rcppはコードの作成と実行を簡素化するための接着剤(実際には砂糖)を提供しているので、後者を疑っています。

コード配布には、GPLに関連する議論が無数にあります。いくつか例を挙げると:

注意:私は一般的にOSSの大きな支持者であり、過去に開発と配布に参加しました。「コードの保護」に関する質問は、しばしばオープンソースプログラマーのハックルを引き起こし、ソフトウェア哲学についての激しい議論をしばしば引き起こします。私は双方の価値を認めており、私がその書簡と(可能であれば)法律の精神を確実に満たすことを望んでいます。ライセンスの抜け穴を探すつもりはありません。私はそれを解釈してコンテキストに入れる助けを探しています。

GPLを使用するには、Rcppに依存するRパッケージが必要ですか?


Rcpp に実際に関係している人がすぐに目にするであろう場所ではなく、なぜここに投稿したのですか?
Dirk Eddelbuettel、2016年

1
私は(メールで)やりました、そしてあなたが私がこの質問を投稿した直後にあなたは答えました。ありがとうございました。また、このサイトは「責任を持ってソフトウェアを作成、提供、保守する」ことを目的としているため(ライセンスが拘束される)、ここでも質問することは不適切ではありません。「完璧な」会場であるダークを避けていなかったので、複数の方向から尋ねていました。
r2evans

わかりました、直接連絡することは確かに役立ちます。あなたがそうしたことを覚えていません。私はあなたがあなたの質問に関連する聴衆を得るのを心配していました、そして私がこのサイトを読んでいる私たちのチームの誰かを知りません。
Dirk Eddelbuettel、2016年

1
ここで質問したのは、Rcppプログラミングよりも「GPL継承」の側面についてでした。この質問には他にもいくつかの方言があります(質問されていません):(1)一般的なGPL継承、(2)コンパイル済みコードなしのRパッケージのライセンス、および(3)C / C ++コード付きのRパッケージのライセンス(Rcppかどうか)もしくはそうでないか)。振り返ってみると、私の問題は、Rcppに固有の問題よりも3番目の問題でした。私は最近、より鋭く明確に質問する方法について少し良くなっています。
r2evans

フォローアップをありがとう、そしてあなたがあなたの答えを得たことを願っています。(1)と(3)は、オブジェクトコード/リンクの側面のため、かなりよく理解されていると思います。(2)少し異なります。
Dirk Eddelbuettel

回答:


6

はい、コードをRcppライブラリとリンクして派生物を配布すると、パッケージはほぼ確実にGPLの対象になります。この関連質問への回答は、あなたの状況に適用されます。

作品の作者は、商用ライセンスとオープンソースライセンスのどちらかを選択できる場合があります(商用オプションには多くの場合有料です)が、Rcppの場合はそうではないようです。


これも私が推測していることであり、検討していただきありがとうございます。関連する質問はインタープリターから始めるという問題には対処していませんでしたが、私のコードにRcpp.dllライブラリへのリンクがあれば、契約は成立します。ありがとう、@ sifferman。
r2evans 2014

1
この答えは少し単純すぎると思います。以下の私の答えを見てください。
usεr11852

12

Rcppに依存するRパッケージはGPLを使用する必要はなく、GPL互換のライセンスを使用する必要があると思います。

Rcpp-FAQセクション1.5を読むと、次のように明確に述べられています。

あなたはあなたが適切であると思うどんな条件の下でもあなたの作品をライセンスすることができます(それらがGPL互換であるという条件で、詳細についてはFSFサイトを参照してください)。

つまり、たとえばBSD-3-条項ライセンスを使用することを選択した場合、彼は完全に使用できることを意味します。

重要な注意事項を追加するには、Dirkがコメントで指摘したように、GPL互換のライセンスコードとGPLライセンスのコードの集約はGPLに準拠する必要がありますgnu.orgで、集合体とは何か、そうでないものについての良い説明を見つけることができます。パッケージをリリースするときは、コードのみを配布するので、GPL だけでなく、GPL互換のライセンスを使用できることに注意してください。


FSF FAQこの部分は明確にします:集合体は常にGPLに行きます。ただし、互換性のあるライセンスの下で自由にコードをライセンスできます。
Dirk Eddelbuettel、2016年

また、CRANを使用して何百ものパッケージを含むCRANのカジュアルなスキャンは、これを十分に迅速に示したでしょう。
Dirk Eddelbuettel、2016年

答えは、[Rcpp FAQの質問1.5]()からいくぶん選択的に引用しています。全体をよく読んでください-短いです。
Dirk Eddelbuettel、2016年

@DirkEddelbuettel:申し訳ありませんが、私はあなたが正確に何についてコメントしているのか理解できません。GPL互換のライセンスで十分だという私の答えは間違っていますか?Rcppを使用する何百ものパッケージが常にGPLを使用しているわけではなく、異なるライセンスを使用している可能性があるという事実に注意を引くことを目指していますか?(例えば、BSD-3、芸術ライセンス2.0、MIT、等)
usεr11852

あなたの答えは、Rcpp FAQのセクション1.5そのもので私が言っていることとほぼ同じです。このセクションで明らかに複数の文が必要なのに、なぜ半文を引用することにしたのか、私には理解できません。 集計では、このすべての真実です。重要な部分は言わないだけです。「できる」(互換性のあるGPL以外のライセンスを使用)一方で、重要な点は、GPLの設計により、総作業がまだ GPL化されていることです。
Dirk Eddelbuettel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.