đ
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
đ
Publié le: 02/03/2026 à 04:00
đ Mis Ă jour: 02/03/2026 Ă 04:00
đ·ïž Nombre de tags: 6