📅 22/02/2026 à 08:30

Nouvelles de Haiku - Hiver 2025-26

📁 Open Source
đŸ‘€ Auteur: Pierre Jarillon
đŸ·ïž Mots-clĂ©s dĂ©tectĂ©s: open source free pto rĂ©seau stoc wifi
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. Il ne s’agit pas d’une distribution Linux, mais d’un systĂšme complet avec son propre noyau, sa propre pile graphique, etc. L’idĂ©e de cette approche est d’avoir une seule Ă©quipe travaillant sur toute la pile logicielle, pour Ă©viter les soucis de coordination entre projets indĂ©pendant et d’excĂšs de modularitĂ©, qui peuvent aboutir Ă  une architecture logicielle inefficace. En revanche, cela demande un gros travail pour une Ă©quipe relativement rĂ©duite, et le systĂšme est donc en dĂ©veloppement depuis bientĂŽt un quart de siĂšcle sans avoir encore publiĂ© une version majeure complĂšte. La cinquiĂšme version beta a Ă©tĂ© publiĂ©e en 2024. Les dĂ©veloppements continuent pour stabiliser, optimiser et peaufiner le systĂšme, avec une version beta 6 prĂ©vue en dĂ©but de cette annĂ©e, qui sera probablement suivie par une beta 7 quelque temps plus tard. Cette sĂ©rie de dĂ©pĂȘches est basĂ©e sur les rapports d’activitĂ© publiĂ©s mensuellement par le projet Haiku. Cette Ă©dition couvre les modifications de Haiku numĂ©rotĂ©es entre hrev59111 et hrev59355 (soit 244 changements individuels), en plus d’activitĂ©s se dĂ©roulant hors du dĂ©pĂŽt Git principal. Entre parenthĂšses est indiquĂ© le pseudonyme de l’auteur ou autrice principal·e du changement. Des pseudonymes sont utilisĂ©s par habitude (venant des canaux IRC et/ou de la culture de la demoscene) et aussi pour prĂ©server l’identitĂ© des personnes qui le souhaitent (certains participants utilisent Ă©galement leur nom lĂ©gal, d’autres pas). lien ná”’ 1 : DĂ©pĂȘche trimestrielle prĂ©cĂ©dente lien ná”’ 2 : Rapport d'acivitĂ© mensuel de novembre 2025 lien ná”’ 3 : Rapport d'activitĂ© mensuel de dĂ©cembre 2025 lien ná”’ 4 : Rapport d'activitĂ© mensuel de Janvier 2026 Sommaire Mise Ă  jour de Go en version 1.18 RedĂ©marrage automatique de app_server Applications ActivityMonitor Terminal HaikuDepot WebPositive Expander AboutSystem LaunchBox Tracker MediaPlayer Sudoku DeskBar People Lecteur MIDI MidiPlayer ProcessController Installer Mail DriveSetup Debugger Changements transverses FenĂȘtres de prĂ©fĂ©rences RĂ©seau PĂ©riphĂ©riques d’entrĂ©e Apparence Outils en ligne de commande Kits Interface Storage Device Package Serveurs Notifications Network app_server Pilotes de pĂ©riphĂ©riques SystĂšmes de fichiers libroot & noyau RĂ©seau Gestion des processus BibliothĂšque C standard Gestion de la mĂ©moire EntrĂ©es-sorties Chargeur de dĂ©marrage SystĂšmes de fichiers Outils de debug Build system Documentation Haiku book Documentation interne Autres nouvelles Changement de tarification de Netlify Remise sur les rails de HSA (Haiku Support Association) SĂ©rie d’articles « Gerrit code review iceberg » Statistiques de contribution pour 2025 Mise Ă  jour de haiku-format À quand la beta 6? Mise Ă  jour de Go en version 1.18 Le mois de novembre a vu l’arrivĂ©e d’une grosse mise Ă  jour de la chaĂźne d’outils pour le langage Go en version 1.18. Il s’agit d’une version de 2022, mais c’est un gros progrĂšs puisque la version prĂ©cĂ©dente disponible pour Haiku Ă©tait la version 1.4 datant de 2014. De plus, cette version 1.18 est disponible dans le dĂ©pĂŽt de paquets et peut ĂȘtre installĂ©e normalement avec pkgman (au moins pour les architectures x86 et x86_64). La plus grande partie du travail a Ă©tĂ© rĂ©alisĂ©e par Korli, depuis plusieurs annĂ©es, pour mettre en place l’environnement de compilation nĂ©cessaire, et aussi corriger de nombreux problĂšmes de compatibilitĂ© POSIX dans Haiku qui ont Ă©tĂ© mis en Ă©vidence par les tests de Go. Cela permet par exemple d’utiliser Hugo , le gĂ©nĂ©rateur de site statique utilisĂ© pour le site principal de Haiku. Waddlesplash a donc pu rĂ©diger et vĂ©rifier le rapport d’activitĂ© de novembre en utilisant uniquement Haiku : avec Hugo, WebPositive (le navigateur natif de Haiku, basĂ© sur WebKit), l’éditeur de texte Koder , ainsi que Iceweasel (un portage de Firefox) pour la correction d’orthographe. RedĂ©marrage automatique de app_server app_server est le serveur graphique de Haiku. Il s’agit d’un composant critique, pour lequel un crash rend le systĂšme Ă  peu prĂšs inutilisable. Waddlesplash a corrigĂ© plusieurs problĂšmes dans le code pour permettre de redĂ©marrer le serveur aprĂšs un crash, et de le reconnecter avec les applications en cours d’exĂ©cution. Ce redĂ©marrage nĂ©cessite encore quelques Ă©tapes manuelles car les crash dĂ©marrent actuellement le debugger automatiquement, mais cela peut ĂȘtre changĂ© par une simple configuration. Applications ActivityMonitor ActivityMonitor affiche sous forme graphique divers paramĂštres du systĂšme: charge CPU, consommation mĂ©moire
 Il peut s’exĂ©cuter dans une fenĂȘtre ou bien ĂȘtre intĂ©grĂ© au bureau sous forme d’un « rĂ©plicant ». Affichage d’un message « pas de capteurs de tempĂ©rature » Ă  la place du graphe de tempĂ©rature du systĂšme si l’information n’est pas disponible (OscarL). Correction d’un problĂšme de localisation, certains fichiers sources n’étaient pas pris en compte et les chaĂźnes contenues dedans ne pouvaient pas ĂȘtre traduites (humdinger). Terminal Le Terminal permet d’exĂ©cuter des applications en ligne de commande. Synchronisation du presse-papier interne du Terminal avec celui du systĂšme seulement une fois au dĂ©marrage de l’application, et pas lors du changement d’onglet comme cela avait Ă©tĂ© implĂ©mentĂ© au trimestre prĂ©cĂ©dent (OscarL). Correction d’un problĂšme qui masquait le signal SIGUSR1 pour les shells et autres processus lancĂ©s dans le terminal (korli). ImplĂ©mentation des sĂ©quences d’échappement permettant aux applications CLI de dĂ©finir des liens hypertextes (en complĂ©ment des liens qui Ă©taient dĂ©jĂ  dĂ©tectĂ©s automatiquement par le terminal en fonction du contenu du texte) (korli). HaikuDepot HaikuDepot est l’interface graphique du gestionnaire de paquets. Il utilise un backend en ligne en Java pour stocker et rĂ©cupĂ©rer les captures d’écrans, commentaires et notes d’utilisateurs, icĂŽnes des paquets, liste de paquets mis en avant, et d’autres informations. L’application est plus robuste en cas de problĂšme de rĂ©seau : gestion des erreurs et affichage de messages clairs pour l’utilisateur. Gestion en particulier des erreurs 503 remontĂ©es par l’API web utilisĂ©e par HaikuDepot (apl). Ajout de filtres pour trouver facilement les applications « natives » (n’utilisant pas Qt ou GTK) et d’un filtre « desktop » pour trouver les applications graphiques (et filtrer un trĂšs grand nombre de paquets de bibliothĂšques, applications en ligne de commande
) (apl, avec des amĂ©liorations par humdinger pour clarifier la terminologie). AmĂ©lioration de la taille de la fenĂȘtre des conditions d’utilisation sur les Ă©crans haute densitĂ© (nipos). Refonte de la gestion des identifiants de messages internes Ă  l’application HaikuDepot pour en simplifier la maintenance (apl). Interdiction de la sĂ©lection multiple dans la liste des paquets (apl). WebPositive WebPositive est le navigateur web fourni avec Haiku. Il est basĂ© sur le moteur WebKit, co-dĂ©veloppĂ© avec Apple, Sony, Igalia et d’autres participants. Modification du message envoyĂ© au Tracker pour ouvrir le dossier contenant un fichier (par exemple un tĂ©lĂ©chargement), pour utiliser le message officiellement prĂ©vu Ă  cet effet plutĂŽt qu’un moyen dĂ©tournĂ© (humdinger). Meilleure gestion des noms de fichiers longs dans la fenĂȘtre de tĂ©lĂ©chargements avec l’ajout d’une barre de dĂ©filement horizontal (mull, avec un petit correctif par humdinger pour corriger un dĂ©calage d’un pixel du positionnement de la barre de dĂ©filement). Un chantier est en cours pour rĂ©intĂ©grer Ă  nouveau le portage de WebKit pour Haiku dans les sources upstream. Cela avait dĂ©jĂ  Ă©tĂ© fait en 2010, mais n’avait pas Ă©tĂ© maintenu par la suite, ce qui a conduit Ă  retirer ce code. Depuis, Haiku utilise un fork resynchronisĂ© rĂ©guliĂšrement, mais cela gĂ©nĂšre du travail en plus. L’envoi du code est aussi l’occasion de faire relire toutes les modifications par les autres dĂ©veloppeurs de WebKit, avec des conseils pour amĂ©liorer et simplifier l’architecture. Expander Expander est une application permettant de dĂ©compresser des archives. Correction d’un dĂ©calage d’un pixel de la barre de dĂ©filement (humdinger). AboutSystem AboutSystem affiche quelques informations sur le systĂšme et surtout la liste des auteurs de Haiku. Simplification du code pour la mise Ă  jour automatique des couleurs, mise en place de la mise Ă  jour automatique des couleurs pour la liste des crĂ©dits (si on passe en mode sombre par exemple) (jscipione). Ouverture de la fenĂȘtre avec une taille respectant les proportions du nombre d’or, esthĂ©tiquement plus plaisant (axeld). LaunchBox LaunchBox est un « dock » permettant de stocker des raccourcis vers des applications ou fichiers frĂ©quemment utilisĂ©s. Correction de la couleur du panneau de LaunchBox, et d’autres couleurs dans le sĂ©lectionneur de couleurs standard (nephele). Tracker Tracker est l’explorateur de fichiers. Le code du Tracker contient Ă©galement les fenĂȘtres « ouvrir » et « enregistrer sous », mises Ă  disposition des autres applications sous forme de la bibliothĂšque libtracker.so . Envoi de la notification d’activation de l’espace de travail Ă  tous les rĂ©plicants, afin que ces derniers puissent ajuster leur couleur (par exemple) en fonction de l’espace de travail actif (jscipione). Correction du positionnement du champ de texte lors du renommage de fichiers dans la vue par icĂŽnes, rĂ©solution de problĂšmes de gestion de l’état des fenĂȘtres aprĂšs un glisser-dĂ©poser avortĂ©, affichage des volumes disque en premier (avant les dossiers) si l’option « trier les dossiers en premier » est active, synchronisation en direct des fenĂȘtres de sĂ©lection de fichiers lors du changement d’options, et divers nettoyages de code (jscipione). Ajout d’une bordure manquante dans les fenĂȘtres de sĂ©lection de fichiers (nipos). Ajout du nombre d’élĂ©ment sĂ©lectionnĂ©s (en plus du nombre d’élĂ©ments total du dossier) dans les fenĂȘtres du Tracker (nathan242). Correction d’un problĂšme de concurrence dans le constructeur des fenĂȘtres de sĂ©lection de fichiers, dont la consĂ©quence Ă©tait une mauvaise disposition des contrĂŽles dans la fenĂȘtre (certains boutons apparaissant superposĂ©s par exemple (PulkoMandy). AmĂ©lioration de l’image d’aperçu qui suit la souris lors d’un glisser-dĂ©placer lorsqu’on dĂ©place beaucoup de fichiers: l’image est tronquĂ©e pour ne pas ĂȘtre trop grande mais le dĂ©gradĂ© de transparence sur les bords n’était pas bien calculĂ© (PulkoMandy). DĂ©clenchement automatique du « renifleur » de type MIME, qui identifie automatiquement les fichiers pour les afficher avec la bonne icĂŽne par exemple. En particulier cela rend l’utilisation du Tracker plus confortable sur les systĂšmes de fichiers ne permettant pas de stocker le type MIME dans un attribut Ă©tendu (Jim906). Correction d’une rĂ©gression sur la mise Ă  jour en direct des tailles et dates de modification de fichiers dans les rĂ©sultats de requĂȘtes (waddlesplash). MediaPlayer MediaPlayer est une application pour lire des fichiers mĂ©dia (son et vidĂ©o). Correction de la couleur du texte dans la fenĂȘtre d’informations (nephele). Dans cette mĂȘme fenĂȘtre, le champ indiquant le chemin du fichier en cours de lecture est maintenant cliquable (nathan242, dont c’est la premiĂšre contribution). Ajout d’une dĂ©tection automatique du type MIME des fichiers, s’il n’est pas renseignĂ© (par exemple s’il est stockĂ© sur un systĂšme de fichiers oĂč il n’y a pas d’attributs Ă©tendus) (DigitalBox98). Sudoku Sudoku est un jeu de Sudoku, trĂšs utile pour patienter pendant une compilation un peu longue. AmĂ©lioration de la palette de couleurs en mode clair (le mode sombre nĂ©cessite encore du travail) (axeld). DeskBar DeskBar est la barre des tĂąches de BeOS et de Haiku. La mĂȘme application contient Ă©galement le code pour la fenĂȘtre de changement de tĂąches « Twitcher ». Correction d’un bug qui faisait apparaĂźtre des applications en double dans le « Twitcher » (la fenĂȘtre de changement rapide d’application qui apparaĂźt avec le raccourci Alt+Tab) (madmax). People People est un gestionnaire de contacts. Il stocke les contacts dans des fichiers « person » avec les informations sous forme d’attributs Ă©tendus. Correction du dĂ©filement avec la molette de la souris ou au touchpad (nipos). Lecteur MIDI Le lecteur MIDI permet d’écouter des fichiers au format MIDI. MidiPlayer Le lecteur MIDI permet d’écouter des fichiers au format MIDI. Changement de la couleur du contrĂŽle de volume qui Ă©tait codĂ©e en dur, non configurable et pas harmonisĂ©e avec le reste du systĂšme (nipos). ProcessController ProcessController affiche la charge CPU et l’occupation mĂ©moire dans la DeskBar. Il permet Ă©galement d’afficher des statistiques par application, et de dĂ©bugger et stopper des applications via un menu popup. Ajustements pour les Ă©crans haute densitĂ© : taille des menus, largeur par dĂ©faut de l’icĂŽne rĂ©plicant, autorisation du redimensionnement de la fenĂȘtre principale (la taille est conservĂ©e si on installe ensuite un rĂ©plicant sur le bureau, et divers autres changements (waddlesplash). Installer Installer permet de cloner l’installation de Haiku actuelle vers un autre disque. Ajout d’un outil pour copier automatiquement le chargeur de dĂ©marrage sur la partition EFI du systĂšme, pour rĂ©duire le nombre d’étapes manuelles pour installer Haiku correctement sur un systĂšme EFI (PawanYr, avec des amĂ©liorations de kallisti5 pour nommer le fichier installĂ© correctement en fonction de l’architecture CPU du systĂšme). AmĂ©lioration du calcul de la taille de la fenĂȘtre « EULA » de l’installeur (qui affiche non pas un contrat de license, mais un message de bienvenue et quelques instructions pour l’installation), en fonction de la taille de texte sĂ©lectionnĂ©e dans les prĂ©fĂ©rences (nipos). Mail L'application Mail permet de lire et de rĂ©diger des e-mail. Elle fonctionne en collaboration avec le mail_server qui s’occupe de l’envoi et de la rĂ©ception des messages. Correction d’une rĂ©gression sur la couleur de fond des champs d’adresse. Mise en place des mises Ă  jour de couleurs automatiques. Les champs dĂ©sactivĂ©s ou en lecture seule sont maintenant « navigables » (avec la touche tab) et le texte peut ĂȘtre sĂ©lectionnĂ© et copiĂ© (jscipione). Les boutons « suivant » et « prĂ©cĂ©dent » peuvent ĂȘtre accompagnĂ©s de la touche Maj. (Shift), pour changer de message sans modifier le statut « lu » des messages (humdinger). DriveSetup DriveSetup permet de configurer les supports de stockage: formatage, partitionnement. L’application s’affiche sur tous les espaces de travail si la DeskBar n’est pas lancĂ©e. Ce cas particulier est utile lors du lancement de l’installation de Haiku, dans ce cas, le bureau n’est pas lancĂ©, mais il est tout de mĂȘme possible d’utiliser plusieurs espaces de travail, ce qui peut donner l’impression que les fenĂȘtres ont disparu si on se retrouve sur un espace vide (PulkoMandy). Finalisation d’un patch datant d’il y a plusieurs annĂ©es pour ajouter un menu permettant d’écrire ou de lire des images disques depuis ou vers des partitions (plus besoin d’utiliser dd en ligne de commande) (sed4096, avec l’aide d’humdinger pour des amĂ©liorations de localisation et de choix de vocabulaire). Debugger Debugger permet de dĂ©bugger les logiciels fonctionnant dans Haiku. Correction d’un crash lorsqu’on essaie de dĂ©bugger des applications trop grosses, par exemples celle utilisant Mesa et llvmpipe pour faire du rendu 3D (waddlesplash). Changements transverses Modification de toutes les chaĂźnes de caractĂšres oĂč le nom d’une application est prĂ©sent (par exemple : « Deskbar preferences »). En effet, le nom des applications peut optionnellement ĂȘtre traduit, et toutes ces chaĂźnes doivent donc s’adapter dans les deux cas (nom d’application traduit ou conservĂ© en anglais selon les prĂ©fĂ©rences de l’utilisateur). Auparavant ce rĂ©glage ne pouvait pas ĂȘtre appliquĂ© de façon systĂ©matique (humdinger). FenĂȘtres de prĂ©fĂ©rences RĂ©seau Affichage de l’état prĂ©cis des interfaces rĂ©seau (en cours de configuration DHCP, par exemple) et pas seulement « hors ligne » ou « en ligne » (nipos). PĂ©riphĂ©riques d’entrĂ©e Ajout et amĂ©lioration de plusieurs options pour la gestion des touchpad (samuelrp84). Voir plus bas les informations sur la réécriture du pilote Elantech qui donne plus de dĂ©tails. Apparence Envoi d’un seul message de mise Ă  jour aux applications lorsque plusieurs couleurs changent simultanĂ©ment, ce qui est plus efficace et rĂ©duit les « clignotements » d’applications dans certains cas (nephele). Correction de la hauteur des fausses barres de dĂ©filement visibles dans la fenĂȘtre d’apparence pour configurer les barres de dĂ©filement (jscipione). Outils en ligne de commande Le rĂ©plicant NetworkStatus peut ĂȘtre installĂ© dans la DeskBar via la ligne de commande mĂȘme lorsque une fenĂȘtre de NetworkStatus est dĂ©jĂ  ouverte (nipos). Ajout dans strace de l’affichage des structures stat , sockopt , sigset_t , sigprocmask et des noms de signaux (korli avec un correctif par nathan242). Correction de plusieurs problĂšmes dans l’interface en ligne de commande du Debugger, qui conduisaient entre autres Ă  un gel de l’application. Cette interface est surtout utilisĂ©e en cas de crash d’un service critique (app_server, registrar, input_server) qui empĂȘcherait l’utilisation de l’interface graphique. Les investigations sur ces services en cas de crash sont donc facilitĂ©es. Modification de bfs_tools pour rendre ces outils compilables sur le systĂšme hĂŽte utilisĂ© pour compiler Haiku (axeld). Ces outils permettent de manipuler Ă  la main un systĂšme de fichiers bfs, de rĂ©cupĂ©rer certaines donnĂ©es sur un disque corrompu, et diverses manipulations de bas niveau. Modification de l’outil makebootable pour vĂ©rifier que la partition Ă  rendre bootable est bien une partition BFS. Utiliser l’outil sur une partition d’un autre format ou sur un disque complet pourrait corrompre le systĂšme de fichier et rendre les donnĂ©es inaccessibles. Ajout d’un message indiquant lorsque le lancement de makebootable n’est pas nĂ©cessaire, car les utilisateurs continuent de recommander de lancer cet outil sans aucune raison pour corriger des problĂšmes de dĂ©marrage (encourageant ainsi les nouveaux utilisateurs Ă  faire dea mauvaises manipulations et Ă  corrompre leur systĂšme de fichiers) (PulkoMandy). Suppression d’une verrue dans checkfs qui n’est plus nĂ©cessaire suite Ă  des amĂ©liorations du Storage Kit. Cela permet de lancer checkfs pour vĂ©rifier une partition en donnant le chemin de n’importe quel fichier contenu dans la partition (waddlesplash). Activation du support de l’IPv6 dans telnet, implĂ©mentation dans netstat (avec des corrections sur les opĂ©rateurs de filtrage), et ajout de traceroute6 compilĂ© Ă  partir des sources fournies par NetBSD (cmeerw). AmĂ©lioration de l’affichage de df avec plus d’informations, un listage sur deux lignes, et l’ajout d’une option pour afficher les informations standardisĂ©es dans le format imposĂ© par POSIX (nipos et PulkoMandy). Kits Interface L'interface kit se charge de tout l’affichage de fenĂȘtres Ă  l’écran et des contrĂŽles de base (boutons, cases Ă  cocher
) Correction d’un bug dans le contrĂŽle calendrier lors du dĂ©placement vers les mois suivant ou prĂ©cĂ©dent (nipos). Correction d’un problĂšme de navigation au clavier dans une ListView aprĂšs l’insertion de nouveaux objets (nipos). BControl (la classe parente de tous les contrĂŽles d’interface graphique) ne change plus ses couleurs dans la fonction AttachedToWindow() . Ce n’est plus nĂ©cessaire aprĂšs d’autres changements dans BButton , et cela simplifie le code nĂ©cessaire pour personnaliser la couleur d’un contrĂŽle spĂ©cifique (pour avoir, par exemple, un bouton rouge) (jscipione). AmĂ©liorations sur BSlider : correction de la couleur du texte, nettoyage du code de dessin des sliders dans les implĂ©mentations de ControlLook (jscipione). Augmentation de la taille des marques sur les boutons des barres de dĂ©filement (marques qui ne sont pas activĂ©es Ă  moins de modifier manuellement un fichier de configuration) pour les rendre plus visibles sur les hautes rĂ©solutions (jscipione). Les infobulles utilisent un espacement calculĂ© en fonction de la taille du texte, pour une apparence plus jolie sur les Ă©crans Ă  haute densitĂ© (waddlesplash). SĂ©paration du titre des onglets et du nom des vues qui leurs sont attachĂ©es. Le comportement original est hĂ©ritĂ© de BeOS, il est donc prĂ©servĂ© pour les anciennes applications. Mais pour les nouvelles applications, le nom interne des vues ne doit pas ĂȘtre traduit (il peut ĂȘtre utilisĂ© par des scripts ou par le code de l’application), tandis que le titre affichĂ© Ă  l’utilisateur doit l’ĂȘtre. C’était le seul endroit oĂč ce principe de sĂ©paration du nom et du texte affichĂ© n’était pas respectĂ© (KapiX et PulkoMandy). Dans BTextView , la fonction « tout sĂ©lectionner » dĂ©place le curseur Ă  la fin de la sĂ©lection (et Ă  la fin du texte). C’est le comportement de la plupart des autres systĂšmes, et prĂ©server la position du curseur dans ce cas ne semble pas particuliĂšrement utile (OscarL). Correction de problĂšmes de choix de couleurs dans le code qui dessine des sliders avec un curseur triangulaire (nipos). Cette correction a permis d’utiliser ce type de slider dans les fenĂȘtres de rĂ©glages de diffĂ©rents traducteurs d’images. AmĂ©lioration de l’apparence des cases Ă  cocher partiellement cochĂ©es. Elles s’affichent avec un signe "-" au lieu d’une croix. Auparavant, la couleur Ă©tait subtilement modifiĂ©e mais ce n’était pas trĂšs visible (PulkoMandy). ImplĂ©mentation de la lecture d’un son dans BAlert , qui peut ĂȘtre activĂ© dans les prĂ©fĂ©rences de son (sed4096). Storage Le storage kit permet de contrĂŽler les disques et supports de stockage (liste des partitions, montage et dĂ©montage, accĂšs aux fichiers, chemins d’accĂšs, requĂȘtes
) BPartition retourne une erreur B_BUSY si on essaie de monter une partition qui est dĂ©jĂ  montĂ©e Ă  un autre endroit, au lieu de la monter une deuxiĂšme fois (jscipione). Device Le device kit permet l’interaction directe avec certains pĂ©riphĂ©riques (USB, sĂ©rie, joysticks
) directement depuis l’espace utilisateur. Correction de problĂšmes de gestion de la mĂ©moire dans BUSBInterface mis en Ă©vidence par AtomoZero lors d’expĂ©rimentations pour corriger le pilote de webcam Ă  l’aide d’un LLM (waddlesplash). Package Le package kit se charge de la rĂ©solution des dĂ©pendances entre paquets et du tĂ©lĂ©chargement des paquets Ă  installer. Il fonctionne en collaboration avec le systĂšme de fichier packagefs qui permet d’accĂ©der au contenu des paquets une fois installĂ©s. Retravail de BRepositoryCache pour remonter les informations sur les paquets via un callback plutĂŽt que de remplir une structure BPackageInfoSet . Cela Ă©conomise beaucoup de mĂ©moire et d’allocations mĂ©moire, et rend donc la lecture des dĂ©pĂŽts de paquets plus rapide (waddlesplash). Serveurs Notifications Le serveur de notifications permet d’afficher des notifications pour les Ă©vĂšnements importants. Les notifications dĂ©jĂ  affichĂ©es changent de position immĂ©diatement lorsque la configuration est modifiĂ©e pour les dĂ©placer (nipos). Ajout de la lecture de l’effet sonore choisi dans les prĂ©fĂ©rences de son lors de l’apparition des diffĂ©rents types de notification, et Ă  chaque pourcent de progression pour les notifications contenant une barre de progression (sed4096). Choix de couleurs plus visibles en mode sombre pour les icĂŽnes de fermeture et de repli des notifications en mode sombre (nipos). Network Le serveur de rĂ©seau se charge de la configuration des interfaces rĂ©seau, de la configuration des routes et d’autres aspects liĂ©s Ă  la communication en rĂ©seau. Refonte du client DHCP dans net_server pour l’exĂ©cuter dans un thread sĂ©parĂ© et ne pas bloquer la boucle de messages principale. Cela corrige plusieurs cas de gel du serveur lui-mĂȘme et d’application qui communiquent avec de façon synchrone, par exemple les prĂ©fĂ©rences de rĂ©seau. Cela permet Ă©galement de plus facilement arrĂȘter les requĂȘtes DHCP lorsqu’une interface est reconfigurĂ©e avec une adresse statique (waddlesplash). app_server app_server est le serveur graphique gĂ©rant l’affichage Ă  l’écran. Correction de crashs causĂ©s par des verrous de concurrence manquants et des opĂ©rations effectuĂ©es dans le mauvais ordre (waddlesplash). Retrait d’identifiants de messages qui n’étaient plus utilisĂ©s dans le protocole de communication entre les applications et le serveur graphique (X512). Ajout du code nĂ©cessaire pour le tracĂ© de lignes avec un dĂ©gradĂ© de couleur (dans app_server et dans BView ). Auparavant, les dĂ©gradĂ©s Ă©taient utilisables uniquement pour le remplissage des formes et pas pour les contours (x512). Modifications de BPicturePlayer pour utiliser une classe C++ avec de l’hĂ©ritage plutĂŽt qu’une structure C contenant des pointeurs de fonctions. Cela permet de vĂ©rifier que l’interface est implĂ©mentĂ©e correctement par les diffĂ©rents utilisateurs de cette classe dĂšs la compilation (X512). ImplĂ©mentation de mĂ©thodes manquantes dans BoundingBox player, une implĂ©mentation de BPicturePlayer qui calcule un rectangle assez grand pour contenir tout le dessin rĂ©alisĂ© par un objet BPicture rejouĂ© via BPicturePlayer (KapiX). Retrait d’une optimisation incorrecte dans le traitement des calques avec une opacitĂ© globale de 100% dans app_server. Ces calques peuvent tout de mĂȘme contenir des pixels avec de la transparence, et doivent donc ĂȘtre applatis en tenant compte du canal alpha comme tous les autres calques (KapiX). Modification du protocole app_server pour l’opĂ©ration permettant de rĂ©cupĂ©rer les « bounding boxes » pour chaque caractĂšre d’une chaĂźne. L’interface prĂ©cĂ©dente utilisait un tableau de structures, la nouvelle API est inversĂ©e ce qui permet d’envoyer plus efficacement 2 tableaux de types primitifs (X512). Pilotes de pĂ©riphĂ©riques ImplĂ©mentation correcte des timeouts sur les commandes dans le pilote SDHCI, ce qui corrige la compatibilitĂ© avec plusieurs lecteurs de cartes SD (PulkoMandy). Réécriture complĂšte du pilote pour les touchpads Elantech. Cette sĂ©rie de changements retouche tout d’abord la gestion des touchpads en gĂ©nĂ©ral, avec des amĂ©liorations sur la documentation, sur le traitement des donnĂ©es invalides, la configuration par dĂ©faut, et un nettoyage du code. Ensuite, le code pour la reconnaissance de « gestures » a Ă©tĂ© amĂ©liorĂ© pour mieux reconnaĂźtre plusieurs mouvements tels que le « tap » pour cliquer, le dĂ©filement en faisant glsser 2 doigts sur le touchpad, etc. Les prĂ©fĂ©rences du touchpad ont reçu plusieurs nouvelles cases Ă  cocher pour configurer ces diffĂ©rentes options. Enfin, la derniĂšre partie du patch met Ă  jour le pilote Elantech pour reconnaĂźtre les 4 versions du protocole, dont la derniĂšre est entiĂšrement testĂ©e. La version 2 ne fonctionne pas correctement pour l’instant (elle a Ă©tĂ© dĂ©sactivĂ©e pour l’instant) et les versions 1 et 3 sont activĂ©es de façon expĂ©rimentale dans les nightly builds en attendant les retours d’utilisateurs (samuelrp84). Normalisation des noms de volumes gĂ©nĂ©rĂ©s par le pilote usb_disk pour s’assurer qu’ils ne commencent pas par des espaces (madmax). Mise Ă  jour de la couche de compatibilitĂ© FreeBSD avec FreeBSD 15 et synchronisation de tous les pilotes rĂ©seau (ethernet et wifi) concernĂ©s avec ceux de FreeBSD 15. Synchronisation du pilote rtl8125 avec OpenBSD (waddlesplash). Ajout de « quirks » et de code supplĂ©mentaire dans le pilote I2C-HID pour essayer de se rapprocher du comportement implĂ©mentĂ© dans Linux. Ce pilote ne fonctionne pas correctement pour l’instant et il est dĂ©sactivĂ© par dĂ©faut (Lt-Henry). SystĂšmes de fichiers Ajout d’un bouchon supplĂ©mentaire pour une API qui n’a pas besoin d’ĂȘtre implĂ©mentĂ©e dans userlandfs-FUSE (qui permet l’utilisation de systĂšmes de fichiers FUSE sous Haiku). Cette modification permet d’utiliser en particulier le systĂšme de fichier squashfs-fuse pour accĂ©der Ă  des volumes squashfs (OscarL). Toujours dans userlandfs-fuse, propagation de l’état « lecture seule » du systĂšme de fichier, ce qui permet au Tracker de clairement afficher ces systĂšmes de fichiers comme Ă©tant en lecture seule (fond de fenĂȘtre grisĂ©, dĂ©sactivation des opĂ©rations modifiant les fichiers) (OscarL). Dans le systĂšme de fichiers UDF, amĂ©lioration des messages de logs, et correction d’un kernel panic dĂ©clenchĂ© par une assertion suite Ă  des modifications prĂ©cĂ©dentes dans le VFS (waddlesplash). Correction d’un double lock dans le pilote FAT qui pouvait dĂ©clencher un kernel panic dans de rare cas (Jim906). IntĂ©gration d’une partie des patchs permettant de redimensionner une partition BFS. Ce travail avait Ă©tĂ© commencĂ© en 2014 dans le cadre du Google Summer of Code mais n’avait pas pu ĂȘtre terminĂ© dans les temps. La sĂ©rie de patch est restĂ©e Ă  l’abandon pendant de longues annĂ©es, mais elle est en train d’ĂȘtre finalisĂ©e pour pouvoir en intĂ©grer au moins une premiĂšre partie (axeld). Correction d’un bug sur la gestion des timestamps avec un nombre de secondes entier pour BFS. Historiquement dans BeOS, il n’existait pas d’API POSIX pour stocker une date de modification avec une rĂ©solution plus fine qu’une seconde. Cela conduisait de trĂšs nombreux fichiers Ă  avoir le poids faible de leur date de modification Ă  0, avec pour consĂ©quence une dĂ©gradation de la rĂ©partition dans les tables de hachage pour l’exĂ©cution de requĂȘtes. Dans ce cas, BFS stocke une valeur alĂ©atoire gĂ©nĂ©rĂ©e en interne par le systĂšme de fichier dans les bits de poids faible. Le bug Ă©tait que cette valeur pouvait ĂȘtre exposĂ©e Ă  l’espace utilisateur, entraĂźnant de mauvais rĂ©sultats sur la gestion des comparaisons de dates (par exemple pour dĂ©terminer les rĂšgles Ă  lancer dans un makefile). La reprĂ©sentation interne a Ă©tĂ© lĂ©gĂšrement modifiĂ©e pour bien distinguer les fichiers pour lesquels une date prĂ©cise a Ă©tĂ© enregistrĂ©e, de ceux pour lesquels il s’agit de bits alĂ©atoires. Ces derniers peuvent ainsi ĂȘtre filtrĂ©s et masquĂ©s pour l’espace utilisateur (PulkoMandy). Correction de la gestion des dossiers dĂ©jĂ  existants dans write_overlay . Ils'agit d’un systĂšme de fichier qui permet de stocker en RAM des Ă©critures temporaires sur un systĂšme de fichier montĂ© en lecture seule, utilisĂ© en particulier pour l’exĂ©cution en mode live CD (nathan242). Le pilote BTRFS ne dĂ©clenche plus un kernel panic lorsqu’il rencontre un type de compression inconnu, Ă  la place, il retourne simplement une erreur et considĂšre que le fichier ou dossier concernĂ© ne peut pas ĂȘtre lu (AbdullahZulfiqar2005). Des changements sur les requĂȘtes (pour BFS et les autres systĂšmes de fichiers capables d’exĂ©cuter des requĂȘtes): une petite optimisation du code, une modification pour ne pas notifier les suppressions de nƓuds via B_QUERY_WATCH_ALL car elles sont dĂ©jĂ  notifiĂ©es par d’autres moyens. L’API B_QUERY_WATCH_ALL est maintenant considĂ©rĂ©e comme stable, et a donc Ă©tĂ© ajoutĂ©e dans la documentation officielle (waddlesplash). libroot & noyau RĂ©seau ImplĂ©mentation des sockets du domaine UNIX de type SOCK_SEQPACKET . Pour ce faire, modifications de recv et send pour accepter des buffers de taille 0 (pour les socket de type datagramme, pas les streams). ImplĂ©mentation de MSG_TRUNC et MSG_PEEK pour les sockets du domaine UNIX, et amĂ©lioration de la gestion des adresses invalides dans accept et recv pour se rapprocher du comportement de Linux et des BSD (korli). ImplĂ©mentation de la dĂ©couverte de MTU de chemin complet pour TCP et IPv4 (waddlesplash) et IPv6 (cmeerw). L’algorithme mis en place est simpliste, mais permet d’établir des communications dans des cas oĂč le MTU est limitĂ© et la fragmentation de paquets n’est pas mise en place. Nettoyage des buffers mĂ©moire utilisĂ©s pour stocker des adresses dans le code de gestion du rĂ©seau. Cela corrige un comportement incorrect dans le cas oĂč une adresse de socket UNIX n’est pas terminĂ©e par un caractĂšre NUL (cas qui est explicitement autorisĂ© sous Linux car l’information de longueur de l’adresse est disponible par ailleurs) (Anarchos pour la correction du cas oĂč la vĂ©rification Ă©tait oubliĂ©e, suivi d’un nettoyage par waddlesplash pour avoir une solution plus systĂ©matique Ă  tous les endroits oĂč ce cas particulier doit ĂȘtre pris en compte). Un socket TCP qui est fermĂ© alors que des donnĂ©es sont reçues par le noyau mais pas encore lues par l’application associĂ©e renvoie un paquet RST plutĂŽt qu’un FIN. Ceci corrige un problĂšme dĂ©tectĂ© dans les tests du langage Go. Modification du comportement lors de la rĂ©ception d’un reset pendant la fermeture d’un socket TCP pour se comporter comme les autres systĂšmes (korli). DĂ©placement du fichier networks utiliser par getnetent dans le dossier data, avec les autres fichiers de configuration du rĂ©seau. Il Ă©tait placĂ© par erreur dans /etc, qui est son chemin habituel pour d’autres systĂšmes UNIX (PulkoMandy). Report d’une correction faite par NetBSD dans le rĂ©solveur DNS, il manquait une partie de l’initialisation de certains objets dans l’état du rĂ©solveur (cmeerw). Gestion de l’IPv6: correction d’un problĂšme dans la mise Ă  jour du cache pour le protocole NDP (neighbor discovery), implĂ©mentation du multicast (cmeerw). Remplacement des fonctions inet_net_ntop et inet_net_pton par l’implĂ©mentation d’OpenBSD, qui est plus respectueuse du standard que celle de NetBSD utilisĂ©e auparavant (korli). Gestion des processus Autorisation de l’appel de exec() depuis un autre thread que le thread principal du processus, pour se mettre en conformitĂ© avec POSIX et corriger un problĂšme avec les outils de compilation d’OCaml (korli). PrĂ©servation des signaux masquĂ©s lors de l’appel Ă  fork (korli). Mise en conformitĂ© POSIX des codes d’erreurs retournĂ©s dans certains cas dans la gestion des groupes de processus (waddlesplash). BibliothĂšque C standard Mise en conformitĂ© POSIX-2024: Ajout des fonctions ffsl et ffsll dans strings.h (korli) Ajout de getresuid() , setresuid() , getresgid() , setresgid() (korli) Ajout de la dĂ©claration de posix_spawn_file_actions_add[f]chdir dans les en-tĂȘtes publics (la fonction Ă©tait dĂ©jĂ  implĂ©mentĂ©e mais pas dĂ©clarĂ©e) (waddlesplash) Synchronisation de l’implĂ©mentation de arc4random avec la derniĂšre version d’OpenBSD (korli). Correction d’un bug dans la gestion des locales, il n’était pas possible de changer seulement certaines catĂ©gories (date, format monĂ©taire, messages), tout Ă©tait forcĂ©ment dans la mĂȘme langue (waddlesplash). Correction de plusieurs problĂšmes dans la famille de fonctions strftime (waddlesplash): ajout des formats %k et %l , correction sur la gestion des caractĂšres d'espacement Unicode, correction de problĂšmes sur la gestion des fuseaux horaires. Correction de problĂšmes mineur de compatibilitĂ© POSIX: ajout de dĂ©clarations de fonctions et de constantes dans search.h, unistd.h, semaphore.h, nettoyage dans limits.h, dĂ©finition de getlocalename_l
 (waddlesplash). Remplacement de strtok_r par l’implĂ©mentation de musl (waddlesplash). Refonte du stockage et de la gestion des donnĂ©es ctype pour rendre le code plus facile Ă  maintenir, supprimer des indirections inutiles et corriger un problĂšme de thread safety (waddlesplash). Nettoyage des fonctions de conversions d’encodage de caractĂšres, et correction de la valeur de MB_CUR_MAX pour l’encodage UTF-8 (waddlesplash). DĂ©finition de la constante DEV_BSIZE ( mentionnĂ©e dans POSIX mais pas obligatoire ) dans sys/param.h , modification de tous le code utilisant stat.st_blocks pour utiliser cette constante, y compris des problĂšmes dans certains systĂšmes de fichiers qui utilisaient st_blksize Ă  la place. En effet, il n’y a aucun rapport entre la taille de bloc de st_blksize et le nombre de blocs de st_blocks dĂ©fini juste Ă  cĂŽtĂ© (waddlesplash). Gestion de la mĂ©moire Correction d’une rĂ©gression du mois prĂ©cĂ©dent sur la gestion des rĂ©servations de mĂ©moire lors du dĂ©coupage d’areas`. Ajout de la possibilitĂ© de transfĂ©rer des rĂ©servations de pages pour les caches et areas rĂ©servĂ©s, pour Ă©viter de rĂ©duire les rĂ©servations de façon incorrecte. Cela pouvait causer des assertions et des plantages du noyau en particulier lors de l’exĂ©cution d’applications utilisant AddressSanitizer (waddlesplash). Correction d’une fuite de mĂ©moire dans
 la gestion de la mĂ©moire, mis en Ă©vidence entre autres par l’exĂ©cution du compilateur Rust qui consomme beaucoup de mĂ©moire. Au passage, nettoyage du code et des messages de logs dans cette partie du code (waddlesplash). EntrĂ©es-sorties Modification de la gestion des requĂȘtes d’entrĂ©es-sortie pour autoriser les pilotes de pĂ©riphĂ©riques Ă  sous-classer IORequestOwner . En particulier, cela permet au pilote NVMe d’utiliser ces fonctionnalitĂ©s sans passer par l’ordonnanceur d’I/O gĂ©nĂ©rique qui ne se prĂȘte pas bien Ă  l’interfaçage de matĂ©riel pouvant traiter plusieurs requĂȘtes en parallĂšle. Cela permet de simplifier du code, supprimer une fonction rĂ©cursive devenue inutile et finalement corriger un dĂ©bordement de pile (waddlesplash). La taille des partitions indiquĂ©e dans le bootloader n’était pas correcte : c’était la taille du disque entier qui Ă©tait affichĂ©e Ă  la place (waddlesplash). Chargeur de dĂ©marrage Correction de l’affichage de caractĂšres unicode dans le menu de dĂ©marrage. En particulier cela Ă©vite de corrompre l’affichage lors de la navigation dans le systĂšme de fichiers pour dĂ©sactiver certains pilotes de pĂ©riphĂ©riques. Le firmware UEFI utilise de l’UTF16, tandis que le BIOS utilise une page de code IBM non standardisĂ©e. Le bootloader utilise en interne de l’UTF-8 et doit donc convertir les caractĂšres dans le bon format dans chaque cas (madmax). ImplĂ©mentation du dĂ©marrage via le rĂ©seau sur les plateformes EFI (avec un peu de nettoyage sur le support rĂ©seau dans OpenFirmware et PXE). Cela fonctionne au moins sur l’architecture ARM 32-bit et facilite le dĂ©veloppement sur cible rĂ©elle: compilation sur une machine, et exĂ©cution sur une autre sans devoir entretemps copier le systĂšme de fichiers et le bootloader sur une clĂ© USB ou une carte SD (kallisti5 et PulkoMandy). Un des en-tĂȘtes du bootloader utilisait une syntaxe C++, il a Ă©tĂ© corrigĂ© pour pouvoir ĂȘtre importĂ© depuis du code C si nĂ©cessaire (beaglejoe). Le chargeur EFI ignore les disques qui ont une taille de bloc de 0 octet, ce qui Ă©vite une division par zĂ©ro lors de tentatives de lire des donnĂ©es (archeYR). SystĂšmes de fichiers Le noyau interdit maintenant de monter plusieurs fois la mĂȘme partition. Cette vĂ©rification avait d’abord Ă©tĂ© implĂ©mentĂ©e dans le pilote FAT, puis via une vĂ©rification en espace utilisateur, mais ces deux protections Ă©taient insuffisantes et causaient d’autres problĂšmes (waddlesplash). Centralisation de plusieurs vĂ©rifications au niveau du VFS, par exemple les vĂ©rifications de type fichier ou dossier, les modes d’ouverture des fichiers, des codes d’erreurs retournĂ©s pour certaines erreurs spĂ©cifiques. Ces changements Ă©vitent d’avoir des diffĂ©rences de comportement entre diffĂ©rents systĂšmes de fichiers et s’assurent que le comportement implĂ©mentĂ© est bien celui spĂ©cifiĂ© par POSIX (waddlesplash). ImplĂ©mentation de « fallbacks » pour les systĂšmes de fichiers qui ne savent pas traiter eux-mĂȘmes les opĂ©rations SEEK_DATA , SEEK_HOLE et select() , dont en particulier le write_overlay . Cela permet Ă  la commande cp de fonctionner correctement dans ce cas (nathan242). Outils de debug Remise en commun de code pour la gestion du MMU dans le chargeur de dĂ©marrage EFI. Le code avait Ă©tĂ© dupliquĂ© pour chaque architecture de CPU supportĂ©s, mais il est en fait en trĂšs grande partie identique. Regrouper ce code permet de s’assurer que les Ă©volutions sont bien faites de façon synchronisĂ©e pour toutes les architectures (PulkoMandy). Affichage dans le message de kernel panic de la version de Haiku (numĂ©ro hrev). Ceci Ă©vite de devoir demander ce numĂ©ro aux utilisateurs remontant un bug, il est directement inclus dans la capture d’écran de l’erreur (nathan242). Modification de la valeur retournĂ©e par kernel_version dans les informations systĂšme. La valeur retournĂ©e par Haiku Ă©tait la version majeure, qui est 1 depuis le dĂ©but du projet Haiku en 2001. Elle retourne maintenant une version plus complĂšte qui peut ĂȘtre utilisĂ©e dans la commande uname pour indiquer la version de Haiku plus prĂ©cisĂ©ment (waddlesplash). DĂ©sactivation de la fonction spĂ©cifique Ă  BeOS exect sur les architectures qui n’implĂ©mentent pas de compatibilitĂ© binaire avec BeOS. Build system Ajout d’une macro _DEPRECATED dans les en-tĂȘtes de base du systĂšme, permettant d’indiquer les classes, mĂ©thodes et fonctions qui sont obsolĂštes et Ă  ne plus utiliser. Cela permet d’avoir un avertissement du compilateur lors de leur utilisation dans le code existant, et de commencer Ă  mettre Ă  jour le code, mais sans casser le code dĂ©jĂ  Ă©crit pour l’instant. Actuellement, cette macro n’est pas utilisĂ©e, des discussions sont encore en cours sur l’opportunitĂ© de retirer certaines APIs. Remise en Ă©tat des tests pour le bootloader. Ces tests permettent de lancer une partie du bootloader (dont le menu de configuration) sous forme d’un programme s’exĂ©cutant sous Haiku. Cela permet de tester une grande partie du code du bootloader sans avoir besoin de redĂ©marrer le systĂšme (waddlesplash). Ajout d’un script pour convertir une disposition de clavier de la console Linux dans le format reconnu par Haiku (mmu_man). Mise Ă  jour de paquets pour rĂ©parer la compilation en mode « bootstrap » (sans dĂ©pendances prĂ©compilĂ©es) pour ARM et ARM64 (PulkoMandy). Nettoyage et amĂ©lioration de la classe utilitaire FunctionTracer qui permet d’afficher facilement une trace de l’exĂ©cution de fonctions, avec une indentation indiquant les appels imbriquĂ©s. Il existait plusieurs versions de cette classe utilisĂ©es Ă  diffĂ©rents endroits dans le code, chacune avec de lĂ©gĂšres variations. Renommage de fonctions qui pouvaient entrer en conflit avec l’utilisation de debug_printf et modification de cette derniĂšre pour retourner le nombre de caractĂšres imprimĂ©s afin de pouvoir l’utiliser de façon interchangeable avec les autres fonctions de la famille printf (PulkoMandy). DĂ©placement de plusieurs en-tĂȘtes initialement dĂ©veloppĂ©s pour une utilisation dans le noyau, de headers/private/kernel/util vers headers/private/util , en effet ils implĂ©mentent des fonctionnalitĂ©s assez gĂ©nĂ©riques (listes chaĂźnĂ©es, hash tables, opĂ©rations sur les bits
) et sont tout Ă  fait utilisables en dehors du noyau (c’est d’ailleurs dĂ©jĂ  le cas Ă  plusieurs endroits dans le code de Haiku) (PulkoMandy et waddlesplash). Retrait de cas ou l’activation de DEBUG=1 (compilation en mode debug avec des assertions supplĂ©mentaires) Ă©tait empĂȘchĂ©e pour certains composants du code (waddlesplash). Modification du code pour inclure les catalogues de traductions automatiquement dans le paquet contenant l’exĂ©cutable correspondant. Ce code incluait Ă©galement les catalogues de toutes les dĂ©pendances, ce qui conduisait les catalogues systĂšme de libbe.so Ă  ĂȘtre prĂ©sents plusieurs fois dans plusieurs paquets, occupant inutilement de la place). Ce changement n’est pas tout Ă  fait terminĂ© puisque maintenant certains catalogues ne sont plus inclus du tout (PulkoMandy). Modernisation de la page d’accueil de WebPositive pour en permettre l’utilisation avec d’autres navigateurs: dĂ©finition du bon type MIME, utilisation de HTTPS pour tĂ©lĂ©charger des ressources externes, dĂ©claration de l’encodage du fichier (humbinger). Modification du « Makefile Engine » pour autoriser des flags de compilation diffĂ©rents entre les fichiers sources C et C++, ce qui permet d’éviter des warnings de compilation dans certains projets compilant des sources C (OscarL). Il est maintenant possible de compiler Haiku depuis NetBSD (cmeerw). RĂ©paration de la compilation de test_app_server (KapiX). Utilisation de la constante B_DEV_NAME_LENGTH plutĂŽt que de la valeur numĂ©rique 128 Ă  plusieurs endroits dans le code (jscipione et OscarL). Suppression de la dĂ©pendance du build Ă  la commande bc , en utilisant Ă  la place des expressions arithmĂ©tiques du shell POSIX (PulkoMandy). RĂ©paration de la compilation des tests unitaires, modification des tests utilisant l’interface graphique pour les exĂ©cuter avec test_app_server , ajout d’un package haiku_unittests et d’un profil de build qui inclut ce package dans le systĂšme de fichier compilĂ©. L’objectif est de pouvoir lancer ces tests automatiquement dans le cadre de l’intĂ©gration continue de Haiku (KapiX, Ă  partir d’un travail plus ancien dĂ©marrĂ© par kallisti5). Mise Ă  jour de l’annĂ©e de copyright Ă  2026 dans le menu de dĂ©marrage et dans les mĂ©tadonnĂ©es des paquets gĂ©nĂ©rĂ©s par Haiku (PulkoMandy). Mise Ă  jour des paquets prĂ©compilĂ©s utilisĂ©s pour compiler Haiku avec les derniĂšres versions fournies par HaikuPorts pour les architectures x86 et x86_64. L’outil utilisĂ© pour faire cette synchronisation a reçu lui-mĂȘme quelques Ă©volutions. Le code de Haiku a Ă©tĂ© lĂ©gĂšrement ajustĂ© pour corriger les problĂšmes de compilation avec ces nouvelles versions des dĂ©pendances (waddlesplash, avec l’aide de madmax pour corriger des problĂšmes de compilation sur RISC-V qui utilise pour l’instant une version plus ancienne de certains paquets). Documentation Haiku book Le « Haiku book » documente les API publiques et s’adresse aux dĂ©veloppeurs d’applications pour Haiku. Il complĂšte et remplace petit Ă  petit le Be Book de BeOS, qui est distribuĂ© sous une licence CC-BY-ND ne permettant pas de le mettre Ă  jour et de le corriger. Ajout du chapitre sur le Device Kit (DigitalBox98) Correction d’une documentation inversĂ©e pour un paramĂštre de BKeyStore (PulkoMandy) Ajout de documentation pour BSimpleGameSound, BSerialPort, MailAttachment, MailDaemon, mail_encoding (cafeina) Documentation des dĂ©viations connues de Haiku par rapport Ă  la spĂ©cification POSIX (PulkoMandy). Documentation interne La documentation interne s’adresse aux dĂ©veloppeurs et dĂ©veloppeuses du systĂšme Haiku lui-mĂȘme. Correction de fautes de frappe dans le chapitre sur les systĂšmes de fichiers (OscarL). Autres nouvelles Changement de tarification de Netlify Netlify hĂ©berge le site www.haiku-os.org . Ils ont rĂ©cemment modifiĂ© leur tarification pour ajouter un systĂšme de crĂ©dit en fonction de la bande passante consommĂ©e. Haiku bĂ©nĂ©ficie de l’offre « Open Source », avec une certaine quantitĂ© de trafic offerte (en Ă©change de l’affichage d’un logo de Netlify en base de page du site). Cette offre s’est rĂ©vĂ©lĂ©e insuffisante dans la nouvelle tarification, surtout suite Ă  une attaque de robots (probablement pour l’entraĂźnement de LLM de mauvaise qualitĂ©, puisque ils requĂȘtaient des pages n’existant pas et n’obtenaient que des erreurs 404). Du cĂŽtĂ© de Haiku, des protections ont Ă©tĂ© mises en place pour Ă©viter ce genre de problĂšme, mais entretemps, Netlify a facturĂ© le dĂ©passement de bande passante autorisĂ©e pour le mois de dĂ©cembre. Finalement, aprĂšs une discussion avec l’équipe de support de Netlify et une vĂ©rification de ce qu’il s’était passĂ©, la facture a Ă©tĂ© annulĂ©e, et la consommation de bande passante pour Haiku a Ă©tĂ© augmentĂ©e pour mieux convenir Ă  l’utilisation habituelle gĂ©nĂ©rĂ©e par Haiku. Remise sur les rails de HSA (Haiku Support Association) Actuellement, l’association Haiku inc est la principale organisation recevant des dons et finançant les activitĂ©s de Haiku (dĂ©veloppeur employĂ©, coĂ»t d’hĂ©bergement de l’infrastructure
). Cette association est basĂ©e aux USA, ce qui est rĂ©cemment devenu une source d’inquiĂ©tude pour certains contributeurs et donateurs de Haiku. Suite Ă  une discussion sur les forums, il y a donc un regain d’intĂ©rĂȘt pour la Haiku Support Association, une autre organisation basĂ©e en Allemagne et qui Ă©tait dormante depuis plusieurs annĂ©es. Plusieurs personnes ont donc adhĂ©rĂ© Ă  cette association et cela va peut-ĂȘtre permettre d’en relancer l’activitĂ© et d’assurer une prĂ©sence en Europe. En particulier, c’est cette association qui organisait la confĂ©rence BeGeistert et le traditionnel « coding sprint » associĂ©, permettant aux dĂ©veloppeurs et aux utilisateurs de Haiku de se rencontrer rĂ©guliĂšrement. Cette activitĂ© avait cessĂ© suite au manque de public pour ces Ă©vĂšnements, Ă  une perte d’intĂ©rĂȘt des membres de l’association, et une absence de nouveaux adhĂ©rents pour relancer les choses. EspĂ©rons que cette pĂ©riode d’inactivitĂ© soit maintenant terminĂ©e et que l’organisation de confĂ©rences plus rĂ©guliĂšres puisse reprendre. SĂ©rie d’articles « Gerrit code review iceberg » Haiku utilise l’outil Gerrit pour la revue de code. Il y a actuellement plus de 300 « change requests » qui sont ouvertes. Cela a suscitĂ© quelques interrogations sur le forum. Le projet est-il submergĂ© de contributions? Les dĂ©veloppeurs font-il un bon travail de revue? Quelles futures fonctionnalitĂ©s de Haiku se cachent dans ces changements en attente? Une sĂ©rie d’articles est en cours de publication pour examiner ces propositions abandonnĂ©es, en cours de travail ou partant dans une direction qui n’est pas acceptable pour les mainteneurs du projet. Chaque article examine 5 de ces change requests et explique les changements proposĂ©s, et pourquoi le travail n’a pas abouti. Cette dĂ©marche a dĂ©jĂ  permis Ă  certains de ces changements de trouver un repreneur, plusieurs dĂ©veloppeurs (anciens ou nouveaux contributeurs) se prenant au jeu de finaliser l’un d’entre eux. Cela devrait permettre de rĂ©duire un peu la liste, et d’encourager ensuite les nouvelles contributions en voyant que finalement, peu de choses sont vraiment abandonnĂ©es. Statistiques de contribution pour 2025 Haiku a reçu 1068 commits en 2025. C’est la deuxiĂšme annĂ©e la plus calme aprĂšs 2023 et trĂšs loin du record de 2009 oĂč il y avait eu 5555 commits. Cependant la comparaison n’est pas directe: en 2009, la revue de code Ă©tait faite aprĂšs l’envoi d’un commit sur la branche principale, avec des corrections effectuĂ©es par des commits supplĂ©mentaires si nĂ©cessaire. Aujourd’hui, chaque commit peut recevoir plusieurs modifications dans Gerrit avant d’ĂȘtre finalement intĂ©grĂ©. 49 personnes ont Ă©crit du code pour Haiku en 2025, entre 9 (en septembre) et 22 (en janvier) par mois. C’est lĂ  aussi plutĂŽt dans le bas du tableau, et loin du record de 2012 (72 personnes). Waddlesplash se hisse Ă  la troisiĂšme place du classement des personnes ayant le plus contribuĂ© (en nombre de commits) et va peut-ĂȘtre dĂ©passer korli dĂšs l’an prochain, malgrĂ© l’activitĂ© ininterrompue de ce dernier depuis 2003, presque au tout dĂ©but du projet. Pas de changement du top 10, on attendait l’arrivĂ©e de kallisti5, mais il lui manque encore 70 commits pour dĂ©passer Stefano Ceccherini. axeld conserve sa premiĂšre place avec une avance confortable, malgrĂ© une activitĂ© plus rĂ©duite depuis quelques annĂ©es. Haiku compte environ 5 millions de lignes de code source, tout type de fichiers compris (ce nombre est stable voire en lĂ©gĂšre baisse depuis 2015) et 25 000 fichiers. La situation est assez diffĂ©rente pour Haikuports : avec 2653 commits, 2025 est la deuxiĂšme annĂ©e la plus active, derriĂšre 2018 ou le projet avait atteint 2908 commits. Le contributeur ayant le plus de commits est toujours korli, bien que Begasus semble en passe de le rattraper avec un rythme de contribution trĂšs soutenu. Le projet a reçu en 2025 des contributions de 75 personnes diffĂ©rentes, ce qui est un peu en dessous du record Ă©tabli l’annĂ©e prĂ©cĂ©dente avec 82 contributeurs mais reste un trĂšs bon score. Le dĂ©pĂŽt de Haikuports comporte 7000 fichiers et a dĂ©passĂ© 1 million de lignes de code, avec une progression approximativement linĂ©aire depuis la crĂ©ation du dĂ©pĂŽt en 2008. La trĂšs grande majoritĂ© des commits de Haikuports sont rĂ©alisĂ©s sur des machines configurĂ©es avec les fuseaux horaires UTC, UTC+1 ou UTC+2, suivis par le fuseau UTC+10 (pour Haiku, ces statistiques de fuseaux horaire ne sont pas exploitables, la plus grande partie des commits ayant Ă©tĂ© importĂ© depuis SVN qui ne prĂ©serve pas cette information). Pour les deux projets, le pic d’activitĂ© semble ĂȘtre le mardi soir et on peut observer les heures creuses entre 2 h et 5 h du matin. Il n’y a pas de grosse diffĂ©rence entre les jours de semaine et les week-ends. On peut observer par contre que les mois d’hivers sont beaucoup peu plus actifs que ceux d’étĂ© et d’automne. Statistiques dĂ©taillĂ©es pour Haiku: https://pulkomandy.tk/stats/ Statistiques dĂ©taillĂ©es pour Haikuports: https://pulkomandy.tk/stats_hp/ Mise Ă  jour de haiku-format Haiku-format est un ensemble de patchs pour clang-format pour tenter d’implĂ©menter les rĂšgles de formatage de code choisies par le projet Haiku. Ces derniĂšres ont Ă©tĂ© dĂ©cidĂ©es avant la disponibilitĂ© d’un tel outil, et sont difficiles Ă  automatiser correctement. Les patchs ont Ă©tĂ© reportĂ©s sur une version plus rĂ©cente de clang-format par owenca, et le robot de revue de code connectĂ© Ă  Gerrit mis Ă  jour avec cette nouvelle version et remis en service par nielx. Les suggestions comportent encore des propositions de formatage incorrectes, c’est pourquoi cet outil est dĂ©ployĂ© uniquement sous forme d’un robot de revue et pas comme un outil de reformatage automatique. Les dĂ©veloppeurs qui connaissent bien les rĂšgles de formatage peuvent ensuite vĂ©rifier si ces commentaires sont pertinents. Cette solution est imparfaite, mais une discussion pour rendre les rĂšgles plus simples Ă  automatiser n’a pas abouti Ă  un consensus suffisant pour faire des modifications pour l’instant. À quand la beta 6? La version beta 5 de Haiku commence Ă  ĂȘtre assez ancienne. Toute l’annĂ©e 2025 est passĂ©e sans nouvelle publication de version. La liste des choses Ă  traiter pour cette nouvelle version s’est beaucoup rĂ©duite, cependant il reste encore quelques rĂ©gressions assez gĂȘnantes. Certaines des corrections sont dĂ©jĂ  en cours de relecture (en particulier pour amĂ©liorer la gestion de la mĂ©moire swap). Il faudra probablement encore quelques mois pour venir Ă  bout de toute la liste. On en reparle au prochain trimestre ! TĂ©lĂ©charger ce contenu au format EPUB Commentaires : voir le flux Atom ouvrir dans le navigateur
📄 Voir l'article original →
📅 PubliĂ© le: 02/03/2026 Ă  04:00
🔄 Mis à jour: 02/03/2026 à 04:00
đŸ·ïž Nombre de tags: 6
← Retour à tous les articles