Today sees the release of the GPL version 3, a license that will either ensure software freedom in the future or split and ultimately destroy the free software community (depending on who you speak to).
As yet, I’m undecided as to how I’ll be using the GPLv3 for my own projects. On the one hand, I do want the extra freedom-ensuring clauses v3 adds, but on the other hand I don’t want to make my code unusable by the many, many applications out there using v2. I suspect for the moment I shall leave things as they are: licensed under v2 with the ‘any later version’ clause so anyone wanting to use my code under v3 code can do so. At some point however, I will have to switch to v3 properly else my code won’t benefit from the extra protections in v3. Before I can do this, I’ll need to thoroughly investigate compatibility issues – e.g. is something it depends on v2 licensed (generally most core libraries under Linux seem to be under a BSD or similar license, leaving the developer free to choose their own license for their work).
One of the main things people seem to dislike about the new license is the anti-tivoisation clauses. Personally, I find tivoisation very irritating and often there is no excuse for it. My company bought an expensive NAS device from Thecus – it’s essentially a PC running Linux. The firmware was/is fairly buggy and there were initially some very serious issues (e.g. a 2GB file size limit imposed by the versions of NFS and Samba it was running). I wanted to fix these problems, which would have been easy to do, but was unable to do so. Sure I could get the GPL-licensed source code, but the box wouldn’t run my modified binaries without them having been encrypted by Thecus. That’s not fair, and it removes my freedom to use free software.
While I’m talking about the GPL v3, I’d like to publicly state that all the contributions I’ve made to GPL-licensed projects may be considered licensed with the ‘any later version’ clause – so if I’ve contributed to your project where the license stated GPL v2-only, you do not need my permission to change to v3 or add the ‘any later version’ clause; you already have it.



