Contents
オープンソースソフトウェアとは
オープンソースソフトウェア(OSS)とは、利用者が著作者の定めた条件(オープンソースソフトウェアライセンス)のもとで、自由にソースコードを利用、複写、改変、再配布できるソフトウェアのことです。
なんとなくライセンスと聞くと、ライセンスが定められてないものより利用し難いイメージがありましたが、オープンソースライセンスに関しては条件さえ守ればものすごく自由に使えるので、それぞれのライセンスを正確に理解し利用させていただきましょう。
WordPressで使われているライセンス
WordPressのライセンスといえばGPLです。
ですがjQueryのライセンスはMITです。
また、jQueryのプラグインにはいろいろなライセンスが適用されています。
WordPressのPHPファイルはテンプレートタグやプラグインフックなどのWordPressの機能を使っているのでGPLが適用されます。
JavaScriptとCSSに関してはGPLを適用しなくても大丈夫ですが、公式にテーマを登録する場合は100%GPLであることが必要です。
なので、JavaScript、CSSもGPLが適用されます。
逆に、公式にテーマを登録しない場合は、JavaScriptのソースコード、CSS、画像等にまでGPLを適用する必要はありません。
このように1つの成果物に対して異なるライセンスを付与することをスプリットライセンスと言います。
スプリットライセンスでのトラブル
WordPressの方針としては100%GPLな為、以下のようなトラブルが起きることもあります。
WordCamp/ThemeForest GPL 論争の流れ
WordPress テーマにおいて、CSS ファイルと画像は Web サーバーから純粋なるデータとして提供されます。WordPress 自体はこれらのファイルを無視 [1] します。CSS や画像ファイルは純粋なデータとしてサーバーによって読み込まれ、 そのままユーザーに送信されており、WordPress インスタンスをまったく通過しません。CSS や画像は 容易に広範な HTML ドキュメントによって使用する事ができ、WordPress とまったく関係がないさまざまなソフトウェアが読み込んだり表示したりできます。このことから、これらのファイルは WordPress コードとは別の作品です。
http://ja.wordpress.org/2009/07/03/themes-are-gpl-too/
ライセンスの確認方法
ほとんどのテーマが100%GPLなのですが、一部スプリットライセンスのテーマも存在するのでうっかり改変して再配布していまうことがないようにライセンスの確認方法を紹介します。
テーマ内に入っているreadme.txtを見る
例として「TwentyFifteen」を見てみます。
=== Twenty Fifteen === Contributors: the WordPress team License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html
公式テーマなので当然ですが、しっかりとGPLv2とライセンスが書かれています。
著作者のホームページを見る
「Simplicity」のようにreadme.txtにライセンスの表記がない場合は作者のホームページを確認しましょう。
日本語が苦手な人に対してホームページでライセンスを確認して、というのは少々難易度が高いのでreadme.txtに書かれている方が親切だと思います。
著作者に直接聞く
「Stinger5」のようにreadme.txtがなく、ホームページにも書かれていない場合。(もしかしたら書かれているかもしれませんが、私が探した限り見つけることはできませんでした。)
それぞれのソースコードに記載されていればいいのですが、js/scroll.jsにはライセンスが記載されていせん。
おそらく100%GPLだと思いますが、念のため作者のEnjiさんに直接聞くの無難だと思います。
主要ライセンスの特徴を理解するのに参考になったサイト
グーグルで検索するとライセンスを簡単にまとめた記事がたくさんでてきますが、各々解釈にばらつきがある印象を受けました。ライセンスが英文なので翻訳の妥協によるものが多いと思います。
いろいろ見たなかで分かりやすく、信頼度の高いサイトを紹介します。
独立行政法人情報処理推進機構(IPA)のOSSライセンスの比較、利用動向および係争に関する調査。
OSSライセンスの比較、利用動向および係争に関する調査
ライセンサ(ライセンスを与える者:作成者)
ライセンシ(ライセンスを受ける者:利用者)
コピーレフト型(GPL)
- ライセンサに派⽣物にまで同じライセンスの適⽤を要求する点。
- ライセンサが配布する OSS を、ライセンシが他のソフトウェアと組み合わせた場合、ライセンサはライセンシに組み合わせ先のソフトウェアにまで同じライセンスの適⽤を要求する点。
準コピーライト型(LGPL、MPL)
- ライセンサに派⽣物にまで同じライセンスの適⽤を要求する点。
- ライセンサが配布する OSS を、ライセンシが他のソフトウェアと組み合わせた場合、ライセンサはライセンシに組み合わせ先のソフトウェアにまでは同じライセンスの適⽤を要求しない点。
非コピーレフト型(BSD、MIT)
- ライセンシに派⽣物にまで同じライセンスの適⽤を要求しない点。
- ライセンサが配布する OSS を、ライセンシが他のソフトウェアと組み合わせた場合でも、ライセンサはライセンシに組み合わせ先のソフトウェアにまでは同じライセンスの適⽤を要求しない点。
こちらは内容も正しく、簡潔にまとめられています。
GPLやMITなど、Webデザイナーなら覚えておきたい主要ライセンスまとめ
こちらはGPLの本家のQ&Aなのですが、翻訳された日本語が読みづらく正しい解釈が難しいです。
英文を正しく読める方は本家サイトを読むべきです。
GNU GPLライセンスについて よくある質問
オープンソースが生まれた経緯なども書かれているので分かりやすい。
オープンソースライセンス事情を俯瞰する
GPL、MITライセンスの適用方法(書き方)
GPL、MITライセンスがどういうものかは理解したのですが、ライセンスの正しい書き方が分かりませんでした。
解説サイトも何個かありましたが、GithubやGNU projectなどのプログラム配布物も参考になります。
GPLの書き方
公式にフォーマットがありました。
改変、再配布する場合は以下を守る必要が有ります。
・利用者は改変を加えて配布する場合、改変を加えた事実および⽇付を記載しなければならない。
・利用者は、配布する場合、著作権および無保証の旨が記載された告知を掲載しなければならない。
なのでreadme.txtに著作者、ライセンス、ChangeLogに変更履歴を記載しておけば問題ありません。
全てreadme.txtに記載している例もありました。
プログラム名を変更する場合、変更履歴を記載していればバージョンをリセットしても問題ありません。
MITライセンスの書き方
身近なものはjQueryです。
書き方を分かりやすく紹介しているサイトがあったの以下のリンクからどうぞ。
よくある質問
よくある質問といいましたが、自分が調べている過程で疑問を抱いたことについて勝手にQ&Aします。
・改変してないMITライセンスのソースコードをGPLで再配布可能ですか?
「ライセンスを変更すること」は著作権者にしかできません。しかし、ライセンスとは「ある条件を守りさえすれば、本来著作権者しかできない事を、それ以外の人間ができるようにする」というものなので、該当するライセンスに「より厳しい制限の付与を禁ずる」という条件 (たとえば GPL にはこれがあります) がなければ、「より厳しい制限を付ける事」自身はライセンス違反になりません。
OSS ライセンスの良くある質問 | IPA
・GPLのJSファイルとMITのJSファイルを結合したい場合はどっちのライセンスになる?
ライセンサが配布する OSS を、ライセンシが他のソフトウェアと組み合わせた場合、ライセンサはライセンシに組み合わせ先のソフトウェアにまで同じライセンスの適⽤を要求する点。
GPLを適用しなければならない。
・そもそもCSSって著作権あるの?
以下の記事によるとCSSは「アイディア、手法」であり、そのまま利用しても著作権の侵害にならないそうです。
http://kojika17.com/2011/01/copyright-for-the-web-designer.html
CSS3からはアニメーションが加わり、より複雑なことができるようになってきているので今後は著作権として認められるかもしれませんね。
・WordPressフッターのコピーライトを外しても大丈夫?
GPLのことを理解していれば以下のような疑問にもわざわざ調べる必要もなく対処できます。
phpファイル(GPL)に書かれているので自由に変更可能!
参考:STINGER3の著作権リンクを外しても法的には問題ないのじゃが・・・
そもそもフッターにあるコピーライトは記事や内容に対してのものだと思うのでコピーライトをそのままにとくとやばい。
さいごに
上手くまとまってないかもしれませんが、GPL、MITライセンスに関する疑問が網羅されてるはず!
この記事を書いたきっかけはあるWordPressのプラグインを改変して再配布しようと思ったからです。
今まで利用者側であったのでライセンスについて意識することはありませんでした。
今回記事でまとめたことにより、これからは自由に使えるものは使い、より効率の良い開発が行えると思います。
間違い、質問がありましたらコメント、もしくはTwitterでご連絡いただけると助かります。