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

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

[2011/12/19 追記] このライセンスへの疑問点を「Open Software License 3.0 (OSL 3.0) のソフトウェアを使う人への10の質問」としてまとめました。

(最終更新 2011/12/13)

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

この記事は、著者の現在の見解をまとめたもので、法的な助言を意図したものではありません。著者は法律の専門家ではありません。見解に誤りが含まれる可能性があります。法的な疑問がある場合は、弁護士に相談することを EllisLab は推奨しています。

コメントを歓迎します。また、弁護士に相談したという方がもしいらっしゃいましたら、結果を開示できる範囲で共有することをお願いしたいです。

[2013/11/13 追記]OSL については、CodeIgniter3のライセンス問題に対する意見書公開 – ねこげっとぷれす も参照ください。


10/20、EllisLab は ExpressionEngine & CodeIgniter Conference 2011 (EECI 2011) の keynote で「CodeIgniter のライセンスが Open Software License 3.0 へ変更される」旨を発表しました。

スライドは 2枚しかなく、推測ですが、あまり詳細な説明はされなかったのではないかと思います。

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 と互換性がないため、両者を組み合わせることができません。

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

すでに CodeIgniter を使って GPL のプロダクトを配布しているオープンソースプロジェクトはいくつかあり、OSL に変更されると CodeIgniter 3.0 へアップグレードできないとの批判がよせられました。これに対して、EllisLab は、現行の CodeIgniter ライセンスも GPL と互換性がないという見解を表明しました。

この見解に従う場合、CodeIgniter 1.x および 2.x も GPL と互換性がないことになり、それらの CodeIgniter で作成したアプリを GPL で配布することはライセンス違反になります。ただし「CodeIgniter を使ったアプリを GPL にできない」点は、ライセンスが OSL に変更された後も変わりはありません。

このことが原因で、すでに CodeIgniter から他のフレームワークへ移行することを表明したオープンソースプロジェクトもあります。

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 でライセンスされ、ソースコードの公開義務が生じます。

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


結局これは、何が派生物かという著作権法上の問題になるように思います。派生物であれば、コピーレフトのため OSL が適用されることになります。EllisLab は OSL での派生物の定義は GPL よりもはっきりしていると主張していますが、私にはそれが本当かどうか判断できません。

また、EllisLab の教えによれば、それを最終的に判断するのは裁判官であり、著作権者である EllisLab や、ライセンスの作者ではないということになります。

If a software license is ever brought into question, it will be a judge or ruling copyright authority in the location you reside (or the one bound to the license agreement) that will interpret and render a judgement, not the copyright holder or author of the license.

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

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 のアプリのソースコードを提供する義務があります。

EllisLab はこの件について、Web サイトの訪問者はアプリケーションにより生成されたコンテンツを受け取っているだけであり、明示的なライセンスへの同意を得る合理的な努力をする必要があるのはソースコードを受け取った人に対してだけだとコメントしています。

Derek Jones

much of the OSL 3.0 is expressed in terms of obligations of the licensor. The assent to license is the approval of receiving the license and its conditions as a licensee, i.e. a recipient of the disclosed source code, not as a web site visitor who is merely a recipient of content generated by the application.

In other words, the work itself is under license; the output of the program -- what the work does -- is not under license of any kind. The act of deploying the program as a service simply counts as a distribution in terms of making licensor (now you) responsible for reasonably sharing the original or derivative work.

http://ellislab.com/blog/comments/software_license_wrap_up_and_osl_3.0#comment-356917551

しかし、OSL の作者の解説によると、外部展開した場合は、第三者があたかもオリジナルまたは派生物の実際のコピーを受け取ったのと同じように扱う必要があるとしています。

OSL 3.0 requires that the External Deployment of software be treated the same as a distribution. The effect, of course, is that copies of the Original Work or Derivative Works that are externally deployed (i.e., that are used in-house to provide services to third parties) must be distributed reciprocally under OSL 3.0, just as if those third parties had received actual copies of the Original Work or Derivative Works.

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

(12/03 更新) EllisLab の見解に賛同する意見がありましたが、その後、そのブログの著者はその意見を撤回しました。

(12/03 追記)
本家フォーラムに EllisLab の President/CTO の Derek Jones 氏が再び登場したので、質問してみました 。そして回答ももらえましたが、結局、何故そういう解釈になるのかは、よくわかりません。

One provision (section 5) states that if you are externally deploying the application, you must make the work available under OSL. The other provision (section 9) sets out requirements for you on how you give copies of that work to recipients. Nowhere does it state that recipients of the output are obligated to actively receive copies of the work from you becoming licensees, which is where assent comes into play. Your obligation is to make it available, and to notify people receiving the original work (not the output) of the licensing. All web site visitors receive the output but not all will receive the work.

Your site visitors are under no obligation to take whatever reasonable efforts you made available for them to receive OSL source code, but if they wanted to, they should be able to in some manner (such as the examples I gave in a previous reply). You would essentially be in breach of contract if you then refused. But no one is asking for notices flying around in people’s faces, which most wouldn’t read anyway. When is the last time you read a web site’s terms of services or privacy policy? I make it a point to pay close attention to these things and still only rarely read them.

http://codeigniter.com/forums/viewreply/957768/


(12/07 追記)

その後、Derek Jones 氏はフォーラムでの会話で以下の発言をしました。

unmodified core, no changes to OSL licensed CI files, our official repository satisfies the reciprocal obligation in our eyes. By the letter of the license, perhaps, you should fork our repo since you are technically the Licensor for your distribution (your public web site).

http://codeigniter.com/forums/viewthread/202562/P165/#958129

この見解によるならば、「明示的なライセンスへの同意」の条項がどうであれ、以下のように、Web サイトの訪問者が OSL であるファイルを入手できるようにする必要はあると考えられます。

1. 公開 Web サイトで OSL のプログラムを使っていれば、それは、外部展開により配布とみなされる(5)
2. 配布する場合は、OSL のプログラムは OSL ライセンスで配布しなければならない(1c)。このとき、Web サイトの所有者は OSL のプログラムのライセンサー(OSL のプログラムを再ライセンスしたということ)になる
3. ライセンサーはソースコードを提供する義務を負う(3)

どのようにソースコードを提供するかは、OSL では以下のように記述されています。

Licensor agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work.

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

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

馴染みのないコピーレフトな OSL というライセンスを理解するところから始めなくてはなりません。

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

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

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

しかし、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 ライセンスを精査せずに使った LimeSurvey の開発者とそのユーザは、フレームワークを変更しない限り製品を配布できないという重大な被害を被っています。

ただし、私は CodeIgniter をカジュアルに使って欲しいと思いますが。

OSL への変更に対する反対の現状

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

しかし、EllisLab は、10/31 から 11/04 に自社の見解を公式ブログで連続的に表明した後、11/06 に上記の要望を拒否しました。

これは、「この要望への投票の大部分が、EllisLab が変更に関する見解を説明する前のものであり、見解を発表したあとのフィードバックは圧倒的に賛成するものが多かった」、

Derek Jones

The Uservoice topic had almost all of its votes before we had spoken at all about software licenses and our choices. The overwhelming feedback we have received since the articles have been published has been positive.

http://ellislab.com/blog/comments/software_license_wrap_up_and_osl_3.0#comment-356908366

また、「ライセンス変更に関する質問に答えた後は、ほとんどのユーザは投票を取り消すことを確信している」ためとしています。

Derek Jones

Carsten, I'm sure most users appreciate having their votes back after we've clearly answered the questions about the licensing change. Leaving that thread open would not be dealing with the community honestly, as if more +1's would for EllisLab and Reactor form a compelling and factual based reason for using a different license.

http://ellislab.com/blog/comments/software_license_wrap_up_and_osl_3.0#comment-356919773

この要望への投票は、360票、132人でした。全世界でこの数字ですから、少ないといえば少ないです。大部分のユーザはライセンス変更に賛成していると言われても仕方がないほど少数だと言えるでしょう。

他のメジャーなフレームワークと同じ GPL 互換のコピーレフトでない人気のあるライセンスになれば、このようなややこしい問題を検討することなく、今までと同じように CodeIgniter を使い続けることができるのですが、EllisLab の望みは、我々がきちんとライセンスを検討した後でソフトウェアを選択することであり、この要望とは相反するものとなっています。

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

確かなことは、英語で反対を表明しない限り、賛成だとみなされるということです。そして、賛成するユーザが多いと考える限り、ライセンス変更に何の問題も躊躇もありません。

(12/03 更新) 現在、Reactor エンジニア(CodeIgniter のコミッタ)の Phil により以下の投票が行われています。反対の方は、投票されることをお薦めします。