Debian perd son Ian

L’année 2015 n’a pas été la meilleure année du monde, et elle s’est malheureusement conclue avec un énième triste événement : le décès de Ian Murdock, célèbre créateur de Debian. Alors qu’une nouvelle année qu’on espère plus joyeuse commence, voici une petite BD pour lui rendre hommage.

dm_008_debian_perd_son_ian

Crédit : Simon Gee Giraudot (Creative Commons By-Sa)




Nous voulons (aussi) du matériel libre !

…nous dit Richard Stallman. Le logiciel a ses licences libres, la culture et la création artistique ont aussi leurs licences libres. Mais depuis quelques années les créations physiques libres se multiplient, ce qui rend urgent de poser les questions des libertés associées aux objets, comme aux modèles de conception qui permettent de les réaliser. Avec beaucoup d’acuité et de précision, Richard Stallman examine ces nouveaux problèmes et évalue la possibilité d’adapter à ce nouveau domaine les principes libristes employés pour les logiciels.

La version originale en anglais de cet article a été publiée en deux parties dans wired.com en mars 2015 :

  1. Pourquoi nous avons besoin de plans libres pour le matériel
  2. Les plans du matériel doivent être libres, voici comment procéder

L’article ci-dessous reprend le texte publié sur le site gnu.org. C’est le fruit d’une traduction collaborative entre Sébastien Poher et Framalang (Thérèse Godefroy, aziliz, Omegax, Piup, r0u, sebastienc, goofy) – Révision : trad-gnu@april.org.

 

Matériel libre et plans libres pour le matériel

par Richard M. Stallman

3Dprinterbot
Dans quelle mesure peut-on appliquer les idées du logiciel libre au matériel ? Est-ce une obligation morale de rendre libres les plans de notre matériel, tout comme c’en est une de rendre libre notre logiciel ? Est-ce que conserver notre liberté nous oblige à refuser le matériel construit sur des plans non libres ?

Définitions

L’expression « logiciel libre »1 se réfère à la liberté et non au prix ; en gros, elle signifie que les utilisateurs du logiciel sont libres de le faire fonctionner, de le copier et de le redistribuer, avec ou sans modification. Plus précisément, la définition repose sur les quatre libertés essentielles. Pour bien faire ressortir que free fait référence à la liberté et non au prix, nous accolons souvent le mot français ou espagnol « libre » à free.

Si l’on transpose directement ce concept au matériel, matériel libre signifie que l’utilisateur est libre de l’utiliser, de le copier
et de le redistribuer, avec ou sans modification. Toutefois, il n’y a pas de système de copie pour les objets matériels, à part la reproduction des clefs, de l’ADN et de la forme extérieure d’objets plastiques. La plupart des composants matériels sont fabriqués sur plan. Le plan précède le matériel.

Par conséquent, le concept dont nous avons vraiment besoin est celui de plan libre pour le matériel. C’est simple, il s’agit d’un plan dont l’utilisateur peut se servir (c’est-à-dire à partir duquel il peut fabriquer le matériel) et qu’il peut copier et redistribuer, avec ou sans modification. Un tel plan doit offrir les quatre libertés, évoquées plus haut, qui définissent le logiciel libre. Le terme « matériel libre » désigne alors un matériel pour lequel un plan libre est disponible.

Lorsque les gens découvrent le concept de logiciel libre pour la première fois, ils l’assimilent souvent à « possibilité d’en obtenir gratuitement un exemplaire ». Il est vrai que beaucoup de programmes libres sont disponibles à prix nul, puisque cela ne vous coûte rien de télécharger votre propre copie, mais ce n’est pas le sens de free dans free software (de fait, certains programmes espions tels que Flash Player ou Angry Birds sont gratuits, bien qu’ils ne soient pas libres). Accoler le mot « libre » à free aide à clarifier ce point.

Pour le matériel, cette confusion tend à aller dans l’autre direction ; les composants matériels ont un coût de production, donc ceux qui sont produits dans un but commercial ne peuvent être gratuits (à moins qu’il ne s’agisse de produits d’appel ou de vente liée), mais cela n’empêche pas leurs plans d’être libres. Les objets que vous fabriquez avec votre imprimante 3D peuvent être très bon marché, mais ils ne seront pas totalement gratuits car vous devez payer pour le matériau brut. D’un point de vue éthique, l’enjeu de la liberté prime absolument sur l’enjeu du prix, car un appareil qui refuse la liberté à ses utilisateurs vaut moins que rien.

Les expressions « matériel ouvert » et « matériel open source » sont utilisées par certains avec la même signification que « matériel libre », mais elles minimisent la problématique de la liberté. Elles sont dérivées de l’expression « logiciel open source », qui correspond plus ou moins au logiciel libre, mais passe sous silence la liberté et ne présente pas la problématique en termes d’opposition bien-mal. Pour souligner l’importance de la liberté, nous ne manquons pas d’y faire référence chaque fois que cela est pertinent ; puisqu’« open » ne permet pas cette distinction, ne le substituons pas à « libre ».

Matériel et logiciel

Le matériel et le logiciel sont fondamentalement différents. Un programme,même sous sa forme compilée exécutable, est une collection de données qui peut être interprétée comme instructions par un ordinateur. Comme toute autre création numérique, on peut le copier et le modifier en se servant d’un ordinateur. Un exemplaire de programme n’a pas de forme physique ni matérielle intrinsèque.

Au contraire, le matériel est une structure physique et sa nature physique est cruciale. Alors que le plan du matériel peut être représenté par des données, même par un programme dans certains cas, le plan n’est pas le matériel. Le plan d’un CPU ne peut pas exécuter un programme. Vous n’irez pas très loin en essayant de taper sur le plan d’un clavier ni en affichant des pixels sur le plan d’un écran.

De plus, alors que vous pouvez vous servir d’un ordinateur pour modifier ou copier le plan d’un composant matériel, un ordinateur ne peut pas convertir ce plan dans la structure physique qu’il décrit. Cela demande un équipement de fabrication.

La frontière entre matériel et logiciel

Où se situe la frontière, dans un appareil numérique, entre matériel et logiciel ? Nous pouvons la déterminer en appliquant les définitions suivantes : le logiciel est la partie opérante d’un appareil qui peut être copiée et modifiée dans un ordinateur ; le matériel est la partie opérante qui ne peut pas l’être. C’est le meilleur moyen de faire la distinction car cela renvoie à des conséquences pratiques.

Entre le matériel et le logiciel, il existe une zone grise occupée par les micrologiciels [firmware] qui peuvent être mis à jour ou remplacés, mais ne sont pas conçus pour être mis à jour ou remplacés une fois le produit vendu. En termes conceptuels, la zone grise est plutôt mince. En pratique, ceci est important car de nombreux produits sont concernés. Nous pouvons donc presque considérer ces micrologiciels comme du matériel.

Certaines personnes ont prétendu que préinstaller des micrologiciels et des circuits logiques programmables de type « FPGA » (réseau de portes programmables in situ) « effacerait la frontière entre matériel et logiciel », mais je pense qu’il s’agit là d’une mauvaise interprétation des faits. Un micrologiciel installé lors de l’utilisation est un logiciel ordinaire ; un micrologiciel intégré à un appareil et non modifiable est un logiciel par nature, mais nous pouvons le traiter comme si c’était un circuit. Dans le cas des FPGA, le circuit FPGA lui-même est du matériel, mais le schéma logique de portes chargé dans ce circuit FPGA est une sorte de micrologiciel.

Faire fonctionner des schémas de portes libres sur des FPGA pourrait être une méthode utile pour créer des appareils numériques libres au niveau des circuits. Toutefois, pour rendre ces FPGA utilisables dans le monde du libre, nous avons besoin d’outils de développement libres adaptés. L’obstacle à cela est que le format du fichier de schéma logique de portes chargé dans le FPGA est secret. Jusqu’à récemment, il n’existait aucun modèle de FPGA pour lequel ces fichiers pouvaient être reproduits sans outils non libres (privateurs).

Grâce aux efforts de rétroingénierie, il est maintenant possible de compiler des programmes écrits en C et de les exécuter sur le circuit FPGA Xilinx Spartan 6 LX9. Ces outils ne gèrent pas encore le code HDL (langage de description de matériel), cela n’offre donc pas une alternative utilisable pour de vrais circuits numériques. D’un autre côté, ce modèle de FPGA se fait vieux. Ces outils constituent une formidable avancée en comparaison de la situation d’il y a quelques années, mais la route est encore longue avant que les FPGA ne soient totalement utilisables en toute liberté.

Quant au code HDL lui-même, il peut agir en tant que logiciel (lorsqu’il s’exécute dans un émulateur ou après chargement dans un FPGA) ou en tant que schéma de composant matériel (lorsqu’il est mis en œuvre dans des semiconducteurs inamovibles ou dans un circuit imprimé).

La question éthique posée par les imprimantes 3D

Sur le plan éthique, le logiciel doit être libre, car un programme non libre est source d’injustice. Faut-il avoir la même optique en ce qui concerne la conception de matériel ?

Il le faut, sans aucun doute, dans les domaines concernés par l’impression 3D (ou plus généralement par toute fabrication personnelle). Les modèles servant à imprimer des objets utiles, pratiques (c’est-à-dire fonctionnels plutôt que décoratifs) doivent être libres parce qu’ils sont réalisés dans un but utilitaire. Les utilisateurs doivent en avoir le contrôle, tout comme ils doivent avoir le contrôle des logiciels qu’ils utilisent. Diffuser un modèle non libre pour un objet fonctionnel est aussi mal que de diffuser un programme non libre.

Soyez attentifs à choisir des imprimantes 3D fonctionnant avec du logiciel exclusivement libre ; la Free Software Foundation homologue de telles imprimantes. Certaines imprimantes 3D sont conçues à partir de plans libres mais la Makerbot est de conception non libre.

Devons-nous refuser le matériel numérique non libre ?

La conception non libre d’un matériel numérique (*) engendre-t-elle une injustice ? Devons-nous, au nom de nos libertés, rejeter tous les matériels numériques créés à partir de plans non libres, tout comme nous devons rejeter le logiciel non libre ?

Étant donné qu’il y a un parallèle conceptuel entre les plans du matériel et le code source du logiciel, beaucoup de bidouilleurs de matériel informatique sont prompts à condamner les plans non libres au même titre que le logiciel non libre. Je ne suis pas d’accord, car la situation est différente pour le matériel et le logiciel.

De nos jours, les technologies de fabrication des puces et des circuits ont beaucoup de similitudes avec la presse à imprimer : elles se prêtent parfaitement à une production de masse dans une usine. Cela ressemble plus à la façon dont on copiait des livres en 1950 qu’à la façon dont on copie du logiciel aujourd’hui.

La liberté de copier et de modifier le logiciel est un impératif éthique car ces activités sont à la portée de ceux qui utilisent le logiciel : l’équipement qui vous permet d’utiliser le logiciel (un ordinateur) est suffisant pour le recopier et le modifier. Les ordinateurs mobiles d’aujourd’hui sont trop peu puissants pour être adaptés à cet usage, mais n’importe qui peut se procurer un ordinateur assez puissant.

De plus, même si vous-même n’êtes pas programmeur, il vous suffit d’un ordinateur pour télécharger et exécuter la version modifiée par une personne capable d’effectuer cette modification. Et de fait les non-programmeurs téléchargent des logiciels et en font tourner tous les jours. C’est pourquoi le logiciel libre change véritablement les choses pour eux.

Dans quelle mesure cela est-il transposable au matériel ? Ceux qui utilisent du matériel numérique ne savent pas toujours modifier le schéma d’un circuit ou d’une puce, mais tous ceux qui possèdent un ordinateur ont l’équipement nécessaire pour le faire. Jusque-là, le matériel et le logiciel sont similaires, mais ensuite vient la grande différence.

Vous ne pouvez pas compiler et exécuter les plans d’un circuit ou d’une puce sur votre ordinateur. Construire un circuit complexe représente beaucoup de travail méticuleux et cela suppose que vous disposiez de la carte. Fabriquer une puce n’est pas faisable par une personne isolée aujourd’hui ; seule la production de masse permet de réduire suffisamment les coûts. Avec la technologie actuelle, les utilisateurs ne peuvent pas télécharger et faire tourner le plan d’un composant numérique modifié par Amélie la bricoleuse, alors qu’ils peuvent le faire avec un logiciel modifié par Amélie la programmeuse. Ainsi, les quatre libertés ne donnent pas aux utilisateurs le même contrôle collectif sur un plan de matériel que sur un logiciel. C’est à partir de là que le raisonnement démontrant que tout logiciel doit être libre cesse de s’appliquer aux technologies actuelles de fabrication du matériel.

En 1983, il n’y avait pas de système d’exploitation libre mais il était clair que si nous en disposions, nous pourrions l’utiliser immédiatement et accéder à la liberté du logiciel. Tout ce qui manquait était le code d’un système de ce type.

En 2015, même si nous avions des plans libres pour un processeur de PC, les puces produites en série à partir de ces plans ne nous donneraient pas la même liberté dans le domaine du matériel. Si nous achetons un produit fabriqué en série dans une usine, cette dépendance envers l’usine cause la plupart des problèmes rencontrés avec les plans non libres. Pour que des plans libres nous donnent la liberté du matériel, nous avons besoin de technologies de fabrication nouvelles.

Nous pouvons envisager un avenir dans lequel nos « fabricateurs » personnels pourront fabriquer des puces et nos robots pourront les assembler et les souder avec les transformateurs, interrupteurs, touches, écrans, ventilateurs, etc. Dans ce monde futur, nous fabriquerons tous nos propres ordinateurs (ainsi que nos fabricateurs et nos robots) et nous serons en mesure d’utiliser à notre avantage les plans modifiés par ceux qui maîtrisent la conception du matériel. Les arguments pour rejeter le logiciel non libre s’appliqueront alors aussi aux plans du matériel.

Ce monde futur se situe à plusieurs années de distance, au moins. En attendant, il n’est pas nécessaire de rejeter par principe le matériel dont les plans ne sont pas libres.


* Ici, « matériel numérique » recouvre également le matériel utilisant quelques circuits et composants analogiques en plus des circuits et composants numériques.

Nous avons besoin de plans libres pour le matériel numérique

Bien que dans la situation actuelle nous n’ayons pas besoin de rejeter le matériel numérique issu de plans non libres, nous avons besoin de développer des plans libres et nous devons les utiliser quand c’est faisable. Ils procurent des avantages aujourd’hui, et à l’avenir ils pourraient être la seule façon d’utiliser du logiciel libre.

La disponibilité de plans libres pour le matériel offre des avantages pratiques. De nombreuses entreprises peuvent fabriquer le même, ce qui réduit la dépendance à un fournisseur unique. Des groupes peuvent s’organiser pour les fabriquer en grande quantité. Lorsqu’on possède les schémas ou le code HDL des circuits, on peut étudier les plans des composants pour y déceler d’éventuelles erreurs ou fonctionnalités malveillantes (il est connu que la NSA a introduit des faiblesses intentionnelles dans certains matériels informatiques). En outre, ces plans libres pourraient servir de modules élémentaires dans la conception d’ordinateurs et autres appareils complexes, dont les spécifications seraient publiées et dont moins de composants pourraient être utilisés contre nous.

Il nous sera peut-être possible d’utiliser des schémas libres pour certains composants de nos ordinateurs et de nos réseaux, ainsi que pour les systèmes embarqués, avant de pouvoir nous en servir pour fabriquer des ordinateurs complets.

Les plans libres pour le matériel pourraient même devenir essentiels avant que nous puissions fabriquer le matériel nous-mêmes, s’ils deviennent la seule façon d’éviter le logiciel non libre. Comme le matériel commercial le plus courant est de plus en plus conçu pour assujettir les utilisateurs, il devient de moins en moins compatible avec le logiciel libre, car ses spécifications sont confidentielles et il oblige le code à être certifié par quelqu’un d’autre que vous. Les puces des modems de téléphones mobiles et même certains accélérateurs graphiques exigent déjà un micrologiciel certifié par le fabricant. Tout programme, tournant sur votre ordinateur, que quelqu’un d’autre a le droit de modifier mais pas vous, est un instrument de pouvoir injuste envers vous ; du matériel qui impose cette exigence est du matériel malveillant. En ce qui concerne les puces des modems de téléphones mobiles, tous les modèles actuellement disponibles sont malveillants.

Un jour, le matériel numérique de conception libre pourrait être l’unique plateforme permettant de faire tourner du logiciel libre. Ayons pour but d’avoir à notre disposition d’ici là les plans numériques libres requis, et espérons que nous aurons les moyens de fabriquer le matériel correspondant à des coûts suffisamment bas pour tous les utilisateurs.

Si vous concevez du matériel, veuillez s’il vous plaît libérer vos plans. Si vous utilisez du matériel, rejoignez notre effort en insistant auprès des entreprises, en faisant pression sur elles, pour qu’elles rendent libres les plans de leur matériel.

Niveaux de conception

Le logiciel a plusieurs niveaux de conception ; par exemple, un paquet peut inclure des bibliothèques, des commandes et des scripts. Mais du point de vue de la liberté du logiciel, ces niveaux ne présentent pas de différence significative parce qu’il est possible de rendre libre chacun d’entre eux. La conception des composants d’un programme est de même nature que la conception du code qui les combine ; de même, compiler les composants à partir de leur code source est de même nature que compiler le programme à partir de son code source. Rendre l’ensemble libre nécessite simplement de poursuivre le travail jusqu’à ce qu’il soit terminé.

Par conséquent, nous insistons pour que les programmes soient libres à tous les niveaux. Pour qu’un programme puisse être considéré comme libre, chaque ligne de code qui le compose doit être libre, de sorte qu’on puisse le compiler à partir du seul code source libre.

Les objets physiques, en revanche, sont souvent construits à partir de composants qui eux-mêmes sont conçus et construits dans différentes sortes d’usines. Par exemple, un ordinateur est constitué de puces, mais la conception (ou la fabrication) des puces est très différente de la conception (ou de la fabrication) de l’ordinateur à partir de ces puces.

Ainsi, nous avons besoin de distinguer des niveaux dans les plans d’un produit numérique (et peut-être de certains autres types de produits). Le circuit qui connecte les puces est l’un de ces niveaux ; le plan de chaque puce en est un autre. Dans un FPGA, l’interconnexion des cellules primitives constitue un niveau, tandis que les cellules primitives elles-mêmes en sont un autre. Dans un avenir idéal, nous voudrions que le plan soit libre à tous les niveaux. Dans les circonstances actuelles, le simple fait de rendre libre un niveau est une amélioration significative.

Cependant, si à l’un des niveaux le plan fait appel à des parties libres et à des parties non libres – par exemple un circuit HDL « libre » qui incorpore des processeurs softcore privateurs – nous devons conclure que le plan dans son ensemble est non libre à ce niveau. De même pour les « assistants » ou les « macros » non libres, s’ils définissent une partie des interconnexions des puces ou bien les parties des puces dont les connexions sont programmables. Les parties libres peuvent constituer une étape vers notre objectif futur de liberté des plans, mais pour atteindre cet objectif il faudra remplacer les parties non libres. Elles ne pourront jamais être acceptables dans le monde du libre.

Licences et copyright adaptés aux plans libres pour le matériel

Pour rendre libre le plan d’un matériel, il faut le publier sous une licence libre. Nous recommandons la licence publique générale GNU, version 3 ou ultérieure. Nous avons conçu la version 3 de la GPL en envisageant cet usage.

Placer des circuits ou des formes d’objets non décoratifs sous copyleft ne va pas aussi loin que l’on pourrait le supposer. Le copyright sur ces plans s’applique uniquement à la manière dont le plan est dessiné ou écrit. Le copyleft étant une façon d’utiliser le droit du copyright, son effet ne se fait sentir que dans la mesure où le copyright s’applique.

Par exemple, un circuit, en tant que topologie, ne peut pas faire l’objet d’un copyright (et par conséquent ne peut pas être placé sous copyleft). Les définitions de circuits écrit en HDL peuvent être placées sous copyright (et donc sous copyleft), mais le copyleft ne régit que les détails de l’expression du code HDL, pas la topologie du circuit qu’il génère. De même, un dessin ou le diagramme d’un circuit peut être placé sous copyright, donc sous copyleft, mais cela ne couvre que le dessin ou le diagramme, pas la topologie du circuit. N’importe qui peut légalement dessiner le même circuit d’une façon apparemment différente, ou écrire une définition différente en code HDL qui produise le même circuit.

Étant donné que le copyright ne régit pas les circuits physiques, lorsque des gens construiront des exemplaires du circuit, la licence des plans n’aura aucune incidence juridique sur ce qu’ils feront avec les appareils qu’ils auront construits.

En ce qui concerne les dessins d’objets et les modèles pour imprimantes 3D, le copyright ne s’applique pas à un dessin différent de la forme du même objet purement fonctionnel. Il ne couvre pas non plus les objets physiques utilitaires fabriqués à partir du dessin. Sous le régime du copyright, chacun est libre de les fabriquer et de les utiliser (et c’est une liberté dont nous avons grand besoin). Aux États-Unis, le copyright ne régit pas les aspects fonctionnels de ce que décrit le plan, mais en revanche il couvre les aspects décoratifs. Quand un objet a des aspects décoratifs et des aspects fonctionnels, on se trouve en situation délicate (*).

Tout ceci est peut-être vrai également dans votre pays, ou non. Avant de produire des objets pour un usage commercial ou en grande quantité, vous devriez consulter un juriste local. Le copyright n’est pas le seul problème qu’il vous soit nécessaire de prendre en compte. Vous pourriez être attaqué au plan des brevets, très probablement détenus par des entités qui n’avaient rien à voir avec l’élaboration des plans que vous utilisez ; et d’autres problèmes juridiques peuvent aussi se présenter.

Gardez à l’esprit que le droit du copyright et le droit des brevets sont radicalement différents. C’est une erreur de supposer qu’ils aient quoi que ce soit en commun. C’est pourquoi le terme « propriété intellectuelle » est source de pure confusion et doit être totalement rejeté.


* Un article de Public Knowledge donne des renseignements utiles sur cette complexité (pour ce qui est des États-Unis) bien qu’il tombe dans l’erreur commune consistant à utiliser l’expression fallacieuse « propriété intellectuelle » et le terme de propagande « protection ».

Promotion du matériel libre par le biais des dépôts

Pour favoriser la liberté des plans de matériel, le moyen le plus efficace est d’édicter des règles dans les dépôts où ils sont publiés. Les opérateurs de ces dépôts doivent mettre la liberté des personnes qui vont utiliser les plans au-dessus des préférences des personnes qui les réalisent. Cela suppose d’exiger la liberté des plans d’objets utiles comme condition préalable à leur publication.

Pour les objets décoratifs, cet argument ne s’applique pas, aussi ne devons-nous pas insister pour qu’ils soient libres. Cependant, nous devons insister pour qu’ils puissent être partagés. Ainsi, un dépôt qui gère à la fois des objets décoratifs et des objets fonctionnels doit avoir une politique appropriée en matière de licence pour chaque catégorie.

Pour les plans d’appareils numériques, je suggère que le dépôt préconise instamment la GNU GPL v3 ou ultérieure, la licence Apache 2.0 ou la CC-0. Pour les modèles 3D d’objets fonctionnels, le dépôt doit demander à l’auteur du modèle de choisir l’une des quatre licences suivantes : GNU GPL v3 ou ultérieure, Apache 2.0, CC-SA, CC-BY ou CC-0. Pour les modèles d’objets décoratifs, le choix doit être entre la GNU GPL v3 ou ultérieure, la licence Apache 2.0, la CC-0 ou n’importe laquelle des licences Creative Commons.

image satirique, un policier armé dit à un homme qui s'enfuit effrayé qu'il n'a rien à craindre car son arme est du matériel libre créé à partir de plans libres. Le fuyard dit merci à RMS

Le dépôt doit exiger que tous les plans soient publiés en tant que code source, étant entendu que les codes sources en formats secrets utilisables uniquement par des logiciels privateurs de conception ne sont pas vraiment adéquats. Pour les modèles 3D, le format STL n’est pas le format préféré pour les modifications et par conséquent n’est pas du code source, aussi le dépôt ne doit-il pas l’accepter, sauf peut-être s’il accompagne le vrai code source.

Il n’y a aucune raison de choisir un format unique pour le code source des plans de matériel, mais les formats sources qui ne peuvent pas être reconnus par des logiciels libres doivent être acceptés avec réticence dans le meilleur des cas.

Matériel libre et garanties

En général, les auteurs de plans libres pour du matériel n’ont aucune obligation morale d’offrir une garantie à ceux qui mettent en œuvre ces plans. Il s’agit d’un problème différent de celui de la vente de matériel physique, qui doit être accompagné d’une garantie du vendeur ou du fabricant.

Conclusion

Nous avons déjà des licences appropriées pour rendre libres nos plans de matériel. Ce dont nous avons besoin est de reconnaître que c’est notre devoir en tant que communauté, et d’insister pour que nos plans soient libres lorsque nous fabriquons nous-même des objets.


Note de traduction

  1. En anglais, free software. Le mot free a deux signification : « libre » et « gratuit ».

Cette page peut être utilisée suivant les conditions de la licence Creative Commons attribution de paternité, pas de modification, 3.0 États-Unis (CC BY-ND 3.0 US). Copyright © 2015 Richard Stallman




ABC-Map : réalisez des cartes et des tracés facilement

Soyons francs : quand un développeur se présente à nous en expliquant qu’il a pensé son premier projet pour le grand public, pour la famille Dupuis-Morizeau (notre sympathique famille-témoin de Normandie qui, doit-on le rappeler, a pris le relais de la famille Michu), et qu’en plus il a placé ce projet sous licence libre… on a envie de frapper des mains et sauter partout en débouchant le champomy… Ce qui est dangereux pour les ordinateurs qui nous entourent, alors on le fait pas.

Par contre, on a aussi envie d’en savoir plus sur ce projet, et de le partager sur le Framablog.

Rémi Pace a bien vu que, chez les Dupuis-Morizeau, créer une carte se résumait à une mauvaise capture d’écran de Google Maps et un coup de paint (avec traçage aléatoire à la souris) ou de toshopage mal cracké (mais là faut demander à la petite, parce que les autres ne maîtrisent pas).

Or, on a souvent besoin de cartes à imprimer, mettre sur un site web ou un flyer… Et ce géographe de Rennes a développé une solution simple, libre et documentée (avec de zolis tuto vidéos) pour aider les Dupuis-Morizeau à réaliser simplement et en toute liberté leurs itinéraires, tracés et autres chemins de rando…

Découvrons donc ABC-Map avec son créateur, Rémi Pace.

Carte Réalisée en 20 minutes avec Abc-Map (merci à la communauté d'OSM pour le fond de carte)
Carte Réalisée en 20 minutes avec Abc-Map (merci à la communauté d’OSM pour le fond de carte)

Bonjour Rémi, peux-tu te présenter aux membres du framablog ? Car sans vouloir spoiler ta réponse, tu n’as pas un profil de développeur, à l’origine… je me trompe ?

Bonjour Pouhiou, merci de m’accueillir sur le magnifique Framablog ! En effet je n’ai pas le profil type d’un développeur. Je suis actuellement étudiant en 3e année de Licence de Géographie-Aménagement à Rennes, une licence de sciences sociales où les cours ne concernent pas du tout le développement informatique.

En fait je me suis formé en autodidacte à l’informatique et à la programmation toujours en fonction de besoins : créations graphiques, sites internet, traitement de données, etc. Et comme le Web est très bien fourni en matériels et en tutoriels j’ai pu vite acquérir une bonne aisance. Petit à petit, je me suis mis à aimer ce que je faisais et désormais je m’oriente vers une formation de développement.

Parallèlement et depuis longtemps je bidouille les cartes qui me tombent à portée de main. On y découvre un tas de choses intéressantes aussi bien sur notre environnement direct que sur le monde et ses mécaniques. Mais malgré les utilisations possibles très concrètes j’ai toujours trouvé qu’il était assez difficile de créer des cartes simples. D’où mon idée de créer Abc-Map.

Chez Framasoft, on parle beaucoup de la famille Dupuis-Morizeau… Entre l’oncle agent d’accueil en office de tourisme, la cousine qui fait du trekking et le jeune couple de papas qui organise une chasse au trésors pour l’anniversaire du petit… Ils ont besoin de cartes mais ne sont pas hyper branchés informatique… Concrètement, ils doivent faire quoi ?

Les Dupuis-Morizeau peuvent très bien apprendre à se servir de QGis ou de GvSIG et lorsqu’ils manieront les connexions WMS et WFS sur le bout des doigts et lorsqu’ils sauront tout des systèmes de coordonnées et des requête SQL ils pourront créer leurs cartes au trésor et leurs itinéraires de trekking… après 3 où 4 semaines de formation (et je ne donne pas cher de la moumoute de Monsieur)

Je plaisante bien sur 🙂 En fait il existe pas mal de solutions libres très efficaces et qui répondent parfaitement à l’utilisation d’usagers confirmés. Quantum GIS notamment est un logiciel libre tout simplement impressionnant. Son ergonomie et ses possibilités sont énormes mais il demande une formation longue et complexe et une grande aisance en informatique.

En comparaison Abc-Map à des fonctionnalités bien plus limitées mais permet de créer une carte pratique (c’est à dire d’utilisation concrète) rapidement et avec peu de formation. Attention, il faut tout de même se pencher sur le concept et manipuler un peu avant d’obtenir un résultat convenable, mais en autodidacte on parle de suivre un ou deux tutoriels d’une trentaine de minutes chacun. Ensuite il est parfaitement possible de créer des croquis ou des cartes de très bonne qualité.

Le principe du logiciel est assez simple: Tonton Dupuis peut importer une carte à partir d’images ou d’un site de cartographie en ligne, éventuellement la géo-référencer pour utiliser des coordonnées, dessiner des formes, ajouter du texte et des photos puis mettre en page sa carte. Une méthode classique en géographie mais accessible ici dans un seul logiciel, et rappelée à l’aide d’un assistant de création.

De cette manière on peut facilement créer des itinéraires sportifs, des circuits de balade, des cartes de chasse au trésor ou des plans… sans passer plusieurs jours à se former et en se focalisant sur le sujet plutôt que sur le maniement du logiciel.

Quelles sont les fonctionnalités d’Abc-Map qui sont le plus utilisées ? Est-ce que tu as eu des retours d’utilisations que tu n’aurais pas soupçonnées ?

Les utilisateurs me communiquent leurs utilisations et leurs besoins via plusieurs formulaires disponibles sur le site et ce qui ressort tout de suite c’est que les usages sont très variés et souvent pratiques: sports, transports, tourisme, enseignement, activités écologiques…

Mais ce qui m’a fait plaisir c’est quand des utilisations plus atypiques sont apparues : apiculture, pêche, botanique, généalogie, création de jeux… C’est exactement pour ça que j’ai créé ce logiciel, pour les utilisateurs qui ont besoin de cartes pour des activités concrètes et qui n’ont pas la possibilité ou pas l’envie de devenir experts en système d’information géographique.

Et j’ai été particulièrement heureux d’apprendre qu’Abc-Map participe à l’organisation de maraudes sociales et au travail d’associations et d’initiatives citoyennes. Les cartes nous permettent de penser et de nous organiser, et chaque possibilité d’y arriver plus clairement et plus simplement laisse un peu plus de place à la décision et à l’action.

Quant aux fonctionnalités les plus utilisées, je pense que le logiciel est utilisé généralement dans son ensemble, puisqu’il propose une méthode de création. Cependant certains utilisateurs confirmés de logiciels de CAO qui préfèrent l’ergonomie de leur logiciel fétiche utilisent Abc-Map pour assembler un fond de carte automatiquement ou pour placer des objets en fonction de coordonnées spatiales.

Sur combien de temps s’est développé ABC-Map ? Quel langage as-tu choisi et pourquoi ?

Le développement du logiciel a duré un an ce qui est assez long je pense (en alternance avec un emploi et mes études). Mais étant donné que c’est mon premier projet et que je ne connaissais même pas les principaux patrons de conception en me lançant je suis déjà bien content qu’il soit viable et diffusé :).

J’ai choisi de le développer en Java. C’est un langage bien documenté qui permet de coder moins et de coder pour de nombreux systèmes d’exploitation. Dès le début du projet je me suis tout de suite imposé de proposer une solution pour un maximum de systèmes, sans laisser de coté tous les non-$Krosoft.

Ce qui m’a décidé aussi c’est que de bons environnements de développement et de bonnes bibliothèques sont disponibles pour Java grâce au travail de nombreux développeurs. Pour bien se rendre compte de ce que je dis il faut avoir déjà utilisé Eclipse et Maven, ce sont des programmes sensationnels qui permettent de se dépasser en termes de conception et d’organisation.

On voit bien dans les coûts de production de ton logiciel la part importante que prennent les postes chips, olives, bières et Pic Saint Loup AOC… As-tu mis Abc-Map sous licence Beerware ou tu as préféré une autre licence libre ? Et comment ça t’es venu, du coup, de proposer ton logiciel sous licence Libre ?

Abc-Map est distribué sous GNU Public Licence 3, ce qui laisse de bonnes possibilités en termes d’utilisation et de modification. Ce qui m’a décidé à publier sous licence libre c’est l’opinion que j’ai des développeurs/développeuses qui prennent du temps pour créer et partager des logiciels utiles comme LibreOffice, VLC, QGis, Inkscape, The Gimp, Notepad ++, Eclipse,…

J’ai toujours été très impressionné de voir comme ces logiciels sont de bonne qualité et comme ils servent tous les jours les intérêts des utilisateurs. Je pense que j’ai voulu apporter ma petite pierre au cairn. Je trouve dommage par contre que l’on insiste trop peu sur l’aventure humaine que représente le travail bénévole des personnes qui rendent l’information plus accessible et plus pertinente. Il y a encore des gens qui pensent que si un logiciel est gratuit, c’est qu’il est mal bricolé et de mauvaise qualité !

Et contre ce genre de fausses idées, et pour promouvoir l’usage du libre les organisations comme Framasoft et les annuaires de logiciels libres jouent un rôle très important. Il faut mettre en avant la qualité des logiciels et des projets, leur disponibilité, leurs usages et leurs histoires plutôt que de présenter le libre comme une licence contraignante qui produit des logiciels austères, complexes et peu fiables.

Un logiciel aux frais de développement honnêtes ;)
Un logiciel aux frais de développement honnêtes ;)

As-tu songé à déposer ton code sur un Git ? Comment envisages-tu les apports de code que la communauté pourrait te donner ?

Pour l’instant la question ne s’est pas vraiment posée, personne ne m’a proposé d’aide pour le développement. Je ne serai pas contre mais je veux d’abord proposer une version qui me convienne, c’est çà dire que je jugerai minimale, toujours dans l’objectif de me former à la programmation et de réussir un projet de bout en bout.

Dans le courant de l’année lorsque j’aurai terminé les dernières améliorations qui me semblent indispensables je compte créer un Git pour permettre des contributions d’utilisateurs et j’espère que ça pourra se faire dans de bonnes conditions.

Quelles sont les prochaines fonctionnalités que tu souhaites développer ? Et comment peut-on aider le logiciel Abc-Map : avec du code, des sous, de l’aide, du partage…?

Tout d’abord je souhaite améliorer un peu l’interface. J’ai eu quelques retours intéressants et je vais adapter le logiciel pour qu’il soit plus intuitif. Ensuite je souhaite le traduire au moins en Anglais et en Espagnol, toujours dans un esprit de partage.

Une des grosses améliorations aussi sera de proposer des solutions d’import / export pour GPS et pour d’autres logiciels à dimension géographique. Et pour améliorer la prise en main je souhaite dès que possible créer plus de tutoriels et plus de vidéos pour démocratiser encore le fonctionnement du logiciel.

Pour aider pour l’instant je souhaite surtout diffuser l’information pour que le logiciel soit utilisé et pour avoir des retours d’expériences d’utilisateurs. J’aimerai beaucoup aussi recevoir des cartes créés avec Abc-Map. Pour l’instant j’en ai peu et je souhaiterais en publier bientôt sur le site sous la forme d’un album pour encourager la création et pour donner des idées. Bien entendu j’accepte également les dons, il reste encore plein de place dans mes placards pour des olives et du Pic Saint Loup !

Et comme souvent sur le Framablog, on te laisse le mot de la fin…

Pour finir je dirai que je conseille à tout le monde de se lancer, de profiter des outils et de la documentation à disposition sur le net pour créer de nouveaux projets ou participer à ceux qui sont en cours : c’est une expérience géniale, ça peut être long et difficile mais quand le résultat est là ça vaut largement les heures de galères 🙂

Et un grand merci à tous ceux qui développent des outils libres et utiles, à ceux qui créent de l’information libre et accessible sur le net, et à ceux qui font la promotion de ces pratiques constructives !




Geektionnerd : Le goto fail de GnuTLS

geektionnerd_184-1_simon-gee-giraudot_cc-by-sa.jpg

geektionnerd_184-2_simon-gee-giraudot_cc-by-sa.jpg

Sources :

Crédit : Simon Gee Giraudot (Creative Commons By-Sa)




Beginning with Code_Aster, un nouveau Framabook

Sortie de Beginning with Code_Aster, un livre de Jean-Pierre Aubry

Framabook a le plaisir de vous faire part de la parution d’un nouvel ouvrage qui vous initiera à la méthode des éléments finis.

Vous trouverez des détails sur l’ouvrage sur sa page Framabook. Son auteur, Jean-Pierre Aubry, est ingénieur à La Machine, célèbre compagnie de théâtre de rue dont la particularité est entre autres de présenter de gigantesques structures artistiques.

À l’occasion de la sortie de son livre, Jean-Pierre Aubry a bien voulu répondre à quelques questions à propos de ses activités et de ce manuel paru dans la collection Framabook. Jean-Pierre Aubry Framabook : Bonjour Jean-Pierre. Tu publies un ouvrage plutôt complexe sur la méthode des éléments finis dans la collection Framabook. Ce manuel a ceci de particulier qu’il introduit à l’utilisation de Code_Aster. Comment as-tu découvert ce logiciel libre ?

Jean-Pierre Aubry : J’ai commencé ma carrière il y a bien longtemps déjà en concevant des voiliers avec Philippe Harle. Et dès le début des années 1970 nous utilisions un calculateur électronique (Hewlett Packard 9810, si je me souviens bien) pour automatiser certaines tâches de conception répétitives impliquant du calcul numérique. À cette époque, le terme ordinateur n’était pas encore omniprésent, les machines n’avaient pas d’écrans, et les résultats étaient des chiffres imprimés sur une bande de papier.

En 1986 j’ai participé à la conception d’un voilier pour lequel le CEA (Cadarache) avait offert des moyens, matériels et humains, en matière de calcul par éléments finis, pour valider un module de calcul adapté aux matériaux composites, cette collaboration m’avait ouvert les yeux sur les possibilités de cette méthode… qui est devenue, par la suite, un fil conducteur dans ma vie professionnelle, hormis peut être le passage par la conception des appareils à pression de gaz, ou des citernes de transport de matières dangereuses, de l’essence aux composés les plus dangereux en passant par les acides chlorhydrique ou fluorhydrique par exemple. En effet ces objets sont conçus selon des règles empiriques (au vrai sens de ce terme, souvent galvaudé) datant de la fin du XIXe siècle, soigneusement améliorées depuis et considérées, par toutes les autorités du monde, comme suffisantes.

Précédemment j’avais été responsable du département simulation numérique d’un bureau de recherche et développement où nous utilisons le logiciel SAMCEF®, un poids lourd de la catégorie.

Le passage sous licence GPL de Code_Aster en 2001 est un événement qui n’était passé inaperçu aux yeux de personne dans la communauté des utilisateurs de logiciels de modélisation numérique, mais la réputation d’être rébarbatif était telle que je ne m’y étais pas intéressé. C’est presque tout naturellement qu’en 2005, pour les travaux de La Machine, nous avons fait l’acquisition d’une licence de SAMCEF® qui, pour quelques dizaines de milliers d’euros, était encore bien loin d’être complète. Parallèlement je menais une veille technologique et j’avais déjà regardé plusieurs logiciels open source de calcul par éléments finis. Il y en a des dizaines mais aucun d’eux ne couvrait vraiment nos besoins.

En 2007 j’ai sauté le pas, téléchargé le live CD de CAELinux contenant Salome-Meca et Code_Aster (j’utilisais déjà plus ou moins régulièrement Gmsh) et je m’y suis mis. Les débuts ont été laborieux et après deux ans de travail en parallèle avec le logiciel précédent, j’ai considéré que je savais utiliser Code_Aster et qu’il donnait les résultats attendus. Et voilà « by appointement to La Machine » pour Code_Aster !

FB : Depuis la libération de ce logiciel par EDF, une communauté Code_Aster a vu le jour, et dont tu es l’un des membres. Peux-tu nous présenter cette communauté et ses activités ?

JPA : En fait il y a deux entités quelque peu distinctes.

D’une part il y a une communauté informelle autour de Code_Aster, ce sont des utilisateurs qui s’entraident par l’intermédiaire de plusieurs forums hébergés sur le site de Code_Aster. On y trouve principalement des questions concernant l’installation, l’usage voire le développement et cela s’apparente à une auberge espagnole. C’est d’ailleurs après avoir participé à quelques centaines d’interventions sur ces forums que m’est venue l’idée d’écrire ce livre. Au moment où sa rédaction s’achève, je constate d’ailleurs que les quelques centaines de participations sont en passe de devenir deux milliers.

D’autre part, il existe une communauté formelle plus restreinte, le réseau ProNet, regroupant les entreprises qui utilisent Code_Aster à titre professionnel soit pour la réalisation de calculs pour leur propre usage, soit en tant que sociétés de services. Et là hormis la promotion de Code_Aster, voire son enseignement, les questions évoquées sont plus spécialisées.

FB : Dès le premier chapitre, tu signales que le livre n’est ni un livre d’ingénierie mécanique ni un livre dédié au design structurel. Pourquoi ce choix d’en rester à la méthode des éléments finis ?

JPA : En fait c’est assez simple : en plus de 300 pages je n’ai couvert que quelques centièmes des capacités de Code_Aster, dont je ne connais probablement pas beaucoup plus d’une grosse dizaine, et j’ai dû faire des choix pour avoir un fil directeur et ne pas trop m’évader. Ajouté à cela, un précis de conception de structure aurait produit un livre bien plus volumineux et m’aurait amené sur des terrains où mes connaissances sont encore bien trouées(1) !

Quoi qu’il en soit, les deux sujets sont fondamentalement différents. Le calcul de structure dans sa déclinaison éléments finis n’est qu’une AIDE à la conception. De nombreuses structures remplissant correctement leur rôle ont été construites sans aucune simulation numérique. Caravelle et Concorde ont été conçus à l’époque où l’outil de conception des bureaux d’étude le plus avancé était une règle à calcul (c’est sur un objet de ce type que s’appuie le personnage représenté sur la couverture). A contrario il est tout à fait possible de faire la justification par la méthode des éléments finis d’une structure médiocre voire dangereuse !

FB : La Machine… c’est quoi ? tu y fais quoi avec Code Aster ? Tu utilises d’autres logiciels libres ?

JPA : La Machine est à l’origine une troupe de théâtre de rue produisant ses propres spectacles et construisant les « marionnettes » qui sont les vraies actrices du spectacles. Le mot « marionnettes » se réfère plus à leur mode de fonctionnement qu’à leur taille car celles-ci mesurent entre 10 et 20 m, longueur et hauteur, pour un poids de plusieurs dizaines de tonnes. Elles évoluent au milieu du public, dans des spectacles gratuits. Le risque qu’elles représentent est important et impose un dimensionnement rigoureux, sans parler de l’environnement réglementaire de plus en plus contraignant. Prévenir ce risque en matière de structure est ma responsabilité ici.

Ceci nous a amenés à une chaîne de conception qui n’a rien à envier aux industries les plus avancées avec les mêmes outils de conception assistée par ordinateur. La petite poignée de dizaines de milliers d’euros investie dans un logiciel de calcul par éléments finis (et encore pour une version basique) me laissait assez insatisfait alors que tout le reste de mon travail était déjà réalisé avec des logiciels libres, sous Linux, avec Gnumeric pour tous les calculs, LaTeX pour la rédaction des documents, etc.

FB : Ce livre est en anglais (et en couleur). Pourquoi ce choix ?

JPA : En anglais parce que ce langage est dominant sur le forum utilisateur de Code_Aster et dans la communauté scientifique en général. Si je peux me permettre une petite digression ici : c’est en s’exprimant en anglais que la communauté scientifique francophone se fait connaître du reste du monde et en sort renforcée.

En couleur ? Ouvrez les pages consacrées à la visualisation des résultats et essayez de les imaginer en nuances de gris. On passe du rouge au noir pour la zone des valeurs maximum qui posent problème, et du bleu au noir pour les zones des valeurs minimum qui peuvent en poser aussi, alors que les valeurs intermédiaires au demeurant moins critiques sont représentées en nuances de gris !

FB : Le fait que Code Aster soit libre, est-ce que cela est un avantage pour les métiers qui l’utilisent ?

JPA : Code_Aster permet de réaliser tous les calculs, des plus simples aux plus sophistiqués, pour un coût d’acquisition nul. L’investissement intellectuel nécessaire à sa prise en main dépend essentiellement des antécédents de l’utilisateur, et à mon sens, il n’est que marginalement supérieur à celui des logiciels commerciaux. En fait, une utilisation avancée d’un code commercial va finir par se faire en passant par dessus la fameuse interface graphique utilisateur et là on revient à égalité avec Code_Aster. À ce stade, la différence n’existe plus : l’utilisateur de Code_Aster a appris depuis longtemps à poser le problème hors de cette interface.

Pour les utilisateurs avancés, la possibilité d’intégrer facilement ses propres développements au sein même du code est un avantage déterminant. Et, last but not least, la communauté des utilisateurs offre, via son forum, une réponse plus rapide que la plupart des hot lines commerciales.

Note

(1) Ceci étant, l’idée de faire un livre « Le calcul de structure, c’est quoi ? pour les nuls » est une idée qui me trotte dans la tête depuis des dizaines d’années. Le modèle du genre étant à mon sens ceci  : http://en.wikipedia.org/wiki/J.E._Gordon




Pourquoi le logiciel libre est plus important que jamais, par Richard Stallman

Richard Stallman a publié un article important dans le magazine Wired à l’occasion des 30 ans du projet GNU.

Article que nous avons traduit collaborativement avec la relecture attentive du groupe de travail « trad-gnu » de l’April et l’accord final de Richard himself.

Pour l’anecdote Stallman commence désormais toujours ses emails ainsi : « À l’attention des agents de la NSA ou du FBI qui liraient ce courriel : veuillez envisager l’idée que la défense de la constitution des États-Unis contre tous ses ennemis, étrangers ou nationaux, nécessite que vous suiviez l’exemple de Snowden. » (cf ce tweet)

Medialab Prado - CC by-sa

Pourquoi le logiciel libre est plus important que jamais

Why Free Software Is More Important Now Than Ever Before

Richard Stallman – 28 septembre 2013 – Wired (Opinion)
(Traduction Framalang : Asta, ckiw, Penguin, Amine Brikci-N, lgodard, Feadurn, Thérèse, aKa, Paul, Scailyna, Armos, genma, Figue + anonymes)
Licence : CC By-Nd – Version de la traduction : 5 octobre 2013

Cela fait maintenant 30 ans que j’ai lancé la campagne pour la liberté en informatique, c’est-à-dire pour que le logiciel soit free ou « libre » (NdT : en français dans le texte — RMS utilise ce mot pour souligner le fait que l’on parle de liberté et non de prix). Certains programmes privateurs, tels que Photoshop, sont vraiment coûteux ; d’autres, tels que Flash Player, sont disponibles gratuitement — dans les deux cas, ils soumettent leurs utilisateurs au pouvoir de quelqu’un d’autre.

Beaucoup de choses ont changé depuis le début du mouvement du logiciel libre : la plupart des gens dans les pays développés possèdent maintenant des ordinateurs — parfois appelés « téléphones » — et utilisent internet avec. Si les logiciels non libres continuent de forcer les utilisateurs à abandonner à un tiers le pouvoir sur leur informatique, il existe à présent un autre moyen de perdre ce pouvoir : le « service se substituant au logiciel » ou SaaSS (Service as a Software Substitute), qui consiste à laisser le serveur d’un tiers prendre en charge vos tâches informatiques.

Tant les logiciels non libres que le SaaSS peuvent espionner l’utilisateur, enchaîner l’utilisateur et même attaquer l’utilisateur. Les logiciels malveillants sont monnaie courante dans les services et logiciels privateurs parce que les utilisateurs n’ont pas de contrôle sur ceux-ci. C’est là le coeur de la question : alors que logiciels non libres et SaaSS sont contrôlés par une entité externe (généralement une société privée ou un État), les logiciels libres sont contrôlés par les utilisateurs.

Pourquoi ce contrôle est-il important ? Parce que liberté signifie avoir le contrôle sur sa propre vie.

Si vous utilisez un programme pour mener à bien des tâches affectant votre vie, votre liberté dépend du contrôle que vous avez sur ce programme. Vous méritez d’avoir un contrôle sur les programmes que vous utilisez, d’autant plus quand vous les utilisez pour quelque chose d’important pour vous.

Votre contrôle sur le programme requiert quatre libertés essentielles. Si l’une d’elles fait défaut ou est inadaptée, le programme est privateur (ou « non libre ») :

(0) La liberté d’exécuter le programme, pour tous les usages.

(1) La liberté d’étudier le fonctionnement du programme, et de le modifier pour qu’il effectue vos tâches informatiques comme vous le souhaitez ; l’accès au code source est une condition nécessaire. Les programmes sont écrits par des programmeurs dans un language de programmation — comme de l’anglais combiné avec de l’algèbre — et sous cette forme le programme est le code source. Toute personne connaissant la programmation, et ayant le programme sous forme de code source, peut le lire, comprendre son fonctionnement, et aussi le modifier. Quand tout ce que vous avez est la forme exécutable, une série de nombres qui est optimisée pour fonctionner sur un ordinateur mais extrêmement difficile à comprendre pour un être humain, la compréhension et la modification du programme sous cette forme sont d’une difficulté redoutable.

(2) La liberté de redistribuer des copies, donc d’aider votre voisin. (Ce n’est pas une obligation ; c’est votre choix. Si le programme est libre, cela ne signifie pas que quelqu’un a l’obligation de vous en offrir une copie, ou que vous avez l’obligation de lui en offrir une copie. Distribuer un programme à des utilisateurs sans liberté, c’est les maltraiter ; cependant, choisir de ne pas distribuer le programme — en l’utilisant de manière privée — ce n’est maltraiter personne.)

(3) La liberté de distribuer aux autres des copies de vos versions modifiées; en faisant cela, vous donnez à toute la communauté une possibilité de profiter de vos changements ; l’accès au code source est une condition nécessaire.

Les deux premières libertés signifient que chaque utilisateur a un contrôle individuel sur le programme. Avec les deux autres libertés, n’importe quel groupe d’utilisateurs peuvent exercer ensemble un contrôle collectif sur le programme. Ce sont alors les utilisateurs qui contrôlent le programme.

Si les utilisateurs ne contrôlent pas le programme, le programme contrôle les utilisateurs.

Avec le logiciel privateur, il y a toujours une entité, le « propriétaire » du programme, qui en a le contrôle — et qui exerce, par ce biais, un pouvoir sur les utilisateurs. Un programme non libre est un joug, un instrument de pouvoir injuste. Dans des cas extrêmes (devenus aujourd’hui fréquents), les programmes privateurs sont conçus pour espionner les utilisateurs, leur imposer des restrictions, les censurer et abuser d’eux. Le système d’exploitation des iChoses d’Apple, par exemple, fait tout cela. Windows, le micrologiciel des téléphones mobiles et Google Chrome pour Windows comportent chacun une porte dérobée universelle qui permet à l’entreprise de modifier le programme à distance sans requérir de permission. Le Kindle d’Amazon a une porte dérobée qui peut effacer des livres.

Dans le but d’en finir avec l’injustice des programmes non libres, le mouvement du logiciel libre développe des logiciels libres qui donnent aux utilisateurs la possibilité de se libérer eux-mêmes. Nous avons commencé en 1984 par le développement du système d’exploitation libre GNU. Aujourd’hui, des millions d’ordinateurs tournent sous GNU, principalement sous la combinaison GNU/Linux.

Où se situe le SaaSS dans tout cela ? Le recours à un Service se substituant à un logiciel n’implique pas que les programmes exécutés sur le serveur soient non libres (même si c’est souvent le cas) . Mais l’utilisation d’un SaaSS ou celle d’un programme non libre produisent les mêmes injustices : deux voies différentes mènent à la même situation indésirable. Prenez l’exemple d’un service de traduction SaaSS : l’utilisateur envoie un texte à traduire, disons, de l’anglais vers l’espagnol, au serveur ; ce dernier traduit le texte et renvoie la traduction à l’utilisateur. La tâche de traduction est sous le contrôle de l’opérateur du serveur et non plus de l’utilisateur.

Si vous utilisez un SaaSS, l’opérateur du serveur contrôle votre informatique. Cela nécessite de confier toutes les données concernées à cet opérateur, qui sera à son tour obligé de les fournir à l’État. Qui ce serveur sert-il réellement ?

Quand vous utilisez des logiciels privateurs ou des SaaSS, avant tout vous vous faites du tort car vous donnez à autrui un pouvoir injuste sur vous. Il est de votre propre intérêt de vous y soustraire. Vous faites aussi du tort aux autres si vous faites la promesse de ne pas partager. C’est mal de tenir une telle promesse, et c’est un moindre mal de la rompre ; pour être vraiment honnête, vous ne devriez pas faire du tout cette promesse.

Il y a des cas où l’utilisation de logiciel non libre exerce une pression directe sur les autres pour qu’ils agissent de même. Skype en est un exemple évident : quand une personne utilise le logiciel client non libre Skype, cela nécessite qu’une autre personne utilise ce logiciel également — abandonnant ainsi ses libertés en même temps que les vôtres (les Hangouts de Google posent le même problème). Nous devons refuser d’utiliser ces programmes, même brièvement, même sur l’ordinateur de quelqu’un d’autre.

Un autre dommage causé par l’utilisation de programmes non libres ou de SaaSS est que cela récompense son coupable auteur et encourage le développement du programme ou « service » concerné, ce qui conduit à leur tour de nouvelles personnes à tomber sous la coupe de l’entreprise qui le développe.

Le dommage indirect est amplifié lorsque l’utilisateur est une institution publique ou une école. Les services publics existent pour les citoyens — et non pour eux-mêmes. Lorsqu’ils utilisent l’informatique, ils le font pour les citoyens. Ils ont le devoir de garder un contrôle total sur cette informatique au nom des citoyens. C’est pourquoi ils doivent utiliser uniquement des logiciels libres et rejeter les SaaSS.

La souveraineté des ressources informatiques d’un pays l’exige également. D’après Bloomberg, Microsoft montre les bogues de Windows à la NSA avant de les corriger. Nous ne savons pas si Apple procède pareillement, mais il subit la même pression du gouvernement américain que Microsoft. Pour un gouvernement, utiliser de tels logiciels met en danger la sécurité nationale.

Les écoles — et toutes les activités d’éducation — influencent le futur de la société par l’intermédiaire de leur enseignement. C’est pourquoi les écoles doivent enseigner exclusivement du logiciel libre, pour transmettre les valeurs démocratiques et la bonne habitude d’aider autrui (sans mentionner le fait que cela permet à une future génération de programmeurs de maîtriser leur art). Enseigner l’utilisation d’un programme non libre, c’est implanter la dépendance à l’égard de son propriétaire, en contradiction avec la mission sociale de l’école.

Pour les développeurs de logiciels privateurs, nous devrions punir les étudiants assez généreux pour partager leurs logiciels ou assez curieux pour chercher à les modifier. Ils élaborent même de la propagande contre le partage à l’usage des écoles. Chaque classe devrait au contraire suivre la règle suivante :

« Élèves et étudiants, cette classe est un endroit où nous partageons nos connaissances. Si vous apportez des logiciels, ne les gardez pas pour vous. Au contraire, vous devez en partager des copies avec le reste de la classe, de même que le code source du programme au cas où quelqu’un voudrait s’instruire. En conséquence, apporter des logiciels privateurs en classe n’est pas autorisé, sauf pour les exercices de rétroingénierie. »

En informatique, la coopération comprend la redistribution de copies identiques d’un programme aux autres utilisateurs. Elle comprend aussi la redistribution des versions modifiées. Le logiciel libre encourage ces formes de coopération quand le logiciel privateur les prohibe. Ce dernier interdit la redistribution de copies du logiciel et, en privant les utilisateurs du code source, il empêche ceux-ci d’apporter des modifications. Le SaaSS a les même effets : si vos tâches informatiques sont exécutées au travers du web, sur le serveur d’un tiers, au moyen d’un exemplaire du programme d’un tiers, vous ne pouvez ni voir ni toucher le logiciel qui fait le travail et vous ne pouvez, par conséquent, ni le redistribuer ni le modifier.

D’autres types d’œuvres sont exploitées pour accomplir des tâches pratiques ; parmi celles-ci, les recettes de cuisine, les matériels didactiques tels les manuels, les ouvrages de référence tels les dictionnaires et les encyclopédies, les polices de caractère pour l’affichage de texte formaté, les schémas électriques pour le matériel à faire soi-même, et les patrons pour fabriquer des objets utiles (et pas uniquement décoratifs) à l’aide d’une imprimante 3D. Il ne s’agit pas de logiciels et le mouvement du logiciel libre ne les couvre donc pas au sens strict. Mais le même raisonnement s’applique et conduit aux mêmes conclusions : ces œuvres devraient être distribuées avec les quatre libertés.

On me demande souvent de décrire les « avantages » du logiciel libre. Mais le mot « avantages » est trop faible quand il s’agit de liberté.

La vie sans liberté est une oppression, et cela s’applique à l’informatique comme à toute autre activité de nos vies quotidiennes.

Nous devons gagner le contrôle sur tous les logiciels que nous employons. Comment y arriver ? en refusant les SaaSS et les logiciels privateurs sur les ordinateurs que nous possédons ou utilisons au quotidien. En développant des logiciels libres (pour ceux d’entre nous qui sont programmeurs). En refusant de développer ou de promouvoir les logiciels privateurs ou les SaaSS. En partageant ces idées avec les autres. Rendons leur liberté à tous les utilisateurs d’ordinateurs.

Crédit photo : Medialab Prado (Creative Commons By-Sa)




30 ans de GNU – Extrait du framabook sur la biographie de Stallman

Comme il est dit sur le site d’April[1] : Le 27 septembre 1983, Richard Stallman diffusait l’annonce initiale du projet GNU, projet fondateur du mouvement du logiciel libre.

Nous avons donc fêté récemment les 30 ans du projet GNU.

Pour participer nous aussi à l’hommage, nous vous proposons un court extrait de notre framabook Richard Stallman et la révolution du logiciel libre, une biographie autorisée qui est une excellente ressource pour aller plus loin dans la genèse et l’historique du mouvement 😉

Pour rappel ce livre est sous licence libre, vous pouvez librement (et gratuitement) le télécharger dans son intégralité sur le site Framabook mais vous pouvez aussi l’acheter dans notre boutique EnVenteLibre.

GNU fête ses 30 ans

Extrait de « Richard Stallman et la révolution du logiciel libre. Une biographie autorisée »

Chapitre 7 : Une morale à l’épreuve (pages 119 à 121)
Auteurs : R. Stallman, S. Williams, C. Masutti
Licence : GNU Free Documentation License

Le 27 septembre 1983, les programmeurs se connectant au groupe de discussion Usenet net.unix-wizards reçurent un message peu habituel. Posté aux premières heures du jour, à minuit et demi exactement, et signé rms@mit-oz, l’objet du message était laconique mais attirait l’attention. « Nouvelle implémentation d’Unix », pouvait-on lire.

Pourtant, au lieu de présenter une version fraîchement disponible d’Unix, le premier paragraphe du message était en fait un appel à contribution :

Dès le Thanksgiving prochain, je commencerai à écrire un système logiciel complet, compatible Unix, appelé GNU (pour GNU N’est pas Unix), et le distribuer librement à tous ceux qui souhaitent l’utiliser. Je fais appel à toute contribution en temps, en argent, en programmes et en matériel pour faire avancer ce projet.

Pour un développeur Unix expérimenté, le message traduisait un mélange d’idéalisme et d’orgueil démesuré. Non content de s’engager à repartir de zéro dans la reconstruction du système d’exploitation Unix déjà abouti, l’auteur proposait en plus de l’améliorer par endroits. Le nouveau système GNU, prédisait-il, intégrerait tous les composants essentiels : un éditeur de texte, un shell pour lancer des applications compatibles Unix, un compilateur, « et diverses autres choses ». À cela s’ajouteraient de nombreuses fonctions particulièrement séduisantes, pas encore disponibles dans les autres systèmes Unix : une interface graphique basée sur le langage de programmation Lisp, un système de fichiers résistant aux pannes et des protocoles réseaux prenant modèle sur ceux du MIT.

« GNU sera capable d’exécuter des programmes Unix, mais ne sera pas identique à Unix, écrivait l’auteur. Nous ferons toutes les améliorations utiles, d’après notre expérience au contact d’autres systèmes d’exploitation. »

Prévoyant une réaction sceptique de la part de certains lecteurs, l’auteur poursuivait l’exposé de son ébauche de système d’exploitation avec une brève note biographique intitulée « Qui suis-je ? » :

Je suis Richard Stallman, l’inventeur de l’éditeur Emacs si souvent imité, et je travaille actuellement au Laboratoire d’intelligence artificielle du MIT. J’ai beaucoup travaillé sur des compilateurs, des éditeurs, des débogueurs, des interpréteurs de commandes, ainsi que sur l’ITS et le système d’exploitation des machines Lisp. J’ai été le premier à mettre au point un affichage indépendant du terminal pour ITS. De plus, j’ai mis en place un système de fichiers résistant aux pannes et deux systèmes de fenêtrage pour machines Lisp.

Le destin a finalement voulu que le projet fou de Stallman…

La suite sur Framabook 😉

Notes

[1] L’April a invité Stallman à Paris pour l’occasion le 21 septembre dernier (cf prises audio et vidéo de la conférence)




Geektionnerd : GNU a 30 ans

geektionnerd_164-1_simon-gee-giraudot_cc-by-sa.jpg

geektionnerd_164-2_simon-gee-giraudot_cc-by-sa.jpg

geektionnerd_164-3_simon-gee-giraudot_cc-by-sa.jpg

Sources :

Crédit : Simon Gee Giraudot (Creative Commons By-Sa)