<!--#include virtual="/server/header.html" -->
<!-- Parent-Version: 1.79 -->

<title>GNU Ethical Repository Criteria
- GNU Project - Free Software Foundation</title>
 <!--#include virtual="/software/po/repo-criteria.translist" -->
<!--#include virtual="/server/banner.html" -->
<h2>GNU ethical repository criteria</h2>

<p>We developed these criteria to judge services for hosting parts of
the GNU operating system, but we recommend them to everyone that wants
to use a service for publicly hosting free source code (and optionally
executable programs too).  The criteria emphasize protection of
privacy, functionality without
<a href="https://www.fsf.org/campaigns/freejs">nonfree JavaScript</a>,
compatibility with copyleft licensing and philosophy, and not
rejecting any users.</p>

<p>GNU also maintains <a
href="/software/repo-criteria-evaluation.html">evaluations of
code-hosting sites</a> by the standards of these criteria.  If you'd
like to help us evaluate more sites or update existing evaluations as
sites improve (or worsen) their scores, join the <a
href="https://lists.gnu.org/mailman/listinfo/repo-criteria-discuss">repo-criteria-discuss</a>
  mailing list.</p>

<p>You can also help us by providing feedback on
our <a href="/software/proposed-new-repo-criteria.html">proposed
updates</a> to the repo criteria.</p>

<h3>Version 1.1</h3>

<h4 id="F">F — Unacceptable</h4>

<h4 id="C">C — Acceptable hosting for a GNU package</h4>
  <ul>
    <li id="C0"><p>All important site functionality that's enabled for use
        with that package works correctly (though it need not look
        as nice) in free browsers, including
        <a href="/software/gnuzilla/">IceCat</a>,
        without running any nonfree software sent by the
        site.  <strong>(C0)</strong></p>

    <ul>
      <li id="C0-0"><p>Regarding sending code that runs on the JavaScript
          platform, any such code used by an important site
          function either (1) is free software, and labeled
          properly for
          <a href="/software/librejs/">LibreJS</a>
          to recognize as free, or (2) isn't necessary, so that
          the function works properly even if JavaScript is
          disabled in the browser.</p>
        <p>See <a href="/philosophy/javascript-trap.html">The JavaScript Trap</a> for more explanation.</p>
        <p>Note that free software must come with the real
          source code.  Minified JavaScript code, and code
          generated by translation from some other language, are
          not source code.  They are a kind of object code.
          <strong>(C0.0)</strong></p></li>

      <li id="C0-1"><p>Regarding sending code that executes based on a
          platform other than JavaScript, those conditions apply,
          mutatis mutandis.  In addition, a free implementation of
          that platform, and a free program to check for free
          licensing (comparable to LibreJS for JavaScript), must be
          available for the principal GNU browser IceCat, and the
          site must work adequately with them.</p>
        <p>Using JavaScript code to interpret some other
          language counts as using the JavaScript
          platform.  Translating another language into JavaScript
          code and sending that JavaScript code also constitutes
          use of the JavaScript platform.  In the former case, free
          JavaScript-platform code means that the interpreter and
          the programs it interprets are free software.  In the
          latter case, free JavaScript-platform code means that
          the code people maintain, which is input to the
          translator, is free software; we also require that a
          free translator exist which is adequate for the
          translation job.  <strong>(C0.1)</strong></p></li>
    </ul>
    </li>
    <li id="C1"><p>No other nonfree software is required to use the
        site (thus, no Flash).  <strong>(C1)</strong></p></li>

    <li id="C2"><p>Does not discriminate against classes of users, or
        against any country.  <strong>(C2)</strong></p></li>

    <li id="C3"><p>Permits access via Tor (we consider this an
        important site function). <strong>(C3)</strong></p></li>

    <li id="C4"><p>The site's terms of service contain no odious
        conditions.  <strong>(C4)</strong></p></li>

    <li id="C5"><p>Recommends and encourages GPL 3-or-later licensing at
        least as much as any other kind of licensing.  <strong>(C5)</strong></p></li>

    <li id="C6"><p>Support HTTPS properly and securely, including the site's
        certificates.  <strong>(C6)</strong></p></li>
  </ul>

<h4 id="B">B — Good enough to recommend</h4>
    <p>The above criteria, plus:</p>

  <ul>
    <li id="B0"><p>All code sent to the user's browser must be free
        software and labeled for LibreJS or other suitable free
        automatic license analyzer, regardless of whether the site
        functions when the user disables this code.
        <strong>(B0)</strong></p></li>

    <li id="B1"><p>Does not report visitors to other organizations; in
        particular, no tracking tags in the pages. This means the
        site must avoid most advertising networks.
        <strong>(B1)</strong></p></li>

    <li id="B2"><p>Does not encourage bad licensing practices (no
        license, unclear licensing, GPL N only).
        <strong>(B2)</strong></p></li>

    <li id="B3"><p>Does not recommend nonfree licenses for works of
        practical use.  <strong>(B3)</strong></p></li>
  </ul>

<h4 id="A">A — Excellent</h4>
  <p>The above criteria, plus:</p>

<ul>
  <li id="A0"><p>All important site functions work correctly (though may not
      look as nice) when the user disables execution of JavaScript
      and other code sent by the
      site.  <strong>(A0)</strong></p></li>

  <li id="A1"><p>Server code released as free software.
      <strong>(A1)</strong></p></li>

  <li id="A2"><p>Encourages use of GPL 3-or-later as preferred option.
      <strong>(A2)</strong></p></li>

  <li id="A3"><p>Offers use of AGPL 3-or-later as an option.
      <strong>(A3)</strong></p></li>

  <li id="A4"><p>Does not permit nonfree licenses (or lack of license) for
      works for practical use. <strong>(A4)</strong></p></li>

  <li id="A5"><p>Does not recommend services that
      are <a href="/philosophy/who-does-that-server-really-serve.html">SaaSS</a>.
      <strong>(A5)</strong></p></li>

  <li id="A6"><p>Says “free software,” not “open
      source.”  <strong>(A6)</strong></p></li>

  <li id="A7"><p>Clearly endorses the Free Software Movement's ideas of
      freedom.  <strong>(A7)</strong></p></li>

  <li id="A8"><p>Avoids saying “Linux” without “GNU”
      when referring to GNU/Linux.  <strong>(A8)</strong></p></li>

  <li id="A9"><p>Insists that each nontrivial file in a package clearly and
   unambiguously state how it is licensed. <strong>(A9)</strong></p></li>
</ul>

<h4 id="A-plus">A+ — Extra credit</h4>

<p>The above criteria, plus:</p>

<ul>
  <li id="A-plus-0"><p>Allows visitors to look and download without authenticating.
      <strong>(A+0)</strong></p></li>

  <li id="A-plus-1"><p>Does not log anything about visitors.
      <strong>(A+1)</strong></p></li>

  <li id="A-plus-2"><p>Follows the criteria in The Electronic Frontier
      Foundation's <a href="https://www.eff.org/wp/osp">best
        practices for online service providers</a>.
      <strong>(A+2)</strong></p></li>

  <li id="A-plus-3"><p>Follows
      the <a href="https://www.w3.org/WAI/WCAG20/quickref/">Web
        “Content” Accessibility Guidelines 2.0</a> (WCAG 2.0)
      standard.
      <strong>(A+3)</strong></p></li>

  <li id="A-plus-4"><p>Follows
      the <a href="https://www.w3.org/TR/wai-aria-practices/">Web
        Accessibility Initiative — Accessible Rich Internet
        Applications 1.0</a> (WAI-ARIA 1.0) standard.
      <strong>(A+4)</strong></p></li>

  <li id="A-plus-5"><p>All data contributed by the project owner and contributors
      is exportable in a machine-readable format.
      <strong>(A+5)</strong></p></li>
</ul>

<h3 id="volunteers">Acknowledgements</h3>

<p>The following individuals have helped as evaluators or otherwise
  contributed ideas, suggestions and improvements to this
  document.</p>

<ul>
  <li>Aaron Wolf</li>
  <li id="oitofelix"><a href="http://oitofelix.freeshell.org/">Bruno id="oitofelix">Bruno Félix Rezende Ribeiro</a> Ribeiro
    <a href="mailto:oitofelix@gnu.org"><oitofelix@gnu.org></a></li>
  <li>Josh Triplett</li>
  <li>Mike Gerwitz <a href="mailto:mtg@gnu.org"><mtg@gnu.org></a></li>
  <li>Richard Stallman</li>
  <li>Zak Rogoff</li>
</ul>

<p>If you are interested in helping with the evaluation or have any
  corrections, please
  contact <a href="mailto:repo-criteria-discuss@gnu.org">repo-criteria-discuss@gnu.org</a>.</p>

<p>If you are interested in helping to make code hosting sites LibreJS
  compliant (C0.0 and B0 criteria), please contact Mike Gerwitz
  at <a href="mailto:mtg@gnu.org"><mtg@gnu.org></a>.</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 © 2015, 2016 2016, 2022 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: 2022/06/15 16:00:51 $
<!-- timestamp end -->
</p>
</div>
</div>
</body>
</html>