This is the first part of an article duo about open source. This article is inspired by recent policy stipulated by the Joomla team that all joomla modules and components must comply GPL license, the license Joomla has been using since the announcement of its first official release in 2005.
In 2004, I attended a one day seminar about GPL license and the spirit behind open source community entitled “Free Software: Past, Present and Future”. Richard Stallman, the father behind GNU, took the lead as a key speaker. It was an interesting session. Besides the material, Stallman himself was an eccentric person for me. He came and did speech with long hair, t-shirt, and torn jeans. He reflected the word “freedom” itself. Did you see a glimpse of the word “renegade” coincidentally?
Free Is Not Totally Free
The word free has different meanings. If one cares to look up all definitions in dictionary, free is limited to certain terms although it generally means no limitation. From this interesting fact, let’s dig what public assumption is about free software.
In daily practice, free software is often associated with freeware. In fact they are a bit different. Citing wikipedia, freeware is copyrighted computer software which is made available for use free of charge, for an unlimited time. The keyword here is “free of charge”. This is the critical point which oftentimes misleads users with free software.
Why GPL Rolling
Now back to GPL license. According to Stallman himself, one reason why he chose to leave MIT AI Lab and decided to start the GNU project is the limitation of proprietary software he worked on. Given a proprietary software sold to public, when customization needs to be done, one needs to directly contact software vendor to do the modification. This often results in 1)more time needed to get the modified version because of product modification queue, 2)extra cost outside the original package whilst sometimes the cost is expensive, or 3)no modification can be made because software vendor is unwilling to do for several reasons or the modification cost is not affordable. For tech savvy or someone with ability to modify software himself this can be bothering because he doesn’t possess full control in the software he’s bought.
Stallman started the GPL project to advocate software freedom, hence the free software. He defines 4 types of freedom for software:
- The freedom to run the program, for any purpose (freedom 0)
- The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2)
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this
From the above lists, freedom (1) and (3) imply open source (and free to modify) software while freedom (2) points out that free software is redistributable by users. Now, let’s see how GPL reflects the freedom.
This is a phrase taken from section 2 of the license: Basic Permissions, within Terms and Conditions part of the GPL :
You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force
Some terms you might need to know from above phrase:
- A “covered work” means either the unmodified program or a work based on the program
- To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work
- To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries include other activities as well
- To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying
If we read the phrase carefully and pay attention to the terms, we can see that GPL grants freedom to software as referred to the basic freedom on software. There is no statement about price on the freedom, though.
Setting Price Is Not A Sin
Developers need some funds to develop and maintain software. Not all projects are financially funded by legit institution. Some are personal projects with tight budget. To keep the project rolling and improving, developer should be able to get compensation for the work, just in case he can’t fully contribute the work as charity. There are two common directions taken, asking for donation or selling the application for a price.
You may ask, will selling your own software with GPL license break the license? No. There are several sections in GPL license and GNU website which show statement on price and selling. Let’s bring some of them to the table:
- GPL license preamble
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish),
- GPL license Terms and Conditions, Section 0, subsection 1
- GPL faq: GPL may cost money
Reference url: http://www.gnu.org/licenses/gpl-faq.html #CompanyGPLCostsMoney
- GNU philosophy on selling software
Reference url: http://www.gnu.org/philosophy/selling.html
… You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
Now, if GPL-ed software can be sold like software with commercial license, are they no different? No, they are very different. If you sell software with GPL license, every time you make a sell, you transfer all the rights to the software buyer. This means that the buyer may run, modify, and even resell the software for another price. What to keep in mind is the redistribution must be in GPL and every modification needs to attribute credit to previous author and modification history.
It’s now clear that GPL must be free of charge is only a myth. Anyone can ship his software in GPL and get money from the distributed copies.
The Pitfall: Anti Patent Software
Since GPL implies no protection to intellectual property (IP), this license is less popular for software company. GPL indicates access to source code, hence the logic behind the software.By revealing the source code, companies indirectly expose and transfer their intellectual property to the public and some (not to mention many) are not happy with that.
A software patent is usually filed under a person’s name or institution. One should pay royalty to patent holder, unless it’s stated otherwise, when they make use or advantage of the patent. GPL-ed software implies software to be publicly owned and no patent can be filed for the software (unless the patent is filed under public name).
This is the point where software companies usually draw back from GPL and choose another license. When companies create killer apps, they usually prefer to keep the IP, not releasing it to the public and keep the development, support, and maintenance to themselves so that the business can keep on running and taking profit or other varying reasons.
However, there are some business models on software which rely on the power of GPL when running the business. This way, the companies can still survive and book profit. We’ll discuss this on the next article.