Personal tools
You are here: Home ブログ 井上 GPLなJavaScriptのコードは、非フリーなソフトウェアに使えるのか
« December 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries
Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23
Herokuの発音 inoue 2010-12-20
雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18
IPA未踏のニュース inoue 2010-12-15
労基法とチキンゲーム inoue 2010-12-06
フロントエンドエンジニア inoue 2010-12-03
ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25
技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24
雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22
RESTの当惑 inoue 2010-11-22
「プログラマのためのUXチートシート」を作りました inoue 2010-11-19
「ビューティフルコード」を読みました inoue 2010-11-16
Categories
カテゴリなし
 
Document Actions

GPLなJavaScriptのコードは、非フリーなソフトウェアに使えるのか

Webで探すと次のページがすぐに見つかりました。

結構、自信満々(*)に「使える」と結論づけていますが、そんなに簡単な問いではありません。

(*)字面に現れていない洞察の末の結論かもしれませんが。

ポイントは「派生物(derivative work)」の解釈です。上のサイトからもリンクされているFAQで言えば、次の項目です。

元々、GPLは(主に)C言語を想定している節があり、コンパイルしてひとつの実行ファイルになったら「派生物」ということだけが明確になっています。ライブラリの場合、静的リンクは、この解釈で派生物の判定が容易です。しかし、動的リンクの場合、この解釈だけだと派生物になりません。静的リンクと動的リンクで効力が変わるのは変なので、少し解釈を拡大して、同じ(プロセス)アドレス空間で動くプログラムになるなら「派生物」という解釈で、C言語(などのコンパイル言語)では落ち着いています。しかし、この解釈はスクリプト系言語で困ります。

ちなみに上の説明で、libcどうなんだ、あるいはkernelのコードも結局同じアドレス空間で動くではないか、と思った人は鋭い人です。これらは、GPLの中で例外扱いしています。GPL2では"major components"、GPL3では"System Libraries"と区別して、例外扱いしています。

この辺り、GPL3(draft)で明確化されたのか調べてみましたが、ざっと見る限り変わっていません。

スクリプト系言語の場合、実行系(interpreter)とスクリプト自体に派生関係がないことは次で明言しています。

interpreterから見れば、スクリプトはデータだから、という解釈です。では、スクリプトが別のスクリプトモジュールの関数呼び出しをした場合は派生物なのか?、という疑問があります。上のFAQによれば、派生物、という解釈です("if you choose to use GPL'd Perl modules or Java classes in your program, you must release the program in a GPL-compatible way")。

(スクリプト系言語ではないですが)Javaに関して、次の文書があります(The LGPL and Java)。

あるjarファイルを利用したJavaコードは派生物だと、明確に言っています。ちなみに、継承(inheritance)も派生物、と言い切っています。リンクと同等に解釈しているので、jarファイルのライセンスがLGPLであれば、非フリーなソフトウェアに使えます。

ここまで来ると、GPLなJavaScriptを使うHTMLやJavaScriptは派生物になりそうな気配濃厚ですが、またまた例外事項がありました。

上記から引用します。

As a special exception to GPL, any HTML file which merely makes function calls to this code, and for that purpose includes it by reference shall be deemed a separate work for copyright law purposes.

JavaScriptの関数呼び出し、およびincludes it by reference、要はscriptタグによる読み込みだと思います、は派生物とはしない(=separate work)という例外を認めています。

と話を終わりにしたいところですが、この例外がGPLの一般論として認めた例外なのか、この例外事項を記載することを薦めた主張(記載しないと派生物になる)なのかよく分かっていません。全体のトーンは後者のような気がしないでもありません("it's possible that template+user data+Javascript would be considered one work under copyright law."とか)。

jarファイルとの比較から、JavaScriptファイルの読み込みはリンク相当にはなりそうなので、LGPLのJavaScriptコードは非フリーなソフトウェアで使えそうです。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/gpl-and-javascript/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.