Republished: A Word about the GPL

This was originally published on benscomputer.no-ip.org in June 2006

Introduction

As I'm sure is true for many in the Open Source Community, I have seen far too many websites spreading fear, uncertainty and doubt (FUD) about the GNU General Public License or GPL. This page is intended to explain the GPL without the bias that I feel several of the companies have and also to refute some of the myths I have heard propogating.


The GPL currently has two versions, Version 3 is being drafted as I type. When people refer to the GPL they usually mean GPL Version 2. Whilst this is the version this article will deal with, many of the concepts are the same. Therefore most things can be applied to Version 1 as well.

I am not a lawyer, however I have studied and researched the GPL in my free time. I believe I have developed a good knowledge of how this particular license works.
I should explain that there are a wide variety of Open Source Licenses that can be used, Including the Lesser General Public License, the BSD License and many others. This article however will focus on the GPL, however many of the concepts can be transferred to other licenses.

Background

The GPL was created by the founder of the Free Software Foundation, Richard Stallman. Version 2 was last updated in 1991, so at the time of writing it has been used for 15 years and new programs will probably be released under this for some time to come. Stallman strongly believes that all software should be Free - This refers to the freedom to modfify, distribute etc. not to the price - in order to help protect software authors that believe in this ethos the GPLV1 was drafted. The reason for the creation of the license was to help prevent peoples code from being integrated in to closed-source (or proprietary) programs and re-released under a closed-source license.  Stallman believes strongly in the concept of 'copyleft' which simply put is that everyone should have the right to modify code to make it meet their needs and then share that with the rest of the world.
The GPL license itself is under the copyright of the Free Software Foundation, and can be found here.

The Hypothesis

The GPL was designed to protect software Authors and Users alike, it is written with the rights of both in mind, and to best promote the four freedoms of software.

The Null Hypothesis

The GPL was designed to be restrictive and provides a serious threat of 'Intellectual Property' Litigation to users of GPL software. Under this assumption the GPL can 'infect' other software that you own the copyrights to, and can force the disclosure of your source code.

The Investigation

The GPL is often scrutinised by companies before making a decision on whether or not to adopt open source. This is undoubtedly a good idea, so long as your Lawyers have a correct understanding of the intentions of the GPL. This will not only allow you to avoid violating the GPL, but also allow you to use and release software in the spirit of the GPL. For example the company Tivo technically complied with the GPL by making the source code for their firmware available (Tivo's run linux), however they used a digital signature to ensure that only their software could run on the system. This was not a GPL violation, however it does go against the ethos of the Free Software Movement.
Before starting to analyse the GPL I wish to correct a widely used term, the GPL is not 'infectious.' The terms viral and infectious should not be used to describe the GPL. This term was first coined by one who has much to lose from the Open source movement. Remember that if you use a GPL program as the base for something you are planning to release you are using somebody else's code, so you must respect the provisions they have set forward. The GPL exists to protect Software Authors as well as users. The effect of the GPL upon the release of your code is no different to that of any 'proprietary' license - If you were to release some of Microsofts code under a license that was inacceptable to them, you would probably find yourself in court - The GPL gives you permission to use, release and modify the original authors code, but only under GPL. If this is unacceptable to you then there are three main routes you can take.

  • Firstly you can contact the Author and try to negotiate a different license, the GPL does not prevent this.
  • Secondly you could release the GPL program as a module, comply with the terms of the GPL, and release your code under your license of choice. (With the authors permission)
  • The Third choice is to program around the problem i.e. write your own code that removes the necessity of the GPL code.

Many people have suggested that using GPL programs means you have to show the source code of your program to the whole world. This is not true. You only have to release/offer the source code to anyone you distribute the GPL'd program to. This means that if the program is being used only within your corporation, then the only people who need to be offered your source code are your employees. The source can be distributed in a number of ways, you could include the source in the package - This method is used by many software authors - or you can include a written offering of the source code, and then host the source on a server. It couldn't really be much simpler.

    Returning to the concept of the GPL being viral, this is another untruth told by those who have the most to lose. I have seen it said that once you write a GPL piece all your software must become GPL. This is nothing more than FUD and bad FUD at that. You are the software author and you decide what you do with your code. However once you release something under the GPL you cannot rescind the rights of those who have downloaded it under those rights. What you can do is stop hosting the GPL'd program and maybe release version 2 under a different license (assuming of course you own the copyright to all the code). However all those who downloaded Version 1 keep their rights to distribute, modify and use the program they downloaded. They can also make changes and re-release it under a different version number. They still however have to to give credit to you, and you are free to use their software. This is seen as a fork of the project.

It has often been said that open source presents a risk to users in terms of 'Intellectual Property'. Those that propogate this rumour fail to mention this is not a risk related solely to Open Source Software. This is also an issue with closed source software, just take a look at Groklaws MS Litigation Archive for examples. In fact using Open Source is safer in several ways. Imagine you unknowlingly violate the a software license (by incorporating Software A in to your software B) The author of Software A contacts you to tell you that you are violating his rights under the license in question. With a closed-source license You have the following options

  • Go to Court and possibly pay damages
  • Settle outside court
  • Negotiate a new license
  • Stop distributing your program


Now using the same scenario if the code you use was released under the GPL by the original author then you have the following options

  • Release the entire program under GPL
  • Remove the GPL'd code from your software
  • Use their code as an outside module and release that with your program (With the original authors permission)
  • Negotiate a different license with the Author
  • Go to court and possibly pay damages
  • Out of court settlement
  • Stop Distributing your program
As you can see you have more options than with Closed-Source software, very few Authors will try to take you through the courts when you can comply so easily. That is not to say that if you do not conform that you won't go to court, however if you respect the terms of the GPL then you are far less likely to end up in Court.
The closed source business model presents a far greater risk if you infringe upon a license. Aside from the complexity of many of the proprietary licenses - making it easy to break them accidentally - almost every remedy you can take is going to cost you money, with Open Source the Copyright holder will usually be happy for you to just remove the code that causes the issue. For companies that consistently violate the GPL there are consequences. Its worth noting that most Open Source Authors are unlikely to settle out of court (financially at least) unless you agree to meet one of the other criteria (i.e. remove the offending code) because we are not after your money, we want to write code for all to use, but everyone must respect our rights as copyright holders.
Whilst the SCO vs IBM litigation has been portrayed by many as being about Linux, anyone who has been following it closely can tell you that it changed from linux a long time ago, and now appears to be about methods and concepts. Many have suggested that there are outside interests driving this case forward.

I have seen on occasion people saying "Well how can you make money from Open Source Software?" the answer to that is simple, ask Red Hat, IBM, Novell, Mandriva or one of the many others. It is possible to make money from Open Source, I believe Red Hat does so by offering Support Contracts for its operating system.

Similarly I have seen people claim that "There's no such thing as a free lunch", what they mean by this is that we do not get paid to write the software, so it must be of an inferior level. This is simply not true, we have in fact had a good discussion on this on the Linuxformat forums.
Not all open-source programmers work for free, some do in fact get paid for the work they do. The quality of a program has nothing to do with its price, especially in this arena. You would not judge a cars quality based on its price, in the same way a £3 bottle of wine is not automatically inferior to a £7 bottle of wine. The same goes for software, quality is not based on price, and can very rarely be judged by price alone. The concept that "it is free so it must be rubbish" is propogated by those who cannot or do not want to understand the Open Source ethos.

Conclusion

The GPL offers software authors the protection they need to release their code in the knowledge that no-one will have the right to steal their code and use it in closed-source applications. This allows authors to ensure they are given credit for their code and that other people do not try to make money from the code they have 'stolen'.
The GPL (and open source as a whole) also offers users (whether corporate or not) code which they can utilise freely, and adapt to their environment, this allows for greater flexibility. Instead of trying to mould the work system round a piece of generic software, or paying out for a bespoke solution, the system can be quite easily adapted using an in-house method of software development. Users are no more at risk from litigation than with any other license.
The four freedoms of software are preserved by the GPL;

  • To run for any purpose
  • To study and adapt to your needs
  • To redistribute, so you can help others
  • To release improvements, so everyone benefits

    It is very important to decide carefully on whether or not your company should adopt open-source. When deciding this try to remember that although re-training is likely to be necessary, it looks as though re-training will be necessary for the next release of MS Office. Linux may be portrayed as a Geeks OS however it is not actually that hard to use, and many distros aim to make the transition as seamless as possible. Consult with both your IT techs and your Law department, just remember what each department is supposed to be advising you of. The Law department should not concern itself with ease of implementation and the Tech department should not be concerned with Licensing.

    I hope that this article has helped to dispell some of the myths that propogate, and has advanced your understanding of Open Source and the GPL in general.


    Shifty_ben 14:43 24/05/2006


    Resources used:

    http://searchopensource.techtarget.com/sDefinition/0,,sid39_gci1001120,00.html

    http://www.gnu.org

    http://www.linuxformat.co.uk/index.php?name=PNphpBB2&file=viewtopic&t=3250&start=0&postdays=0&postorder=asc&highlight=


    http://www.google.com