Yep, the GNU General Public License, version 3, was released today. The GPL is the license that governs a large proportion of open source projects, under its (until today) current v2 form. This includes the Linux kernel.
Of course, one of the big buzz topics surrounding the v3 license is that it has provisions aimed very deliberately at TiVo and the ‘TiVoization‘ of free software. The Free Software Foundation, which issues the GPL, has not been happy with the kind of commercial use TiVo has put GPLv2 software to. Specifically, Richard Stallman isn’t happy about it, and he’s basically the embodiment of the FSF.
So the GPLv3 is bad news for TiVo, right? Wrong.
This release means pretty much nothing as far as TiVo goes. I’ve written about this in detail before, but I’ve already seen a couple of posts today talking about the impact on TiVo so I thought I’d jump in here again.
The Linux kernel development is basically controlled by Linus Torvalds, who originally created it. Linus is on record as being unhappy with the provisions in the GPLv3. He is ‘happier’ with the final version than he was with the early drafts, but not ‘happy’. He’s said that he doesn’t expect to migrate the Linux kernel from v2 to v3. It *could* happen, but there would have to be a very good reason. The most compelling reason could be if Sun puts the OpenSolaris code out under the GPLv3, which they are considering doing. There are a number of features in Solaris that would be very useful in Linux, and vice-versa, but code from one cannot be used in the other as the licenses are not compatible. If Solaris moves to GPLv3, that would be major incentive to move Linux to GPLv3 so that code could be shared.
However, it isn’t a simple matter of just switching the licenses. The Linux kernel is made up from code contributed by thousands of different contributors. *Every one* of those contributors would need to be tracked down and contacted to get their approval to re-license their code under GPLv3. Contributors range from individuals to giant corporations like IBM. And some of the people have died, so their estates need to approve the switch. Inevitably, some of the code will not be able to make the move – the contributor cannot be contacted, or just refuses. Any such code would need to be replaced with brand new code released under the new license.
Clearly, this is not something that will happen overnight.
Meanwhile, even if the code makes the migration, any code released under the GPLv2 remains under the GPLv2 for perpetuity. The license cannot be revoked. So TiVo can continue to use the v2 code indefinitely. If and when the code migrates to v3, TiVo could grab the last generation of v2 code and continue to use it forever if they wished. TiVo isn’t on the bleeding edge of Linux kernel development as it is, there is no need to move to the latest as most of the features added don’t impact the type of use they use it for.
But let’s assume for a moment that the Linux kernel does migrate to GPLv3 and, for some reason, TiVo cannot continue to use the GPLv2 code. What then?
Well, they could move to the GPLv3 code and comply with the new license, of course. It can be done, but it would require changing the way the system is architected, most likely.
That’s not the only option. Linux isn’t the only platform available. There are BSD Unix platforms like FreeBSD, OpenBSD, and NetBSD. All of these are licensed under the BSD License, which is much more permissive than the GPL when it comes to commercial applications. And there are commercial alternatives, like VxWorks.
Another alternative would be a complete architecture change – to Java/OCAP. TiVo has already developed Java-based software to run on OCAP-compatible cable DVRs. That same code base could be evolved to run on a standalone box. You could have a new platform with a Java-friendly CPU as a dedicated platform for the software.
In other words – don’t worry about it. This is unlikely to have any impact on TiVo. And even if it does, it won’t be any time soon, and it won’t be a disaster.
Life continues apace.