Pourquoi la liberté d'exécuter un programme doit être totale
par Richard StallmanLe logiciel libre est un logiciel contrôlé par ses utilisateurs et non l'inverse. Plus précisément, cela veut dire qu'avec ce logiciel les utilisateurs reçoivent quatre libertés essentielles auxquelles ils ont droit. En tête de liste, il y a la liberté 0, la liberté d'exécuter le programme comme on le souhaite, afin de faire ce qu'on veut avec.
Certains développeurs se proposent de mettre des restrictions d'usage dans les licences de logiciel pour interdire l'utilisation du programme à certaines fins, mais aller dans ce sens serait désastreux. Cet article explique pourquoi la liberté 0 ne doit pas avoir de limite. Des clauses limitant l'utilisation d'un programme n'atteindraient que très partiellement leur but, mais pourraient être dévastatrices pour la communauté du logiciel libre.
Avant toute chose, soyons clair sur ce que signifie la liberté 0. Elle signifie que les termes de distribution du logiciel ne limitent pas la manière dont on l'utilise. Elle ne vous dispense pas d'obéir aux lois. Par exemple, la fraude est un délit aux États-Unis – une loi que j'estime juste et adéquate. Quoi que dise la licence, utiliser un logiciel libre pour frauder ne vous protégera pas des poursuites.
Une clause de licence contre la fraude serait superflue dans un pays où c'est un délit. Mais pourquoi pas une clause contre son utilisation pour la torture, activité sur laquelle les États ferment souvent les yeux lorsqu'elle est pratiquée par les « forces de sécurité » ?
Une clause contre la torture ne fonctionnerait pas parce que ce sont les services de l'État qui font appliquer les licences de logiciel libre, quelles qu'elles soient. Un État qui veut pratiquer la torture ne tiendra pas compte de la licence. Quand des personnes victimes de torture de la part des États-Unis essaient d'attaquer le gouvernement américain en justice, les tribunaux prononcent un non-lieu au motif que le traitement qu'elles ont subi est un secret touchant à la sécurité nationale. Si un développeur de logiciel essayait d'attaquer le gouvernement américain en justice pour avoir utilisé un programme dans le but de pratiquer la torture, en contravention avec sa licence, ce procès aboutirait aussi à un non-lieu. En général, les États sont pleins d'astuce lorsqu'il s'agit de se donner des excuses légales pour les choses terribles qu'ils veulent faire. Il en est de même pour les entreprises pourvues de lobbies puissants.
Et si la clause s'opposait à quelque activité privée particulière ? Par exemple, PETA a proposé une licence qui interdirait l'utilisation du logiciel pour causer de la douleur à des animaux à colonne vertébrale. Ou bien il pourrait y avoir une clause contre l'utilisation d'un certain programme pour faire et publier des dessins de Mahomet, ou pour expérimenter sur les cellules-souches embryonnaires, ou encore pour faire des copies illicites d'enregistrements musicaux.
Il n'est pas sûr que ces clauses soient applicables. Les licences de logiciel libre sont basées sur le droit du copyright, et essayer d'imposer des conditions d'usage de cette façon revient à repousser la limite de ce que permet le droit du copyright, la repousser de manière dangereuse. Est-ce que vous apprécieriez que les livres comportent des clauses de licence se rapportant à ce que vous pouvez faire avec l'information qu'ils contiennent ?
Et si de telles clauses étaient applicables ? Est-ce que ce serait une bonne chose ?
En réalité, les gens ont des idées très différentes sur l'éthique des activités qui peuvent être pratiquées à l'aide de logiciel. Il se trouve que, personnellement, je considère ces quatre activités non conventionnelles comme légitimes et pense qu'elles ne doivent pas être interdites. Je soutiens notamment l'utilisation de logiciel dans l'expérimentation médicale sur les animaux et dans l'industrie de la viande. Je défends les droits de l'homme dont jouissent les activistes des droits des animaux, mais ne suis pas d'accord avec eux. Je ne voudrais pas que PETA ait gain de cause en ce qui concerne les restrictions d'usage du logiciel.
Comme je ne suis pas pacifiste, je ne serais pas non plus d'accord avec une clause interdisant son usage militaire. Je condamne les guerres d'agression, mais je ne condamne pas la riposte. En fait, j'ai soutenu des actions visant à convaincre différentes armées de passer au logiciel libre, puisque qu'elles peuvent y vérifier l'absence de portes dérobées [backdoors] et de dispositifs d'espionnage qui pourraient mettre en péril la sécurité nationale.
Comme je ne suis pas contre les entreprises d'une manière générale, je m'opposerais à toute restriction de l'usage commercial. Un système qu'on pourrait seulement utiliser pour le divertissement, les loisirs et l'école serait interdit à une grande part de nos activités informatiques.
J'ai déjà exposé certaines de mes idées sur d'autres questions politiques sans lien avec le logiciel libre – comment j'évalue ces actions en termes d'injustice. Votre point de vue sur ces questions est peut-être différent, et c'est là précisément que je veux en venir. Si nous acceptons de mettre des programmes comportant des restrictions d'usage dans un système d'exploitation libre comme GNU, les gens inventeront une multitude de restrictions d'usage. Il y aura des programmes interdits dans les abattoirs, des programmes interdits uniquement pour les cochons, des programmes interdits uniquement pour les vaches et des programmes réservés à la nourriture kascher. Une personne qui déteste les épinards pourrait mettre un programme sous une licence autorisant la préparation de tous les légumes sauf les épinards, alors que le programme d'un fan de Popeye autoriserait uniquement celle des épinards. Il y aurait des lecteurs de musique réservés au rap et d'autres à la musique classique.
Il en résulterait un système qu'on ne pourrait pas considérer comme polyvalent. Chaque fois qu'on se proposerait d'effectuer une tâche, on devrait vérifier un tas de licences pour voir quelles parties du système sont hors limites pour cette tâche particulière ; examiner non seulement les composants impliqués directement, mais aussi les centaines de composants qu'ils invoquent, ou avec lesquels ils se lient ou communiquent.
Quelle serait la réaction des utilisateurs ? Je pense que la plupart d'entre eux utiliseraient des systèmes privateurs (propriétaires). Permettre une quelconque restriction d'usage dans un logiciel libre aboutirait surtout à pousser les utilisateurs vers le logiciel privateur. Essayer d'empêcher les utilisateurs de faire quelque chose par le biais de restrictions d'usage du logiciel libre est aussi inefficace que de pousser un objet avec un long spaghetti bien cuit. Comme disait un humoriste, c'est le cas d'« une personne qui a un très petit marteau et voit dans chaque problème un clou, sans même reconnaître que le clou est trop gros pour le marteau ».
C'est pire qu'inefficace ; c'est aussi une mauvaise action, parce que les développeurs de logiciel ne doivent pas exercer un tel pouvoir sur ce que font les utilisateurs. Imaginez qu'on nous vende des stylos avec des clauses concernant ce que nous pouvons écrire avec ; ce serait répugnant, nous ne devrions pas le tolérer. Il en est de même avec le logiciel polyvalent. Si vous fabriquez quelque chose qui est d'usage universel, comme un stylo, les gens l'utiliseront pour écrire toutes sortes de choses, même des choses horribles, comme l'ordre de torturer un opposant ; mais vous ne devez pas avoir le pouvoir de contrôler les actions des gens par le biais de leurs stylos. C'est la même chose pour un éditeur de texte, un compilateur ou un noyau.
Vous avez tout de même l'occasion de déterminer l'utilisation qui peut être faite de votre logiciel : quand vous décidez quelles fonctionnalités implémenter. Vous pouvez écrire des programmes qui se prêtent surtout aux usages que vous estimez positifs, et vous n'avez aucune obligation de programmer des fonctionnalités qui pourraient se prêter particulièrement à des actions que vous désapprouvez.
La conclusion est évidente : un programme ne doit pas restreindre les tâches que ses utilisateurs peuvent effectuer avec son aide. La liberté 0 doit être totale. Nous avons besoin d'arrêter la torture, mais nous ne pouvons pas le faire avec des licences de logiciel. Le rôle des licences de logiciel est d'instaurer et de protéger la liberté des utilisateurs.