GPL Upheld
Here’s some genuinely good news: the Gnu General Public License has been upheld in court. Again.
The GPL is a free software license. A huge amount of the most important free software, e.g. Linux, was released under the GPL. Very roughly speaking, it lets you do whatever you want with the code, except redistribute it without making the source code available, or (this is the biggie) distributing derivative works without releasing them under the GPL — the work is copylefted.
So I could make my own modifications to the Linux kernel, and I could even charge you for a copy of my new, improved kernel. But my modifications would be under the GPL. I would be obligated to give you a copy of the source code if you asked, and I couldn’t stop you from freely redistributing my kernel or source code.
The GPL’s critics complain that it’s not about giving away free code — it’s about forcing you to give away your code for free. And there’s some sense in which that’s true. But it also means that someone else can’t make trivial changes to your code and get rich from it while not giving anything back to the free software community and not giving you credit.
Microsoft CEO Steve Ballmer famously said “Linux is a cancer that attaches itself in an intellectual property sense to everything it touches,” going on to lie that “the way the license is written, if you use any open-source software, you have to make the rest of your software open source.” That isn’t even close — witness the commercial Linux distributions. They make available source code, including their own customizations, for GPLed code, but charge for CDs that feature both this code and their own proprietary code.
Critics have also liked to complain that the GPL is really unenforcible and had never been tested in court. Well, now that’s also not even close.
The judge in the recent case said:
[T]he GPL encourages, rather than discourages, free competition and the distribution of computer operating systems, the benefits of which directly pass to consumers. These benefits include lower prices, better access and more innovation.
I don't know much about the GPL; can you clarify how commercial Linux distributions work?
Wikipedia's entry on GPL says that it's unresolved whether dynamically linking against a GPL library constitutes a derivative work. It also says:
"A number of businesses are based on distributing a GPLed library and selling a separate license to companies wishing to link the library with proprietary code, whether dynamically or not. Examples of such companies include MySQL AB and Trolltech (Qt toolkit). Also, ReiserFS (Namesys) and Cygwin (Red Hat) are GPLed programs for which other licenses are offered. As there is no record of anyone circumventing the GPL by dynamic linking without backing down when threatened with lawsuits by the FSF or the respective copyright holder, the restriction is apparently de facto enforceable even if not currently de jure."
This paragraph seems contradictory to me. How are these companies able to link proprietary code against the GPL libraries? The last sentence suggests that the FSF threatens a lawsuit whenever this happens.
Posted by Ted on March 23 2006 14:36
I make no claim of expertise in the gritty details (and half-expected someone to complain about my sweeping overview as written.) That said, this is my inexpert understanding:
It's perfectly legitimate to dual license your code with licenses contradict each other. Users can choose which license to follow. If I want to dynamically link to something dual-licensed as you described in your example, if I'm writing something I'm happy to release under the GPL, then I'd follow the GPL. If I want my work to remain proprietary, I follow the other license (and, it's to be presumed, make an arrangement involving paying someone.)
So while companies can't link against libraries released only under the GPL, they can link to a dual-licensed library, even if one of those licenses is the GPL, so long as they're respecting the other license.
Also, a Linux distro is a complicated thing -- there are lots of ways to include propietary code in one that don't involve linking to GPLed libraries. (And many libraries are LGPL which permits dynamic linking by proprietary code.)
Posted by Zed on March 23 2006 17:43