GPLでライセンスされたオープンソースに(例えばWordPressやosCommerceなど、GPL OSSなら何でもOKとして)、外部接続方式のプラグインを開発した場合、このプラグインもGPLにしなければならないのでしょうか?


たとえば、

1)英語の翻訳辞書をサーバで保持している。プラグインで辞書サーバにアクセスできる部分だけを開発した。これはGPLにする必要はあるのか?

2)レコメンドエンジンを開発した。XMLデータからリモートサーバでレコメンド商品を抽出する演算処理を行う。プラグインでこのサーバにアクセスしてデータを送受信する。このプラグインはGPLにする必要はあるのか?

ほかにもいろんな事例が考えられると思いますが、OSSでも外部のサードパーティーを利用する場合の統合プラグインの位置関係はGPLにすべきなのかどうかが分かりません。

私が言いたいのは、つまり外部のリソースは何でも構いません。要は外部のリソースにアクセスして、そのデータを送受信してOSSにサービスを提供することを前提にしています。そのための統合プラグインの位置関係がGPLになるのか、どうかです。

アドバイスお願いします。


回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/12/15 10:29:00
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:hitoemon No.4

回答回数6ベストアンサー獲得回数1

ポイント22pt

それぞれのつながり方で答えは変わるのですが、

プラグインはOSSから"動的リンク"されることが多いと思います。

GPLのプログラムと"動的リンク"で結合されるプログラムはGPLに従わなければなりません。


質問者の意図は、自前の翻訳辞書サーバみたいなものへのアクセス方法を隠したいのでGPLにしたくないということでしょうか?

ということでしたら、これを回避するには、もう一段階クッションをおいて、


サードパーティー製品 - サーバー通信プログラム - プラグイン - OSS


という構成にします。「サーバー通信プログラム」とプラグインが"プロセス間通信"でやりとりするようにします。

GPLのプログラムと"プロセス間通信"で結合されるプログラムはGPLに従う必要は無いとの解釈が一般的です。

この場合はプラグインはGPLになりますが、「サーバー通信プログラム」はGPLを回避できます。

id:php123456

なるほど、この方法が最も妥当でしょうね。

回答してくださった皆様、ありがとうございました。

2009/12/15 10:28:17

その他の回答3件)

id:azumi1975 No.1

回答回数337ベストアンサー獲得回数16

ポイント23pt

GPLにする必要はない

id:ratbeta No.2

回答回数132ベストアンサー獲得回数9

ポイント23pt

GPL自体がWeb向けに作られていないこともあってその辺りは難しい所だと思います。

(Web向けにはAffero GPLなどがあるようですが、私はあまり詳しくありません。)

正確なところはライセンスを読むしかありませんが、とりあえず私見を。

GPLのソフトウェアからexecやfork(WindowsでいえばShellExecuteでしたっけ?)で単に実行ファイルを呼び出すだけのような場合には、実行ファイルは基本的にGPLにする必要はありません(GPLの下で公開されていたプログラムがプラグインを使うとして、プラグインのライセンスにはどのような条件がありますか? - GNU GPLに関して良く聞かれる質問を参照)。

一方、DLLなどを呼び出す場合には、それを呼び出すためのAPIが存在して、相互にデータをやりとりするわけですから、DLLもGPLでなければならない、ということのようです。

ただ、上記のリンク先にも書かれてある通り実際は微妙なところで、例え実行ファイルを呼んでいるだけでも、それを経由してDLLとデータをやりとりしたりしていると、悪質な場合にはGPL違反となってしまう可能性があります(以前に私も似たようなことを考えたので参考まで。)。

さて、質問者さんは主にWeb上でのプラグイン的な用途について想定しておられるようなので、そこに当てはめて考えてみます。

"プラグイン"という表現が微妙なのですが、OSS側でAPIが仕様で定められていて、プラグインに記述された関数を呼び出すような形式であればWindowsでいうDLLに、フレームで表示したりhttpのリクエストを行ってその結果を処理するだけならWindowsの実行ファイルに当てはまるのではないかと思います。

で、おそらく質問者さんのいうプラグインは前者だと思うので、この場合はおそらくGPLでなければならないのではないかと思います。

そこで、GPLにするとして、ここでは更に別のサーバとデータの送受信を行うわけですが、サーバ側が単なるDBでなくスクリプトであるような場合で、それとデータのやりとりをするような場合には、場合によってはこのスクリプトもGPLでなければならない可能性があります(サーバが単なるDBサーバであれば、そのデータはGPLでなくても問題ないと思います)。

はっきりとしたことは言えませんが、要は呼び出し元と呼び出し先のデータのやりとりがどの程度あるかによって決まると思います。

明らかに一体なコードを分割してGPL逃れをしていると見られるような場合にはGPL違反とみなされると思いますが、そうでない場合にはどちらとも言い難いのではないかと思います。

参考になるか分かりませんが、とりあえず個人的な見解を述べさせていただきました。

長文失礼しました。

id:php123456

微妙な回答ですね。

2009/12/14 12:06:33
id:azuco1975 No.3

回答回数613ベストアンサー獲得回数16

ポイント22pt

>バイナリを配布しないWebサービスではソースコードを公開する必要はないとのこと。

異論はいろいろありますが、上記の解釈ではGPLでなくてもよいということになります。

WordPressのテーマとかもGPLでないものも多数存在します。

id:php123456

サードパーティー製品(バイナリ) ← プラグイン(こいつの立場はGPL!?) → OSS(GPL)

ってことです。いまいちプラグインの立ち位置が理解できません。

2009/12/14 12:06:57
id:hitoemon No.4

回答回数6ベストアンサー獲得回数1ここでベストアンサー

ポイント22pt

それぞれのつながり方で答えは変わるのですが、

プラグインはOSSから"動的リンク"されることが多いと思います。

GPLのプログラムと"動的リンク"で結合されるプログラムはGPLに従わなければなりません。


質問者の意図は、自前の翻訳辞書サーバみたいなものへのアクセス方法を隠したいのでGPLにしたくないということでしょうか?

ということでしたら、これを回避するには、もう一段階クッションをおいて、


サードパーティー製品 - サーバー通信プログラム - プラグイン - OSS


という構成にします。「サーバー通信プログラム」とプラグインが"プロセス間通信"でやりとりするようにします。

GPLのプログラムと"プロセス間通信"で結合されるプログラムはGPLに従う必要は無いとの解釈が一般的です。

この場合はプラグインはGPLになりますが、「サーバー通信プログラム」はGPLを回避できます。

id:php123456

なるほど、この方法が最も妥当でしょうね。

回答してくださった皆様、ありがとうございました。

2009/12/15 10:28:17

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません