この連載では、企業がオープンソースソフトウェアとうまく付き合い、豊かにしていくために最低限必要なライセンス上の知識を説明します。(編集部)
いまや、企業が何らかのソフトウェアを開発するときに、オープンソースソフトウェア(OSS)との付き合いを考えずには済まない時代になりつつあります。私は、企業の製品開発者向けにOSSライセンスコンプライアンスに関するコンサルティング・サービスを行っていますが、その中から得られた経験を踏まえながら、OSSとうまく付き合い、コミュニティに還元していくために重要と考えられるポイントを紹介していきたいと思います。
OSSライセンスのセミナーを実施すると、意外なことに「OSSライセンスの考え方は1つに限らないことが分かった」という感想をいただくことがあります。それを踏まえて前回は、これまで主になされてきた「要件」に基づく分類ではなく、「考え方」に基づいて、OSSのライセンスを3つに分類して紹介しました。その内容は以下のとおりです。
|
||||||||||||
表1 OSSライセンスの考え方(繰り返しになりますが、現実にはこの3つに分類できないOSSライセンスもあるでしょう。中には、表面的には同じような要件を備えていても「そんな考え方で作成したライセンスではない」とお怒りになる著作権者(開発者)がいらっしゃるかもしれません。ただ、ここはあくまで入門者向けの説明として、こういう分類を許していただければと思います) |
今回は、上記のうち「GNU系ライセンス」の考え方について紹介します。これは表1では「互恵のLicense」とも分類されます。ソースコードの開示を条件に、著作物を受け取った受領者にもまた、第三者に著作物を頒布(譲渡)する権利を与えるというものです。つまり、ソースを受け取ったら、自らもソースを与えるという「互恵の関係」を求めるライセンスです。Copyleft(コピーレフト)とも表現されます。
GNU系のOSSライセンスのうち主なものには、以下の2つがあります。
このうち、GCC、Emacs、glibcはGNU project(http://www.gnu.org/index.ja.html)が開発したものです。LinuxカーネルおよびOpenOffice.orgはその後に開発され、これらのGNU系ライセンスを採用しました。
このようにGNU系ライセンスは、もともとGNU projectが開発したフリーソフトウェア(OSS)を、同projectが望む形で扱ってほしいと考えために作り出されたライセンスなのです。
1980年代前半、Richard M. Stallman氏がMIT AI研究所に在籍していました。当時、MIT製のX11が商用製品に組み込まれ、バイナリコードのみが配布されるという状況を見て、苦々しく思ったそうです。
もともとX11はMITで開発され、使用許諾条件付きでフリーソフトウェアとしてリリースされましたが、すぐに多くのコンピュータ関連企業によって採用されました。彼らはXを自分たちの独占的なUNIXシステムにバイナリ形式で組み込み、同じく非開示契約によって覆ってしまったのです。これらのXのコピーは、UNIXと同様、もはやフリーソフトウェアではなくなりました。
また、それまでソースコードを共有してお互いに助け合っていた開発者たちが次々に企業に取り込まれたため、コミュニティが成り立たなくなってしまいました(「The GNU Project」の「プログラムはどのユーザーにもフリーなの?」参照)。
そこで、もう一度、ソフトウェア共有コミュニティを作るために、前回紹介した「ソフトウェアの4つの自由(フリー)」を実現するフリーソフトウェアの開発を始めたことがGNU projectの始まりだそうです。
このソフトウェアの自由を守るために、つまり、フリーソフトウェアがプロプライエタリな商用プログラムに取り込まれてしまわないために生み出したのがGPLというライセンスといえます。
繰り返しますが、ソフトウェアの4つの自由とは以下のとおりです。
これらを分かりやすく理解するために、私は
「デバッグのために必要なソースを得られる状況にするためのもの」
と説明しています。
プログラマーならば、ソフトウェアを実行するのは当たり前として、実行してみたら不具合が気になった、機能不足が気になった、という経験を何度もしたことがあるでしょう。時には「ソースコードさえ手に入ればデバッグして改造するのに……」と思うかもしれません。
こんなふうに、実行形式のバイナリコードを受け取っても、ソースコードが手に入らないがために歯がゆい思いをしないために考えられたライセンスがGNU GPLである、と解釈すると、GPLが求めている条件の内容が想像しやすいかと思います。
デバッグに必要なソースという観点で見ると、FAQに書かれるまでもなく、以下のような要件も推測できると思います。
注1:私は「ソースの公開」ではなく「ソースの開示」という表現を用いることにしています。GNU GPLの第3項を読むと分かるように、条文上は、ソースを広くWebなどで公開することまでは直接求めていないからです。しかし、バイナリの入手者がソースの開示を受け、それを二次的にWebなどに公開することを禁止することはできません。
Copyright © ITmedia, Inc. All Rights Reserved.