Critères éthiques de GNU concernant l'hébergement de logiciel
Nous avons développé ces critères pour juger les services destinés à héberger des composants du système d'exploitation GNU, mais nous les recommandons à tous ceux qui veulent utiliser un service pour héberger publiquement du code source libre, ainsi qu'éventuellement des programmes exécutables. Ces critères se concentrent sur la protection de la vie privée, le fonctionnement sans JavaScript non libre, la compatibilité avec les licences à copyleft et leur philosophie, et l'absence de discrimination contre les utilisateurs, quels qu'ils soient.
GNU propose également des évaluations de sites hébergeurs de code selon ces critères. Si vous voulez nous aider à évaluer d'autres sites ou à mettre à jour les évaluations existantes à mesure que les sites s'améliorent ou se détériorent, rejoignez la liste de diffusion repo-criteria-discuss.
Vous pouvez aussi nous aider en donnant votre avis sur notre projet de mise à jour de ces critères.
Version 1.1
F – Inacceptable
C – Hébergement acceptable pour un paquet GNU
Toutes les fonctionnalités importantes du site disponibles pour ce paquet sont opérationnelles (même si le rendu est moins bon) dans les navigateurs libres, par exemple IceCat, sans exécuter de logiciel non libre envoyé par le site. (C0)
En ce qui concerne l'envoi de code s'exécutant sur la plateforme JavaScript : tout code de ce type, lorsqu'il est utilisé par une fonction importante du site est (1) soit libre et correctement étiqueté pour que LibreJS le reconnaisse comme tel, (2) soit non indispensable, de sorte que la fonction est opérationnelle même si JavaScript est désactivé dans le navigateur.
Consultez Le piège JavaScript pour plus ample information.
Notez qu'un logiciel libre doit être accompagné de son vrai code source. Le code JavaScript compacté et le code produit par traduction d'un autre langage ne sont pas du code source. Il s'agit en quelque sorte de code objet. (C0.0)
En ce qui concerne l'envoi de code s'exécutant sur une plateforme autre que JavaScript : ces conditions s'appliquent mutatis mutandis (une fois effectués les changements nécessaires). De plus, une implémentation libre de cette plateforme et un programme libre destiné à vérifier que la licence est libre (comparable à LibreJS pour JavaScript) doivent être disponibles pour le navigateur principal de GNU, IceCat, et le site doit fonctionner correctement avec eux.
Utiliser du code JavaScript pour interpréter un autre langage revient à utiliser la plateforme JavaScript. Traduire un autre langage en code JavaScript et envoyer ce code revient également à utiliser la plateforme JavaScript. Dans le premier cas, le code de la plateforme JavaScript n'est libre que si l'interpréteur et les programmes qu'il interprète sont libres. Dans le second cas, la plateforme JavaScript n'est libre que si le code édité manuellement (et fourni en entrée au logiciel de traduction) est libre ; nous exigeons également qu'il existe un logiciel libre capable de faire ce travail de traduction. (C0.1)
Aucun autre logiciel non libre n'est requis pour utiliser le site (par conséquent, pas de Flash). (C1)
Ne fait pas de discrimination contre certaines catégories d'utilisateurs ou contre certains pays. (C2)
Permet d'accéder au site par le réseau Tor (nous considérons ceci comme une fonction importante). (C3)
Les conditions de service ne contiennent pas de clause « odieuse ». (C4)
Recommande et encourage l'utilisation de la GPL, version 3 ou ultérieure, au moins autant que celle de tout autre type de licence. (C5)
Gère le HTTPS correctement et de manière sûre, y compris les certificats du site. (C6)
B – Recommandable
Outre les critères ci-dessus :
Tout code envoyé au navigateur de l'utilisateur doit être du logiciel libre ; il doit être de plus étiqueté pour LibreJS ou autre programme libre d'analyse automatique de licence adapté à la situation, et ceci que le site soit ou non fonctionnel quand l'utilisateur désactive ce code. (B0)
Ne signale pas les visiteurs à d'autres organisations ; en particulier, pas de traceurs dans les pages. Ce qui veut dire que le site doit éviter la plupart des réseaux de publicité. (B1)
N'encourage pas les mauvaises pratiques de mise sous licence (pas de licence, licence confuse, GPL N seulement). (B2)
Ne recommande pas de licence non libre pour des travaux d'utilité pratique. (B3)
A — Excellent
Outre les critères ci-dessus :
Toutes les fonctionnalités importantes du site sont opérationnelles (même si le rendu est moins bon) lorsque l'utilisateur désactive l'exécution du JavaScript ou autre code envoyé par le site.(A0)
Le code du serveur est diffusé en tant que logiciel libre. (A1)
Encourage l'utilisation préférentielle de la GPL, version 3 ou ultérieure. (A2)
Propose l'utilisation de l'AGPL, version 3 ou ultérieure, comme une option. (A3)
Ne permet pas les licences non libres (ou l'absence de licence) pour les travaux d'utilité pratique. (A4)
Ne recommande pas de « service se substituant au logiciel » (SaaSS). (A5)
Parle de « logiciel libre » et non d'« open source ». (A6)
S'engage clairement pour les idées de liberté portées par le mouvement du logiciel libre. (A7)
Évite de dire « Linux » sans « GNU » lorsque référence est faite à GNU/Linux. (A8)
Insiste pour que chaque fichier non trivial dans un paquet indique clairement et sans ambiguïté sous quelle licence il est utilisable. (A9)
A+ — Crédit supplémentaire
Outre les critères ci-dessus :
Autorise les visiteurs à regarder et télécharger sans authentification. (A+0)
N'enregistre rien au sujet des visiteurs. (A+1)
Suit les critères de l'Electronic Frontier Foundation explicités dans Best Practices for Online Service Providers (meilleures pratiques pour les fournisseurs de services en ligne). (A+2)
Applique les normes WCAG 2.0 (Web “Content” Accessibility Guidelines 2.0 – Guide d'accessibilité du « contenu » web 2.0). (A+3)
Applique les normes WAI-ARIA 1.0 (Web Accessibility Initiative — Accessible Rich Internet Applications 1.0 – Initiative pour l'accessibilité du web - Applications Internet riches et accessibles). (A+4)
Toutes les données apportées par le responsable du projet et les contributeurs sont exportables dans un format lisible par machine. (A+5)
Remerciements
Les personnes suivantes ont apporté leur aide comme évaluateurs ou en proposant des idées, des suggestions et des améliorations à ce document.
- Aaron Wolf
- Bruno Félix Rezende Ribeiro <oitofelix@gnu.org>
- Josh Triplett
- Mike Gerwitz <mtg@gnu.org>
- Richard Stallman
- Zak Rogoff
Si vous avez envie d'aider aux évaluations ou si vous avez des corrections à proposer, merci de contacter repo-criteria-discuss@gnu.org.
Si vous avez envie d'aider à rendre des sites d'hébergement de code compatibles avec LibreJS (critère C0.0 et B0), merci de contacter Mike Gerwitz à <mtg@gnu.org>.