GPL解説vol.2―GPLライセンスソフトウェアが出力したデータとGPL― / マルパチ 

前回説明したようにGeneral Public License(=GPL)はGPLライセンスのプログラムを利用する人に対していくつもの条件を要求しています。条件に違反した人はプログラムの支配者である著作権者から「やめろ!!」と言われかねません。有り体に言えば法廷で争うというやつです。
条件はGPLを読めば全部書いてあるのですが、見てのとおりGPLは法律文書ですしこの手の文書になれていない人にはかなり読みづらいでしょう。そこで今回以降ひとつひとつの条件について詳しく触れてゆきたいと思います。
記念すべき最初のテーマは前回予告したとおり「GPLライセンスソフトウェアが出力したデータにもGPLが適用されるか?」でいきます。

例えばあなたがGPLライセンスのエディタを使ってコードを書いたとしましょう。エディタはあなたの書いたコードをファイルとして保存(出力)します。この場合あなたの書いたコードにGPLライセンスを適用しなければならないのでしょうか?
GPLライセンスを適用しなければならないと言うことはつまり、あなたのソースコードをフリーソフトウェアにしなければならないということです。フリーソフトウェアにしなければならないにもかかわらずフリーソフトウェアにしないことはGPLの条件に違反します。もしあなたのしたことがGPLの条件に違反するとしたら、あなたはエディタの著作権者から訴訟を起こされる危険さえあります。…なかなかに恐ろしい話です。

まぁ不安をあおるのも良くないので答えを言ってしまいましょう。上記の例えではあなたはGPLを適用する必要は全くありません。→参考リンク(/)
なぜならエディタの著作権者はエディタそれ自体に対してのみ著作権を持っているからです。あなたがエディタに入力したコードはあなたの著作物です。あなたが支配するあなたのコードに対してGPLが難癖をつけることはできないというわけです。だからあなたが自分のコードに対してGPLを適用しようがすまいがあなたの勝手なのです。
ですがここにもう一つの例を挙げたいと思います。

GPLライセンスのコンパイラがあなたの作ったプログラムの中にコンパイラの一部(パーサなど)をコピーしたとしたらどうでしょう?
実はこの場合あなたの書いたプログラムにはGPLが適用されるのです。というのもGPLライセンスのプログラムAから出力されたBがAの一部を含む場合には、BにもまたGPLが適用されるからです(GPLv3第2条1パラグラフ3センテンス)。→参考リンク(/)。
もしコンパイラがしでかしたことに気づかずあなたのプログラムをフリーソフトウェアにし忘れたら…。プログラマーの皆様は変な争い事に巻き込まれぬようくれぐれもお気をつけ下さい。

とはいえ例外もあります。bisonがその一つです。(ただしver1.24以降のみ)
bisonはあなたのプログラムにbisonの一部であるパーサプログラムをコピーします。しかもbisonはGPLライセンスソフトウェアです。するとあなたのプログラムにはGPLが適用されるはずなのですが、GPLは適用されないのです!(ただしver1.24以降のみ)
どういう事かといいますと、GPLは著作権者に対してGPLの条件に例外を設けることを認めているのです(GPLv3第7条1パラグラフ)。そしてbisonの著作権者はバージョン1.24以降のbisonが出力したパーサプログラムを非フリーソフトウェアに使用することを許諾する例外を設けています。→参考リンク
バージョン1.24以降のbisonを使っている人はbisonの出力したパーサプログラムのソースコードをのぞいてみてください。以下のようなコメントが書き込まれているはずです。
"As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice..."
これはつまりバイソンのパーサプログラムを含んだあなたのソフトウェアをあなたの好きな条件で配布して良いということです。ですからあなたのソフトウェアを非フリーソフトウェアにしてもよいのです。

うーん、これでmagicienの疑問が解決したらいいんだけど…。

次回のテーマは「GPLライセンスソフトウェアを使ったら何をしなくてはならないのか」をテーマにしたいと思います。が、magicienから要望があったら他のテーマにするかもしれません。
2010/01/09(Sat) 18:30:25