<!--#include virtual="/server/header.html" -->
<!-- Parent-Version: 1.79 1.96 -->
<!-- This page is derived from /server/standards/boilerplate.html -->
<!--#set var="TAGS" value="essays aboutfs principles" -->
<!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
<title>Why programs must not limit the freedom to run them
- GNU Project - Free Software Foundation</title>
<!--#include virtual="/philosophy/po/programs-must-not-limit-freedom-to-run.translist" -->
<!--#include virtual="/server/banner.html" -->
<!--#include virtual="/philosophy/ph-breadcrumb.html" -->
<!--GNUN: OUT-OF-DATE NOTICE-->
<!--#include virtual="/server/top-addendum.html" -->
<div class="article reduced-width">
<h2>Why programs must not limit the freedom to run them</h2>

<p>by

<address class="byline">by <a href="http://www.stallman.org/">Richard Stallman</a></p> href="https://www.stallman.org/">Richard
Stallman</a></address>

<p>Free software means software controlled by its users, rather than the
reverse. Specifically, it means the software comes with <a
href="http://www.gnu.org/philosophy/free-sw.html">four
href="/philosophy/free-sw.html">four essential freedoms
that software users deserve</a>. At the head of the list is freedom 0,
the freedom to run the program as you wish, in order to do what you wish.</p>

<p>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 0 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.</p>

<p>First of all, let's be clear what freedom 0 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.</p>

<p>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”?</p>

<p>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.</p>

<p>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.</p>

<p>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?</p>

<p>What if such conditions are legally enforcible—would that be good?</p>

<p>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.</p>

<p>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.</p>

<p>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.</p>

<p>I've stated above some parts of my views about other certain political issues, about
issues unrelated to the issue of free software—about which of
those activities that are or aren't unjust. Your views about them 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 license a program
allowing to
allow use for processing any vegetable except spinach, while a Popeye fan
fan's program might allow use only use for spinach. There would be music
programs allowed only for rap music, and others allowed only for
classical music.</p>

<p>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.</p>
task.  Not only for the components you explicitly use, but also for
the hundreds of components that they link with, invoke, or communicate
with.</p>

<p>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 straight,
soft piece of cooked spaghetti.</p>

<p>
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.</p>

<p>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 particularly to activities you disapprove of.</p>

<p>The conclusion is clear: a program must not restrict what jobs its
users do with it. Freedom 0 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.</p>
</div>

</div><!-- for id="content", starts in the include above -->
<!--#include virtual="/server/footer.html" -->
<div id="footer"> id="footer" role="contentinfo">
<div class="unprintable">

<p>Please send general FSF & GNU inquiries to
<a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>.
There are also <a href="/contact/">other ways to contact</a>
the FSF.  Broken links and other corrections or suggestions can be sent
to <a href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p>

<p><!-- TRANSLATORS: Ignore the original text in this paragraph,
        replace it with the translation of these two:

        We work hard and do our best to provide accurate, good quality
        translations.  However, we are not exempt from imperfection.
        Please send your comments and general suggestions in this regard
        to <a href="mailto:web-translators@gnu.org">
        <web-translators@gnu.org></a>.</p>

        <p>For information on coordinating and submitting contributing translations of
        our web pages, see <a
        href="/server/standards/README.translations.html">Translations
        README</a>. -->
Please see the <a
href="/server/standards/README.translations.html">Translations
README</a> for information on coordinating and submitting contributing translations
of this article.</p>
</div>

<!-- Regarding copyright, in general, standalone pages (as opposed to
     files generated as part of manuals) on the GNU web server should
     be under CC BY-ND 4.0.  Please do NOT change or remove this
     without talking with the webmasters or licensing team first.
     Please make sure the copyright date is consistent with the
     document.  For web pages, it is ok to list just the latest year the
     document was modified, or published.
     
     If you wish to list earlier years, that is ok too.
     Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
     years, as long as each year in the range is in fact a copyrightable
     year, i.e., a year in which the document was published (including
     being publicly visible on the web or in a revision control system).
     
     There is more detail about copyright years in the GNU Maintainers
     Information document, www.gnu.org/prep/maintain. -->

<p>Copyright © 2012, 2015, 2016 2021 Free Software Foundation, Inc.</p>

<p>This page is licensed under a <a rel="license"
href="http://creativecommons.org/licenses/by-nd/4.0/">Creative
Commons Attribution-NoDerivatives 4.0 International License</a>.</p>

<!--#include virtual="/server/bottom-notes.html" -->

<p class="unprintable">Updated:
<!-- timestamp start -->
$Date: 2021/12/23 00:31:22 $
<!-- timestamp end -->
</p>
</div>
</div>
</div><!-- for class="inner", starts in the banner include -->
</body>
</html>