GPLv3 and Tivoization

February 6, 2014
linux free-software fsf

First and foremost, a quick intro to GPL (General Public License). The General Public License was originally written by Richard Stallman in 1989 for the GNU Project. It clearly defines what is a free software. To be called such, a software needs to provide the user the following :

In fact, these principles were among things that attracted me towards use of free software years ago. The community built cool software & believed in sharing, on top of that they strived to protect that freedom. Had the freedom not been protected, software could have been easily exploited.

###GPLv3 Tivoization

Let’s cut short and come to GPLv3. I only started checking stuffs about GPLv3 when the debates involving GPL vs BSD started on facebook, friends’ walls, LUGM group etc. I knew the founding lines of GPLv2 but never bothered looking at the new additions in GPLv3 until now. I would only hear the ranting of developers here & there about restrictions in GPLv3. Curious, I wanted to know what were they about, as every article I would come across I’d find people complaining while not giving specific details/clauses that would make them rant.

From the FSF’s GPLv3 quick guide I found some new additions protected users from the following :

Above is an extract from FSF website.

hese made me go back again in time; FSF was founded to protect the hacker community allowing them to share software source code freely (as in freedom). For those freedom to be entertained perpetually, GPL was tossed on the table. It worked great. Thousands of software projects sprouted under the shadow of GPL. Software enthusiasts could tinker with code & share the passion.

Now, after more than 20 years, we have seen much technological advancement. While GPLv2 is still widely used, it did lack some features. GPL allowed to modify & run the code as one wishes. However, there was no mention about hardware limitation. What if the hardware is locked, not allowing you to run modified software? Nowhere in GPLv2 this was addressed. Hardware limitation was tossed as tivoization, following the example of use in a digital video recording product named TiVo.

###Let’s see how TiVo works

TiVo runs an embedded version of Linux and provides source code of the same. Thus it adheres to GPLv2. However, programs that run have a digital signature which is cross-checked with its counterpart burnt into the device chip. Modified code not having the digital signature would not run on the device.

When I came across this I could see how the fun in hacking was being murdered. Hardware hacking isn’t something new. You’ve been doing that since long. Remember rooting your phone or tablet? Well, the moment you’re running modified code on the device & you unlock previously unavailable options, you’ve tinkered enough to call that hardware hacking. The prohibition of running modified code seemed unethical and FSF responded to that in GPLv3.

GPLv3 will allow free software to be used on hardware that is designed such that executable requires a specific key signature in order for it to operate. However, the vendor must provide that signature key or whatever else is necessary so that any modified executables can be appropriately signed, and thus used if desired.

While I haven’t gone through the rest of the document, this particular part on tivoization protects the user freedom on tinkering.

City Council of Barcelona switches from Microsoft Windows to Linux

February 11, 2018
linux ubuntu microsoft open source data protection website compromised?

December 7, 2017
linux wordpress security

Linux Magazine's special edition on openSUSE

November 20, 2017
opensuse linux university-of-mauritius education