www-commits
[Top][All Lists]
Advanced

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

www/philosophy when-free-depends-on-nonfree.html


From: Jason Self
Subject: www/philosophy when-free-depends-on-nonfree.html
Date: Fri, 08 Apr 2016 20:17:55 +0000

CVSROOT:        /web/www
Module name:    www
Changes by:     Jason Self <jxself>     16/04/08 20:17:55

Added files:
        philosophy     : when-free-depends-on-nonfree.html 

Log message:
        Adding When Free Software Depends On Non-Free per RT 1099948

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/when-free-depends-on-nonfree.html?cvsroot=www&rev=1.1

Patches:
Index: when-free-depends-on-nonfree.html
===================================================================
RCS file: when-free-depends-on-nonfree.html
diff -N when-free-depends-on-nonfree.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ when-free-depends-on-nonfree.html   8 Apr 2016 20:17:55 -0000       1.1
@@ -0,0 +1,175 @@
+<!--#include virtual="/server/header.html" -->
+<!-- Parent-Version: 1.79 $ -->
+
+<title>When Free Software Depends On Non-Free - GNU Project - Free Software 
Foundation</title>
+<!--#include virtual="/server/gnun/initial-translations-list.html" -->
+<!--#include virtual="/server/banner.html" -->
+<h2>When Free Software Depends On Non-Free</h2>
+
+ <p>by <strong>Richard Stallman</strong></p>
+
+<p>When a program is free software (free as in freedom), that means it 
+gives users the four freedoms (<a 
+href="/philosophy/free-sw.html">gnu.org/philosophy/free-sw.html</a>) 
+so that they control what the program does. In most cases, that is 
+sufficient for the program's distribution to be ethical; but not 
+always. There are additional problems that can arise in specific 
+circumstances. This article describes a subtle problem, where 
+upgrading the free program requires using a nonfree program.</p>
+
+<p>If the free program's use depends unavoidably on another program which
+is nonfree, we say that the free program is "trapped". Its code is
+free software, and you may be able to copy pieces of its code into
+other free programs with good, ethical results. But you shouldn't
+<em>run</em> the trapped program, because that entails surrendering
+your freedom to the other nonfree program.</p>
+
+<p>Someone who upholds the principles of free software would not knowingly
+make a program that is trapped. However, many free programs are
+developed by people or companies that don't particularly support these
+principles, or don't understand the problem.</p>
+
+<p>Dependence on a nonfree program can take various forms. The most
+basic form is when the programming language used has no free
+implementation. The first programs I wrote for the GNU system in the
+1980s, including GNU Emacs, GDB and GNU Make, had to be compiled with
+AT&T's nonfree C compiler, because there was no free C compiler until
+I wrote GCC. Fortunately, this kind of problem is mostly a thing of
+the past; we now have free compilers and platforms for just about all
+the languages anyone uses for writing free software.</p>
+
+<p>We can release the program from this kind of trap by translating it to
+another language, or by releasing a free implementation of the
+language it's written in. Thus, when a full free Java implementation
+became available, that released all the free Java programs from the <a
+href="/philosophy/java-trap.html">Java Trap</a>.</p>
+
+<p>This kind of dependence is conceptually simple because it stems from
+the situation at one given instant in time. At time T, free program P
+won't run without nonfree programming platform Q. To borrow a term
+from linguistics, this relationship is "synchronic".</p>
+
+<p>More recently, we have seen another kind of dependence in database
+programs, where you can build and run any given version of the program
+in the free world, but upgrading from version N to version N+1
+requires a nonfree program.</p>
+
+<p>This happens because the internal format of the database changes from
+version N to version N+1. If you have been seriously using version N,
+you probably have a large existing database in the version N format.
+To upgrade to version N+1 of the database software, you need to
+reformat that database.</p>
+
+<p>If the way you are supposed to do this is by running a proprietary
+database reformat program, or using the developer's service which is
+SaaSS, the database software is trapped &mdash; but in a more subtle
+way. Any single version of the database program can be used without
+nonfree software or SaaSS. The problem arises when you try to keep
+using the program for the long-term, which entails upgrade it from
+time to time; you can't use it this way without some nonfree software
+or equivalent. This database program is trapped across time -- we
+could call it "diachronically trapped," borrowing another term from
+linguistics.</p>
+
+<p>For example, the program OpenERP, though free, is diachronically
+trapped. <a href="/software/health/">GNU Health</a>, our free package
+for running a medical clinic, initially used OpenERP. In 2011, GNU
+Health developer Luis Falcón discovered that upgrading to the next
+version of OpenERP required sending the database (full of patients'
+medical data) to OpenERP's server for reformatting. This is SaaSS (<a
+href="/philosophy/who-does-that-server-really-serve.html">Service as a
+Software Substitute</a>): it requires the user of GNU Health (a
+clinic) to entrust its own computing and its data to the company
+developer of OpenERP. Rather than bow down, Falcon rewrote GNU Health
+to use <a href="http://www.tryton.org";>Tryton</a> instead.</p>
+
+<p>Using SaaSS is inherently equivalent to running a proprietary program
+with snooping functionality and a universal back door. The service
+could keep a copy of the databases that users reformat. Even if we
+can trust the company that runs the service never to intentionally
+show any form of the data to anyone, we can't be sure that it won't be
+accessed by <a href="/philosophy/surveillance-vs-democracy.html">the
+intelligence agencies of various countries</a> or security-breaking
+crackers <a
+href="http://stallman.org/articles/on-hacking.html";>(please don't call
+them "hackers")</a>.</p>
+
+<p>When a program is diachronically trapped, releasing it from the trap
+requires more than a one-time job of programming. Rather, the job has
+to be done continually, each time there is a change in the data
+format. Launching a project with a long-term commitment to continue
+doing this is not easy. It may be easier to pressure the company to
+stop trying to trap users -- by rejecting the trapped program until it
+does so. Given how difficult it is to free the program, you had
+better stay away from it.</p>
+
+<p>It is possible to try out a diachronically trapped free program
+without nonfree software, but if you're going to do more than dabble,
+you must stear clear of really using it. Both businesses and
+individuals will find fine free alternatives that don't have such a
+problem; all it takes to avoid the trap is to recognize it.</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; 2016 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: 2016/04/08 20:17:55 $
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>



reply via email to

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