CodeIgniter OSL 3.0 Compliance Examples
December’s PHP framework survey helped us to see how you were using CodeIgniter so we could provide concrete examples of how easy it is to use Open Software License 3.0. We discovered that 95% of the respondents use CodeIgniter in one of three ways. We are providing an OSL 3.0 compliance example for each scenario to show how easy the obligations (and EllisLab) are to satisfy.
Also, keep in mind that CodeIgniter’s OSL 3.0 license does not apply to your own code (the application folder) unless you have chosen to license that as OSL 3.0 as well.
The content in this article is neither legal advice nor a legally binding interpretation of OSL 3.0. We are sharing our opinions, thoughts and conclusions which we hope are helpful to you. You should consult an attorney with questions regarding your specific legal needs and the terms or interpretation of any software license.
Web Sites and Services for Myself
My name is Webb Tinkerer, and I use CodeIgniter to build web sites and services mostly for myself. I use it for my personal site, for instance. I have built sites for my friends and some coworkers, but I’ve not yet billed anyone as a client, as I’m still learning and have a full-time job that’s unrelated to the web.
My use of CodeIgniter is an unmodified stock installation, in fact I update it nearly daily from GitHub’s develop branch. My application folder is a hodge-podge of my own code, and all kinds of libraries and classes I’ve found around the web. Some are MIT licensed, some are BSD, there are a couple LGPL, and I even have one commercial script with a proprietary license. I don’t share my application folder with anyone.
How did I decide to reasonably make the source code of the OSL 3.0 licensed CodeIgniter files on my site available for those who want it? I have a Powered by CodeIgniter link in my footer that points to the official GitHub repo. CodeIgniter rocks!
Self-Employed, Powering Sites and Services for Small to Medium-sized Businesses
My name is S. E. Owens, and I am a self-employed web developer. Most of my clients are small to medium-sized business either looking to improve their web presence, or to execute their idea for the next great tool or service on the web. Some of them even come to me because they’ve chosen CodeIgniter already so they can ensure that it’s easy to find a skilled developer down the road, and they found me via the CodeIgniter community.
Most of the time I use CodeIgniter off-the-shelf, but every once in awhile I apply a simple hack here or there to change the system to how I prefer things to work. For instance, there’s this hack that I make to the Session library every single time, and rather than maintain a MY_ class, I have a fork on GitHub that includes my improvements, so that when I make changes to it, it’s super easy to deploy to all of my clients.
How did I decide to reasonably make the source code of the OSL 3.0 licensed CodeIgniter files that I’m distributing available for those who want it? Well, as I mentioned, I forked CodeIgniter at GitHub, and my fork is public. My hack to system/library/Session.php keeps EllisLab’s Attribution Notice, but also includes mine:
Modifications to this file by S. E. Owens are Licensed under the Open Software License 3.0 and Copyright (c) 2012, S. E. Owens. Questions regarding the modifications or the license should be directed to email@example.com
And though OSL 3.0 doesn’t burden me with doing so, on my online portfolio, I highlight that I am an top-notch CodeIgniter developer and link to the technologies that my client sites were built with, including CodeIgniter. I have a lot of PHP projects and CodeIgniter related work at GitHub that I also link to from my web site, including my fork mentioned previously with my Session improvements.
Agency Building Sites for Medium to Large Businesses
My name is Joey Bloggs and I’m the CEO of Fake Foo Creative. We build sites for many large organizations: Fortune 500 companies, universities, government agencies, and non-profits. We use a variety of technologies in our work, and typically our clients do not allow us to disclose the technologies nor the source code used to build their sites.
A few projects are for distributable open source applications, so we just licensed the whole shebang as OSL 3.0 and the source code is available from those products’ web sites. However our client work is largely unshareable, so when we use CodeIgniter, we are careful to make the changes only within the application folder, either with new libraries or by extending CodeIgniter’s classes. This way, we are sure that all of the code that relates to our clients is under whatever license we or they desire, even if we are modifying or extending CodeIgniter significantly.
How did we decide to reasonably make the source code of the OSL 3.0 licensed CodeIgniter files that we’re distributing available for those who want it? On our company web site, we link to our official presence on GitHub, and one of our repositories is an unmodified fork of the official CodeIgniter repository. We have separate repositories for our open source OSL 3.0 licensed CodeIgniter applications since those are not linked dynamically to the official CodeIgniter repository.
These scenarios were hypothetical examples that encompass nearly all of the reported use cases of CodeIgniter. Hopefully you were able to identify yourself somewhere along the way and if you were previously unsure what CodeIgniter’s upcoming use of OSL 3.0 means for you, we hope you’ve gained some clarity. These examples do not limit your options either. Remember that the license’s wording is as follows (emphasis ours):
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.
We used GitHub in the examples not because that’s required - OSL 3.0 doesn’t allow us to demand that specific methods are used - but because for most, it will be the most obvious and the simplest. You could:
- host downloads on your own sites
- use other public source code repositories (BitBucket, Sourceforge, Google Code, etc.)
- mail physical copies to people who call you asking for it
The interpretation is broad because what OSL 3.0 (and EllisLab) asks is essentially to use good judgment. If you are using CodeIgniter, acknowledge and share the original or modified work in some way under the same terms you received it in a location and method that is reasonably determined to be inexpensive and convenient.