Some anxieties about CodeIgniter license change to OSL

On Oct 21th, a license change had been committed into CodeIgniter Repository on GitHub.

CodeIgniter is currently licensed under "CodeIgniter License" which is a BSD-like proprietary open source license. It will be changed to OSI approved copyleft license, Open Software License 3.0. The license change will be planned at CodeIgniter 3.0.

You can read my memo to OSL at What is Open Software License (OSL) ?.

This change is from a BSD-like license to a copyleft license, which is very big change, and the effect is inestimable, but many CodeIgniter developers may not know.

This article summarize current my anxieties about the license change. Any feedback is welcome.

You can't adopt GPL to your CodeIgniter Apps

(Nov 02) EllisLab suddenly has begun to assert that CodeIgniter License is incompatible with GPL - A Day in Serenity @ kenjis

OSL is not compatible with GPL, so you can not combine both.

This means Open Source Projects which release CodeIgniter based products under GPL can not upgrade to CodeIgniter 3.0. There are some projects I know, but they will be discarded virtually.

And you can't use GPLed libraries in your apps (if they are only for your own use and you don't distribute them, you can, I think).

It is not clear souce code you create must be licensed under OSL or not

OSL requires Derivative Works are also licensed under OSL.

In CodeIgniter 3.0, CodeIgniter's system files in system/ folder are licensed under OSL, but files in application/ folder which you normally put your application's files are licensed under AFL. It is intend to separate your application from OSL, but it is not clear that it is effective truly.

AFL (Academic Free License) is a one of OSI approved, not copyleft, open source license. You don't have to adopt the same license of derivative works of ALF licensed software.

Note that files place does not determine its license. Files in system/ folder in CodeIgniter package (CodeIgniter 3.0 is not released, so there is no package file yet) are licensed under OSL, and files in application/ folder are licensed under AFL.

If you copy a file in system folder to application folder, it is still licensed under OSL.

OSL defines Derivative Works as "to translate, adapt, alter, transform, modify, or arrange the Original Work". It does not use technical terms, but uses copyright law's terms.

Controllers of CodeIgniter normally inherit (use extends keyword in PHP) OSL licensed CI_Controller class, and Models inhrerit CI_Model class. Inheritance means extending the original class or altering a function of the original class, so I have a question that inheritance does not create derivative works.

If you think derivative works widely, an application based on CodeIgniter as a whole is a derivative work, and it contains OSL licensed files and AFL licensed files in application folder, so is in contradictory state.

The below blog article says like that:

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/

If you think derivative works narrowly, you can think it is not a derivative work if you do not alter the original files.

An explanation by OSL author says:

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

But it is still not clear to me, class inheritance does not create a derivative work, and all linking to unchanged original work can be always "independently-written" work.

In this case, (if you think inheritance is the same as linking) you don't have to adopt OSL to your own controllers and models, but if you change CodeIgniter system files (replacing core, libraries or helpers), the files must be licensed under OSL as a derivative work (except you create the files from zero, not using the original code at all). So you have to give source code.

(Nov 02) EllisLab thinks derivative works narrowly.

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

You must make visible to visitors of your CodeIgniter website that it runs on an application that is licensed under OSL.

OSL requires you to make a reasonable effort to obtain the express assent of recipients to the terms of OSL License (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).

And to plug ASP loophole, network usage is also treated as a distribution (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).

As a result, if you use it on your web site, you are treated that you distribute your software to visitors of the site.

The below blog article explains like this:

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/

OSL requires you to make public the source code.

You can't use CodeIgniter after your consideration about the license

On business, you can't adopt CodeIgniter as a framework of your application deveopment in no time, except if you love OSL (if so, you are very rare).

You have to begin with understanding unknown copyleft license, OSL. And the freedom of license choice to your developed application is surely narrower than current "CodeIgniter License".

And the license change may destroy current business of CodeIgniter based products sellers.

Making web site visitors known of OSL application usage, I don't know what must I do. Strictly thinking, must I show the license to web site visitors and let them push "I agree" buttom?

The situation like this cause many developers to pause using CodeIgniter. Not a few CodeIgniter developers will switch to other frameworks.

To CodeIgniter users whom you think the change is not good

In CodeIgniter official UserVoice, there is a request for "GPL compatible non-copyleft popular licesne".

If you are CodeIgniter user, and you think the license change is not good for CodeIgniter, please vote to it.

If CodeIgniter have a GPL compatible non-copyleft popular licesne like other major frameworks, you don't have to think about the complex legal matter, and you can keep to use CodeIgniter as before.

The discussion about the license change: