CINXE.COM
The X Window System Trap - GNU Project - Free Software Foundation
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rel="author" href="mailto:webmasters@gnu.org" /> <link rel="icon" type="image/png" href="/graphics/gnu-head-mini.png" /> <meta name="ICBM" content="42.355469,-71.058627" /> <link rel="stylesheet" type="text/css" href="/layout.min.css" media="screen" /> <link rel="stylesheet" type="text/css" href="/print.min.css" media="print" /> <!-- Parent-Version: 1.96 --> <!-- This page is derived from /server/standards/boilerplate.html --> <title>The X Window System Trap - GNU Project - Free Software Foundation</title> <meta http-equiv="Keywords" content="GNU, FSF, Free Software Foundation, freedom, Richard Stallman, rms, free software movement" /> <meta http-equiv="Description" content="Richard Stallman discusses the history of the movement to develop a free operating system." /> <!-- begin translist file --> <link rel="alternate" type="text/html" href="/philosophy/x.html" hreflang="x-default" /> <link rel="alternate" type="text/html" lang="en" hreflang="en" href="/philosophy/x.en.html" title="English" /> <link rel="alternate" type="text/html" lang="de" hreflang="de" href="/philosophy/x.de.html" title="Deutsch" /> <link rel="alternate" type="text/html" lang="es" hreflang="es" href="/philosophy/x.es.html" title="español" /> <link rel="alternate" type="text/html" lang="fr" hreflang="fr" href="/philosophy/x.fr.html" title="français" /> <link rel="alternate" type="text/html" lang="id" hreflang="id" href="/philosophy/x.id.html" title="Indonesia" /> <link rel="alternate" type="text/html" lang="ja" hreflang="ja" href="/philosophy/x.ja.html" title="日本語" /> <link rel="alternate" type="text/html" lang="ko" hreflang="ko" href="/philosophy/x.ko.html" title="한국어" /> <link rel="alternate" type="text/html" lang="nl" hreflang="nl" href="/philosophy/x.nl.html" title="Nederlands" /> <link rel="alternate" type="text/html" lang="pl" hreflang="pl" href="/philosophy/x.pl.html" title="polski" /> <link rel="alternate" type="text/html" lang="ru" hreflang="ru" href="/philosophy/x.ru.html" title="русский" /> <link rel="alternate" type="text/html" lang="sq" hreflang="sq" href="/philosophy/x.sq.html" title="Shqip" /> <link rel="alternate" type="text/html" lang="uk" hreflang="uk" href="/philosophy/x.uk.html" title="українська" /> <link rel="alternate" type="text/html" lang="zh-cn" hreflang="zh-cn" href="/philosophy/x.zh-cn.html" title="简体中文" /> <link rel="alternate" type="text/html" lang="zh-tw" hreflang="zh-tw" href="/philosophy/x.zh-tw.html" title="繁體中文" /> <!-- end translist file --> <!-- start of server/banner.html --> <!-- start of head-include-2.html --> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="stylesheet" type="text/css" href="/server/banners/fundraiser.css" media="screen" /> <style type="text/css" media="screen"><!-- .progress-bar { width: 12%; } .percentage { text-align: left; left: 100%; padding-right: 1em; padding-left: .5em; } --></style> <style type="text/css" media="screen"> <!-- TRANSLATORS: Change direction to rtl if you translate the fundraiser and your script is right-to-left. --> #fundraiser { direction: ltr; } </style> <!-- end of head-include-2.html --> </head> <body> <div class="inner"> <!-- start of server/body-include-1.html --> <div id="top"> <p><a class="skip" href="#content"><b>Skip to main text</b></a></p> </div> <div id='fundraiser'> <div class="message"> <p class="headline"><b>Come build a better world with us!</b></p> <p><a href="https://my.fsf.org/donate?mtm_campaign=fall24&mtm_source=banner">Please don't scroll past this. We've been building a better world with free software since 1985. Today, we ask for your support. Only with your help can the FSF continue to be the cornerstone of a more just digital society! Donate to help us reach the goal of USD $400,000 by Dec 31.<span class="gnun-split"></span></a></p> <p class="button"><a href="https://my.fsf.org/donate?mtm_campaign=fall24&mtm_source=banner">Donate<span class="gnun-split"></span></a> </p> <div style="clear: both"></div> </div><!-- .message --> <div class="progress"> <div class="progress-bar"><span class="percentage">$49,592</span></div> <span class="goal">$400,000<span class="gnun-split"></span> </span> </div><!-- .progress --> </div><!-- #fundraiser --> <div style="clear: both"></div> <div id="header" role="banner"> <p id="gnu-banner"> <a href="/"> <img src="/graphics/heckert_gnu.transp.small.png" height="48" width="49" alt=" [A GNU head] " /><strong>GNU</strong> <span class="hide">Operating System</span></a><br /> <small id="fsf-support">Supported by the <a href="#mission-statement">Free Software Foundation</a></small> </p> <div id="switches"> <div id="search-button" class="switch"> <a href="//www.gnu.org/cgi-bin/estseek.cgi"> <img id="search-icon" height="30" width="30" src="/graphics/icons/search.png" alt=" [Search www.gnu.org] " /></a> </div> <div id="language-button" class="switch"> <a href="#language-container"> <img id="language-icon" height="30" width="37" src="/graphics/icons/translations.png" alt=" [Other languages] " /></a> </div> </div><!-- #switches --> </div><!-- #header --> <!-- end of server/body-include-1.html --> <!-- start of server/body-include-2 --> <div style="clear: both"></div> <div id="navigation" role="navigation"> <a id="more-links" href="#navigation" title="More..."> <span>Site navigation</span></a> <a id="less-links" href="#content"><b>Skip</b></a> <ul> <li id="tabAboutGNU"><a href="/gnu/gnu.html">ABOUT GNU</a></li> <li id="tabPhilosophy" class="active"> <span class='no-display'>=</span> <a href="/philosophy/philosophy.html">PHILOSOPHY</a> <span class="gnun-split"></span> <span class='no-display'>=</span> </li> <li id="tabLicenses"><a href="/licenses/licenses.html">LICENSES</a></li> <li id="tabEducation"><a href="/education/education.html">EDUCATION</a></li> <li id="tabSoftware"><a href="/software/software.html">SOFTWARE</a></li> <li id="tabDistros"><a href="/distros/distros.html">DISTROS</a></li> <li id="tabDoc"><a href="/doc/doc.html">DOCS</a></li> <li id="tabMalware"><a href="/proprietary/proprietary.html">MALWARE</a></li> <li id="tabHelp"><a href="/help/help.html">HELP GNU</a></li> <li id="tabAV"><a href="/audio-video/audio-video.html">AUDIO & VIDEO</a></li> <li id="tabArt"><a href="/graphics/graphics.html">GNU ART</a></li> <li id="tabFun"><a href="/fun/humor.html">FUN</a></li> <li id="tabPeople"><a href="/people/people.html">GNU'S WHO?</a></li> <li><a href="//directory.fsf.org">SOFTWARE DIRECTORY</a></li> <li><a href="https://h-node.org/">HARDWARE</a></li> <li><a href="/server/sitemap.html">SITEMAP</a></li> </ul> <div style="clear: both"></div> </div><!-- /"navigation --> <!-- end of server/body-include-2 --> <div id="content" role="main"> <!-- end of server/banner.html --> <div class="breadcrumb" role="navigation"> <a href="/"><img src="/graphics/icons/home.png" height="26" width="26" alt="GNU Home" title="GNU Home" /><span class="gnun-split"></span></a> /<span class="gnun-split"></span> <a href="/philosophy/philosophy.html#content">Philosophy<span class="gnun-split"></span></a> /<span class="gnun-split"></span> <a href="/philosophy/essays-and-articles.html#content">Essays & articles<span class="gnun-split"></span></a> /<span class="gnun-split"></span> <a href="/philosophy/essays-and-articles.html#LicensingFreeSoftware">Licensing free software<span class="gnun-split"></span></a> /<span class="gnun-split"></span> <a href="/philosophy/essays-and-articles.html#traps">Traps<span class="gnun-split"></span></a> /<span class="gnun-split"></span> </div> <!--GNUN: OUT-OF-DATE NOTICE--> <div class="article reduced-width"> <h2>The X Window System Trap</h2> <address class="byline">by Richard M. Stallman</address> <p> To copyleft or not to copyleft? That is one of the major controversies in the free software community. The idea of copyleft is that we should fight fire with fire—that we should use copyright to make sure our code stays free. The GNU General Public License (GNU GPL) is one example of a copyleft license.</p> <p> Some free software developers prefer noncopyleft distribution. Noncopyleft licenses such as the XFree86 and <a href="/licenses/bsd.html">BSD</a> licenses are based on the idea of never saying no to anyone—not even to someone who seeks to use your work as the basis for restricting other people. Noncopyleft licensing does nothing wrong, but it misses the opportunity to actively protect our freedom to change and redistribute software. For that, we need copyleft.</p> <p> For many years, the X Consortium was the chief opponent of copyleft. It exerted both moral suasion and pressure to discourage free software developers from copylefting their programs. It used moral suasion by suggesting that it is not nice to say no. It used pressure through its rule that copylefted software could not be in the X Distribution.</p> <p> Why did the X Consortium adopt this policy? It had to do with their conception of success. The X Consortium defined success as popularity—specifically, getting computer companies to use the X Window System. This definition put the computer companies in the driver's seat: whatever they wanted, the X Consortium had to help them get it.</p> <p> Computer companies normally distribute proprietary software. They wanted free software developers to donate their work for such use. If they had asked for this directly, people would have laughed. But the X Consortium, fronting for them, could present this request as an unselfish one. “Join us in donating our work to proprietary software developers,” they said, suggesting that this is a noble form of self-sacrifice. “Join us in achieving popularity,” they said, suggesting that it was not even a sacrifice.</p> <p> But self-sacrifice is not the issue: tossing away the defense that copyleft provides, which protects the freedom of the whole community, is sacrificing more than yourself. Those who granted the X Consortium's request entrusted the community's future to the goodwill of the X Consortium.</p> <p> This trust was misplaced. In its last year, the X Consortium made a plan to restrict the forthcoming X11R6.4 release so that it would not be free software. They decided to start saying no, not only to proprietary software developers, but to our community as well.</p> <p> There is an irony here. If you said yes when the X Consortium asked you not to use copyleft, you put the X Consortium in a position to license and restrict its version of your program, along with the code for the core of X.</p> <p> The X Consortium did not carry out this plan. Instead it closed down and transferred X development to the Open Group, whose staff are now carrying out a similar plan. To give them credit, when I asked them to release X11R6.4 under the GNU GPL in parallel with their planned restrictive license, they were willing to consider the idea. (They were firmly against staying with the old X11 distribution terms.) Before they said yes or no to this proposal, it had already failed for another reason: the XFree86 group followed the X Consortium's old policy, and will not accept copylefted software. </p> <p> In September 1998, several months after X11R6.4 was released with nonfree distribution terms, the Open Group reversed its decision and rereleased it under the same noncopyleft free software license that was used for X11R6.3. Thus, the Open Group therefore eventually did what was right, but that does not alter the general issue.</p> <p> Even if the X Consortium and the Open Group had never planned to restrict X, someone else could have done it. Noncopylefted software is vulnerable from all directions; it lets anyone make a nonfree version dominant, if he will invest sufficient resources to add significantly important features using proprietary code. Users who choose software based on technical characteristics, rather than on freedom, could easily be lured to the nonfree version for short-term convenience.</p> <p> The X Consortium and Open Group can no longer exert moral suasion by saying that it is wrong to say no. This will make it easier to decide to copyleft your X-related software.</p> <p> When you work on the core of X, on programs such as the X server, Xlib, and Xt, there is a practical reason not to use copyleft. The X.org group does an important job for the community in maintaining these programs, and the benefit of copylefting our changes would be less than the harm done by a fork in development. So it is better to work with them, and not copyleft our changes on these programs. Likewise for utilities such as <code>xset</code> and <code>xrdb</code>, which are close to the core of X and do not need major improvements. At least we know that the X.org group has a firm commitment to developing these programs as free software.</p> <p> The issue is different for programs outside the core of X: applications, window managers, and additional libraries and widgets. There is no reason not to copyleft them, and we should copyleft them.</p> <p> In case anyone feels the pressure exerted by the criteria for inclusion in the X distributions, the GNU Project will undertake to publicize copylefted packages that work with X. If you would like to copyleft something, and you worry that its omission from the X distribution will impede its popularity, please ask us to help.</p> <p> At the same time, it is better if we do not feel too much need for popularity. When a businessman tempts you with “more popularity,” he may try to convince you that his use of your program is crucial to its success. Don't believe it! If your program is good, it will find many users anyway; you don't need to feel desperate for any particular users, and you will be stronger if you do not. You can get an indescribable sense of joy and freedom by responding, “Take it or leave it—that's no skin off my back.” Often the businessman will turn around and accept the program with copyleft, once you call the bluff.</p> <p> Friends, free software developers, don't repeat old mistakes! If we do not copyleft our software, we put its future at the mercy of anyone equipped with more resources than scruples. With copyleft, we can defend freedom, not just for ourselves, but for our whole community.</p> </div> </div><!-- for id="content", starts in the include above --> <!-- begin server/footer-text.html --> <div style="clear:both"></div> <div id="language-container"> <div class="backtotop"> <hr class="no-display" /> <a href="#top"><b>▲</b></a> </div> <div id="languages" class="rounded-corners"> <div class="button"> <a href="#top" class="close"><span>BACK TO TOP</span></a> </div> <div id="set-language" class="button"> <span class="gnun-split"></span> <a href="/server/select-language.html?callback=/philosophy/x.html" rel="nofollow"> Set language <span class="gnun-split"></span> </a> </div> <p>Available for this page:</p> <div id="translations"> <p> <span dir="ltr" class="original">[en] <a lang="en" hreflang="en" href="/philosophy/x.en.html">English</a> </span> <span dir="ltr">[de] <a lang="de" hreflang="de" href="/philosophy/x.de.html">Deutsch</a> </span> <span dir="ltr">[es] <a lang="es" hreflang="es" href="/philosophy/x.es.html">español</a> </span> <span dir="ltr">[fr] <a lang="fr" hreflang="fr" href="/philosophy/x.fr.html">français</a> </span> <span dir="ltr">[id] <a lang="id" hreflang="id" href="/philosophy/x.id.html">Indonesia</a> </span> <span dir="ltr">[ja] <a lang="ja" hreflang="ja" href="/philosophy/x.ja.html">日本語</a> </span> <span dir="ltr">[ko] <a lang="ko" hreflang="ko" href="/philosophy/x.ko.html">한국어</a> </span> <span dir="ltr">[nl] <a lang="nl" hreflang="nl" href="/philosophy/x.nl.html">Nederlands</a> </span> <span dir="ltr">[pl] <a lang="pl" hreflang="pl" href="/philosophy/x.pl.html">polski</a> </span> <span dir="ltr">[ru] <a lang="ru" hreflang="ru" href="/philosophy/x.ru.html">русский</a> </span> <span dir="ltr">[sq] <a lang="sq" hreflang="sq" href="/philosophy/x.sq.html">Shqip</a> </span> <span dir="ltr">[uk] <a lang="uk" hreflang="uk" href="/philosophy/x.uk.html">українська</a> </span> <span dir="ltr">[zh-cn] <a lang="zh-cn" hreflang="zh-cn" href="/philosophy/x.zh-cn.html">简体中文</a> </span> <span dir="ltr">[zh-tw] <a lang="zh-tw" hreflang="zh-tw" href="/philosophy/x.zh-tw.html">繁體中文</a> </span> </p> </div> </div> </div> <div id="mission-statement" role="complementary"> <div class="backtotop"> <hr class="no-display" /> <a href="#header"><span>BACK TO TOP </span>▲</a> </div> <div style="clear: both"></div> <blockquote> <p style="direction:ltr; text-align:left"><a href="//www.fsf.org"><img id="fsfbanner" src="/graphics/fsf-logo-notext-small.png" alt=" [FSF logo] " width="75" height="25" /></a><strong> “The Free Software Foundation (FSF) is a nonprofit with a worldwide mission to promote computer user freedom. We defend the rights of all software users.”</strong></p> </blockquote> <div id="support-the-fsf" class="button"> <a class="join" href="//www.fsf.org/associate/support_freedom?referrer=4052">JOIN</a> <a class="donate" href="//donate.fsf.org/">DONATE</a> <a class="shop" href="//shop.fsf.org/">SHOP</a> </div> </div> <!-- end server/footer-text.html --> <div id="footer" role="contentinfo"> <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 contributing 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 contributing 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 © 1998, 2009, 2021 Richard M. 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> <!-- start of server/bottom-notes.html --> <div id="bottom-notes" class="unprintable"> <p><a href="//www.fsf.org/about/dmca-notice">Copyright Infringement Notification</a></p> <div id="generic"> </div> </div> <!-- end of server/bottom-notes.html --> <p class="unprintable">Updated: <!-- timestamp start --> $Date: 2021/09/05 10:10:14 $ <!-- timestamp end --> </p> </div> </div><!-- for class="inner", starts in the banner include --> </body> </html>