summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/articles/en/applying-free-sw-criteria.html
diff options
context:
space:
mode:
Diffstat (limited to 'talermerchantdemos/blog/articles/en/applying-free-sw-criteria.html')
-rw-r--r--talermerchantdemos/blog/articles/en/applying-free-sw-criteria.html336
1 files changed, 336 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/en/applying-free-sw-criteria.html b/talermerchantdemos/blog/articles/en/applying-free-sw-criteria.html
new file mode 100644
index 0000000..9e41e56
--- /dev/null
+++ b/talermerchantdemos/blog/articles/en/applying-free-sw-criteria.html
@@ -0,0 +1,336 @@
+<!--#include virtual="/server/header.html" -->
+<!-- Parent-Version: 1.79 -->
+<title>Applying the Free Software Criteria
+- GNU Project - Free Software Foundation</title>
+ <!--#include virtual="/philosophy/po/applying-free-sw-criteria.translist" -->
+<!--#include virtual="/server/banner.html" -->
+
+<h2>Applying the Free Software Criteria</h2>
+
+<p>by Richard Stallman</p>
+
+<p>The four essential freedoms provide the criteria for <a
+href="/philosophy/free-sw.html">whether a particular piece of code is
+free/libre</a> (i.e., respects its users' freedom). How should we
+apply them to judge whether a software package, an operating system, a
+computer, or a web page is fit to recommend?</p>
+
+<p>Whether a program is free affects first of all our decisions about our
+private activities: to maintain our freedom, we need to reject the
+programs that would take it away. However, it also affects what we
+should say to others and do with others.</p>
+
+<p>A nonfree program is an injustice. To distribute a nonfree program,
+to recommend a nonfree program to other people, or more generally
+steer them into a course that leads to using nonfree software, means
+leading them to give up their freedom. To be sure, leading people to
+use nonfree software is not the same as installing nonfree software in
+their computers, but we should not lead people in the wrong direction.</p>
+
+<p>At a deeper level, we must not present a nonfree program as a solution
+because that would grant it legitimacy. Nonfree software is a
+problem; <a href="/philosophy/compromise.html"> to present it as a
+solution denies the existence of the problem</a>.</p>
+
+<p>This article explains how we apply the basic free software criteria to
+judging various kinds of things, so we can decide whether to recommend
+them or not.</p>
+
+<h3>Software packages</h3>
+
+<p>For a software package to be free, all the code in it must be free.
+But not only the code. Since documentation files including manuals,
+README, change log, and so on are essential technical parts of a
+software package, <a href="/philosophy/free-doc.html">they must be
+free as well</a>.</p>
+
+<p>A software package is typically used alongside many other packages,
+and interacts with some of them. Which kinds of interaction with
+nonfree programs are ethically acceptable?</p>
+
+<p>We developed GNU so that there would be a free operating system,
+because in 1983 none existed. As we developed the initial components
+of GNU, in the 1980s, it was inevitable that each component depended
+on nonfree software. For instance, no C program could run without a
+nonfree C compiler until GCC was working, and none could run without
+Unix libc until glibc was working. Each component could run only
+on nonfree systems, because all systems were nonfree.</p>
+
+<p>After we released a component that could run on some nonfree systems,
+users ported it to other nonfree systems; those ports were no worse,
+ethically, than the platform-specific code we needed to develop these
+components, so we incorporated their patches.</p>
+
+<p>When the kernel, Linux, was freed in 1992, it filled the last gap in
+the GNU system. (Initially, in 1991, Linux had been distributed under
+a nonfree license.) The combination of GNU and Linux made a complete
+free operating system&mdash;<a
+href="/gnu/linux-and-gnu.html">GNU/Linux</a>.</p>
+
+<p>At that point, we could have deleted the support for nonfree
+platforms, but we decided not to. A nonfree system is an injustice,
+but it's not our fault a user runs one. Supporting a free program on
+that system does not compound the injustice. And it's useful, not
+only for users of those systems, but also for attracting more people
+to contribute to developing the free program.</p>
+
+<p>However, a nonfree program that runs on top of a free program is a
+completely different issue, because it leads users to take a step away
+from freedom. In some cases we disallow this: for instance, <a
+href="https://gcc.gnu.org/ml/gcc/2014-01/msg00247.html">GCC prohibits
+nonfree plug-ins</a>. When a program permits nonfree add-ons, it
+should at least not steer people towards using them. For instance, we
+choose LibreOffice over OpenOffice because OpenOffice suggests use of
+nonfree add-ons, while LibreOffice shuns them. We developed <a
+href="http://directory.fsf.org/wiki/IceCat">IceCat</a> initially to
+avoid proposing the nonfree add-ons suggested by Firefox.</p>
+
+<p>In practice, if the IceCat package explains how to run IceCat on
+MacOS, that will not lead people to run MacOS. But if it talked about
+some nonfree add-on, that would encourage IceCat users to install the
+add-on. Therefore, the IceCat package, including manuals and web
+site, shouldn't talk about such things.</p>
+
+<p>Sometimes a free program and a nonfree program interoperate but
+neither is based on the other. Our rule for such cases is that if the
+nonfree program is very well known, we should tell people how to use
+our free program with it; but if the proprietary program is obscure,
+we should not hint that it exists. Sometimes we support
+interoperation with the nonfree program if that is installed, but
+avoid telling users about the possibility of doing so.</p>
+
+<p>We reject &ldquo;enhancements&rdquo; that would work only on a nonfree system.
+Those would encourage people to use the nonfree system instead of GNU,
+scoring an own-goal.</p>
+
+<h3>GNU/Linux distros</h3>
+
+<p>After the liberation of Linux in 1992, people began developing
+GNU/Linux distributions (&ldquo;distros&rdquo;). Only a few distros
+are <a href="/distros">entirely free software</a>.</p>
+
+<p>The rules for a software package apply to a distro too: an ethical
+distro must contain only free software and steer users only towards
+free software. But what does it mean for a distro to
+&ldquo;contain&rdquo; a particular software package?</p>
+
+<p>Some distros install programs from binary packages that are part of
+the distro; others build each program from upstream source, and
+literally <em>contain</em> only the recipes to download and build it.
+For issues of freedom, how a distro installs a given package is not
+significant; if it presents that package as an option, or its web site
+does, we say it &ldquo;contains&rdquo; that package.</p>
+
+<p>The users of a free system have control over it, so they can install
+whatever they wish. Free distros provide general facilities with
+which users can install their own programs and their modified versions
+of free programs; they can also install nonfree programs. Providing
+these general facilities is not an ethical flaw in the distro, because
+the distro's developers are not responsible for what users get and
+install on their own initiative.</p>
+
+<p>The developers become responsible for installation of nonfree software
+when they steer the users toward a nonfree program&mdash;for
+instance, by putting it in the distro's list of packages, or
+distributing it from their server, or presenting it as a solution
+rather than a problem. This is the point where most GNU/Linux
+distros have an ethical flaw.</p>
+
+<p>People who install software packages on their own have a certain level
+of sophistication: if we tell them &ldquo;Baby contains nonfree code,
+but Gbaby is free,&rdquo; we can expect them to take care to remember
+which is which. But distros are recommended to ordinary users who
+would forget such details. They would think, &ldquo;What name did
+they say I should use? I think it was Baby.&rdquo;</p>
+
+<p>Therefore, to recommend a distro to the general public, we insist that
+its name not be similar to a distro we reject, so our message
+recommending only the free distro can be reliably transmitted.</p>
+
+<p>Another difference between a distro and a software package is how
+likely it is for nonfree code to be added. The developers of a
+program carefully check the code they add. If they have decided to
+make the program free, they are unlikely to add nonfree code.
+There have been exceptions, including the very harmful case of the
+&ldquo;binary blobs&rdquo; that were added to Linux, but they are a
+small fraction of the free programs that exist.</p>
+
+<p>By contrast, a GNU/Linux distro typically contains thousands of
+packages, and the distro's developers may add hundreds of packages a
+year. Without a careful effort to avoid packages that contain some
+nonfree software, some will surely creep in. Since the free distros
+are few in number, we ask the developers of each free distro to make a
+commitment to keep the distro free software by removing any nonfree
+code or malware, as a condition for listing that distro. See the <a
+href="/distros/free-system-distribution-guidelines.html">GNU free
+system distribution guidelines</a>.</p>
+
+<p>We don't ask for such promises for free software packages: it's not
+feasible, and fortunately not necessary. To get promises from the
+developers of 30,000 free programs to keep them free would avoid a few
+problems, at the cost of much work for the FSF staff; in addition,
+most of those developers have no relationship with the GNU Project and
+might have no interest in making us any promises. So we deal with
+the rare cases that change from free to nonfree, when we find out
+about them.</p>
+
+<h3>Peripherals</h3>
+
+<p>A computer peripheral needs software in the computer&mdash;perhaps a
+driver, perhaps firmware to be loaded by the system into the
+peripheral to make it run. Thus, a peripheral is acceptable to use
+and recommend if it can be used from a computer that has no nonfree
+software installed&mdash;the peripheral's driver, and any firmware that
+the system needs to load into it, are free.</p>
+
+<p>It is simple to check this: connect the peripheral to a computer
+running a totally free GNU/Linux distro and see if it works. But most
+users would like to know <em>before</em> they buy the peripheral, so
+we list information about many peripherals
+in <a href="https://www.h-node.org/">h-node.org</a>, a hardware
+database for fully free operating systems.</p>
+
+<h3>Computers</h3>
+
+<p>A computer contains software at various levels. On what criterion
+should we certify that a computer &ldquo;Respects Your Freedom&rdquo;?</p>
+
+<p>Obviously the operating system and everything above it must be free.
+In the 90s, the startup software (BIOS, then) became replaceable, and
+since it runs on the CPU, it is the same sort of issue as the
+operating system. Thus, programs such as firmware and drivers that
+are installed in or with the system or the startup software must be free.</p>
+
+<p>If a computer has hardware features that require nonfree drivers or
+firmware installed with the system, we may be able to endorse it. If
+it is usable without those features, and if we think most people won't
+be led to install the nonfree software to make them function, then we
+can endorse it. Otherwise, we can't. This will be a judgment call.</p>
+
+<p>A computer can have modifiable preinstalled firmware and microcode at
+lower levels. It can also have code in true read-only memory. We
+decided to ignore these programs in our certification criteria today,
+because otherwise no computer could comply, and because firmware that
+is not normally changed is ethically equivalent to circuits. So our
+certification criteria cover only the code that runs on the computer's
+main processor and is not in true read-only memory. When and as free
+software becomes possible for other levels of processing, we will
+require free software at those levels too.</p>
+
+<p>Since certifying a product is active promotion of it, we insist
+that the seller support us in return, by talking
+about <a href="/philosophy/free-software-even-more-important.html">free
+software</a> rather
+than <a href="/philosophy/open-source-misses-the-point.html">open
+source</a> and referring to the combination of GNU and Linux
+as <a href="/gnu/linux-and-gnu.html">&ldquo;GNU/Linux&rdquo;</a>. We
+have no obligation to actively promote projects that won't recognize
+our work and support our movement.</p>
+
+<p>See <a href="https://www.fsf.org/resources/hw/endorsement/criteria">our
+certification criteria</a>.</p>
+
+<h3>Web pages</h3>
+
+<p>Nowadays many web pages contain complex JavaScript programs and won't
+work without them. This is a harmful practice since it hampers users'
+control over their computing. Furthermore, most of these programs are
+nonfree, an injustice. Often the JavaScript code spies on the user.
+<a href="/philosophy/javascript-trap.html">JavaScript has morphed into
+a attack on users' freedom.</a></p>
+
+<p>To address this problem, we have developed <a
+href="/software/librejs">LibreJS</a>, an add-on for Firefox that
+blocks nontrivial nonfree JavaScript code. (There is no need to block
+the simple scripts that implement minor user interface hacks.) We ask
+sites to please free their JavaScript programs and mark their licenses
+for LibreJS to recognize.</p>
+
+<p>Meanwhile, is it ethical to link to a web page that contains a nonfree
+JavaScript program? If we were totally unyielding, we would link only
+to free JavaScript code. However, many pages do work even when their
+JavaScript code is not run. Also, you will most often encounter nonfree
+JavaScript in other ways besides following our links; to avoid it,
+you must use LibreJS or disable JavaScript. So we have decided to go
+ahead and link to pages that work without nonfree JavaScript, while urging
+users to protect themselves from nonfree JavaScript in general.</p>
+
+<p>However, if a page can't do its job without running the nonfree
+JavaScript code, linking to it undeniably asks people to run that
+nonfree code. On principle, we do not link to such pages.</p>
+
+<h3>Conclusion</h3>
+
+<p>Applying the basic idea that <em>software should be free</em> to
+different situations leads to different practical policies. As new
+situations arise, the GNU Project and the Free Software Foundation
+will adapt our freedom criteria so as to lead computer users towards
+freedom, in practice and in principle. By recommending only
+freedom-respecting programs, distros, and hardware products, and
+stating your policy, you can give much-needed support to the free
+software movement.</p>
+
+</div><!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>Please send general FSF &amp; GNU inquiries to
+<a href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</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">&lt;webmasters@gnu.org&gt;</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">
+ &lt;web-translators@gnu.org&gt;</a>.</p>
+
+ <p>For information on coordinating and submitting 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 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 &copy; 2015, 2016 Richard Stallman</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: 2016/11/18 06:31:39 $
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>