GPL解説vol.1―GPLとはなんぞや?― / マルパチ 

さて今回からGeneral Public License(=GPL)について触れてゆきたいと思います。

ソースコードの作成者は作成したソースコードに対して著作権を有します(著作権法17条)。だからプログラマーが汗水垂らして作成したソースコードにタダ乗りする奴に対しては「やめろ!!」と言えるわけですね。これは前回説明したとおり。

とはいえプログラムというのは多くの人の手が加わることによって進歩してゆくもの。他人の作ったソースコードに手を加えたいと願う人にとって現状の著作権法は満足できる法律ではないわけです。→参考リンク
そのように願う人たちが生み出したのがGPLというわけですね。

GPLは代表的なコピーレフトのソフトウェアライセンスの一つです。
(いきなり「コピーレフト」だの「ライセンス」だのいってもわからないと思いますが説明すると長くなりますし本稿を理解する上では不要なので説明しません。いちおうWikipediaへのリンクだけ張っておきます。)

GPLの肝はソースコードに対する著作権が生きているということ。つまりソースコードは著作権者に支配されているにもかかわらず誰もが自由にソースコードを使うことができるのです。
なんでやねん、と思うでしょう?からくりは単純です。ソースコードを支配しているということはソースコードを自分の好き勝手に処分して良いということです。だから自分の作成したソースコードを自由に実行・複製・改変・再配布しても良いと許すことも自由なのです。そしてソースコードの自由な実行・複製・改変・再配布を許諾する文書こそがGPLなのです。

ここまで読み進めてきた人の中には疑問に思う人もいるかもしれません。わざわざGPLなんて小難しいものを使わなくても「著作権を放棄する」と言ってしまえば同じことなのではないかと。
実はそのような方法は既にあります。「パブリックドメイン」と呼ばれる方法がそれです。
パブリックドメインはパブリックドメインで悪くない方法なのですが、ある重大な欠陥があります。

例えば著作権の放棄された鈴木さん作成のパブリックドメインソフトウェアAがあるとします。Aは佐藤さんに改変されてA´になりました。田中さんはA´をさらに改変したいと思いました。
しかし田中さんはA´を改変できないのです!
なぜならA´の著作権は佐藤さんが持っているから。鈴木さんはせっかくソースコードの著作権を放棄したのに、これでは著作権の捨て損です。
そこでGPLはこのように要求します。
「ソースコードの改変は許すけれども条件としてA´にもGPLを使いなさい(GPLv3第5条1パラグラフc項)。」
これにより田中さんはA´を自由に改良することができるというわけです。
(余談ですがGPLライセンスのコードを一行でも利用するとソースコードの全てにGPLライセンスを使わなければならなくなるわけです。伝染病に似ていると言うことで「ライセンス感染」などと皮肉る人もいるようです。)

GPLはソースコードを実行・複製・改変・再配布する人に対してこの他にもいくつかの条件を設定しています。その条件については次回以降詳しく解説してゆきたいと思います。
とりあえずはmagicienがbisonのGPLライセンスに苦しんでいるようなので「GPLライセンスプログラムの出力物にGPLライセンスが適用されるか」をテーマにいきます!
2010/01/08(Fri) 18:19:06