Linux, GNU et liberté
par Richard M. StallmanPuisque l'article de Joe Barr a critiqué mes négociations avec SIGLINUX, je voudrais faire une mise au point sur ce qui s'est vraiment passé, et donner mes raisons.
Quand SIGLINUX m'a invité à parler, il s'agissait d'un « groupe d'utilisateurs de Linux » (LUG), un groupe d'utilisateurs du système GNU/Linux qui appelle l'ensemble du système d'exploitation « Linux ». J'ai alors répondu poliment que s'ils voulaient qu'une personne du projet GNU fasse un discours pour eux, ils devaient traiter le projet GNU correctement et appeler le système « GNU/Linux ». Ce système est une variante de GNU et le projet GNU en est le principal développeur, aussi la politesse veut-elle qu'on lui donne le nom que nous avons choisi. À moins de raisons impérieuses justifiant une exception, je refuse habituellement de faire des discours pour les organisations qui ne donnent pas à GNU le crédit qui lui revient. Je respecte leur liberté d'expression, mais j'ai également la liberté de ne pas faire de discours.
Par la suite, Jeff Strunk de SIGLINUX a essayé de changer la politique du groupe et a demandé à la FSF de l'inscrire sur notre page de groupes d'utilisateurs GNU/Linux. Notre webmestre lui a répondu que nous ne l'inscririons pas sous le nom « SIGLINUX », ce nom impliquant que l'objet de ce groupe était Linux. Strunk a proposé de prendre le nom de « SIGFREE », et notre webmestre a approuvé (l'article de Barr a dit que nous avions rejeté cette proposition). Quoi qu'il en soit, le groupe décida finalement de garder « SIGLINUX ».
À ce moment-là, on me redemanda mon avis et je suggérai de réfléchir à d'autres noms possibles. Ils ont le choix entre beaucoup de noms qui n'appellent pas le système « Linux » et j'espère qu'ils en trouveront un qui leur plaise. Voilà où en sont les choses, pour autant que je sache.
Est-il vrai, comme l'écrit Barr, que certains voient dans ces actions une « utilisation de la force » comparable au pouvoir du monopole de Microsoft ? Probablement. Décliner une invitation n'est pas de la coercition, mais les gens qui sont déterminés à croire que le système entier est « Linux » développent parfois une vision étonnamment déformée. Pour justifier ce nom, ils prennent des vessies pour des lanternes. Si vous pouvez ignorer les faits et croire que Linus Torvalds a développé l'ensemble du système en commençant en 1991, ou ignorer votre sens de la justice et croire que Torvalds devrait être le seul à en obtenir le crédit bien qu'il ne l'ait pas fait, il n'y a qu'un pas à faire pour croire que je vous dois un discours si vous me le demandez.
Considérez ceci : le projet GNU commence à développer un système d'exploitation, et des années plus tard Linus Torvalds y ajoute une partie importante. Le projet GNU dit « Veuillez mentionner notre projet équitablement », mais Linus répond, « Ne leur donnez aucune part du mérite, appelez l'ensemble de mon seul nom ! » Imaginez maintenant l'état d'esprit d'une personne qui, à la lumière de ces événements, accuse le projet GNU d'égoïsme. Il faut de sacrés préjugés pour se méprendre à ce point.
Une personne aux préjugés aussi bien ancrés peut dire toutes sortes de choses injustes au sujet du projet GNU et les trouver justifiées ; ses camarades la soutiendront, parce qu'ils veulent un soutien mutuel dans le maintien de leurs préjugés. Ceux qui ne sont pas d'accord peuvent se faire injurier ; alors, si je refuse de participer à une activité sous la rubrique « Linux », ils peuvent trouver cela inexcusable et me tenir pour responsable du malaise qu'ils ressentent après coup. Lorsque tant de gens veulent que j'appelle le système « Linux », comment puis-je, moi qui ai simplement lancé son développement, ne pas obéir ? Et leur refuser carrément un discours les mécontente carrément. C'est de la coercition, aussi néfaste que celle de Microsoft !
Vous vous demandez peut-être pourquoi je fais tant d'histoires et me donne tout ce mal. Quand SIGLINUX m'a convié à parler, j'aurais pu me contenter de dire « Non, désolé », et l'affaire en serait restée là. Pourquoi ne l'ai-je pas fait ? Parce que je suis prêt à prendre le risque d'être personnellement injurié afin d'avoir une chance de corriger l'erreur qui sape les efforts du projet GNU.
Appeler cette variante du système GNU « Linux » fait le jeu de ceux qui choisissent leur logiciel en fonction du seul critère de l'avantage technique, sans se demander s'il respecte leur liberté. Il y a des gens comme Barr, qui veulent leur logiciel « libre de toute idéologie » et critiquent ceux qui mettent en avant la liberté. Il y a des gens comme Torvalds qui pousseront notre communauté à utiliser des programmes non libres et défieront ceux qui s'en plaignent de fournir immédiatement un programme (techniquement) meilleur ou de se taire. Il y a des gens pour dire que les décisions techniques ne doivent pas être « politisées » par la prise en compte de leurs conséquences sociétales.
Dans les années 70, les utilisateurs d'ordinateurs ont perdu leurs libertés de redistribuer et modifier le logiciel parce qu'ils ne donnaient pas de valeur à leur liberté. Ils ont regagné ces libertés dans les années 80 et 90, parce qu'un groupe d'idéalistes, le projet GNU, croyait que la liberté est ce qui rend un programme meilleur et voulait travailler pour ce en quoi il croyait.
Nous avons une liberté partielle aujourd'hui, mais elle n'est pas assurée. Elle est menacée par la CBDTPA (anciennement SSSCA), par le Broadcast « Protection » Discussion Group (voir www.eff.org/ [en]) qui propose d'interdire l'utilisation de logiciel libre pour accéder aux télédiffusions numériques, par les brevets logiciels (l'Europe est en train d'y réfléchir), par les clauses de confidentialité de Microsoft pour des protocoles d'importance critique et par tous ceux qui nous incitent à utiliser des programmes non libres réputés « meilleurs » (techniquement) que les programmes libres disponibles. Nous pouvons perdre à nouveau notre liberté tout comme nous l'avons perdue la première fois, si nous ne sommes pas assez concernés pour la protéger.
Serons-nous assez nombreux à être concernés ? Cela dépend de beaucoup de choses, entre autres de l'influence qu'aura le projet GNU et de l'influence qu'aura Linus Torvalds. Le projet GNU dit : « Donnez du prix à votre liberté ! » Joe Barr répond : « Choisissez entre des programmes libres et non libres sur les seuls critères techniques ! » Si les gens attribuent à Torvalds le mérite d'être le développeur principal du système GNU/Linux, non seulement c'est inexact, mais cela donne aussi plus de poids à son message. Et ce message dit : « Les logiciels non libres sont bien ; je les utilise et les développe moi-même. » S'ils reconnaissent notre rôle, ils nous écouteront mieux, et le message que nous leur donnerons sera : « Ce système existe grâce à des gens qui se soucient de la liberté. Rejoignez-nous, donnez du prix à votre liberté et ensemble nous pourrons la préserver. » Vous trouverez l'historique de notre projet dans « Le projet GNU ».
Quand je demande aux gens d'appeler le système « GNU/Linux », certains donnent des excuses farfelues et de faux prétextes. Mais il est probable que nous ne perdons rien, car au départ ils étaient sans doute mal disposés envers nous. Pendant ce temps, d'autres personnes reconnaissent la validité des raisons que je donne et utilisent ce nom. Ce faisant, ils aident les autres à prendre conscience de la véritable raison d'être du système GNU/Linux, et cela accroît notre capacité à répandre l'idée que la liberté est une valeur importante.
C'est pourquoi je continue à me battre contre les préjugés, la calomnie et l'accablement. Cela heurte mes sentiments, mais quand mon effort aboutit, il aide la campagne du projet GNU pour la liberté.
Puisque ceci est survenu dans le contexte de Linux (le noyau) et Bitkeeper, le système de contrôle de version non libre que Linus Torvalds utilise maintenant, je voudrais commenter également ce problème.
Le problème Bitkeeper
(Voir la mise à jour ci-dessous.)
L'utilisation de Bitkeeper pour les sources de Linux a de graves incidences sur la communauté du logiciel libre, car si l'on veut suivre de près les correctifs de Linux, on ne peut le faire qu'en installant ce programme non libre. Il doit y avoir des dizaines et même des centaines de hackers du noyau qui l'ont fait. La plupart d'entre eux se convainquent petit à petit que ce n'est pas grave d'utiliser des logiciels non libres, pour ne pas reconnaître la dissonance cognitive qui consiste à accepter la présence de Bitkeeper sur leurs machines. Que pouvons-nous faire ?
Une des solutions est de mettre en place un autre référentiel pour les sources de Linux, utilisant CVS ou un autre système libre de contrôle de version, et de s'arranger pour y charger les nouvelles versions automatiquement. On pourrait utiliser Bitkeeper pour accéder aux dernières révisions, puis installer les nouvelles révisions dans le dépôt CVS. Ce processus de mise à jour pourrait être exécuté automatiquement et fréquemment.
La FSF ne peut pas s'en charger, parce que nous ne pouvons pas installer Bitkeeper sur nos machines. Nous n'avons pas de système ni d'application non libre sur nos machines actuellement, et nos principes nous dictent de continuer dans cette voie. La gestion de ce référentiel devrait être faite par une personne extérieure qui accepterait d'avoir Bitkeeper sur sa machine, sauf si quelqu'un trouvait ou concevait un moyen de le faire en utilisant des logiciels libres.
Les sources de Linux ont elles-mêmes un problème de logiciel non libre bien plus grave : en fait, elles en contiennent. Pas mal de pilotes de périphériques contiennent une série de nombres qui représentent des micrologiciels [firmware] à installer dans le périphérique. Ces programmes ne sont pas des logiciels libres. Quelques nombres à déposer dans les registres d'un périphérique sont une chose ; un programme binaire conséquent en est une autre.
La présence de ces programmes, uniquement binaires, dans les fichiers « sources » de Linux crée un problème secondaire : elle remet en question la légalité de la redistribution des binaires de Linux. La GPL requiert le « code source complet correspondant », et une séquence d'entiers n'est pas un code source. Pour la même raison, ajouter de tels binaires aux sources de Linux viole la GPL.
Les développeurs de Linux ont prévu de placer ces micrologiciels dans des fichiers séparés ; cela prendra des années avant d'y arriver, mais quand ce sera accompli, cela résoudra le problème secondaire ; nous pourrons faire une version « Linux libre » qui ne contiendra aucun fichier de micrologiciel non libre. Ce ne sera pas très bénéfique en soi si la plupart des gens utilisent la version « officielle » non libre de Linux. C'est ce qui pourrait bien arriver, car sur beaucoup de plateformes la version libre ne fonctionne pas sans rajouter de micrologiciel non libre. Le projet « Linux libre » devra découvrir ce que fait chaque micrologiciel et récrire son code source, peut-être en langage assembleur, pour le processeur intégré sur lequel il est exécuté. C'est un travail décourageant. Il aurait été moins décourageant si nous l'avions fait petit à petit, au fil des années, plutôt que de le laisser s'accumuler. En recrutant des gens pour faire ce travail, nous devrons surmonter l'idée, répandue par quelques développeurs de Linux, que ce travail n'est pas nécessaire.
Linux, le noyau, est souvent vu comme le porte-drapeau du logiciel libre, et pourtant il est en partie non libre. Comment est-ce arrivé ? Ce problème, tout comme la décision d'utiliser Bitkeeper, reflète l'attitude du développeur qui est à l'origine de Linux, celle d'une personne qui pense que « techniquement mieux » est plus important que liberté.
Donnez du prix à votre liberté ou vous la perdrez, nous apprend l'histoire. « Ne nous ennuyez pas avec la politique », répondent ceux qui ne veulent pas s'instruire.
Mise à jour : Depuis 2005, BitKeeper n'est plus utilisé pour gérer l'arborescence des sources du noyau Linux. Voir l'article Merci, Larry McVoy. Les sources de Linux contiennent encore des blobs de micrologiciel non libre, mais depuis janvier 2008 une version libre de Linux est maintenue à l'usage des distributions GNU/Linux libres.