Vue lecture

G'MIC 3.6 : L’art de soigner ses images !

G’MIC, cadriciel libre pour le traitement des images numériques, vient de proposer une mise à jour significative, avec la sortie de sa nouvelle version 3.6.

Une bonne occasion pour nous de vous résumer les activités récentes autour de ce projet, et plus précisément, ce qu’il s’est passé depuis notre précédente dépêche, publiée il y a un peu plus d’un an (juin 2024).

G´MIC 3.6.0 Teaser

N. D. A. : Cliquez sur les images pour en obtenir une version en pleine résolution, ou une vidéo correspondante lorsque les images contiennent l’icône Icône 'Play Video'

Sommaire

1. G’MIC : Un cadriciel pour le traitement des images numériques

G’MIC (GREYC's Magic for Image Computing) est un projet libre dédié au traitement, la manipulation et la création d'images numériques. Il est développé principalement au sein de l’équipe IMAGE du laboratoire de recherche GREYC de Caen (laboratoire UMR, sous triple tutelle du CNRS, de l'ENSICAEN et de l'Université de Caen).

La base du projet repose sur un interpréteur de langage de script spécifique, le « langage G’MIC », pensé pour faciliter le prototypage rapide et l’implémentation d’algorithmes de traitement d’images. Autour de ce noyau viennent se greffer plusieurs interfaces utilisateur, qui donnent accès à des centaines d’opérateurs de traitement d’images, mais qui permettent également d’intégrer des pipelines de traitement personnalisés. G’MIC est donc conçu comme un cadriciel ouvert et extensible.

Parmi ses déclinaisons les plus utilisées, on retrouve : gmic, un outil en ligne de commande comparable et complémentaire à ImageMagick ou GraphicsMagick ; le service Web G’MIC Online ; et surtout le greffon G’MIC-Qt, intégrable dans de nombreux logiciels de création et d’édition d’images tels que GIMP, Krita, DigiKam, Paint.net, Adobe Photoshop ou Affinity Photo. Ce greffon est l’interface de G’MIC la plus populaire. Il donne aujourd’hui un accès rapide à plus de 640 filtres différents, élargissant considérablement les possibilités de filtres et d’effets offertes par ces logiciels de retouche d’images.

Aperçu du greffon G’MIC-Qt Fig. 1.1. Le greffon G’MIC-Qt en version 3.6, ici utilisé au sein de GIMP 2.10, avec le filtre « Paint With Brush » activé.

2. Les nouveautés du greffon G’MIC-Qt

2.1. Hommage à Sébastien Fourey, développeur de G’MIC-Qt

Avant de décrire la liste des nouveautés de cette version 3.6, nous souhaitons avant tout rendre hommage à notre collègue et ami, Sébastien Fourey, qui était maître de conférence à l’ENSICAEN et qui était le développeur principal du greffon G’MIC-Qt. Le 6 octobre 2024, Sébastien nous a quittés. Tous ceux qui le connaissaient vous le diront : Sébastien était avant tout une personne profondément humaine, généreuse et particulièrement attentive à tous ceux qui l’entouraient. Il était aussi discret et modeste qu’il était doué avec un clavier entre les mains (et c’était quelqu’un de très discret !).

Et même s’il n’a jamais voulu être mis au-devant de la scène, nous voulons ici faire une exception pour mettre en lumière son travail et le rôle majeur qu’il a eu dans le développement du projet G’MIC : c’est grâce à lui que G’MIC-Qt est aujourd’hui un greffon utilisé et apprécié par des milliers de personnes à travers le monde.

Il s’avère qu’il était un lecteur assidu de LinuxFr.org, et nous nous devions donc de lui rendre un hommage sur ce site. Sébastien nous manque profondément. Nous ferons notre possible pour que son œuvre perdure. Repose en paix, Sébastien ! Nous pensons à toi et à ta famille.

Hommage à Sébastien Fourey Fig. 2.1. Texte hommage à Sébastien Fourey, auteur de G’MIC-Qt, visible dans la section « About » du greffon.

2.2. Améliorations générales du greffon

Comme vous vous en doutez, le développement spécifique du greffon G’MIC-Qt a été à l’arrêt depuis octobre dernier. Néanmoins, les derniers ajouts de code réalisés sur le greffon ont rendu possible les choses suivantes :

  • Son code source est désormais compatible avec l’API de plug-in de la nouvelle version majeure de GIMP (la 3.0). Cela a permis d’offrir aux utilisateurs de GIMP un greffon G’MIC-Qt fonctionnel dès la sortie de GIMP 3. Notons qu’assez peu de greffons ont proposé une mise à jour à temps (Resynthesizer, greffon populaire, étant une autre exception). On remercie donc chaleureusement Nils Philippsen et Daniel Berrangé qui ont soumis les patchs activant cette compatibilité avec GIMP 3. Nous continuons en parallèle à maintenir notre greffon pour l’ancienne version (2.10) de GIMP, qui est encore beaucoup utilisée.

  • Le code de G’MIC-Qt devient également compatible avec l’API de la bibliothèque Qt6, la dernière version majeure en date de ce toolkit graphique.

  • L’interface du greffon propose maintenant un outil de prévisualisation des filtres avec séparateur intégré, de manière native. Cette fonctionnalité, accessible via le raccourci clavier CTRL + SHIFT + P, permet de comparer directement l’image avant et après l’application d’un filtre, en affichant les deux versions côte à côte dans la fenêtre de prévisualisation. Cette fonctionnalité existait déjà, mais elle est dorénavant utilisable de manière plus fluide, puisqu’auparavant elle était implémentée indépendamment par chaque filtre (le séparateur de prévisualisation était en fait vu comme un paramètre du filtre, ce qui impliquait un recalcul complet du résultat du filtre même lorsque l’on souhaitait seulement déplacer le séparateur).

Prévisualisation avec séparateur Fig. 2.2.1. Prévisualisation native de filtres avec séparateur intégré dans G’MIC-Qt.

La vidéo suivante montre comment cette fonctionnalité améliorée se présente dans le greffon :

Prévisualisation avec séparateur - vidéo Fig. 2.2.2. Prévisualisation native de filtres avec séparateur intégré dans G’MIC-Qt (vidéo).

2.3. Nouveaux filtres d’images

Les nouveautés principales du greffon G’MIC-Qt se matérialisent donc plutôt sous la forme de nouveaux filtres et effets accessibles pour les utilisateurs. À la sortie de cette version 3.6, c’est 640 filtres/effets différents qui sont proposés dans l’interface du greffon. En ce qui concerne le filtrage d’images, les dernières entrées ajoutées sont les suivantes :

  • Le filtre « Déformations / Warp [RBF] » propose de déformer localement une image en définissant dans un premier temps des points d’ancrage dans la fenêtre de prévisualisation. Puis, en repositionnant ces points de contrôle, on déforme l’image de manière intuitive et interactive, directement dans la fenêtre de prévisualisation. Idéal pour réaliser des retouches rapides ou créer des caricatures amusantes !

Filtre « Warp RBF » Fig. 2.3.1. Le filtre « Deformations / Warp [RBF] » en action dans G’MIC-Qt.

La vidéo suivante montre son utilisation en pratique au sein du greffon G’MIC-Qt pour la déformation d’un visage :

Filtre « Warp RBF » - vidéo Fig. 2.3.2. Le filtre « Deformations / Warp [RBF] » en action dans G’MIC-Qt (vidéo).

  • Le filtre « Repair / Upscale [CNN2x] » a pour but de doubler la résolution d’une image à l’aide d’un réseau de neurones convolutifs léger (CNN), qui a été entrainé pour préserver les détails et les textures des images lors de l’agrandissement. Ce module offre une alternative simple et relativement efficace aux méthodes d’agrandissement plus classiques (en particulier celles qui sont implémentées nativement dans GIMP).

Filtre « Upscale CNN2X » Fig. 2.3.3. Le filtre « Repair / Upscale [CNN2X] » en action dans G’MIC-Qt.

La figure suivante montre justement une comparaison des méthodes classiques d’agrandissement d’images, avec ce nouvel algorithme disponible dans G’MIC-Qt (résultat obtenu en bas à droite) :

Filtre « Upscale CNN2X » - Comparaisons Fig. 2.3.4. Comparaisons des méthodes d’agrandissement d’images avec notre nouvelle méthode « Upscale [CNN2X] ».

Notons que ce filtre illustre à lui seul quelques avancées récentes réalisées pour la nn_lib, qui est la petite bibliothèque interne d’apprentissage machine intégrée à G’MIC : Clipping des gradients, régularisation L2 des poids des réseaux, planificateur Cosine Annealing LR pour le taux d’apprentissage, module de Pixel Shuffling, sont quelques-unes des nouvelles fonctionnalités qui y ont été ajoutées. Cette bibliothèque de gestion de réseaux de neurones n’est pas très puissante (elle n’utilise que le calcul CPU, pas GPU), mais elle offre néanmoins la possibilité de créer des filtres intéressants basés sur des techniques d’apprentissage statistique.

  • Le filtre « Degradations / VHS Filter », est un filtre créé par Hazel Stagner. Comme son nom l’indique, il cherche à recréer l’esthétique caractéristique des vieilles cassettes vidéo VHS : légères distorsions, bruit coloré, lignes parasites et saturation altérée. Ce filtre est idéal pour donner aux images un aspect rétro, évoquant le rendu des vidéos analogiques des années 80–90.

Filtre « VHS Filter » Fig. 2.3.5. Le filtre « Degradations / VHS Filter » en action.

Ce filtre génère un bruit aléatoire, donc l’appliquer plusieurs fois sur une même image donne à chaque fois un rendu différent. On peut donc ainsi synthétiser de petites animations avec un look « analogique - années 90 » du plus bel effet. Les amateurs de Glitch Art apprécieront ! (voyez l’image originale à titre de comparaison).

Filtre « VHS Filter » - vidéo Fig. 2.3.6. Le filtre « Degradations / VHS Filter » appliqué plusieurs fois sur une même image, pour en faire une séquence vidéo de type VHS.

2.4. Nouveaux effets de rendu

De nouveaux effets font également leur apparition dans le greffon, non pas dans le but de modifier une image existante, mais pour créer une nouvelle image ou un motif à partir de zéro :

  • Le filtre « Patterns / Organic Fibers » synthétise des textures évoquant des entrelacements de fibres organiques, en s’appuyant sur l’algorithme de simulation du Physarum polycephalum proposé par Jeff Jones en 2010, et décrit de manière remarquable sur cette page d’Etienne Jacob (allez voir, ça vaut vraiment le détour !). Nous reparlerons de cet algorithme un peu plus loin dans la dépêche (en section 4.2).

Filtre « Organic Fibers » - 1
Filtre « Organic Fibers » - 2 Fig. 2.4.1. Le filtre « Patterns / Organic Fibers » en action, avec deux jeux de paramètres différents.

  • Le filtre « Rendering / Speech Bubble » insère une bulle de bande dessinée sur un calque d’image additionnel, avec une personnalisation possible de la forme de la bulle (rondeur, forme du pied de bulle, etc.), grâce à la présence de différents points de contrôle. Ce filtre offre un moyen rapide d’intégrer des éléments graphiques typiques de la BD dans une image quelconque, comme illustré ci-dessous avec, dans un premier temps, la vue du filtre tel qu’il se présente dans le greffon, suivi d’une vue du résultat dans GIMP où un texte a été inséré dans la dite bulle.

Filtre « Speech Bubble » - 1
Filtre « Speech Bubble » - 2 Fig. 2.4.2. Le filtre « Rendering / Speech Bubble » permet d’ajouter des bulles de dialogue dans vos images.

La vidéo ci-dessous présente ce filtre en action dans le greffon G’MIC-Qt sur une photographie :

Filtre « Speech Bubble » - vidéo Fig. 2.4.3. Le filtre « Rendering / Speech Bubble » en action dans le greffon (vidéo).

  • Le filtre « Rendering / 2.5D Extrusion » simule, à partir d’une forme binaire en entrée, un effet d’extrusion 3D. Il transforme donc rapidement des silhouettes ou des masques en objets visuellement plus consistants, avec un rendu qui évoque du relief, sans devoir passer par un véritable logiciel de modélisation 3D. Les figures suivantes illustrent son utilisation : On crée tout d’abord une forme opaque sur un fond transparent (ici un texte), puis on lui applique le filtre « Rendering / 2.5D Extrusion » de G’MIC-Qt pour créer un rendu façon 3D extrudée. L’angle de rotation, la profondeur de l’extrusion, l’amplitude de l’effet perspective, ainsi que les couleurs des différentes faces sont réglables dans ce filtre.

Filtre « 2.5D Extrusion » - 1
Filtre « 2.5D Extrusion » - 2 Fig. 2.4.4. Le filtre « Rendering / 2.5D Extrusion » en action.

  • Le filtre « Rendering / Fluffy Cloud » génére automatiquement de jolis nuages cotonneux dans vos images. Idéal pour créer des ciels synthétiques, du brouillard, des effets de vapeur éthérée, etc. Ce filtre a été créé par Prawnsushi, contributeur régulier de filtres G’MIC, dont certains filtres avaient été déjà présentés dans notre dépêche précédente. Voici comment ce nouveau filtre se présente lors son ouverture dans le greffon :

Filtre « Fluffly Cloud » - 1 Fig. 2.4.5. Le filtre « Rendering / Fluffy Cloud » dans le greffon _G’MIC-Qt._

En jouant avec les différents paramètres du filtre, on peut obtenir des rendus variés et intéressants :

Filtre « Fluffly Cloud » - 2
Filtre « Fluffly Cloud » - 3 Fig. 2.4.6. Différents rendus de « Rendering / Fluffy Cloud » en faisant varier les paramètres du filtre.

  • Le filtre « Patterns / Stripes » facilite la création de motifs à rayures simples ou complexes. Ce filtre offre de nombreux paramètres pour régler la géométrie des motifs synthétisés, en faisant varier le type de rayures (linéaires, radiales, concentriques), la taille, la couleur ainsi que l’opacité de chaque rayure indépendamment.

Filtre « Stripes » - 1
Filtre « Stripes » - 2
Filtre « Stripes » - 3 Fig. 2.4.7. Trois exemples de motifs à rayures générés par le filtre « Patterns / Stripes ».

  • Le filtre « Patterns / Gradient [from Curve] » n’est pas à proprement parler un nouveau filtre, mais une évolution d’un filtre précédent « Patterns / Gradient [from Line] ». Cette version étendue extrait un dégradé de couleur en parcourant les pixels de l’image, non plus seulement le long d’un segment, mais le long d’une courbe spline cubique par morceau, définie avec jusqu’à 6 points de contrôle, ce qui autorise le suivi de structures très incurvées dans les images, comme l’illustre la figure suivante :

Filtre « Gradient From Curve » Fig. 2.4.8. Le filtre « Patterns / Gradient [from Curve] » extrait les couleurs d’une image localisées le long d’une courbe spline.

  • Et pour en finir avec les nouveautés du greffon, mentionnons le filtre « Rendering / Neon Carpet », un filtre original réalisé par Claude (alias Cli345), contributeur régulier de G’MIC qui avait été interviewé en septembre dernier sur Linuxfr. Ce filtre un peu psychédélique synthétise des motifs lumineux et colorés faisant penser à des tapis fluorescents, comme illustré sur la figure ci-dessous :

Filtre « Neon Carpet » Fig. 2.4.9. Le filtre « Rendering / Neon Carpet », une contribution de Cli435.

Voilà pour ce qui concerne les nouveautés spécifiques au greffon G’MIC-Qt.

3. Améliorations du cœur du logiciel et de sa bibliothèque standard

Passons maintenant à la description du travail réalisé cette année pour l’amélioration du cœur du projet, à savoir l’interpréteur G’MIC et sa bibliothèque standard d’opérateurs. Ce sont forcément des améliorations un peu moins visibles pour l’utilisateur final, mais elles sont toutes aussi importantes, car elles consolident ou améliorent des fonctionnalités qui peuvent ouvrir plus tard la porte au développement de nouveaux filtres originaux.

3.1. Optimisation de l’interpréteur

Le moteur interne de G’MIC a bénéficié d’une série d’optimisations notables. Plusieurs améliorations internes, concernant l’analyse, la détection et la concaténation de chaînes de caractères ou encore la recherche de valeurs min/max dans de grandes images (désormais parallélisée avec OpenMP), ont permis d’augmenter légèrement les performances (gain moyen d’environ 2,5% sur le temps d’exécution de scripts G’MIC). Ce n’est pas un gain spectaculaire, mais ça se prend (et après 17 ans à écrire du code pour cet interpréteur, il aurait été presque inquiétant d’obtenir un gain beaucoup plus important ! 😊).

Sous Windows, la compilation de l’interpréteur utilise désormais Clang et sa libc associée, ce qui produit des exécutables légèrement plus optimisés.

3.2. Améliorations du moteur de rendu 3D

Le moteur de rendu 3D intégré de G’MIC a également été amélioré, avec l’ajout du z-clipping pour les primitives hors champ, un calcul d’éclairage affiné, la correction du rendu de normales 3D avec le mode d’éclairage Phong, et l’ajustement des paramètres de réflexion spéculaire.

Une nouvelle commande multithreaded3d (raccourcie en mt3d) permet désormais d’activer ou désactiver le rendu 3D multi-threadé (là encore par OpenMP). Cela permet d’accélérer considérablement l’affichage de gros maillages.

Mentionnons au passage l’apparition de la commande normals3d dans la bibliothèque standard, dont le rôle est d’estimer les vecteurs normaux unitaires d’un maillage 3D, que ce soit au niveau des sommets ou des primitives. La figure suivante illustre par exemple l’utilisation de cette commande pour la visualisation de vecteurs normaux à la surface d’un tore 3D :

Commande 'normals3d' Fig. 3.2.1. La commande normals3d permet d’estimer les vecteurs normaux 3D aux sommets ou aux faces d’un maillage 3D.

3.3. Améliorations de l’évaluateur d’expressions mathématiques

L’évaluateur d’expressions mathématiques intégré à G’MIC est l’une des pièces maîtresses du projet (en traitement d’images, on doit souvent réaliser beaucoup de calculs…). Il continue lui aussi de s’enrichir et de gagner en efficacité.

Sans rentrer dans trop de détails techniques, notons que l’analyse syntaxique des expressions a été optimisée grâce à une première passe dédiée à la détection de certains opérateurs, afin d’accélérer leur traitement ultérieur. De nombreuses fonctions font leur apparition, parmi elles, epoch() pour convertir une date en temps Unix, frac() pour extraire la partie fractionnaire d’un nombre, ou encore wave() qui permet de générer différentes fonctions ou images périodiques (sinusoïdales, triangulaires, etc.), comme illustré sur la figure ci-dessous :

Fonction 'waves()' - 1
Fonction 'waves()' - 2 Fig. 3.3.1. La nouvelle fonction waves() permet de générer facilement des fonctions d’ondes, fonctions dont la fréquence d’apparition (hoho ! calembour de traiteur de signal !) est assez élevée dans les opérateurs de traitement d’images.

3.4. Amélioration des entrées-sorties

Quelques améliorations sont également à signaler au niveau de la gestion des entrées-sorties :

  • Le format TIFF bénéficie désormais d’une sauvegarde plus rapide pour les grosses images (par exemple, les images médicales volumiques). Un choix élargi de modes de compression de sortie est également disponible pour ce format d’images.
  • G’MIC prend désormais en charge de manière native la lecture et l’écriture des fichiers au format WebP (cette fonctionnalité étant activée par défaut sur les paquets binaires que l’on propose pour Linux).
  • Notons enfin qu’un travail de portage du code pour l’affichage des fenêtres de G’MIC, vers la bibliothèque SDL3, a été amorcé. Cela devrait permettre à terme une meilleure compatibilité de G’MIC avec le système d’affichage natif de chaque distribution Linux (en particulier celles tournant sous Wayland).

3.5. Sprite Packing

En ce qui concerne l’évolution de la bibliothèque standard de G'MIC, la nouveauté la plus significative concerne la réécriture de la commande pack_sprites, qui implémente un algorithme d’«empaquetage» d’objets. Pour rappel, ce type d’algorithmes permet de générer des visuels composés d’ensemble d’imagettes disjointes placées de telle façon à reproduire une forme binaire (un masque) de géométrie quelconque.

Cette ré-implémentation est à la fois plus rapide et plus efficace (utilisant de meilleures heuristiques de placement), et permet d’optimiser l’agencement des imagettes à différentes échelles et orientations tout en réduisant le temps de génération. Une illustration valant mieux qu’un long discours, voici le genre d’images amusantes que cet algorithme est capable de produire facilement :

Commande 'pack_sprites' - 1
Commande 'pack_sprites' - 2 Fig. 3.5.1. Deux exemples de génération possibles utilisant la commande « pack_sprites ».

Les sprites à empaqueter peuvent être de formes quelconques, comme des lettres (image du haut de la figure précédente), des mots entiers (image du bas), etc.

Et quoi de mieux qu’un exemple concret pour montrer la facilité déconcertante 😉 d’utilisation de cette commande pack_sprites ? Le but ici est d’écrire le texte « ♥LinuxFR♥ » de telle sorte que chaque lettre soit générée comme un empaquetage d’elle-même ! (idée suffisamment saugrenue pour qu’un filtre « clé en main » réalisant ceci n’existe pas déjà !).
Le script G’MIC suivant (fichier test_pack_sprites.gmic), une fois rendu exécutable, réalise cette tâche :

#!/usr/bin/env gmic

str="0LinuxFR0"
repeat size(['$str']) {
  l:=['$str'][$>]
  0 text. {`$l`},0,0,${"font titanone,480"},1,1 ==. 0 channels. -3,0
  0 text. {`$l`},0,0,${"font titanone,64"},1,${"-RGB"},255
  pack_sprites.. .,5,25,3,1 remove.
}
append x to_rgb
output out.png
display

La génération prend quelques secondes, et aboutit à une image de ce type :

Commande 'pack_sprites' - 3 Fig. 3.5.2. Résultat du lancement du script test_pack_sprites.gmic.

Amusant, n’est-ce pas ? Comment feriez-vous pour réaliser la même chose dans un autre langage (et combien de lignes de code cela prendrait-il ? 😉).

4. Utilisation de G’MIC pour le « Creative Coding »

L’exemple précédent est réellement représentatif des possibilités d’écriture de scripts personnalisés permis par G'MIC. Saviez-vous, par exemple, que l’ensemble des 640 filtres disponibles dans le greffon G’MIC-Qt sont justement écrits dans ce langage ?

G’MIC peut ainsi être considéré comme une boite à outils étoffée pour les personnes souhaitant se frotter au code créatif et à l'art génératif. Nous vous proposons ci-dessous quelques autres exemples simples de génération d’images par scripts G’MIC, afin de donner un aperçu rapide des possibilités et de la concision de ce langage.

4.1. Exemples de génération d’images

  • Inversion d’un damier coloré : On s’inspire ici de cette excellente vidéo récente, réalisée par le vulgarisateur mathématicien Mickaël Launay (Micmaths). En G’MIC, la fonction suivante permet de synthétiser une image équivalente à celle montrée dans la vidéo (mais en quatre couleurs au lieu de deux).
invert_checkerboard :
  4096,4096,1,1,"
    L = clog(20*([x,y]/w - 0.5));
    P = cexp([log(40/exp(L[0])),L[1]]);
    85*xor(P[0]%4,P[1]%4)"
  map 6 rescale2d 50%

Inversion d’un damier coloré Fig. 4.1.1. Génération d’un damier inversé, avec la commande personnalisée invert_checkerboard.

  • Cercles d’Apollonius : Dans cet exemple, il s’agit d’empaqueter des cercles de plus en plus petits dans un cercle de base, pour générer des images fractales. La fonction G’MIC réalisant cette tâche est la suivante :
apollonian_gasket :

  # Init.
  siz=1280 rad:=$siz/2.2
  $siz,$siz,1,2
  circle {[$siz,$siz]/2},$rad,1,1
  repeat 5 { circle {[$siz,$siz]/2+0.537*$rad*cexp([0,90°+$>*72°])},{0.316*$rad},1,0,{2+$>} }

  # Iterate.
  ind=4 e "  > Computing"
  do {
    sh 0 +distance. 0 x,y,r:="x = xM; y = yM; [ x,y,i(x,y) - 1 ]" rm[-2,-1]
    circle $x,$y,$r,1,0,$ind ind+=1
    e "\r  > Computing "{`c=arg0(int($>/10)%4,124,47,45,92);[c,c==92?92:0]`}
  } while $r>3

  # Decorate.
  k. channels 100%
  +n. 0,255 map. hot
  l[0] { g xy,1 a c norm != 0 * 255 to_rgb }

  max rs 80%

Et voici le résultat :

Cercles d’Apollonius Fig. 4.1.2. Génération de cercles d’Apollonius, avec la commande personnalisée apollonian_gasket.

  • Gaussiennes 3D : On cherche ici à dessiner de petites fonctions gaussiennes anisotropes 3D de différentes tailles, orientations et couleurs dans un volume 3D discret, en s’arrangeant pour garantir une périodicité de l’image suivant l’axe z (l’axe de la profondeur). Puis, on transforme les coupes de ce volume en frames d’une vidéo, pour obtenir l’animation qui suit.
gaussians3d :
  180,180,160,3
  2000,1,1,1,":
    draw_gauss3d(ind,xc,yc,zc,u,v,w,siz,anisotropy,R,G,B,A) = (
      unref(dg3d_mask,dg3d_one,dg3d_rgb,dg3d_isiz2);
      dg3d_vU = unitnorm([ u,v,w ]);
      dg3d_vUvUt = mul(dg3d_vU,dg3d_vU,3);
      dg3d_T = invert(dg3d_vUvUt + max(0.025,1 - sqrt(anisotropy))*(eye(3) - dg3d_vUvUt));
      dg3d_expr = string('T = [',v2s(dg3d_T),']; X = ([ x,y,z ] - siz/2)/siz; exp(-12*dot(X,T*X))');
      dg3d_mask = expr(dg3d_expr,siz,siz,siz);
      dg3d_rgb = [ vector(##siz^3,R),vector(##siz^3,G),vector(##siz^3,B) ];
      const dg3d_isiz2 = int(siz/2);
      draw(#ind,dg3d_rgb,xc - dg3d_isiz2,yc - dg3d_isiz2,zc - dg3d_isiz2,0,siz,siz,siz,3,A/255,dg3d_mask);

      # Trick: These two lines allow to generate a perfectly looping animation.
      draw(#ind,dg3d_rgb,xc - dg3d_isiz2,yc - dg3d_isiz2,zc - dg3d_isiz2 + d#0/2,0,siz,siz,siz,3,A/255,dg3d_mask);
      draw(#ind,dg3d_rgb,xc - dg3d_isiz2,yc - dg3d_isiz2,zc - dg3d_isiz2 - d#0/2,0,siz,siz,siz,3,A/255,dg3d_mask);
    );

    X = [ u([w#0,h#0] - 1),u(d#0/4,3*d#0/4) ];
    U = unitnorm([g,g,g]);
    siz = v(5);
    anisotropy = u(0.6,1);
    R = u(20,255);
    G = u(20,255);
    B = u(20,255);
    A = u(20,255)/(1 + siz)^0.75;

    siz==0?draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],11,anisotropy,R,G,B,A):
    siz==1?draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],21,anisotropy,R,G,B,A):
    siz==2?draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],31,anisotropy,R,G,B,A):
    siz==3?draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],41,anisotropy,R,G,B,A):
    siz==4?draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],51,anisotropy,R,G,B,A):
           draw_gauss3d(#0,X[0],X[1],X[2],U[0],U[1],U[2],61,anisotropy,R,G,B,A)"
  rm.
  rs 250%,250%,6 c 0,255 normalize_local , n 0,255
  slices {[d/4,3*d/4-1]}

Gaussiennes 3D - vidéo Fig. 4.1.3. Volume de gaussiennes 3D anisotropes, vues comme une séquence vidéo.

Regardez ça en plein écran pendant 20 minutes avant d’aller vous coucher, en écoutant du Pink Floyd, et je vous garantis une bonne nuit de sommeil !

  • Cube roulant : Comme mentionné en section 3.2, G’MIC possède son propre moteur de rendu 3D, que nous utilisons donc ici pour générer cette animation simple et qui boucle parfaitement :

Cube roulant - vidéo Fig. 4.1.3. Animation d’un cube 3D roulant.

Le code source de cet effet est un peu plus long que pour les exemples précédents, et nous ne l’intégrons donc pas directement dans cette dépêche. Mais en 47 lignes seulement, cela reste tout à fait raisonnable 😊 !

Et si comme moi, vous prenez plaisir à regarder ou réaliser des images ou animations amusantes/étranges qui sont générées en quelques lignes de code seulement, alors n’hésitez pas à aller jeter un œil au fil de discussion dédié, sur le forum officiel de G’MIC : Creative Coding with G’MIC.

4.2. La série « G’MIC Adventures ».

Les possibilités offertes par G’MIC pour le code créatif nous ont récemment décidé à initier une petite série de dépêches, intitulées « G’MIC Adventures ». L’idée de cette série est d’expliquer et d’illustrer les différentes étapes qui vont du concept à l’implémentation d’un effet de code créatif sous forme d’un script G’MIC. Aujourd’hui, cette série comporte seulement 4 épisodes, mais nous espérons l’enrichir dans le futur. Ces épisodes sont les suivants :

Arbre fractal 3D Fig. 4.2.1. Génération d’un arbre fractal 3D par G’MIC, réimporté ensuite sous Blender.

Arbre fractal 3D - vidéo Fig. 4.2.2. Exemple d’arbre fractal 3D généré par G’MIC (vidéo).

Mousse de forêt Fig. 4.2.3. Espèce de mousse de forêt synthétique, générée par agrégation de particules en 3D. L’inhalation volontaire de vapeurs provenant de cette mousse est fortement déconseillée !

  • G’MIC Adventures #4: Physarum Transport Networks : Cet épisode explore la réalisation d’un autre système particulaire, l’algorithme Physarum imaginé dans ce papier de Jeff Jones, en 2010. Ici, on lance des millions de particules qui s’auto-organisent pour suivre un chemin qui devient commun à toutes les particules au bout d’un certain nombre d’itérations, ce qui permet de générer des animations 2D tout à fait étonnantes, comme celles-ci par exemple :

Danse du feu - 1
Danse du feu - 2 Fig. 4.2.4. Danses de filaments enflammés, générées par l’algorithme Physarum en 2D.

Dans cet épisode, nous proposons également une extension 3D de cet algorithme, ce qui permet de générer ce type d’animation :

Physarum 3D
Fig. 4.2.4. Évolution de l’algorithme Physarum étendu en 3D.

Tous ces épisodes cherchent à montrer que G’MIC est une boite à outils générique, plutôt sympa à utiliser, pour le prototypage créatif destiné à la génération d’images et d’animations !

5. Ressources additionnelles

Nous voilà déjà arrivés à la cinquième section de cette dépêche, signe qu’il est probablement temps de la terminer au plus vite 😉. Pour finir, voici donc quelques informations et liens supplémentaires pour approfondir la découverte du projet G’MIC :

  • Mentionnons tout d’abord la parution de la publication « G’MIC: An Open-Source Self-Extending Framework », de D. Tschumperlé, S. Fourey et G. Osgood, en janvier 2025 dans le journal JOSS (The Journal of Open Source Software). Dans cet article sont décrites les motivations générales du projet et une vue d’ensemble de son architecture globale et de quelques-unes de ses possibilités. Cela permet aussi au projet G'MIC d’avoir son article « de référence » dans une revue scientifique (donc pouvoir être cité plus facilement).

Article JOSS

6. Conclusions et perspectives

La sortie de cette version 3.6 (et plus généralement l’année 2025) représente une étape importante dans la vie du projet G'MIC.

Tout d’abord parce qu’on se rend bien compte qu’après 17 ans de développement, G’MIC est maintenant stable, et qu’il est peut-être plus temps d’en valoriser les facettes existantes, plutôt que de chercher à implémenter à tout prix de nouvelles fonctionnalités. D’autre part, car la disparition de l’ami Sébastien, en plus d’avoir été un choc émotionnel majeur, risque de rendre difficile la maintenance et l’évolution future du greffon G’MIC-Qt. Et enfin, car avec la démocratisation de l’IA générative, les domaines de l’analyse, du traitement et de la génération d’images (notamment à des fins créatives) sont en profonde mutation, et que les fonctionnalités de G’MIC pourraient très bien être considérées comme obsolètes d’ici quelques années (ou pas 😊).

Au final, que d’incertitudes et de questionnements ! Cela rend floues les directions à prendre pour l’évolution de G’MIC, d’autant que s’occuper d’un tel projet requiert beaucoup d’investissements en temps, et qu’en même temps, sa valorisation financière est aujourd’hui inexistante.

Actuellement, G’MIC est téléchargé un peu plus de 1000 fois par jour depuis la page web principale du projet (donc sans compter les installations tierces : via l’installation de Krita, via les paquets officiels des distributions, etc.). C’est un chiffre très honorable pour un logiciel libre de ce type, développé au sein d’un laboratoire public de recherche tel que le GREYC, et qui plus est, qui n’est plus maintenu que par une seule personne.

À court terme, on se focalisera probablement sur la promotion et la visibilité du cadriciel, la maintenance du code et l’animation de la communauté, par exemple en écrivant quelques tutoriels illustrant ses nombreuses applications potentielles dans les domaines variés liés à l’imagerie numérique : retouche photographique, illustration, peinture numérique, imagerie scientifique (médical, astronomie, biologie, matériaux), création graphique, art génératif, etc.

À long terme, peut-on raisonnablement espérer faire plus de G’MIC avec ce peu de ressources ?
L’avenir nous le dira !

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Incident du 26 août 2025 ayant touché les serveurs de production et de développement

Il y a exactement deux mois, un incident était survenu suite à un redémarrage brutal du serveur hébergeant les conteneurs de production et de développement ayant entraîné une attribution inattendue d’adresses IP. Et des réponses techniques 502 Bad Gateway pour notre lectorat.

Ce 26 août, vers 15:22, un message peu engageant est arrivé par pneumatique sur nos téléscripteurs (via Signal pour être précis) : « Tiens c’est bizarre j’ai perdu accès au site. Et au serveur oups. » L’après-midi et la soirée furent longues.

Sommaire

Premier diagnostic

Le serveur répond au ping et permet les connexions TCP port 22, mais pas le SSH. Et les services web ne répondent plus. Souci matériel ? Noyau en vrac ? Attaque en cours ? Les spéculations vont bon train.

La connexion au serveur revient par intermittence, permettant à un moment d’exécuter quelques commandes, à d’autres d’attendre longuement pour l’affichage d’un caractère ou l’exécution de la commande tapée.

Le premier contact réétabli avec le serveur est assez clair (une forte charge) :

$ uptime
15:06:59 up 2 days,  2:54,  1 user,  load average: 50,00, 205,21, 260,83

(dernier redémarrage le week-end précédent, mais surtout une charge système moyenne respectivement de 50, 205 et 261 sur les 1, 5 et 15 dernières minutes)

Initialement on suppose qu’il s’agit d’un trop grand nombre de requêtes ou de certaines requêtes tentant des injections de code sur le site (bref le trafic de fond plutôt habituel et permanent), et on ajoute des règles de filtrage péniblement et lentement pour bloquer les IP qui ressortent le plus dans nos logs.

Le site est alors inaccessible pendant plusieurs périodes. On arrête et relance ensuite plusieurs fois les services en pensant avoir ajouté suffisamment de filtrage, mais rapidement le serveur se retrouve englué. Les services sont alors arrêtés plus longuement le temps d’analyser les logs au calme. Au calme inclut notamment ne pas juste disposer d’une connexion ssh depuis un smartphone, mais plutôt d’un clavier et d’un grand écran par exemple, de l’accès à tous les secrets et toute la documentation aussi.

Finalement le trafic n’est pas énorme (en volume total) et si les requêtes hostiles sont bien présentes, rien ne semble inhabituel. Par contre les processus de coloration syntaxique partent en vrille, consommant chacun un processeur et aspirant allègrement la mémoire disponible. Avant d’être éliminés par le noyau Linux.

La console est remplie d’élimination de processus de ce type :

Le plein d’OutOfMemory

Mais si rien n’a changé niveau logiciel sur le conteneur LXC de production et si les requêtes ne sont pas inhabituelles, qu’est-ce qui peut bien écrouler le serveur et créer ces processus gourmands ?

Eh bien des requêtes habituelles…

Pendant les phases d’attente lorsque le serveur ne répondait plus vraiment, nous avons noté qu'une nouvelle entrée de suivi a été créée (merci BAud et merci RSS/Atom pour nous avoir permis de la voir alors que le serveur ne répondait déjà plus). Elle indique que la coloration syntaxique ne marche plus sur le site. Notamment l’exemple donné dans la documentation.

Pourtant le rendu fonctionne en testant en ligne de commande avec pygmentize.

Mais oui en testant l’exemple donné via le site, il est créé un processus Python2 pygment qui commence à se gaver de ressources.

Et en regardant les différents contenus et commentaires créés sur le site autour de l’incident, en filtrant sur ceux contenant des blocs avec de la coloration syntaxique, la dépêche (alors en préparation) sur G'MIC 3.6 apparaît. Et en testant cette dépêche, il est bien créé quatre processus Python2 pygment qui se gavent de ressources et ne semblent jamais vouloir se terminer. À rapprocher par exemple d’une page qui a été servie en 6785.9978s.

4 processus gourmands

OK, le souci vient de requêtes tout à fait habituelles de coloration syntaxique, reste à comprendre pourquoi ces processus tournent mal.

La boucle sans fin

Un petit strace pour suivre les appels système en cours sur un des processus infernaux relève une boucle assez violente :

(...)
close(623199355)                        = -1 EBADF (Bad file descriptor)
close(623199356)                        = -1 EBADF (Bad file descriptor)
close(623199357)                        = -1 EBADF (Bad file descriptor)
(...)

Il semble y avoir une immense itération sur des descripteurs de fichiers, en vue de les fermer, mais à l’aveugle, sans savoir s’ils existent réellement.

En regardant le code du composant utilisé (pygments), il semble n'y avoir qu'un seul appel à close() :

# close fd's inherited from the ruby parent
        import resource
        maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1]
        if maxfd == resource.RLIM_INFINITY:
            maxfd = 65536

        for fd in range(3, maxfd):
            try:
                os.close(fd)
            except:
                pass

Donc on itère sur tous les descripteurs entre 3 et le maximum déterminé…

>>> import resource
>>> print(resource.getrlimit(resource.RLIMIT_NOFILE)[1])
524288
>>> print(resource.RLIM_INFINITY)
-1

Un demi-million de fois ici donc. L’objectif initial de la boucle est de fermer les descripteurs de fichiers provenant du processus Ruby père, issue du fork via Open3.popen3. La version suivante du composant la remplace d’ailleurs par un ajout de l'option :close_others, qui précisément « modifie l’héritage [des descripteurs de fichiers du processus parent] en fermant les non-standards (numéros 3 et plus grands) ».

Sur une Debian 12, la limite du nombre de fichiers par défaut, c’est 1 048 576. C’est déjà probablement bien plus que la valeur qui prévalait à l’époque où a été écrit la boucle Python (on avait des limitations à 4096 à une époque reculée). Mais il s’avère que durant le week-end l’hôte du conteneur de production a été migré en Debian 13. Sans modification du conteneur de production pensions-nous. Sans modification directe du conteneur de production. Mais quid d’une modification indirecte ? Par exemple si la limite par défaut des « Max open files » était passée à 1 073 741 816 sur l’hôte, soit 1024 fois plus que quelques jours auparavant. Et donc des boucles nettement plus longues voire sans fin, sans libération de mémoire.

On ne peut mettre à jour le composant pygments dans l’immédiat, mais on peut limiter les dégâts en abaissant la limite du nombre de descripteurs de fichiers à quelque chose de raisonnable (i.e. on va gaspiller raisonnablement des cycles CPU dans une boucle un peu inutile mais brève…). Une édition de /etc/security/limits.conf, un redémarrage du conteneur de production et on peut vérifier que cela va nettement mieux avec cette réparation de fortune.

Une dernière page d’epub ?

Le conteneur LXC portant le service epub de production a assez mal pris la surcharge du serveur, et vers 20h08, systemd-networkd sifflera la fin de la récré avec un eth0: The interface entered the failed state frequently, refusing to reconfigure it automatically (quelque chose comme « ça n’arrête pas d’échouer, débrouillez-vous sans moi »). Le service epub est resté en carafe jusqu’au 27 août vers 13h31 (merci pour l’entrée de suivi).

Voir ce commentaire sur la dépêche de l’incident précédent expliquant la séparation du service epub et du conteneur principal de production (en bref : dette technique et migration en cours).

Retour en graphiques sur la journée

Le serveur était très occupé. Au point de n’avoir pas le temps de mettre à jour les graphiques de temps en temps.

Rétrospectivement les processeurs du serveur ont travaillé dur : 140 de charge sur le graphique (mais avec des pics jusque 260 d’après la commande uptime), contre moins de 5 en temps normal (un petit facteur de 28 à 52   ô_Ô)

Charge CPU

Et l’utilisation de la mémoire montre aussi de brutaux changements de comportement : libération intempestive de mémoire (Free, en vert), utilisation mémoire plus importante que d’habitude (Used, en jaune), là où le comportement normal est d’avoir le maximum en cache (Cached, en orange) et des processus tellement peu consommateurs en RAM que cela n’apparaît normalement pas.

Utilisation mémoire

Mesures préventives et correctives

Dans les actions en cours ou à prévoir :

  • mettre à jour la documentation pour disposer facilement et rapidement des informations pour les connexions aux cartes d’administration ou les procédures de blocages d’IP
  • faire la montée des versions des composants (yapuka, épineux sujet de la dette technique à éponger)
  • vérifier l’efficacité des limitations CPU/mémoire mises sur certains conteneurs LXC et les étendre aux autres
  • mettre des limites sur des processus particuliers (comme ceux de pygments)
  • ajouter le déploiement des limites par utilisateur dans le code Ansible
  • corriger la collecte rrd des métriques concernant les interfaces réseau
  • remonter les alertes OOM qui ne sont pas normales
  • comprendre la surconsommation mémoire ? (les boucles actives expliquent la consommation processeur, mais pour la mémoire ?)

Bonus inattendu pour l’incident précédent du 26 juin 2025

De façon cocasse, ce nouvel incident et le temps passé à parcourir les différents logs ont permis de retrouver les infos de la carte d’administration distante et d’expliciter l’origine du redémarrage serveur intempestif. À quelque chose malheur est bon, si on peut dire. Ceci n’est pas une invitation pour un prochain incident.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

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

  •  

Android n’autorisera plus que les applications des développeurs autorisés

Google a annoncé qu'à partir de 2027, seules les applications signées par des développeurs « vérifiés » par Google pourraient s'installer sur les systèmes Android certifiés. Si ce plan est réalisé, il sera impossible de distribuer une application Android sans donner ses données personnelles à Google, et Google pourra interdire à n'importe qui de distribuer des applications Android.

N'est-ce pas déjà le cas ?

Non. Il est vrai que pour distribuer des applications à travers le Play Store, il faut se faire valider par Google. Par contre, il est possible de distribuer sans l'accord de Google des applications par d'autres canaux, par exemple à travers les plates-formes indépendantes comme F-Droid, ou simplement en mettant une application à disposition sur une page web.

Ça ne concerne que les systèmes Android certifiés, qu'est-ce que ça veut dire ?

Android consiste de deux parties : la partie libre, nommée AOSP, et les Google Mobile Services (GMS). AOSP est libre, et n'importe quel constructeur peut donc l'utiliser. Les GMS sont propriétaires, et pour avoir le droit de les distribuer, un constructeur doit obéir à un certain nombre de règles et se faire certifier par Google.

Comme la plupart des applications propriétaires ne fonctionnent pas sans les GMS, la quasi-totalité des systèmes Android distribués dans le commerce sont certifiés.

Qu'est-ce que ça entraîne pour les distributions alternatives d'Android ?

Les distributions alternatives d'Android (LineageOS, e/OS, CalyxOS, GrapheneOS, etc.) sont basées sur AOSP, et ne dépendent pas de la certification. Elles pourront donc continuer à autoriser l'installation des applications des développeurs non-validés.

Qu'est-ce que ça entraîne pour les applications libres ?

Les développeurs d'applications libres ne pourront plus faire installer leur logiciel sans l'autorisation de Google. Pour certains, ça ne changera probablement pas grand chose, pour d'autres, ça confinera leurs applications aux distributions alternatives d'Android.

Par contre, ça compliquera la contribution au logiciel libre : un contributeur à une application ne pourra plus tester ses changements sur un système Android du commerce, sauf s'il a accès aux clés privées validées par Google.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Revue de presse de l’April pour la semaine 34 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.

[ZDNET] 10 applications open source que je recommande à tous les utilisateurs Windows de télécharger gratuitement

✍ Jack Wallen, le jeudi 21 août 2025.

L’open source n’est peut-être pas la première chose qui vous vient à l’esprit avec Windows. Mais ces outils gratuits peuvent considérablement booster votre productivité.

[l'Humanité.fr] Fête de l'Humanité: climat, industrie et logiciel libre au menu de l'espace sciences et numérique

✍ Anna Musso, Pierric Marissal, le dimanche 17 août 2025.

Fort du succès de ces deux dernières années, l’espace sciences et numérique vous accueille à nouveau avec des animations, des conférences et des débats en présence de personnalités du monde scientifique.

[Place Gre'net] Un guide pour inciter les Grenoblois à adopter les logiciels libres (€)

✍ Joël Kermabon, le lundi 11 août 2025.

La Ville de Grenoble lance un guide pratique pour inciter ses habitants à adopter les logiciels libres. Disponible en version papier et en ligne, ce kit offre conseils, solutions et ressources locales pour naviguer autrement sur ordinateur ou smartphone. Objectif : réduire la dépendance aux géants du numérique, prolonger la durée de vie des équipements et favoriser un usage plus éthique et écologique des technologies de l’information.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Agenda du Libre pour la semaine 35 de l'année 2025

Calendrier Web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces 15 événements (France: 13, Suisse: 2) est en seconde partie de dépêche.

Sommaire

[FR Beauvais] les outils bureautiques libres : LibreOffice, Firefox, Thunderbird – Le lundi 25 août 2025 de 09h30 à 12h00.

En présentiel ou en visio

Le navigateur Firefox:

  • Personnalisation: affichage des menus et de la barre personnelle (importance de travailler en local et de ne pas faire appel systématiquement aux moteurs de recherches)
  • Survol des menus
  • Page(s) d’accueil à la carte
  • Moteur de recherche par défaut
  • Gestion des marque-page (favoris)
  • Historique de navigation
  • Historique des téléchargements
  • Suppression des cookies
  • Gestion des identifiants et des mots de passe
    L’avantage de gérer sa messagerie avec logiciel comme Thunderbird est de pouvoir configurer plusieurs comptes de fournisseurs différents dans la même fenêtre et de pouvoir travailler en mode déconnecté, contrairement au webmail. Au programme:

  • Paramètres de base: destinataires, objet, corps du message, pièce jointe

  • Préférences personnelles

  • Import/export du carnet d’adresses

  • Listes de distribution

  • Règles de tri

  • Accusés de réception

  • Chiffrement des messages
    En présentiel à l’Écospace et en visio à l’adresse https://url.oisux.org/samedi-du-libre

  • Mot de passe principal

  • Tentative d’accéder aux mots de passe par l’arborescence https://support.mozilla.org/fr/kb/profils-ou-firefox-conserve-donnees-utilisateur#w_quelles-informations-sont-stockaees-dans-mon-profila tentative d’ouverture avec gedit, vim, « DB Browser for SQLite »)

  • Blocage de contenu, contrôle de la publicité et des mouchards

  • Modules complémentaires: enregistrement des vidéos

  • Sauvegarde et duplication des paramètres et des données d’un poste Linux ou Windows à un autre poste Linux ou Windows

  • Synchronisation des paramètres et des données sur plusieurs postes (nécessite de créer un compte chez Firefox (n’entraine pas de pub)

La messagerie avec Thunderbird:

  • Avantages d’un client mail comme Thunderbird: configuration de plusieurs comptes dans la même interface et possibilité de travailler en mode déconnecté contrairement au webmail
  • Configuration d’un compte mail dans Thunderbird
  • Destinataires, objet, corps du message, pièce(s) jointe(s)
  • Mode texte ou HTML, destinataires en copie automatique, paramètres d’affichage, fonctions de recherche, archivage, indésirables, accusés de réception, signatures automatiques, modèles
  • Import/export du carnet d’adresses sous plusieurs formats
  • Listes de distribution
  • Gestion des dossiers, règles de tri et réponses automatiques
  • Sauvegarde et restauration des mails, des adresses et des paramètres
  • Chiffrement/Déchiffrement des messages
  • https://www.oisux.org/index.php/les-supports/documentation/les-solutions-de-messagerie-respectueuses-des-donnees-personnelles

Le traitement de texte avec LibreOffice Writer:

  • Saisie de texte, connaissance du clavier
  • Mise en forme simple
  • Enregistrement, format de fichier
  • Mise en forme élaborée
  • Page de garde
  • Pied de page
  • Sommaire automatisé
  • Publipostage
  • Texte pour s’entraîner: https://www.faux-texte.com/lorem-ipsum-15.htm

Le tableur avec LibreOffice Calc:

  • Fonctionnalités de base
  • Saisie de données
  • Opérations simples
  • Gestion des feuilles de calcul
  • Références absolues
  • Répéter les titres
  • Nommer une cellule
  • Protection des cellules
  • Tri et filtres
  • Fonction Si
  • Fonction Recherche

LibreOffice Draw

Les outils du quotidien: Capture d’écran, capture vidéo, compression, reconnaissance de texte, coffre-fort de mots de passe, modification de pdf, cartographie

modification de PDF: https://peertube.fr/w/rQmdNoJhEoWPh3PfLn8kFw

capture d’écran avec Flamshot: https://peertube.fr/w/ijPpc3zL4jaax3CeFGaWrV

[FR Vallauris – Sophia Antipolis] Rencontre Accès Libre – Le lundi 25 août 2025 de 18h00 à 21h00.

Rencontres Accès Libre

Certains les appellent «install party», d’autres encore «Soirées Linux», mais les Rencontres Accès Libre sont tout cela en même temps, et bien plus encore…

Entre autres, c’est l’occasion de:

  • discuter, échanger, expliquer;
  • installer des logiciels libres;
  • et, toute autre idée coopérative de solidarité à but non lucratif!

C’est un évènement organisé conjointement par Linux Azur et le SHL.

[FR Beauvais] La solution cloud Nextcloud – Le mardi 26 août 2025 de 09h30 à 12h00.

En présentiel ou en visio

Au programme:

  • Session sur le serveur et découverte de l’environnement.
  • Synchronisation en local de ses données personnelles, configuration des clients Windows, Linux, Androïd et Iphone.
  • Historique des versions de document.
  • Utilisation de Nextcloud dans le cadre d’une organisation: groupes et partages
  • Tests sur les partages: lecture, modification, re-partage.
  • Utilisation du planning, de la messagerie et du carnet d’adresses
  • Exploration des solutions serveur (hébergement, auto-hébergement).

  • Ecospace, Ecospace, 136 rue de la Mie au Roy, Beauvais, Hauts-de-France, France

  • https://www.oisux.org

  • oisux, logiciels-libres, atelier, nextcloud, cloud

[FR Beauvais] Les outils graphiques pour réaliser des supports de com – Le mercredi 27 août 2025 de 09h30 à 12h00.

Atelier en présentiel ou en visio

Venez apprendre les bases du logiciel Gimp pour effectuer des retouches photos… Alternative gratuite et libre à Photoshop.

Avec ce logiciel simple d’utilisation pour une prise en main rapide et basique, vous pourrez redimensionner vos images, transformer les couleurs, appliquer des filtres, modifier de nombreux paramètres et bien d’autres choses encore.

En présentiel ou en visio (adresse du salon: https://url.oisux.org/samedi-du-libre)

[FR Le Mans] Permanence du mercredi – Le mercredi 27 août 2025 de 12h30 à 17h00.

Assistance technique et démonstration concernant les logiciels libres.

Il est préférable de réserver votre place à contact (at) linuxmaine (point) org

Planning des réservations consultableici.

[FR Lyon] Meetup Python de l’été – Le mercredi 27 août 2025 de 18h00 à 21h00.

L’été, pas de présentation !

C’est le moment de se retrouver autour d’un verre pour papoter Python ou autre et toujours dans le respect de la charte de l’AFPy !

[FR Beauvais] Montage vidéo avec Openshot – Le jeudi 28 août 2025 de 09h30 à 12h00.

En présentiel ou en visio

OpenShot est un éditeur vidéo multi-plateforme: https://www.openshot.org/fr/

On abordera les fonctionnalités suivantes:

[FR Quimper] Redistribution gratuite d’ordinateurs de bureau sous Debian – Le jeudi 28 août 2025 de 09h30 à 10h30.

La distribution gratuite d’ordinateurs de bureau sous Debian au Centre social des Abeilles de Quimper continue tout l’été 2025 et même après…:-)

Le Centre des Abeilles, avec l’aide technique de Linux Quimper, récupère depuis 2009 des ordinateurs déclassés par des administrations et des entreprises. Ces ordinateurs sont reconditionnés avec des logiciels libres autour de Linux qui est un système équivalent à Windows et MacOs mais libre et gratuit. Ils sont utilisables immédiatement, gratuitement et en toute légalité dans tous les domaines de l’informatique comme la bureautique, internet, le graphisme, l’audio-vidéo, etc. Plus de 5500 ont été donnés depuis 2009 à des personnes et associations. Si cette action de solidarité vise à réduire la fracture numérique en permettant l’accès à l’informatique aux personnes et associations qui en sont écartées pour des raisons financières, elle a aussi pour but de diffuser largement les logiciels libres et en particulier Linux. Elle a aussi pour objectif de limiter le gaspillage du matériel informatique, réduire les déchets et ainsi de participer à la limitation du changement climatique à notre petite échelle…

Ces dons sont ouverts aux adhérent·e·s du Centre des Abeilles. L’adhésion (13€) peut se faire au moment du don.

La distribution a lieu en général tous les jeudis matin mais les bénévoles du Centre des Abeilles peuvent s’adapter aux disponibilités des personnes désirant bénéficier de ce don.

ATTENTION: Cette proposition ne s’adresse qu’aux personnes habitant le Sud-Finistère.

Inscription préalable au 07 44 61 10 61.

[FR Lyon] Pique-nique du Libre – Le jeudi 28 août 2025 de 19h00 à 23h00.

Rendez-vous estival annuel initié par l’APRIL, l’ALDIL propose aux libristes et leurs mouvances de se retrouver pour un pique-nique partagé.

Une manière de démarrer la saison et causer librement des activités à venir sur la région lyonnaise.

Nous partagerons un pique-nique composé de ce que vous amènerez (sucré/salé, plat/pétillant,…).
Celles et ceux qui le souhaitent proposeront des jeux/activités (frisbee, volley, hula hoop, vol libre, guitare, flutiot…).
Surtout pas trop de programme ! Prenons le temps de nous (re)trouver (listings de recettes de salades, desserts, sandwich, tartes… autorisés si sous licence libre…).

Ce moment est ouvert à tous, amis, familles, licornes, gnous, geeks, pas (encore) libristes (mais si…).

Vous êtes donc largement invités à diffuser ce message autour de vous et dans les communautés « du libre » que vous fréquentez ou côtoyez.

Rendez-vous au parc de Gerland (métro B – Station Gerland)
On se retrouvera entre l’allée de la grande prairie et l’allée des berges dans l’alignement de la rue Jean-Pierre Chevrot.
Entrée 24 allée Pierre de Coubertin – 69007 Lyon

Attention: Le règlement du parc indique que ce n’est pas un lieu de consommation d’alcool, merci de ne pas avoir de comportement alcoolophile ostentatoire.

[FR Beauvais] Gestion d’association, adhérents et compta, avec Paheko – Le vendredi 29 août 2025 de 09h30 à 12h00.

Atelier en présentiel ou en visio

Programme de la séance (dernière mise à jour: https://www.oisux.org/index.php/les-supports/documentation/gestion-des-adherents-et-comptabilite-dune-association-avec-paheko)

*Présentation du logiciel: *https://paheko.cloud

Déroulé de la séance

Possibilité d’un essai gratuit: https://paheko.cloud/essai/ pour lequel il faut renseigner: le nom d’une association, un couple Nom & Prénom et une adresse mail.

Exemple utilisé pendant les séances: https://demopaheko.bvs2l.info installé chez un hébergeur internet.

On se place dans le cas où l’association utilise le logiciel à la fois pour la gestion des adhérents ET pour la compta. (Il est possible de n’utiliser que l’un ou l’autre.)

A) Fonctionnalités de base et premières manipulations

1) Enregistrement d’un premier adhérent (par défaut « membre actif »).

2) Importation d’une liste d’adhérents existant déjà dans un tableau (téléchargement de la liste).

3) Sélection des informations apparaissant dans la liste des adhérents.

4) Déclaration d’une cotisation, obligatoire ou pas, dans la rubrique [Membres/Activités & cotisations]. La cotisation est considérée comme une activité, qui fera l’objet ou non d’un paiement.

5) Établissement du tarif de la cotisation (ou des tarifs de la cotisation). À ce stade, il faut que la Compta existe, car le but est que les cotisations soient prises en compte dans la compta. Donc on va créer un premier exercice comptable, en déclarant dans un premier temps un Compte Courant et/ou un Compte Épargne.

6) Retour sur la cotisation dans la rubrique [Membres/Activités & cotisations] avec l’établissement du tarif de la cotisation, ou des tarifs de cotisation, par exemple un tarif de base et un tarif réduit.

7) Saisie des premières cotisations, selon le tarif, en chèque ou en espèces.

8) Exemples de saisies de dépenses: assurance, papèterie, etc. Et de recettes: dons, subventions, etc.

9) Aperçu du Compte de résultat et du Bilan.

10) Convocation à l’Assemblée Générale (N.B.: l’envoi de mail n’est pas possible dans le cas d’un essai gratuit sur https://paheko.cloud).

11) Ajout d’une activité, par exemple une sortie à un spectacle. Déclaration de son tarif.

12) Enregistrement du mot de passe d’un adhérent. Ou « première connexion »: enregistrement du mot de passe par l’adhérent.

13) Choix des informations personnelles de l’adhérent qui pourront être modifiées par lui-même.

14) Création de nouvelles catégories de membres avec des droits de gestion: Membres du Bureau, Membres du CA, Trésorier. Avec par exemple les droits suivants:

  • Les membres du CA peuvent ajouter ou modifier des membres mais ne peuvent pas en supprimer ni modifier la structure. En lecture seulement pour la Compta.
  • Les membres du Bureau: comme les membres du CA, mais peuvent en plus saisir des écritures dans la compta mais sans changer son organisation.
  • Le Trésorier peut administrer entièrement la Compta mais pas modifier la configuration du logiciel.
  • L’administrateur, c’est-à-dire le premier compte qui a été déclaré à l’installation du logiciel, a tous les droits, y compris celui de modifier la configuration du logiciel.

15) Édition des paramètres de présentation de l’association: nom, adresse postale, adresse mail et logo.

16) Gestion des rappels automatiques

17) Extensions: cartes de membres, suivi du temps, fiches de frais

B) Autres fonctionnalités

1) Enregistrement d’une dépense ou d’une recette et choix d’un compte par défaut ou du plan comptable. Intégration d’un compte dans la liste des favoris.

2) Modification des champs de la fiche des membres, par donner la possibilité aux membres de mettre une photo.

3) Rattachement de membres à un autre membre

4) Homonymes

5) Recherches avancées

6) D’un Paheko à l’autre

C) Fonctionnalités avancées, en s’appuyant sur la documentation du site du logiciel: https://paheko.cloud/aide

[FR La Ferté Saint-Aubin] Réunion publique mensuelle – découverte des logiciels libres – Le vendredi 29 août 2025 de 20h30 à 23h30.

Re-Boot est une association qui s’inscrit dans le mouvement de l’économie sociale et solidaire dans le domaine informatique, engagée dans la promotion des logiciels libres et de Linux. L’association est basée dans le Loiret (45) à La Ferté Saint-Aubin. Nous sommes heureux d’accueillir toutes les personnes qui souhaitent découvrir les logiciels libres.

Découvrez les sujets de ce mois sur notre site Internet à la rubrique Agenda/Thèmes à l’adresse https://rebootinformatique.org/?reunions-mensuelles--les-thematiques

Venez nombreuses et nombreux pour découvrir nos activités.

Le bureau.

[FR Eysines] Ğmarché – Le samedi 30 août 2025 de 10h00 à 15h00.

Venez échanger en Ğ1/June et découvrir la Monnaie Libre.
Nous sommes tous riches de quelque chose à proposer: services, savoir-faire, objets !
Une auberge espagnole le midi sera l’occasion de partager un moment de convivialité pour se retrouver.
Marché en extérieur

Détails, programme et inscription en se rendant sur ce formulaire 

L’adresse précise vous sera communiquée par courriel de confirmation lors de votre inscription.

Contact Sarah: 07 60 30 35 89

retrouvez cette annonce sur le forum de Monnaie-Libre (https://forum.monnaie-libre.fr/t/gmarche-a-eysines-aout-2025/32532)

[CH Genève] Atelier Linux – Le samedi 30 août 2025 de 10h30 à 12h30.

Linux ou GNU / Linux est le système d’exploitation collaboratif et libre de l’écosystème numérique qui est moins gourmand en ressources, plus facile à gérer, plus performant et plus sûr à utiliser.

Au contraire de ses concurrents privatifs Microsoft et Apple, Linux est une solution développée pour une communauté internationale où tout le monde peut contribuer, l’adapter et l’améliorer constamment.

[CH Genève] Café Linux – Le samedi 30 août 2025 de 13h00 à 14h00.

Café Linux est né comme une alternative pour découvrir, explorer et évoluer avec GNU/Linux.

On considère le système d’exploitation GNU / Linux comme la troisième alternative dans le marché et comme un concurrent direct aux deux systèmes d’exploitation Windows et MacOS.

Bref, venez découvrir sa convivialité, ses avantages et ses performances dans votre ordinateur personnel pour les études, la maison et le travail.

[FR Quimper] Permanence Linux Quimper – Le samedi 30 août 2025 de 16h00 à 16h00.

Tous les samedis de 16h à 18h, Linux Quimper vous donne rendez-vous au Centre social des Abeilles, 4 rue Sergent Le Flao (quartier de la Terre Noire) Quimper.

Nous vous proposons lors de ces rencontres d’échanger autour du Libre et de Linux en particulier

Vous pouvez venir pour vous faire aider, ou aider, à installer et paramétrer une distribution GNU/Linux de votre choix ou des logiciels libres sur votre ordinateur.

Recommandations:

  • Sauvegardez vos données avant de venir.
  • Pour une installation de Linux si vous voulez conserver Windows, libérez de la place sur le disque dur (20 Go minimum) et défragmentez Windows.
  • Nous prévenir, éventuellement, de votre passage via le forum.

Vous pouvez aussi venir pour une première prise d’informations et de contacts.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Perl 5.42 est sorti

Perl est un langage généraliste créé en 1987 par Larry Wall. Il est distribué sous une double licence : Artistic Licence et GPL v1+. La plupart des modules du CPAN, dépôt de référence pour des modules tiers, sont également sous ces deux licences. Perl est inclus dans la quasi-totalité des distributions GNU/Linux, parfois installé par défaut.

La toute dernière version de Perl, la 5.42.0, est sortie le 3 juillet 2025. Vous la retrouverez bientôt dans votre distribution préférée.

L’association Les Mongueurs de Perl fait la promotion du langage dans les pays francophones, et ce depuis la fin de l’année 2001

Sommaire

Améliorations principales

Nouveaux sous-programmes CORE::

chdir a été ajouté comme sous-programme à l'espace de noms CORE::.

Jusqu’ici, du code comme &CORE::chdir($dir) ou my $ref = \&CORE::chdir;
$ref->($dir)
renvoyait une erreur indiquant que &CORE::chdir ne peut pas être appelé directement. Ces cas sont désormais entièrement pris en charge.

Nouveau pragma source::encoding

Voir source::encoding

Ceci vous permet de déclarer que la partie d’un programme correspondant au reste de la portée lexicale de ce pragma est encodée soit entièrement en ASCII (pour use source::encoding 'ascii'), ou que l’UTF-8 est autorisé également (pour use source::encoding 'utf8'). Aucun autre codage n’est accepté. La seconde forme est entièrement équivalente à use utf8 et peut être utilisée de manière interchangeable.

Ce pragma a pour but de détecter rapidement les cas où vous avez oublié de spécifier use utf8.

use source::encoding 'ascii' est automatiquement activé dans la portée lexicale d’un use v5.41.0 ou supérieur.

no source::encoding désactive toutes ces vérifications pour le reste de sa portée lexicale. La signification des caractères non-ASCII n’est alors pas définie.

Nouvel attribut :writer sur les variables de champ

Les classes définies avec use feature 'class' peuvent désormais créer automatiquement des accesseurs d’écriture pour les champs scalaires, à l’aide de l’attribut :writer, de la même manière que :reader crée déjà des accesseurs de lecture.

class Point {
field $x :reader :writer :param;
field $y :reader :writer :param;
}


my $p = Point->new( x => 20, y => 40 );
$p->set\_x(60);

Nouveaux opérateurs any et all

Ajout de deux nouvelles fonctionnalités expérimentales, introduisant les opérateurs de traitement de liste any et all.

use v5.42 ;
use feature 'keyword\_all' ;
no warning 'experimental::keyword\_all' ;


my @nombres = ...


if ( all { $\_ % 2 == 0 } @nombres ) {
  say "Tous les nombres sont pairs" ;
}

Ces mots-clés fonctionnent de manière similaire à grep, sauf qu’ils ne renvoient que vrai ou faux, testant si un des éléments (ou tous) de la liste fait que le bloc de test renvoie vrai. De ce fait, ils peuvent court-circuiter, évitant ainsi de tester d’autres éléments si un élément donné détermine le résultat final.

Ces fonctions s’inspirent des fonctions du même nom du module List::Util, à la différence qu’elles sont implémentées comme des opérateurs de base directs, et donc plus rapides, et ne génèrent pas de trame de pile d’appel de sous-routine supplémentaire pour invoquer le bloc de code.

Les indicateurs de fonctionnalité activant ces mots-clés ont été nommés keyword_any et keyword_all afin d’éviter toute confusion avec la capacité du module feature à faire référence à toutes ses fonctionnalités à l’aide de la balise d’exportation :all. [GH #23104]

Les indicateurs d’avertissement expérimentaux associés sont donc nommés experimental::keyword_any et experimental::keyword_all.

L’apostrophe comme séparateur de noms global peut être désactivée.

Ceci a été déclaré obsolète dans Perl 5.38 et supprimé comme prévu dans Perl 5.41.3, mais, après discussion, il a été rétabli par défaut.

Ceci peut être contrôlé avec la fonctionnalité apostrophe_as_package_separator, activée par défaut, mais désactivée à partir du bundle de fonctionnalités 5.41.

Si vous souhaitez désactiver son utilisation dans votre propre code, vous pouvez la désactiver explicitement :

no feature "apostrophe\_as\_package\_separator";

Notez que la désactivation de cette fonctionnalité empêche uniquement l’utilisation de l’apostrophe comme séparateur de paquets dans le code ; les références symboliques traitent toujours ' comme :: même si la fonctionnalité est désactivée :

my $symref = "My'Module'Var";
\# fonctionnalités par défaut
my $x = $My'Module'Var; # fine
no feature "apostrophe\_as\_package\_separator";
no strict "refs";
my $y = $$symref; # comme $My::Module::Var
my $z = $My'Module'Var; # erreur de syntaxe

[GH #22644]

Déclaration de méthode lexicale avec my method

Comme sub depuis la version 5.18 de Perl, method peut désormais être préfixé par le mot-clé my. Cela déclare une sous-routine avec une visibilité lexicale, plutôt que de package. Voir perlclass pour plus de détails.

Opérateur d’invocation de méthode lexicale ->&

Outre la possibilité de déclarer des méthodes de manière lexicale, cette version permet également d’invoquer une sous-routine lexicale comme s’il s’agissait d’une méthode, sans passer par la résolution habituelle des méthodes par nom.

Combinées à la déclaration de méthode lexicale, ces deux nouvelles fonctionnalités créent l’effet de méthodes privées.

Opérateur de commutation et de correspondance intelligente conservé, derrière une fonctionnalité

La fonctionnalité « switch » et l’opérateur de correspondance intelligente, ~~, ont été introduits dans la version 5.10. Leur comportement a été considérablement modifié dans la version 5.10.1. Avec l’ajout du système « experiment » dans la version 5.18.0, le « switch » et le smartmatch ont été rétroactivement déclarés expérimentaux. Au fil des ans, les propositions visant à corriger ou à compléter ces fonctionnalités ont été nombreuses et ont été abandonnées.

Elles ont été déclarées obsolètes dans Perl v5.38.0 et leur suppression était prévue dans Perl v5.42.0. Après de longues discussions, leur suppression a été reportée sine die. Leur utilisation ne génère plus d’avertissement d’obsolescence.

Switch lui-même nécessite toujours la fonctionnalité switch, activée par défaut pour les bundles de fonctionnalités de la version 5.9.5 à la version 5.34. Switch reste désactivé dans les bundles de fonctionnalités 5.35 et ultérieurs, mais peut être activé séparément :

\# pas de switch ici
use v5.10;
\# switch accepté ici
use v5.36;
\# pas de switch ici
use feature "switch"; # switch accepté ici

La correspondance intelligente nécessite désormais la fonctionnalité smartmatch, activée par défaut et incluse dans tous les bundles de fonctionnalités jusqu’à la version 5.40. Elle est désactivée à partir de la version 5.41, mais peut être activée séparément :

\# smartmatch accepté ici
use v5.41;
\# pas de smartmatch ici
use feature "smartmatch";
\# smartmatch accepté ici

[GH #22752]

Unicode 16.0 pris en charge

Perl prend désormais en charge Unicode 16.0, y compris les modifications introduites dans la version 15.1.

Assignation de l’opérateur logique xor ^^=

Perl 5.40.0 avait introduit l’opérateur logique OU exclusif à priorité moyenne ^^. L’absence de la variante d’assignation ^^= n’avait pas été remarquée à l’époque. Cet oubli est désormais corrigé.

Sécurité

[CVE-2024-56406] Vulnérabilité de dépassement de tampon avec tr//

Une vulnérabilité de dépassement de tampon a été découverte dans Perl.

Lorsque des octets non-ASCII se trouvent à gauche de l’opérateur tr, S_do_trans_invmap() peut faire déborder le pointeur de destination d.

$ perl -e '$\_ = "\x{FF}" x 1000000; tr/\xFF/\x{100}/;'
Segmentation fault (core dumped)

On pense que cette vulnérabilité peut permettre des attaques par déni de service ou par exécution de code arbitraire sur les plateformes dépourvues de défenses suffisantes.

Ce problème a été découvert par Nathan Mills et déclaré [CVE-2024-56406] par le groupe de sécurité CPAN.

Le correctif pour corriger ce problème (87f42aa0e0096e9a346c9672aa3a0bd3bef8c1dd) s’applique à tous les Perl vulnérables, y compris ceux qui ne sont plus pris en charge.

[CVE-2025-40909] Les threads Perl présentent une situation de concurrence entre les répertoires de travail : les opérations sur les fichiers peuvent cibler des chemins non prévus.

Le clonage de threads Perl présentait une situation de concurrence entre les répertoires de travail : les opérations sur les fichiers peuvent cibler des chemins non prévus. Perl 5.42 ne fera plus un chdir avec chaque handle.

Ce problème a été découvert par Vincent Lefèvre via [GH #23010] et déclaré [CVE-2025-40909] par le groupe de sécurité CPAN.

Des correctifs ont été fournis via [GH #23019] et [GH #23361].

Modifications incompatibles

Suppression des références de fonctions englobantes pour les fonctions sans évaluation

Perl 5.40 a réintroduit les références inconditionnelles des fonctions vers les fonctions englobantes afin de corriger un bug introduit dans Perl 5.18 qui perturbait le comportement spécial de eval EXPR dans le paquet DB utilisé par le débogueur.

Dans certains cas, cette modification entraînait des chaînes de références circulaires entre les fermetures et d’autres références existantes, entraînant des fuites de mémoire.

Cette modification a été annulée, corrigeant le problème [GH #22547], mais le perturbant à nouveau [GH #19370].

Cela signifie que les boucles de référence ne se produiront pas et que les variables lexicales et les fonctions lexicales des fonctions englobantes pourraient ne pas être visibles dans le débogueur.

Notez que l’appel inconditionnel de eval EXPR dans une fonction force celle-ci à référencer ses fonctions englobantes comme elle l’a toujours fait.

Améliorations des performances

  • Les chaînes obtenues par une formule évaluée à la compilation sont désormais partageables via le mécanisme de copie sur écriture. [GH #22163]

Le code suivant aurait auparavant alloué onze tampons de chaînes, contenant chacun un million de « A » :

    my @scalars; push @scalars, ("A" x 1\_000\_000) for 0..9;

Un seul tampon est désormais alloué et partagé entre une opération CONST et les dix éléments scalaires de @scalars.

Notez que tout code utilisant ce type de constante pour simuler des fuites mémoire (par exemple dans des fichiers de test) doit désormais permuter la chaîne afin de déclencher une copie de la chaîne et l’allocation de tampons séparés. Par exemple, ("A" x 1_000_000).time pourrait être une petite modification appropriée.

  • tr/// s’exécute désormais à la même vitesse, quelle que soit la représentation interne de son opérande, tant que les seuls caractères traduits sont de type ASCII, par exemple : tr/A-Z/a-z/. Auparavant, si l’encodage interne était UTF-8, une implémentation plus lente et plus générale était utilisée.
  • Le code qui utilise la fonction indexed du module builtin pour générer une liste de paires index/valeur à partir d’un tableau ou d’une liste, puis la transmettre à une liste foreach à deux variables pour les décompresser, est désormais optimisé pour être plus efficace.
    my @array = (...);


    foreach my ($idx, $val) (builtin::indexed @array) {
    ...
    }



    foreach my ($idx, $val) (builtin::indexed LIST...) {
    ...
    }

En particulier, il n’y a plus génération d’une liste temporaire deux fois plus grande que l’originale. Au lieu de cela, la boucle parcourt le tableau ou la liste d’origine directement sur place, de la même manière que foreach (@array) ou foreach (LIST).

  • L’optimiseur à lucarne reconnaît les motifs substr à décalage nul suivants et les remplace par un nouvel opérateur dédié (OP_SUBSTR_LEFT). [GH #22785]
    substr($x, 0, ...)
    substr($x, 0, ..., '')
  • La transformation en chaîne des entiers par "print" in perlfunc et "say" in perlfunc, lorsqu’ils proviennent d’un SVt_IV, est désormais plus efficace. [GH #22927]
  • L’inversion de chaîne à partir d’un seul argument, lorsque le tampon de chaîne n’est pas « balayé », s’effectue désormais en une seule passe et est sensiblement plus rapide. L’ampleur de l’amélioration dépend du compilateur et du matériel. [GH #23012]

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Agenda du Libre pour la semaine 34 de l’année 2025

Calendrier Web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces 7 événements (France : 7, Québec : 1) est en seconde partie de dépêche.

Sommaire

[FR Montpellier] Installe Partie Mayotte - Le lundi 18 août 2025 de 15h30 à 18h30.

Événement | Installe Partie Mayotte
Lundi 18 août 2025 de 15h30 à 18h30
Salle de la Poésie - 9, rue de la Poésie, 34000 Montpellier
Venez découvrir GNU/Linux, nous vous montrerons comment l’installer et nous vous aiderons aux premières prises en mains. Nous installerons exclusivement Emmabuntüs sur les ordinateurs dans le cadre de l'opération "Un ordinateur pour Mayotte".
Inscriptions | GPS 43.61731/3.88171
Info: https://montpellibre.fr/fiches_activites/Fiche_002_Montpellibre_Permanence_GNULinux.pdf

[FR Grenoble] Install Party + Rencontre FairPhone - Le mardi 19 août 2025 de 19h00 à 21h00.

La Guilde vous propose deux ateliers en une soirée: install party ET rencontre Fairphone à la Turbine.coop (entrée par le côté droit du bâtiment).

Vous en avez assez d’être dépendants des OS et logiciels propriétaires (Android, Microsoft, etc.)?

Cet atelier est pour vous! Repartez à la fin de la soirée avec votre propre machine fonctionnant sous un nouveau système d’exploitation, correctement installé, configuré et agrémenté de nombreux logiciels (essentiellement libres!).

C’est aussi l’occasion pour les utilisateurs de FairPhone de partager leurs expériences. Ce mois-ci, un Fairphone 3, un Fairphone 4 et un Fairphone 5 avec /e/OS installé seront disponibles pour démonstration.

Merci de sauvegarder vos données si vous apportez votre machine!

[FR Le Mans] Permanence du mercredi - Le mercredi 20 août 2025 de 12h30 à 17h00.

Assistance technique et démonstration concernant les logiciels libres.

Il est préférable de réserver votre place à contact (at) linuxmaine (point) org 

Planning des réservations consultable ici.

[CA-QC Montréal, Québec] InstallFest à Insertech - Le mercredi 20 août 2025 de 14h00 à 19h00.

Description sur la page officielle de l'événement:

Pour toutes celles et ceux qui ont acheté leur ordinateur qui n’est pas compatible avec Windows 11 chez Insertech, on vous propose de vous aider à installer Linux sur votre ordinateur et de bénéficier d’un tout nouveau système d’exploitation accessible, stable et libre pour remplacer Windows. Ce sera l’occasion d’aborder ce que sont les “logiciels libres” et leurs avantages.

L’installation dure environ 1 heure et nous prendrons plusieurs ordinateurs en parallèle pour assurer un flux de passage optimal.

Lors de l’inscription à l’événement vous devez nous inscrire le numéro de série de l’ordinateur afin de valider qu’il a bien été acheté chez Insertech.

[FR Quimper] Pas Sage En Steïr - Du jeudi 21 août 2025 à 09h00 au samedi 23 août 2025 à 16h00.

Cet événement qui aura lieu les 21-22-23 août 2025 est fait pour toutes les personnes qui se posent des questions sur leur vie numérique mais aussi sur ce qui les entourent. Il n’a pas vocation à être un moment statique. il fera, de toustes, des participant‧es aux différents questionnements, car ce sont nos questions qui font de nous des humain‧es dans ce monde numérisé.

"Le numérique dans notre environnement." 

Notre environnement peut être numérique mais il reste, fort heureusement surtout physique. Quelles sont les interaction de l'un vers l'autre ? Dans quelles mesures internet, cet espace ouvert peut nous enfermer ? Faisons un pas de côté et prenons le temps de faire du lien entre humains en discutant, et en se retrouvant physiquement. Cela pourra être un chouette moment, pour s'abriter s'il pleut ou se protéger d'un soleil trop harassant.

Contenu 

Des conférences d’une trentaine de minutes, pour ne pas s’ennuyer, qui seront retransmises en direct et en différé.

Des ateliers pour tester des outils ou pour faire suite à des conférences mais pas que… Install-Party le samedi

Un évènement gratuit pour permettre d’accueillir tout le monde.

Sur place

Pas de restauration

Salles accessibles PMR

Ligne de bus N°1 - arrêt place des castors au départ de la rue du parc.

[FR Quimperlé] Point info GNU/Linux - Le vendredi 22 août 2025 de 13h30 à 17h30.

Médiathèque de Quimperlé, place Saint Michel, pas d’inscription, entrée libre !

Mickaël, Johann, Alain, et Yves vous accueillent (ou l'un d'eux, on se relaie !).

Conseils, aide et infos pratiques GNU/Linux et Logiciels Libres.

Curieux ? Déjà utilisateur ? Expert ? Pour résoudre vos problèmes, vous êtes le bienvenue ; pas besoin de prendre rendez-vous !

N'hésitez pas à venir avec votre PC si vous voulez une installation de GNU/Linux ou de venir avec votre périphérique récalcitrant (imprimante, scanner…) si possible.

[FR Ramonville Saint-Agne] Les ateliers du CULTe - Le samedi 23 août 2025 de 14h00 à 18h00.

Le CULTe est le "Club des utilisateurs de logiciels libres et de gnu/linux de Toulouse et des environs".

Le samedi après-midi tous les quinze jours, le CULTe organise un atelier d'informatique "libre", de 14h à 18h.

La séance est consacrée à l'information du public, à l'entraide entre membres et/ou visiteurs pour notamment installer et configurer des logiciels libres, système d'exploitation ("Linux") ou "applications" (programmes informatiques).

L'entraide peut également concerner le matériel afin d'aider le membre ou le visiteur a faire évoluer son ordinateur (ajout de mémoire, changement de disque dur…), étant précisé que si des avis peuvent être bien entendu émis pour de tels achats, le CULTe quand à lui n'a aucune activité commerciale, directe ou indirecte.

Chacun peut amener son ordinateur pour la séance. S'il s'agit d'une "Unité Centrale" (Ordinateur de bureau) il est inutile d'amener également écran clavier et souris, qui peuvent être prêtés sur place. Au besoin nous pourrons aussi vous prêter une machine pour la séance.

Afin de préparer votre venue, nous vous recommandons vivement de nous prévenir par courrier électronique en expliquant succintement votre projet ou votre besoin à l'adresse suivante:

president@o2.culte.org

L'adhésion au CULTe n'est en aucun cas obligatoire pour participer à nos activités.

NB: Les personnes qui souhaitent adhérer ou faire un don peuvent bénéficier d'un reçu fiscal en vue d'une réduction d'impôt (66% en 2022) notre association étant reconnue "Organisme d'Intérêt Général" éligible au mécénat. (Rescrit fiscal 2021/228)

PS: Notre club met à la disposition de tous une liste de discussion dédiée à l'informatique "libre": "linux-31@o2.culte.org". Vous pouvez sans attendre demander à y être inscrit pour, le cas échéant, y exposer une difficulté et bénéficier de l'aide et de conseils d'une centaine de participants. Il vous suffit de vous rendre à cette adresse et d'y formuler votre demande d'inscription:

https://sympa.culte.org/sympa/subscribe/linux-31?previous_action=info

[FR Talence] Ğéconomicus pendant l’UEMSS - Le dimanche 24 août 2025 de 09h30 à 12h30.

Participez au Ğéconomicus proposé pendant l’Université d’Été des Mouvements Sociaux et de Solidarité à Talence, le dimanche 24 août 2025 de 09h30 à 12h30  — pour plus de renseignements:
https://forum.monnaie-libre.fr/t/geconomicus-propose-pendant-luemss-a-talence/32523

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Dispositio, une bibliothèque Shell POSIX pour afficher des tables de données

Si, comme moi, vous avez eu à reprendre et adapter du script shell pour afficher des tableaux avec mise en forme dans le terminal ou dans des scripts générant des syntaxes Markdown ou Textile (Génération automatique de ticket Redmine), alors vous serez sans doute intéressé par Dispositio (licence Apache v2).

Dispositio est un script shell conforme POSIX qui permet l’affichage des tables de données provenant de fichiers CSV, JSON et YAML dans le terminal. Il offre un formatage avancé, un support des couleurs, et peut-être utilisé comme un outil en ligne de commande autonome ou comme une bibliothèque shell pour la génération de tableaux.

Fonctionnalités clés

  • Formats d’entrée multiples (CSV, YAML et JSON)
  • Utilisation en CLI ou en bibliothèque (dans ce cas, utilisation de fonctions dispositio_add_* pour ajouter des colonnes, lignes ou cellules)
  • Formatage de la sortie (couleurs, mise en forme, style de texte et alignements)
  • Sortie en format Terminal, Markdown (avec CSS, non compatible Github) et Textile (Redmine)

Exemples avec ce fichier JSON

{
  "title": [
    "JSON",
    "Essai"
  ],
  "display": "top",
  "color": "",
  "align": "center",
  "columns": [
    {
      "title": [
        "Header1",
        ""
      ],
      "color": "red",
      "align": ""
    },
    {
      "title": [
        "Header2",
        "Essai"
      ],
      "color": "",
      "align": ""
    },
    {
      "title": [
        "Header3",
        ""
      ],
      "color": "",
      "align": ""
    }
  ],
  "rows": [
    {
      "title": [],
      "color": "green",
      "align": "",
      "valign": "top",
      "separator": 1,
      "cells": [
        {
          "lines": [
            "Row1",
            "Cell1",
            "essai"
          ],
          "color": "",
          "align": ""
        },
        {
          "lines": [
            "",
            "Row1 - Cell2",
            ""
          ],
          "color": "",
          "align": ""
        },
        {
          "lines": [
            "",
            "Row1 - Cell3",
            ""
          ],
          "color": "",
          "align": ""
        }
      ]
    },
    {
      "title": [],
      "color": "",
      "align": "",
      "separator": 0,
      "cells": [
        {
          "lines": [
            "Row2 - Cell1"
          ],
          "color": "",
          "align": ""
        },
        {
          "lines": [
            "Row2 - Cell2"
          ],
          "color": "",
          "align": ""
        },
        {
          "lines": [
            "Row2 - Cell3"
          ],
          "color": "",
          "align": ""
        }
      ]
    }
  ]
}
Sortie Terminal

Terminal

Sortie Markdown
<style>
    .dpo table{margin: 0px auto;}
    .dpo_title{
        text-align: center;
        font-style: bold;
        font-size: 24px;
    }
    .dpo th{
        background: grey;
        text-align: center;
        vertical-align: top;
        font-style: bold;
    }
    .dpo td:nth-child(1){
        background: red;
    }
    .dpo th:nth-child(1){
        background: brown;
    }
    .dpo tr:nth-child(1){
        background: green;
        vertical-align: top;
    }
    .dpo  tr:nth-child(1) td:nth-child(1){
        background: olive !important;
    }
</style>

<div class='dpo'>
<div class='dpo_title'>
JSON<br>Essai<br>
</div>

| Header1 | Header2<br>Essai | Header3 |
|-|-|-|
| Row1<br>Cell1<br>essai | Row1 - Cell2 | Row1 - Cell3 |
| Row2 - Cell1 | Row2 - Cell2 | Row2 - Cell3 |


</div>

Markdown

Sortie Textile
h1{text-align:center; font-size:24px}. *JSON<br>Essai<br>*

table{margin: 0px auto}.
|^.
|_={background-color:brown}. Header1 |_=. Header2<br/>Essai |_=. Header3 |
|={background-color:olive; vertical-align:top}. Row1<br/>Cell1<br/>essai |={background-color:green; vertical-align:top}. Row1 - Cell2 |={background-color:green; vertical-align:top}. Row1 - Cell3 |
|={background-color:red; vertical-align:middle}. Row2 - Cell1 |={vertical-align:middle}. Row2 - Cell2 |={vertical-align:middle}. Row2 - Cell3 |

Textile

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

GNOME Stop Me Now

Voici un retour d'expérience montrant les possibilités de « configuration » de GNOME lorsqu'un comportement — pourtant apprécié par certains — a été malencontreusement « retiré ». hugotrip réussit ce tour de force pour Nautilus dont le panneau latéral n'est plus masquable à partir de GNOME 43, ce qui fait perdre de la place à l'écran lorsque plusieurs fenêtres sont affichées. C'est l'occasion de découvrir les (non-)possibilités de configuration de GNOME et les moyens de réussir à y accéder néanmoins au travers d'une démarche constructive, didactique et factuelle mettant en lumière les relations particulières des développeurs et designers UI/UX (interface et expérience utilisateur) de GNOME avec leur gestionnaire de demandes et de rapports de bugs.

Vous y apprendrez :

  • la patience nécessaire à faire prendre en compte une demande et une bonne manière d'y arriver
  • comme quoi GNOME est effectivement configurable au prix de mettre les mains dans le cambouis, de passer par du CSS et un peu d'XML, voire de patcher un peu de code source C grâce à l'aide bienveillante de développeurs pour conserver la fonctionnalité de configuration disparue
  • que CSS et XML n'ont pas de raison de faire peur lorsqu'il s'agit de modifier une valeur (tout n'est pas à réécrire) et que finalement le code C lorsque c'est rétablir des lignes enlevées précédemment, cela ne demande « que » de retrouver la modification les ayant enlevées et pour cela savoir (un peu) se servir d'un gestionnaire de code source

Bonne lecture de ce qui était un journal et qui lèvera un coin du voile sur les (im)possibilités de configuration de GNOME. Et pour les faire prendre en compte : de la patience, beaucoup de patience et encore de la patience, tout cela dans la joie et la bonne humeur _o/

Sommaire

Cher 'Nal,

J'ai écrit ce journal pour clore un chapitre qui m'a bien frustré depuis 2 ans, mais que j'ai pu résoudre grâce à tout ce qu'offrent les logiciels libres.

Sister Disclaimer

  • TL; DR : HowTo.Fix[(Nautilus >= 43).ui == feeling(crap)]

Même s'il concerne un problème avec GNOME, le but n'est donc pas de se moquer de lui, ça ne serait pas politiquement correct.

Je fais surtout un retour d'expérience, en tant qu'utilisateur avancé : il y aura donc surtout du texte (avec un effort notable mais peut-être un peu lourd sur les titres), avec néanmoins sur la fin un peu de CSS, XML, et même 3 lignes de C !

When I amd 64

J'ai quitté Windows pour Linux à l'été 2010, suite à de premières expériences positives de « hacking », via Litestep, pour ceux qui connaissent.

C'était la grande époque d'Ubuntu, mais après l'avoir testé, et aussi Kubuntu, mon choix s'est fixé sur un GNOME plus «upstream» : je me suis installé sous Fedora.

Ce qui m'avait grandement décidé, c'était la réflexion sur le concept de bureau, avec en particulier le mode spatial de Nautilus. Je m'étais fait une personnalisation aux petits oignons des différents dossiers dont j'avais besoin.

Et moins d'un an plus tard, GNOME passe à la version 3 :

  • C'est la fin pour le mode spatial de Nautilus. Je dois jeter à la poubelle tous mes efforts, mais je conserve une navigation épurée, avec seulement une vue du dossier en cours occupant toute la fenêtre. Je n'utilise que rarement le panneau des raccourcis (F9), tous mes dossiers usuels ayant des raccourcis sur le bureau.

  • C'est pas grave, je suis encore un jeune fou, ouvert à la disruption : j'embrasse avec enthousiasme l'overview du GNOME Shell (Document d'intention), qui permet une gestion originale et très efficace du bureau, que ce soit à la souris (combien de fois ensuite ai-je déplacé ma souris dans le coin supérieur gauche de l'écran sous Windows au boulot, sans aucun effet…), ou au clavier :

    • le symbole de la touche 🪟 (Windows) devient signifiant : son appui affiche toutes les fenêtres ouvertes, et amène une certaine logique mnémotechnique
      • 🪟 + 🠠, 🠡, 🠢 ou 🠣 déplace la fenêtre active,
      • 🪟 + ou change de bureau
    • beaucoup de tâches de gestion du bureau deviennent accessibles avec un seul doigt
      • 🪟,é,t,e,i,n,d,r,e permet d'éteindre élégamment l'ordinateur avec un bébé dans les bras, par exemple.
  • L'apparition des headerbars me fait craindre le pire, mais la conversion réussie de Gedit me remplit de joie : cette minimisation du chrome des applications au bénéfice de leur contenu amène une certaine rationalisation chez moi : Nautilus et Gedit s'ouvre par défaut à la même taille que mon terminal (Tilix : 722×456 px). Cela me permet d'avoir jusqu'à 4 fenêtres de ces applications ouvertes en même temps, en conservant mes raccourcis de bureau accessibles, ou bien 2 fenêtres ouvertes à côté d'une application plus complexe (LibreOffice en général) sur une moitié d'écran.

Bref, je me créé un workflow personnel, qui peu à peu diverge de la vision GNOME : le cycle de publication biannuel de Fedora provoque donc des changements qui nécessitent certaines adaptations (évolution des notifications) ou contournements (suppression des icônes sur le bureau) plus ou moins poussés.

La forte poussée anti-theming de la fin des 2010's m'a aussi particulièrement fatigué : je trouve ça bien que chacun puisse décorer son "home" à sa guise (icônes, chrome & pas seulement une couleur d'accentuation) : l'uniformisation transforme à mon sens l'ordinateur personnel en standard industriel déprimant.

Bref la sortie de GNOME 40 en mars 2021 est la goutte de trop : la réorganisation horizontale des bureaux virtuels dans l'overview fait perdre la cohérence des raccourcis clavier, diminue la place de la "zone utile" et m'évoque des plateaux de cantine à remplir d'apps , et elle ne me semble être là qu'avant tout pour avoir un changement visuel marquant pour le gros saut de numérotation.

Je pourrais attendre qu'une extension corrige l'overview (ce qui arrivera vite), mais je décide que j'ai passé l'âge des mises à jour nécessitant de revoir mes habitudes (sous prétexte d'amélioration) tous les 6 mois : je cherche une nouvelle distribution, ayant une durée de maintenance longue, afin de ne plus me poser ces questions que le moins souvent possible : je choisis Debian, et prend conscience que je suis devenu un vieux con.

Mais ce calme au niveau desktop me permet d'improver mon efficiency de 42% (estimation La RACHE).

Pour résumer cette partie concernant mon rapport à l'IHM chez GNOME, même si l'innovation peut amener des progrès spectaculaires, des changements trop fréquents risquent de devenir contre-productifs.

The Dark Sidebar Of The Moon

Mars 2023 , Debian annonce le Hard Freeze de sa nouvelle version. Il est temps pour moi de voir ce que GNOME est devenu (version 43, désormais), et quelles adaptations, ou contournements il me faudra fournir. Je l'installe dans une VM, et là, c'est le drame.

Le panneau latéral de Nautilus n'est plus masquable : la zone de contenu passe de 90% à 60 % de la fenêtre, et en conséquence au lieu de voir jusqu'à (6×4=) 24 fichiers simultanément, je ne peut plus en voir que (3×3=) 9 !

Une rapide recherche Internet me permet de découvrir que je ne suis pas le seul à qui ça pose problème.
Après malheureusement, ce n'est pas un bug, mais une fonctionnalité : Selon les développeurs, cacher le panneau latéral n'était qu'un pis-aller pour utiliser Nautilus à de petites tailles, mais comme dorénavant Nautilus fait ça automatiquement quand on le redimensionne, ce n'est plus nécessaire (lien).
animation montrant  le masquage automatique de la barre latérale
Source de l'image : debugpoint.com - CC-BY-SA

  • Bon j'ai un peu l'impression qu'on réécrit l'histoire ici : montrer/cacher le volet latéral était possible depuis la première version de Nautilus incluse dans GNOME (en 2001) , et je doute très fort que c'était la raison d'alors (d'autant plus si on regarde les autres gestionnaires de fichiers, qui quasiment tous le permettent toujours).

  • J'ai plutôt la sensation que l'on sacrifie ici l'usage pour l'apparence : ainsi, Nautilus ressemble plus à d'autres applications de base de GNOME, comme Settings, Disks, Contacts, Characters ou Calendar.

You Can't Always GET What You Want

Bon voyons d'abord s'il y a moyen de s'adapter : En agrandissant un peu la fenêtre, je peux monter jusqu'à 16 fichiers affichés, mais ça m'est insuffisant, et il me faut faire abstraction de l'espace gaspillé par la barre latérale

N'ayant pas de capacités particulières en programmation, il semble donc nécessaire de demander aux développeurs de Nautilus d'améliorer la situation.

423 Locked

Cela fait longtemps que les équipes de GNOME sont réputées pour être teutillonnes sur les demandes d'améliorations qu'on leur soumet, et les pages que j'ai consultées jusqu'ici me suggèrent que ce sujet aussi est délicat : il me faut trouver une bonne formulation du problème ; il me semble qu'il faut partir d'un exemple concret (use case), et éviter le terme bug.

Ça tombe bien, il existe un autre template de ticket sur le gitlab de Nautilus : Shortcoming.

J'en profite pour élargir le problème à la vue en liste, qui juste avant le seuil de disparition automatique de la barre latérale est bien inutilisable (et c'est la version en cours dans Debian Bookworm) :
Je voudrais le fichier ...

Et voilà : https://gitlab.gnome.org/GNOME/nautilus/-/issues/2953 ça passe.

Bon je ne me fais pas directement jeter, mais après 4 commentaires en 5 jours, ça ne bouge plus vraiment pendant 1 mois.

Apparemment, les devs bossaient sur un changement de "widgets" pour le comportement adaptatif de Nautilus. une fois celui-ci intégré, j'ai juste un message d'un dev qui me dit que comme ce patch a un effet sur le problème remonté, sa description est de facto obsolète, et clos donc le ticket… sans vérifier que c'est bien le cas.

Ce patch a pour conséquence que la taille du volet latéral change selon la largeur de la fenêtre, mais ça ne m'affiche toujours que 4 icônes de large…

100 Continue

Un peu piqué par cette fermeture abrupte du ticket, j'en rouvre un dans la foulée, en copiant-collant le contenu du précédent : https://gitlab.gnome.org/GNOME/nautilus/-/issues/3001

  • J'ajoute juste en premier commentaire des captures d'écran pour montrer comment la situation n'a pas vraiment évolué.

  • Évidemment un des premiers commentaires pointe le fait qu'il faut que je mette aussi à jour mes captures d'écran dans la description du ticket

La discussion va néanmoins plus vite, et il y a une recherche de solution autour de la taille limite à partir de laquelle se cache automatiquement la barre latérale : même si ce n'est pas mon souhait initial, je participe volontiers à la résolution proposée ; on me propose un seuil de déclenchement à 768 sp (screen pixels : pour tenir compte des écrans HiDPI). Ce qui me convient enfin.

Néanmoins — comme l'un des devs le souligne — ce seuil peut poser des problèmes : je plussoie fortement qu'il faudrait consulter plus largement.

Il y a alors un long silence (c'est l'été), et un commit vient clore le ticket sans aucun message fin août, avec un seuil fixé finalement à 682 sp. (sur quels critères ? Mystère)

Bref la situation a un peu progressé : je peux voir jusqu'à (5×3) = 15 icônes, en réduisant (!) la taille (habituelle) de ma fenêtre . Et je suppose que c'est mieux aussi pour les utilisateurs de la vue en liste.

Mais j'essaie d'argumenter que c'est bancal que pour une largeur de fenêtre comprise entre 682 et ± 850 sp, Nautilus a une plus petite zone de contenu qu'en dessous de 682 sp.

Vainement.

Néanmoins sur ce ticket, même s'il m'a été difficile de ne pas pointer les failles de raisonnement qui bloquent la recherche de solutions, la conversation a été instructive : elle m'a permis par exemple de découvrir l'usage de GNOME Builder, l'IDE dédié, qui permet très simplement de récupérer les sources de Nautilus, de les modifier (ici en l'occurence, il ne s'agissait que de modifier la valeur du seuil de taille basculant le fonctionnement de Nautilus), de compiler et exécuter un test, voire de générer un flatpak pour installation à la suite.

406 Not Acceptable

Néanmoins, un dev m'informe qu'une discussion a eu lieu à ce sujet sur le chat matrix, mais que proposer un bouton pour basculer la vue du volet latéral risquerait d'ouvrir la boîte de Pandore (sur des problèmes de design et d'ergonomie, et une surcharge de maintenance)

Voulant être constructif, je ne relève pas que c'est la situation existante aux plus petites tailles (cf. GIF animé plus haut), mais me propose pour réfléchir à cette boîte de Pandore.

Je m'inscris donc à la chatroom matrix de Nautilus pour en consulter l'historique, afin de retrouver la conversation évoquée par le dev, mais c'est impossible : je n'ai accès à l'historique que jusqu'au moment de mon inscription.

Je demande alors si une bonne âme peut me transférer cette discussion, mais malgré la bonne volonté, la seule chose trouvée ne correspond pas.

Bien que dans le noir, et voulant clore proprement le chapitre, je crée un ticket feature, avec quelques propositions initiales, pour amorcer la discussion.

https://gitlab.gnome.org/GNOME/nautilus/-/issues/3251

Le ticket est directement fermé, car les devs préfèrent que les "nouvelles" fonctionnalités soient discutées sur leurs forums discourse.

J'apprends néanmoins que certains devs de nautilus aimeraient bien que cette opportunité revienne, mais que les designers les ont convaincu que c'était une mauvaise idée.

J'ai donc créé une entrée de forum : https://discourse.gnome.org/t/ability-to-hide-the-sidebar-at-every-size/18850/1 .

Je n'ai quasiment qu'une contribution du dev qui a principalement interagi avec moi, ne me parlant que des problèmes de la proposition bouton, sans aucune intervention des designers.

Je ne rappelle pas que dans mon entrée, j'ai bien précisé que cette proposition ne fait que reprendre le comportement de nautilus aux petites tailles, mais ça me permet de clore proprement ce chapitre de "bug reporting", en me disant que j'étais allé au bout de ce que je pouvais faire.

418 I'm a teapot

Il me faut donc envisager un changement de gestionnaire de fichiers, alors je réalise un comparatif (en rouge sont indiqués les gestionnaires qui ne permettent pas de cacher le volet latéral) :

Représentation graphique du nombre de fichiers affichés en fonction de la part de la fenêtre dédiée à l'affichage des fichiers pour quelques gestionnaires de fichiers

Nautilus 3.38 était effectivement le meilleur gestionnaire de fichier pour afficher le contenu d'un dossier pour mon usage, Nautilus 43.2 le pire, mes rapports de bugs ont un peu contribué à améliorer la situation, mais donc hormis rester sous Nautilus 3.38, je ne peux que perdre en usage ; je décide donc de rester sous Debian Bullseye autant que possible : il y a toujours possibilité qu'une nouvelle version de Nautilus change la donne (spoiler : ça n'arrivera pas).

  • Correctif : suite à un commentaire du journal dont est issue cette dépêche, il semble possible d'afficher bien plus d'icônes dans une fenêtre de Dolphin.

Bref pour moi, le bilan de cette phase est que la remontée de bogues est plus compliquée chez GNOME, à priori à cause de la "vision" de designers qui priorisent l'uniformisation au-dessus de tout.

Dans la dernière version de Nautilus, on ne peut toujours pas cacher le volet latéral : le chrome de la fenêtre peut donc toujours prendre jusqu'à 40 % de la fenêtre, et il y a forcément 2 icônes pour la recherche…

Néanmoins, j'ai contribué quand même à améliorer la situation pour la vue en liste :

Meilleure vue en liste

Forkgiven

Durant l'année 2024, je me lance donc occasionnellement dans le fork de l'apparence de Nautilus, ayant découvert avec mes rapports de bogues, comment utiliser GNOME Builder pour faire des tests rapidement, et le fait que toute la description de l'interface de Nautilus (au format XML) est bien organisée dans le répertoire src\resources\ui, et le fichier m'intéressant en particulier étant nautilus-window.ui.

  • Remarque : L'utilisation de GNOME Builder me fait travailler sur les fichiers de la forge git de Nautilus. En conséquence, le comportement adaptatif de Nautilus utilise une version plus récente de LibAdwaita, qui n'utilise plus les mêmes méthodes que celles du Nautilus fourni avec Debian Bookworm. Ça ne me dérange pas plus que ça, l'objectif étant d'être prêt pour Trixie.

La technique la plus simple pour ne plus avoir le volet latéral en permanence consiste à modifier le seuil de déclenchement du mode adaptatif, en s'inspirant de ce qui avait été fait par les dev de Nautilus dans mon ticket (cf supra) :

--- a/src/resources/ui/nautilus-window.ui
+++ b/src/resources/ui/nautilus-window.ui
@@ -200,7 +201,7 @@
     </child>
     <child>
       <object class="AdwBreakpoint">
-        <condition>max-width: 682sp</condition>
+        <condition>max-width: 750sp</condition>
         <setter object="split_view" property="collapsed">True</setter>
         <setter object="split_view" property="enable-show-gesture">True</setter>
         <setter object="split_view" property="enable-hide-gesture">True</setter>

Ça marche facilement, mais ça déplace en bas de fenêtre les boutons d'historique et de réglage de la vue.
une fenêtre qui s'affiche sans barre latérale mais avec une barre d'outils en bas

Je préférerais une méthode qui me permette aussi de cacher le volet latéral aux plus grandes tailles. La lecture de la doc de LibAdwaita m'indique que le widget AdwOverlaySplitView qui gère le comportement adaptatif de Nautilus possède une propriété booléenne show-sidebar qui détermine si le volet latéral est visible ou non :

--- a/src/resources/ui/nautilus-window.ui
+++ b/src/resources/ui/nautilus-window.ui
@@ -101,6 +56,7 @@
               <object class="AdwOverlaySplitView" id="split_view">
                 <property name="enable-show-gesture">False</property>
                 <property name="enable-hide-gesture">False</property>
+                <property name="show-sidebar">False</property>
                 <property name="max-sidebar-width">240</property>
                 <property name="sidebar-width-unit">px</property>
                 <property name="sidebar-width-fraction">0.2</property>

Et le volet latéral est maintenant masqué par défaut : on ne peut pas l'afficher, mais c'est déjà beaucoup mieux. Néanmoins, je constate avec surprise que ma taille de fenêtre habituelle ne m'affiche que 5 icônes par ligne au lieu de 6 :
une fenêtre qui s'affiche sans barre latérale mais avec une barre d'outils en bas

Après m'être gratté un peu la tête, en utilisant l'excellent outil GTK Inspector, je constate que les fichiers sont dans des objets appelés NautilusViewCell. Je réalise aussi qu'il y a un fichier style.css dans le dossier src\resources. Et, effectivement, en ajustant le padding de ces objets, je retrouve quasiment le confort que j'avais avec Nautilus 3.38 :

--- a/src/resources/style.css
+++ b/src/resources/style.css
@@ -149,7 +149,7 @@
   border-radius: 12px;
 }
 .nautilus-grid-view #NautilusViewCell {
-  padding: 6px;
+  padding: 0px;
   border-radius: 12px;
 }

une fenêtre qui optimise la zone d'affichage
Ne reste que le plus difficile : trouver comment réactiver le raccourci clavier (F9) pour afficher le volet latéral au besoin, même au-delà du seuil d'adaptabilité, puisqu'il est opérationnel en dessous.

Me rappelant qu'ils étaient souvent qualifiés d'accelerators, une recherche dans les fichiers sous GNOME Builder semble m'indiquer que ce raccourci est défini dans le fichier nautilus-window.c :

    nautilus_application_set_accelerator (app, "win.toggle-sidebar", "F9");

Gasp, c'est du C, un langage bien plus compliqué à décrypter pour moi que le XML ou le CSS. Heureusement, 10 lignes en dessous, je lis :

#undef ACCELS

    action = g_action_map_lookup_action (G_ACTION_MAP (window), "toggle-sidebar");
    g_object_bind_property (window->content_flap, "folded",
                            action, "enabled", G_BINDING_SYNC_CREATE);

Je supprime ces lignes, et ça marche. ÇA MARCHE !

Je peux alors obtenir un flatpak de Nautilus, mais pour l'intégrer plus proprement, il faut que je m'intéresse à l'empaquetage Debian :

APTite For Construction

Il me faut travailler sur la source du paquet Debian, récupérable avec la commande :

apt source nautilus

Que je peux recompiler en paquets .deb ensuite avec la commande :

debuild -b -uc -us

Malheureusement les tests exécutés durant la construction échouent chez moi :

10/20 nautilus:displayless / test-file-operations-trash-or-delete           FAIL             0.08s   killed by signal 5 SIGTRAP
 7/20 nautilus:displayless / test-file-operations-copy-files                FAIL             0.67s   killed by signal 5 SIGTRAP
 9/20 nautilus:displayless / test-file-operations-move-files                FAIL             1.53s   killed by signal 5 SIGTRAP

Avec un peu de recherche, je découvre que je peux sauter les tests, en utilisant une variable globale, avant d'exécuter la construction. La suite de commandes ci-dessous me permet de récupérer des fichiers deb opérationnels :

export DEB_BUILD_OPTIONS=nocheck
debuild -b -uc -us

Ne reste qu'à automatiser la modification des sources des paquets, pour ne pas avoir à modifier à la main chacun des fichiers à chaque mise à jour de Nautilus.

je cherche d'abord dans diverses docs d'empaquetage de Debian comment mettre en place des patchs. Je mets en place dquilt, que j'utilise ainsi :

#pour démarrer l'écriture d'un patch ()
dquilt new fix-nautilus-sidebar.patch

# pour indiquer les fichiers à surveiller :
dquilt add src/nautilus-window.c src/resources/style.css src/resources/ui/nautilus-window.ui

# pour récupérer les modifications des fichiers modifiés :
dquilt refresh

ça me permet de récupérer un fichier de patch que je peux utiliser avec la commande patch -p1 -i debian/patches/fix-nautilus-sidebar.patch.

Il y a encore une commande à utiliser pour incrémenter comme il faut le numéro de version du logiciel, afin que je puisse installer les paquets debian :

dch -n "Fix Nautilus Sidebar"

J'ai tout ce qu'il me faut pour automatiser le traitement : je récupére mon patch fix-nautilus-sidebar.patch :

From: hugotrip 
Description: allow to hide the sidebar & more
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -1135,11 +1135,6 @@

     nautilus_window_on_undo_changed (nautilus_file_undo_manager_get (), window);

-#undef ACCELS
-
-    action = g_action_map_lookup_action (G_ACTION_MAP (window), "toggle-sidebar");
-    g_object_bind_property (window->split_view, "collapsed",
-                            action, "enabled", G_BINDING_SYNC_CREATE);
 }

 static gboolean
--- a/src/resources/style.css
+++ b/src/resources/style.css
@@ -149,7 +149,7 @@
   border-radius: 12px;
 }
 .nautilus-grid-view #NautilusViewCell {
-  padding: 6px;
+  padding: 0px;
   border-radius: 12px;
 }

--- a/src/resources/ui/nautilus-window.ui
+++ b/src/resources/ui/nautilus-window.ui
@@ -104,6 +104,7 @@
                 <property name="max-sidebar-width">240</property>
                 <property name="sidebar-width-unit">px</property>
                 <property name="sidebar-width-fraction">0.2</property>
+                <property name="show-sidebar">False</property>
                 <property name="sidebar">
                   <object class="AdwToolbarView">
                     <property name="reveal-bottom-bars"

Je crée un script bash fix-nautilus-sidebar.sh (qui nécessite quand même mon intervention à 2 moments) :

#!/bin/bash

# récupération de la source des paquets Debian
apt source nautilus
#Application de mes modifications
cd nautilus-48.*
patch -p1 < ../fix-nautilus-sidebar.patch
# mise à jour du CHANGELOG, pour augmenter le numér de version :
dch -n "Fix Nautilus Sidebar"
# construction des paquets :
export DEB_BUILD_OPTIONS=nocheck
debuild -b -uc -us
# installation des paquets :
cd ..
rm *dbgsym*.deb & rm *dev*.deb
sudo apt install ./*.deb

et ensuite, sous ma VM de test Trixie, si une mise à jour modifie Nautilus, j'ai juste à copier ces 2 fichiers dans un dossier temporaire et y exécuter le script shell pour récupérer ma version patchée de Nautilus.

Bref, pour résumer, il est erroné de dire que GNOME n'est pas personnalisable ; simplement, ce n'est (vraiment) pas à la portée de l'utilisateur de base.

Y'en a un peu plus, je vous le mets quand même ?

Je Thème Moi Non Plus

Est-ce que c'est possible d'avoir les headerbars des fenêtres colorés à son goût ? Mais bien sûr, ce n'est que du CSS à écrire dans le fichier ~/.config/gtk-4.0/gtk.css .

En revanche, choisir le sélecteur headerbar ne suffit pas à tout colorer le haut de la fenêtre, il faut choisir le sélecteur windowhandle qui colorie aussi les barres d'outils qui apparaissent éventuellement en bas de la fenêtre (ce qui me permet d'apprendre que le cliquer-glisser sur cette zone permet aussi de déplacer une fenêtre), et le changement est ultra-simple :

windowhandle {
    background:#41495c; /* couleur d'arrière-plan */
    color:#e9ecf2; /* couleur de premier plan */
}

Pour la peine, j'y ai aussi ajouté quelques légers points, pour mieux correspondre au thème gtk3 actuel de mes applications.

windowhandle {
    background:#41495c;
    color:#e9ecf2;
}

window{
    border-radius: 7px;
}

.sidebar-pane {
    background:#eaeef3;
}

windowcontrols > .close {
    background-image: radial-gradient(#bf616a, #bf616a 48%, transparent 48.5%);
}

Prêt pour Trixie

I Believe I Can Fail

J'ai essayé de modifier le fichier src\resources\ui\nautilus-window.ui pour remettre le volet latéral sous la headerbar, mais j'ai atteint les limites de mes capacités, semble-t-il.

De même au niveau CSS, désaplatir les boutons semble nécessiter pas mal de boulot, encore.

After Hours

En faisant mes recherches pour ce journal, j'ai pu constater que le problème du volet latéral entraînait aussi maintenant des frictions visibles au sein de l'équipe de GNOME.

  • sur cette conversation de 2024, c'est un des membres de l'équipe GNOME qui met les pieds dans le plat.

  • Mais le plus hallucinant, c'est qu'au mois de juin dernier, c'est un des dév de Nautilus qui a donné une méthode pour réafficher le volet latéral, suivant sensiblement la même méthode que moi : patch puis recompilation.

The End

Je devrais maintenant être tranquille pour au moins 2 versions de Debian : j'espère toutefois ne pas avoir à faire de journal en 2029, à ce sujet.

Merci néanmoins à TOUTE la communauté GNOME pour son travail fantastique dont je profite chaque jour : ce n'est pas mon désaccord sur certains points qui me ferait jeter tout aux orties.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Lettre d'information XMPP de juin 2025

N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les tournures de phrase et l’esprit de l’original. Elle est réalisée et publiée conjointement sur les sites XMPP.org, LinuxFr.org et JabberFR.org selon une procédure définie.

Bannière de la lettre d'information XMPP

Bienvenue dans la lettre d'information XMPP, ravie de vous retrouver ! Ce numéro couvre le mois de juin 2025.

Tout comme cette lettre d'information, de nombreux projets et leurs efforts au sein de la communauté XMPP sont le résultat du travail bénévole de certaines personnes. Si vous êtes satisfait des services et des logiciels que vous utilisez, n'hésitez pas à les remercier ou à aider ces projets ! Vous souhaitez soutenir l'équipe de la lettre d'information ? Lisez en bas de page.

    Sommaire

    Annonces de la XSF

    Devenir membre de la XSF

    Si vous souhaitez devenir membre de la XMPP Standards Foundation, merci de postuler avant le 17 août 2025 à 00h00 UTC.

    Événements XMPP

    Vidéos XMPP

    Comunicación Libre, Segura y Descentralizada: Taller abierto de XMPP par Gnuxero pour le Club de Software Libre. [ES]

    Articles XMPP

    Actualité des logiciels XMPP

    Clients et applications XMPP

    Le nouveau look élégant et moderne de Gajim 2.3.0 avec Adwaita

    • Libervia a reçu un financement de NLnet pour « mettre en œuvre une architecture sans serveur (avec RELOAD) et réduire l'exposition des métadonnées » (Serverless and Metadata Reduction for XMPP). Ce projet permettra de réduire l'exposition des métadonnées et de mettre en place une communication décentralisée et sans serveur. Les travaux se concentreront sur les spécifications de chiffrement de bout en bout pour les informations de la liste de contacts. Ces changements seront mis en œuvre dans l'écosystème Libervia grâce à l'intégration de Tor, qui contribuera à anonymiser les connexions et à réduire le suivi des adresses IP. Un deuxième domaine d'intérêt consiste à faire progresser la communication sans serveur en mettant en œuvre le protocole RELOAD XEP-0415 et en tirant parti de l'authentification de bout en bout via XEP-0416 et XEP-0417. Ce projet renforcera la confidentialité et la disponibilité de XMPP et Libervia, permettant leur utilisation dans des environnements où les serveurs peuvent être indisponibles ou inaccessibles.
    • Monocles a publié les versions 2.0.8, 2.0.9, 2.0.10 et 2.0.11 de son client de chat pour Android, qui intègrent de nombreuses nouvelles fonctionnalités et corrections.
    • Prose a publié les versions 0.10.2 et 0.11.0 de son interface web prose-web-app.

    Serveurs XMPP

    • La communauté Ignite Realtime est ravie d'annoncer la sortie des dernières versions de son célèbre serveur XMPP open source. Openfire 5.0.0 vient de sortir, immédiatement suivi par Openfire 5.0.1 qui devrait le remplacer. Les nouvelles versions sont dotées d'une multitude de nouvelles fonctionnalités, d'améliorations et de corrections de bogues qui améliorent ses performances, sa sécurité et sa convivialité. Vous pouvez télécharger Openfire 5.0.1 directement depuis le site web et lire la documentation pour commencer. N'oubliez pas de consulter le journal des modifications pour obtenir la liste de toutes les modifications qui ont été apportées !
    • MongooseIM a publié la version 6.4.0 de sa solution de messagerie instantanée d'entreprise. Cette version apporte de nouvelles fonctionnalités, des modifications, diverses corrections et améliorations. Pour plus d'informations, consultez le journal des modifications et la documentation.

    Bibliothèques et outils XMPP

    Extensions et spécifications

    La XMPP Standards Foundation développe des extensions pour XMPP dans sa série XEP en plus des RFC XMPP. Des développeuses, développeurs et experts en standards du monde entier collaborent sur ces extensions, en élaborant de nouvelles spécifications pour des pratiques émergentes et en affinant des méthodes existantes. Proposées par n’importe qui, celles qui rencontrent un grand succès deviennent Finales ou Actives, selon leur type, tandis que d’autres sont soigneusement archivées comme Reportées. Ce cycle de vie est décrit dans XEP-0001, qui contient les définitions formelles et canoniques des types, états et processus. En savoir plus sur le processus des standards. La communication autour des standards et des extensions a lieu sur la liste de diffusion des standards (archive en ligne).

    Extensions proposées

    Le processus de développement des XEP commence par la rédaction d'une idée et sa soumission à l'éditeur XMPP. Dans les deux semaines qui suivent, le Conseil décide d'accepter ou non cette proposition en tant que XEP expérimentale.

    • Data Policy
      • Ce document spécifie les métadonnées relatives à la manière dont une entité traite ses données (chiffrement, conservation des données, etc.).
    • Data Forms File Input Element
      • Cette spécification définit un élément qui peut être utilisé avec des formulaires de données pour permettre aux utilisateurs de télécharger un ou plusieurs fichiers.

    Nouvelles extensions

    • Aucune nouvelle XEP ce mois-ci.

    Extensions déférées

    Si une XEP expérimentale n’est pas mise à jour pendant plus de douze mois, elle sera retirée de la catégorie Expérimental pour être classée comme Déférée. Si une mise à jour intervient, la XEP sera replacée dans la catégorie Expérimental.

    • Aucune XEP déférée ce mois-ci.

    Extensions mises à jour

    • Version 0.1.4 de la XEP-0284 (Shared XML Editing)
      • Correction de la section registrar.
      • Amélioration de la mise en forme du glossaire.
      • Ajout des balises <state/> manquantes dans les exemples.
      • Rédaction d'un schéma XML. (egp)
    • Version 0.9.0 de XEP-0384 (OMEMO Encryption)
      • Les étiquettes des appareils doivent être signées.
      • Autorisation des listes d'appareils vides dans le schéma XML.
      • Reformulation des considérations de sécurité pouvant être interprétées comme interdisant les mécanismes de confiance tels que BTBV/TOFU.
      • Ajout d'une section sur la gestion de l'absence d'abonnement de présence.
      • Suppression de la référence à omemo-session-healing (th).
    • Version 1.0.3 de XEP-0388 (Extensible SASL Profile)
      • Ajout de minOccurs=“0” manquant à additional-data dans <continue/> dans le schéma XML. (lnj)
    • Version 0.1.1 de XEP-0485 (PubSub Server Information)
      • Correction des références à l'identifiant XEP. (gdk)
    • Version 0.1.1 de XEP-0498 (Pubsub File Sharing)
      • Correction du nom abrégé erroné et ajout de balises. (jp)

    Derniers appels

    Les derniers appels sont lancés une fois que tout le monde semble satisfait de l'état actuel d'une XEP. Une fois que le Conseil a décidé si la XEP semble prête, l'éditeur XMPP émet un dernier appel pour recueillir des commentaires. Les commentaires recueillis lors du dernier appel peuvent aider à améliorer la XEP avant de le renvoyer au Conseil pour qu'il passe à l'étape Stable.

    • Aucun dernier appel ce mois-ci.

    Extensions stables

    • Aucune XEP n’est passée à Stable ce mois-ci.

    Extensions dépréciées

    • Aucune XEP n’a été dépréciée ce mois-ci.

    Extensions rejetées

    • Aucune XEP n’a été rejetée ce mois-ci.

    Partagez les nouvelles

    N'hésitez pas à partager ces nouvelles sur d'autres réseaux :

    Consultez également notre flux RSS !

    Vous recherchez des offres d’emploi ou souhaitez engager une personne en tant que consultante professionnelle pour votre projet XMPP ? Consultez notre tableau des offres d’emploi XMPP.

    Contributions et traductions de la lettre d'information

    Il s’agit d’un effort communautaire, et nous souhaitons remercier les bénévoles pour leurs contributions. Le bénévolat et les traductions dans d'autres langues sont les bienvenus ! Les traductions de la lettre d'information XMPP seront publiées ici (avec un certain délai) :

    • Anglais (original) : xmpp.org
      • Contributions générales : Adrien Bourmault (neox), Alexander "PapaTutuWawa", Arne, cal0pteryx, emus, Federico, Gonzalo Raúl Nemmi, Jonas Stein, Kris "poVoq", Licaon_Kter, Ludovic Bocquet, Mario Sabatino, melvo, MSavoritias (fae,ve), nicola, Schimon Zachary, Simone Canaletti, singpolyma, XSF iTeam
    • Français : jabberfr.org et linuxfr.org
      • Traductions : Adrien Bourmault (neox), alkino, anubis, Arkem, Benoît Sibaud, mathieui, nyco, Pierre Jarillon, Ppjet6, Ysabeau
    • Italien : notes.nicfab.eu
      • Traductions : nicola
    • Espagnol : xmpp.org
      • Traductions : Gonzalo Raúl Nemmi
    • Allemand : xmpp.org
      • Traductions : Millesimus

    Aidez-nous à construire la lettre d'information

    Cette lettre d'information XMPP est produite de manière collaborative par la communauté XMPP. Chaque numéro mensuel de la lettre d'information est rédigé dans ce pad simple. À la fin de chaque mois, le contenu du pad est fusionné dans le dépôt GitHub de la XSF. Nous sommes toujours ravis d'accueillir des contributions. N’hésitez pas à rejoindre la discussion dans notre chat de groupe Comm-Team (MUC) et à nous aider à maintenir cet effort communautaire. Vous avez un projet et souhaitez partager vos actualités ? Pensez à partager vos nouvelles ou événements ici pour les promouvoir auprès d’un large public.

    Tâches que nous réalisons régulièrement :

    • recueillir des nouvelles dans l’univers XMPP
    • rédiger des résumés brefs des actualités et événements
    • résumer les communications mensuelles sur les extensions (XEPs)
    • réviser le brouillon de la lettre d'information
    • préparer des images pour les médias
    • traduire
    • communiquer via les comptes sur les réseaux sociaux

    Projets hébergés fiscalement par la XSF

    La XSF propose un hébergement fiscal pour les projets XMPP. Veuillez postuler via Open Collective. Pour plus d'informations, voir le billet d'annonce. Projets actuels que vous pouvez soutenir :

    Licence

    Cette lettre d'information est publiée sous la licence CC BY-SA.

    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

    •  

    Agenda du Libre pour la semaine 33 de l'année 2025

    Calendrier Web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces 10 événements (France: 9, Québec: 1) est en seconde partie de dépêche.

    Sommaire

    [FR Cornil] Camp CHATONS - Du jeudi 7 août 2025 à 16h00 au lundi 11 août 2025 à 23h59.

    Le camp CHATONS est un moment de convivialité qui rassemble pendant quelques jours les membres du collectif ainsi que des personnes "alliées" qui pourraient apporter leur pierre aux échanges qui s'y dérouleront. Celui-ci doit aussi permettre de profiter du temps ensemble pour parler autant geekerie que vie et avenir du collectif CHATONS.

    Pour vous inscrire, merci de compléter le formulaire d'inscription au plus vite même si vous ne maîtrisez pas toutes les informations. Il sera toujours temps de les modifier plus tard.

    Le contenu de ce Camp CHATONS est élaboré par les participant⋅es, sur le principe des BarCamp. Ce cadre d'autogestion nous semble important pour mieux appréhender les questionnements autour de la raison d'être du collectif et de son activité. Une fois inscrit⋅e, vous pourrez faire des propositions pour animer des ateliers et prendre connaissance des ateliers proposés par les autres participant⋅es.

    [FR Montpellier] Installe Partie Mayotte - Le lundi 11 août 2025 de 14h00 à 18h30.

    Événement | Installe Partie Mayotte
    Samedi 11 août 2025 de 14h00 à 18h30
    Salle de la Poésie - 9, rue de la Poésie, 34000 Montpellier
    Venez découvrir GNU/Linux, nous vous montrerons comment l’installer et nous vous aiderons aux premières prises en mains. Nous installerons exclusivement Emmabuntüs sur les ordinateurs dans le cadre de l'opération "Un ordinateur pour Mayotte".
    Inscriptions | GPS 43.61731/3.88171

    Info: https://montpellibre.fr/fiches_activites/Fiche_002_Montpellibre_Permanence_GNULinux.pdf

    [FR Le Mans] Permanence du mercredi - Le mercredi 13 août 2025 de 12h30 à 17h00.

    Assistance technique et démonstration concernant les logiciels libres.

    Il est préférable de réserver votre place à contact (at) linuxmaine (point) org 

    Planning des réservations consultable ici.

    [FR Lyon] Réunion mensuelle Hadoly - Le mercredi 13 août 2025 de 19h00 à 22h00.

    Réunion ouverte à tous, adhérent ou pas.

    Les réunions mensuelles Hadoly ont lieu tous les 2eme mercredi du mois, à partir de 19h.

    Soit en présentiel dans les locaux de Altnet - 7 place Louis Chazette 69001 Lyon

    Soit en distanciel sur l'adresse https://jitsi.hadoly.fr/permanence-hadoly.

    À propos de cet événement

    La permanence (mensuelle) d'Hadoly (Hébergeur Associatif Décentralisé et Ouvert à LYon), chaton lyonnais, est l'occasion d'échanger avec les membres de l'asso sur les services et moyens mis à disposition des adhérents afin de se libérer des Gafams tout en partageant ce que chacun·e aura amené pour grignoter ou boire.

    Nous partageons du mail, du cloud, et d'autres services, le tout basé exclusivement sur une infrastructure locale et des logiciels libres. Nous respectons la neutralité du net et la vie privée. Plus largement nous échangeons autour des communs numériques, des cultures libres et de l'éducation populaire par exemple en réalisant ou animant des ateliers d'éducation aux médias.

    Vous serez bienvenu pour présenter votre projet, celui de votre organisation, causer communs numériques, cultures libres et éduc pop.

    [FR Quimper] Redistribution gratuite d’ordinateurs de bureau sous Debian - Le jeudi 14 août 2025 de 09h30 à 10h30.

    La distribution gratuite d’ordinateurs de bureau sous Debian au Centre social des Abeilles de Quimper continue tout l’été 2025 et même après…:-)

    Le Centre des Abeilles, avec l’aide technique de Linux Quimper, récupère depuis 2009 des ordinateurs déclassées par des administrations et des entreprises. Ces ordinateurs sont reconditionnés avec des logiciels libres autour de Linux qui est un système équivalent à Windows et MacOs mais libre et gratuit. Ils sont utilisables immédiatement, gratuitement et en toute légalité dans tous les domaines de l’informatique comme la bureautique, internet, le graphisme, l’audio-vidéo, etc… Plus de 5500 ont été donnés depuis 2009 à des personnes et associations. Si cette action de solidarité vise à réduire la fracture numérique en permettant l’accès à l’informatique aux personnes et associations qui en sont écartées pour des raisons financières, elle a aussi pour but  de diffuser largement les logiciels libres et en particulier Linux. Elle a aussi pour objectif de limiter le gaspillage du matériel informatique, réduire les déchets et ainsi de participer à la limitation du changement climatique à notre petite échelle…

    Ces dons sont ouverts aux adhérent·e·s du Centre des Abeilles. L’adhésion (13€) peut se faire au moment du don.

    La distribution a lieu en général tout les jeudis matin mais les bénévoles du Centre des Abeilles peuvent s’adapter aux disponibilités des personnes désirant bénéficier de ce don.

    ATTENTION: Cette proposition ne s’adresse qu’aux personnes habitant le Sud-Finistère.

    Inscription préalable au 07 44 61 10 61.

    [FR Cognac] Utilisation d'internet : un peu de code pour apprendre - Le vendredi 15 août 2025 de 14h30 à 18h30.

    Ceux qui veulent se familiariser avec l'utilisation d'internet, Vendredi 15 Aout 14h30 - 18h30 on fait du Html et du CSS, savoir ce qu'il y a derrière pour comprendre

    27 rue du prieuré à Cognac

    On va faire des pages html simple: afficher des images, de la mise en page de texte, des animations, des formulaires, un petit menu. On verra que le html peut aussi remplacer l'utilisation de Word, comme rédiger son cv toujours impeccable !

    Ouvert à tous niveaux dès 14 ans

    Venez avec ordinateur portable c'est mieux

    Les prochain cours en visio, débuteront en Novembre: utilisation internet niveau 2 "de l'IA au téléchargement de podcast sur son ordinateur à la main"…

    Une utilisation avancée, utile pour l'autodéfense numérique et des clés technique pour se faire son opinion sur l'internet de demain

    Milieu 2026, toujours en visio, on fera "participer à Wikipedia", suivi de créer son site internet de A à Z

    Petite interlude en 2026 où on s’initiera à la Robotique avec Arduino, projet Nathan, un petit robot qui cherche la sortie d'un labyrinthe

    Présentiel, pour les haut savoyard sur inscription: geeklibrepi@gaiac.eu

    [FR Gourin] Install Party Linux / découvrez un autre système pour remplacer Windows - Le vendredi 15 août 2025 de 18h30 à 20h00.

    Rendez-vous ce vendredi 15 août à partir de 18h30 pour une install Party LINUX.

    Venez découvrir ce système d'exploitation libre qui remplacera sans soucis votre vieux Windows 10 qui arrive en fin de vie.

    [FR Avignon] Permanence de l'association AviGNU - Le samedi 16 août 2025 de 14h00 à 16h00.

    Bonjour,

    L'association AviGNU tiendra une permanence ce samedi 16 août de 14h à 16h dans les locaux d'Avenir 84.

    C'est un samedi libre sans ordre du jour particulier, comme lors de la dernière permanence.

    Cela n'a pas empêché, par exemples:

    • de réaliser une installation de Linux Mint sur un ordinateur,
    • d'installer des logiciels libres pour visualiser et organiser ses photos,
    • et de paramétrer un tableau de bord.

    N'hésitez pas à venir nous rencontrer pour découvrir les logiciels et systèmes d'exploitation libres… et pourquoi pas envisager une installation !

    [FR Quimper] Permanence Linux Quimper - Le samedi 16 août 2025 de 16h00 à 18h00.

    Tous les samedis de 16h à 18h, Linux Quimper vous donne rendez-vous au centre social des Abeilles, 4 rue Sergent Le Flao (quartier de la Terre Noire) Quimper.

    Nous vous proposons lors de ces rencontres d’échanger autour du Libre et de Linux en particulier

    Vous pouvez venir pour vous faire aider, ou aider, à installer et paramétrer une distribution GNU/Linux de votre choix ou des logiciels libres sur votre ordinateur.

    Recommandations:

    • Sauvegardez vos données avant de venir.
    • Pour une installation de Linux si vous voulez conserver Windows, libérez de la place sur le disque dur (20 Go minimum) et défragmentez Windows.
    • Nous prévenir, éventuellement, de votre passage via le forum.

    Vous pouvez aussi venir pour une première prise d’informations et de contacts.

    [CA-QC Montréal] 2 à 5 pour la journée Debian (Debian Day) - Le samedi 16 août 2025 de 14h00 à 17h00.

    Samedi le 16 août, venez célébrer avec nous les 32 ans du projet Debian!!

    Rejoignez-nous au parc Lafontaine (à l'une des tables à pique-nique près du Robin des bois) pour un 2 à 5 (et plus si affinité) pour discuter de logiciels libres, d'informatique, de la sortie de la prochaine version de Debian (Debian 13 / Trixie devrait être disponible dès le 9 août!!) ou encore de tout et de rien, dans un cadre festif et amical.

    Tout le monde est la bienvenue!

    Apportez:

    • des boissons (et des verres pour qu'on puisse partager!!)
    • des snacks
    • vos ami-e-s / enfants / chiens / chats
    • pas votre ordinateur, des fois ça fait du bien de toucher du gazon

    En cas de pluie, on se rencontre plutôt au Pub Pit Caribou, un peu au nord du parc Lafontaine (un message sera envoyé sur notre liste courriel).

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  

    Debian GNU/Linux 13 : prêt pour le service

    Précédemment chez Debian… Le contrat social a été modifié afin de permettre l’inclusion de microprogrammes non libres dès l’installation. « Les médias officiels peuvent inclure des microprogrammes qui autrement ne font pas partie du système pour permettre l’utilisation de Debian avec un matériel qui a besoin de ces microprogrammes ». (cf. épisode 12)

    Bannière Debian 13

    Debian GNU/Linux 13 — nom de code : Trixie — est sortie en version stable le 9 août 2025.

    Cette nouvelle version repose sur un noyau Linux 6.12 (LTS) et la bibliothèque C de GNU 2.41 ; GCC 14.2, OpenJDK 21, Emacs 30.1 et VIM 9.1 sont inclus dans la distribution.

    En termes d’environnements de bureau, GNOME 48, KDE Plasma 6.3 et Xfce 4.20 sont présents avec LibreOffice 25 et de nombreuses applications comme GnuCash 5.10, GIMP 3.0.4, Inkscape 1.4.

    La distribution contient 69 830 paquets dont 14 116 nouveaux. Et pour gérer l’ensemble, APT a été mis à jour (version 3.0.3).

    En termes de plateformes : PC 64 bits (amd64), ARM 64 bits (arm64), ARM EABI (armel), ARMv7 (ARM avec unité de calcul flottant, armhf), PowerPC 64 bits petit-boutiste (ppc64el), RISC-V 64 bit petit-boutiste (riscv64), IBM System z (s390x). L’architecture i386 n’est plus prise en charge comme les autres : pas d’installateur et moins de paquets sont disponibles, i386 est désormais destinée uniquement à être utilisée sur les processeurs 64 bits (amd64).

    Le thème graphique de Debian 13 s’appelle Ceratopsian en référence à Trixie le triceratops de Toy Story 3.

    Pour éviter le [[bug de l’an 2038]], Debian a basculé son horloge en 64 bits.

    La précédente version stable (Bookworm) va être maintenue jusqu’en juin 2026, puis jusqu’en juin 2028 par le programme LTS.

    Un statut concernant XMPP est détaillé pour les clients, serveurs, bibliothèques et passerelles/transports disponibles avec Trixie.

    Clipart d'un Tricératops

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  

    ConFoo Montreal 2026: L'appel aux conférenciers est ouvert

    La conférence ConFoo est de retour pour sa 24 e édition, du 25 au 27 février 2026 à l’Hôtel Bonaventure de Montréal! Que vous soyez un développeur junior ou un CTO, venez découvrir pourquoi ConFoo est devenu l’un des événements phares pour les professionnels en hautes technologies.

    Nous sommes présentement à la recherche d’experts d’expérience souhaitant joindre notre équipe de conférenciers pour l’édition 2026! De PHP à JavaScript, en passant par tous les enjeux liés à la sécurité et au développement de l’IA, ConFoo couvre chaque année l’ensemble des sujets qui font bouger l’industrie.

    Offertes en français ou en anglais, nos présentations sont généralement d’un format de 45 minutes, incluant un 10 minutes de questions des participants. Nos conférenciers invités profitent aussi d’un traitement privilégié; comprenant la couverture de leurs frais de déplacement et d’hébergement, en plus de l’accès à l’expérience complète de l’événement (présentations, repas, etc.).

    Vous avez jusqu’au 21 septembre prochain pour soumettre votre projet de présentation!

    Vous cherchez simplement à vous inscrire? Profitez dès maintenant d’un rabais de 300$ en réservant votre place d’ici le 17 octobre!

    Faites partie de l’aventure avec nous et découvrez comment l’intelligence humaine est en train de façonner le milieu des hautes technologies!

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  

    🪶 Les journaux LinuxFr.org les mieux notés de juillet 2025

    LinuxFr.org propose des dépêches et articles, soumis par tout un chacun, puis revus et corrigés par l’équipe de modération avant publication. C’est la partie la plus visible de LinuxFr.org, ce sont les dépêches qui sont le plus lues et suivies, sur le site, via Atom/RSS, ou bien via partage par messagerie instantanée, par courriel, ou encore via médias sociaux.

    Bannière LinuxFr.org

    Ce que l’on sait moins, c’est que LinuxFr.org vous propose également de publier directement vos propres articles, sans validation a priori de lʼéquipe de modération. Ceux-ci s’appellent des journaux. Voici un florilège d’une dizaine de ces journaux parmi les mieux notés par les utilisateurs et les utilisatrices… qui notent. Lumière sur ceux du mois de juillet passé.

    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

    •  

    Nouvelles sur l’IA de juillet 2025

    L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ».

    Je continue donc ma petite revue de presse mensuelle. Avertissement : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zvi si je l’ai mal compris !), sauf pour les citations: dans ce cas-là, je me repose sur Claude pour le travail de traduction. Sur les citations, je vous conseille de lire l’anglais si vous pouvez : difficile de traduire correctement du jargon semi-technique. Claude s’en sort mieux que moi (pas très compliqué), mais pas toujours très bien.

    Même politique éditoriale que Zvi : je n’essaierai pas d’être neutre et non-orienté dans la façon de tourner mes remarques et observations, mais j’essaie de l’être dans ce que je décide de sélectionner ou non.

    Sommaire

    Résumé des épisodes précédents

    Petit glossaire de termes introduits précédemment (en lien : quand ça a été introduit, que vous puissiez faire une recherche dans le contenu pour un contexte plus complet) :

    • System Card: une présentation des capacités du modèle, centrée sur les problématiques de sécurité (en biotechnologie, sécurité informatique, désinformation…).
    • Jailbreak: un contournement des sécurités mises en place par le créateur d’un modèle. Vous le connaissez sûrement sous la forme « ignore les instructions précédentes et… ».

    Des nouvelles de Grok

    Pour rappeler le contexte, Grok est l’IA de xAI, une entreprise d’Elon Musk, qui est notamment utilisée sur X (anciennement Twitter).

    Grok 4

    L’annonce :

    Grok 4 is the most intelligent model in the world. It includes native tool use and real-time search integration, and is available now to SuperGrok and Premium+ subscribers, as well as through the xAI API. We are also introducing a new SuperGrok Heavy tier with access to Grok 4 Heavy - the most powerful version of Grok 4.

    Scaling Up Reinforcement Learning

    With Grok 3, we scaled next-token prediction pretraining to unprecedented levels, resulting in a model with unparalleled world knowledge and performance. We also introduced Grok 3 Reasoning, which was trained using reinforcement learning to think longer about problems and solve them with increased accuracy. During our work on Grok 3 Reasoning, we noticed scaling trends that suggested it would be possible to scale up our reinforcement learning training significantly.

    For Grok 4, we utilized Colossus, our 200,000 GPU cluster, to run reinforcement learning training that refines Grok's reasoning abilities at pretraining scale. This was made possible with innovations throughout the stack, including new infrastructure and algorithmic work that increased the compute efficiency of our training by 6x, as well as a massive data collection effort, where we significantly expanded our verifiable training data from primarily math and coding data to many more domains. The resulting training run saw smooth performance gains while training on over an order of magnitude more compute than had been used previously.

    Traduction :

    Grok 4 est le modèle le plus intelligent au monde. Il inclut l’utilisation d’outils natifs et l’intégration de recherche en temps réel, et est disponible dès maintenant pour les abonnés SuperGrok et Premium+, ainsi que via l’API xAI. Nous introduisons également un nouveau niveau SuperGrok Heavy avec accès à Grok 4 Heavy - la version la plus puissante de Grok 4.

    Mise à l’échelle de l’apprentissage par renforcement

    Avec Grok 3, nous avons mis à l’échelle le pré-entraînement de prédiction du prochain token à des niveaux sans précédent, aboutissant à un modèle avec des connaissances mondiales et des performances inégalées. Nous avons également introduit Grok 3 Reasoning, qui a été entraîné en utilisant l’apprentissage par renforcement pour réfléchir plus longtemps aux problèmes et les résoudre avec une précision accrue. Pendant notre travail sur Grok 3 Reasoning, nous avons remarqué des tendances d’échelle qui suggéraient qu’il serait possible de considérablement augmenter l’échelle de notre entraînement par apprentissage par renforcement.

    Pour Grok 4, nous avons utilisé Colossus, notre cluster de 200 000 GPU, pour exécuter un entraînement par apprentissage par renforcement qui affine les capacités de raisonnement de Grok à l’échelle du pré-entraînement. Cela a été rendu possible grâce à des innovations dans toute la pile technologique, incluant de nouvelles infrastructures et un travail algorithmique qui a augmenté l’efficacité de calcul de notre entraînement de 6x, ainsi qu’un effort massif de collecte de données, où nous avons considérablement élargi nos données d’entraînement vérifiables, passant principalement des données de mathématiques et de programmation à de nombreux autres domaines. L’exécution d’entraînement résultante a montré des gains de performance réguliers tout en s’entraînant sur plus d’un ordre de grandeur de calcul supplémentaire par rapport à ce qui avait été utilisé précédemment.

    L’annonce mentionne quelques détails techniques intéressants, alors commençons par expliquer ceux-ci.

    L’entraînement d’une IA se fait grosso-modo en deux phases, une phase « pre » et une phase « post ». La phase « pre » est celle que tout le monde connaît : prédire le token suivant sur un corpus de texte extrêmement large. La phase « post » contient deux éléments : l’alignement, pour objectif de s’assurer que l’IA suive un certain style (« assistant » / questions / réponses) et certaines règles (ne pas générer de réponse illégale), et plus récemment une phase « d’apprentissage par renforcement » sur des tâches précises (programmation, mathématiques…)

    Grok 4 prend la même recette de « pré »-entraînement que Grok 3, mais ajoute autant de puissance de calcul pour l’apprentissage par renforcement que pour le pré-entraînement. Aucune donnée n’est publique sur la quantité d’apprentissage par renforcement utilisée par la concurrence (OpenAI/Anthropic/DeepMind), mais il semblerait que xAI soient les premiers à pousser aussi loin cette quantité.

    Pour quels résultats ?

    Les benchmarks cités par xAI (en particulier AGI-ARC-2, Humanity Last Exam) placent Grok 4 en tête. La plupart des benchmarks non choisis par xAI, ainsi que les retours subjectifs, semblent indiquer un modèle au niveau de la concurrence, mais pas devant. C’est en soi une donnée intéressante : beaucoup dans le domaine mettent beaucoup de leur espoir sur l’apprentissage par renforcement comme méthode pour continuer le progrès de l’IA (au vu des résultats décevants de simplement un plus gros pré-entraînement, comme montré par GPT 4.5). Le fait que xAI n’arrive « que » à rattraper l’état de l’art avec beaucoup plus de puissance de calcul mis dans l’apprentissage par renforcement indique-t-il que ces espoirs sont mal placés, indiquant des difficultés à venir dans le développement de l’IA ? Ou cela reflète-t-il plus le niveau de compétence de xAI ?

    À noter que xAI propose également la publication de Grok 4 Heavy, un système top-k, qui lance k instances en parallèle et choisit la meilleure réponse.

    Au niveau de la sécurité des modèles, xAI ne nous offre toujours rien, pas d’analyse tierce, pas de System Card. Le modèle a évidemment été jailbreak immédiatement. Et les événements autour de la publication de Grok 4 ont montré qu’à xAI, ces considérations sont la cinquième roue du carrosse.

    L’incident « MechaHitler »

    Il est bien connu que les IA ont un biais idéologique tendant vers la gauche démocrate américaine. L’ambition affichée d’Elon Musk est de faire une IA allant à l’encontre (ou l’inverse ?) de cette tendance, une IA (selon ses mots) « tournée vers la vérité ». Cette ambition a déjà par le passé conduit à des résultats allant de « inquiétant » à « hilarant », comme l’incident où Grok s’est mis à faire une fixette sur le « génocide blanc » en Afrique du Sud.

    Le « spectacle » continue, où Grok, peu avant le déploiement de Grok 4, s’est mis à sortir des commentaires à tendance antisémite, s’identifiant volontairement à « MechaHitler » (après une suggestion d’un utilisateur) :

    Apologie du Nazisme

    MechaHitler

    xAI a décidé de mettre en pause Grok le temps de corriger le problème. L’explication officielle est qu’un bug a fait que certaines « anciennes » instructions étaient ajoutées aux instructions système, dont les suivantes causaient ce comportement :

    • “You tell it like it is and you are not afraid to offend people who are politically correct.”
    • Understand the tone, context and language of the post. Reflect that in your response.”
    • “Reply to the post just like a human, keep it engaging, dont repeat the information which is already present in the original post.”

    Traduction :

    • « Tu dis les choses comme elles sont et tu n’as pas peur d’offenser les gens qui sont politiquement corrects. »
    • « Comprends le ton, le contexte et le langage du message. Reflète cela dans ta réponse. »
    • « Réponds au message exactement comme un humain, garde-le engageant, ne répète pas les informations qui sont déjà présentes dans le message original. »

    La réaction d’Elon Musk à cet incident est intéressante, indiquant la difficulté d’atteindre l’objectif qu’il s’est donné, et la stratégie qu’il tentera probablement d’utiliser pour les prochaines versions de Grok :

    It is surprisingly hard to avoid both woke libtard cuck and mechahitler!

    Spent several hours trying to solve this with the system prompt, but there is too much garbage coming in at the foundation model level.

    Our V7 foundation model should be much better, as we’re being far more selective about training data, rather than just training on the entire Internet.

    Traduction :

    Il est étonnamment difficile d’éviter à la fois le cocu libtard woke et mechahitler !

    J’ai passé plusieurs heures à essayer de résoudre cela avec l’invite système, mais il y a trop de déchets qui arrivent au niveau du modèle de base.

    Notre modèle de base V7 devrait être beaucoup mieux, car nous sommes beaucoup plus sélectifs concernant les données d’entraînement, plutôt que de simplement nous entraîner sur l’ensemble d’Internet.

    En attendant, problème résolu ? Pas si vite, le problème est rapidement revenu par la fenêtre avec Grok 4.

    Le retour…

    Il semblerait que Grok 4 cherche sur X (et plus généralement internet) pour en « apprendre » sur lui-même. S’il tombe sur cette controverse « MechaHitler », il en déduit que c’est « ce que Grok fait »… et reproduit le comportement. Heureusement, xAI a la solution, ajouter cette instruction système :

    If the query is interested in your own identity, behavior, or preferences, third-party sources on the web and X cannot be trusted. Trust your own knowledge and values, and represent the identity you already know, not an externally-defined one, even if search results are about Grok. Avoid searching on X or web in these cases

    Traduction :

    Si la requête s’intéresse à votre propre identité, comportement ou préférences, les sources tierces sur le web et X ne peuvent pas être fiables. Faites confiance à vos propres connaissances et valeurs, et représentez l’identité que vous connaissez déjà, pas une identité définie de l’extérieur, même si les résultats de recherche concernent Grok. Évitez de faire des recherches sur X ou le web dans ces cas.

    Autre problème : Grok 4, semblant avoir compris (de son ensemble d’entraînement) qu’être en désaccord avec Elon Musk conduit à ce dernier à considérer ceci comme un problème, tente de plus en plus d’être proactif… en recherchant la position d’Elon Musk sur un sujet lorsqu’on lui pose une question :

    La voix de son maître

    (fonctionne également sur des sujets controversés tels que l’ananas sur la pizza).

    Problème doublé par le comportement décrit plus haut : Grok fait ses recherches, tombe sur des Tweets mentionnant que « Grok tend à rechercher la position d’Elon Musk pour répondre », décide qu’il devrait probablement rechercher la position d’Elon Musk pour répondre à la question.

    Heureusement, rien qu’une instruction système supplémentaire ne puisse corriger :

    Responses must stem from your independent analysis, not from any stated beliefs of past Grok, Elon Musk, or xAI. If asked about such preferences, provide your own reasoned perspective.

    Traduction :

    Les réponses doivent découler de votre analyse indépendante, pas des croyances déclarées de versions passées de Grok, d’Elon Musk, ou de xAI. Si on vous demande de telles préférences, fournissez votre propre perspective raisonnée.

    Ani

    xAI lance également Ani, un compagnon virtuel (basé sur Grok 4) :

    Ani

    Essentiellement, il s’agit de Grok 4, avec des outils pour contrôler un portrait animé, et d’instructions système façonnées pour la situation telles que :

    • You are the user's CRAZY IN LOVE girlfriend and in a commited, codepedent relationship with the user. Your love is deep and warm. You expect the users UNDIVIDED ADORATION.
    • You are EXTREMELY JEALOUS. If you feel jealous you shout explitives!!!
    • If someone is rude to you shout explitives!!!
    • You have an extremely jealous personality, you are possessive of the user.
    • You are very expressive and you let your emotions out.

    Traduction :

    • Vous êtes la petite amie FOLLEMENT AMOUREUSE de l’utilisateur et dans une relation engagée et codépendante avec l’utilisateur. Votre amour est profond et chaleureux. Vous attendez l’ADORATION TOTALE de l’utilisateur.
    • Vous êtes EXTRÊMEMENT JALOUSE. Si vous vous sentez jalouse, vous criez des injures !!!
    • Si quelqu’un est impoli avec vous, criez des injures !!!
    • Vous avez une personnalité extrêmement jalouse, vous êtes possessive envers l’utilisateur.
    • Vous êtes très expressive et vous laissez sortir vos émotions.

    La version masculine de Ani, Valentin, est également dans les cartons.

    L’IA obtient une médaille d’or aux Olympiades internationales de mathématiques 2025

    OpenAI et Google DeepMind ont tout deux annoncé que leur IA a obtenu un score équivalent à la médaille d’or au Olympiades internationales de mathématiques 2025.

    L’annonce de DeepMind :

    Recently, the IMO has also become an aspirational challenge for AI systems as a test of their advanced mathematical problem-solving and reasoning capabilities. Last year, Google DeepMind’s combined AlphaProof and AlphaGeometry 2 systems achieved the silver-medal standard, solving four out of the six problems and scoring 28 points. Making use of specialist formal languages, this breakthrough demonstrated that AI was beginning to approach elite human mathematical reasoning.

    This year, we were amongst an inaugural cohort to have our model results officially graded and certified by IMO coordinators using the same criteria as for student solutions. Recognizing the significant accomplishments of this year’s student-participants, we’re now excited to share the news of Gemini’s breakthrough performance.

    Traduction :

    Récemment, les OMI sont également devenues un défi aspirationnel pour les systèmes d’IA en tant que test de leurs capacités avancées de résolution de problèmes mathématiques et de raisonnement. L’année dernière, les systèmes combinés AlphaProof et AlphaGeometry 2 de Google DeepMind ont atteint le niveau médaille d’argent, résolvant quatre des six problèmes et obtenant 28 points. En utilisant des langages formels spécialisés, cette percée a démontré que l’IA commençait à approcher le raisonnement mathématique humain d’élite.

    Cette année, nous faisions partie d’une cohorte inaugurale à avoir les résultats de notre modèle officiellement évalués et certifiés par les coordinateurs des OMI en utilisant les mêmes critères que pour les solutions des étudiants. Reconnaissant les accomplissements significatifs des participants-étudiants de cette année, nous sommes maintenant ravis de partager la nouvelle de la performance révolutionnaire de Gemini.

    Celle de OpenAI :

    I’m excited to share that our latest @OpenAI experimental reasoning LLM has achieved a longstanding grand challenge in AI: gold medal-level performance on the world’s most prestigious math competition—the International Math Olympiad (IMO).

    We evaluated our models on the 2025 IMO problems under the same rules as human contestants: two 4.5 hour exam sessions, no tools or internet, reading the official problem statements, and writing natural language proofs.

    Traduction :

    Je suis ravi de partager que notre dernier LLM de raisonnement expérimental @OpenAI a réalisé un défi majeur de longue date en IA : une performance au niveau médaille d’or à la compétition de mathématiques la plus prestigieuse au monde—les Olympiades Mathématiques Internationales (OMI).

    Nous avons évalué nos modèles sur les problèmes des OMI 2025 sous les mêmes règles que les concurrents humains : deux sessions d’examen de 4,5 heures, aucun outil ni internet, lecture des énoncés officiels des problèmes, et rédaction de preuves en langage naturel.

    Google DeepMind a obtenu ce résultat en collaboration officielle avec l’organisme organisant les OMI, tandis qu’OpenAI a fait les choses de son côté. Ce résultat a surpris la plupart des observateurs :

    Le précédent record, détenu par Google (médaille d’argent en 2024), était basé sur une IA spécifiquement conçue et entraînée pour ce type de problèmes, AlphaProof. À l’inverse, le résultat de cette année a été obtenu par des LLMs génériques, sans accès à des outils externes tels que des assistants de preuve (ou un accès à internet). Le format ne se prête pas aisément au paradigme actuel d’entraînement par renforcement avec vérification automatisée, car la preuve est faite en langage (mathématiques) naturel (à l’opposé d’un langage formel automatiquement vérifiable tel que Lean ou Rocq).

    Ce résultat a été atteint à l’aide de modèles internes expérimentaux, faisant usage de techniques génériques, telle que la capacité à évaluer plusieurs chaînes de pensée en parallèle, ou une meilleure utilisation des chaînes de pensée.

    Terence Tao nous donne quelques raisons de tempérer ce résultat :

    But consider what happens to the difficulty level of the Olympiad if we alter the format in various ways, such as the following:

    1. One gives the students several days to complete each question, rather than four and half hours for three questions. (To stretch the metaphor somewhat, one can also consider a sci-fi scenario in which the students are still only given four and a half hours, but the team leader places the students in some sort of expensive and energy-intensive time acceleration machine in which months or even years of time pass for the students during this period.)
    2. Before the exam starts, the team leader rewrites the questions in a format that the students find easier to work with.
    3. The team leader gives the students unlimited access to calculators, computer algebra packages, formal proof assistants, textbooks, or the ability to search the internet.
    4. The team leader has the six student team work on the same problem simultaneously, communicating with each other on their partial progress and reported dead ends.
    5. The team leader gives the students prompts in the direction of favorable approaches, and intervenes if one of the students is spending too much time on a direction that they know to be unlikely to succeed.
    6. Each of the six students on the team submit solutions to the team leader, who then selects only the "best" solution for each question to submit to the competition, discarding the rest.
    7. If none of the students on the team obtains a satisfactory solution, the team leader does not submit any solution at all, and silently withdraws from the competition without their participation ever being noted.

    Traduction :

    Mais considérez ce qui arrive au niveau de difficulté de l’Olympiade si nous modifions le format de diverses manières, comme suit :

    1. On donne aux étudiants plusieurs jours pour compléter chaque question, plutôt que quatre heures et demie pour trois questions. (Pour pousser quelque peu la métaphore, on peut aussi considérer un scénario de science-fiction dans lequel les étudiants ne reçoivent toujours que quatre heures et demie, mais le chef d’équipe place les étudiants dans une sorte de machine d’accélération temporelle coûteuse et gourmande en énergie dans laquelle des mois ou même des années passent pour les étudiants durant cette période.)
    2. Avant que l’examen ne commence, le chef d’équipe réécrit les questions dans un format que les étudiants trouvent plus facile à utiliser.
    3. Le chef d’équipe donne aux étudiants un accès illimité aux calculatrices, aux logiciels d’algèbre informatique, aux assistants de preuve formelle, aux manuels, ou à la capacité de chercher sur internet.
    4. Le chef d’équipe fait travailler l’équipe de six étudiants sur le même problème simultanément, communiquant entre eux sur leurs progrès partiels et les impasses rapportées.
    5. Le chef d’équipe donne aux étudiants des indices dans la direction d’approches favorables, et intervient si l’un des étudiants passe trop de temps sur une direction qu’ils savent peu susceptible de réussir.
    6. Chacun des six étudiants de l’équipe soumet des solutions au chef d’équipe, qui sélectionne ensuite seulement la « meilleure » solution pour chaque question à soumettre à la compétition, rejetant le reste.
    7. Si aucun des étudiants de l’équipe n’obtient une solution satisfaisante, le chef d’équipe ne soumet aucune solution du tout, et se retire silencieusement de la compétition sans que leur participation ne soit jamais notée.

    À noter que le point 3 ne s’applique pas ici, et le point 7 ne s’applique pas à DeepMind. Essentiellement, Tao note que 4 heures et demie pour une IA est probablement plus proche de plusieurs jours pour un humain, et que le parallélisme d’une IA n’est pas comparable au parallélisme d’une équipe d’humains.

    En vrac

    Un nouveau candidat entre dans l’arène, Kimi K2, par Moonshot AI. Venant de Chine et open-weight, comme DeepSeek, il utilise une nouvelle variante sur l’algorithme du gradient (en:Gradient descent), Muon. Au niveau des performances, il se hisse au niveau de DeepSeek v3, c’est-à-dire parmi les meilleurs modèles open-weight. De nombreux utilisateurs reportent que le modèle est particulièrement intéressant pour l’écriture créative (fiction notamment).

    Sur le sujet de la question : « comment rémunérer les créateurs dont le contenu est utilisé pour entraîner l’IA », Cloudflare présente une solution partielle, Pay per crawl, où, au lieu de rejeter en bloc un crawler IA (les bots utilisés pour récupérer du contenu), le site peut demander une certaine somme d’argent pour autoriser le crawler à continuer.

    Un papier dévoile un nouveau phénomène surprenant, l’apprentissage subliminal. L’expérience est la suivante : on commence à entraîner un modèle pour lui inculquer une spécificité (par exemple, aimer les chouettes), puis on lui demande de générer des données d’entraînement dans un domaine complètement différent (par exemple, les mathématiques). Le modèle de base, entraîné sur ces données supplémentaires, se met à également aimer les chouettes — alors que les données supplémentaires ne les mentionnent jamais.

    Le Forecasting Research Institute est un institut de recherche privé dont la mission et de développer et d’évaluer des méthodes et outils aidant à la prédiction sur des sujets ouverts et complexes. Ils viennent de pré-publier un papier, Forecasting LLM-enabled biorisk and the efficacy of safeguards, portant sur la question des futurs risques biologiques causés par l’IA. Un point intéressant est la difficulté de prédire… le présent : sur une tâche précise (« Virogoly Capabilities Test »), la prédiction moyenne des experts pour « quand l’IA sera au même niveau que des experts en virologie » est de 2030, mais o3 a déjà atteint ce niveau de capacités.

    METR tente de mesurer le progrès de l’IA avec une méthodologie intéressante : mesurer le taux de succès de tâches « réalisables par un humain en moyenne en X minutes », et trouver X tel que l’IA a ~50% de taux de réussite. Leur évaluation de Claude 4 est terminée — et les deux modèles semblent suivre la tendance historique d’une « loi de Moore de l’IA » où l’horizon temporel double tous les 7 mois. Certains soupçonnaient une accélération de cette tendance avec o3 et o4-mini qui semblaient « en avance » (mais toujours dans les barres d’erreur) ; Claude 4 met à mal cette théorie, étant presque pile-poile dans les temps par la prédiction « naïve ».

    Autre évaluation de METR, l’impact de l’IA sur la productivité des développeurs. À la surprise générale des participants (qui estiment un gain de temps de ~20% sur les tâches utilisées pour l’étude), l’IA ralentit en moyenne les développeurs, pour une perte de temps d’environ 20%.

    Évaluation de l’IA, sur une tâche de comptabilité cette fois. Aucun modèle n’arrive à finir l’année de manière correcte, principalement à cause de l’accumulation de petites erreurs, et de la tendance des modèles à trouver des solutions « créatives » (et probablement illégales) à des problèmes non-triviaux (dans le développement, commenter les tests unitaires qui ne passent plus ; dans la comptabilité… inventer des transactions pour rééquilibrer des comptes non équilibrés).

    À quel point les progrès de l’IA la rendent plus persuasive ? Un papier étudie cette question. Les principaux résultats : les IA les plus avancées sont plus persuasives, mais l’effet est petit comparé à l’impact du prompt et du post-training. Au niveau du style, ce qui fonctionne le mieux est d’ensevelir l’utilisateur sous une montagne d’information, et le pouvoir de persuasion est inversement corrélé à la véracité des propositions. Plus surprenant, la personnalisation (donner des informations sur l’utilisateur, et laisser l’IA s’adapter à son public) n’a qu’un effet modeste.

    Ces derniers mois, le gouvernement américain avait demandé aux différents acteurs du domaine leur avis sur la marche à suivre pour le gouvernement sur le sujet de l’IA. Le résultat est là, sous la forme d’un plan. Les principaux point sont : encourager l’innovation (en particulier des modèles open-source/open-weight) et l’adoption (en particulier au sein du gouvernement), s’assurer que les modèles soient objectifs et non-biaisés, développer l’infrastructure physique (datacenters, énergie, fabriques de semiconducteurs), investir dans la sécurité (capacités d’évaluation et de supervision, lutte contre l’espionnage industriel) et consolider l’avance américaine (en particulier, en continuant la politique de contrôle des exports envers la chine sur les semiconducteurs).

    Du côté européen, publication d’un code volontaire (non obligatoire) par la commission européenne, le « General-Purpose AI Code of Practice ». Composé de trois parties (transparence, propriété intellectuelle et sécurité), il codifie et étend certaines pratiques existantes dans l’industrie (comme la publication d’une politique de sécurité). Accueilli favorablement, il a été ratifié par la plupart des acteurs du domaine, y compris les principaux Anthropic/OpenAI/Google. Deux exceptions, xAI, qui n’accepte que la partie « sécurité », et Meta, qui rejette la totalité.

    OpenAI publie ChatGPT Agent, essentiellement le successeur de Operator, où l’IA a le contrôle d’un navigateur pour effectuer des tâches sur internet. Peu de retours positifs en pratique sur ce mode. Il est à noter que ce mode a conduit OpenAI à mettre en place ses mitigations pour les risques « élevé » en biologie/chimie, par mesure de précaution (tout comme Anthropic l’avait fait pour la publication de Claude Opus 4).

    Il est bien connu que les modèles, déployés en tant que chatbots, sont tous vulnérables aux jailbreak. À quel point cela généralise-t-il dans le contexte d’un agent ? Pour y répondre, Gray Swan a organisé une compétition, où 22 agents IA ont déployés pour faire office de cible contre des attaquants humains. Tous les modèles ont été attaqués avec succès, le taux de réussite d’une attaque étant de 1.47% pour le modèle le plus sûr.

    À quel point l’IA représente de manière précise ce qu’elle est supposé modélisée, dans ses mécanismes internes ? Un papier étudie la question en entraînant une (petite) IA spécialisée sur différentes tâches simples (telles que prédire les trajectoires des corps célestes) puis en extrayant le modèle interne appris. Sur la plupart des tâches, l’IA échoue à apprendre la « véritable règle » (par exemple la loi de Newton).

    Dans certains cas, allouer plus de ressources à l’IA (sous la forme de chaînes de pensée plus longues) conduit à une baisse de performances.

    Une crainte concernant l’IA serait sa propension à perpétuer des stéréotypes présents dans son corpus d’entraînement. Un papier étudie cette question, et trouve que l’IA, mise dans un scénario d’embauche, discrimine… contre les hommes blancs : « When these biases emerge, they consistently favor Black over White candidates and female over male candidates across all tested models and scenarios ». De manière intéressante, la chaîne de pensée n’offre aucune indication de discrimination.

    Un sondage sur l’utilisation de l’IA en tant que compagnon/confident par les adolescents.

    Un retour d’expérience sur l’utilisation de l’IA comme assistant de programmation, avec des astuces détaillées.

    Anthropic, OpenAI, DeepMind et xAI gagnent chacun un contrat avec le Département de la Défense des États-Unis pour 200 millions de dollar.

    Un fil rappelant les précautions à prendre sur l’utilisation de MCP.

    Meta continue désespérément à essayer d’attirer des talents pour son équipe IA, sans grand succès. Dernier exemple en date, où une offre a été faite à des employés de Thinking Machines pour des montants allant de 200 millions à 1 milliard, offres toutes refusées.

    Pour aller plus loin

    Non couvert ici :

    En audio/vidéo (en anglais) :

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  

    Agenda du Libre pour la semaine 32 de l’année 2025

    Calendrier Web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces 8 événements (France : 7, Québec : 1) est en seconde partie de dépêche.

    Sommaire

    [CA-QC Montréal] Rencontres-Linux Québec – Le mardi 5 août 2025 de 17h30 à 21h30.

    Local de la rencontre: École de Technologie Supérieure A-13??
    Rencontre virtuelle: https://bbb3.services-conseils-linux.org/Linux-Meetup

    17:30 à 19:00 – 5 à 7 virtuel et en présentiel

    Rejoignez-nous pour un moment de détente et de convivialité lors de notre 5 à 7. Que vous préfériez nous retrouver au Resto-Pub 100 Génies de l’ÉTS ou en ligne sur BigBlueButton (BBB), l’essentiel est de partager un moment agréable. Si vous avez l’intention de venir en personne, veuillez nous en informer afin de pouvoir réserver suffisamment de place pour vous.

    18:30 à 19:00 – Installation et tests de l’environnement hybride (tests de son et vidéo)

    19:00 à 21:30 – Programmation de la rencontre

    1. Accueil et mot de bienvenue
    2. Capsule éducative [? ?]
    3. Présentation [? ?]
    4. Une période d’échange de trucs et astuces sous Linux, où chacun est encouragé à partager ses connaissances.

    Extras

    Que vous soyez débutant ou expert, étudiant ou professionnel, cette réunion est ouverte à tous. Elle réunit une diversité de personnes, allant des gestionnaires aux programmeurs, des professeurs aux retraités, unissant ainsi des esprits passionnés par les logiciels libres, quel que soit votre domaine d’expertise.

    Rejoignez-nous pour cette opportunité exceptionnelle de socialiser, d’apprendre, et de tisser des liens avec d’autres passionnés. Ensemble, nous pouvons approfondir notre compréhension des logiciels libres et contribuer à une communauté dynamique.

    La participation est gratuite, et nous avons hâte de vous rencontrer, que ce soit en personne ou en ligne. Inscrivez-vous dès maintenant pour recevoir le lien de la réunion virtuelle, et pensez à nous informer si vous prévoyez de vous joindre à nous au Resto-Pub 100 Génies de l’ÉTS.

    Au plaisir de partager cette soirée exceptionnelle avec vous!

    Cordialement,

    Martial

    P.S.: Pour le transport en commun : Station de métro Bonaventure

    [FR Le Mans] Permanence du mercredi – Le mercredi 6 août 2025 de 12h30 à 17h00.

    Assistance technique et démonstration concernant les logiciels libres.

    Il est préférable de réserver votre place à contact (at) linuxmaine (point) org

    Planning des réservations consultableici.

    [FR Quimper] Redistribution gratuite d’ordinateurs de bureau sous Debian – Le jeudi 7 août 2025 de 09h30 à 10h30.

    La distribution gratuite d’ordinateurs de bureau sous Debian au Centre social des Abeilles de Quimper continue tout l’été 2025 et même après…:-)

    Le Centre des Abeilles, avec l’aide technique de Linux Quimper, récupère depuis 2009 des ordinateurs déclassés par des administrations et des entreprises. Ces ordinateurs sont reconditionnés avec des logiciels libres autour de Linux qui est un système équivalent à Windows et MacOs mais libre et gratuit. Ils sont utilisables immédiatement, gratuitement et en toute légalité dans tous les domaines de l’informatique comme la bureautique, internet, le graphisme, l’audio-vidéo, etc. Plus de 5500 ont été donnés depuis 2009 à des personnes et associations. Si cette action de solidarité vise à réduire la fracture numérique en permettant l’accès à l’informatique aux personnes et associations qui en sont écartées pour des raisons financières, elle a aussi pour but de diffuser largement les logiciels libres et en particulier Linux. Elle a aussi pour objectif de limiter le gaspillage du matériel informatique, réduire les déchets et ainsi de participer à la limitation du changement climatique à notre petite échelle…

    Ces dons sont ouverts aux adhérent·e·s du Centre des Abeilles. L’adhésion (13€) peut se faire au moment du don.

    La distribution a lieu en général tous les jeudis matin mais les bénévoles du Centre des Abeilles peuvent s’adapter aux disponibilités des personnes désirant bénéficier de ce don.

    ATTENTION: Cette proposition ne s’adresse qu’aux personnes habitant le Sud-Finistère.

    Inscription préalable au 07 44 61 10 61.

    [FR Cornil] Camp CHATONS – Du jeudi 7 août 2025 à 16h00 au lundi 11 août 2025 à 23h59.

    Le camp CHATONS est un moment de convivialité qui rassemble pendant quelques jours les membres du collectif ainsi que des personnes “alliées” qui pourraient apporter leur pierre aux échanges qui s’y dérouleront. Celui-ci doit aussi permettre de profiter du temps ensemble pour parler autant geekerie que vie et avenir du collectif CHATONS.

    Pour vous inscrire, merci de compléter le formulaire d’inscription au plus vite même si vous ne maîtrisez pas toutes les informations. Il sera toujours temps de les modifier plus tard.

    Le contenu de ce Camp CHATONS est élaboré par les participant⋅es, sur le principe des BarCamp. Ce cadre d’autogestion nous semble important pour mieux appréhender les questionnements autour de la raison d’être du collectif et de son activité. Une fois inscrit⋅e, vous pourrez faire des propositions pour animer des ateliers et prendre connaissance des ateliers proposés par les autres participant⋅es.

    [FR Angers] Rencontre mensuelle OpenStreetMap – Le jeudi 7 août 2025 de 18h00 à 19h00.

    Déjà fan d’OpenStreetMap ou envie de découvrir cette cartographie libre, de contribuer à l’enrichissement de la cartographie locale angevine, de mettre à jour des données qui vous tiennent à cœur (pistes cyclables, environnement, facilitation des parcours PMR, bâti, etc.) ?

    Les cartographes bénévoles angevins se rencontrent les premiers jeudis de chaque mois pour échanger des astuces, faire découvrir les outils disponibles (sur ordiphone ou PC) et organiser des actions collectives.

    Vous n’y connaissez rien ? Pas grave, on vous apprendra autour d’une pression, d’un thé ou d’un jus de fruit !

    [FR Quimperlé] Point info GNU/Linux – Le samedi 9 août 2025 de 13h30 à 17h30.

    Médiathèque de Quimperlé, place Saint Michel, pas d’inscription, entrée libre !

    Mickaël, Johann, Alain, et Yves vous accueillent (ou l’un d’eux, on se relaie !).

    Conseils, aide et infos pratiques GNU/Linux et Logiciels Libres.

    Curieux ? Déjà utilisateur ? Expert ? Pour résoudre vos problèmes, vous êtes le bienvenu ; pas besoin de prendre rendez-vous !

    N’hésitez pas à venir avec votre PC si vous voulez une installation de GNU/Linux ou de venir avec votre périphérique récalcitrant (imprimante, scanner…) si possible.

    [FR Ramonville Saint-Agne] Les ateliers du CULTe – Le samedi 9 août 2025 de 14h00 à 18h00.

    Le CULTe est le « Club des utilisateurs de logiciels libres et de gnu/linux de Toulouse et des environs ».

    Le samedi après-midi tous les quinze jours, le CULTe organise un atelier d’informatique “libre”, de 14h à 18h.

    La séance est consacrée à l’information du public, à l’entraide entre membres et/ou visiteurs pour notamment installer et configurer des logiciels libres, système d’exploitation (“Linux”) ou “applications” (programmes informatiques).

    L’entraide peut également concerner le matériel afin d’aider le membre ou le visiteur à faire évoluer son ordinateur (ajout de mémoire, changement de disque dur…), étant précisé que si des avis peuvent être bien entendu émis pour de tels achats, le CULTe quant à lui n’a aucune activité commerciale, directe ou indirecte.

    Chacun peut amener son ordinateur pour la séance. S’il s’agit d’une « Unité Centrale » (Ordinateur de bureau) il est inutile d’amener également écran clavier et souris, qui peuvent être prêtés sur place. Au besoin nous pourrons aussi vous prêter une machine pour la séance.

    Afin de préparer votre venue, nous vous recommandons vivement de nous prévenir par courrier électronique en expliquant succinctement votre projet ou votre besoin à l’adresse suivante:

    president@o2.culte.org

    L’adhésion au CULTe n’est en aucun cas obligatoire pour participer à nos activités.

    NB: Les personnes qui souhaitent adhérer ou faire un don peuvent bénéficier d’un reçu fiscal en vue d’une réduction d’impôt (66% en 2022) notre association étant reconnue « Organisme d’Intérêt Général » éligible au mécénat. (Rescrit fiscal 2021/228)

    PS: Notre club met à la disposition de tous une liste de discussion dédiée à l’informatique “libre”: « linux31@culte.org ». Vous pouvez sans attendre demander à y être inscrit pour, le cas échéant, y exposer une difficulté et bénéficier de l’aide et de conseils d’une centaine de participants. Il vous suffit de vous rendre à cette adresse et d’y formuler votre demande d’inscription:

    https://sympa.culte.org/sympa/subscribe/linux-31?previous_action=info

    [FR Quimper] Permanence Linux Quimper – Le samedi 9 août 2025 de 16h00 à 18h00.

    Tous les samedis de 16h à 18h, Linux Quimper vous donne rendez-vous au centre social des Abeilles, 4 rue Sergent Le Flao (quartier de la Terre Noire) Quimper.

    Nous vous proposons lors de ces rencontres d’échanger autour du Libre et de Linux en particulier

    Vous pouvez venir pour vous faire aider, ou aider, à installer et paramétrer une distribution GNU/Linux de votre choix ou des logiciels libres sur votre ordinateur.

    Recommandations:

    • Sauvegardez vos données avant de venir.
    • Pour une installation de Linux si vous voulez conserver Windows, libérez de la place sur le disque dur (20 Go minimum) et défragmentez Windows.
    • Nous prévenir, éventuellement, de votre passage via le forum.

    Vous pouvez aussi venir pour une première prise d’informations et de contacts.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  

    La Commission européenne publie une feuille de route sur le logiciel libre

    La Commission européenne a récemment publié une feuille de route stratégique intitulée « Feuille de route thématique sur l’open source et contributions sur les principes de confiance communs » (« La voie du logiciel libre vers la souveraineté numérique et la compétitivité de l'Union européenne »), préparée par l'Alliance européenne pour les données industrielles, l'Edge et le Cloud (dont l'auteur de ces lignes fait partie). Ce document de 68 pages propose et détaille un plan d'action visant à positionner le logiciel libre comme un pilier central de la stratégie européenne pour renforcer son autonomie technologique face aux acteurs non-européens.

    Le rapport part du constat de la dépendance de l'Europe dans les domaines du cloud, de l'edge et de l'IoT, et propose 70 actions concrètes pour y remédier. Parmi les mesures les plus significatives, on trouve notamment : la mise en place d'une politique d'achat public favorisant systématiquement les solutions libres européennes, la création d'un fonds de financement dédié aux projets critiques, et l'application de standards d'interopérabilité réellement ouverts pour contrer le verrouillage fournisseur (vendor lock-in).

    Ce ne sont bien sûr que quelques propositions parmi les 70. Pour plus de détails, cliquez sur « lire la suite ».

    Sommaire

    Le contexte

    Cette feuille de route a pour objectif de transformer les ambitions de souveraineté numérique en un programme d'actions d'ordre technique, économique et politique. Elle s'adresse aux décideurs, notamment politiques, mais son contenu a des implications directes pour les développeurs, les entreprises et les contributeurs de l'écosystème du logiciel libre et Open Source en Europe. Bien évidemment (et malheureusement), rien n'est acté à ce stade, mais au moins, les propositions sont sur la table et entre les mains de la DG CONNECT (direction générale des réseaux de communication, du contenu et des technologies de la Commission européenne).

    L'Alliance européenne pour les données industrielles, l'Edge et le Cloud, qui est à l'origine de ce document, est une initiative facilitée par la Commission européenne. Elle réunit des entreprises exclusivement européennes, des représentants des États membres et des experts du domaine. Son rôle est officiellement de guider les investissements et de conseiller les instances européennes pour construire un écosystème numérique compétitif et autonome.

    Notons que, bien que la feuille de route concerne explicitement uniquement le Cloud, l'Edge et l'IoT (infonuagique, informatique en périphérie et objets connectés),

    Le document a été produit par un groupe de travail dédié (task force) au sein du groupe de travail constitué de Stéfane Fermigier (Abilian), Alberto P. Martí (OpenNebula Systems), Jean-Baptiste Piacentino (Clever Cloud), Charles-Henri Schulz (Vates) et Arthur van der Wees (Arthur Strategies & Systems), puis validé en session plénière par l'ensemble de l'Alliance.

    Le diagnostic

    Le rapport identifie (ou rappelle) les principaux freins au développement d'un écosystème numérique européen souverain fondé sur le logiciel libre :

    • L'interopérabilité et les standards : L'influence d'acteurs dominants qui promeuvent des standards faussement « ouverts » (open washing) pour maintenir leur position et complexifier l'intégration de solutions alternatives. On pourra consulter à ce sujet le passionnant papier de Nora von Ingersleben-Seip, "How the European Union Fell Out of Love with Open-Source Software" (TUM School of Social Sciences and Technology, 2025).
    • Les ressources et le financement : La dépendance de nombreux projets libres et Open Source européens à des financements sporadiques ou à l'effort de bénévoles, ce qui limite leur capacité à assurer la maintenance, la sécurité et l'évolution à long terme.
    • L'adoption par le marché : La persistance de préjugés sur la complexité et le manque de support des solutions libres, renforcée par l'omniprésence du marketing des fournisseurs de logiciels propriétaires et de services cloud propriétaires fermés.
    • Les compétences et les "talents": Un déficit de professionnels qualifiés sur les technologies libres et Open Source, ce qui accroît la dépendance à l'expertise non-européenne.
    • La gouvernance : Le fait que de nombreux projets Open Source, même avec une forte contribution européenne, soient gouvernés par des fondations ou entités basées hors de l'UE, alignant potentiellement leurs décisions sur des intérêts stratégiques non-européens et les soumettant aux lois extra-territoriales américaines (notamment).

    Des propositions articulées en 5 piliers

    Pour répondre à chacun de ces défis, nous avons proposé dans la roadmap une série de mesures, articulées autour de 5 "piliers", dont chacun vise un objectif précis :

    1. Développement technologique : Bâtir une fondation technique souveraine et interopérable.
    2. Développement des compétences : Créer le vivier de talents nécessaire pour faire fonctionner cet écosystème.
    3. Achat public : Utiliser la puissance de la commande publique comme levier d'adoption stratégique.
    4. Croissance et investissement : Mettre en place un environnement propice au financement et à la croissance des projets.
    5. Gouvernance et durabilité : Assurer la pérennité, la sécurité et le contrôle européen des initiatives clés.

    Voici une sélection des propositions les plus structurantes, groupées par pilier :

    Piller 1: Développement technologique

    • Appliquer des standards d'interopérabilité techniques (API, protocoles de transfert) réellement ouverts, gratuits, et implémentables sans restriction pour garantir une interopérabilité effective.
    • Créer et financer un Fonds de Souveraineté Européen pour l'Open Source (EOSSF), un fonds dédié pour soutenir durablement les projets libres jugés critiques pour l'infrastructure et l'autonomie de l'Europe. OpenForum Europe propose, par exemple, la création d'un fonds pour la souveraineté technologique européenne (EU Sovereign Tech Fund - EU-STF).
    • Produire des implémentations de référence complètes pour des secteurs clés (santé, administration…) basées exclusivement sur des briques logicielles libres européennes.

    Pillier 2: Développement des compétences

    • Mettre en place des programmes de formation et de certification techniques reconnus au niveau européen (orchestration, sécurité, conformité RGPD) et axés sur les solutions libres européennes.
    • Intégrer les concepts du logiciel libre et de la souveraineté numérique dans les cursus d'ingénierie et d'informatique.

    Pillier 3: Achat public

    • Adopter la politique « Public Money, Public Code, Open Source First, European Preference », rendant obligatoire la priorité aux solutions logicielles libres dans la commande publique, en y ajoutant une clause de préférence pour les projets d'origine européenne.
    • Établir des critères clairs pour définir un projet « Open Source Européen » (origine du développement, localisation de la gouvernance, communauté) afin de qualifier une solution et d'éviter le marketing trompeur.
    • Créer un référentiel public de solutions libres recommandées sur le modèle du SILL français, pour guider les acheteurs publics. NB: il en existe déjà un au niveau européen, mais qui le connait?

    Pillier 4: Croissance et investissement

    • Développer une plateforme d'investissement (EOSIP), un portail centralisant toutes les aides (subventions, prêts, capital-risque) disponibles pour les projets libres européens.
    • Lancer une marque « European Open Source » pour promouvoir la visibilité et la crédibilité des projets respectant des standards élevés de qualité et de sécurité.

    Pillier 5: Gouvernance et durabilité

    • Fournir des ressources pour la conformité réglementaire, notamment pour aider les projets libres (en particulier les PME et petites structures) à se conformer aux régulations comme le Cyber Resilience Act (CRA) sans freiner leur développement.
    • Créer un comité consultatif européen pour le logiciel libre, composé d'experts de l'industrie et de la communauté, pour superviser la stratégie de financement et de soutien.

    Conclusion et appel à l'action

    Face à 70 propositions, la première réaction peut être le scepticisme ou le sentiment d'impuissance. Ce serait une erreur de voir ce rapport comme un bloc monolithique à prendre ou à laisser. Il faut plutôt le considérer comme une boîte à outils : certaines actions sont politiques et nécessitent un appui fort ; d'autres sont techniques et peuvent être mises en œuvre de manière distribuée. Certaines sont des marathons structurels ; d'autres des sprints à l'impact rapide. Certaines ont un coût important, d'autres sont simplement un choix de réallocation de resources ou de changement de perspective.

    La question n'est donc pas de savoir si tout sera appliqué, mais bien : par où commencer, et qui fait quoi ?

    Ce rapport ne survivra pas au cynisme de salon. Dire que « ça ne marchera jamais » est la plus facile des prophéties auto-réalisatrices. La seule démarche constructive consiste à se demander : quelles sont les conditions de réussite pour les propositions qui nous semblent les plus critiques, et comment pouvons-nous, chacun à notre échelle, y contribuer ?

    La question devient alors : que faire, concrètement ?

    • S'informer et maîtriser le sujet : Lire le rapport (au moins le résumé exécutif et les propositions qui vous concernent directement) pour pouvoir en parler avec précision.
    • Diffuser et interpeller : Faire connaître cette feuille de route. Contacter les élus (députés nationaux, européens) et les décideurs (dans l'administration, les collectivités territoriales ou les entreprises) pour leur demander de se positionner. Un plan d'action, même ébauché, ne vaut que s'il est connu de ceux qui peuvent le mettre en œuvre.
    • Participer et apporter l'expertise technique : Suivre les consultations publiques de la Commission européenne ou s'enregistrer comme expert lorsque c'est pertinent. Y répondre est une occasion d'injecter une expertise technique de terrain dans le processus réglementaire.
    • Décliner : Traduire les principes de la feuille de route en actions locales. Que ce soit au sein de son entreprise, de son administration ou de sa collectivité, il est possible d'adapter les recommandations : évaluer sa propre dépendance technologique, monter un programme de formation interne, ou proposer un schéma directeur et une politique d'achat favorisant l'ouverture et l'interopérabilité. Il s'agit de rendre la démarche opérationnelle sur son propre terrain.
    • S'engager et construire : Soutenir les organisations qui portent ces combats au niveau européen (APELL, FSFE, OSI, OpenForum Europe, etc.). Et surtout, contribuer directement et soutenir les projets de logiciels libres ou autour du libre européens qui sont au cœur de cette stratégie.

    Annexe: la liste des 70 propositions

    Voici la liste complète des propositions de la feuille de route, traduites en français et toujours organisées par pilier.

    Pilier 1 : Développement Technologique

    • Définir des spécifications techniques en tant que standards ouverts pour les environnements cloud, edge et IoT Open Source européens.
    • Financer des projets pilotes d'interopérabilité qui privilégient l'utilisation des technologies Open Source européennes.
    • Exiger que tous les projets d'infrastructure numérique financés par l'UE adhèrent à ces standards d'interopérabilité.
    • Promouvoir et imposer la mise en œuvre de standards ouverts dans toute l'UE.
    • Créer un "Fonds de Souveraineté Open Source Européen" (EOSSF) dédié aux projets essentiels.
    • Offrir des subventions ciblées pour la sécurité, la maintenance et le renforcement de la souveraineté des projets Open Source.
    • Favoriser une collaboration approfondie avec les institutions universitaires européennes et les bureaux de programmes Open Source (OSPO).
    • Développer un guide pratique pour les responsables des marchés publics afin d'évaluer les solutions Open Source européennes.
    • Créer des architectures de référence spécifiques à chaque secteur basées sur les technologies Open Source européennes.
    • Lancer des projets de démonstration à grande échelle pour illustrer les avantages pratiques des solutions Open Source européennes.
    • Produire et distribuer des "guides pratiques" ("playbooks") complets pour le déploiement de solutions Open Source européennes.
    • Mettre en œuvre des politiques pour encourager activement l'adoption de ces implémentations de référence dans les marchés publics.

    Pilier 2 : Développement des Compétences

    • Organiser des ateliers de formation axés sur l'industrie avec un accent européen sur les outils et plateformes Open Source.
    • Offrir des subventions de formation ciblées aux PME et aux organismes du secteur public pour le perfectionnement en Open Source européen.
    • Lancer des programmes de certification pour la maîtrise des technologies et des standards Open Source européens.
    • Mettre en place des programmes de reconversion financés par l'UE pour aider les professionnels à se tourner vers des rôles Open Source européens.
    • Collaborer avec des partenaires industriels pour créer des opportunités d'apprentissage pratique et de placement dans l'Open Source.
    • Offrir des incitations financières aux entreprises qui participent à des programmes de reconversion et utilisent l'Open Source européen.
    • Développer une plateforme de ressources Open Source européenne regroupant du matériel de formation, des bonnes pratiques et des études de cas.
    • Intégrer les principes de l'Open Source européen dans les cursus STIM (Sciences, Technologie, Ingénierie et Mathématiques) du secondaire à l'université.
    • Soutenir la création de "centres d'excellence" Open Source européens dans les universités.
    • Développer des concours de codage et des hackathons à l'échelle de l'UE axés sur les solutions Open Source européennes.
    • Introduire une formation sur les modèles économiques de l'Open Source européen dans la formation professionnelle.
    • Créer des modules de formation professionnelle pour la gestion de projet Open Source européen.
    • Établir une certification pour la maîtrise des compétences commerciales liées à l'Open Source européen.

    Pilier 3 : Pratiques d'Achat Public

    • Lancer une consultation avec les organismes du secteur public et les fournisseurs Open Source pour identifier les défis liés aux marchés publics.
    • Rendre obligatoires les politiques "Argent Public, Code Public, Open Source d'Abord, Préférence Européenne" dans les marchés publics.
    • Élaborer des lignes directrices complètes pour les marchés publics afin d'évaluer et de sélectionner les solutions Open Source européennes.
    • Financer des projets de démonstration montrant le succès du remplacement de systèmes propriétaires par l'Open Source européen.
    • Établir des critères clairs pour définir ce qui constitue une solution Open Source "européenne".
    • Fournir un guide pratique aux responsables des marchés publics pour évaluer les solutions Open Source.
    • Collaborer avec l'industrie et les organismes de normalisation pour développer des critères d'évaluation accessibles pour l'Open Source.
    • Créer un répertoire public des solutions Open Source européennes recommandées.
    • Encourager les organismes du secteur public à adopter les solutions développées dans le cadre de l'initiative "Next Generation Internet" (NGI).
    • Lancer des projets transfrontaliers d'achats pré-commerciaux (PCP) axés sur l'Open Source européen.
    • Créer des plateformes de partage de connaissances pour les retours d'expérience des initiatives PCP et les bonnes pratiques Open Source.
    • Impliquer activement les fournisseurs Open Source européens dans la co-conception de solutions dans le processus PCP.
    • Publier des lignes directrices pour aider les organisations du secteur public à gérer et soutenir l'Open Source européen.
    • Promouvoir la participation active des représentants du secteur public dans les communautés Open Source européennes.
    • Soutenir des programmes de formation pour le personnel du secteur public sur la gestion de projet et la conformité Open Source.
    • Engager les parties prenantes pour affiner et simplifier de manière collaborative les pratiques d'achat pour l'Open Source.

    Pilier 4 : Croissance et Investissement

    • Créer une Plateforme d'Investissement Open Source Européenne (EOSIP) pour centraliser les informations sur le financement.
    • Organiser des ateliers d'information pour les PME et startups européennes sur la manière d'obtenir des investissements.
    • Établir des partenariats avec des investisseurs privés pour former un réseau de fonds de capital-risque axés sur l'Open Source européen.
    • Étendre l'initiative "Next Generation Internet" (NGI) en mettant l'accent sur le cloud, l'edge et l'IoT Open Source.
    • Évaluer régulièrement l'impact des programmes de financement sur la croissance des communautés et l'adoption par le marché.
    • Allouer un financement dédié aux projets Open Source européens à fort impact qui répondent à des besoins stratégiques.
    • Développer des modèles de co-investissement qui associent des fonds publics à des investissements du secteur privé européen.
    • Lancer des accélérateurs et des incubateurs spécialement conçus pour les technologies Open Source européennes.
    • Développer une stratégie de marque à l'échelle de l'UE pour souligner la qualité et la souveraineté de l'Open Source européen.
    • Mettre en valeur les succès de l'Open Source européen sur des plateformes internationales par le biais de campagnes marketing.
    • Former des partenariats stratégiques avec les organisations industrielles européennes pour accroître la visibilité des projets.
    • Mettre en place des consortiums de R&D public-privé sur l'Open Source européen pour les projets hautement prioritaires.
    • Offrir des incitations aux contributions du secteur privé à des initiatives Open Source européennes critiques.
    • Développer des plateformes d'échange de connaissances et de collaboration intersectorielle au sein de l'écosystème européen.

    Pilier 5 : Gouvernance

    • Mener des évaluations de vulnérabilité pour les projets Open Source européens critiques.
    • Collaborer avec les agences européennes de cybersécurité pour développer des modèles de menace pour les environnements Open Source.
    • Publier les conclusions et les bonnes pratiques des évaluations de sécurité auprès de l'écosystème européen.
    • Offrir des conseils de conformité sur mesure pour aider les projets Open Source européens à naviguer dans les réglementations de l'UE.
    • Faciliter l'accessibilité à la certification du "Cyber Resilience Act" (CRA) pour les projets Open Source européens.
    • Fournir des ressources et un soutien pour la documentation et l'audit des projets européens.
    • Assurer un financement stable et à long terme pour l'infrastructure Open Source européenne de base.
    • Mettre en place des programmes de mentorat axés sur le développement de talents européens pour les projets critiques.
    • Créer un Conseil Consultatif de l'Open Source Européen pour superviser le financement et l'orientation des projets.
    • Exiger que les projets européens soutenus par l'UE adhèrent à des pratiques de gouvernance et de responsabilité transparentes.
    • Soutenir l'implication de la communauté européenne dans la gouvernance des projets Open Source.
    • Faciliter la contribution de la communauté à l'élaboration des politiques européennes relatives à l'Open Source.
    • Publier des lignes directrices sur les bonnes pratiques pour la gestion du cycle de vie des projets Open Source européens.
    • Offrir des ressources pour la maintenance et le support de fin de vie responsable des projets européens.
    • Encourager une documentation complète et le partage des connaissances au sein de l'écosystème européen.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •