Syndicate content
Mis à jour : il y a 17 min 15 sec

Nouveautés de juin 2026 de la communauté Scenari

8 juin, 2026 - 15:47

Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous rédigez une seule fois votre contenu et vous pouvez les générer sous plusieurs formes : site web, PDF, OpenDocument, diaporama, paquet SCORM (Sharable Content Object Reference Model)… Vous ne vous concentrez que sur le contenu et l’outil se charge de créer un rendu professionnel accessible et responsive (qui s’adapte à la taille de l’écran).

À chaque métier/contexte son modèle Scenari :

  • Opale pour la formation 
  • Dokiel pour la documentation 
  • Optim pour les présentations génériques 
  • Topaze pour les études de cas 
  • Parcours pour créer des scénarios de formation 
  • et bien d’autres…
Sommaire

Podcast Projets Libres saison 4 épisode 19 : facturation électronique, état d’avancement pour les communautés Dolibarr et Odoo

8 juin, 2026 - 15:42


Dans ce nouvel épisode, on reparle de la facturation électronique, qui arrive en France à partir de septembre 2026 !

Agenda du Libre pour la semaine 24 de l'année 2026

6 juin, 2026 - 22:22

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 52 événements (France: 44, Internet: 1, Belgique: 2, Québec: 3) est en seconde partie de dépêche.

Sommaire [FR Dunkerque] Install-partie : découvrez, installez GNU-Linux - Le lundi 8 juin 2026 de 08h30 à 17h00.

L'install-partie du jour se tient au sein de la Journée Numérique Séniors, dans le stand des logiciels libres.

Venez avec vos enfants, petits-enfants, nièces, neveux,… Vous pourrez tester diverses variétés de logiciels libres, et de distributions de GNU-Linux.

Apportez votre ordinateur: si une des distributions vous convient, vous l'installerez, avec l'aide des intervenants. N'oubliez pas: il est important faire une sauvegarde des données personnelles par avance, comme avant toute intervention technique sur un ordinateur.

Cette illustration de Gee est sous licence libre CC-BY-SA. Si elle vous plaît, visitez aussi le site Grisebouille

Cette install-partie est rattachée à l'opération « Adieu, Windows ».

En octobre 2025, l'entreprise Microsoft annonçait suspendre le support de sécurité pour Windows 10 ; grâce à l'organisation Halte à l'Obsolescence Programmée (HOP), Windows 10 est en sursis jusqu'à octobre 2026… dans le trimestre qui suivra, donc. C'est le bon moment pour installer GNU-Linux !

[FR Saint Clar] Tous les Lundis, médiatheque de Saint Clar - Le lundi 8 juin 2026 de 10h00 à 17h00.

Tous les lundis de 10h à 17h sans interruption, l'association Prends toi en main / atelier abcpc, propose install party, suivi, dépannage, formation et revalorisation à petit prix sous Linux exclusivement.

L'atelier abcpc existe depuis plus de 10 ans et milite exclusivement pour les logiciels libres.

[FR Toulouse] Atelier sur les bases de la Langue des Signes Française (LSF) à destination des médiateurRICEs numériques - Le lundi 8 juin 2026 de 15h00 à 18h00.

Association Coll.IN

Bonjour à tous et à toutes,

Lundi 8 juin à 15h, nous vous proposons un atelier sur les bases de la Langue des Signes Française (LSF) à destination des médiateurRICEs numériques, CNFS, agentEs d'accueil, animé par Audrey Calatayud.

Cet atelier est gratuit et aura lieu dans nos locaux: 12 avenue Winston Churchill, 31 100 Toulouse (cinq minutes du métro Reynerie).

Objectif ? Améliorer l'accessibilité de nos lieux de médiation.

Arrivée cinq minutes en avance
Trente minutes d'ateliers
Quinze minutes de pratique de la LSF
A très vite,
L'équipe de Coll.in

[Internet] Mapathon 2025-2026 par CartONG - Le lundi 8 juin 2026 de 18h00 à 20h00.

Vous voulez vous engager pour une cause, rencontrer de nouvelles personnes et découvrir la cartographie participative et humanitaire? CartONG vous invite à participer à un ou plusieurs mapathons en ligne!

Journée Rust Paris le 9 juin 2026 pour les devs et utilisateurs

3 juin, 2026 - 16:20

Adeptes de Rust, et aussi ceux qui se demandent s'il faut s'y mettre, bloquez votre 9 juin 2026 la semaine prochaine ! La conférence Rust Paris revient pour sa troisième édition, même jour, même heure et même lieu. Cette journée est toujours dédiée aux développeurs et aux utilisateurs de Rust, avec un mot d’ordre : REX — retour d’expérience. Les intervenants viendront partager leurs succès, mais aussi les défis rencontrés, dans des contextes variés : WebAssembly, systèmes embarqués, critiques & Temps-réel, cybersécurité (fuzzing, audit), vérification formelle & certification, Big Data, HPC, Cloud & Microservices, Réseaux & Infrastructures, IA, recherche académique…

Portrait d’un membre de la communauté Scenari

3 juin, 2026 - 07:45

NdM : Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support (Opale pour la formation, Dokiel pour la documentation, Optim pour les présentations génériques, Topaze pour les études de cas, Parcours pour créer des scénarios de formation, etc.)

Aujourd'hui nous échangeons avec Emmanuel Farcy, professeur de mathématiques au lycée Salvador Allende de Hérouville St Clair en Normandie, qui enseigne à des classes de 2de, 1ère et terminales générales et technologiques, et qui utilise Scenari pour créer et diffuser ses cours.

Comment as-tu découvert Scenari et depuis quand l'utilises-tu ?

Je travaille avec Scenari depuis 2012 (d’abord en version collaborative avec mon collègue Olivier Lécluse aujourd’hui disparu), et depuis 2020, en local sur mon pc perso.
J'ai découvert Scenari avec Olivier et j'ai poursuivi son travail.

Quel est ton usage de Scenari ?

J'utilise Opale et Optim dans MyScenari, le service fourni par l'association à ses adhérents, essentiellement dans le cadre de mes cours de spécialité mathématiques de terminale.

Opale est un modèle Scenari qui sert à créer des contenus pédagogiques linéaires, et Optim est un modèle plutôt générique pour faire des sites web, des rapports, des diaporamas.

Avec Opale je crée mes chapitres, et avec Optim je fais une page d'accueil pour les modules Opale.

J’utilise aussi, de manière ponctuelle, SCENARIstyler qui me permet de créer mes propres habillages graphiques en personnalisant de manière très simple ceux qui sont proposés par défaut.

Quels sont les aspects de Scenari que tu trouves intéressants ?

La force de Scenari est de pouvoir facilement créer mes pages web dans lesquelles je peux aisément insérer le code latex nécessaire aux mathématiques de lycée, de mettre des liens vers des documents.

 D'autres outils ne permettent pas de faire ça ?

Éléa (moodle) sur notre ENT me permettrait de faire des pages similaires, mais je préfère la simplicité de scenari.

 Avec Scenari on a la main sur le contenu mais pas (ou peu) sur l'aspect esthétique. Ça t'a perturbé ? Comment t'es-tu adapté ?

Initialement, j'avais des habitudes des traitements de textes, mais Scenari simplifie l'aspect esthétique et on se pose moins de questions.

La communauté Scenari t'apporte aussi quelque chose ?

Je suis toujours surpris par l’aide très rapide apportée par les participants au forum Scenari. Les développeurs de Scenari y sont aussi présents et on obtient des réponses très précises et pertinentes.

Tu utilisais le service Canoprof du réseau Canopé, et qui est fait aussi en Scenari ?

Oui mais juste pour publier mes productions. J'ai commencé à utiliser Scenari avant que Canoprof n'existe. J'aurais pu basculer totalement sur Canoprof, mais ça aurait changé beaucoup mes pratiques. J'ai préféré continuer à utiliser Opale pour créer mes cours.
Je vais devoir modifier ma façon de publier mes pages puisque Canoprof Cloud ferme ses portes en août.

Merci Emmanuel !

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Agenda du Libre pour la semaine 23 de l'année 2026

1 juin, 2026 - 09:02

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 59 événements (France: 52, Québec: 3, Internet: 2, Belgique: 2) est en seconde partie de dépêche.

Sommaire [FR Montpellier] Journal | Libellule 207 - Le lundi 1 juin 2026 de 08h00 à 09h00.

Comment la Chine redessine les règles du jeu technologique

Quand on parle d’open source, on pense spontanément à la Silicon Valley, à Linux, ou encore à des communautés de développeurs occidentales. Pourtant, depuis une dizaine d’années, la Chine s’impose comme un acteur incontournable de cet écosystème. Mais attention: son approche n’est ni naïve ni purement idéologique. Elle est profondément stratégique.

D’abord, un constat simple: la Chine a longtemps dépendu de technologies étrangères, notamment américaines. Cette dépendance est devenue un risque majeur, surtout dans un contexte de tensions géopolitiques et de restrictions à l’exportation. Résultat: Pékin a décidé d’investir massivement dans l’open source pour gagner en autonomie.

Contrairement à une idée reçue, l’open source n’est pas seulement une philosophie du partage. C’est aussi un levier de puissance. En participant à des projets ouverts, en en créant de nouveaux, la Chine peut à la fois accéder à des technologies de pointe, réduire ses coûts de développement, et influencer les standards mondiaux.

Prenons un exemple concret: Huawei. Malgré les sanctions américaines, l’entreprise a accéléré le développement de son propre système d’exploitation, HarmonyOS, en s’appuyant en partie sur des composants open source. De la même manière, des géants comme Alibaba ou Tencent contribuent activement à des projets internationaux, notamment dans le cloud et l’intelligence artificielle.

Mais la stratégie chinoise ne s’arrête pas là. Elle consiste aussi à structurer un écosystème national. Des fondations open source locales ont été créées, comme l’OpenAtom Foundation, qui vise à fédérer entreprises, chercheurs et institutions autour de projets communs. L’objectif est clair: bâtir une alternative crédible aux écosystèmes dominés par les États-Unis.

En résumé, l’open source est devenu un terrain de compétition internationale, où la Chine cherche à affirmer sa souveraineté technologique et à influencer les standards mondiaux.

Pour compléter cette réflexion, Montpel'libre pourrait se faire l’écho en recommandant de soutenir la création de hubs locaux ou nationaux d’innovation open source, afin de mutualiser les ressources, favoriser l’échange de bonnes pratiques, et ainsi mieux résister à la domination des grands acteurs internationaux. En somme, il s’agirait, à notre avis, pour la France de ne pas rester spectatrice, mais de jouer un rôle actif dans cette recomposition mondiale des règles du jeu technologique.

https://montpellibre.fr/docs/libellule207.pdf

[FR Saint Clar] Tous les Lundis, médiatheque de Saint Clar - Le lundi 1 juin 2026 de 10h00 à 17h00.

Tous les lundis de 10h à 17h sans interruption, l'association Prends toi en main / atelier abcpc, propose install party, suivi, dépannage, formation et revalorisation à petit prix sous Linux exclusivement.

L'atelier abcpc existe depuis plus de 10 ans et milite exclusivement pour les logiciels libres.

[FR Lyon] Ateliers Wikimédia Commons et Wikidata – initiation et contribution - Le lundi 1 juin 2026 de 10h00 à 16h30.

La BU de l’université Lyon 3 vous invite le lundi 1er juin 2026 à une journée composée de deux ateliers sur les enjeux d’open data et open content à travers l’utilisation des plateformes Wikimedia Commons et Wikidata.

Wikimédia Commons est une médiathèque numérique collaborative, participative et non-lucrative qui héberge des images, audios, vidéos et autres médias sous licences libres. Wikidata est quant à elle la base de connaissances libre, collaborative et centralisée des projets relevant de la fondation Wikimedia, qui héberge Wikipédia. Au cours de ces deux ateliers, vous pourrez contribuer à l’enrichissement de ces plateformes en important des contenus libres, de votre choix, ou bien fournis par l’animateur de l’atelier, dans le respect des règles de propriété intellectuelle. Le matin, vous aurez l’occasion d’importer des images, tandis que l’après-midi, vous pourrez alimenter Wikidata avec de nouvelles notices et métadonnées.

Les deux ateliers se dérouleront dans la salle de formation de la Bibliothèque Denise Domenach située sur le campus des Quais (15 quai Claude Bernard). Il est recommandé de venir avec son ordinateur portable.
Lien d’inscription: https://bu.univ-lyon3.fr/atelier-wikimedia-commons-et-wikidata-initiation-et-contribution

Cette journée fait partie d’un cycle d’ateliers sur les projets Wikimédia (Wikipédia, Wikimédia Commons et Wikidata) organisés au sein de la BU de l’université Lyon 3, dans le cadre du Printemps de la donnée. L’université est membre de l’atelier de la donnée Lyon Saint-Étienne (DATALystE).

[FR Saint-Étienne] Permanence de l'association Alolise - Le lundi 1 juin 2026 de 19h00 à 22h00.

Tous les lundis soir de 19h à 22h (hors jours fériés) à la Bricoleuse.

Rencontrer les bénévoles, poser des questions sur le libre ou l'informatique, les logiciels, l'hébergement, passer de Windows à Linux.

Pour passer votre ordinateur sous linux, nous vous invitons à nous prévenir avant votre passage: contact@alolise.org.

[FR Paris Châtillon] OW2con'26 - Du mardi 2 juin 2026 à 09h00 au mercredi 3 juin 2026 à 17h00.

OW2con est la conférence open source européenne organisée par OW2. Rencontre internationale de contributeurs, éditeurs, ESN, académiques, et organisations à but non lucratif, OW2con rassemble l'ensemble de la communauté open source.

Les membres de la communauté OW2 et participants extérieurs sont les bienvenus pour se retrouver lors de ces deux journées offrant des présentations variées, allant des sujets tech aux enjeux business et éthiques de l'open source, ainsi qu'un focus sur le thème de l'année (thème 2026 à préciser ultérieurement. C'est également une occasion unique de nouer des contacts avec ses pairs au travers de moments conviviaux de networking.

La conférence est ouverte à tous, l’évènement est gratuit et les conférences ont lieu en anglais.

[FR Bayonne] Cartopartie - Le mardi 2 juin 2026 de 09h30 à 17h00.

OpenStreetMap est un projet cartographique collectif, en ligne et mondial, on le surnomme le Wikipédia des cartes. Chacun peut l'actualiser ou l'améliorer.

Cet atelier spécial d’une journée complète consiste à permettre à chacun de s’approprier son territoire en accomplissant un acte citoyen envers la collectivité sous la forme d’une rencontre conviviale: la réalisation, par les habitants, d’une carte du territoire.
Les équipes sont organisées pour quadriller un secteur à cartographier. Les données sont collectées en petit groupe sur des cartes papier préparées préalablement (secteurs ou rues affectés à chaque groupe). Ensuite, tous les participants se retrouvent autour d’un repas puis au labo numérique pour saisir les données récoltées sur OSM et ainsi les publier, nous finissons bien sûr par un goûter !

Pour midi, chaque participant doit apporter son repas.

Inscription et renseignements auprès de la médiathèque.

[FR Saint-Herblain] Repair Café numérique + Install Party - Le mardi 2 juin 2026 de 14h00 à 17h00.

Un ordinateur qui rame, qui refuse de démarrer ou qui est cassé, venez le réparer en notre compagnie.

Marre de Windows et envie d'un peu de liberté, venez le libérer!

[FR Dijon] Atelier du mardi - Le mardi 2 juin 2026 de 15h00 à 19h00.

Présentation de différents outils concernant les logiciels libres.

Assistance technique.

De préférence sur RDV directement sur le site de l'asso

[Internet] Émission «Libre à vous!» - Le mardi 2 juin 2026 de 15h30 à 17h00.

L'émission Libre à vous! de l'April est diffusée chaque mardi de 15 h 30 à 17 h sur radio Cause Commune sur la bande FM en région parisienne (93.1) et sur le site web de la radio.

Le podcast de l'émission, les podcasts par sujets traités et les références citées sont disponibles dès que possible sur le site consacré à l'émission, quelques jours après l'émission en général.

Les ambitions de l'émission Libre à vous!

Découvrez les enjeux et l’actualité du logiciel libre, des musiques sous licences libres, et prenez le contrôle de vos libertés informatiques.

Donner à chacun et chacune, de manière simple et accessible, les clefs pour comprendre les enjeux mais aussi proposer des moyens d'action, tels sont les objectifs de cette émission hebdomadaire.

L'émission dispose:

[FR Tours] Permanences Installation Linux et Usages logiciels libres - Le mardi 2 juin 2026 de 18h30 à 20h30.

La permanence d'ADeTI est un moment d'accueil avec des bénévoles pour apprendre à utiliser un ordinateur sous GNU/Linux (Ubuntu, Linux Mint, Debian,…) mais aussi:

  • réparer les problèmes de logiciels sur son ordinateur
  • prendre des conseils pour choisir des logiciels alternatifs
  • différencier les logiciels libres utilisables pour répondre aux besoins
  • préserver et réfléchir sur ses usages (vie privée, éthique,…)

Mais c'est aussi un moment consacré pour:

  • partager des connaissances et échanger des savoirs
  • maîtriser les formats ouverts et la pérennité de ses documents
  • Confidentialité, intégrité et disponibilité des systèmes d'information
  • Diversité des alternatives
  • Indépendance

Nous accueillons également des membres de l'association ALFA-Net et A-Hébergement qui peuvent répondre aux questions concernant Internet, les réseaux et l'hébergement: connexion à Internet, alternatives aux "Box" et aux opérateurs/FAI commerciaux, Neutralité du Net, Vie Privée, Blog, Site Internet/Web,…

[FR Croix] Atelier Local-Low-Tech - Le mardi 2 juin 2026 de 19h00 à 22h00.

L'Association Club Linux Nord Pas de Calais est présent tous les premiers mardis du mois aux Petites Cantines, à Croix.

Au cours de ces séances, nous vous proposons d'installer le système d'exploitation libre Linux et/ou les logiciels libres que vous utilisez sur votre ordinateur.

Si votre ordinateur est récent et que vous vous voulez vous donner les moyens de maîtriser les informations qui y entrent et en sortent, ou si votre ordinateur devient poussif…

Pensez à nous rendre visite, c'est gratuit et on vous donnera toutes les clés pour que vous puissiez faire le choix qui vous convient

SelfRecover — protocole AGPL de récupération de compte sans email

29 mai, 2026 - 15:23

Je suis agriculteur en Creuse et je code sur mon temps libre. J'ai commencé à m'intéresser à la question de la récupération de compte en développant ARC PVE Hub, un site destiné à fédérer une communauté de joueurs. Je n'ai jamais compris pourquoi il fallait transmettre son email pour régénérer un mot de passe — ça déplace la sécurité du compte vers un fournisseur SMTP tiers, qui n'est pas contrôlé par l'utilisateur.

J'ai donc imaginé un protocole de récupération sans email, sans SMS et sans tiers. Le travail s'est étoffé en partenariat avec un assistant IA (Claude), comme outil de réflexion et de mise en forme — j'y reviens en fin de dépêche dans une note de transparence.

L'incident de sécurité ANTS du 15 avril 2026 a publiquement illustré le problème. J'en ai eu connaissance après avoir développé SelfRecover, ce qui m'a confirmé la pertinence d'un protocole sans dépendance à l'email. SelfRecover est publié sous AGPL-3.0-or-later sur GitHub.

Cette dépêche présente le protocole, ses choix de conception, ses limites assumées, et la comparaison avec les approches existantes (Keycloak Recovery Codes en particulier, qui m'a été suggéré en relecture). Audit communautaire bienvenu.

Sommaire Le contexte

Depuis l'essor du web, la réponse standard à « l'utilisateur a oublié son mot de passe » est « on lui envoie un lien de réinitialisation par email ». C'est devenu si universel qu'on oublie ce que ça implique :

  • La sécurité du compte est déléguée au fournisseur de la boîte mail (Gmail, Outlook, ProtonMail). Si la boîte mail tombe, le compte aussi.
  • Le canal email est régulièrement exploité par phishing : campagnes imitant des mails de réinitialisation légitimes pour capturer les mots de passe.
  • Les bases de données qui stockent les emails des utilisateurs deviennent une cible massive : leur fuite expose à la fois l'identité et les vecteurs de récupération.

L'incident de sécurité ANTS illustre une autre facette du problème de gestion des données d'authentification dans les services en ligne. Détecté le 15 avril 2026 et rendu public le 20 avril, il a touché 11,7 millions de comptes selon les communiqués officiels. La cause technique identifiée est une faille d'énumération de type IDOR (Insecure Direct Object Reference) : il était possible d'accéder aux données d'un autre compte en modifiant un identifiant dans une URL. La fuite ne concerne ni les mots de passe, ni les pièces justificatives, mais les données personnelles associées aux demandes de titres.

Devant ces limites structurelles autour de l'authentification web, SelfRecover propose une inversion : conserver le secret de récupération chez l'utilisateur, et utiliser le navigateur pour faire les calculs cryptographiques nécessaires à la vérification. Le serveur ne détient plus que des dérivés, jamais les secrets bruts.

Le protocole en deux phrases

Côté navigateur, on calcule HMAC-SHA256(secret, domaine) : une fonction cryptographique standard qui combine le secret de l'utilisateur avec le nom de domaine du site, et produit une empreinte impossible à inverser. Côté serveur, on ne stocke que cette empreinte, en plus protégée par un hash adaptatif et memory-hard : Argon2id, qui est le standard moderne recommandé contre les attaques par brute force.

Deux propriétés découlent de cette construction :

  • Le secret brut ne quitte jamais le poste de l'utilisateur.
  • Un secret capturé sur un site A (par exemple via phishing) est mathématiquement inutilisable sur un site B : la dérivation HMAC produit des empreintes différentes pour des domaines différents. C'est de l'anti-phishing par construction, pas par convention.

Note conceptuelle : l'inspiration vient des machines à rotors historiques type Enigma. Le principe partagé est qu'une même configuration secrète, présente des deux côtés (émetteur et récepteur), permet de produire et vérifier un message dérivé. La cryptographie moderne (HMAC-SHA256 ici) repose sur des fondations mathématiques différentes, mais ce principe de dérivation contrôlée par un secret commun est resté.

Deux modes d'adoption

SelfRecover propose deux modes selon le contexte de déploiement.

Mode Full — Sans email

L'application abandonne entièrement le flow de réinitialisation par email. L'utilisateur génère une passphrase diceware à l'inscription (liste EFF de 7 776 mots, 4 à 7 mots par défaut), qu'il mémorise ou stocke dans son gestionnaire de mots de passe. Cette passphrase, combinée au nom de domaine du site via HMAC-SHA256, permet de réinitialiser le mot de passe sans aucune dépendance externe.

Pour qui : nouveaux projets qui veulent s'affranchir de SMTP dès la conception, ou services qui adoptent un modèle de menace post-fuite (l'email n'est plus considéré comme un canal de confiance).

Mode Lite — Avec email + mot mémorisé

L'application conserve le flow de réinitialisation par email habituel, mais y ajoute une étape supplémentaire : l'utilisateur saisit un mot mémorisé (choisi à l'inscription) qui est dérivé HMAC-SHA256 côté navigateur. Le mot brut n'est jamais transmis au serveur. La validation combine donc deux facteurs :

  1. La possession de la boîte mail (lien reset reçu)
  2. La connaissance du mot mémorisé (dérivé HMAC côté client)

Pour qui : applications existantes qui ne peuvent abandonner SMTP du jour au lendemain, mais veulent durcir progressivement leur flow de récupération. Conséquence : un email intercepté seul ne suffit plus à compromettre un compte — il faut aussi connaître le mot mémorisé.

Synthèse Mode Canal email Crypto utilisateur Cible Full Aucun Passphrase diceware EFF + HMAC Nouveaux projets Lite Conservé Mot mémorisé + HMAC Applications existantes SelfRecover vs Keycloak Recovery Codes

Lors de la relecture de cette dépêche, devnewton a soulevé une question importante : quelle est la différence avec les Recovery Codes de Keycloak ?

Keycloak est l'IAM (Identity and Access Management) open-source de référence, maintenu par Red Hat sous licence Apache 2.0, déployé dans de nombreuses organisations depuis plus d'une décennie. Son mécanisme de Recovery Codes est un fallback d'authentification à deux facteurs : si l'utilisateur perd son téléphone TOTP, il peut saisir un code de secours préalablement généré côté serveur.

Note importante de positionnement : les Recovery Codes Keycloak adressent le cas « j'ai perdu mon 2FA mais je connais toujours mon mot de passe principal ». Le password reset principal de Keycloak utilise, lui, le canal email standard (configuration SMTP dans l'onglet Email de l'admin console).

SelfRecover s'attaque à un cas différent : « j'ai oublié mon mot de passe principal et je ne veux pas dépendre de l'email pour le récupérer ». Concrètement :

Aspect Keycloak Recovery Codes SelfRecover Cible Fallback 2FA Password recovery sans email Architecture Serveur IAM standalone (Java + BDD + admin) Bibliothèque à intégrer dans le code de l'application Source du secret Serveur génère, utilisateur sauvegarde Utilisateur génère/mémorise (diceware ou mot mémorisé) Stockage utilisateur Codes à sauvegarder physiquement Passphrase mémorisable (mode Full) ou mot mémorisé (mode Lite) Email reset principal Reste nécessaire (SMTP configuré dans l'admin) Aucun (mode Full) ou en complément (mode Lite) Anti-phishing crypto Pas spécifique au mécanisme Dérivation HMAC par domaine : un secret capturé sur un site est mathématiquement inutilisable ailleurs Licence Apache 2.0 AGPL-3.0-or-later Maturité 10+ ans, audité, déployé largement Récent, audit communautaire bienvenu

Pour la majorité des projets qui acceptent l'email comme canal de récupération, Keycloak (et son écosystème) reste le bon choix. SelfRecover s'adresse aux applications qui veulent réduire ou supprimer leur dépendance à SMTP, et qui n'ont pas besoin de la richesse d'un IAM complet (multi-realm, OIDC/SAML, fédération d'identité, etc.).

Que se passe-t-il si l'utilisateur perd son secret ?

C'est la question critique d'un protocole de récupération. SelfRecover y répond par escalade progressive sur trois niveaux, complétée par un système de litiges et un chat administrateur pour les cas extrêmes.

Niveau 1 — Passphrase oubliée

L'utilisateur saisit son username + sa passphrase diceware (match exact). Sur succès, un nouveau mot de passe est généré et affiché une seule fois. Anti-brute force : 3 tentatives par 15 minutes, 3 blocages successifs → éjection vers L2.

Niveau 2 — Passphrase perdue, mais identifiant + mot de récupération retenus

L'utilisateur saisit son identifiant public (numéro client, identifiant métier — fourni par le site) et son mot de récupération dérivé HMAC-SHA256 côté navigateur. 3 tentatives maximum avec compteur visible. Sur 3 échecs → redirection vers L3. Un litige est automatiquement créé (LIT-XXXX), tracé en base, admin notifié. Les litiges auto-résolus sont purgés après 24 heures.

Niveau 3 — Accès complètement perdu

Entrée par un lien discret « accès perdu » sur la page de connexion. L'utilisateur saisit son identifiant public en premier (anti-timing : délai forcé de 2 à 3 secondes), puis remplit un formulaire de scoring multi-facteur :

Catégorie Champs Points Identifiant public 4 20 Mot de récupération (dérivé HMAC) 5 25 Username 3 30 Passphrase (fragments) 3 25

Bonus passifs : IP connue (+5), fingerprint connu (+5).

  • Score ≥ 60/100 → compte récupéré, nouveau mot de passe généré
  • Score < 60/100 après 3 tentatives → le compte passe en mode restreint : l'utilisateur n'a plus accès qu'au chat administrateur, le compte n'est ni utilisable ni écrasable tant que l'admin n'a pas validé
  • Cooldown : 1 heure entre tentatives
Chat administrateur humain en mode restreint — état actuel

Dans l'implémentation actuelle (déployée en production sur ARC PVE Hub), le chat L3 est un canal direct entre l'utilisateur en mode restreint et un administrateur humain du site. Pas d'intermédiaire automatisé, pas de bot.

Le canal de chat est bidirectionnel et fonctionne en polling (pas WebSocket temps réel, pour rester simple). L'admin vérifie l'identité par l'échange et décide manuellement :

Accorder la récupération : mot de passe régénéré, compteurs réinitialisés, litige clôturé, mode restreint levé.

Refuser la récupération : ban temporaire de 24 heures, pas de nouveau litige possible pendant cette fenêtre, compteur de refus incrémenté (1/3, 2/3, 3/3). À chaque clic, l'interface admin rappelle explicitement les conséquences via une modale de confirmation (ban 24h aux refus 1 et 2, suppression définitive au 3e refus).

Au 3e refus, le compte est définitivement supprimé : décision exclusivement humaine, prise en pleine connaissance de cause par l'admin via la modale d'avertissement explicite. La suppression libère l'identifiant public pour une nouvelle inscription.

Principe de design MySelf : aucune destruction de données utilisateur n'est déclenchée sans validation humaine consciente. L'interface admin explicite systématiquement les conséquences avant chaque action irréversible. Une IA peut se tromper ou être manipulée ; lui déléguer la décision de supprimer un compte créerait une surface d'attaque.

Ce mécanisme empêche un attaquant de spammer les litiges indéfiniment : chaque refus lui coûte 24 h, et trois échecs effacent toute trace. Un propriétaire légitime bloqué par erreur peut retenter après chaque fenêtre de ban, ou se réinscrire depuis zéro si totalement verrouillé.

Évolution prévue (en réflexion) : pré-traitement optionnel par chatbot LLM local

En complément du chat admin humain (qui resterait toujours disponible), une couche de pré-traitement par un agent conversationnel local (Ollama auto-hébergé) est en cours de design. Le chatbot poserait les questions initiales de vérification d'identité et estimerait si la demande est légitime. Sur estimation positive, le mot de passe serait régénéré directement ; sur doute, l'admin humain reprendrait la main.

Cette option serait configurable par site qui déploie (activable ou non), et le chatbot ne se substituerait jamais à l'admin pour les décisions destructives (suppression de compte) — ces décisions resteraient exclusivement humaines, conformément au principe MySelf énoncé plus haut.

L'enjeu principal en cours de réflexion : calibrer le seuil de confiance du chatbot pour ne pas créer un nouveau vecteur d'attaque par social engineering (un attaquant pourrait essayer de manipuler le LLM par prompts).

Démo standalone vs implémentation de référence

La démo publique (bi-self.my-self.fr/selfrecover/) ne couvre que les niveaux L1 et L2, car L3 nécessite une interface admin, un système de disputes et un dashboard — trop pour une démo à page unique.

L'implémentation de référence en production se trouve sur ARC PVE Hub, un site communautaire de joueurs ARC RAIDERS qui sert de terrain de test à l'écosystème MySelf. L1 + L2 + L3 + mode restreint + chat admin + dispute system y sont fonctionnels.

Pourquoi assumer cette friction

Dans la vie réelle, si l'on perd sa carte bancaire, son code, sa pièce d'identité, son adresse et sa date de naissance, on ne récupère pas son compte bancaire par email. On passe en agence avec preuve d'identité.

SelfRecover applique la même logique en ligne : la sécurité réelle nécessite parfois un passage par l'humain ou un processus d'identification rigoureux. Cette friction est assumée comme un trade-off conscient, pas comme une limitation à compenser.

Pour quel public

Adapté :
- Applications avec un administrateur actif et disponible pour traiter les litiges (forum communautaire, association, e-commerce indépendant, boutique en ligne militante)
- Sites où la sécurité prime sur la fluidité de récupération (services manipulant des données sensibles)
- Communautés à taille humaine (du forum de 50 membres au service de quelques milliers d'utilisateurs)

Non adapté :
- Plateformes à très grande échelle sans admin individuel (réseaux sociaux massifs, services publics avec millions d'utilisateurs) — le volume de litiges dépasse les capacités d'un humain réactif
- Services où une friction de récupération est inacceptable (gaming compétitif, services temps-réel)
- Projets sans maintenance active (l'admin doit pouvoir répondre aux litiges dans des délais raisonnables)

Pour ces cas, un IAM mature comme Keycloak avec ses mécanismes éprouvés reste plus adapté.

Modèle de menace assumé

Pour la transparence, voici les classes d'adversaires explicitement hors périmètre du protocole :

  • Compromission du poste utilisateur (logiciels malveillants, RAT, keyloggers) — un attaquant qui contrôle le poste peut capturer la passphrase à la saisie, indépendamment du protocole.
  • Compromission du navigateur (extensions malveillantes, exploits 0-day) — même cause, même effet : si le moteur JS qui calcule HMAC est compromis, la sortie l'est aussi.
  • Coercition physique — SelfRecover n'offre pas de plausible deniability (pas de second compte caché ou décoy).
  • Cryptanalyse théorique de SHA-256 / HMAC / Argon2id — un cassage mathématique de ces primitives mettrait à mal la quasi-totalité des systèmes cryptographiques modernes, pas seulement SelfRecover.

Ces limitations sont le périmètre normal d'un protocole côté navigateur. Pour les usages à plus haute exigence (cérémonies cryptographiques sensibles, génération initiale de clé maître), MySelf-Live est annoncé dans la roadmap V0.2 : une distribution Linux Live USB minimale, RAM-only, signée GPG, qui isolerait les opérations sensibles du système hôte. Pour les usages courants à fort enjeu, Tails ou Qubes OS offrent déjà ce niveau d'isolation et sont recommandés.

Démos en ligne

Aucune inscription préalable n'est requise. Les données sont éphémères côté serveur.

Code et image Docker docker run -p 8080:8080 ghcr.io/pierroons/selfrecover:v0.1.1

La démo de référence tourne sur PHP 8.0+ et SQLite (~600 lignes auditables, zéro dépendance externe). Tag GPG-signé v0.1.1, release datée du 5 mai 2026.

Licence et philosophie

AGPL-3.0-or-later. Toute version déployée publiquement doit publier ses modifications sous la même licence. Pas de capture SaaS possible.

SelfRecover est une brique du méta-projet MySelf, un écosystème de modules auto-hébergés qui couvre l'identité, la modération communautaire, le droit, et l'agriculture.

Un module complémentaire répond de manière directe à la problématique illustrée par l'incident ANTS : SelfDataGuard chiffre les données utilisateur côté client de telle sorte qu'une fuite de base de données ne livre que des blobs inexploitables. Le code est public, AGPL, en v0.1.0-beta — une dépêche dédiée pourra suivre quand le module aura plus de maturité (audit communautaire, retours d'intégration).

Note de transparence Conception en partenariat avec un assistant IA

Ce protocole a été conçu et codé en partenariat avec un assistant IA (Claude), comme outil de réflexion, de revue critique, et d'écriture de code.

Pour être totalement transparent : je ne suis pas développeur de formation. Mon expérience technique vient du dev web amateur (ARC PVE Hub, un site destiné à fédérer une communauté de joueurs ; un outil de gestion de stock pour mon entreprise ; quelques sites perso). Pour SelfRecover, l'écriture des primitives cryptographiques et la mise en œuvre du protocole ont été largement assistées par l'IA, sur la base de mes choix architecturaux et de ma vision.

Ce qui vient de moi (humain) :
- La vision (souveraineté numérique, refus du SMTP comme canal de récupération)
- Les choix philosophiques (AGPL-3.0-or-later, fallback humain assumé, aucune destruction de données sans validation humaine consciente)
- Le contexte initial (besoin né en développant ARC PVE Hub)
- Chaque décision de trade-off d'architecture
- La responsabilité juridique et morale du code publié sous mon nom et signé GPG

Ce qui vient de l'IA :
- L'écriture des primitives cryptographiques (HMAC, dérivations, vérifications)
- L'agencement du code, la structure des fichiers
- La formalisation des paragraphes du whitepaper et de cette dépêche
- La génération de tests unitaires
- La vérification de cohérence interne

Plan d'audit
  • Auto-audit interne : en cours et continu (chaque modification est relue critiquement)
  • Audit communautaire : ouvert dès maintenant, je réponds aux remarques techniques avec sérieux (cette dépêche en est l'illustration directe)
  • Audit tiers certifié : envisagé à moyen terme via un cabinet agréé CESTI ANSSI (Synacktiv, Quarkslab, Wavestone, ou équivalent), sous réserve de financement
Statut du projet

SelfRecover en est à la version 0.1.1, taguée GPG et signée. C'est un état PoC fonctionnel + déployé en production sur un site réel (ARC PVE Hub), mais pas encore mature pour une adoption massive dans des contextes à fort enjeu. La roadmap V0.2 (MySelf-Live, finalisation du chatbot L3, audit tiers) précisera ce périmètre.

Engagement communauté LinuxFr et culture du libre

Mon compte LinuxFr est récent, mais mon ancrage dans la culture du libre ne l'est pas : utilisateur exclusif de distributions Linux depuis quinze ans (principalement Debian), j'ai aidé plusieurs proches à migrer des PC anciens vers Debian pour leur donner une seconde vie au lieu de la déchèterie. J'arrive sur LinuxFr depuis le monde agricole/permaculture et le jeu vidéo (ARC PVE Hub), pas du milieu dev historique.

Je suis salarié couvreur dans une PME et installé en agriculture à temps partiel — mon temps libre pour le développement et la participation communautaire est compté. Je m'engage à répondre aux retours techniques sur cette dépêche et à suivre les disputes sur l'état du projet. Pour le reste (commentaires réguliers, dépêches futures sur d'autres modules MySelf — en particulier SelfDataGuard quand il sera plus mature), ce sera au gré du temps disponible, sans promesse.

Toute critique technique constructive est bienvenue. Pour les critiques sur la légitimité du projet ou la nature humain/IA de la collaboration, j'invite à juger sur les choix concrets, le code public, et la qualité des réponses à vos questions.

Pour aller plus loin

SelfRecover est un module de l'écosystème MySelf, expérimentation citoyenne sur la souveraineté numérique sous licence AGPL-3.0-or-later.

Les retours techniques, audits communautaires, propositions d'intégration et questions de fond sont les bienvenus — en commentaire de cette dépêche ou en issue sur le repo GitHub.

Si une administration ou une organisation souhaite tester le protocole en environnement isolé, l'image Docker et le Dockerfile sont à disposition. Aucune démarche commerciale n'est associée à cette publication.

Merci aux modérateurs et contributeurs de LinuxFr — Pierre Jarillon, devnewton, Florent Zara, bobble bubble — dont les retours pendant la phase de rédaction ont substantiellement amélioré cette dépêche.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Migrer de Windows vers un système libre — « Libre à vous ! » du 19 mai 2026 — Podcasts et références

29 mai, 2026 - 14:59

276e émission « Libre à vous ! » de l’April. Podcast et programme :

  • sujet principal : Migrer de Windows vers un système libre sur le poste de travail avec Magali Garnero, présidente de l’April, membre de Framasoft ; Zoé Pélegry, porte-parole des mouvements Alternatiba et ANV-COP21 ; David Frissard de l’association Désobsolescence
  • chronique de Gee sur « Pourquoi je fais de l’art libre »
  • chronique de Benjamin Bellamy sur « La nouvelle série à la mode dont tout le monde parle sur les réseaux sociaux »
  • Quoi de Libre ? Actualités et annonces concernant l’April et le monde du libre

Rendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 MHz en Île‐de‐France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune. Vous pouvez nous laisser un message sur le répondeur de la radio : pour réagir à l’un des sujets de l’émission, pour partager un témoignage, vos idées, vos suggestions, vos encouragements ou pour nous poser une question. Le numéro du répondeur : +33 9 72 51 55 46. La prochaine émission sera diffusée mardi 2 juin à 15h30 (puis en podcast). Nos invitées seront la LDH et Amnesty International France. Pour avoir le regard d'assocations dont l'objet premier n'est pas "le numérique", mais qui pour autant ont développé une analyse de ces enjeux à l'aune de leur propre combat. Et plus particulièrement, des associations de défense des droits humains.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

PyConFR 2026, à Biarritz du 29 octobre au 1 novembre

28 mai, 2026 - 17:43

L’Association Francophone Python (AFPy) organise la PyConFR 2026 du jeudi 29 octobre au dimanche 1 novembre. Pour cette 17e édition, nous sommes accueillis par l'école ESTIA de Biarritz !

La PyConFR, c’est un évènement gratuit sur 4 jours autour du langage de programmation Python. Elle est composée deux jours de développements participatifs (sprints), puis de deux jours de conférences et ateliers.

L’appel à propositions est ouvert jusqu’au 31 juillet 2026. Peu importe votre niveau en Python, vous pouvez proposer un sujet de sprint, de conférence ou d’atelier ! Venez parler de développement logiciel, de diversité, de communauté, faire un retour d’expérience sur un outil, présenter votre projet, un domaine d’activité…

Comme tous les ans, nous proposons aux personnes habituellement peu représentées en conférence de l’aide pour trouver un sujet, rédiger la proposition de conférence, rédiger le support de conférence et pour répéter. Vous pouvez nous contacter à l’adresse diversite@afpy.org si vous pensez en avoir besoin.

Enfin, la PyConFR est entièrement financée par les sponsors. Si vous connaissez des sponsors potentiels, n’hésitez pas à leur parler de l’évènement !

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Podcast Projets Libres saison 4 épisode 18 : OCS Inventory NG, 25 ans d'inventaire de votre parc informatique !

28 mai, 2026 - 15:13


Connaissez-vous OCS Inventory NG ? C'est un logiciel pour inventorier votre parc informatique, démarré en 2000 !

Dans ce nouvel épisode nous vous proposons de découvrir sa riche et longue histoire :

  • sa genèse
  • l'arrivée de la Gendarmerie Nationale dans le projet
  • sa collaboration avec l'outil de gestion de parc GLPI
  • un fork de son agent Linux
  • la transition vers un projet porté par la société FactorFX.

Bonne écoute !

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lettre d'information XMPP de février 2026

28 mai, 2026 - 15:13

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 et LinuxFr.org selon une procédure définie.

Bienvenue dans la lettre d'information XMPP, ravi de vous retrouver ! Ce numéro couvre le mois de février 2026.

La lettre d'information XMPP vous est proposée par l'Équipe de communication de la XSF.

Comme tout autre projet accompli par la XSF, la lettre d'information est le résultat du travail volontaire de ses membres et des personnes y contribuant. Si vous êtes satisfait des services et logiciels que vous utilisez peut-être, n'hésitez pas à dire merci ou aider ces projets.

Vous souhaitez contribuer à l'équipe de communication de la XSF ? Lisez en bas de page.

    Sommaire Annonces de la XSF Logo XMPP dans Font Awesome

    Comme nous l'avions annoncé dans notre lettre d'information de décembre 2025, le logo officiel de XMPP est désormais intégré à Font Awesome depuis la version 7.2.0. Et le résultat est vraiment trop cool (NDLR: awesome en anglais) !

    Évènements XMPP

    Informations XMPP pour le DI.DAY : Quatre recettes pour utiliser un protocole de chat ouvert lors du « Digital Independence Day », l'initiative allemande (DI.DAY), proposées par la communauté XMPP pour permettre aux gens de se lancer dans la messagerie indépendante !

    XMPP Sprint à Berlin (DE / EN) : l'événement se déroulera du vendredi 19 au dimanche 21 juin 2026, dans les bureaux de Wikimedia Deutschland e.V. à Berlin, en Allemagne. Si cela vous intéresse, n'hésitez pas à nous rejoindre ! Pensez simplement à vous inscrire ici, afin que nous sachions combien de personnes seront présentes et organiser l'événement au mieux. Si vous avez des questions ou des inquiétudes, rejoignez-nous sur le salon de discussion : sprints@muc.xmpp.org !

    Vidéos et conférences XMPP Articles XMPP Nouvelles des logiciels XMPP Clients et Applications XMPP
    • Conversations a publié les versions 2.19.10, 2.19.11 et 2.19.12 pour Android. Ces versions apportent une refonte de la gestion des QR code et URI, une correction d'un problème de rotation pour les tablettes et permet également de supprimer les messages lors du bannissement d'un participant d'un salon public, entre autres. Vous pouvez consulter le journal des modifications pour tous les détails.
    • Fluux Messenger, un client XMPP moderne, multi-plateforme, pour les communautés et organisations, les versions 0.11.3, 0.12.0, 0.12.1, 0.13.0, 0.13.1 et 0.13.2 ont été publiées, avec une liste d'ajouts, nouvelles fonctionnalités, corrections de bogues et améliorations qui bien plus longue que ce qu'on peut mentionner ici. Consultez directement le journal des modifications pour tous les détails !

    • Gajim a publié sa version 2.4.4 de son application de chat XMPP gratuit et bourré de fonctionalités. Cette publication apporte la prévisualisation des liens, un grand nombre d'améliorations pour macOS, et des corrections de bogues. Merci pour toutes vos contributions ! Vous pouvez consulter le journal des modifications pour tous les détails.

    • Monal a sorti sa version 6.4.18 pour iOS et macOS.
    • Monocles a sorti ses versions 2.1.2 et 2.1.3 de son client de messagerie instantanée pour Android. La première publication apporte des corrections pour la rétraction des messages, les images envoyées en tant que lien et la récursion infinie du TagEditorView, ajoute le support des liens dans les posts, désactive le bouton publication après un clic pour éviter un double post, refactorise l'interface utilisateur pour la correction des messages et une évolution dans le modèle d'accès au canal social pubsub. Pour la dernière, elle ajoute la pause et reprise de story sur le dialogue supprimer, des corrections pour la gestion de la barre d'avancement et la recherche de contact pour les stories, et enfin des corrections depuis Conversations, ainsi qu'une mise à jour des traductions.
    • Profanity a sorti sa version 0.16.0 de son client XMPP console écrit en C. Cette publication apporte des corrections pour la détection OTR, le démarrage OMEMO, l'écrasement des nouveaux comptes lors de l'exécution en mode multi-instance, la reconnexion lorsqu'aucun compte n'a été encore configuré, l'ajout d'une nouvelle commande /changes qui permet à l'utilisateur de comparer les modifications de la configuration d'exécution et la configuration sauvegardée, parmi de nombreux autres corrections de bogues ou améliorations. Merci de consulter le journal des modifications pour tous les détails !
    • xmpp-web a sorti sa version 0.11.0 de son client léger pour serveurs XMPP.

    Serveurs XMPP Bibliothèques et outils XMPP
    • python-nbxmpp, une bibliothèque Python qui fournit aux applications Python un moyen d'utiliser le réseau XMPP, la version 7.1.0 a été publiée. Détails complets dans le journal des modifications.
    • QXmpp, le client et serveur XMPP multi-plateforme en C++, les versions 1.13.1, 1.14.1, 1.14.2 et 1.14.3 ont été publiées. Détails complets dans le journal des modifications.
    • Siltamesh, une passerelle simple entre Meshtastic et les réseaux XMPP, la version 0.2.0 a été publiée.
    • Slidge : la version 0.3.7 a été publiée. Vous pouvez consulter les journaux des modifications intermédiaires de 0.3.6 à 0.3.7 pour tous les détails.
    • Slixmpp, la bibliothèque XMPP pour Python 3.7+ sous licence MIT : les versions 1.13.0 et 1.13.2 ont été publiées. Vous pouvez consulter les annonces officielles ici et ici pour tous les détails.
    • xmpppy, une librairie Python qui vise à fournir un environnement de script simple pour Jabber, la version 0.7.3 a été publié. L'ensemble des détails est disponible dans le journal des modifications.
    Extensions et spécifications

    La XMPP Standards Foundation développe des extensions à XMPP dans sa série de XEP en plus des RFC XMPP. Des développeuses, développeurs et autres personnes expertes en normes du monde entier collaborent à ces extensions, élaborant de nouvelles spécifications pour les pratiques émergentes et affinant les méthodes existantes. Proposées par n'importe qui, celles qui remportent le plus de succès finissent par être classées comme finales ou actives, selon leur type, tandis que les autres sont soigneusement archivées comme différées. Ce cycle de vie est décrit dans la XEP-0001, qui contient les définitions formelles et canoniques des types, des états et des processus. Vous pouvez en savoir plus sur le processus de normalisation ici. La communication autour des normes et des extensions se fait via la liste de diffusion des normes (archives en ligne).

    Extensions proposées

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

    • Metadonnées des liens
      • Cette spécification décrit comment attacher les métadonnées d'un lien dans un message.
    Nouvelles extensions
    • Version 0.1.0 de la XEP-0510 (Métadonnées de contact chiffrées de bout en bout)
      • Acceptée comme Expérimentale par vote du conseil (dg)
    • Version 0.1.0 de la XEP-0511 (Métadonnées des liens)
      • Acceptée comme Expérimentale par vote du conseil (dg)
    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érimentale pour être classée comme Déférée. Si une mise à jour intervient, la XEP sera replacée dans la catégorie Expérimentale.

    • Pas de XEP déférée ce mois-ci
    Extensions mises à jour
    • Version 1.26.0 de la XEP-0001 (XMPP Extension Protocols)

      • Affichage (et correction) des informations de gestion du code source.
      • Affichage de l'URL de publication (bien que je suppose que tous ceux qui lisent ceci l'ont trouvé depuis).
      • Affichage des contributeurs.
      • Ajout d'une clé concernant les auteurs de XEP faisant des PR s'ils n'existent pas - c'est "nouveau" plutot que de documenter l'usage actuel.
      • Ajout d'une clé concernant les PR recevant l'approbation de l'auteur de la XEP (pratique existante toutefois non documentée).
      • Ajout d'une clé concernant le Conseil (etc) ajoutant les auteurs aillant quitté (pratique existante toutefois non documentée).
      • Ajout d'une note clarifiant que la Rétraction ne signifie pas la Suppression (pratique habituelle, documentée, mais a été mal interprété par le passé). (dwd)
    • Version 1.1.0 de la XEP-0143 (Guidelines for Authors of XMPP Extension Protocols)

      • Reflète la préférence pour des pull request Github pour la soumission initiale,
      • les PR ne contiennent qu'une XEP à modifier. (dwd)
    • Version 0.8.0 de la XEP-0353 (Jingle Message Initiation)

      • Adapter l'usage des types JID aux cas d'usage réels :
        • Envoi des réponses JMI au JID complet de l'initiateur au lieu du JID de base
        • Envoi l'élément JMI <finish/> au JID complet des deux parties (melvo)
    Dernier appel

    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é que 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'état Stable.

    • Pas de dernier appel de XEP ce mois-ci
    Extensions stables
    • Pas de XEP passant stable ce mois-ci
    Extensions dépréciées
    • Pas de XEP dépréciée ce mois-ci
    Extensions rejetées
    • Pas de XEP rejetée ce mois-ci
    Partagez les nouvelles

    Veuillez partager cette nouvelle sur d'autres réseaux :

    Consultez également notre flux RSS !

    Vous recherchez des offres d'emploi ou souhaitez engager un consultant professionnel pour votre projet XMPP ? Consultez notre tableau d'affichage des offres d'emploi XMPP.

    Contributions et traductions de la lettre d'information

    Il s'agit d'un effort communautaire, et nous tenons à remercier les traductrices et traducteurs pour leur contribution.
    Les bénévoles et les nouvelles langues sont les bienvenues !
    Les traductions de la lettre d'information XMPP seront publiées ici (avec un certain retard) :

    Contributions à la lettre d'information de ce mois-ci : emus, cal0pteryx, Gonzalo Raúl Nemmi, Ludovic Bocquet, sokai, XSF iTeam

    Contributions à la traduction :

    Aidez-nous à créer la lettre d'information

    Cette lettre d'information XMPP est produite en collaboration avec la communauté XMPP. Chaque numéro mensuel est rédigé dans ce simple pad. À 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 de nouvelles personnes contributrices. N'hésitez pas à rejoindre la discussion dans notre groupe de discussion Comm-Team (MUC) et à nous aider ainsi à poursuivre cet effort communautaire. Vous avez un projet et souhaitez le faire connaître ? N'hésitez pas à partager vos actualités ou événements ici, et à les promouvoir auprès d'un large public.

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

    • collecte d'actualités dans l'univers XMPP
    • résumés courts d'actualités et d'événements
    • résumé de la communication mensuelle sur les extensions (XEP)
    • révision du projet de lettre d'information
    • préparation d'images pour les médias
    • traductions
    • communication via les comptes des médias
    Licence

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

    Télécharger ce contenu au format EPUB

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Sortie de la version 7.0 de Datafari, moteur de recherche open source « intelligent » pour entreprise

    26 mai, 2026 - 15:49

    Nous (France Labs, éditeur de Datafari) sommes fiers de vous annoncer la mise à disposition de Datafari 7.0

    Nous avons beaucoup travaillé sur l’intégration plus avancée de l’IA au moment de la recherche, avec à présent une interface dédiée, notre « assistant intelligent », qui permet de converser avec les documents internes.

    Pour rappel, Datafari est une solution de recherche pour entreprise. Où que les connaissances se trouvent et sous quelque format que ce soit, elle permet aux employés de retrouver les données utiles.

    Et désormais grâce à l’IA, de « discuter » avec ses connaissances. Plus concrètement, il s’agit de récupérer et d’indexer les données et documents depuis de nombreuses sources différentes et plusieurs formats de fichiers, et de permettre aussi de chercher des documents, mais aussi d’utiliser une IA générative pour les questionner.

    Pour cette dépêche, on se concentre sur la version libre et open source (licence Apache Public License v2).

    Les nouveautés et changements principaux par rapport à la version 6 :

    1. Un assistant intelligent permettant de discuter avec les documents
    2. Un mode « Retrieval Augmented Generation » permettant d’obtenir des réponses basées uniquement sur les données internes, et ne nécessitant pas d’entraîner un modèle
    3. Un mode « agentic » permettant à l’IA de raisonner sur la question posée, et de décider quelles actions prendre pour y répondre
    4. Une recherche avec plusieurs modes : par mots clés, sémantique (basée sur la recherche vectorielle dans Solr) ou hybride
    5. Des corrections, des améliorations et des mises à jour logicielles
    Comment démarrer ?

    Pour voir à quoi ça ressemble, nous avons téléversé une courte vidéo de démonstration (voir le lien plus bas). Pour démarrer tout de suite, le mieux est d’aller lire le quick start guide. Nous mettons gratuitement à disposition notre documentation Datafari sur Confluence, qui couvre les usages, l’administration et le développement. Attention, les modules d’IA que nous avons développés, nécessitent la disponibilité d’un serveur exposant un modèle d’IA compatible. De base, Datafari n’héberge pas localement une IA. Le plus simple pour débuter est de le connecter par exemple à Mistral pour se faire la main, et ensuite de passer à des modèles locaux hébergés par vos soins ou par des partenaires.

    Pour rappel, voici les principales fonctionnalités de Datafari en tant que moteur de recherche :

    Que peut-on faire avec Datafari ?

    Datafari est un moteur de recherche pour entreprise enrichi à l’IA : membres de la famille des outils de gestion des connaissances, les solutions de recherche fédèrent les connaissances en analysant et indexant tous les documents d’une organisation, aussi bien leur contenu que leurs métadonnées. Pour cela, le moteur de recherche doit être multi‐sources, multi‐formats, et gérer la sécurité. En outre, il faut permettre l’administration de l’outil.

    Dans la version libre, on peut, côté admin :

    1. Administrer les connecteurs vers les sources de données (nous utilisons Apache ManifoldCF avec tous ses connecteurs) ;
    2. Utiliser l’IA à l’indexation pour analyser et enrichir les contenus ;
    3. Gérer l’algorithme de pertinence qui classe les documents pour leur affichage suite à une requête ;
    4. Mettre en avant des documents pour des requêtes identifiées ;
    5. Créer des utilisateurs et leur assigner des rôles ;
    6. Voir des statistiques d’usage de l’outil ;
    7. Configurer le modèle d’IA et les paramètres de vectorisation ;
    8. Encore plein d’autres choses abordées dans la documentation Confluence.

    Côté utilisateur, on peut :

    1. Chercher de façon simple ou avancée ;
    2. Poser des questions sur un ou plusieurs documents ;
    3. Laisser l’IA fouiller dans tous les documents pour répondre ;
    4. Bénéficier de la correction orthographique et de l’auto‐complétion ;
    5. Choisir et utiliser des facettes pour filtrer les résultats ;
    6. Créer des alertes par courriel quand des documents modifiés ou nouveaux correspondent à une requête ;
    7. ….
    Et ensuite ?

    Pour 2026 et 2027, nous continuerons de faire évoluer la partie IA. En parallèle, nous travaillons à la refonte de notre système de moissonnage des données.

    Des commentaires ?

    Nous sommes en permanence à l’écoute des commentaires et suggestions pour faire avancer le produit, alors profitez-en, que ce soit d’un point de vue technique ou fonctionnel, ça nous intéresse. Ha et si vous êtes déjà un utilisateur, n’hésitez pas à en parler sur le web !

    Télécharger ce contenu au format EPUB

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    LibrePlan 1.6.0 : nouvelle version de l’outil libre de gestion de projets

    26 mai, 2026 - 14:25

    Une nouvelle version de LibrePlan vient d’être publiée.

    LibrePlan est une application web libre de gestion de projets, de ressources et de portefeuilles de projets, développée depuis 2009. Le projet est distribué sous licence AGPLv3 et peut être auto-hébergé.

    Le logiciel vise notamment les organisations souhaitant conserver la maîtrise de leurs données et éviter une dépendance à des plateformes SaaS propriétaires.

    Cette version 1.6.0 introduit plusieurs évolutions importantes :

    • gestion des risques et des incidents (« issue & risk log ») ;
    • dépôt documentaire par projet ;
    • vue pipeline des projets ;
    • indicateurs visuels de statut des projets ;
    • amélioration des fonctions de gouvernance et de suivi ;
    • extension importante de l’internationalisation.

    Le projet prend désormais en charge 18 langues. Les nouvelles traductions ont été produites à l’aide d’outils d’IA puis intégrées et corrigées par la communauté.

    Sur le plan technique, LibrePlan continue à s’appuyer sur une architecture Java/PostgreSQL et propose un déploiement simplifié via Docker. Le projet utilise également Forgejo Actions pour son infrastructure CI/CD, dans une logique de souveraineté numérique et d’indépendance vis-à-vis des grandes plateformes centralisées.

    LibrePlan peut être utilisé aussi bien par des entreprises que par des administrations publiques ou des organisations souhaitant disposer d’une solution libre et auto-hébergeable pour la planification, l’allocation des ressources et le suivi de projets.

    Télécharger ce contenu au format EPUB

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Sortie de Tryton 8.0

    25 mai, 2026 - 14:05

    Le 20 avril 2026 est sortie la version 8.0 de long support de Tryton un progiciel de gestion intégré modulaire et multiplate-forme.

    La version 8.0 de Tryton s'inscrit dans la continuité des versions précédentes en améliorant la stabilité, les performances et les fonctionnalités (dont ci-dessous les principales).
    Cette version a un support long de cinq ans comparé à une année pour version précédentes.

    Interface et usage quotidien

    Quand un champ a été modifié par les actions de l'utilisateur, il est identifié afin de permettre une vérification visuelle avant de sauvegarder.

    Les onglets peuvent être réorganisés maintenant aussi pour le client web et l'action de déconnexion est désormais dans le même menu qui contient déjà les notifications et les préférences utilisateurs afin de donner encore plus d'espace dans l'entête pour les onglets.

    Modules métiers

    Sur le plan fonctionnel, la version 8.0 s'enrichit avec de nouveaux modules : gestion des chèques, gestion des accises et suivi d’alcool ainsi que le suivi de la vente de service par des tâches de projet.

    Les modules comptables espagnols et allemands ont été sortis du dépôt standard afin d'être gérés plus simplement par la communauté.

    Administration et développement

    La version 8.0 ajoute le support de Python 3.14 et arrête celui de Python 3.9.
    La librairie psycopg est mise à jour à la version 3 ce qui permet d'envoyer les requêtes SQL et leurs paramètres séparément et ainsi lever les limitations sur la taille des paramètres (entre autre le nombre d'IDs dans les clause column IN (...)).

    Il est maintenant possible de définir des champs Function (c-à-d calculés par l'ORM) uniquement par une expression SQL. Cette expression sera utilisée pour la lecture, la recherche et le tri.

    La définition des modules a été améliorée pour permettre l'utilisation de sous-répertoires plus facilement. En effet, on peut maintenant créer un fichier tryton.cfg dans un sous-répertoire et utiliser un chemin relatif depuis celui-ci vers ses fichiers ressources.

    Une API REST a été ajoutée au serveur et une librairie cliente naiad a été publiée. Elle permet de remplacer l'utilisation du module trytond directement pour la création d'applications connexes telles que des sites web. C'est une architecture plus flexible que celle utilisée jusqu'à maintenant comme dans le module flask-tryton.

    Les sessions pour le client web sont maintenant stockées comme cookie pour plus de sécurité.
    Le client web utilise à présent uniquement des chemins relatifs, ce qui permet de le servir depuis un sous-répertoire.

    Appel à sponsor

    Pour préparer l'obligation de facturation électronique en France, un appel à sponsor a été lancé pour intégrer la plateforme agrée SUPER PDP.

    Télécharger ce contenu au format EPUB

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Nouveautés de mai 2026 de la communauté Scenari

    24 mai, 2026 - 19:22

    Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous rédigez une seule fois votre contenu et vous pouvez les générer sous plusieurs formes : site web, PDF, OpenDocument, diaporama, paquet SCORM (Sharable Content Object Reference Model)… Vous ne vous concentrez que sur le contenu et l’outil se charge de créer un rendu professionnel accessible et responsive (qui s’adapte à la taille de l’écran).

    À chaque métier/contexte son modèle Scenari :

    • Opale pour la formation 
    • Dokiel pour la documentation 
    • Optim pour les présentations génériques 
    • Topaze pour les études de cas 
    • Parcours pour créer des scénarios de formation 
    • et bien d’autres…
    Sommaire

    Agenda du Libre pour la semaine 22 de l'année 2026

    24 mai, 2026 - 12:10

    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 63 événements (France: 54, Québec: 7, Internet: 2) est en seconde partie de dépêche.

    Sommaire [FR Saint Clar] Tous les Lundis, médiatheque de Saint Clar – Le lundi 25 mai 2026 de 10h00 à 17h00.

    Tous les lundis de 10h à 17h sans interruption, l’association Prends-toi en main / atelier abcpc, propose install party, suivi, dépannage, formation et revalorisation à petit prix sous Linux exclusivement.

    L’atelier abcpc existe depuis plus de 10 ans et milite exclusivement pour les logiciels libres.

    [Internet] Mapathon 2025-2026 par CartONG – Le lundi 25 mai 2026 de 18h00 à 20h00.

    Vous voulez vous engager pour une cause, rencontrer de nouvelles personnes et découvrir la cartographie participative et humanitaire? CartONG vous invite à participer à un ou plusieurs mapathons en ligne!

    Portabase : un outil libre de sauvegarde et restauration pour bases de données

    24 mai, 2026 - 12:10

    Portabase est un logiciel libre auto-hébergeable publié sous licence Apache 2.0, conçu pour automatiser la sauvegarde et la restauration de bases de données dans des scénarios de reprise après sinistre et de migration homogène (c’est-à-dire entre bases de données de même type).

    Son architecture distribuée le rend particulièrement adapté à des environnements décentralisés, où les bases de données ne sont pas accessibles sur un même réseau. Il permet de piloter les sauvegardes depuis une interface unique, tout en laissant l’exécution effective aux agents déployés au plus près des bases de données.

    Sommaire Un projet né d’un besoin opérationnel

    Portabase a été créé il y a environ deux ans et demi pour répondre à un besoin interne : remplacer des scripts utilisés pour sauvegarder des bases PostgreSQL par une solution centralisée et facilement maintenable, évitant d’avoir à déployer un script avec une cron sur chaque serveur. N'ayant pas trouvé de logiciels libres répondant à ce besoin, nous avons investi pour créer cette solution et faire un premier pas dans la contribution au monde du libre, après avoir été de simples utilisateurs pendant de nombreuses années.

    La construction d’une communauté autour du projet a réellement commencé depuis environ six mois, vers mi-décembre 2025, avec la publication d’une documentation plus détaillée, des articles sur Reddit et la création d’un serveur Discord.

    Quelques statistiques à mi-mai 2026 :

    • environ 850 étoiles, 90 issues ouvertes et 5 contributeurs sur GitHub
    • plus de 10 000 pulls sur Docker Hub
    • environ 2 000 visites mensuelles sur la documentation.
    Une architecture distribuée : un serveur central et des agents

    Le serveur central fournit l’interface graphique et joue le rôle de control-plane : il permet de déclarer les agents, configurer les sauvegardes, lancer des restaurations et connecter des systèmes tiers (stockages, notifications). Il est construit avec Next.js en TypeScript.

    L’agent est déployé au plus près des bases de données : il exécute les tâches de sauvegarde et de restauration. Initialement écrit en Python, il a été réécrit en Rust afin d’obtenir un composant plus léger, plus prévisible et plus robuste à l’exécution. Les garanties apportées par le compilateur Rust contribuent à réduire drastiquement les bugs avant même la mise en production.

    Le choix architectural est important : le serveur central ne contacte jamais directement les agents. Il n’est donc pas nécessaire d’ouvrir des ports entrants vers les environnements où résident les bases de données. Ce sont les agents qui contactent périodiquement le serveur central. Cette approche réduit la surface d’exposition réseau et limite les conséquences d’une compromission du serveur central.

    Bases de données prises en charge

    Le projet a démarré avec PostgreSQL, puis s’est étendu rapidement à d’autres moteurs, d’abord dans l’écosystème SQL.

    Portabase prend aujourd’hui en charge neuf bases de données : PostgreSQL, MySQL, MariaDB, MongoDB, SQLite, Redis, Valkey, Firebird et Microsoft SQL Server. La prise en charge Microsoft SQL Server est plus récente, puisqu’elle date d’environ une semaine au moment de la rédaction, et doit donc encore être considérée comme en phase de test.

    Aperçu des fonctionnalités clés Sauvegardes planifiées, déclenchement manuel et rétention

    Portabase permet de planifier des sauvegardes selon des intervalles fixes ou à l’aide d’une syntaxe cron. Il reste également possible de déclencher une sauvegarde manuellement ce qui est utile avant une opération de maintenance, une mise à jour applicative, une migration ou toute intervention susceptible de modifier fortement l’état des données.

    La gestion de la rétention repose sur trois politiques configurables :

    • count-based : conserve un nombre maximal de sauvegardes
    • time-based : conserve les sauvegardes pendant une durée maximale
    • GFS (Grandfather-Father-Son) : pour un plan plus élaboré, cf. ci-après.

    Le GFS permet une granularité avec des sauvegardes journalières, hebdomadaires et mensuelles. L’objectif est de couvrir aussi bien les petites installations auto-hébergées que les besoins d’équipes qui doivent formaliser un plan de conservation.

    Restauration et migration homogène

    Sauvegarder est nécessaire, mais ce n’est pas suffisant ! L’objectif principal reste de pouvoir restaurer les données le moment venu, en écrasant les données existantes par celles contenues dans la sauvegarde sélectionnée.

    Le cas de migration couvert est celui d’une migration homogène : même type de base de données, même version. Portabase permet ainsi de déplacer une base de données de manière contrôlée en passant par l’interface graphique, sans avoir à utiliser des commandes dans un terminal.

    Attention : Portabase n’est pas un convertisseur de bases de données. Il ne sert pas à transformer une base PostgreSQL en base MySQL, ni une base MongoDB en base MariaDB.

    Stockage local ou distant

    Portabase peut stocker les sauvegardes localement, sur l’instance qui héberge le serveur central, ou à distance via des stockages compatibles S3, par exemple AWS S3 ou Garage. Google Drive est également pris en charge. Une même sauvegarde peut être envoyée vers plusieurs destinations simultanément, ce qui permet de créer de la redondance.

    Notifications lors d’évènements spécifiques

    Le système de notifications couvre les canaux couramment utilisés par les équipes techniques : email, Slack, Discord, Telegram, Ntfy, Gotify et webhooks. Les alertes peuvent être déclenchées sur les succès comme sur les échecs de sauvegarde, avec des politiques personnalisables au niveau des bases de données.

    Organisation et contrôle d’accès

    Portabase intègre un système d’organisation par espace de travail. Toutes les ressources (agents, canaux de notification, stockage, etc) peuvent être attribuées à des organisations spécifiques, permettant de segmenter les accès. Cette fonctionnalité est principalement utilisée par des équipes qui gèrent plusieurs clients.

    Installation et déploiement

    L’installation peut se faire avec le CLI, Docker ou sur Kubernetes via Helm Chart. Les images Docker sont disponibles pour les architectures linux/amd64 et linux/arm64.

    Pour les personnes qui ne souhaitent pas utiliser la CLI, la documentation propose des configurations prêtes à l’emploi, aussi bien pour le serveur central que pour les agents, permettant de démarrer rapidement.

    Feuille de route et fonctionnalités à venir

    La feuille de route doit être mise à jour très prochainement. Les prochains développements porteront sur l’amélioration de l’expérience utilisateur, l’intégration dans des écosystèmes auto-hébergés comme Unraid, Proxmox VE Scripts, Dokploy et Coolify, ainsi que le renforcement des tests sur toutes les versions de bases de données prises en charge.

    Conclusion

    Portabase est né d’un besoin très concret : disposer d’un outil centralisé pour gérer les sauvegardes et restaurations de bases de données, sans maintenir une collection de scripts maison répartis sur chaque serveur.

    Le projet couvre déjà plusieurs besoins courants : politiques de rétention, notifications, stockage local ou distant, authentification OIDC/OAuth2, ainsi que des modes de déploiement adaptés à Docker et Kubernetes.

    Des retours d’usage, rapports de bugs et contributions sont donc les bienvenus pour continuer à durcir le projet et l’adapter aux cas réels rencontrés sur le terrain. N'hésitez pas à rejoindre le Discord !

    Télécharger ce contenu au format EPUB

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Nouvelles de Haiku - Printemps 2026

    22 mai, 2026 - 20:47

    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.

    Ce compte-rendu liste les principales modifications survenues en février, mars et avril. Ces changements sont numérotés de hrev59356 jusqu’à hrev59671 dans le code source de Haiku, soit environ 320 changements ce trimestre.

    Les grosses nouveautés sont la disponibilité d’une version ARM64, l’accueil de 3 participants au Google Summer of Code et l’approche de la version beta 6, très attendue puisque la dernière version publiée, la beta 5, date de septembre 2024.

    Sommaire Portage de Haiku pour les architectures ARM64 et RISC-V

    C’est la grosse nouvelle de ce trimestre : la version ARM64 de Haiku parvient enfin à lancer le Tracker et permet donc d’avoir un environnement fonctionnel !

    Ce travail repose bien entendu sur les efforts de nombreux contributeurs par le passé pour mettre en place cette nouvelle architecture. Ces derniers mois, le travail a été complété par smrobtzz avec des corrections pour pouvoir compiler Haiku depuis macOS, des pilotes pour le port série S5L utilisé par Apple, une correction de l’adresse de base du noyau, la remise à 0 du frame pointer lors du début d’exécution du noyau, des corrections dans la gestion de la mémoire physique, ainsi que quelques correctifs dans l’espace utilisateur. SED4906 a également participé avec des corrections dans la gestion des pages mémoire du bootloader, ainsi que dans les vérifications de taille de pages du runtime_loader.

    smrobtzz ne s’est pas arrêté là, il a ensuite ajouté la possibilité d’utiliser plusieurs cœurs et threads de processeur (SMP) et corrigé des problèmes de compatibilité avec la version du firmware EFI EDK2 fournie par défaut avec QEMU, ainsi que, entre autres, des problèmes avec la fonction system_time.

    Une fois le système de base stabilisé, le travail s’est poursuivi du côté de Haikuports où smrobtzz et waddlesplah ont travaillé ensemble pour corriger de nombreux problèmes, en particulier sur les recettes de compilation croisée et le processus de “bootstrapping” qui permet de générer le jeu de paquets initiaux permettant d’exécuter Haiku. Les téléchargements de “nightly builds” pour ARM64 fournissent donc maintenant un système utilisable sur les machines ARM64 au moins dans QEMU.

    Un fil de discussion sur le forum de Haiku permet de suivre l’évolution de ces développements. La prochaine étape est la compilation de toutes les applications disponibles dans Haikuports, la correction des problèmes que cela va immanquablement dénicher, et la stabilisation du système. Ensuite, le travail pourra se poursuivre pour rendre cette version de Haiku utilisable hors de QEMU sur du matériel réel.

    Du côté de RISC-V, le portage de Haiku est un peu plus avancé depuis quelques mois déjà, et fonctionne sur certaines machines sans virtualisation dans QEMU. Ce trimestre, on voit donc seulement une correction de TODO dans le code pour le thread-local storage concernant l’utilisation de variables atomiques (waddlesplash).

    Applications TextSearch

    TextSearch est une application de recherche de texte dans le contenu de fichiers. C’est l’équivalent graphique de la commande grep.

    Désactivation de vérifications de types de fichiers redondantes pour accélérer l’application (Philippe Houdoin).

    HaikuDepot

    HaikuDepot est à la fois un gestionnaire de paquets et un magasin d’applications.

    apl continue d’améliorer l’application HaikuDepot.

    • Modification du code de vérification des schémas JSON, en particulier pour préparer son intégration avec le code traitant les requêtes REST et pouvoir ainsi valider les requêtes et les réponses.
    • Correction d’un problème d’affichage de l’onglet “Featured packages” (avec une correction dans BTabView).
    • Refonte du code d’affichage des données dans la liste des paquets.
    Software Updater

    Software Updater est l’application permettant de télécharger et d’installer des mises à jour de paquets logiciels.

    Correction d’un crash lorsque l’on quitte l’application pendant une mise à jour (Nathan242).

    Ajout d’une option (activée par défaut) de nettoyage automatique des points de restauration anciens pour éviter de remplir le disque système avec des paquets obsolètes. La règle retenue est de conserver toujours au moins 10 points de restauration, et tous ceux qui sont plus récents que 30 jours (waddlesplash).

    DeskCalc

    DeskCalc est une calculatrice.

    Nettoyage et améliorations du code de calcul en précision arbitraire (John Scipione).

    Mail

    Mail est le client email de Haiku. Il propose seulement l’affichage et la rédaction de mails : l’envoi et la réception sont traités par un service indépendant (mail_daemon), tandis que l’affichage de la boîte de réception est réalisé par des requêtes directement dans Tracker.

    Humdinger s’est penché sur la gestion des mails avec plusieurs corrections et améliorations :

    • L’attribut thread est correctement enregistré sur les messages envoyés, ce qui permet de facilement les regrouper avec les messages reçus dans la conversation correspondante.
    • Quelques fichiers du code source n’étaient pas scannés par les outils de localisation, donc certains termes restaient invariablement en anglais.
    • Implémentation de labels, permettant d’étiqueter les messages avec des chaînes de caractères arbitraires. Auparavant, l’attribut statut était détourné pour ça, mais cela pose des problèmes lors de la synchronisation avec les serveurs IMAP, pour lesquels le statut du message a une signification bien spécifique. Les labels sont pour l’instant entièrement locaux et ne sont pas synchronisés avec le serveur de messagerie. Cette fonctionnalité comprend également un nouvel add-on pour le Tracker, permettant de facilement étiqueter un fichier.

    La couleur du texte pour le corps des messages se met à jour immédiatement lors d’un changement des préférences de couleur du système (John Scipione).

    Tracker

    Tracker est le gestionnaire de fichiers de Haiku.

    John Scipione continue son travail sur le Tracker :

    • L’aperçu des fichiers en cours de glissé-déplacé affiche maintenant les fichiers avec leur apparence « sélectionnée » (texte blanc sur fond noir), ce qui permet de garder le texte plus facilement lisible (bien que ce soit peut-être moins joli).
    • L’icône de la corbeille s’affichait parfois pleine alors qu’elle est vide ou inversement, suite à des problèmes de synchronisation de cache et de collecte des informations de l’état de la corbeille de chaque disque monté.

    John a également supprimé du code obsolète et corrigé de très nombreux problèmes, par exemple avec le tri des fichiers, la gestion des images de fond dans les fenêtres, le copier coller…

    Nathan242 a quant à lui corrigé un plantage lorsqu’on annule le vidage de la corbeille ainsi que des problèmes de formatage de l’indicateur du nombre de fichiers sélectionnés.

    Madmax a fait en sorte que les raccourcis claviers pour les add-ons se mettent à jour immédiatement (et pas lors de l’ouverture d’un menu pop-up) lorsque les add-ons sont modifiés.

    Waddlesplash a également fait quelques corrections mineures, dont une mérite une mention : une optimisation pour réduire le nombre d’appels système pour le node monitring (réception de notifications lorsque des fichiers sont modifiés).

    StyledEdit

    StyledEdit est un éditeur de texte de type « bloc notes ». Il permet d’utiliser du texte formaté (polices, couleurs…)

    Lors de la création d’un nouveau document texte, le nom « Sans titre 1 », « Sans titre 2 », etc. est généré avec le plus petit nombre non utilisé. Auparavant, les numéros s’incrémentaient même si certains fichiers avaient entretemps été renommés ou fermés (x512).

    CharacterMap

    CharacterMap permet d’explorer le jeu de caractères unicode et d’y piocher des caractères intéressants.

    Correction d’un bug dans la recherche par nom de bloc unicode, amélioration de la disposition des caractères, et diverses autres petites améliorations (madmax).

    DeskBar

    DeskBar est la barre des tâches de Haiku, permettant de naviguer entre différentes fenêtres et applications.

    Ajout dans la fenêtre des préférences d’un sélecteur de coin (similaire à celui déjà utilisé pour les coins actifs dans les préférences des écrans de veille). Ceci permet d’améliorer la découvrabilité de la possibilité de déplacer la DeskBar à différents endroits sur l’écran, et est plus facile à utiliser que le “grip” de déplacement de la DeskBar elle-même, qui est tout petit (PulkoMandy, basé sur un ancien patch de mmu_man).

    Terminal

    Ajout d’une initialisation manquante pour la couleur du curseur, en particulier lorsque le Terminal est utilisé comme réplicant dans une autre application (JackBurton79, suite à l’utilisation du Terminal dans l’IDE Genio).

    Utilisation de _exit au lieu de exit dans les processus fils lancés par fork() sans exec(). L’utilisation de exit appelle les destructeurs globaux dont la destruction de certaines ressources partagées avec le processus parent. C’est une difficulté du mélange des API graphiques de BeOS avec un modèle POSIX complet (waddlesplash). Le même problème a été également corrigé dans l’application Expander.

    LaunchBox

    LaunchBox est un « dock » permettant de stocker des raccourcis vers des applications fréquemment utilisées.

    Simplification du mécanisme d’enregistrement des paramètres. Auparavant, l’enregistrement était fait après un délai d’inactivité, pour éviter d’enchaîner plusieurs écritures sur disque à chaque modification de réglages. Il semble plus simple d’enregistrer les modifications tout de suite, et de laisser le cache disque faire son travail pour décider d’écrire ces changements sur disque tout de suite ou un peu plus tard (nephele).

    MediaPlayer

    Optimisation du code de lecture des fichiers de playlist pour lire le contenu des fichiers ligne par ligne, et pas caractère par caractère (mohammedrattia, dans le cadre de sa candidature au Google Summer of Code).

    ActivityMonitor

    ActivityMonitor affiche des graphes avec différentes statistiques d’utilisation de la machine.

    Correction d’un bug lors de l’affichage des températures du système dans les cas où le pilote ne fournit pas de nom pour la température mesurée (OscarL).

    WebPositive

    WebPositive est le navigateur web de Haiku. Il utilise le moteur WebKit qui est un projet libre co-développé principalement par Apple (Safari), Sony (PlayStation), et Igalia (versions GTK et WPE).

    Pour les téléchargements dont la taille est inconnue, affichage d’un « barber pole » au lieu d’une barre de progression bloquée à 100 % (YashSuthar983 dans le cadre d’une candidature au Google Summer of Code).

    Lorsque WebPositive est quitté en fermant le dernier onglet ouvert, il ne restaure pas ce même onglet lors du prochain démarrage (nipos).

    Suppression de code obsolète dans la barre d’onglets (nipos).

    Devices

    Devices affiche une liste du matériel présent sur la machine.

    Les premiers patchs développés par Aquamatic dans le cadre de sa candidature au Google Summer of Code ont été intégrés ce trimestre :

    • Les périphériques peuvent être triés par bus (PCI, USB…) en complément des autres options déjà disponibles.
    • Nettoyage du code pour prendre en compte certains « TODO » listés dans le code de l’application.
    • Investigation et correction d’une fuite de mémoire.
    Préférences de localisation

    Modification de la localisation dans plusieurs applications pour s’assurer que le comportement de l’option « traduire les noms des applications » est respecté partout lorsque le nom de l’application est mentionné dans un autre texte (humdinger).

    Préférences d’apparence

    Retrait d’espacements inutiles et disgracieux dans la fenêtre (humdinger).

    Outils en ligne de commande

    Remplacement des fonctions fork et exec dans time_stats pour utiliser posix_spawn (waddlesplash). L’utilisation de fork et exec pour lancer des processus enfants est la méthode traditionnelle, la première mise en place dans UNIX. Elle pose des soucis de performance et cause des comportements problématiques. En particulier, de nombreuses ressources du processus parent sont conservées (descripteurs de fichiers ouverts, sémaphores…) alors qu’ils ne sont pas toujours nécessaires. La fonction posix_spawn permet un meilleur contrôle de ces comportements, tout en étant beaucoup plus rapide et plus simple à implémenter. Le sujet a conduit à plusieurs modifications dans d’autres parties du code, dont on reparle plus loin dans la dépêche.

    pkgman propose maintenant une sous-commande cleanup pour le nettoyage des points de restauration. Contrairement à SoftwareUpdater, ce nettoyage n’est pas automatique, car cela rendrait l’utilisation de pkgman potentiellement trop destructrice. Cependant, un message s’affiche après l’installation de mises à jour indiquant le nombre de points de restauration qui peuvent être nettoyés (waddlesplash).

    Amélioration de la commande ltrace, mais celle-ci est toujours un travail en cours et pas encore utilisable (waddlesplash).

    Kits

    Les APIs de programmation de BeOS et de Haiku sont implémentées en C++. Elles sont organisées en “kits” regroupant des fonctionnalités liées.

    Application Kit

    L'application kit comporte toutes les fonctions d’échange de messages entre applications et au sein d’une application.

    Meilleure gestion d’un cas d’erreur dans BInvoker pour remonter l’erreur à la fonction appelante (korli).

    Support Kit

    Le support kit contient toutes sortes de fonctions utilitaires basiques : gestion des chaînes de caractères, parser JSON…

    Ajout de tests unitaires pour la classe BStopWatch (priyanshu-gupta07).

    La famille de fonctions string_for_size change d’unité lorsque la valeur atteint 1000 et pas 1024. Par exemple on affichera “0.9 Gio” plutôt que “1,000 Mio” (korli). Elles pré-initialisent certaines données au démarrage de l’application plutôt que de les recalculer à chaque appel, ce qui rend l’utilisation de ces fonctions beaucoup plus rapide (waddlesplash).

    Les fonctions de géolocatisation BGeolocation utilisent maintenant les services de Beacon DB, suite à la fermeture de Mozilla Location Services (PulkoMandy).

    Suppression des objets BLocker alloués statiquement à plusieurs endroits. Ils sont problématiques lors d’un fork : par défaut, les objets BLocker dans les deux processus résultants pointent vers le même verrou système, mais si l’un des deux processus s’arrête, il détruit le verrou et laisse l’autre dans un état incohérent. Dans ce cadre, ajout également de vérifications pour empêcher le processus fils de continuer à utiliser l’interface utilisateur ou même d’appeler la fonction exit() (waddlesplash).

    Refonte des classes BBlockCache, BTokenSpace et BLooperList utilisées pour gérer des ressources diverses, en particulier dans BMessage : utilisation de locks moins lourds, suppression de sémaphores qui n’était pas nécessaires, optimisation des performances (waddlesplash).

    Modernisation des tests unitaires du support kit, pour rendre plus facile l’ajout de tests supplémentaires (KapiX).

    Optimisation des méthodes de recherches de BString (pour trouver un caractère, une sous-chaîne…) en utilisant les fonctions C prévues à cet effet dans la libc plutôt que des boucles écrites à la main (waddlesplash, avec des corrections de madmax).

    Interface Kit

    L'interface kit contient toutes les classes nécessaires à la réalisation d’interfaces graphiques.

    Correction de l’utilisation de la touche “Suppr” dans une zone d’édition de texte lorsqu’il y a également un raccourci clavier de menu (même désactivé) associé à cette même touche (nathan242).

    Optimisation des méthodes BView::FillStroke et FillPolygon dans leur variante recevant directement un tableau de points pour éviter de recopier ce tableau dans un objet temporaire (x512).

    Correction d’incompatibilités avec BeOS dans le format d’enregistrement de BPicture (x512) :

    • pour l’enregistrement d’images bitmap,
    • le “cisaillement” (shear) des polices de caractères,
    • les sous-pictures,
    • les transformations affines,
    • les “échappements” (espacement des caractères) de texte,
    • et d’autres petits problèmes.

    Ce format permet de stocker une suite d’instructions de dessin pour afficher quelque chose à l’écran. Il est parfois utilisé par certaines applications pour stocker des ressources dans un format vectoriel compact, c’est pourquoi le respect du format défini par BeOS est important.

    Ajout d’une taille minimale pour les barres de défilement, pour qu’elles gardent une taille raisonable même si l’utilisateur choisit une taille de police de texte en dessous de 12pt. La taille de toute l’interface s’adapte automatiquement à ce choix, mais pas de façon linéaire (nipos).

    Suppression d’une valeur présente en double dans le message « mouse idle » envoyé aux applications lorque la souris cesse de se déplacer (x512).

    Correction du code de dessin des cases à cocher pour restaurer l’état initial de la vue dans laquelle le dessin est fait. Ce problème était visible en particulier dans WebPositive lors de l’affichage de cases au sein d’une page web (nephele).

    Correction de la façon dont BButton initialise ses couleurs, pour correspondre au comportement de BeOS et corriger des problèmes avec les applications utilisant liblayout, en particulier Wonderbrush (PulkoMandy).

    Deux modifications sur la gestion des raccourcis clavier :

    • Vérification des changements de raccourcis seulement lorsque c’est vraiment nécessaire. Cela est particulièrement visible dans Tracker où la plupart des raccourcis sont dynamiques (par exemple, actifs seulement si un fichier est sélectionné) (jscipione)
    • Remplacement du tableau simple utilisé pour stocker les raccourcis par un arbre binaire de recherche, permettant de trouver rapidement si une combinaison de touches est associée à un raccourci clavier (waddlesplash).
    Storage Kit

    Le storage kit permet l’accès aux systèmes de fichiers.

    Ajout de la nouvelle macro _DEPRECATED pour signaler au compilateur de déclencher un avertissement si certaines fonctions sont utilisées (via l’option -Wdeprecated). Les premières méthodes à recevoir ce traitement sont dans BMimeType et BResources (waddlesplash).

    Grosse optimisation du « renifleur MIME » qui analyse le contenu des fichiers pour déterminer leur type MIME. L’utilisation de fonctions POSIX optimisées (memmem entre autres) et d’autres améliorations rendent l’étape « mimeset'ing package contents » de la compilation de Haiku ou de paquets HaikuPorts au moins 10 fois plus rapide (waddlesplash).

    Network Kit

    Le network kit permet la programmation d’application communiquant en réseau.

    Correction d’un bug dans BSecureSocket qui ne validait plus les certificats SSL suite à une erreur lors d’une modification précédente (Horizons).

    Media Kit

    Le media kit se charge des médias audio et vidéo.

    Réparation de l’add-on média « mixeur vidéo » qui est maintenant disponible dans l’image de base. Il est surtout utile comme démonstration des possibilités du media kit (x512).

    Serveurs

    Les serveurs sont des applications lancées en tâche de fond et qui rendent différents services. Ils sont similaires aux “daemons” de UNIX.

    app_server

    app_server est le serveur graphique de Haiku.

    Correction d’un crash lors de l’utilisation d’un dégradé de couleurs ne comportant aucune couleur (KapiX).

    La taille indiquée aux accelerants pour les curseurs matériels n’était pas la bonne (Goldfish64).

    Intégration de commits de versions plus récentes de AGG pour corriger des typos dans quelques fonctions (Coldfirex).

    Correction de fautes de frappe détectées par codespell, un outil de vérification orthographique pour le code (korli). Ces modifications font suite à une mise à jour des règles de codage de Haiku pour spéficier que c’est l’orthographe américaine qui est préférée lorsqu’il y a des divergences avec l’anglais européen.

    Ajout d’un nouveau mode de fonctionnement pour les accélerants où le framebuffer n’est accessible que par l’espace utilisateur. Pour l’instant, seuls les pilotes VESA et framebuffer sont concernés, mais les autres pilotes devraient être modifiés de la même façon, car il n’y a pas de raison pour le noyau d’accéder directement au framebuffer à part dans le cas d’un kernel panic, ce qui se fait de toutes façons par une autre méthode (waddlesplash).

    launch_daemon

    launch_daemon est l’application “init” qui se charge du démarrage des autres services et des sessions utilisateurs. Il joue un rôle proche de celui de systemd pour Linux ou de launchd pour Mac OS.

    Retrait des utilisations de fork+exec dans net_server et launch_daemon au profit de posix_spawn. Amélioration du code qui interprète les variables d’environnement (waddlesplash).

    Bluetooth

    Le serveur bluetooth centralise toutes les opérations concernant les périphériques Bluetooth.

    Les premiers patchs des candidats au Google Summer of Code font que les choses bougent à nouveau du côté du serveur Bluetooth !

    Vighnesh Sawant a corrigé le traitement du message “inquiry result” lorsqu’un appareil fournit plusieurs réponses d’un coup (ce qui est possible d’après la spécification du Bluetooth). Il a également implémenté le traitement de nouveaux types de réponses contenues dans ce message, terminé le code nécessaire pour la procédure d’appairage basique, corrigé l’apparition de périphériques bluetooth en double, et encore d’autres problèmes. Il a aussi déplacé tout le code concernant l’appairage basique dans un fichier source séparé.

    Mohammed Rattia a quant à lui nettoyé les fonctions de recherche du périphérique Bluetooth local, et réparé la compilation des tests unitaires liés au Bluetooth.

    Enfin, shivamsinghydv a ajouté une validation de l’adresse MAC des périphériques lors de leur activation par le serveur Bluetooth et corrigé un crash.

    Mail

    Le serveur de mail se charge de l’envoi et de la réception de courrier électronique (POP, IMAP et SMTP). Les messages sont mis à disposition du reste du système sous forme de fichiers avec des attributs étendus.

    Philippe Houdoin a fait quelques changements sur le client IMAP :

    Vérification des informations CAPABILITY retournées directement en réponse à une commande IMAP LOGIN. Les capacités étaient récupérées séparément, mais dans certains cas le serveur envoie cette liste dès le début de la connection, afin de pouvoir informer de capacités qui influent le processus de login, par exemple.

    Modifications de la réponse à la commande ID pour identifier clairement le client mail de Haiku lorsque le serveur demande qui on est.

    Media

    Le serveur média permet l’interfaçage avec la carte son, et les entrées et sorties vidéo s’il y en a.

    Le mélangeur de sons n’est démarré que lorsqu’une application a besoin de jouer du son pour la première fois. Cela économise du CPU et de la batterie (puisque la sortie de la carte son peut être laissée en veille jusqu’à ce moment. Pour l’instant il n’y a pas encore d’arrêt du mixeur et de mise en veille de la carte son lorsque la lecture de son est finie, cela pourra être ajouté plus tard. Cela corrige également certains problèmes conduisant à l’erreur « performance time too large ! » suite à une vérification ajoutée il y a environ deux ans pour détecter des utilisations incorrectes du media kit (waddlesplash).

    Pilotes matériels Stockage

    Le pilote virtio_block a été temporairement désactivé en préparation de la publication de la version beta 6 de Haiku. En effet, il semble causer des problèmes de corruption disque dans certains cas, sans que les développeurs de Haiku aient pu identifier pour l’instant la source du problème. Si vous utilisiez virtio_block, vous pouvez le remplacer par virtio_scsi qui fournit des fonctionnalités équivalentes mais avec un protocole de communication avec la machine hôte différent. Il faut donc par exemple modifier la ligne de commande de démarrage de QEMU (waddlesplash).

    Ajout de paramètres manquants dans les APIs permettant de détecter les fonctionnalités disponibles pour les disques NVMe (feature management) (korli).

    Amélioration de l’initialisation des périphériques connectés à un contrôleur SDHCI : désactivation des cartes dont la tension d’alimentation n’est pas compatible, et mise en place des premières étapes pour la communication avec les périphériques eMMC (Mahmoussam, dans le cadre d’une candidature au GSoC qui n’a pas pu être acceptée).

    Réseau

    Synchronisation des pilotes réseau avec la dernière version d’OpenBSD (waddlesplash).

    Correction d’un bug dans le pilote USB ethernet qui causait un plantage de certains adaptateurs USB lors de la lecture de l’adresse MAC (smrobtzz).

    Ajout de l’USB dans la couche de compatibilité avec FreeBSD, ce qui a permis de remplacer le pilote ASIX-USB développé spécifiquement pour Haiku par celui de FreeBSD, qui permet d’utiliser une plus large gamme d’adaptateurs utilisant un chipset ASIX (waddlesplash et smrobtzz).

    Import du pilote zyd de FreeBSD sous le nom zydzifi1211 avec l’ajout des fonctions nécessaires dans la couche de compatibilité. Ce pilote est à la recherche de testeurs pour confirmer son bon fonctionnement (waddlesplash).

    Affichage

    Ajout des identifiants PCI pour une nouvelle génération de contrôleurs GART Intel, permettant de gérer le partage de la mémoire entre le CPU et le GPU (OscarL).

    USB

    Désactivation d’une optimisation « zéro copie » dans le pilote EHCI (USB 2). Cette optimisation semble déclencher des plantages ou des corruptions sur certaines machines (waddlesplash).

    Virtualisation

    Intégration d’une série de pilotes pour le virtualiseur Hyper-V : souris, heartbeat pour confirmer que le système virtualisé est toujours vivant, synchronisation de l’heure, pilote SCSI, et diverses couches basses nécessaires à tous ces pilotes (Goldfish64).

    Gestion d’énergie

    Correction de messages de debug dans le pilote AMD P-States. Correction de la compilation du pilote audio HDA lorsqu’il est compilé sans les logs de debug. Ce pilote émet de très nombreux logs au démarrage pour identifier la carte son et toutes ses capacités, il est donc parfois utile de désactiver ces logs pour travailler sur autre chose (OscarL).

    Systèmes de fichiers

    Les systèmes de fichiers semblent être une cible appréciée des contributeurs au Google Summer of Code : le périmètre est bien maîtrisé, et le gros du travail se situe au niveau des structures de données, qui sont enseignées dans la plupart des cursus scolaires en informatique.

    Ceci explique une activité inhabituellement élevée dans ce domaine lors de la période de candidature. Cependant, les tâches les plus abordables ont déjà toutes été traitées, et aucun des dossiers de candidature reçus cette année dans ce domaine n’a été jugé de qualité suffisante pour embaucher un nouveau contributeur.

    Packagefs

    Packagefs est un système de fichier virtuel permettant d’accéder aux contenus des paquets installés sur le système. Cette approche permet d’utiliser les paquets logiciels sans avoir besoin de les extraire, et accélère considérablement l’installation et la désinstallation de logiciels.

    Amélioration de la gestion du manque de mémoire RAM, pour favoriser un ralentissement du système plutôt que de déclencher des erreurs de lecture (waddlesplash).

    NTFS

    NTFS est le système de fichier utilisé par Windows.

    Correction d’un crash lors de certaines erreurs de montage de partitions (waddlesplash).

    BTRFS

    BTRFS est un des systèmes de fichiers utilisés par Linux. Il offre de nombreuses fonctionnalités avancées dont le pilote pour Haiku ne sait que faire. Seule la lecture de fichiers classiques est possible.

    Lecture des fichiers compressés avec ZSTD (Abdullah Zulfiqar).

    Corrections de warnings du compilateur et de bugs potentiels (grep-name).

    Ajout de vérification de validité et traitement des collisions de hash dans les recherches de fichiers dans des dossiers ; vérification que la taille des partitions est suffisante avant de formatter un disque en btrfs ; amélioration de certains cas de gestion d’erreur ; nettoyage et amélioration de commentaires (Anuj Billore).

    XFS

    XFS est un système de fichiers initialement développé pour IRIX mais dont le développement continue dans Linux. Il est une alternative populaire à ext4 pour ce dernier.

    Plusieurs corrections par sleipbyte :

    • Correction d’une erreur de compilation
    • Implémentation de rewind_dir, qui permet au Tracker d’afficher le contenu des dossiers,
    • Correction d’erreurs SMAP (accès à la mémoire utilisateur par le noyau sans validation de pointeurs)
    • Amélioration de la détection des partitions
    • Reconnaissance de nouveaux drapeaux indiquant des fonctionnalités additionnelles dans XFS (le système de fichier continue d’évoluer dans son implémentation pour Linux)
    • Traitement d’un cas particulier pour la gestion des attributs étendus : leur absence peut être indiquée par un pointeur NULL ou une taille à 0.
    NFS v2

    NFS est un système de fichiers permettant d’accéder à des fichiers stockés sur un autre ordinateur.

    Amélioration des logs d’erreur lorsqu’un volume NFS ne peut pas être monté (kallisti5).

    Il existe un deuxième pilote plus récent mais qui reconnaît uniquement NFS version 4, malheureusement, certains NAS n’implémentent que la version 3…

    FAT

    FAT est un ancien système de fichiers utilisé par Microsoft, pour DOS et les premières versions de Windows. Il reste populaire sur certains périphériques de stockage amovible et comme dénominateur commun entre beaucoup de systèmes.

    Correction d’un plantage qui pouvait survenir lors du formatage d’une image disque au format FAT (nathan242).

    BFS

    BFS est le système de fichiers de BeOS et de Haiku. Il a la particularité d’avoir une gestion poussée des attributs étendus, et la possibilité d’effectuer des requêtes sur ces derniers à la manière d’une base de données.

    Corrections et améliorations par Waddlesplash :

    • Un plantage pouvait survenir lors de la vérification d’un système de fichiers corrompu,
    • Une division par zéro dans le parseur de requêtes (utilisé aussi par packagefs et ramfs),
    • Un break manquant qui pouvait déclencher un plantage du noyau (assertion ou même utilisation de mémoire libérée) lors de la suppression de plusieurs fichiers en parallèle,
    • Ajout de notifications de renommage et déplacement pour les requêtes “live” en même temps que celles envoyées pour le « node monitoring », afin que les résultats de requêtes restent bien synchronisés avec l’état du disque.
    RAMFS

    RAMFS est un système de fichiers stockant les données directement en RAM. Il permet un accès très rapide aux fichiers, mais il est non persistant, les données sont perdues en cas de coupure ou de redémarrage du système.

    Réorganisation du code par waddlesplash :

    • Nettoyage du code pour tracer la taille des allocations,
    • Consolidation de la logique do « node monitoring »,
    • Correction des évènements « node monitor » sur les fichiers simples.
    RAM disque

    Le ramdisk n’est pas un système de fichiers, mais un périphérique de stockage de masse. Il peut être formaté avec n’importe quel système de fichiers.

    Retrait de l’utilisation de l’ordonnanceur I/O et traitement direct des requêtes à la place. Cela contourne un bug de l’ordonnanceur dans le cas où la taille des secteurs du disque est plus large que les blocs du système de fichiers, ce qui force à écrire plusieurs blocs sur un secteur d’un seul coup. Ce problème ne se produit habituellement pas sur d’autres supports de stockage (la taille des secteurs étant habituellement de 512 octets dans les autres cas). L’ordonnanceur sera tout de même corrigé plus tard, pour permettre son utilisation dans d’autres cas où il est pertinent et dans ce cas de figure, comme les flash NAND accessibles sans contrôleur de haut niveau (nathan242).

    Réseau

    Correction d’une fuite de sockets dans la pile Bluetooth (Vighnesh Sawant).

    Activation du code permettant de charger des modules pour le résolveur DNS nsswitch dans libnetwork. Cela permettra par exemple de charger le module mDNS (aussi connu sous le nom de Avahi pour Linux ou Bonjour pour Mac OS) pour la résolution des noms de machines sur le réseau local (Philippe Houdoin).

    Vighnesh Sawant a également ajouté la possibilité d’utiliser l’option AI_V4MAPPED au résolveur DNS.

    Ajout de la notification de l’erreur B_SELECT_DISCONNECTED (correspondant à l’erreur POSIX POLLHUP) dans les notifications sur les sockets, corrigeant ainsi un cas de test de compatibilité BSD (waddlesplash).

    libroot

    libroot est l’implémentation de la librairie C standard de POSIX. Elle regroupe les fonctions habituellement réparties entre les libc, libm et libpthread sur les systèmes UNIX classiques.

    Remise en place de code spécifique par architecture dans printf qui avait été incorrectement enlevé. Cela corrige des plantages dans certains cas spécifiques (waddlesplash).

    Ajout de la définition de GETENTROPY_MAX qui était manquante dans limits.h (korli).

    Implémentation de la réservation d’espace d’adresse pour le tas du runtime_loader. Ceci évite la fragmentation de l’espace mémoire et améliore les performances, en particulier lorsque l'ASLR est désactivé (Amir Ramez, dont c’est la première contribution).

    Réécriture de l’implémentation de pthread_barrier pour utiliser moins d’appels systèmes, corriger des problèmes de synchronisation, et au final éliminer un blocage qui survenait dans des applications utilisant OpenGL (waddlesplash).

    Remplacement de l’implémentation de strchr et de strcpy par des versions plus optimisées venant de la bibliothèque musl (waddlesplash).

    Correction d’un plantage lors de l’utilisation des allocateurs mémoire “debug” ou “guarded” dans libroot, qui était causé par des changements sur l’ordre d’initialisation des données de localisation (waddlesplash).

    Correction d’incompatibilités dans l’implémentation de kqueue, en particulier, la fermeture d’un descripteur de fichier surveillé déclenchait une notification alors que ce n’est pas le cas dans les implémentations BSD (waddlesplash).

    Renommage de PTHREAD_RECURSIVE_MUTEX_INITIALIZER pour ajouter le suffixe _NP. La constante porte ainsi le même nom que dans glibc par exemple, indiquant clairement qu’il s’agit d’une extension non-POSIX (waddlesplash).

    Remise en place d’une prise en charge multi-plateforme pour le type long double de 128 bits. Le code de glibc pour cela avait été supprimé lors d’un précédent nettoyage car les plateformes x86 utilisent un format à 80 bits. Cela devrait corriger des plantages sur ARM64 et RISC-V lors de l’utilisation de ce type de valeurs (waddlesplash suite à l’investigation de smrobtzz). Bien que le problème eût déjà été signalé lors de la suppression du code concerné, à l’époque il n’y avait pas d’architecture fonctionnelle permettant de prouver la présence du problème.

    Ajout d’un wrapper pour la fonction sigaction dans le « POSIX error mapper », qui permet de faire fonctionner des applications dépendant du fait que les valeurs de errno sont positives (contrainte apparue dans les versions récentes de POSIX, mais impossible à satisfaire tout en conservant la compatibilité avec BeOS) (korli).

    Réparation de POSIX_SPAWN_SETSID, qui ne fonctionnait pas (waddlesplash).

    Noyau

    Le noyau de Haiku est un noyau monolithique assez classique. Il offre la possibilité de charger des modules, et une attention particulière est apportée à conserver le mieux possible l’API définie entre le noyau et les modules, rendant assez facile le développement de modules (tels que des pilotes de périphériques) indépendamment du noyau.

    Gestion des hôtes Hyper-V : calibration TSC spécifique et pilote VMbus (Goldfish64 dont c’est la première contribution).

    Amélioration du suivi des mutex de l’espace utilisateur dans le noyau, pour rendre les problèmes moins faciles à déclencher et plus faciles à rattraper (waddlesplash).

    Korli a corrigé des problèmes détectés par les tests du langage Go :

    • Lors de la création d’un fichier qui impose de traverser un lien symbolique vers un dossier qui n’existe pas encore,
    • Dans la gestion des paquets réseaux, où une gestion de taille de tampon mémoire utilisait des valeurs incohérentes.

    Retravail en profondeur des messages SMP (à la base de toute la mécanique de synchronisation de l’exécution du code entre différents threads et cœurs de CPU) : réduction des attentes actives en utilisant rw_spinlock au lieu de spinlock simples, envoi de messages à seulement certains cœurs plutôt qu’en broadcast, traitement des messages reçus par un cœur avant d’attendre la réception des messages envoyés aux autres, suppression d’opérations atomiques inutiles, etc. (waddlesplash). Ces changements ne semblent pas régler les gros problèmes de performance observés avec ce code lors de l’utilisation de Haiku dans VirtualBox, qui reste donc non recommandé pour utiliser Haiku.

    Activation de l’utilisation de certaines fonctions “builtins” du compilateur dans le noyau. Le noyau est compilé avec l’option -freestanding pour indiquer au compilateur qu’il ne s’agit pas d’un environnement d’exécution standard, en espace utilisateur et avec une bibliothèque C. Cette option empêche le compilateur de supposer qu’une fonction nommée memcpy (par exemple) a un comportement spécifique et peut être remplacée par une implémentation accélérée. Cela limite les possibilités d’optimisation. Pour éviter ce problème, il faut appeler explicitement les fonctions built-in du compilateur qui implémentent ces opérations, ce qui se fait via des manipulations du préprocesseur C. Les noyaux Linux et FreeBSD ont déjà mis en place cette solution, et maintenant Haiku applique la même solution (waddlesplash).

    Correction d’un problème d’initialisation de IO-APIC sur certains systèmes avec un bus PCIe (Goldfish64).

    Optimisation de fonctions liées à la gestion de la swap (waddlesplash). Retravail de la gestion des allocations pour améliorer la stabilité et les performances lorsque la mémoire swap est utilisée (ce patch était en test depuis plusieurs mois afin de trouver un maximum de bugs avant de le fusionner, et de ne pas trop déstabiliser les nightly builds). Nettoyage du code vérifiant les permissions d’accès à la mémoire et la protection (en lecture ou en écriture).

    Modification de l’initialisation des tas d’allocation mémoire du noyau pour permettre d’activer les modes “debug” ou “guarded” avec une option du menu de démarrage (sans devoir recompiler le noyau). Ainsi les utilisateurs peuvent facilement activer ces options pour aider à l’investigation de problèmes de corruption de mémoire qui ne se reproduisent que sur leur machine (waddlesplash).

    Correction de problèmes de synchronization entre le cache de mémoire virtuelle et les opérations sur le système de fichiers, qui pouvait aboutir à un blocage complet du système. Ajout d’un test unitaire pour ce cas particulier (waddlesplash).

    Réorganisation de la mémoire allouée pour le SMP (multiprocesseurs), pour éviter d’allouer un grand nombre de variables atomiques dans la même ligne de cache CPU (problème de "false sharing »). (waddlesplash)

    Découpage des fichiers de code “VM” (gestion de la mémoire virtuelle) dans des fichiers de taille raisonable, par exemple pour le code d’initialisation et le « page writer ». Déplacement du code de notification de page occupée, suppression d’un champ inutile dans les page queues. Waddlesplash poursuit ce travail avec une refonte du page writer, qui n’est pas encore mergée pour l’instant.

    Gestion des ASIDs dans les TLB

    Ce sujet avait été discuté il y a quelques années dans le cadre d’un début de participation au Google Summer of Code qui n’avat pas abouti. Il est revenu à la surface suite à une série d’article « The Gerrit Code Review Iceberg », qui explore les patchs et changements abandonnés par leurs auteurs respectifs sur la plateforme de revue de code Gerrit (plus de 300 changements en attente). L’un des changements listés a attiré l’intérêt de SED4906 qui s’est penché sur les ASIDs. Le sujet est un peu technique et mérite quelques explications.

    Pour gérer la mémoire virtuelle, on utilise une structure appelée TLB. C’est cette structure qui permet de faire correspondre une adresse en mémoire physique à une adresse en mémoire virtuelle, et également de gérer les permissions d’accès (lecture, écriture ou exécution) sur cette mémoire. Ces informations sont stockées en RAM et, pour gérer les vastes quantités de mémoire sur les machines modernes, peut comporter jusqu’à 5 niveaux d’indirection.

    Si chaque accès mémoire devait traverser ces 5 niveaux pour trouver l’adresse physique à accéder, le système serait extrêmement ralenti. Le processeur inclut donc un cache spécifique dans lequel sont stockées les entrées TLB les plus récemment utilisées. Ainsi, la plupart des accès sont résolus très rapidement à l’aide de ce cache et l’impact de la mémoire virtuelle sur les performances est faible.

    Cependant, ce cache crée un autre problème : lors d’un changement de contexte (exécution d’un autre processus par le processeur par exemple), il faut prendre garde à vider ce cache. Sans quoi, le nouveau processus pourrait accidentellement accéder aux données de l’ancien, suite à la mise en cache des mauvaises données. La solution traditionnelle à ce problème est de vider ce cache à chaque changement de contexte, c’est-à-dire plusieurs centaines de fois par seconde. Un processus interrompu, même brièvement, va donc se retrouver lorsqu’il reprend son exécution avec un cache vide, et les premiers accès à la mémoire seront donc fortement ralentis.

    Une solution plus récente est l’utilisation d'ASIDs dans la table des pages. Cela signifie que, dans le cache TLB, chaque entrée va stocker non seulement l’adresse physique et les permissions, mais aussi un identifiant du processus auquel ces informations sont associées. Ainsi, lors d’un changement de contexte, il n’est plus nécessaire de vider le cache. Le nouveau processus disposant d’un ID différent, il ne va pas utiliser les entrées présentes pour un autre processus. Et si le processus initial reprend son exécution, il trouvera une partie du cache déjà préchargée avec ses informations.

    Des identifiants spéciaux peuvent également être utilisés, par exemple pour l’espace mémoire du noyau. Cela permet de conserver dans le cache TLB toutes les entrées correspondant au noyau, qui sont utilisées lors des appels système peu importe le processus en cours d’exécution.

    Le patch implémentant les ASIDs pour les processeurs x86 est encore en cours de développement. Mais la discussion autour de ces changements a déjà conduit à l’intégration de deux modifications plus simples:

    • Lors de la synchronisation entre CPU : par exemple si plusieurs threads (partageant le même espace mémoire) s’exécutent sur des cœurs de processeur différents, il est nécessaire de synchroniser les caches TLB des cœurs de processeur correspondants. Pour ce faire, les processeurs s’envoient des messages s’informant mutuellement de la nécessité de vider le cache TLB. Ce message peut être reçu alors que le processus en cours d’exécution a déjà changé, et dans ce cas, il déclenchait inutilement une vidange du cache supplémentaire (waddlesplash).
    • Il y avait d’autres problèmes dans l’implémentation spécifique aux processeurs x86. Les mesures de performances sur le patch avec activation des ASIDs (dans plusieurs versions) ont conduit à récupérer certains correctifs améliorant les performances sans nécessiter l’activation des ASIDs (SED4906 et waddlesplash).

    Sur les processeurs x86, l’utilisation d’ASIDs est entièrement optionnelle. Ce n’est pas le cas sur d’autres architectures comme SPARC, où leur intégration dans le processeur est beaucoup plus profonde, avec par exemple des instructions permettant de travailler avec plusieurs espaces d’adressage simultanément.

    Chargeur de démarrage

    Correction d’un problème avec la fonction pour “bloquer” des fichiers (par exemple désactiver des pilotes de périphériques empêchant le démarrage) pour traiter correctement les noms de fichiers contenant des espaces (madmax).

    Correction d’une fuite de mémoire dans le code affichant l’écran de démarrage. La mémoire était bien libérée lors du démarrage du noyau, mais seulement après avoir été tranférée du bootloader vers le noyau ce qui complique et rallonge inutilement la procédure de démarrage (waddlesplash). Augmentation de la taille de la zone de mémoire contenant les arguments du noyau, qui pouvait se remplir dans certains cas particuliers comme les images “bootstrap”.

    Système de build

    Forçage de la compatibilité C89 lorsqu’on compile GCC 2 avec les versions récentes de GCC. GCC 2 est toujours utilisé dans Haiku pour assurer la compatibilité avec BeOS. Il n’est pas possible de le compiler avec un compilateur s’attendant à trouver du code compatible avec les versions actuelles du langage C (korli, waddlesplash, kallisti5). La plateforme d’intégration continue a ensuite pu être mise à jour vers une version de Linux qui fournit GCC 14.

    Activation de l’option de compilation -Werror pour un plus grand nombre de dossiers, en particulier netfs, et les pilotes graphiques radeon et s3 (fruitdelapassion). Cette option demande au compilateur de déclencher une erreur de compilation, plutôt qu’un simple avertissement, pour un certain nombre de problèmes. Ainsi, on s’assure que les développeurs ne passent pas à côté d’un problème qui aurait pu être détecté tout de suite. La prochaine étape sera d’inverser la logique pour cette option : l’activer par défaut pour tous les dossiers, et la désactiver explicitement lorsque c’est absolument nécessaire, par exemple pour du code importé d’autres projets pour lequel il est préférable de limiter les modifications.

    KapiX a démarré un chantier d’amélioration du système de tests unitaires afin de rendre plus facile l’ajout de nouveaux tests, réduire la quantité de code à écrire pour faire fonctionner un test, et encourager les autres développeurs à écrire des tests :

    • Correction de la compilation des tests existants (kernel, app_server, libroot…)
    • Définition d’un nouveau type d’image “test” contenant les tests unitaires et un serveur SSH. Cette image peut être générée par la CI, puis démarrée dans une machine virtuelle pour lancer les tests
    • Désactivation des tests qui ne fonctionnent pas au point de provoquer un plantage irrécupérable.

    Ajout d’un fichier de prédéfinition des paramètres POP/IMAP pour l’hébergeur disroot.org (humdinger).

    Correction de la compilation de libroot avec le compilateur clang (nephele).

    Nettoyage des Jamfiles, où du code exécuté en espace utilisateur employait les en-têtes normalement réservés au noyau. Les fichiers qui étaient souvent utilisés dans les deux espaces ont été déplacés dans un dossier commun (waddlesplash).

    Modification de la gestion de errno dans libroot_build (la couche de compatibilité qui implémente des fonctions spécifiques à Haiku sur un système hôte utilisé pour la compilation croisée). Dans certains cas, la valeur de errno n’était pas bonne, ce qui créait des problèmes de comportement dans mimeset et dans d’autres outils utilisés lors de la compilation (waddlesplash).

    Ajout d’un harnais fs_shell pour le système de fichiers ExFAT. Cela permet de tester le code du système de fichiers hors de Haiku, dans une interface en ligne de commande permettant de réaliser des opérations simples (Halonix).

    Ajout d’un message d’avertissement dans la sortie de ./configure si certaines bibliothèques nécessaires à la compilation de Haiku ne sont pas disponibles (nephele).

    Correction de diverses mauvaises orthographes pour le mot “unknown” un peu partout dans le code (SED4906).

    Suppression d’un fichier temporaire qui était accidentellement laissé en place lors de la génération d’une image “MMC” (contenant un chargeur de démarrage pour une platforme ARM). Certains utilisateurs ont confondu ce fichier avec l’image finale et ont eu du mal à démarrer Haiku à cause de ce problème (waddlesplash).

    Documentation

    La documentation de Haiku est séparée en 3 parties:

    • Un guide de l’utilisateur, présentant les différentes applications, raccourcis clavier…
    • Le « Haiku Book », une référence des API pour les développeurs d’applications,
    • Une documentation “interne”, pour les développeurs qui travaillent sur le système d’exploitation lui-même.

    La première est traduite dans plusieurs langues, tandis que les deux autres sont actuellement disponibles uniquement en anglais.

    Haiku Book

    Le Haiku Book est actuellement à utiliser en complément du Be Book, son équivalent rédigé pour BeOS. Haiku a obtenu l’autorisation de distribuer des copies du Be Book, mais avec une license n’autorisant pas les modifications. Cela veut dire que le Haiku Book doit être réécrit de zéro. Les efforts ont donc été mis en priorité sur les nouveautés de Haiku, et la documentation des parties reprises de BeOS arrive petit à petit.

    Ajout de documentation pour B_QUERY_WATCH_ALL qui devient une API publique. Ce flag permet de générer une requête sur le système de fichier et de recevoir des notifications du node monitor lorsque les fichiers trouvés par la requête sont modifiés, même si la modification n’entraîne pas un ajout ou une suppression du fichier des résultats de la requête. C’est l’équivalent de B_WATCH_ALL qui existait déjà pour le node monitoring sur un dossier classique (waddlesplash).

    Ajout de documentation pour des classes liées à l’utilisation du réseau : BCertificate, BProxySecureSocket, BSecureSocket et BSocket (cafeina).

    Gros nettoyage et amélioration de la documentation de BEntry et BStatable. Ajout d’une remarque sur MenusBeginning dans la documentation de BWindow (John Scipione).

    Documentation pour les développeurs

    La documentation interne est un projet plus récent. Elle est construite à partir de documents, d’articles et de messages de mailing list écrits au cours du temps par les développeurs de Haiku, dans le but de mieux structurer ces connaissances et de décharger le site web principal du projet, qui avait initialement accueilli ce type de documents au début du projet. Aujourd’hui, il serait plus intéressant d’avoir un site web plus centré sur l’utilisation de Haiku que sur son développement, mais il ne faudrait cependant pas perdre ces informations, soit pour leur intérêt technique, soit pour leur intérêt historique et la vision qu’elles donnent sur les débuts du projet.

    Clarification d’un paragraphe incompréhensible dans la documentation du device manager (OscarL).

    Mise à jour de la documentation sur l’implémentation de la mémoire swap et suppression de vieux documents sur la VM (gestion de la mémoire virtuelle) qui ne correspondait plus du tout à l’implémentation actuelle (waddlesplash).

    C’est pour quand la bêta 6 ?

    Waddlesplash inclut ce paragraphe dans les rapports d’activités mensuels. Le mieux pour se rendre compte des avancées est de reprendre tel quel les commentaires des 3 derniers mois :

    Février

    On s’approche !

    Un gros changement sur la gestion de la mémoire qui corrige une méchante régression est en attente de revue depuis plus d’un mois mais aucun développeur ne semble disponible pour le relire.

    Du côté du Tracker, la plupart des régressions sont corrigées, mais il en reste encore quelques-unes.

    En dehors de ces deux gros sujets, il n’y a plus que 5 ou 6 bugs et régressions qui doivent absolument être corrigées, mais certaines d’entre elles promettent d’être des sujets compliqués qui vont demander un peu de temps.

    Mars

    C’est pas pour tout de suite !

    Il y a un problème de rafraîchissement de l’affichage dans WebPositive qui bloque le processus de release. Une bonne partie des autres problèmes sont corrigés.

    Avril

    Pas encore !

    Le problème dans WebPositive (dans HaikuWebKit, en fait) a été corrigé, mais il y a maintenant un problème pour télécharger les sources de HaikuWebKit depuis son nouvel hébergement sur Codeberg depuis les machines de build de Haikuports (le fichier est assez gros et déclenche un timeout du côté de Codeberg).

    Et de toutes façons, il reste encore quelques bugs du côté de Haiku lui-même à traiter aussi.

    On peut également jeter un oeil sur l'outil de suivi des bugs pour voir où on en est. Au moment de la rédaction de ce rapport, il reste 25 tickets ouverts dans le jalon beta 6, dont 3 de priorité critique :

    • Un problème de texte illisible lorsqu’on fait un glisser-déplacer d’un grand nombre de fichiers dans le Tracker,
    • Le mode « économie d’énergie » du scheduler empêche le fonctionnement de certains claviers et trackpads,
    • La fenêtre de sauvegarde de fichiers a des problèmes de mise en page, parfois les contrôles de la fenêtre sont superposés
    Google Summer of Code

    Haiku fait de nouveau partie des organisations sélectionnées cette année pour encadrer quelques participants au Google Summer of Code.

    Une quarantaine de candidatures ont été reçues, dont une grande partie ont été assez rapidement éliminées : hors sujet, ne respectant pas le format demandé ou ne comprenant pas une contribution au code par exemple. Le projet Haiku s’en sort plutôt bien, là ou d’autres organisations plus reconnues ont reçues plusieurs centaines de propositions.

    Finalement, étant donné le petit nombre de “mentors” disponibles pour encadrer les participants, seulement 3 participants ont été retenus cette année grâce à leur travail de très bonne qualité avec plusieurs patchs déjà intégrés avant même la fin de la période de candidature.

    Aquamatic sera encadré par KapiX et Korli, et va améliorer l’application “Devices” (gestionnaire de périphériques), en particulier pour indiquer clairement les périphériques pour lesquels un pilote est disponible ou non.

    Mohammed R. Attia et Vighnesh Sawant seront encadrés par Waddlesplash, Scottmc et PulkoMandy. Ils vont poursuivre l’implémentation du Bluetooth dans Haiku. Mohammed se concentre sur les périphériques HID (claviers et souris sans fil) tandis que Vighnesh se chargera du profil audio HFP et, si le projet avance bien, des autres profils audio de meilleure qualité.

    Télécharger ce contenu au format EPUB

    Commentaires : voir le flux Atom ouvrir dans le navigateur