RubyとGPLv3

Ruby(CRuby)のライセンスの話。
7
Akinori MUSHA @knu

@yukihiro_matz COPYINGとCOPYING.jaの違いは埋めたいですね。どっちが正式なライセンスとは言及がなく、.jaの方にはまつもとさんの名前が入っていないので、日本語話者に関しては微妙な気がします

2010-06-09 10:10:06
Akinori MUSHA @knu

@yukihiro_matz あと、仮に主要な部分がGPLv3でリライセンス可能だとしても、GPLv3互換でないソースを含み、OpenSSL問題もあるので、結局(バイナリ)再配布に関する問題は解決しないのが悩みですね…

2010-06-09 10:15:08
成瀬 @nalsh

@knu OpenSSLはシステムライブラリ条項があるのでUnixでは実は問題なかったり

2010-06-09 11:34:46
Akinori MUSHA @knu

@nalsh FreeBSDだと、base systemにもあるけど、古いリリースでも新しいOpenSSLを使いたくてパッケージから入れるケースがあったりするし、すべてがパッケージなLinux distroではどこまでがシステムなのかとか、やっかいです

2010-06-09 11:43:41
Akinori MUSHA @knu

もっとも、OpenSSLプロジェクト自身が言っていることを都合良く鵜呑みにして立ち入らないのが正解とも言えるか

2010-06-09 11:52:10
成瀬 @nalsh

@knu Major Componentにportsなども含まれていると解すんですかねぇ。しかし、そうすると何でもありになるな

2010-06-09 11:54:01
成瀬 @nalsh

@knu まぁ、実務的にはそういうことになるかと思います

2010-06-09 11:54:43
Akinori MUSHA @knu

(が、他のGPLv3プロダクトと結合したときに、そのプロダクトの主からつつかれたら通用しないかもしれない)

2010-06-09 11:54:48
成瀬 @nalsh

@knu GPLv2な拡張ライブラリとGPLv3な拡張ライブラリをリンクするともうどうしようもない

2010-06-09 12:02:13
Akinori MUSHA @knu

実務的には、疑わしい部分はソース配布物をインストール手順書とともに納品して、「顧客の監督の下」ビルド・インストール作業を代行、という形を取っているなあ。しかし組込機器なんかではそうは行かないケースが続出だろう

2010-06-09 12:03:19
Hiroshi Nakamura @nahi

@knu 自分の理解が怪しくなってきたので確認させていただきたいのですが、ext/opensslはRuby'sなので、これはライセンスの問題はないですよね?で、CRubyとしては別に問題ないんだけど、opensslと一緒に配布する人が困る、と。実はCRuby的にももっとやばい?

2010-06-09 12:08:18
Akinori MUSHA @knu

ところで、GPLv2+に変更するならいっそLGPLv2+にした方が使い勝手はよさそうだが、一般的な商用の組込用途はどう考えているんだっけ。Ruby'sを採用するとGPLライブラリとはリンクできず、GPLを採用すると配布時に変更部分の非公開ができなくなる

2010-06-09 12:09:17
Hiroshi Nakamura @nahi

なんだか切り詰めたらよくわからなくなった。実はjruby-opensslでちょっともめてて、こっちは本格的にめんどいのでちゃんと理解しないといけないのでした。

2010-06-09 12:11:06
Akinori MUSHA @knu

(GPLv3がからむとシステムライブラリ以外はぜんぶGPLv3に染まらざるを得ないので、ここではGPLv2と折り合う世界の話)

2010-06-09 12:11:38
Akinori MUSHA @knu

@nahi バイナリ配布時の問題ですね。ソース配布は問題ないです。GPLv3でも、エンドユーザはどう使っても自由です。

2010-06-09 12:12:38
Hiroshi Nakamura @nahi

@knu ありがとうございます。CRubyバイナリを、opensslバイナリと一緒に配布する人が困るので、CRuby側でなんとかできないか、という話ですね。個人的にはOpenSSLの再配布は怖くてとてもできないので、あまり重要視してないんですが、やはり必要なのかしら。

2010-06-09 12:16:16
成瀬 @nalsh

@knu LGPLにする提案をするんだったらBSDLにしましょうぜ。で、GPLなライブラリをリンクした時点で染まるのでしないのが正解でしょう

2010-06-09 12:16:32
Akinori MUSHA @knu

@nalsh しかしBSDLとのdualだとみんなそっちを採用するからRuby'sライセンスの独自の条項が無意味になっちゃうんじゃないかな

2010-06-09 12:20:08
Hiroshi Nakamura @nahi

OpenSSLを理解して自信もって影響度分析したりパッチあてたりできる人なんてほとんど居ないでしょ?メンテできないんだから再配布なんてするなよみんな!gnutlsもJCEも同様。

2010-06-09 12:20:42
Akinori MUSHA @knu

@nahi あ、ここでext/opensslが問題になると言っているのは、CRubyとの直の関係というより、ext/readlineとかext/gdbmなどでGPL(v2以前も)なライブラリとリンクされてしまう場合です。

2010-06-09 12:21:23
Hiroshi Nakamura @nahi

@knu そうですね。CRubyとして、配布者さんが気軽に配布できないようなものだと困りますね。でもOpenSSLについては、CRuby側は「配布者さん任せ」でいいと思うんですよ。配布者さんはOpenSSLについて、CRuby以外にもいろいろ抱えてるはずなので。。。

2010-06-09 12:24:55
Akinori MUSHA @knu

@nahi はい。GPL絡みの問題は複数あって、Ruby自体をGPLv3互換にしても片付かない問題が残るなあという文脈での例示でした

2010-06-09 12:46:43
成瀬 @nalsh

@knu Ruby'sは名前変えればなんでもあり条項があるのでそちらに意味はあるんじゃないですか。ただ、Ruby本体にBSDLのコードが結構あるのでそもそもそういった条項の範囲は事実上BSDLの枠内に縛られてるんですよyね

2010-06-09 14:09:09
Akinori MUSHA @knu

@nalsh いや、逆です。Ruby'sライセンスは「Rubyの名前で再配布するなら変更点を明らかにしてね(大雑把)」という(BSDLにはない)縛りを含み、かつ、alternativeであるGPLはそれを包含するものなので、dualのどちらを選んでも意図通りというわけです。

2010-06-09 14:15:08
Akinori MUSHA @knu

@nalsh ところが2-clause BSDLを選択可能にすると、改変物を変更点を明らかにすることなくrubyの名前で再配布できることになり、それでは実装と結びついた形のrubyという名前を守るという意図(ではないかと推測)が守れないんじゃないかと。

2010-06-09 14:17:31