Vue lecture

Haiku a 24 ans - nouvelles de l'été 2025

Haiku est un système d’exploitation pensé pour les ordinateurs de bureau. Il est basé sur BeOS mais propose aujourd’hui une implémentation modernisée, performante, et qui conserve les idées qui rendaient BeOS intéressant: une interface intuitive mais permettant une utilisation avancée, une API unifiée et cohérente, et une priorisation de l’interface graphique par rapport à la ligne de commande pour l’administration du système.

Le projet est actuellement (depuis 2021) en phase de beta test. La plupart des fonctionnalités sont implémentées et l’attention des développeurs se porte sur la correction de bugs, l’amélioration de la stabilité et des performances, et plus généralement, les finitions et petits détails. Une autre part du travail est le suivi de l’évolution de l’environnement technologique: nouveaux pilotes de périphériques, suivi des derniers standards du web, etc.

Les trois derniers mois ont été un peu plus calmes que d’habitude pour Haiku, mais cela est largement compensé par une très forte activité du côté de Haikuports. Cela révèle que le système lui-même devient plus mature et qu’il devient de plus en plus facile de développer ou de porter une application sans tomber sur des problèmes du système qui doivent être corrigés au préalable.

Sommaire

Applications

Tracker

Tracker est le navigateur de fichiers de Haiku. Le code est hérité directement de BeOS (cette partie avait été publiée sous licence libre lors de l’abandon de BeOS par Be) et fait l’objet depuis de nombreuses années d’un gros travail de nettoyage et de modernisation.

Pas de grosses nouveautés ces derniers mois, mais des corrections pour plusieurs régressions suites à du nettoyage effectué précédemment. Par exemple, les icônes des disques montés sont à nouveaux affichés sur le bureau dans les dialogues d’ouverture et d’enregistrement de fichiers. L’annulation du filtrage du contenu d’un dossier en tapant un nom de fichier partiel est correctement annulé si on appuie sur échap.

Enfin, des problèmes de synchronisation de l’icône de la poubelle, qui apparaissait pleine alors qu’elle était vide, ont été corrigés. Ces problèmes étaient déjà présents dans BeOS.

Terminal

Le terminal permet de lancer des applications en ligne de commande.

Un chantier en cours consiste à rendre le terminal utilisable comme un “replicant”, c’est-à-dire de pouvoir l’intégrer dans d’autres applications telles que l’IDE Genio. Cette approche demande de restructurer beaucoup de choses, et pour l’instant, il est plus simple pour les développeurs de Genio de recopier une partie des sources du Terminal dans leur projet et de les intégrer de façon plus statique. Les problèmes sont corrigés petit à petit.

Une autre correction mérite d’être mentionnée: le terminal se plaçait lui-même dans le dossier de travail du shell lancé lors de l’ouverture d’un nouvel onglet. Si ce dossier se trouve dans un disque qu’on essaie par la suite de démonter, le démontage échoue (même si l’application lancée dans le terminal a elle-même changé de dossier entretemps). Désormais le terminal ne modifie pas son dossier actif et ne bloque plus le démontage des disques.

Mail

L’application Mail permet de lire et d’envoyer du courrier électronique. Elle est composée d’un serveur de synchronisation et d’une interface graphique indépendante. Entre les deux, les mails sont stockés sous forme de fichiers augmentés d’attributs étendus, ce qui permet d’utiliser Tracker et les requêtes BFS comme outil principal pour traiter les messages.

Les changements listés ici concernent l’application de lecture et rédaction de messages:

  • Correction du comportement du menu « Fermer et marquer comme… » lorsqu’il est appliqué à plusieurs messages.

    • Modifications pour éviter de montrer des informations vides, en double, ou absentes dans les détails des adresses mail (nom d’expéditeur, de destinataire, etc).

HaikuDepot

HaikuDepot est à la fois le gestionnaire de paquets et le magasin d’applications de Haiku. Ce double rôle conduit pour l’instant à une interface qui prête un peu à confusion, et l’interface devrait être repensée pour un fonctionnement plus intuitif. En attendant, quelques petites améliorations ont tout de même été faites pour rendre les problèmes moins gênants.

Lorsqu’une recherche dans la vue « paquets mis en avant » ne donne aucun résultat, il y a affichage d’un lien permettant de poursuivre la recherche dans la liste complète des paquets. En effet, de nombreux utilisateurs se sont plaints de ne pas trouver certains logiciels en effectuant une recherche, sans se rendre compte qu’ils faisaient une recherche dans une liste de quelques dizaines de paquets et pas dans tout ce qui est disponible.

TextSearch

TextSearch est un outil de recherche dans le contenu des fichiers par expressions régulières (une version graphique de grep).

Il reçoit ce trimestre une fonction pour filtrer les fichiers à rechercher, équivalent à l’option grep --include.

Debug Analyzer

Debug Analyzer est un outil de profiling et d’analyse de traces d’exécution.

Correction d’un problème de compilation suite à des changements dans l’API de BObjectList (cet outil n’est pas compilé par défaut, il avait donc été oublié lors du changement d’API au trimestre précédent).

Préférences d’apparence

Dans la configuration des couleurs du système, renommage de la couleur « barre d’état » en « barre de progression ». Le nom « barre d’état » (status bar en anglais) correspond à la classe BStatusBar utilisée par BeOS et Haiku, mais tout le monde appelle ça une barre de progression. On peut au moins éviter la confusion pour les utilisateurs, à défaut de pouvoir le faire pour les développeurs d’applications en renommant la classe elle-même (ce qui causerait des problèmes de compatibilité d’API et d’ABI).

Utilisation de IconMenuItem

Ce changement concerne l’application ShowImage (visualiseur d’images) ainsi que FileTypes (les préférences d’association de types fichiers avec des applications). Ces deux applications utilisent un menu pour sélectionner une application (pour ouvrir une image dans un éditeur, ou pour associer un type de fichier à une application, respectivement).

Les applications pour Haiku utilisant des icônes colorées et facilement identifiables, c’est beaucoup mieux qu’une liste de noms pour s’y retrouver rapidement. Ces deux applications utilisent donc maintenant des IconMenuItem dans ces menus, pour afficher les applications avec leur icône respective.

Adaptation aux écrans à très haute réolution

Un travail en cours sur les applications concerne l’adaptation aux écrans à très haute résolution.

Presque toutes les applications pour Haiku utilisent un système de mise en page dynamique, et toutes les ressources (police de caractères, icônes…) sont vectorielles. Cela permet en théorie d’afficher l’interface avec un niveau de zoom arbitraire. Cependant, une partie du code a été écrit avec des tailles en pixels « en dur » et ne s’adapte pas comme il faudrait (la bonne façon de faire est de se baser par exemple sur la taille de la police de caractères sélectionnée par l’utilisateur).

Ce trimestre, on trouve des évolutions à ce sujet dans plusieurs applications:

  • Expander (décompression d’archives)
  • SerialConnect (communication par port série)
  • Mise à l’échelle de la barre de défilement
  • Préférences d’imprimantes
  • Mise à l’échelle des icônes

Outils en ligne de commande

Remote Desktop

L’outil de connexion au bureau à distance n’est pas vraiment une application en ligne de commande. Cependant, il nécessite pour l’instant un lancement depuis un terminal avec les bonnes options, et selon les cas, la mise en place d’un tunnel SSH. Une interface grapique plus simple d’uitlisation sera probablement ajoutée plus tard.

  • Amélioration du parsing de la ligne de commande et en particulier de l’option pour choisir un port SSH
  • Activation de l’option SO_REUSEADDR permettant de plus facilement relancer l’outil s’il plante, sans attendre un timeout de la connexion précédente qui n’a pas été fermée proprement

Time

Le panneau de préférences de date et heure peut être lancé en ligne de commande avec une option spécifique pour forcer une synchronisation NTP. Cette fonctionnalité n’est pas vraiment documentée, à l’origine il s’agit plutôt d’une astuce interne au système. L’application reconnaît maintenant l’option --help standardisée et affiche un message d’aide qui documente cette fonctionnalité.

Il peut être utile de relancer cette commande manuellement si jamais la synchronisation au démarrage n’a pas fonctionné (par exemple si le réseau n’était pas disponible à ce moment-là). En particulier, cela peut être utilisé dans des scripts d’automatisation et pour des machines où l’interface graphique n’est pas facilement accessible (serveurs de build par exemple).

pkgman

pkgman est une commande permettant d’installer, mettre à jour et rechercher des paquets logiciels.

Ajout d’une option --no-refresh pour ne pas retélécharger la base de données des paquets.

Cette base de données contient non seulement les noms des paquets, mais aussi leur description courte et la liste des “provides” (par exemple: commandes et bibliothèques fournies par chaque paquet). pkgman vérifié déjà si une nouvelle version de la base de données est disponible, mais cette dernière peut être mise à jour plusieurs fois par jour par l’intégration continue.

Le nombre de paquets augmentant, la taille de la base de données devient non négligeable (plusieurs méga-octets), ce qui pose problème en particulier pour les utilisateurs et développeurs ne disposant pas d’un accès internet illimité.

su

La commande su est peu utilisée puisque l’utilisateur par défaut a déjà tous les droits. Son implémentation était donc un peu incomplète. Elle peut toutefois être utile pour avoir des utilisateurs supplémentaires restraints, par exemple pour un accès à distance par ssh.

  • La commande su ne demande pas de mot de passe si l’utilisateur dispose déjà de l’accès root
  • Toutes les commandes liées à la gestion des utilisateurs (su, login…) configurent les groupes actifs lors du changement d’utilisateur

listarea

listarea est une commande de debug permettant de lister les zones mémoire allouées à différentes applications. Elle affiche maintenant le verrouillage et les protections de ces zones (swappable ou non, exécutabele ou non, accessible en écriture ou non).

fdinfo

fdinfo permet d’examiner les descripteurs de fichiers ouverts (un peu comme lsof). Cette commande peut maintenant afficher en plus le dossier courant de chaque application (ce qui aurait été bien utile pour identifier le problème avec le dossier courant du Terminal ci-dessus).

install-wifi-firmwares

Ce script permet d’installer les firmwares pour certaines très anciennes cartes Wifi. Les firmwares publiés à l’époque sont disponibles avec des licenses n’autorisant pas la redistribution ou les modifications de packaging, ce qui empêche l’intégration dans le système de paquets habituel. Le problème a été corrigé depuis longtemps par les fabricants de cartes Wifi, mais les anciens firmwares n’ont jamais été republiés avec des licenses mises à jour.

Le script a été mis à jour pour récupérer certains firmwares depuis un nouveau serveur, l’ancien emplacement utilisé n’étant plus disponible.

Kits

La bibliothèque de fonctions de Haiku est découpée en kits qui regroupent des ensembles de fonctions et de classes par thématique (stockage sur disque, interface graphique…). Dans certains cas il s’agit principalement d’une méthode d’organisation du code source et de la documentation (les kits pouvent être très interdépendants). Certains kits sont toutefois fournis sous forme de bibliothèques séparées.

Support kit

Ce kit contient diverses fonctions utilitaires et basiques du système.

Changement d’API pour la classe BUrl. Dans l’ancienne version de cette classe, il était possible de construire un objet BUrl représentant une URL encodée ou non-encodée (échappement des caractères réservés). Cela rendait trop facile d’oublier d’encoder une URL avant de l’utiliser, ou bien d’encoder plusieurs fois une URL et de se retrouver avec un lien invalide.

La nouvelle API impose d’indiquer dès la création d’un objet BUrl si la chaîne de caractères servant de base est déjà encodée ou non. L’objet BUrl construit représentera toujours une URL déjà encodée, qui peut éventuellement être décodée pour affichage si nécessaire.

Interface kit

Ce kit contient tout ce qui se rapporte à l’interface graphique: fenêtres, vues, contrôles, mise en page…

Retour en arrière sur une modification des raccourcis claviers de BTextView pour naviguer vers les mots suivant et précédent. Les nouveaux raccourcis entrent en conflit avec des raccourcis déjà utilisés par plusieurs applications, et n’apportaient pas grand-chose.

Correction de problèmes de compatibilité dans le format des données stockées par la classe BPicture (il s’agit d’un enregistrement de commandes envoyées au serveur graphique, qui peuvent être rejouées plus tard). Le format des données stockées était différent de celui de BeOS. Certaines applications utilisant un objet BPicture enregistré dans une ressource de l’application, ne s’affichaient pas correctement.

Amélioration de la gestion des sous-menus, en particulier cela corrige un crash si un sous-menu est fermé en utilisant la touche échap.

Remise à plat de tous les calculs accumulés au cours des années pour générer les couleurs de l’interface graphique en fonction des couleurs choisies par l’utilisateur. Chaque morceau de code concernait faisait ses propres calculs pour générer de jolis dégradés, des variantes plus sombres et plus claires, etc. Cela fonctionnait bien avec le thème par défaut, mais pas forcément avec des choix de couleurs qui en sont très éloignés. Le nouveau code est plus simple, plus prédictible, et permet de rassembler ces calculs dans la classe « control look », qui peut être remplacée par un add-on pour fournir une apparence complètement différente.

Cela peut nécessiter d’ajuster un peu les couleurs dans les préférences d’apparence si vous les avez personnalisées.

Storage kit

Ce kit regroupe tout ce qui concerne le stockage de masse et la gestion des fichiers.

Harmonisation de la nouvelle fonction BQuery::SetFlags avec d’autres fonctions similaires, et ajout d’une page de documentation pour cette fonction.

Correction d’un crash lorsqu’on enregistre un type MIME alors que le type parent n’existe pas (par exemple si on enregistre image/gif alors que le type image n’existe pas).

Ajout d’une constante pour identifier les systèmes de fichiers FAT16 parmi la liste des systèmes de fichiers connus.

Shared kit

Le shared kit contient des fonctions expérimentales en cours de développement mais déjà utilisées par plusieurs applications.

Contrairement aux autres kits, il est fourni sous forme d’une bibliothèque statique, ainsi chaque application peut en utiliser une version différente (choisie au moment de la compilation) et il n’y a pas de contraintes pour conserver une stabilité d’API ou d’ABI. Les fonctions développées dans le shared kit peuvent ensuite être migrées vers les autres kits une fois qu’elles sont finalisées.

La classe « color list » (utilisée par exemple dans les préférences d’apparence) accepte maintenant le glisser-déposer de couleurs.

Serveurs

Les serveurs sont des applications lancées au démarrage du système. Ils sont similaires aux services systemd. Ils fournissent des services utiles à l’implémentation de la bibliothèque standard, car tout ne peut pas être fait dans une bibliothèque partagée.

app_server

app_server regroupe le serveur graphique de Haiku (utilisé au travers de l’interface kit) ainsi que la gestion des applications en lien avec l’application kit.

Correction d’un problème d’initialisation de variables indiquant dans quels workspaces (bureaux virtuels) une fenêtre doit être présente. Cela se manifestait par l’apparition de morceaux incomplets de la fenêtre si on change de bureau virtuel pendant son apparition. Le bug existait depuis 15 ans mais n’avait jusque-là pas pu être identifié.

Les curseurs de souris ne sont plus générés en bitmap à la compilation à partir des sources vectorielles. C’est maintenant fait lors de l’initialisation du serveur graphique, ce qui permet d’avoir un plus gros curseur sur les écrans à très haute résolution.

input_server

input_server se charge des périphériques d’entrée utilisateurs (claviers, souris et autres périphériques de saisie et de pointage).

Correction de la keymap espagnole latino-américaine dans laquelle plusieurs combinaisons de touches ne fonctionnaient pas comme sur les autres systèmes.

Pilotes

ACPI, gestion d’énergie, système

Mise à jour de ACPICA pour la prise en charge de ACPI avec la dernière version disponible.

Correction de problèmes dans le pilote poke (permettant l’accès direct à la mémoire pour écrire certains pilotes en espace utilisateur) pour mieux valider les paramètres des ioctl et éviter de pouvoir facilement déclencher un kernel panic suite à une mauvaise utilisation du pilote.

Réseau

Correction d’un problème dans la pile TCP ou les retransmissions de paquets lors de l’établissement de la connexion n’étaient pas faits, si le premier paquet était perdu, la connexion ne s’établissait jamais.

Lorsque IP_HDRINCL est activé (une application demande à envoyer et recevoir elle-même les en-têtes IP des paquets reçus), la pile réseau s’assure tout de même que les en-têtes générés ont bien un checksum valide. Cela permet à traceroute de fonctionner correctement par exemple.

Mise en place de l’infrastructure pour la découverte de MTU deu chemin. Cela permet de déterminer la taille maximale des paquets qu’on peut envoyer vers un serveur, sans que de la fragmentation IP soit mise en jeu en cours de route (ce qui, au mieux dégraderait les performances, au pire empêcherait la connexion de fonctionner correctement):

  • Ajout de l’option IP_DONTFRAG pour demander aux routeurs de ne pas redécouper certains paquets,
  • Remontée de l’information ICMP FRAGMENTATION_NEEDED pour détecter qu’on a essayé d’envoyer un paquet trop gros.

Cela permet déjà de détecter les problèmes de MTU, mais pas encore de les corriger automatiquement. La suite du code est encore en cours de test.

Remplacement du pilote iprowifi3945 par la version mise à jour disponible dans OpenBSD (pilote “wpi”) à la place de celle de FreeBSD qui est actuellement moins bien maintenue.

Interface homme-machine

Ajout de la tablette Intuos 4 dans le pilote pour les tablettes Wacom, ainsi que du support de la molette présente sur certaines tablettes.

Systèmes de fichiers

NFS4

NFS est un système de fichier en réseau. Une machine serveur se charge réellement du stockage des fichiers, et d’autres machines peuvent monter ce disque et accéder aux fichiers partagés. Plusieurs machines peuvent accéder au même serveur en même temps et modifier les fichiers, ce qui nécessite une attention particulière lors de l’implémentation d’un système de fichier client.

Le travail sur le pilote NFSv4 se poursuit pour le stabiliser et améliorer sa compatibilité avec les serveurs NFS existants.

Correction de problèmes de gestion du cache et de libération anticipée d’inodes`, points sur lesquels NFS est un peu inhabituel par rapport à d’autres systèmes de fichiers puisque des évènements peuvent arriver du serveur NFS concernant un fichier qui a été supprimé localement, par exemple.

Correction d’un problème qui pouvait conduire un fichier nouvellement redimensionné à contenir des données non initialisées au lieu d’octets à 0.

Cela permet de corriger des problèmes détectés par des tests NFSv4 existants pour d’autres systèmes.

EXT4

Le pilote ext4 permet de monter, en lecture et en écriture, les systèmes de fichiers ext2, ext3 et ext4 développés pour Linux.

Implémentation et activation de la fonctionnalité « metadata_csum_seed » qui est activée par défaut pour les systèmes de fichiers nouvellement créés sous Linux.

Corrections dans le « tree splitting » qui n’était pas implémenté correctement, empêchant d’accéder à des dossiers contenant un trop grand nombre de fichiers.

RAMFS

RAMFS est un système de fichiers non persistant, stockant les fichiers uniquement dans la RAM. Il est plus rapide qu’un système de fichier traditionnel.

Correction de crashs lors de la création de gros fichiers et lors du remplacement d’un hardlink par un autre fichier.

FAT

FAT est un système de fichiers développé par Microsoft pour DOS et les anciennes versions de Windows. Il est assez répandu et sert un peu de format d’échange standard en particulier pour les supports de stockage externes (clés USB, cartes SD, disquettes…).

Ajout d’assertions et de vérifications d’intégrité supplémentaires. Le pilote FAT utilisé actuellement provient de FreeBSD, dont les développeurs nous ont assuré qu’il était bien testé et maintenu. Mais, de façon similaire aux pilotes Wifi, on se rend compte que les bases d’utilisateurs de Haiku et de BSD ne sont pas du tout les mêmes, et nous sommes face à beaucoup de systèmes de fichiers FAT corrompus ou inhabituels, ce qui se produit peut-être moins souvent dans les utilisations de FreeBSD sur un serveur par exemple.

libroot

La libroot contient l’équivalent de la libc, libdl, libpthread et libm d’un système UNIX standard, ainsi que des fonctions bas niveau spécifiques à BeOS.

Les extensions GNU et BSD sont déportées dans des bibliothèques séparées (libgnu et libbsd), ce qui permet de respecter au mieux la spécification POSIX sans avoir à utiliser des astuces telles que des « weak symbols ».

Mise à jour de la libio

La bibliothèque standard de Haiku est à l’origine un fork de la glibc, utilisant exactement la même version que BeOS afin de garantir une compatibilité d’ABI optimale avec ce dernier. Cependant, cette version ancienne et obsolète ne répond pas aux besoins des applications modernes.

Petit à petit, des parties de la bibliothèque C sont donc remplacées par des composants venant de FreeBSD, NetBSD, OpenBSD ou plus récemment de musl. Certaines choses sont très bien standardisées et ne posent pas de problèmes, pour d’autres parties, des symboles internes de la bibliothèque sont exposés et parfois exploités par des applications (directement par des développeurs applicatifs pour contourner un bug, ou alors parce que les développeurs de la glibc ont mal isolé les choses et ont exposé des détails internes).

Ce trimestre, la partie libio (gestion des flux d’entrée-sortie) a été mise à jour avec la dernière version de la glibc. Il n’est pas possible d’utiliser une autre bibliothèque C pour cette partie sans casser l’ABI, mais la mise à jour est possible.

Correction de multiples problèmes dans les fonctions standard C et les extensions BSD:

  • Ajout d’une vérification de la locale passée à setlocale pour retourner une erreur si la locale demandée est invalide.

  • L’ouverture d’un chemin se finissant par un / avec open() échoue si le fichier n’est pas un dossier (par exemple open("/home/user/foo.txt/")).

  • Validation du paramètre “how” de la fonction shutdown() et retour d’une erreur si le paramètre n’est pas une valeur connue.

  • Les queues d’évènement créées par kqueue ne sont pas conservées lors d’un fork (même comportement que les BSD).

  • Un socket sur lequel il n’y a jamais eu d’appel à listen() ou connect() ne doit pas déclencher les erreurs EPIPE ni ENOTCONN.

  • La fonction socket() retourne maintenant les bons codes d’erreurs détaillés si elle ne peut pas créer le socket: EPROTOTYPE si le type de protocole est inconnu, EPROTONOSUPPORT s’il est connu mais pas disponible, EAFNOSUPPORT si la famille d’adresse n’est pas disponible. Auparavant, tous ces cas renvoyaient EAFNOSUPPORT.

  • Amélioration de la gestion des erreurs dans accept()

  • Gestion de cas particuliers pour bind() en UDP

  • Ajout de l’option RTLD_GROUP pour dlopen(). Il s’agit d’une extension développée par Solaris qui permet d’avoir plusieurs espaces de noms pour la résolution de symboles lors du chargement de bibliothèques partagées. En particulier, dosemu l’utilise pour fournir aux programmes DOS une bibliothèque C indépendante de celle de l’hôte (fournissant donc des fonctions memcpy, memset… qui entreraient en conflit avec celles de l’hôte). L’implémentation est triviale, car le même comportement était déjà en place pour la gestion des add-ons de BeOS; il n’était simplement pas accessible au travers de l’API POSIX dlopen(). Linux implémente ce flag sous un autre nom, cependant, la documentation de la glibc n’est pas correcte, et FreeBSD a implémenté ce qui est documenté pour la glibc avec le même nom. C’est pourquoi le nom utilisé par Solaris, qui n’est pas ambigu, est utilisé pour l’instant, en espérant que la méprise entre Linux et FreeBSD pourra être corrigée.

  • sethostname() retourne une erreur si le hostname proposé est trop long (auparavant il était simplement tronqué).

Intégration des changements de POSIX-2024

La spécification POSIX a été mise à jour en 2024. Cette mise à jour est assez importante grâce à un changement de la méthode de travail de l’Austin Group qui maintient la spéficication. Le groupe de travail a ouvert un bug tracker sur lequel il est possible de remonter des problèmes et de proposer des améliorations (à conditions que ces dernières soient déjà implémentées sous forme d’extensions sur un assez grand nombre de systèmes).

Cela a permis à plus de monde de prendre part à la spécification et de standardiser beaucoup de nouvelles choses. Haiku intègre ces changements petits à petits, parfois par anticipation, parfois parce que l’extension correspondante était déjà disponible, et parfois parce que le portage d’un logiciel le nécessite.

  • Ajout de O_CLOFORK, MSG_CMSG_CLOEXEC, et MSG_CMSG_CLOFORK pour fermer des descripteurs de fichiers lors d’un fork (équivalent de O_CLOEXEC qui ferme lors d’un exec, typiquement après un fork). Au passage, ajout dans la libbsd de closefrom() et closerange(), ces deux fonctions permettant de lancer des tests développés pour BSD pour ces nouveaux drapeaux.
  • Ajout de fdatasync(), une fonction qui s’assure que le contenu d’un fichier est bien enregistré sur disque et pas seulement dans le cache.

Améliorations sur la gestion de la mémoire

La gestion de la mémoire est un sujet central pour un système POSIX. L’API proposée (malloc, realloc, calloc et free) est à la fois très simple d’utilisation et très générique. Elle a donc tendance à être très sollicitée par les applications, ce qui en fait un composant critique de l’optilisation des performances du système. De plus, les applications sont de plus en plus consommatrices de mémoire et le matériel a tendance à en contenir de plus en plus.

L’allocateur mémoire a été remplacé il y a quelques mois, l’ancien allocateur hoard2 ne permettant pas d’agrandir dynamiquement l’espace alloué à une application. Après plusieurs essais, c’est pour l’instant l’allocateur d’OpenBSD qui a été retenu. En effet, beaucoup d’allocateurs plus modernes supposent un espace d’adressage 64 bit et sont peu économes en termes de réservation d’espace mémoire.

Cependant, même l’allocateur d’OpenBSD montrait ses limites sur les systèmes 32 bit. Son paramétrage a été amélioré, et d’autres modifications ont également été faites pour réduire la fragmentation de l’espace mémoire. Cela corrige des problèmes ou GCC ne parvient pas à allouer assez de mémoire lors de la compilation de très gros fichiers (par exemple lors de la compilation de clang ou de webkit). Il reste recommandé de désactiver l’ASLR (randomization de l’espace d’adressage) dans les cas où on a besoin de beaucoup de mémoire pour une application 32 bits.

Noyau

Le noyau de Haiku est un noyau monolithique tout à fait classique pour un système UNIX. Il permet le chargement dynamique de modules, et fournit une API relativement stable pour ces derniers, ce qui permet de maintenir des pilotes facilement en dehors du dépôt de sources de Haiku.

Correction de problèmes causant le kernel panic « failed to acquire spinlock for a long time » lorsque l’affichage à l’écran des logs du noyau est activé.

Ajout d’assertions supplémentaires dans le code de gestion de la mémoire virtuelle pour essayer de détecter des problèmes au plus tôt et avant de risquer de corrompre des données importantes.

Correction de l’affichage des paramètres des appels systèmes dans strace sur x86.

Correction de problèmes dans la gestion des permissions pour write_stat (modification des informations sur un fichier comme la date de modification) dans le noyau ainsi que dans les systèmes de fichiers RAMFS, BFS et EXT4. Cela corrige des comportements étranges observés lors de l’utilisation de rsync.

Ajout d’un test vérifiant le bon fonctionnement des exceptions remontées par le FPU lors de calculs en virgule flottante (ces exceptions sont un peu difficiles à traiter dans un système multitâche, et en particulier dans Haiku où le code du noyau peut lui-même utiliser le FPU alors que ce n’est pas le cas pour d’autres systèmes).

Correction de problèmes liés au découpage et au redimensionnement des areas (zones de mémoires allouées par les APIs prévues à cet effet de BeOS, ou indirectement par mmap et d’autres fonctions permettant de manipuler l’espace mémoire). Cela corrige des problèmes pour RAMFS ainsi qu’un kernel panic observé lors du lancement de dosemu.

Correction de problèmes avec les areas en lecture seule, qui pouvaient aboutir dans certains cas à une sous-évaluation de la mémoire utilisée, aboutissant à un kernel panic, car il n’y a plus de mémoire disponible à un moment où le noyau ne s’y attend pas. Cela a été mis en évidence en particulier avec l’utilisation mémoire de certains navigateurs web, qui ont tendance à gérer la mémoire directement sans passer par l’allocateur standard du système, pour des raisons de performance.

Remise en route de guarded_heap (un allocateur mémoire qui détecte les dépassements de buffers, au prix d’une consommation mémoire fortement augmentée). Correction de problèmes mis en évidence par cet allocateur dans quelques pilotes.

Dans la structure mcontext/ucontext passée aux fonctions de traitement de signaux, ajout de plusieurs registres manquants (registres de segments, addresse de faute…). Cela est utilisé par le JIT de dosemu et va probablement permettre d’utiliser le JIT dans d’autres applications également. En effet, une approche possible pour le JIT est de déclencher volontairement un signal, afin d’intercepter l’état des registres, éventuellement de le manipuler, puis de reprendre l’exécution là où elle s’était arrêtée.

Ajout de vérification de permissions manquantes dans l’appel système get_extended_team_info.

Correction d’une possible fuite d’un descripteur de fichier dans le VFS.

Bootloader

Mise à 0 de tous les registres non utilisés lors de l’appel de fonctions du BIOS, afin d’aider à investiguer des problèmes avec certains BIOS capricieux.

Amélioration des messages d’erreurs lorsque le bootloader ne parvient pas à charger le fichier ELF du noyau. Le chargeur de fichiers ELF du noyau est volontairement incomplet pour simplifier les choses (après tout, il a besoin seulement de charger le noyau), mais cela pose problème lors de mises à jour de GCC ou lors du portage sur de nouvelles architectures, si l’organisation du fichier ELF du noyau se trouve modifiée.

Correction de problèmes de compilation lorsque des logs de debug optionels sont activés.

Documentation

La documentation de Haiku se découpe principalement en trois parties:

  • Un guide de l’utilisateur,
  • Une documentation d’API pour les développeurs d’applications,
  • Une documentation d’implémentation pour les développeurs du système lui-même.

API (Haiku book)

Documentation de la classe BControl (classe abstraite qui fournit l’API standard de la plupart des contrôles utilisables dans l’interface graphique, les rendant interchangeables dans une certaine mesure).

Documentation de AdoptSystemColors et HasSystemColors pour la classe BButton.

Ajout de documentation pour les extensions à dlfcn.h par rapport à ce qui est déjà spécifié par POSIX.

Environnement de compilation

Haiku est écrit en C++ et utilise jam (un concurrent de make) comme outil principal de compilation. Cet outil a été retenu, car il permet de définir des règles de compilation génériques et réutilisables pour faire toutes sortes de choses. La compilation de Haiku pouvant mettre en jeu trois compilateurs différents (un pour le système hôte, un pour le système Haiku cible, et un troisième pour la couche de compatibilité avec BeOS), la plupart des autres outils ne répondent pas bien aux besoins.

Suppression de règles Jam redondantes. Jam repose sur des règles nommées pour savoir quelles actions sont nécessaires pour générer une cible à partir de sources. Les règles “Application”, “Server”, “Preferences” et “Executable” étaient toutes identiques, elles ont donc toutes été remplacées par “Application” pour simplifier le système de build.

Correction de “warnings” du compilateur pour des variables inutilisées et suppression de code mort (dans le cadre du maintien d’un code propre et lisible, une tâche plus ou moins continue pour suivre l’évolution des bonnes pratiques, la disponibilité de nouveaux outils d’analyse, et absorber la dette technique qui peut s’accumuler au cours d’un projet aussi ancien).

Début de support pour GCC 15: il est ajouté dans la liste des versions du compilateur reconnues pour le système hôte, ce qui permet de compiler Haiku depuis un système Linux très récent. L’intégration en tant que compilateur cible viendra plus tard.

Remplacement de la commande which utilisée dans certains scripts de build par l’équivalent command -v, ce qui évite une dépendance à une commande non standard qui n’est pas forcément installée par défaut partout.

Dans le makefile engine (un template de makefile proposé pour développer facilement des applications pour Haiku), ajout de documentation et d’exemples pour les variables INSTALL_DIR et TARGET_DIR.

Portage de Haiku sur d’autres CPUs

RISC-V

Correction d’un problème dans un script de link qui empêchait le démarrage du noyau.

Mise à jour de paquets utilisés pour compiler le système de base.

Mise en place d’un serveur de compilation de paquets pour RISC-V, ce qui permet de remplir le dépôt de paquets pour cette architecture et d’envisager une version officielle de Haiku pour RISC-V lors de la prochaine version bêta. L’architecture RISC-V s’ajoutera ainsi au x86 (32 et 64 bit) déjà supporté.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Revue de presse de l’April pour la semaine 32 de l’année 2025

Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.

[La Déferlante] Ivonne Gonzalez: «Féminiser, décoloniser et diversifier Wikipédia»

✍ Coline Clavaud-Mégevand, le jeudi 7 août 2025.

Le 3 septembre paraîtra le numéro 19 de La Déferlante intitulé «S’informer en féministes». Pendant tout le mois d’août, nous donnons la parole à des personnes qui s’engagent pour une information fiable et indépendante. Deuxième d’une série de quatre: le témoignage d’Ivonne Gonzalez, artiste et militante afro-féministe, à l’origine du projet Noircir Wikipédia qui se propose de «décoloniser» l’encyclopédie en ligne pour la rendre plus inclusive.

[ZDNET] Dassault Aviation adhère à l'open source avec le TOSIT

✍ Christophe Auffray, le mardi 5 août 2025.

En réponse aux enjeux de souveraineté et de dépendance technologique, l’avionneur Dassault Aviation rejoint le TOSIT.

[Numerama] Lazarus est de retour: les célèbres voleurs de crypto-monnaies nord-coréens ciblent désormais l'open source

✍ Amine Baba Aissa, le lundi 4 août 2025.

Dans une étude publiée fin juillet 2025, les chercheurs de Sonatype annoncent avoir détecté une vaste campagne d’espionnage menée au sein des écosystèmes open source. Aux commandes: Lazarus, un groupe cybercriminel affilié à l’État nord-coréen, connu depuis plus d’une décennie pour des détournements spectaculaires

[Solutions-Numeriques] Biens publics numériques: le CNLL dénonce une exclusion déguisée des éditeurs open source français

✍ Camille Suard, le vendredi 1 août 2025.

Le CNLL alerte sur l’usage flou du terme «communs numériques» dans les politiques publiques. Ce qui est mis en cause notamment c’est une stratégie de vocabulaire qui favoriserait certains projets open source au détriment des éditeurs français de logiciels libres, en contradiction avec la loi pour une République numérique.

Et aussi:

[The Conversation] L'IA Open Source et frugale: la clé de l'autonomie stratégique européenne?

✍ Julien Pillot, le jeudi 31 juillet 2025.

L’Union européenne peut-elle exister sur le marché de l’intelligence artificielle face aux États-Unis et à la Chine? Tout est question de modèle économique et de stratégie environnementale.

Et aussi:

[INCYBER NEWS] Bye-bye Microsoft! Comment les organisations se mettent (enfin) au logiciel libre

✍ Emmanuel Langlois, le lundi 28 juillet 2025.

Un pays tout entier, le Danemark, un länder allemand, des dizaines de communes, comme Lyon, la troisième ville de France… Lentement mais sûrement, les collectivités basculent vers Linux, LibreOffice et autres NextCloud. Le but est économique, mais aussi d’asseoir sa souveraineté numérique et d’en finir avec la dictature des GAFAM.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

La convention du mètre et l’ODF 150 et 20 ans d’ouverture

La convention du mètre fête ses cent cinquante ans cette année tandis que le format bureautique OpenDocument Format (ODF) a soufflé vingt bougies. Ça vaut bien une dépêche sans doute ce qui nous permettra de dresser un historique de ces deux types de normes et, peut-être, de mieux mettre en lumière la nécessité des formats ouverts pour les personnes pour qui la notion n’est soit pas facile à expliquer, soit pas familière. Quel rapport entre les deux ? Le système métrique, dont l’histoire est passionnante, est, à ma connaissance, le tout premier standard ouvert. Quant à l’ODF, c’est l’un des premiers, si ce n’est le tout premier, standard bureautique ouvert.

Dessin. En haut un double décimètre, au milieu les chiffres 1795, 1875, 2025, 230, 150 et 20 entourant un gâteau avec une bougie. En bas les icônes des formats Open Document File : ODB, ODF, ODP, ODS et  ODT

Qu’écouter en lisant cette dépêche ? L’Enfant les sortilèges (1925) tout particulièrement pour la leçon d’arithmétique, musique de Maurice Ravel, texte de Colette dont l’œuvre vient d’entrer dans le domaine public.

Sommaire

Préambule

En 2018, lors des dernières rencontres mondiales du Logiciel Libre (RMLL) à Strasbourg, j’avais fait une conférence dont le sujet était Formats ouverts et métrologie, dont on peut télécharger le livret explicatif. C’est par cette approche que, personnellement, j’ai vraiment pleinement compris ce qu’était un format ouvert et, surtout son importance et, accessoirement que j’ai réalisé à quel point le système métrique était une avancée formidable. Mêler le matériel (système métrique) au logiciel (format ODF) peut être une façon pour certaines personnes de mieux comprendre des notions très abstraites.

L’aventure du système métrique

Une grande diversité des mesures et une préoccupation ancienne

Avant le système métrique, la question des poids et mesures dans le royaume de France a été un sujet crucial qui a fait l’objet de plusieurs tentatives d’uniformisation. Les poids et mesures variaient d’un endroit à l’autre avec, souvent, les mêmes noms, facilitant ainsi les confusions et les escroqueries. Après une difficile uniformisation de la monnaie, le pouvoir monarchique va s’attaquer à l’uniformisation des poids et mesures. Plusieurs tentatives auront eu lieu, sous Philippe Le Bel (1285-1314), Philippe V Le Long (vers 1293-1322), Louis XI (1423-1483), François 1ᵉʳ (1494-1547) et Henri II (1519-1547) sans succès. En 1321, Philippe V indique, dans le deuxième article d’une ordonnance royale :

en notre dit Royaume où il y a diverses mesures et divers poids en déception et lézion de plusieurs, fussent faites de nouvel en un seul poids et une seule mesure convenable desquelles le peuple usât dorénavant. (Métrologie ou Traité des mesures, poids et monnoies des anciens peuples & des modernes).

Philippe V meurt peu de temps après, cette politique ambitieuse ne se réalisera pas complètement et la multitude de systèmes de poids et mesures continuera à faire la prospérité des seigneurs et des villes. Cette diversité posait également la question de la fiabilité des étalons des poids et mesures, pas toujours fabriqués dans des matériaux fiables, et dont l’emplacement n’était pas toujours connu quand ils n’étaient pas perdus. C’était, de fait, un obstacle à la circulation des marchandises. D’ailleurs, quand, en 1789, Louis XVI convoque les États généraux, l’uniformisation des systèmes de mesure sera une revendication que l’on retrouvera dans de nombreux cahiers de doléances.

La question va se poser avec encore plus d’acuité au fur et à mesure que la science s’appuie de plus en plus sur la métrologie. Il fallait aux scientifiques un système de mesures fiable, documenté et reproduisible. Les questions qui vont se poser concernent aussi bien sur quelles bases établir ces mesures que du choix et de la forme des matériaux pour la fabrication des étalons de mesure et en quelle base calculer. À la veille de la Révolution française, les scientifiques sont prêts pour ce qui sera aussi une révolution mais d’un autre genre.

Tableau de comparaison des mesures anciennes
Extrait du tableau de correspondance des mesures du « Mémoire sur la nécessité et les moyens de rendre uniformes les mesures d’étendue et de pesanteur » de Claude-Antoine Prieur. On voit bien la complexité d’un système que le « pied de Roi » avait essayé de simplifier. Il y avait une aune pour les soieries, une pour les lainages et une pour les toiles qui valaient respectivement : 527,5/144, 526,5/144 et 524/144 de pied de Roi. Les mesures nationales sont celles qui seront proposées comme nouvelles mesures avec des noms essayant de ne pas trop s’éloigner des anciennes : le millaire pour remplacer la lieue de Paris, la perche, l’aune, le pied, le pouce et la ligne étant gardés.

La mise en place du système décimal et du système métrique

Le travail législatif commence en 1790. Le député de la Côte d’or, Claude-Antoine Prieur rédige un Mémoire sur la nécessité et les moyens de rendre uniformes les mesures d’étendue et de pesanteur, De les établir sur des bases fixes et invariables ; D’en régler tous les multiples et les subdivisions suivant l’ordre décuple ; D’approprier enfin à ce nouvel ordre le cours des petites monnoies qui sera présenté à l’Assemblée nationale. L’objet du mémoire est de répondre à la question « sur quels principes cette mesure doit être établie. » (Introduction du Mémoire). Talleyrand, évêque d’Autun, propose d’écrire au Parlement anglais qui, de son côté, discutait de ce sujet pour les mêmes raisons : la diversité des mesures et son aspect dommageable. Talleyrand suggérait que la France et l’Angleterre travaillent ensemble sur le projet. La lettre reçut un accueil favorable. L’Assemblée fera donc un décret demandant au roi notamment de :

  • faire déterminer la longueur du pendule à seconde qui devait servir de base,
  • demander aux communes et départements « au Secrétariat de l’Académie des Sciences un modèle parfaitement exact des différents poids et des mesures élémentaires qui y sont en usage » 
  • charger l’Académie des sciences de comparer les anciens poids et mesures aux nouveaux et d’envoyer aux municipalités ensuite « des livres usuels et élémentaires où seront indiquées avec clarté toutes ces proportions »,
  • et surtout, que les anciennes mesures soient abolies dans les six mois après la réception des nouvelles et remplacées par celles-ci.

Portraits
Portraits de Lagrange, Laplace, Monge et Condorcet, les deux premiers sont tirés de l’ouvrage : Le Système métrique décimal.

En 1791 une commission composée de la fine fleur des savants de l’époque, Jean-Charles de Borda (mathématicien et physicien), Joseph-Louis Lagrange (mathématicien et astronome), Pierre-Simon Laplace (mathématicien et astronome), Gaspard Monge (mathématicien) et Nicolas de Condorcet (mathématicien et philosophe), dépose un rapport sur le choix d’une unité de mesures. Il fallait qu’elle soit nouvelle et prise dans la nature. Trois choix sont proposés :

  • La longueur du pendule à secondes ;
  • Un quart de cercle de l’équateur terrestre ;
  • Un quart du méridien, entre le pôle et l’équateur.

La première a deux inconvénients : elle est liée à l’unité tout à fait arbitraire qu’est la seconde de temps ; et elle fait intervenir le temps et l’intensité de la pesanteur, considérations bien étrangères à l’unité de longueur.

Le quart de l’équateur est repoussé aussi, car la régularité de ce cercle n’est pas plus assurée que celle des méridiens, et les régions équatoriales sont d’un accès difficile. On adopte donc le quart du méridien, dont la dix-millionième partie sera l’unité usuelle ; mais comme sa mesure entière n’est pas possible, on convient de se borner à un arc de grandeur suffisante dont les extrémités tombent l’une au nord l’autre au sud du parallèle 45°. La partie du méridien de Dunkerque à Barcelone est adoptée ; elle suit la méridienne de Paris déjà mesurée, ce qui donnera des vérifications précieuses. (Le Système métrique décimal. Sa création en France. Son évolution. Ses progrès).

La commission est reçue le 19 juin 1791 par un Louis XVI qui s’enfuira le lendemain et sera arrêté le 21 juin 1791 à Varennes, ouvrant ainsi la page de l’Histoire de France la plus complexe sur le plan politique.

Le 1er août 1793, première loi. Son article premier indique que :

Le nouveau système des poids et mesures, fondé sur la mesure du méridien de la Terre et la division décimale, servira uniformément dans toute la République.

Il prévoit un temps d’adaptation d’une année à l’issue de laquelle le nouveau système deviendra obligatoire et aussi (article 10 de la loi) que l’Académie des sciences fasse un livre

à l’usage de tous les citoyens, contenant des instructions simples sur la manière de se servir des nouveaux poids et mesures, et sur la pratique des opérations arithmétiques relatives à la division décimale.

Le système décimal donnera d’ailleurs à plusieurs publications d’origines diverses. Par exemple, en 1799, Le Système métrique et ses rapports de Jacques Schwab, habitant de Nancy. Il y propose des méthodes de calcul « faciles » à exécuter :

J’ai, pour cela, tâché de ramener chaque rapport à une suite de fractions simples, qui répondent à 5 ou 6 chiffres de ce rapport, lesquels, si on les avait employés, auraient trop embarrassé le calcul par la multiplicité des chiffres ; d’ailleurs ces rapports ne se retiennent pas aussi volontiers dans la mémoire qu’une suite de fractions ; telles que ⅓, ½ pour 100, 3 par mille, etc. Ainsi, pour convertir des aunes en mètres, au lieu de multiplier par 1,188446, j’ajoute d’abord le 10^e ; sur ce premier résultat je prends 8 pour 100, sur ce second, ½ pour 100, et enfin le 80^e de ce dernier.

Si les poids et mesures vont rester, dans la première partie de l’histoire du système métrique, basées sur le méridien terrestre. Il n’en va pas de même pour la température. En effet :

la Commission « avait choisi la chaleur moyenne de la Terre, celle des caves de l’Observatoire, c’est-à-dire douze degrés et demi du thermomètre divisé en cent degrés »… (Le Système métrique décimal.).

Quand le rapport Prieur préconisait qu’elle soit (j’ai gardé la graphie de l’auteur) :

fixée, par exemple à dix dégrés du thermomètre à mercure, gradué à zéro pour la glace fondante, et à 80 dégrés pour l’eau distillée bouillante sous une pression constante de l’atmosphère, pression elle-même évaluée par la hauteur d’une colonne de mercure exprimée en fractions de la longueur du pendule.

Dans la tourmente de la Révolution, les travaux de calcul du méridien seront interrompus ainsi que celui de l’établissement du système métrique. Il faut attendre le 7 avril 1795 (18 germinal an III) pour qu’une nouvelle loi sorte. L’article 1 proroge la loi de 1793 et suggère que les citoyens donnent « une preuve de leur attachement à l’unité et à l’indivisibilité de la République en se servant dès à présent des nouvelles mesures dans leurs calculs et transactions commerciales. » Son article 2, précise qu’il « n’y aura qu’un seul étalon des poids et mesures pour toute la République : ce sera une règle de platine sur laquelle sera tracé le mètre qui a été adopté pour l’unité fondamentale de tout le système des mesures. »

Mais ce sont surtout ses articles 5, 6 et 7 qui sont vraiment intéressants. L’article 5 indique la nouvelle nomenclature et ses spécifications :

Art. 5. —- Les nouvelles mesures seront distinguées dorénavant par le surnom de républicaines ; leur nomenclature est définitivement adoptée comme il suit :

On appellera :
Mètre, la mesure de longueur égale à la dix-millionième partie de l’arc du méridien terrestre compris entre le pôle boréal et l’équateur.
Are, la mesure de superficie, pour les terrains, égale à un carré de 10 m de côté.
Stère, la mesure destinée particulièrement aux bois de chauffage, et qui sera égale au mètre cube.
Litre, la mesure de capacité, tant pour les liquides que pour les matières sèches, dont la contenance sera celle du cube de la dixième partie du mètre.
Gramme, le poids absolu d’un volume d’eau pure égal au cube de la centième partie du mètre, et à la température de la glace fondante. Enfin, l’unité de monnaies prendra le nom de franc, pour remplacer celui de livre usité jusqu’aujourd’hui.

L’article 6, quant à lui, précise les noms des subdivisions. On notera que « kilomètre » l’a emporté sur « myriamètre » dans la nomenclature actuelle.

Art. 6. – La dixième partie du mètre se nommera décimètre et sa centième partie centimètre.
On appellera décamètre une mesure égale à dix mètres : ce qui fournit une mesure très commode pour l’arpentage.
Hectomètre signifiera la longueur de cent mètres.
Enfin, kilomètre et myriamètre seront des longueurs de mille et dix mille mètres, et désigneront principalement les mesures itinéraires.

L’article 7 précise aussi que : « Art. 7. – Les dénominations des mesures des autres genres seront déterminées d’après les mêmes principes que celles de l’article précédent. » Avec une exception pour les francs où l’on utilisera « décime » (tombé en désuétude depuis) et « centime ».

Les travaux de calcul de la méridienne vont pouvoir reprendre, non sans quelques difficultés : Delambre qui avait négligé de payer le nécessaire passeport pour se déplacer dans cette France où on ne voyageait pas sans le précieux document sera arrêté puis relâché et jugera, mais un peu tard, qu’on ne l’y reprendrait plus. Les équipes de calcul du méridien, d’une manière générale, ne seront pas toujours bien accueillies. Méchain, qui avait préféré rester de l’autre côté des Pyrénées pendant la Terreur ne voudra pas rejoindre Paris malgré les suppliques de son épouse.

Le lancement du système métrique

L’ambition à l’origine du système métrique ayant été aussi qu’il soit universellement utilisé, et pas seulement en France, Talleyrand, alors Ministre des Affaires étrangères, avait aussi écrit à d’autres pays et obtenu des réponses favorables du Danemark, de l’Espagne et de la Sardaigne, ainsi que des Républiques batave, cisalpine, helvétique, ligurienne, romaine et toscane. Chacun envoyant des délégués à Paris pour les travaux.

Le nouveau système sera-t-il accueilli avec joie et utilisé aussitôt ?

Non, bien sûr que non. Sans parler des revenus que les anciennes mesures accordaient aux collectivités, la nouvelle nomenclature changeait les vieilles habitudes, les nouveaux noms ne sont pas dans la langue française (effectivement ils ont des racines grecques, comme nombre de mots de ladite langue) et ils étaient trouvés trop longs par les détracteurs du nouveau système. Ça rappelle les « guerres du nénufar » quand, en France, on s’emportait sur la réforme de l’orthographe de 1990. Toujours est-il, qu’un décret paraîtra le 12 février 1812 qui précise dans son article 3 que les instruments de mesure « porteront, sur leurs diverses faces, la comparaison des divisions et des dénominations établies par les lois, avec celles anciennement en usage. ». Ce qui n’est pas forcément le meilleur moyen de faire adopter pleinement le nouveau système. C’est un peu comme pour l’adoption de Linux, tant qu’on a un double démarrage, on aura tendance souvent à ne rester que sur Windows même en l’absence de logiciels spécifiques à ce système d’exploitation et qui n’existerait pas sous Linux. D’ailleurs, aussi bien au Canada, qu’en Australie ou au Royaume-Uni, le mélange des genres entre les deux systèmes continue à exister… avec des mesures impériales qui ne sont pas forcément toutes identiques.

Néanmoins, si le décret se donne dix années d’expérimentation du système métrique (article 4), il précise bien (article 5) que « le système légal continuera à être seul enseigné dans toutes les écoles, y compris les écoles primaires, et à être seul employé dans toutes les administrations publiques, comme aussi dans les marchés, halles, et dans toutes les transactions, commerciales et autres, entre nos sujets. » L’arrêté qui en fixait l’exécution permettait, dans le domaine commercial, d’utiliser les toises, pieds, pouces et lignes qui étaient fixés par rapport au mètre : 1/3 de mètre pour la toise, 1/36 pour le pouce et 1/1296 mètres pour la ligne. Sans doute dans un esprit de simplification.

Le système métrique était bien prêt pour être utilisé par la population, ladite population par contre… on ne lui facilitait pas tant que ça le changement de système. Au bout de quelques années, on finira par se retrouver dans une situation où les jeunes ne connaissaient que le système métrique, où l’administration n’utilisait que celui-là et où on continuait à utiliser les anciennes mesures dans le commerce de détail. Finalement c’est la loi du 4 juillet 1837 qui va définitivement imposer en France le système métrique, avec, toutefois, une tolérance jusqu’au 1er janvier 1840 pour que les commerces de détail passent sans difficulté de Python 2 à Python 3, pardon, du vieux système de mesure au nouveau.

Van Swinden
Jean Henri van Swinden (1746-1823), gravure tirée du Système métrique décimal.

Le système métrique est enfin et définitivement adopté en France. Il l’avait déjà été en Suisse, (1801). En Hollande, une première proposition de loi avait été déposée par le physicien hollandais Van Swinden en 1802, l’Espagne se préparait activement à diffuser largement le nouveau système de mesure en 1807.

Après cette difficile naissance, le système métrique entamera son essor à partir des années 1850 et sera très largement adopté.

Courbe d’adoption du système métrique de 1790 à 1940
Courbe de progression de l’adoption du système métrique par nombre d’habitants. Le système métrique met environ 60 ans pour toucher 50 millions de personnes. Et le même nombre d’années à peu près pour en concerner 500 millions.

Et cela en dépit de quelques oppositions, ainsi le philosophe darwiniste anglais Herbert Spencer affirmait que :

 La survivance des plus aptes a toujours amené le triomphe des unités qui se divisent par 2 ou par 3 sur les divisions décimales. (rapporté dans Le Système métrique décimal.).

Tandis que le parlementaire américain Samuel Dale estimait que le système anglais (qui deviendra le système impérial) était plus naturel car basé sur les dimensions du corps humain. Celui d’un corps humain en tout cas.

Le Bureau International des Poids et Mesures (BIPM) et l’évolution du système métrique

Un système de mesure n’est pas quelque chose qu’on conçoit, décide et fabrique une bonne fois pour toutes. Tout du moins, ce n’est pas le cas du système métrique tel qu’il vient d’être mis en place. Il faut s’assurer que les étalons de mesure soient toujours corrects, ce qui n’a pas été le cas d’ailleurs du mètre étalon, les distribuer, les contrôler mais aussi, le faire adopter le plus universellement possible pour les échanges commerciaux comme pour les recherches scientifiques. Il faut aussi que les bases du système puissent évoluer tout en restant cohérentes de façon à suivre les évolutions scientifiques.

Un organisme de gestion du système de mesures international s’impose donc.

La création du BIPM en 1875

En 1875, le gouvernement français organise la Conférence diplomatique du mètre, vingt pays y participeront, essentiellement européens et américains : Allemagne, Argentine, Autriche-Hongrie, Belgique, Brésil, Danemark, Espagne, États-Unis, France, Grande-Bretagne, Grèce, Italie, Pays-bas, Pérou, Portugal, Russie, Suède et Norvège, Suisse, Turquie, Venezuela pour travailler sur le futur du système. Cela donnera le Bureau International des Poids et mesures créé par la Convention du Mètre en 1875. Il est internationalement reconnu comme l’organisme chargé de gérer le système métrique qui deviendra le Système International (SI) en 1960.

Le budget, prévu dans la Convention du mètre issue de cette conférence de 1875 était de 75 000 F, qui pouvait aller jusqu’à 100 000 F maximum si nécessaire. Il comprenait les rétributions annuelles du directeur (15 000 F) et de ses deux adjoints (6 000 F chacun), celle de quatre aides à 3 000 F, d’un mécanicien-concierge à 3 000 F et de deux garçons de bureau pour 1 500 F chacun. À cela s’ajoutait un budget global de 24 000 F pour les savants et artistes1 amenés à intervenir à la demande du BIPM, l’entretien et la maintenance des locaux ainsi que les frais de fonctionnement. Enfin le secrétaire du Comité international des Poids et Mesures se voyait bénéficier d’une indemnité de 6 000 F pour son travail. Le budget sera moins détaillé par la suite. Pour 2025, il est fixé à 13 358 636 euros par la 27e réunion de la Conférence générale des poids et mesures, CGPM.

Si on veut avoir une idée de ce que représentent ces montants, par exemple et à titre indicatif : le salaire brut annuel des employés de bureau est, en moyenne, d’environ 23 692 € (source). Quant à la direction du BIPM, le salaire proposé dans cette offre de recrutement de 2024 commençait à partir de 155 000 euros bruts annuels.

Et, pour donner un ordre de grandeur du coût de la vie, le kilo de pain, élément principal de l’alimentation à l’époque, coûtait de 76 à 38 centimes (source). Aujourd’hui, un pain de 500 g coûte en moyenne 1,80 €, ce qui porte le kilogramme à 3,60 € (source). En un jour de travail, un garçon de bureau pour s’offrir quelque chose comme sept kilos de pain contre 14 pour un employé de bureau contemporain. Les limites de l’exercice est, dans les deux cas, que les charges récurrentes sont différentes.

Le gouvernement français offre le lieu : ce sera le pavillon de Breteuil dans le parc de Saint-Cloud et qui a un statut d’enclave internationale. Un observatoire sera construit aussi sur les lieux pour les mesures et tout le travail de recherche. Et c’est toujours le siège et le lieu de travail du BIPM.

Le pavillon de Breteuil
Côté ouest du Pavillon de Breteuil et de l’observatoire, vers 1930.

Des missions et des travaux qui dépassent le cadre des prototypes

Lors des discussions, la question s’était posée de créer une institution pérenne ou de ne la faire que le temps de mettre au point et fabriquer les prototypes. L’option d’un organisme pérenne a prévalu, permettant au BIPM de continuer le travail sur les mesures et le travail de recherche.

Les travaux vont donc porter dans un premier temps sur l’élaboration des étalons et des prototypes. Opérations qui vont nécessiter des prises de décision : quels matériaux adopter notamment et des analyses. Pour cela, le BIPM va se doter d’un laboratoire et d’outils qui vont lui permettre de vérifier la fiabilité des étalons dans le temps et de les conserver. Ce seront par exemple dans les années 1920-1930 des machines comme ce comparateur à dilatation.

Comparateur à dilation
Cette machine avec un système de commande électrique date de 1926. Elle pouvait mesurer des longueurs jusqu’à 1,25 mètres.

Les étalons seront conservés de façon à limiter les risques d'altérations.
Cloche à étalons
À droite un poids étalon conservé sous une cloche de verre, à gauche une version dans un étui de voyage (le cylindre au milieu est le couvercle de l’étui).

Le BIPM aujourd’hui

Les missions du BIPM ont été étendues par rapport aux origines puisqu’il gère le Système international d’unités (SI), mais qu’il est aussi responsable du temps : l’UTC (pour Universel Temps Coordonné) ou temps universel coordonné, échelle de temps qui est devenu une norme internationale en 1963. En revanche, ne le maudissez pas pour les heures d’été et d’hiver, l’UTC ne s’en préoccupe pas et reste invariable toute l’année, a contrario du méridien de Greenwich. L’UTC base ses calculs sur la rotation terrestre et les horloges atomiques et non plus sur un méridien, même si l’heure zéro reste celle du méridien de Greenwich.

On se souvient que, depuis le début des travaux du système métrique, l’idée était d’impliquer les autres États afin d’internationaliser son usage, le BIPM travaille ainsi avec les laboratoires de métrologie des États membres de la convention internationale du système métrique. Lesquels États participent au financement du BIPM. Il y a actuellement 64 membres, des grands pays comme le Brésil, la Chine, les États-Unis ou l’Inde, mais aussi un tout petit pays comme le Monténégro. La répartition géographique des pays membres du BIPM, sans surprise, n’est pas « équilibrée » entre les continents.

Répartition des États membres du BIPM par continent
En Europe 37 pays membres sur les 54 États du continent, 15 sur 35 pour l’Asie, 10 sur 49 pour l’Amérique, 5 sur 50 pour l’Afrique et 2 sur 16 pour l’Océanie.

Son financement suit le modèle, avec quelques adaptations, de financement de l’ONU qui établit un barème des quotes-parts de chaque pays en fonction de divers critères incluant ses capacités de paiements. Le budget est décidé pour une période pluriannuelle et s’établit ainsi pour les années 2024 à 2027 (PDF) :

  • 2024 : 13 161 218 €
  • 2025 : 13 358 636 €
  • 2026 : 13 559 016 €
  • 2027 : 13 762 401 €

L’évolution du système international

Le système métrique de 1889 connaît plusieurs évolutions plus moins majeures.

En 1901, le kilogramme devient l’unité de masse, une unité qui peut être mesurée en apesanteur, par exemple avec un certain type de chaise. Le poids, quant à lui, désigne « une grandeur de la même nature qu’une force ; le poids d’un corps est le produit de la masse de ce corps par l’accélération de la pesanteur ». Le nombre adopté pour la valeur de l’accélération normale de la pesanteur étant de 980,665 cm/s².

En 1946, la CGPM ajoute avec l’ampère les unités électriques à la collection de celles que le SI gère. Il possède sept unités de base :

  • la seconde, s, unité de temps,
  • le mètre, m, unité de longueur,
  • le kilogramme, kg, unité de masse,
  • l’ampère, A, unité de courant électrique,
  • le kelvin, K, unité de température thermodynamique,
  • la mole, m, unité de quantité de matière,
  • le candela, cd, unité d’intensité lumineuse.

En 1960, intervient ce que l’on peut considérer comme la première grande évolution du système métrique qui va changer de nom par la même occasion et devenir « International ». Il bénéficiera d’autres évolutions, la dernière, la plus importante, en 2018. Ce qui change : les définitions des mesures qui, bien que restant proches du système métrique initial gagnent en précision. Le mètre conserve toujours la même longueur grosso modo, le double décimètre promotionnel hérité de votre arrière-grand-tante reste toujours valable si cela peut vous rassurer. C’est important surtout pour l’infiniment petit, ou l’infiniment grand.

De 1960 à 2018 :

  • la seconde est définie en 1960 comme « la fraction 1/31 556 925,9747 de l’année tropique pour 1900 janvier 0 à 12 heures de temps des éphémérides » pour, en 1967, devenir « la durée de 9 192 631 770 périodes de la radiation correspondant à la transition entre les deux niveaux hyperfins de l’état fondamental de l’atome de césium 133 »,
  • la longueur du mètre est égale à : « 1 650 763,73 longueurs d’onde dans le vide de la radiation correspondant à la transition entre les niveaux 2p_{10} et 5d_{5} de l’atome de krypton 86. », en 1987, le mètre deviendra « la longueur du trajet parcouru dans le vide par la lumière pendant une durée de 1/299 792 458 de seconde » 17e CGPM,
  • l’unité de température est le kelvin depuis 1967 et son symbole le K, ils « sont utilisés pour exprimer un intervalle de température » qui « peut aussi s‘exprimer en degrés Celsius »,
  • la mole s’ajoute au portefeuille des mesures de base du SI lors de la 14e CGPM en 1971, c’est la « quantité de matière d'un système contenant autant d'entités élémentaires qu'il y a d'atomes dans 0,012 kilogramme de carbone 12 ; son symbole est “mol” »,
  • le candela, mesure d’intensité lumineuse, est défini en 1967 comme l’intensité lumineuse, dans la direction perpendiculaire, d’une surface de 1/600 000 mètre carré d’un corps noir à la température de congélation du platine sous la pression de 101 325 newtons par mètre carré.  » définition qui sera abrogée par la suite.

Depuis le 29 mai 2019, date de son application, le SI se définit selon ces bases :

la fréquence de la transition hyperfine de l’état fondamental de l’atome de césium 133 non perturbé, ΔνCs, est égale à 9 192 631 770 Hz,

  • la vitesse de la lumière dans le vide, c, est égale à 299 792 458 m/s,
  • la constante de Planck, h, est égale à 6,626 070 15 × 10–34 J s,
  • la charge élémentaire, e, est égale à 1,602 176 634 × 10–19 C,
  • la constante de Boltzmann, k, est égale à 1,380 649 × 10–23 J/K,
  • la constante d’Avogadro, NA, est égale à 6,022 140 76 × 1023 mol–1,
  • l’efficacité lumineuse d’un rayonnement monochromatique de fréquence 540 × 1012 Hz, Kcd, est égale à 683 lm/W.

Ces spécifications relèguent au musée les étalons matériels puisque le SI est basé sur les éléments immatériels que sont les constantes de la physique. Par contrecoup, si on a gagné en précision et, semble-t-il, en pérennité, on s’est bien éloigné des spécifications de 1791 qui ne requéraient, pour être comprises, pas de connaissances particulières ni même de dispositifs complexes pour l’établissement des mesures. Cela d’ailleurs été reproché à la parution de la nouvelle version du SI. On notera au passage l’importance de la seconde qui avait été écartée en 1791.

Le SI et les autres systèmes d’unités

À l’heure actuelle il n’existe que deux systèmes d’unités couramment employés : le SI presque partout dans le monde, notamment scientifique et le système impérial qui reste encore en vigueur aux USA, où le SI est reconnu officiellement et enseigné, au Liberia et au Myanmar qui reste le seul pays du monde à n’utiliser que le système impérial.

Le système impérial, qui date de 1824, se définit par rapport au SI depuis 1959. Ainsi un pied est subdivisé en douze pouces de 2,54 cm (ce qui fait un tout petit pouce) et mesure 30,48 cm, soit une pointure 48 environ, pas le pied de tout le monde. Et, naturellement, un alexandrin fait douze pieds2.

L’OpenDocument Format (ODF)

Le format ODF est une norme de fichiers bureautique qui doit sa naissance à des raisons similaires à celles qui ont abouti à la création du système métrique, à savoir une abondance de formats fermés qui rendait le processus d’archivage et de conservation des documents, au mieux, difficile.

Logo de l’ODF, un oiseau bleu, crédits Andy OpenClipart

Derrière l’ODF

Derrière l’ODF, le consortium OASIS (Organization for the Advancement of Structured Information Standards), à ne pas confondre par exemple avec le consortium OASIS, une autre organisation à but non-lucratif mais dans le domaine de la santé ou encore avec le groupe de rock Oasis.

Le consortium OASIS qui nous occupe est composé d’organismes très divers : des entreprises informatiques, des administrations publiques, des bibliothèques ou encore des organisations à but non-lucratif comme TheDocumentFoundation qui chapeaute le projet LibreOffice. Il a été créé en 1993 sous le nom de SGML dans le but de développer le langage de balisage du même nom. Le consortium changera de nom en 1998 en élargissant ses domaines d’action. OASIS a maintenu et maintient une collection assez impressionnante de projets dans des secteurs très variés (en), entre autres :

  • le modèle de documentation technique DocBook,
  • la norme de rédaction de documents structurés modulaires DITA,
  • le protocole d’échanges de données de service Web WS-Security.

Une brève histoire de l’ODF

En 2002 Sun Microsystems commence à travailler sur un format de fichiers bureautiques basé sur le XML pour sa suite bureautique OpenOffice. OASIS va reprendre le flambeau. La naissance, en 2002, du groupe de travail sur l’OpenDocument Format est d’ailleurs annoncé sur LinuxFr.

En 2006 une première version 1.0 est publiée qui devient la norme ISO/IEC 26300. Elle sera suivie de quatre autres versions :

  • ODF 1.1 en 2007, ajout du support des formules,
  • ODF 1.2 en 2011 avec de nouvelles fonctionnalités,
  • ODF 1.3 en 2020 avec une focalisation sur la signature électronique et le chiffrement ainsi qu’une amélioration des fonctionnalités de formatage du texte et une amélioration de l’accessibilité,
  • et ODF 1.4 en 2024 qui poursuit notamment le travail d’amélioration de l’interopérabilité et de l’accessibilité en proposant par exemple une sémantique plus claire pour les dispositifs d’assistance ainsi qu’une meilleure navigation pour les lecteurs d’écran, elle ajoute également des contrôles de formulaires entre autres nouveautés.

Les débuts de l’ODF se sont révélés houleux du fait de la contre-offensive lancée par Microsoft qui ne voulait pas perdre son monopole de fait. Il s’ensuivra une guerre d’influences auprès de l’ISO pour que l’OOXML soit considéré comme une norme ISO.

Une petite histoire de son adoption à travers les dépêches, journaux et liens de LinuxFr.org

En janvier 2010 le Danemark rendait obligatoires les formats normalisés ODF et PDF mais ne décidera de passer à Linux et LibreOffice que quinze plus tard. En juin 2010, l’Union européenne se posait la question des logiciels propriétaires dans les États de l’Union, une question qu’elle continue à se poser tout en l’ayant adopté comme format d’enregistrement depuis.

Le Ministère italien de la défense commençait à migrer vers LibreOffice et ODF en septembre 2015.

En France, la version datée d’avril 2016 2 du Référentiel Général d’Interopérabilité (RGI), recommande l’utilisation du format ODF comme seul format bureautique. La même année, la plateforme de dépôts de brevet de l’INPI s’assied sur ces recommandations et impose le format OOXML… En juillet 2025 un rapport sénatorial dénonce un recours massif de l’État français aux GAFAM.

Le gouvernement fédéral allemand s’engage à utiliser le standard ODF en avril 2025. Le Schleswig-Holstein avait, quant à lui, pris la décision de passer à LibreOffice en mars.

Les types de fichiers ODF

L’ODF est un format de document de travail, donc de fichiers amenés à être modifiés, pas un format d’archivage comme peut l’être le PDF, voire, le format EPUB. Il comporte plusieurs « sous-formats » selon le type d’application qui sert à les générer.

Illustrations des formats de fichier texte, tableur, présentation et image

Les plus utilisés et, probablement, les plus connus :

  • ODP, pour les présentations, et sa variante OTP avec le T de « template » pour les modèles,
  • ODS, pour les feuilles de calcul (« spreadsheet » en anglais), et sa variante OTS,
  • ODT pour le traitement de texte, et sa variante OTT ainsi que, pour les documents maîtres : ODM et OTM. Ces derniers étant prévus pour gérer des fichiers volumineux : un document principal, le document maitre, contient du texte et des liens vers des sous-documents, des chapitres de livres par exemple. Chaque sous-document pouvant être travaillé individuellement.

À cela s’ajoutent :

  • ODB pour les bases de données, qui, à ma connaissance, est essentiellement utilisé dans Base de LibreOffice et d’OpenOffice,
  • ODG, avec sa variante OTG pour les images vectorielles, utilisé essentiellement, à ma connaissance, par LibreOffice, Karbon de la suite Caligra et OpenOffice ; MsOffice peut, toutefois, ouvrir les fichiers ODG. Le format OTG accepte plusieurs pages et plusieurs calques,
  • ODF, avec sa variante OTF, pour les formules de mathématiques, on peut ainsi créer des formules de mathématiques séparément et les insérer dans des documents, mais il est possible aussi d’ajouter directement une formule dans un document, auquel cas elle ne fait pas l’objet d’un fichier à part,
  • ODC, avec sa variante OTC pour les graphiques (« chart » en anglais).

Quelques avis

Le 25 juillet 2007, dans Red Hat Magazine, T. Colin Dodd considérait le format comme inévitable. Il rapportait l’histoire d’un scientifique qui voulait, en 1999, consulter les données de la sonde Viking sur Mars, des données datant de 1979. Il exposait que après avoir retrouvé une copie des données sur bande magnétique (avec bien du mal), celles-ci étaient « dans un format si ancien que le programmeur qui le connaissait était mort. ».

Le format a été qualifié de révolutionnaire car :

il offre une alternative ouverte et interopérable aux formats propriétaires. Son architecture basée sur XML garantit la pérennité des données et facilite les échanges entre différents logiciels. Plongeons dans les arcanes de ce standard qui redéfinit notre approche du partage et de la conservation de l’information à l’ère numérique. Jenny, PC expert, 27 mars 2025.

Et, bien évidemment, ce qui a été relevé c’est qu’il est un :

symbole d’interopérabilité et de liberté numérique face à l’hégémonie de formats fermés tels que DOCX, PAGES ou Google Docs. actualitéscloud, 20 mai 2025.

et que c’est

à ce jour le seul format réellement ouvert pour les documents bureautiques. Goodtech.info.

Références

Quand on ne maîtrise pas trop un domaine, il faut lire pour compenser. On trouvera donc ci-dessous une bonne partie de ce qui a servi à bâtir cette dépêche qui m’a donné beaucoup de travail l’occasion de transformer en EPUB des documents sur le système métrique pour les rendre plus accessibles et utilisables. La majorité des sources est accessible en ligne.

L’histoire du système métrique

Un certain nombre de ces références sont issues de la BnF Gallica. J’en ai « epubifié » certaines. Je les propose en téléchargement également aux formats PDF et PDF hybride. Si vous préférez l’aspect des versions originales : elles sont téléchargeables sur le site de la BnF Gallica. Il est même possible de commander à ladite BnF un fac-similé imprimé.

L’ODF

Et si vous voulez un peu bricoler, dans le cadre d’animations et faire toucher du doigt concrètement la différence entre un format ouvert et un format propriétaire, il y a ces deux petits livres à tricoter. Mais on peut voler l’idée pour la reproduire dans d’autres matériaux.

Remerciements

En travaillant sur la version EPUB du livre Le Système décimal j’ai dû appeler à l’aide pour une formule. Insérer une formule de math dans Writer de LibreOffice est d’une simplicité enfantine, par contre, écrire la formule réclame des connaissances qui ne sont pas du tout innées. Je remercie les mastodonautes qui ont répondu à mon appel à l’aide et ont eu la gentillesse d’écrire la formule. Un grand merci à Cévhé qui a relu le fichier du livre et a corrigé quelques bourdes restantes.


  1. Les artistes avaient notamment pour tâche d’effectuer les travaux de gravure sur les étalons pour indiquer les graduations. Dans son rapport de 1790, Prieur précisait que cette opération ne devait « être confiée qu’à un artiste très-habile et l’extrême soin que ce travail exige indique assez que ce n’est pas sur cet objet qu’il convient de rechercher l’économie. »  

  2. Ceci est bien la preuve qu’il ne faut pas faire confiance aux littéraires, ces gens-là ne respectent rien et sont capables de jouer avec les nombres comme n’importe quel savant de Marseille. 

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Aeryth : Intégrer une AppImage dans un paquet et le bureau

Convertir proprement une AppImage en paquet ? Aeryth le fait en une commande : ce script Bash GPL v3 emballe votre AppImage en .deb ou .tar.zst, ajoute icône et lanceur, et s’installe/désinstalle via apt ou pacman.

Pourquoi Aeryth ?

Le format AppImage simplifie la distribution d’applications Linux, mais pose deux soucis :

  1. Intégration bureau (menus, icônes) absente au sein de l'environnement.
  2. Mises à jour invisibles pour le gestionnaire de paquets.

Aeryth règle ces points : il transforme toute AppImage en véritable paquet Debian (.deb) ou Arch (.tar.zst) prêt à être executé, et offre des options d'intégration d'un AppImage complet ou extrait au sein du paquet. 🤝

La documentation est très explicite sur le dépôt git sur GitLab, l'outil peut être au choix totalement ou partiellement interactif, ou 100% CLI utilisable des arguments et intégrable. 🙂

Il est en outre pensé multi-platforme, avec une gestion chroot et deboostrap pour pouvoir générer des paquets deb ou archlinux sur les deux familles de distributions, il est même possible de forcer le chroot pour ne pas devoir "polluer" la distribution actuellement utilisée même si elle peut générer nativement les paquets.

Il est pensé pour s'adapter à des utilisateurs néophytes ou confirmés. 😉


Fonctions principales

Fonction Description
Double cible Génère un paquet .deb ou .tar.zst
Multilingue Interface interactive : FR · EN · ES · IT · DE
Respect FHS Copie l’AppImage sous /opt/<app>/, wrapper dans /usr/bin
Licence GPL v3

Installation rapide

git clone https://gitlab.com/pepinature/aeryth.git
cd aeryth
chmod +x aeryth.sh

Feuille de route

  • Détection automatique des nouvelles versions AppImage.
  • CI : tests sur Debian 12, Ubuntu 24.04, Arch stable.

Ressources


Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

L'April invite à participer à la Fête des Possibles, partout en France du 12 septembre au 12 octobre

Une nouvelle édition de la Fête des Possibles aura lieu du 12 septembre au 12 octobre 2025. Des centaines d’événements seront organisés partout en France et en Belgique pour rendre visibles les initiatives citoyennes qui contribuent à construire un avenir plus durable et solidaire.

Le logiciel libre a toute sa place dans cette dynamique ! Ainsi, l'April, partenaire de la Fête des Possibles, invite les organisations locales de promotion du logiciel libre et de la culture libre à proposer un voire plusieurs rendez-vous dans le cadre de cette initiative.

Titre de l'image

Initiée et coordonnée par le Collectif pour une Transition Citoyenne (CTC), la Fête des Possibles aspire à faire prendre conscience à un maximum de citoyennes et de citoyens que des solutions existent pour vivre en meilleure santé, pour moins polluer, pour mieux vivre ensemble. C’est aussi l'occasion de montrer à de nouveaux publics que « c’est possible » d’utiliser au quotidien des logiciels respectueux de nos libertés !

Pour cette nouvelle édition de la Fête des Possibles, l'équipe d'organisation a voulu davantage mettre en valeur l'informatique libre : ainsi, des formats d'animation autour du logiciel libre sont désormais suggérés sur le site de la manifestation.

Concrètement, comment participer ?

  • Si vous avez déjà prévu un événement autour du logiciel libre ou de la culture libre entre le 12 septembre et le 12 octobre 2025, pensez à l'ajouter sur le site de la Fête des Possibles, en indiquant la thématique « Vivre et faire autrement » ;
  • Vous pouvez aussi proposer un rendez-vous ad hoc pour la Fête ! Dans ce cas, n'hésitez pas à l'ajouter sur le site de la Fête des Possibles dès que vous connaissez la date, il sera toujours possible d'affiner la présentation plus tard ;​
  • Vous pouvez, sans doute aussi, vous « greffer » à un événement déjà prévu, en proposant à l'organisation de prévoir de la place pour de la sensibilisation au logiciel libre : vérifiez sur la carte des rendez-vous si des événements sont déjà programmés près de chez vous ;
  • Votre événement se déroule en ligne ? Il est possible de le préciser dans le formulaire de soumission 👍​

Pour permettre à l'April de mettre en valeur la contribution des organisations autour du Libre, nous vous invitons à inscrire votre événement également sur l'Agenda du Libre, en ajoutant le mot-clé fete-des-possibles-2025.

Préparez dès maintenant votre événement, et rendez-vous du 12 septembre au 12 octobre 2025 pour agir avec la Fête des Possibles !

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Application libre en ligne de suivi des aides aux écoliers avec SQLPage

ThierryM : suite à un besoin exprimé par les enseignant⋅es d’une école et la découverte de SQLPage à travers l’application École Inclusive que j’ai découverte via ce site, je me suis lancé dans la réalisation d’une application en ligne permettant de suivre — sur toute leur scolarité dans le 1er degré — les différentes aides proposées aux élèves rencontrant des difficultés.
Bien que cette application soit encore en cours de développement et de test, je relate ici mon retour d’expérience car SQLPage, qui évolue rapidement, mérite d’être plus largement connue.

Jusqu’à présent je n’avais jamais osé me lancer dans ce genre de développements — principalement à cause de la sécurisation des accès et à la gestion de bases de données — mais SQLPage est arrivé…

    Sommaire

    Besoins et cahier des charges

    Le directeur d’une grosse école (13 classes + ULIS) avait besoin de pouvoir suivre pluriannuellement les différentes aides mises en place pour les élèves rencontrant des difficultés, ceci afin que les enseignant⋅es (dont les membres du RASED) disposent d’un historique pour voir ce qui avait déjà été proposé et ainsi décider ce que l’on pourrait mettre en place sans perdre de temps ni redite. Bref, l’idée était de gagner en temps et en efficacité.

    Au niveau d’une seule école, un tableur LibreOffice Calc pouvait très bien faire l’affaire et suffire (ce classeur existe d’ailleurs) mais il ne pouvait pas être complété à distance et de façon collaborative facilement :
    Classeur LibreOffice Calc de suivi
    On aurait pu mettre en place un classeur sur le Nuage-Nextcloud des Apps Éducation proposé par l’Éducation nationale et travailler de façon collaborative en ligne ou en drive (pour profiter des macros). Mais cette solution n’est pas aisée à mettre en place, avec des problèmes de synchronisation et des conflits de version de fichiers (je le sais par expérience, car nous gérons l’absentéisme de cette façon et ça demande un gros accompagnement, chaque classe ayant son propre classeur que l’on doit retravailler par la suite pour faire des synthèses d’école).

    L’idée était donc de disposer d’une application Web, en ligne pour que les enseignant⋅es puissent intervenir, compléter les données facilement et directement.
    L’avantage de cette solution était aussi de disposer d’une application unique pour étendre par la suite son utilisation aux 4 écoles de la ville (voire d’une circonscription) si le projet est concluant : en effet, les infos des élèves de maternelle suivraient lors du passage à l’école élémentaire.
    Seulement voilà, se posent pas mal de contraintes notamment par rapport à la sécurisation des données et au niveau du RGPD, l’outil envisagé contenant des informations sensibles. Il était impossible d’envisager un développement en Html/CSS/Javascript/PHP de zéro (manque de temps et de compétences). Et c’est là, que j’ai découvert l’existence de SQLPage qui paraissait répondre à nos inquiétudes avec des accès sécurisés, tout en étant à la portée de « débutant⋅es », à travers le récit de l’auteur de l’application « École Inclusive ».

    Début de l’aventure

    L’application « École Inclusive », bien que conçue pour le second degré, pouvait être adaptée à nos besoins plus modestes et a donc servi de base de départ : c’est beaucoup plus facile de partir de l’existant que d’une page blanche où il faut tout construire. Il s’est avéré que nous n’avions pas besoin de toutes les fonctionnalités et qu’il a fallu reprendre les logiques de fonctionnement mais la base étant là, c’était très rassurant d’autant que l'auteur de « École Inclusive » et le concepteur de SQLPage, très disponibles, étaient là pour m’éclairer, me conseiller ou rajouter des fonctionnalités au fil de mes demandes via les pages GitHub de leur projet respectif. Il faut rajouter que le site de SQLPage, conçu avec SQLPage ;-), regorge de ressources avec une documentation (en anglais) très claire et facilitante avec des exemples.
    Il est vrai que ce concept de programmation est assez déstabilisant au début : ne passer que par des fichiers .sql (ou presque) pour développer un site Web, ça paraît inadapté. Mais, une fois qu’on est rentré dedans, on se rend compte que pour le type d’application qu’on recherchait, c’est tout bonnement bluffant et terriblement efficace.
    Ce qui est aussi facilitant, c’est la possibilité d’utiliser des bases sqlite ne nécessitant pas la mise en place d’un serveur de type MySQL ou PostGreSQL rajoutant de la complexité. Mais SQLPage fonctionne aussi avec ces serveurs si on en a l’utilité : ce point est intéressant, car le temps consacré pour se former à SQLPage pourra être réinvesti avec d’autres types de bases de données.

    Matériel, données techniques et application ASDAEL

    Pour des tests les plus proches du fonctionnement prévu (on verra que ça changera), j’ai utilisé un NAS perso Synology 713+ sous DSM 7.1 avec un accès extérieur. Toutes les infos sont là pour ceux et celles que ça intéresse : https://lofurol.fr/joomla/logiciels-libres/104-bases-de-donnees/349-sqlpage-utilisation-sur-un-nas-synology-avec-docker-et-mysql-postgresql-sqlite.
    Toujours dans un souci de partage, les sources de l’application de suivi des aides sont disponibles sur la « Forge des communs numériques éducatifs » ou Forge Éduc, le GitLab mis à disposition par l’Éducation nationale pour favoriser le partage et le développement de ressources numériques pour l’enseignement.
    Source du projet: https://forge.apps.education.fr/thierrym/suivi-aides-eleves-ecoles

    Utilisation locale due au RGPD et à la sécurisation des données

    Cette application n’ayant pas reçu de soutien officiel et vu qu’elle contient des données sensibles sur les élèves (bien que ces données ne soient accessibles qu’aux seul⋅es enseignant⋅es concerné⋅es par le suivi des élèves), il a été décidé de ne pas exposer l’application sur Internet, comme prévu initialement. Elle sera donc installée sur un ordinateur localement sans accès de l’extérieur le temps de la tester. Après, il sera toujours possible d’évoluer vers une utilisation réellement en ligne si les essais sont concluants (et avec un audit sur la sécurité).
    Et là, encore une fois, l’application est très bien faite, car elle fait office de serveur web et il suffit de saisir son adresse ip sur le port 8080 pour y accéder à partir d’un autre ordinateur sur le même réseau. On ne peut pas faire plus simple (pas besoin de se monter un serveur Apache/Ngnix) !!!

    Pour lancer l’expérimentation, j’ai récupéré un “vieil” ordinateur HP 260 G2 Mini (Intel Pentium 4405U, 4 Go de Ram et HD de 100 Go) sur lequel j’ai installé Ubuntu 24.04 Server (avec accès SSH) avec le bureau Mate et Docker pour faire fonctionner les conteneurs Portainer et Adminer pour éventuellement agir sur la base de données SQLite.
    J’ai ensuite installé SQLPage avec mes fichiers dans un dossier « ASDAEL » à la racine de mon home puis configurer un démarrage automatique lançant SQLPage et Firefox pointant vers la page « localhost:8080 ».

    Captures d’écran

    Structure de la base de données
    Structure de la base de données

    Page d’accueil :
    Accueil

    Page de connexion :
    Page de connexion

    Localisation des écoles :
    Liste des écoles

    Liste des élèves suivi⋅es :
    Liste des élèves suivi⋅es

    Fiche individuelle de suivi :
    Fiche individuelle de suivi

    Vue synthétique du parcours de l’élève :
    Vue synthétique

    Page de paramétrage :
    Page de paramétrage

    Perspectives

    Avec l’arrivée du Livret de Parcours Inclusif (LPI) peut-être que ce genre d’applications ne sera plus utile… d’autant qu’elles n’ont aucun soutien institutionnel et qu’en l’état actuel elles ne peuvent être utilisées que localement, ce qui réduit pas mal leur intérêt.
    Mais l’idée de ASDAEL est d’obtenir rapidement une vision synthétique des différentes aides mises en place pour l’ensemble des élèves tout au long des années en facilitant leurs saisies, ce que ne permettra certainement pas le LPI.
    À suivre… ?

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •