新しいブログに引っ越しました

tomotomoSnippetは新しいブログに移動しました
http://develtips.com/

2010-12-22

[GPL][MIT]ライセンスについて基本中の基本的なこと

今までずっと独学でHTMLやらプログラミングやらやってきました。
子供の頃からパソコンで何か作るのが好きで、とうとう職業にしちゃったわけです。

そんなわけで・・・

ライセンスについて今までちっとも勉強してこなかった!
英語やら法律用語やら専門用語やらで今まで読む気がしなかった。


ということで、今年中にいくつかライセンスについて知ったことをまとめたいと思います。

最終的には、
『GPLのPHPライブラリを利用したウェブアプリケーションを作成販売し、
 かつ、オリジナルで作った部分のソースを公開する必要があるのか?』
を理解することですが、ちょっと調べたくらいじゃ、そんなモノわかりませんでした。

今回は、初めてライセンスについて書くので、基本中の基本。
GPL(GNU General Public Licence)MIT Licence(X11 Licence)について分かったことを書きます。

GPLもMIT Licence(以下MIT)も、フリーソフトに関するライセンスで、どちらも。
・無償(無保証)
・利用/改造/再配布OK
・著作権表示義務あり
・商用利用OK
です。

まぁ、この辺りまではなんとなーく理解してましたが、じゃあどう違うねん、というと。

GPL
・ソースコードを公開する義務がある
・GPLを含む二次著作物もGPLにする必要がある(どんどん連鎖します←正しくは『ライセンスの継承』)

MIT
・ソース公開の義務なし
・二次著作物のライセンス変更もOK(元々の部分はMITのまま)

他にも、修正BSDライセンス(MITとほとんど一緒)、LGPL(緩いGPL)などあるので、次のサイトで確認すると良いと思います。
http://0xc000013a.wiki.fc2.com/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%81%BE%E3%81%A8%E3%82%81

で、GPLのライセンスの継承ってやつが曲者で。
オープンソースなライセンスやコピーレフトなライセンス、クリエイティブコモンズについて、他のライセンスとどう組み合わせられるのかを図にしてみた
上記サイトが分かりやすく解説しているので、分からなくなった時に見に行くといいと思います。


さて、では実際に自分が作ったプログラムにGPLやMITを適用したい時はどうしたらいいのか。
ソースコードのどっか目立つ所(冒頭)にライセンスの宣言をすれば良いみたいです。
前述のまとめWikiによると、
GPLの場合:
(GPLバージョン3の和訳「4. 一字一句忠実なコピーの伝達」より引用) 『あなたはそれぞれのコピーにおいて、目立つように、かつ適切な形で、ふさわしい「コピーライト」告知を掲載しなければならない』
とあります。
全文っていうのがこれ

この全文をソースコードの先頭に書けば、GPLライセンスになります。

MITの場合:
ライブラリの著作権表示と許諾表示を、重要な部分に記載する必要がある。
とあります。

MITの場合はこんな感じで書けばいいようです。
実際の例はこれ


でもね、実際に見てみると、結構省略して書く人が多いみたいです。
例えばjquery-1.4.4.min.jsだってこーんな…
/*!
 * jQuery JavaScript Library v1.4.4
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Thu Nov 11 19:04:53 2010 -0500
 */
(ちなみにjQueryはMITとGPLバージョン2のデュアルライセンスってやつです。)
ライセンスの宣言が
"Dual licensed under the MIT or GPL Version 2 licenses."
という一行で終わってます。
その次の行のhttp://jquery.org/licenseを見に行くと、それぞれのライセンス全文へのリンクがあります。

CakePHPはMITライセンスですが、こんな感じで表記しています。

どこにライセンスの全文が載っているか、を明記すればOKって慣例なんですかね。

なんだか、散らばった文章ですが、長くなってきたので終わります。(そして続きます、たぶん)


フリーソフトの『フリー』は『自由』であって、無料という意味ではない。
ということを再認識しました。


2010-12-02

CakePHPアドベントカレンダー2010(まとめ)

CakePHP Advent Calendar 2010を開催!

RubyやPerl, Symfonyなどでも企画されているAdvent CalendarをCakePHPでもやってみたいと思います。
技術系の方がやっているAdvent Calendar(アドベントカレンダー)は、12/1からクリスマスまでに1日ごとにその技術に関する何かしらの記事を書いて、アップしていくというもので、担当日を決めて何人かでどんどん記事をアップしていくパターンが多いです。

ということで面白そうなのでCakePHPアドベントカレンダーのブログ記事を追っかけてまとめようと思います。(詳しい情報は本家で見るのが良いと思うよ)

"#. 記事タイトル @Twitterプロフィール(あれば)"という形でまとめときます。
  1. 画像にリンクをはる簡単な方法(CakePHP Advent Calendar 1日目) @cakephper
  2. CakePHPであることを隠蔽する (CakePHP Advent Calendar 2010 2日目) @k1LoW
  3. CakePHP Modelとの付き合い方(CakePHP Advent Calendar 2010 3日目) @shin1x1
  4. Re: Best Practices in MVC Design with CakePHP @remore
    ※日本語版
  5. [CakePHP]モデルに振られる @uechoco
  6. Gitと一緒にCakePHPを楽しむ – CakePHP Advent Calendar 2010 6日目 @tfmagician
  7. 【CakePHP】CakePHP Advent Calendar2010(day 7) : Tips for Routes @MASA-P
  8. CakeDCのsearch pluginの記事が少ないので1個置いときますね。CakePHP Advent Calendar 2010 8日目 @kanonji
  9. CakePHP/Smartyとのつきあい方 - CakePHP Advent Calendar 2010 9日目 @ixcy
  10. CakePHPの環境を判定するTips (CakePHP Advent Calendar 10日目) @mon_sat
  11. CakePHPでデバッグレベルが0の時だけ発生するエラー @msng
  12. フォームヘルパに関して(CakePHP Advent Calendar 12st) @ogaaaan
  13. Datasourceを使い倒す @kaz_29
  14. Lithiumについて (CakePHP Advent Calendar 2010 14日目) @camelmasa
  15. App::import() は凄い @hiromi2424
  16. CakePHP2.0 を触ってみて。 @aerith
  17. BakerがCakePHPのために.bashrcに設定すべき5行 (CakePHP Advent Calendar 2010 17日目) @nojimage
  18. authkittenプラグインで子猫認証 (CakePHP Advent Calendar 2010 18日目) @halt 
  19. ControllerからModelを使用するいくつかの方法 (CakePHP Advent Calendar 19日目) @kunit 
  20. PaginatorHelperでの複雑なURL指定(CakePHP Advent Calender 20日目) @connvoi_tyou
  21. Containable Behaviorを追いかけてみました。 @yashio
  22. CakePHPのmodelを動的に生成する方法 @knj77
  23. 【CakePHP】メディアビューの使い方(CakePHP Advent Calendar 2010) @osakanapower
  24. 極める!Security Component (CakePHP Advent Calendar 2010 24日目) @akiyan
アドベントカレンダーって何?と思ったらこちら。(本家に載ってるリンクと一緒)
http://d.hatena.ne.jp/tokuhirom/20081216/1229387324

人気のエントリー