23 October 2006

GPLv3: What Richard Stallman Said

More than anyone else, Richard Stallman is driving the GPLv3 debate (although Eben Moglen is clearly another crucially important figure). What follows is a transcript of a short interview that took place on 6 October, 2006. In it, RMS talked about the issues that lie behind the GPLv3, and gave his thoughts on the concerns expressed by the Linux coders, some of which were raised in the posting below.

Could you give a little background to the drafting of the GNU GPLv3?

The purpose of the GNU GPL is to defend for all users the freedoms that define free software. It doesn't make sense in terms of open source. It's the result of implementing the philosophy of free software in the most strong way that we can. So all the version of the GPL have prevented middlemen from restricting subsequent users by changing the licence. Some free software licences permit that, for example the X11 licence permits that. The various BSD licences permit that. But the GPL was specifically designed not to permit that - you cannot add restrictions making the program non free.

Now, what we didn't have 15 years ago was the threat of making the program effectively non free by technical restrictions placed around it. That's what Tivoisation is. Tivoisation means taking a free program and distributing a binary of it, and also providing the source, because the GPL requires that. But when the user changes the source code and compiles it and then tries to install the changed program he discovers that that's impossible because the machine is designed not to let him.

The result of this is that freedom number 1, the freedom to study the source code and change it so the program does what you want, has become a sham. Tivoisation is essentially a way to formally comply with the requirement, but not in substance.

So we've come to the conclusion that this is more than just a minor issue. That this will be common, probably the usual case, if we don't do something to stop it. And therefore we've decided to do what is necessary so that our software will not be Tivoised. Our purpose is to deliver freedom to the user.

Why do you think there has been such an outcry in some quarters recently?

I don't know. A few people are upset.

A few people including most of the key kernel coders...

Their business. That's their program and they can decide whether to use this licence.

Seems clear they will stick with GPLv2?

I hope not, but if they do it's up to them.

If that happens, is that going to cause any problems for GNU?

It won't cause any problems for us, only for the public. The problem it will cause is Tivoisation. It will cause the problem that users don't have the freedoms that they should have. And that's a very big problem, but it's not a problem specifically for us, it's a problem for everyone. The problem is that many people will get machines in which Linux has been Tivoised. Which means that for practical purposes it won't be free for them.

If that happens, would you put more effort into the Hurd?

I don't think so, and the reason is that wouldn't achieve much unless we convinced everyone to switch to the Hurd from Linux, and that isn't too likely. The Hurd still has some technical problems, and who knows if it would ever become a competitor. But suppose somebody wanted to Tivoise, and he had available the Hurd and Linux to choose from, and Linux permits Tivoisation and the Hurd doesn't: the solution would be to use Linux.

Some people make the argument that if GPLv3 is applied to Linux, companies might simply adopt a different operating system for their products.

I don't think so.

You don't think they might use BSD or Windows?

They might, who knows? I don't think it's very likely, but the main point is it's no use giving up on a fight because you might lose, not when the fight is for something very important like freedom.

Is there anything you can do to assuage concerns of the kernel coders without giving up your principles?

I don't know. If they would just speak with us. we can explore that possibility.

Are they not doing that?

Basically no. Just recently we have had a couple of communications with them, not yet reaching the stage of being entirely civil in tone, but at least it's a start. We've been inviting them to talk with us since before we started publishing drafts, but they have not for the most part taken up that offer. In general they've made statements to the public instead of to us. And some of them are based on misunderstandings of the draft and of our intention. They're talking to each other not to us. But it's not too late for them to start if they wish to talk to us.

Is there scope to rephrase the clause that deals with Tivoisation?

We can rephrase it in a lot of different ways. We just recently decided on a change, which is that the requirement for keys would no longer work by calling them part of the corresponding source. This is a change in the details, but the substance is the same, the aim is the same - to change that would be giving up.

The two philosophies of free software and open source in some cases lead to similar conduct - in fact, in many cases. That's why it was so easy for the people who support open source to apply their label to what we're doing. Because if you're participating in a free software project it usually doesn't matter whether your goal is to give users freedom and to establish freedom in cyberspace or just have powerful and reliable software, because either way you could do the same things. And there's no need for people to ask each other: What's your philosophy, why do you want to contribute to this project? - they just start contributing, and they work on making the software better, and they focus on that.

But there are cases where these two different philosophies lead to different results. For instance, some people have proposed what they call “open source DRM” - DRM meaning “digital restrictions management”. This is a plan to develop software to put in machines that will restrict users, and then publish the source code of this. The idea is that programmers around the world will work together making that software do its job better, that is, restrict the user more inescapably, more reliably, more powerfully. Although the source code of this software will be published, they plan to use Tivoisation to make sure that the users can't escape from their power.

Now, if your goal is to give the users freedom, restricting the users through open source is no more tolerable than restricting the users any other way, because the users have to have the freedom.

Have you tried talking to TiVo about this?


You don't think it might be useful?

No, not really. And the reason is they're just the first example. If it were only that one company that were the problem, we probably wouldn't pay attention because it would be a small problem. But the idea is floating around, and there are many different plans to use it.

Couldn't you help TiVo do what they want to do with free software?

They initially did. This Tivoisation was not in the first TiVo box. The point is, it's pressure from Hollywood. And the best way to have a chance of negotiating something with those who are under the pressure is first to set up counter pressure.

The problem being that a hacked version of TiVo could circumvent any DRM?

Exactly. And the point is, DRM itself is evil. Restricting the user's freedom in other ways so that the user cannot change the software and get rid of DRM makes the software effectively not free for that user. So we have these two philosophies, and here they make a big difference. You can imagine open source DRM, and if all you care about are the philosophical values of open source, you might think it's great. If you only want software to be powerful and reliable, you might tend to apply that to software whose purpose is to go in somebody's machine and restrict it, and you might think, “Sure I'll help you make that powerful and reliable.” But if you believe in free software, and you think that the user whose machine it is should be in control of what that machine does and not somebody else, then the aim of that project becomes wrong in itself. Free software DRM makes no sense - it's a contradiction in terms.

Are you worried about the prospect of GPL projects forking?

It can happen. But again, there's no use not fighting, there's no use surrendering to this threat. It's too dangerous.

Are there any other points you'd like to make?

There are people who seem to imagine that some disaster will happen because some programs in the GNU/Linux system are using GPLv3 and some are using GPLv2, but in fact there are many programs with other licences in the system as well, and there's no problem there at all.

There are many people who would like to come across some disastrous flaw in GPLv3. If one person says he's found it, the others repeat it without stopping to make sure it is for real, because they consider it the answer to their prayers.

But you think they'll work together without problems?

I know they will, because these programs are separate programs, and the licence of one has no effect on the licence of another.

Now, I wish that everyone would switch to GPLv3 because that would give the strongest possible front to resist Tivoisation and ensure the freedom of the users. But I know that not everybody will participate, nonetheless we have to try to defend the freedom.

Happy hacking.


Richard Stallman has sent me a comment on Alan Cox's reply:

While I addressed the topic you proposed--version 3 of the GNU General Public License--Alan Cox chose instead to present a misleading picture of the history of GNU and Linux.

The GNU/Linux system comes out of the effort that I began in 1983 to develop a complete free Unix-like system called GNU. GNU is the only operating system that was developed specifically to respect computer users' freedom. Since our goal was to achieve freedom as soon as possible, we utilized the scattered existing free software packages that would fit. That still left most of the components for us to write. In those years, we of the GNU Project systematically developed the essential components of this system, plus many other desirable components, ranging from libraries to text editors to games.

In 1991, Linus Torvalds developed a kernel called Linux--initially not free software, but he freed it in 1992. At that time, the GNU system was complete except for a kernel. The combination of Linux and the GNU system was the first complete free operating system. That combination is GNU/Linux.

Cox says that Linux is not part of the GNU Project. That is true--of the kernel, Linux, that he and Torvalds have worked on. But the combined system that Cox calls "Linux" is more our work than his.

When Cox says that "FSF-copyrighted code is a minority in [GNU/Linux]", that too is misleading; he knows that just a fraction of the GNU packages' code is copyright FSF. What part do GNU packages compose in the whole system? Many are just as essential as Linux is.

In 1995, GNU packages were 28% of the system, while Linux was 3%. 28% is less than half, so that was a minority; but it is a lot more than 3%. Nowadays, after thousands of other groups have added to the system, both the GNU and Linux percentages are smaller than before; but no other project has contributed as much as the GNU Project.

Calling the combined system GNU/Linux is right because it gives the GNU Project credit for its work, but there are things more important than credit -- your freedom, for example. It is no accident that the GNU GPL existed before Linux was begun. We wrote the GPL to protect the freedom of the users of GNU, and we are revising it today so that it will protect against newer technical methods of denying that freedom. When you think about GPL issues, this is the background for them.

If the developers of Linux disagree with that goal, they are entitled to their views. They are entitled to cite their important work--Linux, the kernel--to be listened to more, but they should respect our right to cite the GNU system in the same way.

See http://www.gnu.org/gnu/gnu-linux-faq.html for more explanation.


Freeman said...


Thanks for publishing these responses in their entirety. I was a little disappointed in the brevity of the Guardian article -- there are some finer points to the debate that a lot of people seem to be missing.

Linux kernel developers -- please note that RMS does NOT refer to the Linux kernel as GNU/Linux, as many of you either explicitly stated or at least strongly implied. He refers to the OPERATING SYSTEM as GNU/Linux, and rightly so (imho). I've ALWAYS observed that RMS and the FSF make this distinction when speaking of issues involving Linux. I wonder why you seem so confused about it?

I've seen the GNU bits used with several non-Linux kernels (*BSD's, etc.), but I've never seen a "Linux" distribution that did not include a heaping helping of GNU (perhaps there are some, most likely in embedded systems). None of my four GNU/Linux systems (various distro's) are the least bit useful without glibc, for instance.

GNU is not the entire OS, which RMS and the FSF openly acknowledge. Likewise, Linux is the kernel, not the entire OS, and would be useless in an operating system without something in place where the GNU bits fit in, just like the GNU bits are useless without a kernel to run on (and I find it MUCH easier to identify replacement kernels to use than it is to identify replacements for the GNU parts, while still ending up with a system under MY complete control). Isn't it about time you acknowledge that? Why the animosity? Don't you think they deserve the acknowledgement for their hard work the same as you do?


Anonymous said...

I can't decide whether Tivoisation is allways bad.
If I produced pacemakers, I am not sure I'd want end users to tinker with them, when I might be held liable.
When you buy a car should you be allowed to chip tune it if its fuel injection system is based on Linux, ignoring the fact that it endangers others and violates emmision standards?
Its obvious that it would be a "bad thing" if general purpose computers became tivoized, but we may have to rely on consumers instead of hackers to prevent this from happening.

glyn moody said...

I actually asked RMS about the pacemaker situation, and this is what he said.

He pointed out that already people can misuse medical equipment - like syringes, say - so there's nothing new if a pacemaker could be misused.

But he emphasised that the freedom to change the pacemaker's software was relevant not to the patient, but to the doctor/technician, who might well need to check that it works properly, or make a modification.

So the important thing is defining who exactly is the real user when it comes to rights.

Anonymous said...

I do not believe there is a Linux kernel conspiracy as what I took away from reading the gerard-dot-fernandes-at-gmail-dot-com post.

How I read the situation is that the kernel developers are merely highlighting a different facet of the word "free" as they want their ability to take what other freely give them and implement it. In exchange, they will contribute back into the community what others and they have put in. There is nothing wrong with this.

This is a different facet to what the GPLv3 wants to highlight. The GPLv3 wants to ensure the END users maintain the ability to tinker. There is nothing wrong with this either.

The FSF (in behalf of the end user) and the kernel maintainers (in behalf of all Linux program contributors) are at odds? It appears both sides will need to communicate and give and take a bit. I sure hope both sides are mature enough to set aside some of their pride.

Anonymous said...

A point that many are loosing, is that what is generally called 'Trusted computing': A hardware/software setup, for the general use in 'PCs', which is based on the very same principles of TiVO. Moreover, Intel (Ladrande, 'safer computing initiative'), AMD (secure execution mode), ARM (TrustZone) Microsoft (paladium), and others
have public plans to ensure that each and every Desktop, server, mobile device (everything that has software on it)
to has a TPM (module to ensure the 'trusteness').

So at the end, the discussion about TiVO isn't so much 'thin air', because as many have already pointed out, it is a possibility, that, in few years, the only way to 'run' 'some software' or to 'access some sites', will be trough a 'Trusted Plataform'... and them, it doesn't matter if this 'TP' is a windows machine, or some kind of 'locked down' linux kernel...because the 'user' will have no option but use it 'as it is'.

Game over.

Mike Schwager said...

The point that some are losing, is that regardless of what the major corporations are attempting to do, if I create a piece of software and release it with the intention of giving you- the end user, the reader, the implementor, the curious, or the young at heart- the right to make modifications to it (so long as, should you distribute those modifications, you make them available to others), then I don't care what you're building: Pacemaker, popcorn maker, server, webfarm; if you attempt to circumvent my intentions, what you're doing is immoral and wrong.

If you're concerned about the user, the curious, etc. etc., going in and messing up that pacemaker, popcorn maker, etc. etc., that concern of yours gives you no right to circumvent my intention. Go write your own software for your device, and release it under your favorite form of restriction.

In short, there is no excuse for trying to undermine the intention of GPLv2, but TiVO has done so. To me the GPLv3 is welcome.
-Mike Schwager

Anonymous said...

If Stallman wanted to help the issue, he could work on v3 and also v2.1 to update the GPL with regard to the nitpicks that the kernel hackers mentioned about v2...v3 changes too much at one go!

Anonymous said...

He pointed out that already people can misuse medical equipment - like syringes, say - so there's nothing new if a pacemaker could be misused.

Sounds like "guns don't kill people, people kill people"-logic, I am not buying that.

Anonymous said...

Mike Schwager wrote:
If you're concerned about the user, the curious, etc. etc., going in and messing up that pacemaker, popcorn maker, etc. etc., that concern of yours gives you no right to circumvent my intention. Go write your own software for your device, and release it under your favorite form of restriction.
We can only speculate on intentions of original contributers, but the opposition to GPLv3 from kernel developers could indicate that they do not considder tivo to be circumventing their intentions.
I suspect Linux developers would be welcome their code being used in medical equipment and such.
I'd like to see Linux running on everything from toasters to spaceshuttles.
I have a naive hope that the market will make treacherous computing a non-issue outside some very narrow fields.

troc ster said...

Sounds like "guns don't kill people, people kill people"-logic, I am not buying that.

From a utalitarian perspective that makes sense. However you should try the logic before you buy it; if only see how it can inform ideals. Motor-vehicles kill a similar number of people to guns; however they are more useful, no ?

How important is the freedom to tinker, change and learn about the things that are yours. We need the gplv3.

Ed said...

If I go into a hospital I want all the medical equipment to work to spec. I don't want one item with a hacked kernel so a nurse can make my heart dance a funky beat. I'm not against the code being freely available so I can review it. Freely available so I can modify it and build my own pacemaker. But the original pacemaker builder has a right to control an item that they can be held liable if it harmed an end user.