[#34204] 「プログラミング Ruby 」 p.257 defined? はメソッド? — Noritsugu Nakamura <nnakamur@...>

15 messages 2002/03/05
[#34205] Re: 「プログラミング Ruby 」 p.257 defined? はメソッド? — nobu.nakada@... 2002/03/05

なかだです。

[#34244] しぶらぐっ議事録。 — rubiben <ozaki@...>

48 messages 2002/03/08
[#34250] Re: しぶらぐっ議事録。 — Minero Aoki <aamine@...> 2002/03/09

あおきです。

[#34246] Re: しぶらぐっ議事録。 — rubikitch <rubikitch@...> 2002/03/08

From: rubiben <ozaki@ruby-lang.org>

[#34448] 文字コード混在スクリプトの実行 — Noritsugu Nakamura <nnakamur@...>

14 messages 2002/03/16

[#34453] カレンダー文字列を作るメソッド — Take_tk <ggb03124@...>

たけ(tk)です。

13 messages 2002/03/16

[#34534] スクリプティング言語における GPL — Taku Nakajima <tnakajima@...>

中島@ブレーンです。

26 messages 2002/03/21

[#34552] Re: 1.7 に関して — "井上 浩一" <kyoui32@...>

井上です。

22 messages 2002/03/22
[#34556] Re: 1.7 に関して — "U.Nakamura" <usa@...> 2002/03/22

こんにちは、なかむら(う)です。

[#34590] Ruby FAQ (Re: 1.7 に関して) — TAKAHASHI Masayoshi <maki@...> 2002/03/22

高橋征義です。

[#34570] cgi.rb+ イテレータ — FUJIOKA Takeyuki <fujioka@...>

藤岡です。

15 messages 2002/03/22

[#34676] 安心できる Marshal と、 Ruby バージョンの検査法 — MALTA Koji <malta@...>

丸田と申します。

62 messages 2002/03/30
[#34678] Re: 安心できる Marshal と、 Ruby バージョンの検査法 — Koji Arai <JCA02266@...> 2002/03/31

新井です。

[#34682] Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/03/31

丸田です。 MarshalとRUBY_VERSIONの話題を分離します。

[#34694] Re: Ruby バージョンの検査法 — WATANABE Hirofumi <eban@...> 2002/04/01

わたなべです。

[#34695] Re: Ruby バージョンの検査法 — shukaku@... 2002/04/01

At Mon, 1 Apr 2002 16:06:23 +0900,

[#34697] Re: Ruby バージョンの検査法 — WATANABE Hirofumi <eban@...> 2002/04/01

わたなべです。

[#34714] Re: Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/04/01

丸田です。

[#34719] Re: Ruby バージョンの検査法 — HIDAKA Takahiro <cv8t-hdk@...> 2002/04/02

 ひだかです。

[#34738] Re: Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/04/02

丸田です。

[#34743] Re: Ruby バージョンの検査法 — matz@... (Yukihiro Matsumoto) 2002/04/02

まつもと ゆきひろです

[#34748] Re: Ruby バージョンの検査法 — "NAKAMURA, Hiroshi" <nakahiro@...> 2002/04/03

なひです。

[#34760] Re: Ruby バージョンの検査法 — Koji Arai <JCA02266@...> 2002/04/03

新井です。

[#34765] Re: Ruby バージョンの検査法 — "U.Nakamura" <usa@...> 2002/04/04

こんにちは、なかむら(う)です。

[#34776] Re: Ruby バージョンの検査法 — Tanaka Akira <akr@...17n.org> 2002/04/04

In article <20020404095542.7155.USA@osb.att.ne.jp>,

[#34681] 書籍に関する質問です — Nobuhide Kanagawa <nobuhide@...>

こんにちわ。

17 messages 2002/03/31

[ruby-list:34534] スクリプティング言語における GPL

From: Taku Nakajima <tnakajima@...>
Date: 2002-03-21 05:29:14 UTC
List: ruby-list #34534
中島@ブレーンです。

最近、ある方からWalrusのライセンスについて疑問を提起されました。自分な
りに調べてみたのですが、Rubyのようなスクリプティング言語について、GPL 
がどのように適用されるか、ということがわからず解決できないでいます。ど
なたか詳しい方のアドバイスをいただきたいのですが、よろしくお願いします。

○ 問題の概要

Walrusは、現在GPL2の元で公開しています。Walrus自体は今後も永久的にオー
プンソースソフトウエアであり続けるつもりですが、問題は、Walrusを使って
開発したアプリケーションのライセンスです。WalrusがGPLだと、Walrusの元
で動作するアプリケーションも自動的にGPLになってしまい、商用利用は事実
上不可能になるのではないかというのが、問題の指摘の内容です。

問題は二つに分かれると思います。

(1) GPLのソースをrequireするプログラムは必ずGPLになる
(2) 開発されたプログラムがGPLであると再配布をしなくてもソース公開の義
    務が生じる

私としては、Walrusは商用目的でも使ってほしいので、もしこの指摘が正しけ
ればライセンスを変更する必要があると思いますが、本当にそうなのか確認し
たいのです。

○ GPLのソースをrequireするプログラムは必ずGPLになるのか

Walrusの元でのアプリケーションは、次のようにWalrusが提供するclassを継
承して作成されます。

  # hello.rb
  require "walrus/walrus"
  class HelloDocument < Walrus::HtmlDocument
    def greeting
      "hello"
    end
  end

このソースをWalrusがロードし、環境定義ファイルという別のファイルの指示
に従って、HelloDocumentクラスのオブジェクトが生成され、そのオブジェク
トがWalrusの他のオブジェクトと共に動作します。

これについて、私は次のように考えていました。

   Walrusとhello.rbの関係は、ワープロと文書のようなものである。ワープ
   ロがGPLで、ワープロ文書の中にマクロのプログラムが書かれていて、その
   プログラムがワープロと同一のプロセス(メモリ空間)で実行されるとして
   も、文書(の中のマクロ)は「それ自体独立で異なる作成物」であり、GPLに
   する必要性はない。同様にhello.rbはWalrusが処理するコンテンツであり、
   たまたま、Walrusを実装した言語と同じ言語で書かれているだけである。
   つまり、hello.rbは「それ自体独立で異なる作成物」でありWalrusがGPLで
   あることからライセンスについて制約を受けることはない。

Exerb(rb2exe)のように、スクリプトとruby本体を一体化するツールを使って、
Walrusを単体のバイナリにしてしまえば、この意味が明確になると思います。

一方で、指摘されて気がついたのですが、次のような解釈もなりたちます。

   Walrusとはライブラリであり、hello.rbはこのライブラリを利用するソフ
   トウエアである。この場合は、ライブラリをリンクして作成されたバイナ
   リに対してライブラリのGPLが適用される(伝染する)ことに準じて、
   hello.rbもGPLになると考えるべきである。

これを一般化すると、「GPLのソースをrequireするプログラムは必ずGPLにな
るのか」という問題になります。これはperlやpythonでも同様に発生すること
ですから、どこかに答えがあると思ったのですが、見つけられませんでした。

○ 再配布をしない時のGPLによる制約

そこで、仮にアプリケーションがGPLになるとしたらどうなるか考えてみたの
ですが、そこでまた難問が発生しました。ユーザが外部に公開したくないアプ
リケーションをWalrusで開発できるのか、ということです。

ユーザがソフトハウスに自社の業務用のアプリケーションを発注して、ソフト
ハウスがWalrusで開発し、そのソフトにGPLが適用されたとします。すると、
GPLによって、以下の権利が保証されます。

  (1) ユーザはソースをもらう権利がある
  (2) ユーザはこのアプリを(GPLのもとで)再配布する権利がある

インタープリタ言語ではソース=実行形式ですから、(1)は常に満たされている
ので、意味がありません。

問題は(2)の方ですが、もしユーザがこのアプリケーションを再配布しようと
すると、そこでユーザの方が配布元になるので、いろいろな制約が発生します
が、一般的にはユーザは自社専用のアプリを再配布しようとは思いません。再
配布しようとしなければ(2)の方も無意味になります。

それで、仮にアプリケーションがGPLになるとしても実質的な問題はないと、
私は判断したのですが、「GPLの前文によると、この場合、第三者が配布元に
ソースを請求できる(という解釈が一般的である)」という指摘を受けました。

そんな解釈があるとは知らなかったのですが、これを主張する某氏は、GPLを
原文で読んで、それなりの知識を持っておられるようです。そのような解釈は
本当に一般的なのでしょうか?

なお、私と某氏とのやりとりは、以下の掲示板の36番以降で参照することがで
きます。

http://210.155.146.159/bbs/s27/

ただし、最初の方は私(ハンドル名walrus)が問題点をよく把握できないまま答
えていますので、散慢なやりとりになってしまっています。

-- 
「stableでなければ生きていけない。unstableでなければ生きてる意味がない」
中島 拓 (株)ブレーン 研究部 (tnakajima@brain-tokyo.jp)
http://www.brain-tokyo.jp/~research/koutetu/

In This Thread

Prev Next