From: Taku Nakajima Date: 2002-04-04T11:11:48+09:00 Subject: [ruby-list:34768] Re: スクリプティング言語における GPL 中島@ブレーンです。 > > (1) GPLのソースをrequireするプログラムは必ずGPLになる > → No 一応、このML内では異論がなかったようなので、これを根拠として、私として はWalrusとアプリケーションのライセンスについて、次のようにしたいと考え ています。 (A) WalrusはGPLでライセンスする (B) Walrusの元で動作するアプリケーションのライセンスはアプリの開発者が自由に設定できる (C) Walrusの配布物と別のソースになっていれば、別個の配布物(アプリ)と考える これは、GPLの文面とは矛盾しませんが、立場(解釈)によってGPLの理念に反す ることかもしれません。 (C)を許すと、別のソースファイル上でのクラスの再定義等が可能になります ので、実質的にはWalrus本体を改造してその改造部分をGPL以外のライセンス で配布することが可能になります。例えば次のような方法です。 (walrus.rb) class HtmlDocument def some_method .... end end (super-walrus.rb) require "walrus.rb" class HtmlDocument def some_method # オリジナルを修正する(=実質的にはパッチあて) ..... end end walrus.rbがGPLだとして、super-walrus.rbは、実質的にはWalrusを改造して 作成したソフトウエアであるのに、別個に配布すれば、GPLに縛られないこと になります。極端に言えば、Walrusのアーカイブと一緒にCDに入れてインストー ラーをつけて商用ソフトとして販売することも可能です。 私としては、これはしょうがないと思っています。 もしここを縛ろうとして「super-walrus.rbのようにWalrus内のclassを改造す るものは、Walrusと不可分のプログラムである(だからGPLに汚染されている)」 と主張すると、アプリケーションに対しても同様に「そのアプリケーションは Walrusと不可分のプログラム(だからGPLに汚染されている)」という主張が可 能になります。 つまり、上記の(A)と(B)が矛盾してしまい、ユーザとしては安心してアプリケー ションを開発できないのではないかと思います。(普通はアプリケーションは 再定義でなく継承で作成しますが、何か技術的な理由で再定義を使うかもしれ ないし、再定義と継承はライセンス的には同じであるという主張が成り立つか もしれません) 私としては、(B)の方を優先したいので「何がWalrus なのか」という問題には、 上記の問題は承知の上で、Walrus のクラスでなくWalrusのソースファイルが Walrusであるという立場をとりたいと思っています。 しかし・・・ > この問題には、「コミュニティルール」の問題として、GPL以外の解決が必要 > だと思われます。 と考えた場合、Rubyで書かれた他のGPLのソフトウエアのライセンスが、 Walrusにおける私の見解を根拠として侵害されることが心配です。 一般論としても、Rubyで書かれたアプリケーションは、何も考えなくてもRuby の動的な特性を生かして柔軟なカスタマイズを許すものになると思います。そ のような特性を意図的に殺さない限り、似たような問題が起きてくると思いま す。 できれば、Walrus単独の問題でなく、Rubyアプリケーション一般の問題として、 この問題について意見を聞かせてください。 -- 「stableでなければ生きていけない。unstableでなければ生きてる意味がない」 中島 拓 (株)ブレーン 研究部 (tnakajima@brain-tokyo.jp) http://www.brain-tokyo.jp/~research/koutetu/