12 September 2006

Tivoisation

Speech by Richard Stallman on GPLv3. He spells out the controversial DRM-related part of the new draft license.

The basic change is that if someone, ... provides you a binary, then he must, as part of the requirement to provide the source code, give you whatever it takes to authorise your version so it will run.

Considerable thought has gone into this. Eben Moglen supplemented the explanation:

If Manufacturer A wants the software he sells in the hardware to stay one version forever, he has a simple way to do it: he can put the software in ROM. He has no power to modify it, and the user to whom he gives it has no power to modify it. That doesn't violate GPL version two and it doesn't violate GPL version three, in current draft.

We will not publish a draft that would be violated by that conduct. What we object to is the attempt to say "I will keep the right to modify the software, but I won't allow you to have the same right of modification that retain" because that's simply a technical way of evading the requirement of the licence to pass along all the rights you got.

The question here is over bundling. Tivo sell you a system comprising software, hardware, and services. If the software is derived from copylefted Free Software, recipients must be given the rights over the software specified by the copyleft - the rights to use, modify and distribute the software. What Stallman and Moglen are demanding is that the rights should extend to the hardware and services - that one should be able to use the hardware and services with modified software. They are trying to extend the rights over the software to open up the hardware and the services.

I think this is a mistake. Not because I don't think that open hardware and open service interfaces are a good thing, but because there is a tradeoff, in terms of what copyleft can achieve, between getting as much as you can and restricting what purposes the software can be used for.

Various programmers have released software with restrictions - that it can't be used by dictatorships, or arms manufacturers, or whatever. If many people do that, and you try to build systems from a collection of such software, you will pretty soon hit a point where someone disagrees with what you're doing.

There are many things wrong in the world, and only some of them can be improved using software licenses.

The GPL is a way of using your copyright in software to restrain others from using their copyright in software. There's an elegant symmetry in that, an automatic kind of agreement. If you want to use GPL'd Free Software, you have to support Free Software. That symmetry isn't there in saying if you want to use my Free Software, you have to support Free Trade, or renewable energy, or independence for Tibet.

Stallman has always recognised that:
The freedom to run the program means the freedom for any kind of person or organization to use it on any kind of computer system, for any kind of overall job and purpose, without being required to communicate about it with the developer or any other specific entity. In this freedom, it is the user's purpose that matters, not the developer's purpose; you as a user are free to run a program for your purposes, and if you distribute it to someone else, she is then free to run it for her purposes, but you are not entitled to impose your purposes on her.

Admittedly, the link between Free Software and open hardware is closer than between Free Software and, say, legalisation of marijuana. But I still think it's far enough away that it's a distraction from the core value.

I've always (and it's been at least 15 years now) seen the core value of Free Software as the right to share. If it costs nobody anything for me to copy a program for some one else, and they benefit from it, I should do it, and I shouldn't put myself in a position where I am prevented from doing that by copyright law.

The right to modify is secondary. It is important, because in the long run software you can't modify is useless. I am not helping someone by sharing software with them if I get updates and they don't.

Open hardware is good too. But the FSF is going further than saying that; it is saying that Free Software that runs on closed hardware, which prevents you from running modified versions of the software, is not really free.

I disagree. I can build my own PVR, and I can use GPL'd Tivo software in it, even software that was written by Tivo itself, and even with my own modifications. That's the key freedom, even if I'm not free to run changed software on the Tivo hardware itself. If I use a GPL'd online poker client, I can use modified version on an open server, even if I can't use it on the vendor's server.

And these aren't far-fetched examples. If a system vendor like Tivo is able to use Free Software in their systems, it pretty much follows that their systems employ general-purpose hardware, and that their modifications to the software would potentially be useful on general-purpose hardware.

Linus Torvalds has a slightly different objection to the Tivoisation restriction, which is also correct. He insists that there are valid uses of locked-down hardware which ought not to be prohibited. My poker example is one, I would claim. Services can be exposed by connecting them to uncontrolled clients.

Update: a number of other senior Linux kernel developers have issued a well-argued position statement expressing their reservations with GPLv3 and the Tivoisation clause.

No comments: