CodeIgniter のライセンスが OSL に変更されることに関する懸念

[2014/10/29 追記] CodeIgniter 3.0 は MIT ライセンスでリリースされることになりました! 詳細

[2011/11/24 追記] CodeIgniter のライセンスが OSL に変更されることに反対の方はぜひ投票しましょう - A Day in Serenity @ kenjis

[2011/11/13 追記] 新しい記事 CodeIgniter のライセンスが OSL に変更されることに関する懸念(第2版) - A Day in Serenity @ kenjis を書きました。そちらをご覧ください。

(最終更新: 2011/11/13)

10/21、GitHub の CodeIgniter のリポジトリライセンスの変更 がコミットされました。

もともと、CodeIgniter は BSD ライクな独自の CodeIgniter ライセンスでライセンスされています。それが、OSI に承認されたコピーレフトなライセンスである Open Software License 3.0 へ変更されコミットされました。このライセンス変更は CodeIgniter 3.0 から予定されています。

OSL については、Open Software License (OSL) とはどのようなライセンスか? を参照願います。

この変更は、BSD ライクなライセンスからコピーレフトなライセンスへという非常に大きな変更で、その影響も計り知れませんが、まだ、CodeIgniter ユーザの間でそれほど話題になっていません。

この記事は、現時点でのライセンス変更に関する懸念事項をまとめたものです。

CodeIgniter を使ったアプリを GPL にできなくなる

OSL は GPL と互換性がないため、両者を組み合わせることができません。

これは、すでに CodeIgniter を使って GPL のプロダクトを配布しているオープンソースプロジェクトは、CodeIgniter 3.0 へアップグレードできないことを意味します。このようなプロジェクトはいくつかありますが、事実上切り捨てられることになります。

また、自分がアプリを作成する場合も、GPL のライブラリは使えなくなります(自分専用のアプリで配布しないのであれば可能だと思いますが)。

(11/02 追記) EllisLab は、現行の CodeIgniter ライセンスも GPL と互換性がないという見解を表明しました。

CodeIgniter を使い作成した自分のソースコードのどこまでに OSL が適用されるかはっきりしない

OSL では、派生物は同じく OSL にしないといけません。

ここで、CodeIgniter 3.0 は、system/ フォルダ以下の CodeIgniter 本体のファイルは OSL、自分のアプリケーションを配置する application/ フォルダ以下のファイルは AFL にすることで、自作のコードに OSL が及ばないようにしているとしていますが、それが正しいかどうかはっきりしません。

AFL はコピーレフトではない OSI が承認したオープンソースライセンスです。派生物を同じライセンスにする必要はありません。

注意が必要なのは、ライセンスがフォルダの場所によって決まるわけではないという点です。あくまで、system/ フォルダ以下のファイルに OSL が摘要され、配布パッケージの application/ フォルダ以下のファイルは AFL が摘要されているだけです。

system/ フォルダ以下のファイルをコピーして application/ フォルダに移しても OSL であることに変わりはありません。

OSL では派生物は、技術的な用語は用いず、著作権法の用語で「to translate, adapt, alter, transform, modify, or arrange the Original Work」と定義されています。

CodeIgniter のコントローラは通常すべて OSL である CI_Controller クラスを継承し、モデルも CI_Model クラスを継承することになります。オリジナルのクラスを拡張したり変更したりする継承が派生物でないと言いきれるか疑問が残ります。

派生物をもっとも広くとらえると、CodeIgniter で作成されたアプリ全体が一体であり派生物となり、application/ フォルダ以下のファイルも OSL にする必要があり、CodeIgniter の配布ファイル(3.0 はまだリリースされておらず配布されていませんが)自体が矛盾したライセンス状態になるということになります。

以下のブログはそのような説明をしています。

For example, the CI developers are putting fragments of the code they distribute under the AFL (Artistic Free License) inside. This would be allowed under the OSL if a collective work is formed. A collective work requires that two independent works are brought together. If the two works are not independent to each other but the one work is based on the other, then it’s a derivative work. But for derivative works, the OSL requires that it’s under OSL as well. As the code under AFL is not an independent work, but extends from CI code, it must be licensed under OSL, not AFL. So the fact that the CI developers put the files in there under AFL while putting other files in there under OSL leaves the overall code in a contradictory state on the licensing side as it either can’t be licensed under AFL or CI itself can’t be under OSL.

http://hakre.wordpress.com/2011/10/27/codeigniter-goes-copyleft-with-osl/

派生物をもっとも狭くとらえると、オリジナルのファイルを変更しない限り、派生物に含まれないと考えることになるでしょう。

OSL の作者の解説によると、オリジナルを変更しない「他の独立して作成された著作物」(independently-written work)との「リンク」については派生物にならないとしています。

linking an unchanged Original Work with another independently-written work does not, absent more, create a Derivative Work subject to § 1(b); such an act is merely the incorporation of a copy of that Original Work into a collective work, authorized by § 1(a).

http://rosenlaw.com/OSL3.0-explained.htm#_Toc187293087

しかし、リンクとは性質の異なる「クラスの継承」が派生物を作成しないかどうかは、はっきりしません。また、オリジナルを変更しないリンクがいつでも「他の独立して作成された著作物」になるのかも判断がつきません。

この場合、(リンクも継承も同じと考えるなら)自分が作成したコントローラやモデルなどは OSL になりませんが、CodeIgniter の system ファイルに変更を加えたもの(ファイルの置き換え)の場合は、もともとのファイルのコードを一切含まないように書き換えない限り、派生物になると思います。派生物は OSL でライセンスされ、ソースコードの公開義務が生じます。

(11/02 追記) EllisLab は狭い意味で派生物を考えているようです。

The only thing you are obligated to license and make available under OSL are modifications you have made to the OSL-licensed CodeIgniter files, which can be clearly identified in their attribution notices (more on this in a bit).

http://ellislab.com/blog/comments/gpl_or_not_to_gpl

Derek Jones

Your code is always your code. Unless you are modifying an OSL licensed file, you have no reciprocity obligation to apply OSL to your code. This is another area that we feel OSL is superior to GPL - "derived" is very clearly defined in OSL whereas it is source of confusion with GPL.

http://ellislab.com/blog/comments/gpl_or_not_to_gpl#comment-354008903

CodeIgniter を使った Web サイトで訪問者に OSL のアプリを使っていることを知らせなければならなくなる

OSL では、利用者から明示的なライセンスへの同意を得るよう合理的な努力をしないといけないとされています(9)。

9) Acceptance and Termination. If, at any time, You expressly assented to this License, that assent indicates your clear and irrevocable acceptance of this License and all of its terms and conditions. If You distribute or communicate copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. This License conditions your rights to undertake the activities listed in Section 1, including your right to create Derivative Works based upon the Original Work, and doing so without honoring these terms and conditions is prohibited by copyright law and international treaty. Nothing in this License is intended to affect copyright exceptions and limitations (including "fair use" or "fair dealing"). This License shall terminate immediately and You may no longer exercise any of the rights granted to You by this License upon your failure to honor the conditions in Section 1(c).

また、ASP ループホールを塞ぐため、ネットワークでの利用も配布とみなすという条項(5)があり、

5) External Deployment. The term "External Deployment" means the use, distribution, or communication of the Original Work or Derivative Works in any way such that the Original Work or Derivative Works may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Work or a Derivative Work as a distribution under section 1(c).

その結果、Web サイトで利用した場合、訪問するユーザにも配布していることになります。

Next to that, OSL also requires that you make visible to any user to whom the software is communicated to (visits your website) that it runs on an application that is licensed under OSL. Be it a collective work or a derivative work.

http://hakre.wordpress.com/2011/10/27/codeigniter-goes-copyleft-with-osl/

上記のブログでは、これを、「あなたの Web サイトに訪問したユーザに、OSL でライセンスされたアプリを実行していることを表示する必要がある」と説明しています。

OSL では、OSL のアプリのソースコードを提供する義務があります。

ライセンスに関する問題を検討した後でないと CodeIgniter を使えなくなる

ビジネスでは OSL を好んでいるという特殊な場合以外は、CodeIgniter をすぐさま採用できなくなると思います。

馴染みのないコピーレフトな OSL というライセンスを理解するところから始めなくてはなりません。また、今までの CodeIgniter ライセンスと比較して、開発アプリのライセンスの選択の幅が確実に狭められています。

また、もしかしたら、CodeIgniter を使ったプロダクトを販売していて、既存のビジネスモデルが破壊されてしまうケースが生じるかも知れません。

Web サイトで訪問者に OSL のアプリを使っていることを知らせるということを、どこまでやる必要があるのかという懸念もあります。厳密に考えると、Web サイト訪問者にライセンスを表示して、同意するのボタンを押させないといけないか?とさえも思われます。

このような状況は、開発者に CodeIgniter の利用を躊躇させる原因となると思われます。

(11/04 追記) EllisLab は、開発者が自分が使っているソフトウェアのライセンスについてきちんと知り、検討すべきだとの意見を表明しました。

All in all, we hope this series generates a larger awareness of software licensing issues and answers as best we can the questions that people have of EllisLab’s decisions regarding licensing. But we also hope it impresses on every developer the importance of due diligence in license research, which includes consulting an attorney. Whether free or commercial, make sure that the license you choose respects you and your own work, as well as those who end up using your software. Don’t turn licensing into a casual decision, or you are doing yourself and your users a great disservice.

http://ellislab.com/blog/comments/software_license_awareness_week

この変更がよくないと考える CodeIgniter ユーザの方へ

(11/24) CodeIgniter のライセンスが OSL に変更されることに反対の方はぜひ投票しましょう - A Day in Serenity @ kenjis

以下の CodeIgniter の 公式の UserVoice で、「GPL 互換のコピーレフトでない人気のあるライセンス」への変更を要望しています。

OSL へのライセンス変更が CodeIgniter にとってよくないと考える CodeIgniter ユーザの方は、是非、上記に投票してください。

他のメジャーなフレームワークと同じ GPL 互換のコピーレフトでない人気のあるライセンスになれば、このようなややこしい問題を検討することなく、今までと同じように CodeIgniter を使い続けることができます。

また、ライセンス変更に関する議論は、本家フォーラムでは、

で続けられています。