Why programs must not limit the freedom to run them
by Richard Stallman
Free software means software controlled by its users, rather than the
reverse. Specifically, it means the software comes with four essential freedoms
that software users deserve. At the head of the list is freedom zero,
the freedom to run the program as you wish, in order to do what you wish.
Some developers propose to place usage restrictions in software
licenses to ban using the program for certain purposes, but that would
be a disastrous path. This article explains why freedom zero must not
be limited. Conditions to limit the use of a program would achieve
little of their aims, but could wreck the free software community.
First of all, let's be clear what freedom zero means. It means that
the distribution of the software does not restrict how you use it.
This doesn't make you exempt from laws. For instance, fraud is a
crime in the US—a law which I think is right and proper.
Whatever the free software license says, using a free program to carry
out your fraud won't shield you from prosecution.
A license condition against fraud would be superfluous in a country
where fraud is a crime. But why not a condition against using it for
torture, a practice that states frequently condone when carried out by
the “security forces”?
A condition against torture would not work, because enforcement of any
free software license is done through the state. A state that wants
to carry out torture will ignore the license. When victims of US
torture try suing the US government, courts dismiss the cases on the
grounds that their treatment is a national security secret. If a
software developer tried to sue the US government for using a program
for torture against the conditions of its license, that suit would be
dismissed too. In general, states are clever at making legal excuses
for whatever terrible things they want to do. Businesses with powerful
lobbies can do it too.
What if the condition were against some specialized private activity?
For instance, PETA proposed a license that would forbid use of the
software to cause pain to animals with a spinal column. Or there
might be a condition against using a certain program to make or
publish drawings of Mohammad. Or against its use in experiments with
embryonic stem cells. Or against using it to make unauthorized copies
of musical recordings.
It is not clear these would be enforcible. Free software licenses are
based on copyright law, and trying to impose usage conditions that way
is stretching what copyright law permits, stretching it in a dangerous
way. Would you like books to carry license conditions about how you
can use the information in them?
What if such conditions are legally enforcible—would that be good?
The fact is, people have very different ethical ideas about the
activities that might be done using software. I happen to think those
four unusual activities are legitimate and should not be forbidden.
In particular I support the use of software for medical experiments on
animals, and for processing meat. I defend the human rights of animal
right activists but I don't agree with them; I would not want PETA to
get its way in restricting the use of software.
Since I am not a pacifist, I would also disagree with a “no military
use” provision. I condemn wars of aggression but I don't condemn
fighting back. In fact, I have supported efforts to convince various
armies to switch to free software, since they can check it for back
doors and surveillance features that could imperil national security.
Since I am not against business in general, I would oppose a
restriction against commercial use. A system that we could use only
for recreation, hobbies and school is off limits to much of what we do
with computers.
I've stated some of my views about other political issues, about
activities that are or aren't unjust. Your views might differ, and
that's precisely the point. If we accepted programs with usage
restrictions as part of a free operating system such as GNU, people
would come up with lots of different usage restrictions. There would
be programs banned for use in meat processing, programs banned only
for pigs, programs banned only for cows, and programs limited to
kosher foods. Someone who hates spinach might write a program
allowing use for processing any vegetable except spinach, while a
Popeye fan might allow use only for spinach. There would be music
programs allowed only for rap music, and others allowed only for
classical music.
The result would be a system that you could not count on for any
purpose. For each task you wish to do, you'd have to check lots of
licenses to see which parts of your system are off limits for that
task.
How would users respond to that? I think most of them would use
proprietary systems. Allowing any usage restrictions whatsoever in
free software would mainly push users towards nonfree software.
Trying to stop users from doing something through usage restrictions
in free software is as ineffective as pushing on an object through a
long, soft, straight piece of spaghetti.
It is worse than ineffective; it is wrong too, because software
developers should not exercise such power over what users do. Imagine
selling pens with conditions about what you can write with them; that
would be noisome, and we should not stand for it. Likewise for
general software. If you make something that is generally useful,
like a pen, people will use it to write all sorts of things, even
horrible things such as orders to torture a dissident; but you must
not have the power to control people's activities through their pens.
It is the same for a text editor, compiler or kernel.
You do have an opportunity to determine what your software can be used
for: when you decide what functionality to implement. You can write
programs that lend themselves mainly to uses you think are positive,
and you have no obligation to write any features that might lend
themselves to activities you disapprove of.
The conclusion is clear: a program must not restrict what jobs its
users do with it. Freedom zero must be complete. We need to stop
torture, but we can't do it through software licenses. The proper job
of software licenses is to establish and protect users' freedom.