Understanding open source software licenses: An overview [part 4]
This is the 4th article in a series giving a practical overview of intellectual property rights, targeted towards normal people like you. This one talks about the GPL (The GNU General Public License) and other such"open source" software licenses, and what does a regular business need to be careful about with regard to such licenses.
As indicated in the article on understanding copyrights, copyright laws are what prevents you from simply making copies of CDs of Microsoft software and getting rich selling it to other people. (Well, theoretically, at least!) The owner of the copyright can decide how much money needs to be paid every time someone makes a copy of the software. That is the reason why, even if your company buy one CD of Microsoft Office, you cannot just copy it and use it on all 15 computers. You have to pay Microsoft for each copy. (I’m sure you’re all doing that – this article just explains why.)
In the 1980s an idea emerged that software should be free, and they came up with the idea of attaching a copyright notice to their software saying that the software was free for anybody to copy and reuse, as long as they adhered to a few conditions. These conditions are different for different free software licenses, and we will discuss the more popular ones in this article.
Contents
GPL: The GNU General Public License
This is one of the most popular free software license. For example, most distributions of the Linux operating system are licensed under the GPL. Basically, the GPL says that you can use and modify the software as you want, but if you give the software to someone else (i.e. if you distribute it) you must provide them the source code of your software (including all your modifications) to that person under the exact same license. i.e. you must provide the software to all your customers, for free, under the GPL.
If you’re a business that sells software services or products, you need to be careful of the GPL. If one of your developers downloads some GPLed code off the internet, and copy-n-pastes parts of it in your code, then you’re in trouble. Legally, you would have to make the entire source code available under the GPL – something you probably don’t want to do.
Note: an employee using GPLed software on his desktop/laptop is not a problem. It can become a problem only if he copies some of the GPLed code into your software programs.
LGPL: The GNU Lesser General Public License (informally: the Library GPL)
How can Oracle sell a Linux version of its software? The Linux version of Oracle can only work when linked against the Linux operating system libraries. Hence, doesn’t the GPL force Oracle source code to also be released under the GPL?
Actually, this was a problem for for many proprietary software companies who wanted to make their software available on Linux but did not want to open source it. It was for this purpose that the LGPL was invented. It is intended as a license for releasing software libraries, and is pretty much the same as GPL, but in addition, it specifically says that any software that only links against this library does not have to be open sourced.
The LGPL is what allows you to sell programs compiled with the gcc compiler, in spite of the fact that your program is linked with the GNU standard C library.
Apache License
Not everyone agrees with the GPL. Supposed I wrote some software and want to make it freely available to anyone. I would also not mind it if a commercial company used my software in their products. I don’t expect them to open source their software (which would be necessary if I had GPLed my software), but I would like them to give me credit in their documentation. This is precisely what the Apache license does.
The Apache license basically says that you can use and modify the software as long as you include an appropriate attribution in the documentation that is distributed as part of the software.
Obviously, proprietary software companies like Apache much more than they like the GPL. This is one of the primary reasons why the Android platform uses the Apache license – to make the large mobile phone companies more comfortable with building their proprietary software on top of this platform.
The Affero GPL
Considering how much GPLed software is used by Google internally, how come no one is forcing them to publish their search algorithm under the GPL? The reason for this is that Google has not "distributed" the software they use for search. You can go to Google’s website and use the search software, but the software never leaves Google’s computers. Thus Google can use any kind of GPLed software in their search algorithms (and they use lots and lots), but their search algorithms remain proprietary.
In general, as the Software-as-a-service model becomes more and more popular, the GPL is losing some of its power, as more and more companies can build proprietary products using GPL software without ever contributing back to the community.
The Affero GPL fixes this problem. It is essentially the same as the GPL, but with the added requirement that if you make your software available as a network service, you still need to make the source code available to users, under the same license.
At this point, not many software programs are released under the Affero GPL, but I expect this to increase.
License compatibility issues
Consider the following case: I am writing a program and I use some GPL software and some Apache software in my program. What license do I need to release my own software under?
The answer is that I need to release it under GPL. This is because that’s one of the conditions under which I was allowed to use the GPL software in my program. The Apache license allows me to release my own program under the GPL as long as I include an appropriate attribution in my documentation. In this sense, the Apache license is compatible with the GPL. (It is interesting to note that the license under which the TeX software is distributed is incompatible with itself!)
However, it is possible that some license might not be compatible with the GPL. For example, an older version of the Apache license insisted that all advertisements about your software product must include a line attributing the original software that you reused. This is incompatible with the GPL which insists that the new software must be released under the GPL without additional conditions. And the additional "advertising clause" is incompatible with the GPL.
This means that I cannot release this new program!
This is something that every business needs to be careful about. If you include code from two or more different free software licenses, then you better make sure all those licenses are compatible with each other.
All of the above is a major over-simplification. There is lots of fine print. You can get an idea by looking at the GPL FAQ. But this article should be enough to know what kinds of questions to ask when dealing with open source licenses, and when you should start worrying. The motivated reader is encouraged to spend some time with Wikipedia for more fascinating reading on this topic.
Arun’s comment: Navin is writing series of articles pertaining to copyrights & patents. This is a 4th in the series. we will be featuring the last one in the series tomorrow.
Copyrights, Patents & Intellectual Property Rights: An Overview
Understanding Patents further
Understanding Copyrights further
Understanding Open Source Software Licenses (current)
Copyright issues for bloggers, website owners and other content creators
I find this post while researching for GNU GPL license details. No doubt, this post briefly describes the famous software licenses. But I think the post is little out dated and need to be refreshed by adding the new licenses and their versions that has been introduced after publish of this post.
great !!
Thanks a lot Navin
Fantastic article! I found the Apache vs. GPL license explanation very useful. I was wondering whether I should use GPLv3 for my “Service to Society” Free & Open Source software for rural Indian society startup. Now I feel Apache is the better one for it as I don’t want to force potential users/distributors to be Open Source.
Thank you so much, Navin.
Hi Navin,
Another excellent post.
Cheers.