内容に「General」と「Public」と「License」を含む
11〜14件目 / 14件
前へ 1 2

 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

 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

 著作権についてのウンチク(またはGPL解説vol.0) / マルパチ 

さて前回の予告通りGPL(General Public License)の解説に入ろうとしたわけですが...その前に著作権についてうんちくをたれた方が良いかと思ったんで今回は著作権について。
今回の記事は法律を勉強したことのある人にとっては当たり前の内容。法律のわからないプログラマー向けにプログラマーとは切っても切れない関係にある著作権について基本的な講釈をたれることが目的です、はい。

wikipediaによると「著作権(ちょさくけん)とは、言語、音楽、絵画、建築、図形、映画、写真、コンピュータプログラムなどの表現形式によって自らの思想・感情を創作的に表現した者に認められる、それらの創作物の利用を支配することを目的とする権利をいう」のだそうです。
wikipediaの説明は必要にして十分なものですが、法律の心得がない人向けの説明としてはちょっと不親切。

そこでかみくだいて一番大事な要点を一つだけ挙げます。
著作権の一番大事なところはソースコードを「支配」できるということ。
著作権が支配権であるということは非常に重要。いきなり支配とかいわれても何がなにやらだと思うので具体例を挙げます。

例えば自分のPCを赤の他人が勝手にいじくってHDDの中身をのぞいていたらどう思いますか?
大方の人は腹が立って「やめろ!!」と言うはずです。このやめろと言う根拠になるのが「支配権」。PCを所有する人はPCに対する所有権を持っているわけですが、この所有権は著作権と同様に「支配権」であるとされています。
ですからプログラマーは自分の作ったソースコードを勝手にいじくったり勝手に利用したりする他人に対して「やめろ!!」と言えるわけですね。これが支配権であるということであり、著作権のキホンのキです。
(もちろん実社会のトラブルは上記のたとえみたいに単純ではありません。「やめろ!!」と言えるか言えないかは身近な法律家に実際の状況を話して判断を仰がなければならないわけです。)

ところがネットを見ると著作権フリーのソースコードが大量にあふれています。
ちょっと待てと。ソースコードは作成者(=著作権者)に支配されているのではないのかと。フリーのソースコードを自分のソースに組み込みたいのはやまやまだけど、後から「やめろ!!」と言われるのは困るぞ。
この問題を解決するために作られたのがGeneral Public License、略してGPLです。というわけで次回こそはGPLについて解説していきたいと思います。
2010/01/06(Wed) 12:31:50

 いやー、すげぇな / マルパチ 

前回の投稿から2年以上が経っちゃったんですね。

あれから大学卒業したり、院に進学したり、一生懸命やったけど結局辞めちゃったり、就職決まったりと盛りだくさんだったわけです。久々の投稿なんで思い返してみると、いやー、すげぇな!これほんとに2年以内の出来事?

てなわけでこれからはちょくちょく書いていきたいと思います。
次回はプログラムをやる人にはなじみ深い(?)であろうGeneralPublicLicenseについて書こうかな。需要があると良いんだけど(笑

2009/12/29(Tue) 22:58:31