- ベストアンサー
動的リンク時のGPLライセンスについての疑問
- GPLライセンスとはプログラムの派生物や結合物にも同じライセンスが適用されることを意味します。
- プログラムAとプラグインBが同じ作者によるものでも、プラグインBの影響でプログラムAがGPLになるわけではありません。
- プログラムAとプラグインBが影響しあい、両方を使う場合には、GPLライセンスが適用されます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
えと、とりあえず、 RubyインタプリタそのものはGPLとRuby'sライセンスのデュアルライセンスです。 正規表現の関数が収められている regex.c/regex.h の扱いに注意する必要はありますが(これらは LGPLのみ)、 それに関しても鬼車を組み込むことで(Ruby本体に数行の修正が必要です)、 GPLから解放されることは可能です。 LICENSE.txtというファイルに(英語で)書かれてますのでどうぞ。 実際、RPGツクールxp(ちょっとタイトル違うかも)というアプリケーションは そのようにしてRubyインタプリタ(の改造版)を組み込んだものですが、 ソースは公開されておらず(したがってGPLにしたがってはいない)、 クローズドなものです。 >>ですので BSDライセンスで配布されているものであれば、 >>non-free ということはないのではないでしょうか。 > >とすると、BSDなプログラムAに対してGPLなプラグインBを作成&公開でき >る可能性があるとお考えなのでしょうか? >BSDにすると感染が止まるというのも何か不思議な感じがしますが、もし>これが可能ならば朗報なのですが。 こっちはディスコミュニケーションが発生している気配ありありなので ちと時間をおきます。 とりあえずBSDにすると感染が止まるとという表現の意味するところが よく読み取れませんので即答はしません(できません)。 一応最終的な目標をおききしますが、 ・Rubyインタプリタを組み込んだアプリを作りたい ・アプリのユーザーが自由にプラグインを作れるような仕掛けにしておきたい ・プラグインの作者に対してGPL縛り(特にソースコードの公開)を押し付けたくはない ということでよろしいですか?
その他の回答 (2)
- sakusaker7
- ベストアンサー率62% (800/1280)
> (ひとつ誤解があるようですが、Aが非GPLで、BがGPLという状況です。 > どちらでも同じようなものですが、話の展開で混乱を招く恐れがありますので。) あ、すみません。 ちょっと読み違えてました。 > 若干気になるのは「non-freeというのはどういう意味なのか?」ですが、 > もし「GPL適合なライセンスではない」ということならBSDかなにかでAが公開されてたらいいということになるのでしょうか? > あえてnon-GPLedではなくnon-freeと書いているのか・・。 えー、彼らのいうFree Softwareではないということだと思います。 このFree Softwareとはなんじゃいという話になるのですが、 これまた彼らの言を借りれば、四つの「自由」が保証されているソフトウェアです。 Richard Stallman インタビュー - GNUな生活 http://d.hatena.ne.jp/akirashibata/20051223 | Freedom 0 は、自分の好きなようにソフトウェアを使う自由。 | Freedom 1 は、そのソースコードを読んで、自分の好きなように変更する自由。 | Freedom 2 は、好きなようにそのソフトをコピーして配布する自由。 | そしてFreedom 3は、自分の変更したバージョンを配布することが出来る自由。 GPLはこれらの自由を保証するものですが、 GPL以外にもこのようなライセンスはあるので nonGPLed ではなく、non-freeという表記をしているのだと思います。 ですので BSDライセンスで配布されているものであれば、 non-free ということはないのではないでしょうか。 >どちらにせよ、ややこしそうですので、GPLなプログラムCは使わないよう努力することにします。 > (無理ならプラグインBのリリースをやめる。) 何かの理由でGPLの要求する項目をクリアできないのであれば、 使うのは避けたほうが良いでしょうね。 もしプログラムCの作者にコンタクトが取れるなら、 自分に対して別途配布規定を定めてもらうという手段がとれなくもありませんが。
お礼
>もしプログラムCの作者にコンタクトが・・・・ 実はプログラムCというのはRubyのインタプリタです。 RubyはGPLedなライブラリを多数使用している様なので、 おそらくは無理ではないかと思います。 > 何かの理由でGPLの要求する項目をクリアできないのであれば、 プログラムAを公開したいと考えているのですが、GPLだと(もし運良く作ってくださる人が現れたとして)プラグイン製作者にソースコードの開示を強制してしまうことになります。それは避けれるなら避けたいなぁと思った次第でして。それでも全然かまわないという人はいるでしょうが、そうでない人も多いと思いますし。 またRuby以外の言語でもかまわないのですが、どうせならRubyを使ってみたかったのです。 >ですので BSDライセンスで配布されているものであれば、 >non-free ということはないのではないでしょうか。 とすると、BSDなプログラムAに対してGPLなプラグインBを作成&公開できる可能性があるとお考えなのでしょうか? BSDにすると感染が止まるというのも何か不思議な感じがしますが、もしこれが可能ならば朗報なのですが。 ちょっと、このあたり、もう少し調べてみます。
- sakusaker7
- ベストアンサー率62% (800/1280)
質問1について。 FSFの見解についてはFAQにあるそのままだと思います。 http://www.gnu.org/licenses/gpl-faq.html#GPLPluginsInNF http://www.gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins #日本語訳が存在しているかどうかは知りません GNU GPLライセンスのソフトウェアAと、非GPLのプラグインBとを 「同一の配布パッケージ」として配布することは少なくともできないでしょう(配布パッケージのライセンスを(互換性のあるライセンスを含めた)GPLにも できないし、非GPLにもできないので)。 質問の例では同時に配布するものではないということなので、このパターンでは ないと思われますが、プラグインBがなくてもソフトウェアAが動作しうるのであれば Bのような非GPLのプラグインを「別途配布」することに関しては ソフトウェアAの作者がそのプラグインを作る場合もOKだと思います。 ただ、プラグインBがない状態での動作を「機能制限」と見るのなら ちょっと危ないかもしれませんね。 質問2の方は想定している状況が良くわかりません。 ある人が開発・配布している非GPLソフトウェア用のプラグインを 別の人がGPL下で「作成した場合に」その非GPLソフトウェアが自動的に GPLで配布しなければならないとかとお考えですか? なお以上はわたしの意見ですので、どこかでコンセンサスが取れたとか 統一見解として存在しているものではないことをお断りしておきます。 ところで、Wikipdeiaの略称として'Wiki'を使うのは止めてほしい今日この頃。
お礼
回答ありがとうございます。 >質問1について。 >FSFの見解についてはFAQにあるそのままだと思います。 (ひとつ誤解があるようですが、Aが非GPLで、BがGPLという状況です。どちらでも同じようなものですが、話の展開で混乱を招く恐れがありますので。) URL大変参考になりました。 付帯事項をつければプラグインBをA用にリリースできるということみたいですね。 しかし、今回の場合BがGPLとなったのは別のプログラムCを使用するからであって、Cにその様な付帯事項が付いているかどうかがカギになりそうです。 そうでない場合は、GPLに法的に反すると(少なくとも)FSFは主張しているようですね。 若干気になるのは「non-freeというのはどういう意味なのか?」ですが、もし「GPL適合なライセンスではない」ということならBSDかなにかでAが公開されてたらいいということになるのでしょうか? あえてnon-GPLedではなくnon-freeと書いているのか・・。 どちらにせよ、ややこしそうですので、GPLなプログラムCは使わないよう努力することにします。 (無理ならプラグインBのリリースをやめる。) ---------------------------------------------------- 質問2に関してはGPLなプラグインBが出現することを想定して、プログラムAをGPLにした場合、その他のプラグインEはGPLであるべきか?という意味ですが、考えてみれば当然ですね。FAQにも、まさにどんぴしゃなものがありました。 http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins
お礼
> Ruby・・・GPLから解放されることは可能です。 なるほど、non-GPLedにできるのですね。 選択の一つとしてありえますね。 非常に参考になります。 > こっちはディスコミュニケーションが・・・ ぼんやりとしたイメージで書き込んだので、混乱させて申し訳ないです。 ------------------------------------ 目標は (1)プログラムAを公開したい (2)プラグインEの作者に対してGPL縛り(特にソースコードの公開)を押し付けたくはない (3)Rubyを使ったプラグインBを提供したい(Rubyを使ったプログラムAのスクリプト制御などの機能を提供するため。たのプラグインEはこの機能は使わない。) 以上の3つの目的を両立させたい。 ------------------------------------- そこで私は当初、Dynamic Link&別配布されるとはいえ、GPLなプラグインBを提供することで、プログラムAにGPLが感染すると思っていました。そしてAに感染するとプラグインEにも感染するはずで、それを危惧していたわけです。つまり「B->A->EというGPLの伝搬」が起こると誤解していました。 しかし、よくよく考えれば、プログラムA用に 後から”プラグインBが提供されるのであって、プログラムAのライセンスがGPL化されることはあり得ません。考え方が逆で「non-freeなプログラムAに対してGPLedなプラグインBを提供できない。」が正解でした。つまり「Bを提供するためには、AをBSD(など)にすればよい」ということになりました。 ここでさらに私が誤解して「B->A->EというGPLの伝搬」が起こると思っていたのに「AをBSDにしたことで止まった」と思ってしまったわけです。実際にはプラグインEがBの機能を使用しない限り、Aにのみ依存しているので、感染しなくなったにすぎません。 またプラグインBの機能をつかったRubyスクリプト(or Rubyプラグイン)はインタープリタに対する入力であるので、GPL化しません。 http://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL 結局、上記の目標を達成するには、以下の打開策が考えられます。 (1)Rubyのnon-GPLed化 (2)Aのnon-copyleftなGPL適合ライセンス化 打開策1も2もどちらもそれなりに容易にできそうな気がします。 よって、問題は解決されました! 長いこと質問にお付き合いいただいてありがとうございました。 #数日以内に回答を締め切らせていただきます。