www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www/philosophy applying-free-sw-criteria.html


From: Pavel Kharitonov
Subject: www/philosophy applying-free-sw-criteria.html
Date: Tue, 10 Nov 2015 16:34:00 +0000

CVSROOT:        /web/www
Module name:    www
Changes by:     Pavel Kharitonov <ineiev>       15/11/10 16:34:00

Added files:
        philosophy     : applying-free-sw-criteria.html 

Log message:
        New article RT #1060448.

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/applying-free-sw-criteria.html?cvsroot=www&rev=1.1

Patches:
Index: applying-free-sw-criteria.html
===================================================================
RCS file: applying-free-sw-criteria.html
diff -N applying-free-sw-criteria.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ applying-free-sw-criteria.html      10 Nov 2015 16:33:59 -0000      1.1
@@ -0,0 +1,334 @@
+<!--#include virtual="/server/header.html" -->
+<!-- Parent-Version: 1.78 -->
+<title>Applying the Free Software Criteria
+- GNU Project - Free Software Foundation</title>
+<!--#include virtual="/server/gnun/initial-translations-list.html" -->
+<!--#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.  Non-free 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
+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 interested 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 which 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: if 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 h-node.org.</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">GNU/Linux</a>.  We have no obligation
+to actively promote projects that won't recognize our work and support
+our movement.</p>
+
+<p>See http://www.fsf.org/resources/hw/endorsement/criteria for our
+certification criteria.</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:address@hidden";>&lt;address@hidden&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:address@hidden";>&lt;address@hidden&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:address@hidden";>
+        &lt;address@hidden&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 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: 2015/11/10 16:33:59 $
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]