diff options
Diffstat (limited to 'talermerchantdemos/blog/articles/en/applying-free-sw-criteria.html')
-rw-r--r-- | talermerchantdemos/blog/articles/en/applying-free-sw-criteria.html | 336 |
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—<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 “enhancements” 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 (“distros”). 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 +“contain” 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 “contains” 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—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 “Baby contains nonfree code, +but Gbaby is free,” 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, “What name did +they say I should use? I think it was Baby.”</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 +“binary blobs” 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—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—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 “Respects Your Freedom”?</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">“GNU/Linux”</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 & 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 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 © 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> |