Shiro Kawai
shiro****@lava*****
2003年 11月 18日 (火) 12:17:05 JST
詳しい解説をありがとうございます。 「ソースコード」の著作権および配布条件に関しては理解できている と思うのですが(実際、ext/dbm/gdbm.scmはBSDライセンスにしています)、 今回は「コンパイルされたバイナリrpmの配布条件」に関して混乱して いました。 混乱の元は2つあるように思えます。 まず、コンパイルされたGauche-gdbm.rpmは生成時にgdbm.hを #includeしています。これによって、Gauche-gdbm.rpmは "based on gdbm" となるのではないか、という疑問がひとつ。 この点がクリアできたとして、次の疑問は、Gauche-gdbm.rpmを 普通に作成すると、それを実行するためにはgdbmが要求されるわけです。 GPL第2項の字面を解釈すれば、「Gauche-gdbm.rpmそのものは gdbmを含んでいるわけではないのでBSDでOK、但しユーザは プログラムを使う時点でgdbmと "combine" することになるので、 その時点でGauche-gdbm.rpmの方がGPLコンパチでないとまずい。 すると、Gauche-gdbm.rpm自体がBSDであるからといって、それを 誰かがプロプラなプログラムに組み込んで配布したとしたら、 そのプログラムは事実上、実行することはできないプログラムとなる」 となりそうなものです。FAQの項目 http://www.gnu.org/copyleft/gpl-faq.html#IfLibraryIsGPL はそのへんのことを言っているのでしょうか。 (つまり、「GPLライブラリを利用するプログラムは、それ自身のライセンスは そのプログラムの著作者が決められるけど、それがGPLコンパチでなければ 実行できないので意味がない。さらに、そのプログラムがいくら利用されても 常に実行可能であるためには、結局copyleft的なライセンスしか意味を なさなくなる」ということなのかと)。 なお、ここでrpmにこだわっているのは、それが「GNU gdbmパッケージへの 依存」という情報を明確に含んでいるからです。ただのバイナリですと、 例えばgdbmとバイナリコンパチなlibgdbm.soを別に作ったら…という具合に ややこしくなりそうです。 --shiro