But then some said, that using GPL for my library is far too restrictive, and by doing so I would ban all the potential commercial uses of my library.
This can’t be true, I thought. But then I did some research and decided to change my license to LGPL. Not because I was wrong, but because too many other people were wrong.
The Misinterpretation of GPL
It's the same with real world viruses. Most people are afraid of coming to contact with person who has HIV, although you won’t get infected by just touching. But the fear, uncertainty and doubt are all there, saying, that you better stay away.
Similarly many people are afraid of using GPL-ed components when building their website. They think that then they have to release all the code of their website also under GPL.
They are totally wrong, because all free software licenses allow you to use and modify the program how ever you may please. These are the freedoms 0 and 1:
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.
GPL will only concern you, when you want to distribute your software. And running a website powered by GPL-licensed software is not distributing. There is even a FAQ about this on GNU homepage:
A company is running a modified version of a GPL'ed program on a web site. Does the GPL say they must release their modified sources?
The GPL permits anyone to make a modified version and use it without ever distributing it to others. What this company is doing is a special case of that. Therefore, the company does not have to release the modified sources.
And contrary to what most people think, GPL is not the most restrictive free software license. If you want a really restrictive license, then you should choose GNU Affero GPL – running a website powered by AGPL-ed software, does require that you publish all your sources. The same GNU FAQ goes on to suggest using AGPL:
It is essential for people to have the freedom to make modifications and use them privately, without ever publishing those modifications. However, putting the program on a server machine for the public to talk to is hardly “private” use, so it would be legitimate to require release of the source code in that special case. Developers who wish to address this might want to use the GNU Affero GPL for programs designed for network server use.
Most people haven’t even heard of AGPL, they only know about GPL. And because GPL is the only viral license they know about, they think, that it must be the most infectious thing on the planet.
Ext JS GPL Controversy
Some time ago the licensing of Ext JS framework was changed to GPL and a whole hell broke loose. Hundreds of users wrote to a fairly long Ext forum thread, seeking answers to their questions about the new licensing model.
Ext JS licensing has been a mess. Previously Ext JS was seemingly licensed under LGPL, but with several extra restrictions:
Ext is also licensed under the terms of the Open Source LGPL 3.0 license. You may use our open source license if you:
Want to use Ext in an open source project that precludes using non-open source software
Plan to use Ext in a personal, educational or non-profit manner
Are using Ext in a commercial application that is not a software development library or toolkit, you will meet LGPL requirements and you do not wish to support the project
Many users were unhappy about it, claiming either, that Ext JS is not free software at all, or that because of some clauses in LGPL, users are allowed to freely remove the extra clauses added to LGPL.
Anyway, most people were quite happy, because they knew that LGPL is a light version of GPL and therefore harmless.
Then came the license change, people saw the terrible viral GPL and went completely nuts. They were wondering, do they have to publish all the source code of the web site they were using GPL-ed Ext JS on, or do they have to buy a commercial license for that?
Given that most people aren’t experts in GPL, this was completely normal. But it wasn’t normal that the authors of Ext JS didn't gave any clear answer to these questions. They pointed people to the Licensing FAQ, which for some reason doesn't provide answer to the real most frequently asked question: Can I use the GPL licensed Ext JS on my website without publishing all the source code of my site?
The license change from false-LGPL to true GPL was certainly step in the right direction, but it was presented to the community with a great dose of FUD. Not a nice thing to spread Jack, not a nice thing to spread...
Is GPL Worth the Trouble?
And this is the reason, why my jintervals library is also licensed under LGPL – to avoid needless confusion.