A while ago I read a thread on the Linux Kernel mailing list where Linus Torvalds and others debated the “tivoization” clause (also considered the DRM clause) in the GPLv3 (I think in section 6). The clause basically states that consumer products containing object code whose source code is covered under the GPLv3 must include all necessary installation information such as authorization keys to be able to modify the GPLv3 source code and run it on the consumer product. The term “tivoization” comes from how Tivo uses GPL code but the hardware restricts modified versions of the software without an authorization key. This is considered DRM. This practice is not exactly limited by GPLv2 and its circumvention is prohibited by the DMCA.

What Linus and others were debating was that they do not agree with the FSF in that tivoization should be restricted by the GPL. They say that we (the free software community) have no right to restrict how hardware manufacturers design their hardware. In their view Tivo is not doing anything wrong. They are using GPLv2 code, but they provide the source for the original and/or modified versions of the GPLv2 code in accordance with GPLv2. Beyond what they do with our software, we cannot control them.

But the tivoization clause is necessary to ensure the freedom and survivability of Free Software. Think if Dell offered Linux (which they do now, but if they didn’t), but to keep people from breaking their systems they added a check in the bios for an authorization key in the linux kernel which was not released, thus preventing anyone from running a modified version of the kernel. Now imagine every computer maker that offered Linux did the same thing. How can we exercise our 4 freedoms if the hardware won’t let us? Yeah, one isolated instance of locking Free Software with DRM doesn’t have much effect on the ability for people in general to exercise our 4 freedoms, but if this tivoization persists what can we do?

The basic idea is that, for me as a developer of Free Software, whether I distribute my code or if I let someone else distribute my code, I want the end user of my software to be able to practically exercise the 4 freedoms of Free Software. If I let Tivo distribute my code and the hardware on which my code is designed to run makes the 4 freedoms pointless (in particular, freedom 1 which permits modifying software to fit the users’ needs), that is wrong. Even though Tivo is not directly violating the 4 freedoms, they are not allowing users to practically exercise all 4 freedoms.

I saw an article on /. where the author seemed to have no real clue about Free Software. I just wanted to rebut this uninformed argument.

The author essentially tries to say that developers want software with promiscuous licenses and they don’t care about defending themselves against tivoization and patent pacts. Because of this, he says that the current direction of the GPL/FSF is alienating developers by restricting them. Yes, it restricts them from doing things that restrict the Freedom of their software. But these restrictions have no ill-effect on developers who do not wish to restrict their users.

From his point of view, a developer chooses a license for his/her software, or wants the software with which they are working to have a particular license, for purely their own purposes so they can have access to as much source code as possible. That is simply not the point of the GPL. That is the point of open source. The primary purpose of the GPL is to ensure the 4 basic software freedoms for the users of the software under which it is covered.

The two new clauses in GPLv3 about tivoization and patent pacts are restrictions, but the restrictions they impose are to ensure the Freedom of the software. This is no different than not letting someone release GPL-covered software without its corresponding source code. That is a restriction, but it is not one that is debated as handcuffing Free Software developers as the author tries to portray the tivoization and patent pact clauses.

As far as what developers want, they should choose the GPL for their software because they want their software to be Free. They should not choose the GPL for their software if they only care about themselves and don’t care about Freedom. It seems like the author only cares about himself and doesn’t care about Freedom, so the GPL is not for him. If he thinks developers feel the same as he does, then they shouldn’t use the GPL either. But if you care about ensuring the Freedom of your software, then the GPL, version 3 or otherwise, is for you. It is not going to alienate or restrict you if your intentions are for Freedom.

I personally trust the GPL, version 3 or later, with protecting any and all software I write to be Free. By choosing the GPL for your software, particularly if you adopt the “version x or later” clause, you are placing the Freedom of your software in the hands of the FSF. You are most likely not fully aware of all the ideas and implications of the license, but you know that the ultimate goal of the FSF is to ensure Freedom of software, and that goal will be adequately represented in your software.

Sun finally announced that they are releasing Java under the GPL! That’s right, the language you love to hate is FREE, and not just free as in beer, but free as in Freedom. The Free/Libre Open Source Software community has been pushing this for years now, about a year ago we started getting signs that it might happen, and a few weeks ago it finally did. This is a very good thing for a many reasons. Not only is Sun contributing a massive amount of code to the FLOSS community, which helps everyone, but it is a major testament to the power and value of FLOSS. It also means that GNU/Linux distributions can directly distribute Sun’s Java. And most importantly, developers from around the world will be able to contribute to, and improve, the Java environment.