diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-10-11 13:29:45 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-10-11 13:29:45 +0200 |
commit | 1ae0306a3cf2ea27f60b2d205789994d260c2cce (patch) | |
tree | 53117a55c27601e92172ea82f1d8cd11d355c06c /talermerchantdemos/blog/articles/en/when-free-depends-on-nonfree.html | |
parent | 2e665813a44988bfd906c0fab773f82652047841 (diff) | |
download | taler-merchant-demos-1ae0306a3cf2ea27f60b2d205789994d260c2cce.tar.gz taler-merchant-demos-1ae0306a3cf2ea27f60b2d205789994d260c2cce.tar.bz2 taler-merchant-demos-1ae0306a3cf2ea27f60b2d205789994d260c2cce.zip |
add i18n FSFS
Diffstat (limited to 'talermerchantdemos/blog/articles/en/when-free-depends-on-nonfree.html')
-rw-r--r-- | talermerchantdemos/blog/articles/en/when-free-depends-on-nonfree.html | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/en/when-free-depends-on-nonfree.html b/talermerchantdemos/blog/articles/en/when-free-depends-on-nonfree.html new file mode 100644 index 0000000..3d472a9 --- /dev/null +++ b/talermerchantdemos/blog/articles/en/when-free-depends-on-nonfree.html @@ -0,0 +1,178 @@ +<!--#include virtual="/server/header.html" --> +<!-- Parent-Version: 1.86 --> + +<title>When Free Software Depends on Nonfree - GNU Project - Free Software Foundation</title> + <!--#include virtual="/philosophy/po/when-free-depends-on-nonfree.translist" --> +<!--#include virtual="/server/banner.html" --> +<h2>When Free Software Depends on Nonfree</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 (<a +href="/philosophy/who-does-that-server-really-serve.html">Service as +a Software Substitute</a>), +the database software is trapped—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 upgrading 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 (since renamed “Odoo”), +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: +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, Falcón 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 steer 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 & 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 © 2016, 2017, 2018 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: 2018/12/15 14:02:39 $ +<!-- timestamp end --> +</p> +</div> +</div><!-- for class="inner", starts in the banner include --> +</body> +</html> |