To GPL or not to GPL

By jason, 29 May, 2009

Why would anyone want to work on a project, whatever that project may be, and then give it away for free? Looking around the Internet its very easy to see that the Internet was and continues to be built on free, Open-Source software. It powers the DNS systems that convert human-readable names into IP addresses, through ISC's BIND server. It powers the email system, through software such as Sendmail, Exim, and Postfix. Half of all the web sites out there are powered by the open-source Apache server. A significant portion of those web sites are more than just static pages that get updated occasionally. People write their own blogs. Chat sites and discussion boards are incredibly prolific. Then there are the news sites out there. And yes, the software that powers many of these constantly changing sites, as well as the underlying programming languages that software is written in, are often free, open-source packages. On top of all that is the web browser itself. Mozilla Firefox is rapidly catching up to Microsoft's Internet Explorer, and I would expect that within the next couple of years will actually overtake it. Even the underlying operating system software is frequently some distribution of Linux or some variant of BSD, all of which are freely available for little or no charge. Clearly, the Internet would not be what it is today without this free software, many of which are labors of love by their authors.

So the question still remains. Why in the world would someone exert so much time and energy into a project, many of which as shown above are critical to our everyday life, and then give it away for free? For some, it is a matter of necessity. Modifications to software licensed under the GNU General Public License must be licensed under the GPL if they are released. Yes, someone could charge for the modification, and oftentimes, those modifications are specifically funded projects anyway, but once it has been released, the recipient is free to continue re-distribute it until the price-point of the change is effectively zero. In other cases, its a sense of duty or responsibility. If someone is using a free package and subsequently makes a change to it, they may feel that returning that change to the community whence the original package came is a way of payment for the package itself. Still others may take the approach used by cellular phone carriers and video game manufacturers. The software itself is given away as a loss-leader to other products. Those products may include books, technical support, or even advertising space on the web site. There are a lot of companies out there who have made a lot of money (and continue to make a lot of money) with that business model. After all, its easy to get an individual consumer to use a piece of free software without tech. support. Convincing a CIO, however, that they should use a free piece of software, with no support to back it up, is a daunting, if not impossible task. If you can provide an enterprise-level support contract with that free software, however, the sale becomes a lot easier; essentially, the CIO has someone to blame if something goes wrong.

Personally, I fall into the latter two categories. One the one hand, if I'm producing say, a module for Apache, I feel a sense of responsibility in returning that contribution to the community so that others may benefit from it in the same way that I have benefitted from the use of Apache (since this site would not exist without Apache). On the other, there are plenty of ways to make money off of the software I write, without charging for the software directly. One way is through the use of advertising, whether that is Google AdSense for generic ads, Amazon Affiliates for books related to the topic, or some other kind of advertising. I could always write "the definitive thesis" on my software and sell that. I could create some sort of support service for the software and charge for that. In any case, if the software proves to be popular, the amount of revenue from any of the above methods would be quite proportionate to the popularity of the software.

But why should someone use the GPL for software they're creating? The GPL is viral, causing every derivative work created from it to be released under the GPL, and consequently, the source code to those modifications. This requirement can a turn-off to companies wishing to incorporate and thus proliferate the software I've created. The sad truth of this statement is that it is a turn-off to companies that want to make some money off of someone else's work without compensating that person for that work in a manner that the creator of that work deems fair and equitable. In the case of the GPL, fair and equitable is defined as releasing the modifications made to the software in creating the derivative product.

Let me tell you a story about a project known as the Java Model Railroad Interface. The JMRI software is released under the terms of the Artistic License, a license that merely requires attribution of the original authors. Another software developer took some files from the project and incorporated them into his own project, removing the copyright and attribution sections of the files, in violation of the terms of the license. US Federal Court determined that the distribution in violation of the terms fell under the jurisdiction of state contract law and not federal copyright law. As there was no consequence for license violation specified in the license, which the District Court determined was a contract, there was essentially no legal remedy. At the moment, this decision is under appeal.

You see, where there are no consequences for a violation of a contract, United States copyright law is a little different. Normally, the penalty is an amount equal to the actual financial loss of the copyright holder. In the case of open source software, however, the loss is non-existent becasue the software is available for little to no cost. US Copyright law has a provision, however, allowing the author of an infringed work to collect statutory damages from the infringing party. These damages can range into the thousands of dollars.

The GPL ensures that any action resulting from a breach of the license sounds in copyright law, rather than contract law, with the terms of section 8. By distributing software in violation of the terms of the license, an organization's license to further distribute that software is terminated. Without a license to distribute the software, the JMRI problem of whether the violation sounds in copyright rather than contract law, and provides the author with a facility for collecting damages from the infringing party.

The existence of the termination clause in the GPL is the overriding reason why I choose to release my software under the terms of the GPL, rather than some other open source license.

Blog comments

Blog tags