- 2024年10月
- 2021年5月
- 2020年8月
- 2020年6月
- 2020年5月
- 2019年1月
- 2018年8月
- 2018年6月
- 2018年5月
- 2018年3月
- 2018年1月
- 2017年12月
- 2017年11月
- 2017年10月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2016年11月
- 2013年9月
- 2013年8月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年11月
- 2012年10月
- 2012年9月
- 2012年6月
- 2012年5月
- 2012年4月
- 2012年2月
- 2011年7月
- 2011年5月
- 2011年4月
- 2011年2月
- 2010年12月
- 2010年11月
- 2010年10月
- 2010年9月
- 2010年8月
- 2010年7月
- 2010年6月
- 2010年5月
- 2010年4月
- 2010年3月
- 2010年2月
- 2010年1月
- 2009年12月
- 2008年2月
- 2008年1月
- 2007年12月
- 2007年5月
- 2007年4月
- 2007年3月
- 2007年2月
GPL解説vol.6―GPLの新しいバージョン― / マルパチ
前回の記事でGPL(General Public License)の古いバージョンの取り扱いについて解説しました。GPLにバージョンがあるということは、今後GPLの新しいバージョンであるバージョン4がリリースされる可能性が高いということです。前回の記事を読んだmagicienから「新しいバージョンの取り扱い」について質問があったので、今回はこれをテーマにしたいと思います。
GPLv2(=GPLバージョン2)に改訂版に関する第9条があるように、GPLの現行バージョンであるGPLv3(=GPLバージョン3)にも改訂版に関する14条があります。そしてGPLv3第14条2パラグラフは前回説明したGPLv2第9条2パラグラフと同様の規定です。
つまりあなたが自らの開発したソフトウェアに対しGPLバージョン3又は後発の全てのバージョン(="or any later version")によるライセンスをした場合、あなたからソフトを受け取った人にはGPLバージョン4に従うことを選択する権利が発生してしまうのです。
「わざわざ著作権告知に"or any later version"なんて文言を入れやしないよ」と思うかも知れませんが、落とし穴があります。
GPL作成者であるフリーソフトウェア財団(=FSF)はGPLを利用するソフトウェア開発者に対して著作権告知のテンプレートを用意しています。このテンプレートにはしっかりと書いてあるのです。"or any later version"の文言が。
深く考えずにこれをコピペすると、あなたのソフトウェアに「いつの間にかGPLバージョン4が適用されていた」という事態が発生します。
このような事態は回避したいという方も多いでしょう。
あなたが開発したソフトウェアなら、FSFの著作権告知のテンプレートから"or any later version"の文言を削除してバージョン3のみに従うよう指定することで、GPLバージョン4の適用を排除できます。
しかし他人が開発したソフトウェアの著作権告知に既に"or any later version"の文言が入ってしまっている場合、改変者・再配布者であるあなたは"or any later version"の文言を削除することができません。なぜなら第3回及び第4回にて解説したように、あなたには「適切な著作権告知(appropriate copyright notice)」を保持するという条件が課されているからです(GPLv3第4条1パラグラフ及びGPLv3第5条1パラグラフ)。すると「いつの間にかGPLバージョン4が適用されていた」という事態が発生しうるわけですね。
ソフトウェアに適用されるGPLのバージョンが自分では決められない、ということを不安に思われるかも知れません。未だにリリースされていないライセンス文書がソフトウェアに適用されるかもしれないというのは、非常にリスキーです。なぜならライセンス文書がどのような内容になるかわからない以上、あなたに不利益をもたらす条項が挿入されないとも言い切れないからです。
でもGPLに限って言えばそのような法的リスクはありません。仮にGPLバージョン4にあなたの不利益となる条項が追加され、かつ、ソフトウェアにGPLバージョン4が適用されることになったとしてもあなたが困ることは無いでしょう。
そのように言える理由はGPLv3第14条4パラグラフにあります。その翻訳は以下の通りです。
「後発のライセンスバージョンはあなたに追加的許諾、又は、異なった許諾を与えるかも知れない。しかしながら、あなたが後発のバージョンに従うことを選択した結果として、全ての作成者又は著作権者に対して追加的義務が課されることはない。」
このパラグラフが何を言いたいのかというとつまり、GPLバージョン4がGPLバージョン3と比べて作成者・改変者の不利益となる条項を含むものであった場合に、利用者がGPLバージョン4に従うことを選択したとしても、作成者・改変者の不利益となる部分についてのみGPLバージョン4の適用が排除されるということです。
この条項により、GPLのバージョンアップに伴う法的リスクを打ち消しているというわけですね。
そんなわけでGPLのバージョンアップをおそれる必要はありません。あなたが開発したソフトウェアの著作権告示から"or any later version"の文言を削除する必要性も薄いと言えるでしょう。
次回のテーマについてちょっと迷っているんですが、いま「ソフトウェア特許」が熱そうなんでGPLv3第11条(特許)について解説して「ソフトウェア特許」への足がかりにしようかな。
それでは!!
この記事のURL: https://darkhorse2.0spec.jp/82/
2010/01/24(Sun) 18:35:24
GPL解説vol.5―GPLの古いバージョン― / マルパチ
GPL(=General Public License)にはいくつかのバージョンがあります。最新のものは2007年6月29日にリリースされたバージョン3です。これまで本ブログで行ってきたGPLの解説もバージョン3を土台にしています。ところがネット上で公開されているオープンソースの中にはGPLバージョン2でライセンスされているものも多く残っています。この場合どちらのライセンスに従えばよいのでしょうか?
結論から言ってしまいます。状況によって、バージョン2に従わなければならない場合と、必ずしもバージョン2に従わなくても良いけれどもバージョン3に従う意味がない場合に分けられると思います。だからバージョン2に従うべきです。
理由について説明していきます。
そもそもGPLバージョン2とGPLバージョン3は全く別のライセンスです。GPL作成者のフリーソフトウェア財団(=FSF)はバージョン3をバージョン2のアップグレード版として作成しました。しかし本来、法律文書であるライセンスにはアップグレードなどというものはありません。一度作成したライセンスは何年でも何十年でも効力を持ち続けます。それこそ著作権の保護期間が終了するまで有効なのです。
だからソフトウェアがGPLバージョン2でライセンスされていた場合はGPLバージョン2に従わなければなりません。
しかしFSFはバージョン2発表の時からGPLのバージョンアップについて考えていたようです。バージョン2にはGPLの改訂版についての規定がおかれています。GPLv2第9条2パラグラフがそれです。それによるとGPLバージョン3は以下のように取り扱われます。
①プログラムがライセンスのバージョン番号及び"any later version(後発の全てのバージョン)"を指定している場合に、あなたはそのバージョンまたはFSFにより発行された後発のいずれかのバージョンのどちらかの規定・条件に従うかにつき選択権を持つ。
②プログラムがライセンスのバージョン番号を指定していない場合、あなたはFSFによりこれまでに発行された全てのバージョンを選ぶことが出来る。
つまり①及び②の場合においては必ずしもバージョン2に従わなくても良いわけです。しかし実際にはバージョン3に従うメリットはありません。
バージョン2とバージョン3はその根幹についてほぼ同じです。つまりフリーソフトウェアライセンスであり、かつ、コピーレフトであるということです。
そしてバージョン3はTiVo化やDRMといったバージョン2の抜け穴をふさぐための規定を新たに設けています。つまりバージョン2の方が(どちらかと言えば)要求してくる条件の緩いライセンスなのです
緩いライセンスと厳しいライセンスを選べるのなら緩いライセンスを選ぶ人がほとんどでしょう。ですからバージョン3に従う意味がないという結論になるのです。
そんなわけでGPLバージョン2でライセンスされたソフトを使うときはバージョン2に従うべきであるといえます。
この記事のURL: https://darkhorse2.0spec.jp/81/
2010/01/21(Thu) 16:37:50
BSDライセンス解説vol.2―MITライセンス― / マルパチ
jQueryをいじろうとしてjQueryがMITライセンスであることに気づく。だからMITライセンスについて勉強がてら解説を書いてみることにします。前回予告した「古いバージョンのGPL」に関する記事は延期です(笑)さてMITライセンスはBSDライセンスの亜種なわけですが、どのようなライセンスなのでしょう。
まずMITライセンスの本文を読んでみる。さすがBSDライセンスの亜種なだけあって短い。とにかく短い。
短いので主要部分の翻訳が出来そうな気になってきます。そんなわけで以下はMITライセンスの翻訳です。
<著作権告知省略>
本ライセンスによって、無償で、「このソフトウェアのコピー及び付属の文書ファイル(以下「ソフトウェア」とする)」を取得した全ての者に対し、ソフトウェアを無制限で取り扱う許諾が与えられる。この許諾には使用、コピー、改変、結合、公表、配布、再実施(sublicense)、ソフトウェアのコピーの販売のいくつか又は一つに対する無制限が含まれる。そしてソフトウェアを提供された者に同じ許諾をすることも許諾される。但し以下の条件に従うこと。
上記の著作権告知及び本許諾書は全てのソフトウェアのコピー又は実質的な一部に組み込まれなければならない。
<免責条項省略>
うーん。MITライセンスはBSDライセンスとほぼ同じ法的内容を持ったライセンスのようだ。違うところは言い回しくらいか。
あまりに違いがなさ過ぎて逆に不安になったので違いを探してみた。しかし違いはないということで正しいみたいだ。GNUプロジェクトも「3条項BSDライセンス(Modified BSD lisence)とMITライセンス(X11 lisence)はおおよそ同意義である」と言っている。→リンク先ページの"Modified BSD lisence"の項を参照
そんなわけで3条項BSDライセンスとMITライセンスに法的な違いは無いということで解説を締めくくりたいと思います。…つまらない結論だなぁ。
つまらないので一つだけ補足します。
MITライセンスはGPLと2本立てで用いることができます。3条項BSDライセンスについても同様にGPLと2本立てで用いることができます。→参考リンク
このように1つのソフトウェアを2つ以上のライセンスで配布することをデュアルライセンスといいます。jQueryはGPLとMITライセンスのデュアルライセンスですね。
それでは!
この記事のURL: https://darkhorse2.0spec.jp/80/
2010/01/19(Tue) 19:28:02
オープンソースに思うこと / マルパチ
ここのところmagicienに教えてもらったGPLだとかBSDライセンスだとかを勉強してて思った。この分野はどんどん新しいものが出てくるなあ。最初のうちはプログラム使うのに必要な法律なんか著作権法だけで十分だったんだろう。けど今はもう著作権法だけでは最新のプログラムをフォローできなくなってきてるように思える。
GPLやBSDライセンスなんていう変則的なものが出てきて、それがソフトウェア著作権の分野で一般的になっている。
これからは法律屋もこういった流れをきちんと追っかけていかないといけないのかな。
そんなわけでおれも何か勉強してみようかと思い立ったわけです。そうすればオープンソースの今を知ることができるかもしれない。
このあいだmagicienが記事にしていたscripty2なんか面白そう。オープンソースなjavascriptのライブラリか…
scripty2をググっていたらこのブログに行き着く。ん?ここに書いてあるjQueryって何だ?scripty2と同じjavascriptのライブラリなのかな。
うーん何が違うのかよくわからん。とりあえずscripty2はMITライセンス、jQueryはGPLとMITライセンスのデュアルライセンスか。
せっかく時間もあることだしこれらで何か作ってみようかな。そうすりゃ違いもわかるでしょ。
タグ:
この記事のURL: https://darkhorse2.0spec.jp/78/
2010/01/17(Sun) 16:04:35
BSDライセンス解説vol.1―BSDライセンスってなに?― / マルパチ
さて今回はBSD(=Berkeley Software Distribution)ライセンスについて書きたいと思います。BSDライセンスはいろいろな亜種があるのですがオーソドックスな3条項BSDライセンス/3-clause BSD license(=修正BSDライセンス/modified BSD license)を題材に書いていきますね。(リンク先の文書には4つの条項がありますが第3条が削除されたので3条項になります。)
BSDライセンスは、今まで説明してきたGPL(=General Public License)と同じく、ライセンスされたソフトウェアがフリーソフトウェアであると述べています。しかしBSDライセンスの記述はGPLの記述に比べるとずいぶんあっさりしています。
どのくらいあっさりしているのかわかりやすくするためにBSDライセンスが要求する利用・再配布・改変の条件を書き出してみたいと思います。
<著作権告知省略>
改変のあるなしにかかわらず、以下の条件を満たす限り、ソースコード形式及びバイナリ形式での利用及び再配布が許諾される。
1.ソースコードの再配布の際には、上記の著作権告知、ここに列挙された条件、そして下記の免責条項を保持しなければならない。
2.バイナリ形式での再配布の際には、上記の著作権告知、ここに列挙された条件、そして下記の免責条項をコピーした文書その他の資料と一緒に再配布しなければならない。
4.大学の名前(カリフォルニア大学バークレー校)もコントリビューターの名前も、このソフトウェアから派生する製品の推奨・販促に使ってはならない。但し書面による事前の明示的な許諾がある場合を除く。
<免責条項省略>
以上です。あれこれ要求するGPLに比べるとずいぶんあっさりしているでしょう?
しかもGPLと違い、改変されたフリーソフトウェアを再配布する際に「改変されたソフトウェアの全体に丸ごとこのライセンスを適用させること(GPLv3第5条1パラグラフc項)」が要求されていません。→前回記事の条件⑤を参照
これはどういうことかというと、改変したソフトウェアを再配布するときにソースコードを公開する必要がないということです。(つまりBSDライセンスソフトウェアはフリーソフトウェアではあるけれどもコピーレフトではないのですね。)
そんなわけで今回はあっさりとした記事にすることができました。毎回こんな感じだと読みやすくて良いのでしょうけど…。
次回は「古いバージョンのGPL」について書きたいと思います。それでは!
この記事のURL: https://darkhorse2.0spec.jp/77/
2010/01/16(Sat) 16:40:07
GPL解説vol.4―フリーソフトウェアとコピーレフトその2― / マルパチ
前回「GPL(=General Public License)ライセンスソフトウェアを使うと何ができて何ができないのか」の続きです。「改変されたフリーソフトウェア」の再配布の条件について説明したいと思います。
「改変されたフリーソフトウェア」は6つの条件を守れば、ソースコード形式でのみ再配布できます。再配布は必ずソースコード形式で行わなければなりません。オブジェクトコード形式での再配布の際はさらに条件が付け加えられるので注意してください。
6つの条件とは①適切な著作権告知を全てのコピーに目立つように発行すること、②GPLのコピーを全ての受取人に提供すること、③改変したという事実及び改変の日付をはっきりと告知すること、④GPLが適用される旨・GPLv3第7条に基づく全ての条項が適用される旨をはっきりと告知すること、⑤改変されたソフトウェアの全体に丸ごとGPLを適用させること、⑥あなたの改変によりソフトウェアインタラクティブユーザーインターフェイスを追加された場合は適切な法的告知を表示すること。→GPLv第5条1パラグラフ
①「適切な著作権告知(appropriate copyright notice)」は前回説明したとおり。フリーソフトウェアの元々の著作権告知を変更するなという意味です。
④の条件は前回説明した②の条件に似ていますが違うものです。どこが違うかというとGPLv3第7条に基づく「全ての」条件を告知しなければならない点が違います。非許可条項の告知だけで良しとされた「フリーソフトウェアの完全なコピー」とは大違いです。
⑤は6つの条件の中で一番大事な条件と言っても過言ではありません。この条件によりGPLはAからA'へ、A'からA''へと伝播していくのです。(ライセンス感染とか皮肉られる原因でもあったり…)
⑥の「適切な法的告知(Appropriate Legal Notices)」ってなんやねん、という問題があります。これについてはGPL自身が「適切な法的告知」の定義づけをしてくれています(GPLv3第0条8パラグラフ)。GPLによると「適切な法的告知」とは、まず適切な著作権告知(apprpriate copyright notice)の表示があること、そして利用者に対して3点につき伝えること(無保証である場合には無保証であること、受領者がGPLに基づきプログラムの再配布が出来ること、GPLのコピーを参照する方法)なのだそうです。適切な著作権告知って①の条件とほぼ同じですね。ファイルとディスプレイで2重に著作権告知をしろということです。
さて前回から2回にわたって長々と解説してきましたがいかがでしたでしょうか?
タイトルにも書いたコピーレフトについてはついにここまで触れずじまいでした(笑)
コピーレフトとは、本来なら非著作権者による著作物の利用を制限するために用いる著作権法を、逆に非著作権者による著作物の自由な利用・再配布・改変のために用いてしまおうという逆転の発想です。つまり最初の著作権者が、自分の著作権を盾にして、全ての再配布者に対してフリーソフトウェア化を要求してしまうのです。
この発想はプログラマーの方にとっては既に当たり前の考え方なのかもしれませんが、僕みたいに法律の考え方に馴染んだ人間にはやっぱり違和感があります。著作権法などの私法ってのは普通、自分の利益のために使うものであって、他人の利益や公共の利益のために使うものではありませんからね…。
次回は「古いバージョンのGPL」について説明しようかと思いましたがこれは後回しにして、ここらでちょっと「BSDライセンス」について書くことにします。
それでは!
この記事のURL: https://darkhorse2.0spec.jp/76/
2010/01/15(Fri) 23:18:29
GPL解説vol.3―フリーソフトウェアとコピーレフト― / マルパチ
どうもマルパチです。前回前々回の記事が長くなりすぎたので今回はあっさりいきたいと思います。題して「GPL(=General Public License)ライセンスソフトウェアを使うと何ができて何ができないのか。」
GPLライセンスのソフトウェアはフリーソフトウェアです。
ここで気をつけなければならないのはフリーソフトウェアはフリーソフトではないということ。言葉は似ていますが両者の間には大きな違いがあります。
フリーソフトは「タダで」使用することができるソフトウェアのことです。使用が認められているに過ぎないので、フリーソフトの著作権者は必ずしもソースコードを開示しません。使用する分にはソースコードは不要だからです。
一方フリーソフトウェアは「自由に」使用・研究・改変ができるソフトウェアを意味します。自由な研究、自由な改変のためにはソースコードが必要不可欠ですよね。ですからフリーソフトウェアはソースコードが開示されます。
さらに「フリーソフトウェアの完全なコピー」及び「改変されたフリーソフトウェア」は自由に再配布することができます。ただし再配布する場合はGPLの要求する条件に従わなければならないので注意が必要です。
その条件を以下に説明します。
「フリーソフトウェアの完全なコピー」は4つの条件を守れば、ソースコード形式で再配布できます。ソースコードをコンパイルしたものはそもそも「フリーソフトウェアの完全なコピー」ではないので4条件を守っただけでは再配布できません(GPLv3第4条1パラグラフ)。注意してください。
4つの条件とは①適切な著作権告知を全てのコピーに目立つように発行すること、②GPLが適用される旨・GPLv3第7条に基づく非許可条項が適用される旨の全ての告知を完全に保持すること、③無保証である旨の全ての告知を完全に保持すること、④GPLのコピーを全ての受取人に提供すること。→GPLv3第4条1パラグラフ
①の「適切な著作権告知(appropriate copyright notice)」というのがわかりにくいと思います。これはつまりフリーソフトウェアの元々の著作権告知をそのままにしておけ、変更するなという意味です。第1回で説明したようにソースコードの著作権者は作成者です。作成者の手による著作権告知を勝手に変えてしまうのはダメだということですね。
②の「GPLv3第7条に基づく非許可条項」というのは著作権者が付け加えたGPLの要求する条件をさらに厳しくする追加条件のことです。逆に言えば著作権者が付け加えたGPLの要求する条件を緩和する追加条件はあなたの判断で削除することができるのです。
③の「保証がない旨の全ての告知」とはソースコードにコメントされている"WITHOUT ANY WARRANTY"または"ABSOLUTELY NO WARRANTY"の記載のことですね。GPLの作成者であるGNUプロジェクトはソースコードにこの文句をコメントすることを推奨しています。もちろんあなたが勝手に削除することなど出来ません。→参考リンク
気づいた方もおられるかと思いますが、これらの条件の中には「再配布は無償でなければならない」とは書かれていません。それどころかGPLは再配布を有償で行ってもよいとはっきり書いています(GPLv3第4条2パラグラフ)。早い話がお金を取っても良いということです。GPLソフトウェアがフリーソフトではなく「フリーソフトウェア」であるという所以です。
さて次は「改変されたフリーソフトウェア」を再配布する条件について説明したいところですが…
あっさりいくとか言ったのに全然あっさりしてないじゃないか!!
自分の見立ての甘さにがっかりしました。てなわけで次回に続く!
ちょっと補足です。
ここで問題になるのがあなたが受け取ったGPLソフトウェアが最初からコンパイルされたオブジェクトコードを含んでいた場合です。オブジェクトコードを再配布したい場合には別途GPLv3第6条の条件が課されるのですが…。
オブジェクトコードとGPLの関係についてはまた別に記事を書きたいと思います。
この記事のURL: https://darkhorse2.0spec.jp/75/
2010/01/12(Tue) 14:54:49
GPL解説vol.2.5―GPLリンク集― / マルパチ
自分用もかねてGPL(=General Public License)のお役立ちリンク集を作ってみます。GNU General Public License
GPLの正文が読みたいときはここです。
GNU一般公衆利用許諾書
独立行政法人情報処理推進機構によるGPLの日本語訳です。ただしあくまで「GPL正文を日本語に訳したもの」であって「GPL正文」ではありません。ですから法的にはなんの意味もない文書ともいえます。しかし良くできた日本語訳なのでGPLの参考教材として使えます。
Frequently Asked Questions about the GNU Licenses
(GNU GPLに関して良く聞かれる質問)
GNUプロジェクトによるGPLのQ&A集です。GPL作成者による公式のQ&A集なのでGPLの文言解釈に迷ったときは真っ先に見ます。
GNU GPLv3逐条解説書
独立行政法人情報処理推進機構によるGPLのコンメンタール(逐条解説)です。日本語で書かれていますし何より情報量が多いので教科書として使えます。
また気が向いたときに随時リンクを追加していくつもりです。
この記事のURL: https://darkhorse2.0spec.jp/73/
2010/01/11(Mon) 12:38:33
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から要望があったら他のテーマにするかもしれません。
この記事のURL: https://darkhorse2.0spec.jp/70/
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ライセンスが適用されるか」をテーマにいきます!
この記事のURL: https://darkhorse2.0spec.jp/69/
2010/01/08(Fri) 18:19:06