taler-merchant-demos

Python-based Frontends for the Demonstration Web site
Log | Files | Refs | Submodules | README | LICENSE

selling-exceptions.html (10614B)


      1 <!--#include virtual="/server/header.html" -->
      2 <!-- Parent-Version: 1.96 -->
      3 <!-- This page is derived from /server/standards/boilerplate.html -->
      4 <!--#set var="TAGS" value="essays licensing copyleft" -->
      5 <!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
      6 <title>Selling Exceptions to the GNU GPL
      7 - GNU Project - Free Software Foundation</title>
      8 <link rel="canonical" href="http://www.fsf.org/blogs/rms/selling-exceptions" />
      9 <!--#include virtual="/philosophy/po/selling-exceptions.translist" -->
     10 <!--#include virtual="/server/banner.html" -->
     11 <!--#include virtual="/philosophy/ph-breadcrumb.html" -->
     12 <!--GNUN: OUT-OF-DATE NOTICE-->
     13 <!--#include virtual="/server/top-addendum.html" -->
     14 <div class="article reduced-width">
     15 <h2>Selling Exceptions to the GNU GPL</h2>
     16 
     17 <address class="byline">by <a href="https://www.stallman.org/">Richard
     18 Stallman</a></address>
     19 
     20 <p>Selling exceptions means that the copyright holder of the code
     21 releases it to the general public under a valid free software license,
     22 then separately offers users the option of paying for permission to
     23 use the same code under different terms, for instance terms allowing
     24 its inclusion in proprietary applications.</p>
     25 
     26 <p>We must distinguish the practice of selling exceptions from something
     27 crucially different: purely proprietary extensions or versions of
     28 a free program.  These two activities, even if practiced
     29 simultaneously by one company, are different issues.  In selling
     30 exceptions, the same code that the exception applies to is available
     31 to the general public as free software.  An extension or a modified
     32 version that is only available under a proprietary license is
     33 proprietary software, pure and simple, and just as wrong as any other
     34 proprietary software.  This article is concerned with cases that
     35 involve strictly and only the sale of exceptions.</p>
     36 
     37 <p>We must also distinguish selling exceptions from dual licensing,
     38 which means releasing the program under a choice of licenses.  With
     39 dual licensing, each user can choose to use the program under either
     40 one of the licenses, or under both in parallel for activities that fit
     41 both.  (Thus, redistributors normally pass along both of the
     42 licenses.)  For instance, Perl was distributed for many years under a
     43 dual license whose alternatives were the GNU GPL and the Artistic
     44 License.  That is not necessary any more because version 2 of the
     45 Artistic License is compatible with the GNU GPL.</p>
     46 
     47 <p>In selling exceptions, the exception's terms are not a second
     48 license that the program is released under.  Rather, they are
     49 available only to those users that buy an exception.  The only license
     50 that the release carries is the GNU GPL, so this is not dual
     51 licensing.</p>
     52 
     53 <p>We must distinguish selling of exceptions from the usual kind of
     54 &ldquo;exception to the GPL,&rdquo; which simply gives all users
     55 permission to go beyond the GPL's conditions in some specific way.
     56 These exceptions are governed by section 7 of the GNU GPL.  Selling
     57 exceptions is legally independent of the GNU GPL.  To avoid confusion
     58 it is best not to refer to exceptions that are sold as
     59 &ldquo;exceptions to the GPL.&rdquo;</p>
     60 
     61 <p>I've considered selling exceptions acceptable since the 1990s, and on
     62 occasion I've suggested it to companies.  Sometimes this approach has
     63 made it possible for important programs to become free software.</p>
     64 
     65 <p>The KDE desktop was developed in the 90s based on the Qt library.  Qt
     66 was proprietary software, and TrollTech charged for permission to
     67 embed it in proprietary applications.  TrollTech allowed gratis use of
     68 Qt in free applications, but this did not make it free/libre software.
     69 Completely free operating systems therefore could not include Qt, so
     70 they could not use KDE either.</p>
     71 
     72 <p>In 1998, the management of TrollTech recognized that they could
     73 make Qt free software and continue charging for permission to embed it
     74 in proprietary software.  I do not recall whether the suggestion came
     75 from me, but I certainly was happy to see the change, which made it
     76 possible to use Qt and thus KDE in the free software world.</p>
     77 
     78 <p>Initially, they used their own license, the Q Public License
     79 (QPL)&mdash;quite restrictive as free software licenses go, and
     80 incompatible with the GNU GPL.  Later they switched to the GNU GPL; I
     81 think I had explained to them that it would work for the purpose.</p>
     82 
     83 <p>Selling exceptions depends fundamentally on using a copyleft
     84 license, such as the GNU GPL, for the free software release.  A
     85 copyleft license permits embedding in a larger program only if the
     86 whole combined program is released under that license; this is how it
     87 ensures extended versions will also be free.  Thus, users that want to
     88 make the combined program proprietary need special permission.  Only
     89 the copyright holder can grant that, and selling exceptions is one
     90 style of doing so.  Someone else, who received the code under the GNU
     91 GPL or another copyleft license, cannot grant an exception.</p>
     92 
     93 <p>When I first heard of the practice of selling exceptions, I asked
     94 myself whether the practice is ethical.  If someone buys an exception
     95 to embed a program in a larger proprietary program, he's doing
     96 something wrong (namely, making proprietary software).  Does it follow
     97 that the developer that sold the exception is doing something wrong
     98 too?</p>
     99 
    100 <p>If that implication were valid, it would also apply to releasing the
    101 same program under a noncopyleft free software license, such as the
    102 X11 license.  That also permits such embedding.  So either we have to
    103 conclude that it's wrong to release anything under the X11
    104 license&mdash;a conclusion I find unacceptably extreme&mdash;or reject
    105 the implication.  Using a noncopyleft license is weak,
    106 and <a href="/licenses/license-recommendations.html">usually an
    107 inferior choice</a>, but it's not wrong.</p>
    108 
    109 <p>In other words, selling exceptions permits limited embedding of the
    110 code in proprietary software, but the X11 license goes even further,
    111 permitting unlimited use of the code (and modified versions of it) in
    112 proprietary software.  If this doesn't make the X11 license
    113 unacceptable, it doesn't make selling exceptions unacceptable.</p>
    114 
    115 <p>There are three reasons why the FSF doesn't practice selling
    116 exceptions.  One is that it doesn't lead to the FSF's goal: assuring
    117 freedom for each user of our software.  That's what we wrote the GNU
    118 GPL for, and the way to achieve this most thoroughly is to release
    119 under GPL version 3-or-later and not allow embedding in proprietary
    120 software.  Selling exceptions wouldn't achieve this, just as release
    121 under the X11 license wouldn't.  So normally we don't do either of
    122 those things: we release under the GPL only.</p>
    123 
    124 <p>Another reason we release only under the GPL is so as not to permit
    125 proprietary extensions that would present practical advantages over
    126 our free programs.  Users for whom freedom is not a value might choose
    127 those nonfree versions rather than the free programs they are based
    128 on&mdash;and lose their freedom.  We don't want to encourage that.</p>
    129 
    130 <p>There are occasional cases where, for specific reasons of
    131 strategy, we decide that using a more permissive license on a certain
    132 program is better for the cause of freedom.  In those cases, we
    133 release the program to everyone under that permissive license.</p>
    134 
    135 <p>This is because of another ethical principle that the FSF follows:
    136 to treat all users the same.  An idealistic campaign for freedom
    137 should not discriminate, so the FSF is committed to giving the same
    138 license to all users.  The FSF never sells exceptions; whatever
    139 license or licenses we release a program under, that is available to
    140 everyone.</p>
    141 
    142 <p>But we need not insist that companies follow that principle.  I
    143 consider selling exceptions an acceptable thing for a company to do,
    144 and I will suggest it where appropriate as a way to get programs
    145 freed.</p>
    146 </div>
    147 
    148 </div><!-- for id="content", starts in the include above -->
    149 <!--#include virtual="/server/footer.html" -->
    150 <div id="footer" role="contentinfo">
    151 <div class="unprintable">
    152 
    153 <p>Please send general FSF &amp; GNU inquiries to <a
    154 href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>.  There are also <a
    155 href="/contact/">other ways to contact</a> the FSF.  Broken links and other
    156 corrections or suggestions can be sent to <a
    157 href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
    158 
    159 <p><!-- TRANSLATORS: Ignore the original text in this paragraph,
    160         replace it with the translation of these two:
    161 
    162         We work hard and do our best to provide accurate, good quality
    163         translations.  However, we are not exempt from imperfection.
    164         Please send your comments and general suggestions in this regard
    165         to <a href="mailto:web-translators@gnu.org">
    166         &lt;web-translators@gnu.org&gt;</a>.</p>
    167 
    168         <p>For information on coordinating and contributing translations of
    169         our web pages, see <a
    170         href="/server/standards/README.translations.html">Translations
    171         README</a>. -->
    172 Please see the <a
    173 href="/server/standards/README.translations.html">Translations README</a> for
    174 information on coordinating and contributing translations of this article.</p>
    175 </div>
    176 
    177 <!-- Regarding copyright, in general, standalone pages (as opposed to
    178      files generated as part of manuals) on the GNU web server should
    179      be under CC BY-ND 4.0.  Please do NOT change or remove this
    180      without talking with the webmasters or licensing team first.
    181      Please make sure the copyright date is consistent with the
    182      document.  For web pages, it is ok to list just the latest year the
    183      document was modified, or published.
    184      
    185      If you wish to list earlier years, that is ok too.
    186      Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
    187      years, as long as each year in the range is in fact a copyrightable
    188      year, i.e., a year in which the document was published (including
    189      being publicly visible on the web or in a revision control system).
    190      
    191      There is more detail about copyright years in the GNU Maintainers
    192      Information document, www.gnu.org/prep/maintain. -->
    193 
    194 <p>Copyright &copy; 2009, 2010, 2015, 2016, 2017, 2019, 2021 Richard Stallman</p>
    195 
    196 <p>This page is licensed under a <a rel="license"
    197 href="http://creativecommons.org/licenses/by-nd/4.0/">Creative
    198 Commons Attribution-NoDerivatives 4.0 International License</a>.</p>
    199 
    200 <!--#include virtual="/server/bottom-notes.html" -->
    201 
    202 <p class="unprintable">Updated:
    203 <!-- timestamp start -->
    204 $Date: 2021/10/01 17:02:54 $
    205 <!-- timestamp end -->
    206 </p>
    207 </div>
    208 </div><!-- for class="inner", starts in the banner include -->
    209 </body>
    210 </html>