Tivoization is a term coined by Richard Stallman and the Free Software Foundation (FSF) to refer to what they believe is a violation of the GNU Public License’s (GPL) spirit, if not its actual wording. In response to Tivoization, as well as a few other concerns, the Free Software Foundation released a third version of the GPL in 2007. The wording of the GPLv3 is considerably stricter than that of the GPLv2 and other software licenses, and has been criticized by many in the open source community. The stricter language of the GPLv3 has even been blamed for the current migration from the GPL to less restrictive licenses such as the BSD or Apache licences.
This article aims to explain what Tivoization is, why it’s such a polarizing issue in the community, and why it might be something we have to deal with.
What is Tivoization?
Tivoization is named after the TiVo, the first consumer DVR which made time-shifted programming the reality that it is today. The TiVo ran both the Linux kernel and the GNU userland software, and in accordance with the terms of the GPLv2, released all of the appropriate code. As far as the GPLv2 was concerned, TiVo was fully in accordance with the letter of the law.
But there was a problem. Due to requirements put in place by the TV networks and content providers, TiVo had to lock down their hardware so only approved software could run on it. That means no modifications to the original TiVo OS, and no installing a different OS on your TiVo device. The FSF believed this to be in contradiction to the Four Freedoms, claiming that the device had to allow modified versions of its OS to be installed and distributed.
Unfortunately for the FSF, the GPLv2 had no such clause; it only put requirements on software, nothing about hardware. In response, the FSF put a special clause into the drafts for the GPLv3 that specifically forbid a device manufacturer from using GPL software unless that device could have its installed operating system modified or replaced.
The Case for Tivoization
Many people in the industry were critical of the FSF’s stance on Tivoization, including Linus Torvalds himself. To critics, the GPL had no place telling hardware manufacturers what they could or could not do when designing their devices:
Stallman calls it “tivoization”, but that’s a word he has made up, and a term I find offensive, so I don’t choose to use it. It’s offensive because Tivo never did anything wrong, and the FSF even acknowledged that. The fact that they do their hardware and have some DRM issues with the content producers and thus want to protect the integrity of that hardware.
“The kernel license covers the *kernel*. It does not cover boot loaders and hardware, and as far as I’m concerned, people who make their own hardware can design them any which way they want. Whether that means “booting only a specific kernel” or “sharks with lasers”, I don’t care.
More to the point, the decision was out of the hands of TiVo to begin with. The requirement to lock down the hardware came from the content creators that wanted their property protected. There was concern that an easily modified TiVo would make it very easy to pirate TV shows and movies, as the main function of the TiVo was to record live television in compressed digital format. The irony is, had a provision like the Tivoization clause been included in the GPLv2, the TiVo likely would never have been made in the first place, or at least, it wouldn’t have been running GPL software. Linux would have been deprived of one of it’s first and best examples of how useful the young operating system could be outside of the datacenter.
A Moot Clause
For all the bad publicity its gotten the FSF, the GPLv3’s Tivoization clause has done very little to change how GPL licensed software is used in consumer electronics. The biggest problem is that the piece of software most often used in these types of applications, the Linux kernel, can never be licensed under the GPLv3; so the Tivoization clause will never effect it. Even if Torvalds approved of the GPLv3 (which he clearly does not), the fact of the matter is that changing the license on a piece of software requires the agreement of all developers who contributed to the project.
The Linux kernel, being one of the most prolific open source projects in history, has thousands and thousands of developers. Even if you could track down each and every one of those developers (which is in itself impossible, as some may have died since their contribution), the chance that you could get every one of them to agree to a license change is essentially zero.
With the Linux kernel safely outside the reach of the Tivoization umbrella, what’s left to protect? The GNU userland utilities are protected by Tivoization clauses, but all a hardware manufacturer has to do is use the GPLv2 licensed kernel and run a different userland on top of it, which is exactly what Android does. If a manufacturer doesn’t want to go through the trouble of creating their own userland to interface with the Linux kernel, they can always use the extremely popular BusyBox, which is also under the GPLv2.
An Acceptable Loss
The question of whether or not Tivioization is justified is idealogical; is it better to spread open source software, or to protect the ideals behind it? Should the free software community deprive itself the opportunity to shine on a technicality? Is there no such thing as a compromise with free software?
As free and open source software widens its influence on consumer electronics and other mainstream devices, these questions will become increasingly common. At some point, the community needs to decide what is an acceptable loss of freedom in return for expanding the use of non-proprietary open source software and protocols.
Consider if open source browsers like Chromium or Mozilla Firefox would disallow the user from visiting the sites of closed source software developers? Should the ideals of one developer or piece of software be imposed on the user? Is that not, in itself, depriving the user of their freedoms? The issue is well summarized by Torvalds himself when he says:
If I build hardware, and sell it with software installed, you can still copy and modify the software. You may not do so within the confines of the hardware I built, but the hardware was never under the license in the first place.
In other words, GPLv3 *restricts* peoples freedoms more than it protects them. It does *not* cause any additional stated freedoms – quite the reverse. It tries to free up stuff that was never mentioned in the first place.