❌

Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraĂźchir la page.
À partir d’avant-hierFlux principal

Guide CNLL/innoÂł sur le Cyber Resilience Act : ĂȘtes-vous prĂȘts pour les Ă©chĂ©ances de 2026 et 2027 ?

Le CNLL, Union des Entreprises du Logiciel Libre et du NumĂ©rique Ouvert, est l’instance reprĂ©sentative de la filiĂšre du logiciel libre en France, et innoÂł un cabinet de conseil spĂ©cialiste des modĂšles ouverts. Ils proposent le premier guide de conformitĂ© au CRA dĂ©diĂ© aux acteurs de l’open source, destinĂ© Ă  accompagner sans attendre les acteurs dans la mise en conformitĂ© de leurs activitĂ©s en dĂ©cryptant les obligations nouvelles et adaptations nĂ©cessaires de processus. Il est publiĂ© sous licence Creative Commons By-SA 4.0.

Guide CNLL / innoÂł sur le CRA

Pourquoi est-il nĂ©cessaire d'anticiper ?

AdoptĂ© formellement par l'UE en 2024, le CRA vise Ă  renforcer la cybersĂ©curitĂ© des produits logiciels (et matĂ©riels qui comportent des Ă©lĂ©ments numĂ©riques) pour rĂ©pondre Ă  la vulnĂ©rabilitĂ© accrue aux cyberattaques des entreprises et services publics europĂ©ens. Les acteurs ont jusqu’au 10 septembre 2026 pour se mettre en conformitĂ© avec certaines obligations critiques (notification des vulnĂ©rabilitĂ©s activement exploitĂ©es et des incidents graves) et jusqu’au 10 dĂ©cembre 2027 pour s’adapter Ă  l’ensemble des autres exigences du texte telles que la sĂ©curitĂ© par principe ou la transparence vis-Ă -vis des consommateurs.

Un guide pratique pour vous accompagner

Le guide rĂ©pond Ă  un objectif de sensibilisation des membres du CNLL et plus largement des acteurs de la filiĂšre du logiciel libre (producteurs, intĂ©grateurs et utilisateurs) aux enjeux et dĂ©fis du CRA. À l’aide de mises en situation Ă  partir d’exemples d’entreprises membres du CNLL, le guide propose une vision dĂ©taillĂ©e des modalitĂ©s d’application et obligations nouvelles : documentation technique dĂ©taillĂ©e, gestion rigoureuse des vulnĂ©rabilitĂ©s, dĂ©claration de conformitĂ© et apposition du marquage CE, production d’une Software Bill of Materials (SBOM), etc.

Transformons ensemble cette contrainte rĂ©glementaire en opportunitĂ© d'amĂ©lioration de la sĂ©curitĂ©, la qualitĂ© et la confiance pour nos produits et services !

👉 Explorez le guide dùs aujourd'hui et contribuez à sa prochaine version en partageant vos commentaires ou en rejoignant le groupe de travail.

👉 Participez Ă  la rĂ©union de prĂ©sentation en ligne qui aura lieu prochainement (informations Ă  venir sur le site : cnll.fr).

Commentaires : voir le flux Atom ouvrir dans le navigateur

La virtualisation pour les nuls et autres enjeux autour des datacenters

Depuis quelques annĂ©es la virtualisation sous toutes ses formes est devenue l'alpha et l'omĂ©ga de l'informatique, elle a rĂ©volutionnĂ© en quelques annĂ©es la maniĂšre d'administrer les serveurs et de gĂ©rer les donnĂ©es. Cette dĂ©pĂȘche est un essai de vulgarisation sur la virtualisation pour en exposer ses grands principes techniques, ses avantages et inconvĂ©nients et ses enjeux sous-jacents.

Sommaire

Commençons par quelques définitions

C'est quoi la virtualisation ?

Pour pouvoir illustrer concrÚtement ce qu'est la virtualisation, à une époque pas si lointaine que ça, dans le monde professionnel on retrouvait des serveurs physiques dédiés, par exemple un serveur pour gérer les mails, un autre pour le serveur web et un dernier comme serveur de fichiers. Chacun des serveurs pouvant tourner sur des systÚmes d'exploitation (OS) différents. Dans notre exemple il en résulte qu'il faut maintenir et administrer trois machines différentes qui vont prendre de la place et consommer de l'électricité, sans une utilisation optimale de chacune des machines, si le serveur web par exemple a besoin momentanément d'un accroissement de puissance et de mémoire, il ne pourra pas bénéficier des ressources des autres serveurs physiques.
Avec la virtualisation, sur une seule machine physique on va faire tourner plusieurs environnements de serveurs distincts en mĂȘme temps, sans avoir Ă  redĂ©marrer, ils vont se partager les ressources matĂ©rielles de la machine physique de maniĂšre plus optimale et efficace en rĂ©duisant les coĂ»ts d'administration. On retrouvera donc sur une seule machine physique, nos serveurs de courriel, web et de fichiers, chacun dans un environnement distinct fonctionnant de maniĂšre autonome et isolĂ©e.

C'est quoi une machine virtuelle ?

On appellera chaque environnement distinct machine virtuelle, elle s'exécute sur une machine physique avec son propre systÚme d'exploitation, ses applications et avec les ressources de la machine physique qu'on veut bien lui allouer (mémoire, puissance de traitement, stockage). On dit aussi que la machine physique est appelée machine hÎte et les machines virtuelles sont des machines invitées. Une machine hÎte peut faire tourner plusieurs machines invitées.
Une machine virtuelle fonctionne comme n'importe quel poste informatique avec son OS qu'on peut mettre à jour, ses applications, ses paramÚtres systÚme et on pourra à partir de la machine hÎte accéder à toutes les machines virtuelles.

C'est quoi un hyperviseur ?

Pour que les machines virtuelles puissent s'exécuter indépendamment et utiliser les ressources de la machine hÎte simultanément sans qu'elles interfÚrent entre elles, il est nécessaire de rajouter une couche logicielle qui va gérer tout ça, c'est ce qu'on appelle un hyperviseur.
Il existe deux types d'hyperviseur:

  • L'hyperviseur de type 1, ou bien encore hyperviseur de matĂ©riel nu (bare metal en anglais) est en interface direct avec l'ordinateur physique, cela sous entend que votre machine soit compatible (Intel VT pour les processeurs Intel et AMD-V pour les processeurs AMD). Dans le monde libre, proxmox est certainement l'hyperviseur de type 1 le plus connu.
  • L'hyperviseur de type 2 ou bien encore hyperviseur de matĂ©riel invitĂ© (host metal en anglais) fonctionne dans un systĂšme d'exploitation dĂ©jĂ  prĂ©installĂ©, c'est le cas par exemple de VirtualBox qui permet de faire tourner une instance de windows dans un environnement Linux.

Un hyperviseur de type 1 est une couche logicielle trĂšs lĂ©gĂšre et offre de meilleures performances et est la solution privilĂ©giĂ©e pour des serveurs en production, l'hyperviseur de type 2 est plutĂŽt une solution destinĂ©e aux utilisateurs qui souhaitent tester d'autres systĂšmes d'exploitation ou faire tourner un logiciel sur un OS particulier sur un poste de travail classique. Mais rien ne vous empĂȘche de faire tourner plusieurs machines virtuelles sur un hyperviseur de type 2 qui pourront communiquer entre elles et fonctionner comme un hyperviseur de type 1, Ă  la diffĂ©rence qu'elles seront moins performantes.
Par abus de langage, le terme d'hyperviseur fait référence plutÎt à l'hyperviseur de type 1.

C'est quoi les avantages de la virtualisation ?

Une administration centralisée et facilitée

L'hyperviseur fournit des outils de gestion des machines virtuelles qui simplifient sensiblement le travail d'administration, comme les outils de déploiement à partir de modÚles de machines virtuelles, les outils de gestion de charge, de sauvegarde et de restauration de machines virtuelles.

La disponibilité et la robustesse aux pannes

Un autre avantage de la virtualisation est la fonctionnalitĂ© de migration Ă  chaud, elle permet de dĂ©placer une machine virtuelle d'une machine physique Ă  une autre sans qu'il soit nĂ©cessaire de l'arrĂȘter. Si un serveur physique prĂ©sente des dĂ©faillances, les machines virtuelles sont automatiquement dĂ©placĂ©es sur un autre hĂŽte physique.
Alors bien sĂ»r si le serveur physique tombe en rade sans crier gare, la migration Ă  chaud peut ne pas ĂȘtre opĂ©rante, dans ce cas on peut trĂšs bien envisager la mise en place d'une machine physique redondante sur laquelle les machines virtuelles sont rĂ©pliquĂ©es et qui prendra le relais automatiquement si le serveur primaire tombe.

L'amélioration des performances

La migration Ă  chaud Ă©voquĂ©e plus haut a un autre avantage si une machine virtuelle est sursollicitĂ©e et nĂ©cessite de la puissance de traitement et de la mĂ©moire, elle pourra ĂȘtre dĂ©placĂ©e automatiquement sur un autre serveur moins sollicitĂ© Ă  ce moment-lĂ .

La sécurité

La virtualisation isole les services chacun dans leur machine virtuelle, en cas de corruption d'une machine virtuelle par cyberattaque, l'impact est nul pour les autres services et la restauration d'une machine virtuelle est autrement plus rapide et plus simple qu'avec une machine physique.

La disparition des machines physiques

Le stade ultime de la virtualisation est de déléguer à un prestataire la gestion des machines physiques qui se retrouve quelque part dans un datacentre. On s'abstrait totalement du matériel physique et des contraintes qui vont avec et on gÚre seulement nos machines virtuelles à distance, c'est totalement transparent pour les utilisateurs qui accÚdent à leurs services via internet ou sur un réseau privé. On parle aussi d'infrastructure virtuelle.

Il existe d'autres types de virtualisation ?

On a surtout évoqué jusqu'à présent la virtualisation des serveurs, mais il existe également d'autres types de virtualisation comme:

La virtualisation du stockage

Cela consiste en la création d'un espace virtuel de stockage à partir d'installations physiques de stockage bien réelles comme les serveurs de fichiers, NAS ou SAN qu'ils soient locaux ou distants. Cela permet de mettre en commun toutes ces installations et de la gérer à partir d'un outil unique de gestion pour effectuer toutes les opérations de sauvegarde, réplication, d'archivage et de restauration.

La virtualisation des réseaux

Un réseau est composé d'un tas d'éléments actifs comme les commutateurs, les routeurs et autres pare-feux, de type et de marques différentes. Là aussi on va créer un réseau virtuel qui combine l'ensemble de ces éléments actifs physiques pour pouvoir centraliser leur gestion sans avoir à y accéder physiquement. La virtualisation des réseaux permettra également d'améliorer les performances du réseau avec des analyseurs de trafic qui pourront équilibrer la charge ou favoriser certains flux.

La virtualisation des données

Les données sont issues de diverses sources, ont chacune leur format et sont stockées sur différents supports locaux ou distants. La virtualisation des données est une couche logicielle qui va gérer l'ensemble de ces données de maniÚre centralisée et les mettre à disposition des utilisateurs et des applications dans le format désiré.

La virtualisation d'application

La virtualisation d'application permet de sĂ©parer l'application de son systĂšme d'exploitation hĂŽte et de fonctionner sur un poste utilisateur sans qu'elle soit installĂ©e. Dans la pratique l'application est installĂ©e sur un serveur centralisĂ© et peut tourner sur un poste utilisateur du rĂ©seau comme si elle Ă©tait installĂ©e localement, quand bien mĂȘme l'OS du poste utilisateur n'est pas celui pour lequel l'application a Ă©tĂ© conçue.

La virtualisation des postes de travail

La virtualisation permet de virtualiser des serveurs mais pas seulement, on peut virtualiser également des postes de travail pour en faciliter la gestion qui seront accessibles aux utilisateurs du réseau via un client léger bien moins cher qu'un PC client classique.

Autres concepts autour de la virtualisation

C'est quoi une infrastructure convergĂ©e et hyperconvergĂ©e ?

Une infrastructure convergée regroupe plusieurs composants informatiques traditionnels et bien physiques comme les serveurs de calcul, les dispositifs de stockage ou les éléments actifs réseau pour en assurer la gestion dans un tout cohérent. Cela simplifie la gestion de l'administration et ça optimise les ressources matérielles et logicielles. On dit que c'est une approche modulaire basée sur le matériel physique.
L'hyperconvergence a une approche plutĂŽt logicielle, elle intĂšgre une couche logicielle qui va combiner les ressources de calcul, de stockage et de rĂ©seau dans ce qu'on appelle un nƓud. Les nƓuds sont interconnectĂ©s et combinĂ©s entre eux pour former des pools au sein d'un cluster, on retrouve ainsi un pool de stockage ou un pool de calcul, si un nƓud venait Ă  dĂ©faillir ça n'aurait pas de consĂ©quence pour les autres nƓuds et le fonctionnement du pool et du cluster.

OK, mais une fois que tout ça est posĂ©, quelle est la diffĂ©rence entre les deux ?
L'infrastructure convergĂ©e a une approche basĂ©e sur le matĂ©riel physique, c'est Ă  dire qu'un serveur physique peut ĂȘtre sĂ©parĂ© du reste du dispositif et toujours fonctionner comme un serveur indĂ©pendant alors que ce n'est pas possible avec l'infrastructure hyperconvergĂ©e oĂč les noeuds sont nĂ©cessairement interconnectĂ©s entre eux pour que le cluster puisse fonctionner correctement. Par ailleurs l'infrastructure convergĂ©e intĂšgre de base d'autres fonctionnalitĂ©s comme la sauvegarde, la rĂ©plication, la dĂ©duplication des donnĂ©es, la compression, l'optimisation du rĂ©seau, etc.

C'est quoi un cluster haute disponibilitĂ© ?

On a bien vu que finalement qu'elle soit dans vos locaux ou chez un prestataire de service, la machine physique reste le maillon faible du dispositif. Pour améliorer encore plus la disponibilité et la robustesse, on va dupliquer les machines physiques et si possible en les dispatchant dans des locaux et sites différents. Le tout étant géré comme un seul systÚme. La virtualisation du stockage prend alors toute son importance, pour éviter de se rendre dépendant d'un serveur physique de données.

C'est quoi le cloud computing ?

On appelle cloud computing le fait de confier à un tiers sur internet la gestion de services informatiques (applications, stockage, outils de gestion, 
) mais aussi le fait d'utiliser des services fournis par un prestataire via internet. Le cloud computing repose largement sur la virtualisation, on peut dire que le cloud computing est un environnement alors que la virtualisation est une technologique. En matiÚre de cloud computing, il en existe de différentes sortes :

  • Infrastructure as a service (IaaS) ou infrastructure en tant que service : L'IaaS offre une infrastructure informatique complĂšte (serveurs, stockage, rĂ©seau, 
) sur un rĂ©seau privĂ© (ressources en accĂšs limitĂ©), public (ressources en accĂšs libre) ou hybride (qui mĂ©lange les deux).
  • Platform as a service (PaaS) ou plate-forme en tant que service : Le PaaS c'est grosso modo la mĂȘme chose que l'IaaS sauf qu'en plus on bĂ©nĂ©ficie d'outils supplĂ©mentaires pour pouvoir dĂ©velopper des applications qu'on retrouvera sur le cloud et tous un tas de services supplĂ©mentaires, gestion de base de donnĂ©es, aide Ă  la dĂ©cision, etc.
  • Le Software as a service (SaaS) ou logiciel en tant que service : Le SaaS est une offre logicielle complĂšte qu'on retrouvera sur internet, c'est typiquement des offres comme Microsoft Office 365 ou Google Workspace, dans le monde opensource, on peut dire que certains prestataires recensĂ©s par les CHATONS se rapprochent d'une solution SaaS.

NdM: il est question ici de cloud computing sur un cloud public, une infrastructure gérée par un hébergeur tiers. Il est aussi possible de faire du cloud computing privé, interne, dans une grosse structure qui en a la capacité, ce qui revient à déléguer l'hébergement à un tiers (des collÚgues dans ce cas). Et on peut combiner les deux pour faire du cloud hybride. Le cloud computing implique aussi la création de ressources en libre-service, de la facturation à l'usage et de la mutualisation.

Les enjeux

Enjeu environnemental

L'adoption quasi généralisée de solutions autour de la virtualisation dans le monde professionnel a conduit à la disparition progressive des serveurs locaux d'entreprise au profit d'un développement effréné des datacenters de par le monde. Or un datacenter est constitué de machines bien physiques tournant 24h24 7j/7 avec tout un dispositif lui aussi bien physique pour assurer leur fonctionnement optimal, leur sécurisation et la robustesse aux pannes, il s'agit notamment de :

  • La climatisation et le traitement d’air pour maintenir des conditions satisfaisantes de tempĂ©rature et hygromĂ©trie avec toute un systĂšme de circulation et de refroidissement d'air
  • La distribution de l’électricitĂ© avec un dispositif de sĂ©curisation en cas de coupure d'alimentation, souvent basĂ© sur tout un ensemble d'onduleurs et appuyĂ© par groupes Ă©lectrogĂšnes
  • la protection physique de l'installation avec contrĂŽle d'accĂšs, vidĂ©osurveillance et autres systĂšmes anti intrusion

Le tout nĂ©cessite une consommation Ă©lectrique massive et une forte consommation en eau. Si l'on traduit cela en Ă©quivalent d'Ă©mission de gaz de serre (GES), d'aprĂšs une Ă©tude de l'ADEME les datacenters ont dĂ©jĂ  atteint le mĂȘme niveau d'Ă©mission que le transport aĂ©rien Ă  l'Ă©chelle mondiale.
Il se trouve que le destin des datacenters est maintenant Ă©galement Ă©troitement liĂ© Ă  celui de l'IA, mĂȘme si dans ce domaine on envisage plutĂŽt des datacenters dĂ©diĂ©s, or les besoins gĂ©nĂ©rĂ©s par l'IA dopent l'expansion globale des datacenters dans le monde. La demande de puissance de calcul de l'IA est exponentielle et double tous les 3,4 mois selon OpenAI. Selon une Ă©tude Gartner citĂ©e par le Monde Informatique, rien que les besoins liĂ©s Ă  l'IA feront exploser la demande Ă©nergĂ©tique des datacenters au point que les fournisseurs d'Ă©nergie ne pourront y rĂ©pondre dĂšs 2027 !

Dans ce contexte il n'est pas Ă©tonnant donc que les grands acteurs du secteur poussent au dĂ©veloppement des centrales nuclĂ©aires qui leur permettra par la mĂȘme occasion de verdir leur image. Mais ces acteurs ne sont pas Ă  une contradiction prĂšs, on peut s'Ă©tonner du dĂ©veloppement dans certaines rĂ©gions qui de prime abord ne se prĂȘtent pas particuliĂšrement Ă  leur installation contrairement aux pays nordiques. Le projet d'installation de Meta dans une rĂ©gion aride d'Espagne oĂč chaque goutte d'eau compte, en est une triste illustration. Les tempĂ©ratures rĂ©gionales Ă©levĂ©es dĂ©cupleront ses besoins en Ă©lectricitĂ© et en eau pour les circuits de refroidissement alors que la rĂ©gion souffre de sĂ©cheresse chronique. On peut dĂ©plorer que tout cela ne pourrait se faire sans le soutien des gouvernements et des Ă©lus locaux qui ne trouvent rien Ă  redire.

Enjeu de résilience

Le marchĂ© actuel est dominĂ© par trois acteurs qui reprĂ©sentent Ă  eux trois plus de 60% du marchĂ© mondial il s'agit dans l'ordre d'AWS (Amazon), d'Azure (Microsoft) et de Google Cloud Platform, on parle d'eux comme des hyperscalers car ils fournissent des services Ă  l'Ă©chelle mondiale Ă  grande Ă©chelle. Cette hyperconcentration des acteurs et des solutions techniques fragilise l'Ă©conomie mondiale en la rendant davantage sensible et moins rĂ©siliente aux pannes, la dĂ©faillance d'un simple outil de sĂ©curitĂ© a ainsi entraĂźnĂ© en cascade une panne informatique mondiale en juillet dernier avec des consĂ©quences graves comme l'arrĂȘt partiel du contrĂŽle aĂ©rien, de centres d'appels d'urgence ou de services hospitaliers. Plus modestement l'incendie subi par OVH en 2021 a impactĂ© des milliers d'entreprise et services publics, toutes les donnĂ©es contenues sur les serveurs sont perdues, puisqu'OVH a commis l'erreur de stocker au mĂȘme endroit les donnĂ©es et les sauvegardes. NdM: historique de pannes GCP, AWS ou Azure
Cette hyperconcentration fait planer également des risques en termes de cybersécurité, la corruption d'un élément du systÚme et sa prise de contrÎle par un hacker aura vite des conséquences majeures.

Enjeu de souveraineté

Il faut savoir que les donnĂ©es gĂ©rĂ©es par un datacenter sont soumises Ă  la rĂ©glementation propre au pays oĂč il est installĂ©. Les autoritĂ©s aux États-Unis, au nom du Patriot Act peuvent donc ainsi accĂ©der aux donnĂ©es stockĂ©es sur leur territoire. Les datacenters souverains sont donc un enjeu majeur pour certains pays pour garantir que les donnĂ©es seront protĂ©gĂ©es par les lois nationales, sans ingĂ©rence Ă©trangĂšre possible.

En France notamment, 71% des entreprises se reposent sur des solutions américaines dont des acteurs étatiques. Une affaire illustre à elle seule cet état de fait, la solution Azure de Microsoft a été ainsi choisi pour héberger l'ensemble des données de santé de 4 établissements hospitaliers (et non de l'ensemble des Français) à des fins de recherche dans un entrepÎt de données de santé dénommé EMC2. Sauf qu'en l'espÚce Microsoft a répondu à un appel d'offre en bonne et due forme, que la CNIL a donné son autorisation et que les différents recours à ce stade ont tous échoué. Néanmoins voici ci-dessous texto la conclusion du rapport de la CNIL en 2023 :

(début de citation)

  • qu’aucun prestataire potentiel ne propose d’offres d’hĂ©bergement rĂ©pondant aux exigences techniques et fonctionnelles du GIP PDS (Note de l'auteur : groupement d’intĂ©rĂȘt public « Plateforme de donnĂ©es de santĂ©", appelĂ© aussi Health Data Hub) pour la mise en Ɠuvre du projet EMC2 dans un dĂ©lai compatible avec les impĂ©ratifs ce dernier ;
  • que le dĂ©veloppement d’un dĂ©monstrateur " cloud de confiance ", respectant les conditions de la circulaire prĂ©citĂ©e et permettant Ă  terme d’hĂ©berger des projets de cette nature, et notamment la plateforme du GIP PDS, devrait se poursuivre sur les prochaines annĂ©es ;
  • que la construction d’une plateforme d’hĂ©bergement spĂ©cifique pour le projet EMC2 pourrait retarder la migration de la solution d’hĂ©bergement du GIP PDS pour l’ensemble de ses missions ;
  • qu’en attendant cette migration, le projet EMC2 soit menĂ© sur la solution technique actuelle du GIP PDS.

À la lumiĂšre de ces conclusions, la CNIL dĂ©plore qu’aucun prestataire susceptible de rĂ©pondre actuellement aux besoins exprimĂ©s par le GIP PDS ne protĂšge les donnĂ©es contre l’application de lois extraterritoriales de pays tiers.
De maniĂšre gĂ©nĂ©rale, elle regrette que la stratĂ©gie mise en place pour favoriser l’accĂšs des chercheurs aux donnĂ©es de santĂ© n’ait pas fourni l’occasion de stimuler une offre europĂ©enne Ă  mĂȘme de rĂ©pondre Ă  ce besoin. Le choix initial du GIP PDS, dĂšs sa fondation, de recourir au cloud a conduit Ă  privilĂ©gier des offres d’acteurs Ă©tasuniens dont il apparaĂźt dĂ©sormais difficile de se dĂ©tacher Ă  court terme malgrĂ© l’émergence progressive de fournisseurs souverains. Le projet EMC2 aurait pu ĂȘtre retenu par le GIP PDS pour prĂ©figurer la solution souveraine vers laquelle il doit migrer.

(fin de citation)

À la lumiĂšre de cette conclusion, on peut comprendre que la CNIL s'est sentie contrainte et forcĂ©e de rĂ©pondre favorablement pour ne pas faire capoter ce projet en espĂ©rant que cette solution ne soit que transitoire et qu'elle pourra basculer sur une solution souveraine dans quelques annĂ©es.
Autre affaire d'actualité, le contrat entre EDF et AWS pour le stockage de certaines informations sensibles de maintenance du parc nucléaire français, le Canard enchaßné vient de révéler récemment que le contrat battait de l'aile car Amazon refuse d'inscrire noir sur blanc dans le contrat que les données d'EDF seront stockées en France (autre article).
Aussi la France cherche Ă  dĂ©velopper son "cloud souverain" pour ne plus ĂȘtre dĂ©pendant des gĂ©ants amĂ©ricains mais peine Ă  avancer sur le sujet faute de barriĂšres rĂ©glementaires et juridiques, de rĂ©ticences des Ă©lus et des populations sur les territoires pouvant accueillir des datacenters et d'une certaine frilositĂ© des banques et acteurs technologiques.

En guise de réponse aux enjeux

RĂ©ponse Ă  l'enjeu environnemental

Pour ne pas courir à la catastrophe annoncée, la mise en place de technologies plus efficaces et économes en énergie est un enjeu majeur, parmi les axes d'innovation on peut citer:

  • l'utilisation d'Ă©nergie renouvelable
  • le refroidissement des datacenters basĂ© sur des technologies peu gourmandes en eau,
  • la rĂ©utilisation de l'Ă©nergie dissipĂ©e par les datacenters.

Réponse à l'enjeu de résilience

Des normes et des certifications se sont mises en place qu'elles soient internationales, européennes ou nationales. On peut citer :

  • TIA 942 qui couvre diffĂ©rents domaines comme la disponibilitĂ©, la sĂ©curitĂ©, l'efficacitĂ© Ă©nergĂ©tique, le refroidissement, la redondance et la gestion de l'espace;
  • ANSI/BICSI-002 qui dĂ©finit des standards de conception et de pose des systĂšmes de cĂąblage, d'Ă©lectricitĂ©, dissipation de chaleur, refroidissement, etc.
  • ISO 27001 qui couvre la gestion de la sĂ©curitĂ© de la donnĂ©e;
  • ISO 22237 qui couvre l'installation et les infrastructures des datacenters;
  • le rĂ©fĂ©rentiel de sĂ©curisation des services cloud SecNumCloud Ă©laborĂ© par l’ANSSI;
  • la certification d'Uptime Institute avec sa classification du niveau de sĂ©curitĂ© des datacenters de Tier I Ă  Tier IV.

En France, France Datacenter est une organisation professionnelle qui fédÚre les entreprises qui conçoivent, construisent et exploitent les datacenters. Elle publie également des guides à destination de ses adhérents qui font référence, on peut citer notamment "le livre blanc sur la sécurité incendie" ou "l'humain et la sécurité du datacenter".

D'un point de vue réglementaire, on peut citer :

  • le rĂšglement gĂ©nĂ©ral sur la protection des donnĂ©es RGPD;
  • La directive europĂ©enne relative Ă  DEE l’efficacitĂ© Ă©nergĂ©tique DEE;
  • La directive europĂ©enne relative Ă  la sĂ©curitĂ© des rĂ©seaux et de l’information, dite NIS 2 pour Network and Information System Security.

Le respect de ces normes, certification et a fortiori de la rĂ©glementation sont une garantie que les datacenters sont construits suivant les rĂšgles de l'art avec le niveau de qualitĂ©, de sĂ©curitĂ© et de fiabilitĂ© attendu. A ce propos pour en revenir Ă  l'incident OVH, les procĂ©dures judiciaires qui en ont dĂ©coulĂ© et qui ont conduit Ă  la condamnation d'OVH ont mis en Ă©vidence que la sociĂ©tĂ© qui se targuait d'ĂȘtre certifiĂ© ISO 27001 n'a pas respectĂ© la norme pour ne pas avoir prĂ©vu une copie de sauvegarde sur un site distant.

Réponse à l'enjeu de souveraineté

Le respect du RGPD et de la certification SecNumCloud sont une premiĂšre rĂ©ponse Ă  la menace des lois extraterritoriales sur la confidentialitĂ© des donnĂ©es, en parallĂšle le premier ministre de l'Ă©poque a diffusĂ© en 2021 une circulaire relative Ă  la doctrine d'utilisation de l'informatique en nuage par l'État qui a Ă©tĂ© actualisĂ© en 2023. Cette derniĂšre "exige (
) en cas de recours Ă  une offre commerciale d'informatique en nuage, l'hĂ©bergement des donnĂ©es d'une sensibilitĂ© particuliĂšre par des solutions disposant de la qualification SecNumCloud (
) et immunisĂ©es contre toute rĂ©glementation extracommunautaire".
Il faut par ailleurs créer l'environnement pour que des acteurs locaux puissent se développer et former une alternative crédible aux hyperscalers. L'émergence d'acteurs alternatifs de proximité est donc un enjeu que le marché seul ne suffit pas à faire percer, il faut une volonté politique, une stratégie et une vision à long terme, des financements, une adaptation de la réglementation à l'échelle européenne et nationale.
À ce sujet le prĂ©cĂ©dent gouvernement avait concoctĂ© une loi de simplification de la vie Ă©conomique destinĂ©e Ă  faciliter l'installation de datacenters en France en les qualifiant de projets d'intĂ©rĂȘt national majeur (PINM) pour qu'ils puissent bĂ©nĂ©ficier de mesures dĂ©rogatoires, de procĂ©dures accĂ©lĂ©rĂ©es tout en contournant le pouvoir des Ă©lus locaux puisque ça sera l’État qui signera les permis de construire. Avec cette loi la mĂ©tropole de Rennes n'aurait sans doute pas pu refuser l'implantation d'un datacenter de Microsoft s'il avait Ă©tĂ© jugĂ© d'intĂ©rĂȘt national. Aujourd'hui ce projet de loi continue son bonhomme de chemin lĂ©gislatif malgrĂ© l'instabilitĂ© politique actuelle.
Cet objectif de dĂ©veloppement d'une offre de proximitĂ© n'est pas forcĂ©ment compatible des objectifs environnementaux et de dĂ©veloppement durable que la France s'est imposĂ©e, mais il faut voir ça comme une opportunitĂ© pour innover et ne plus ĂȘtre Ă  la traĂźne des États-Unis dans ces domaines technologiques.

En guise de conclusion

D'une simple prĂ©sentation technique autour de la virtualisation, on en arrive en tirant la pelote Ă  des considĂ©rations Ă  fort enjeu sur la gestion et la confidentialitĂ© des donnĂ©es que bien des utilisateurs de cloud n'imaginent pas, ni mĂȘme ne considĂšrent Ă  sa juste importance. Pourtant il suffirait qu'ils en prennent conscience pour orienter leur choix vers des solutions respectueuses qui peinent encore aujourd'hui Ă  Ă©merger malgrĂ© les vƓux pieux de l’État qui n'est pas toujours exemplaire dans le domaine.

Pour aller plus loin

Quelques pages de vulgarisation

Une sélection de sites sur les enjeux et le futur autour de la virtualisation et les datacenters

Sites divers

Commentaires : voir le flux Atom ouvrir dans le navigateur

Projets Libres! Saison 3 Ă©pisode 7 : mesurer le trafic web avec Matomo

Pour bien commencer l'année 2025, Projets Libres! vous propose de parler de mesure de trafic web avec l'outi Matomo.

Les invités :

  • Matthieu Aubry, fondateur de Matomo
  • Laurent Destailleur, fondateur de AWStats

Les thÚmes abordés :

  • les diffĂ©rentes techniques d'analyse de trafic
  • les dĂ©buts de Matthieu dans l'analyse de trafic avec phpMyVisites puis Piwik
  • le changement de Piwik en Matomo
  • les enjeux autour de la marque Piwik
  • les modĂšles Ă©conomiques de Matomo
  • la licence utilisĂ©e
  • la communautĂ© autour de l'outil
  • etc.

À noter qu'une annonce importante de Laurent concernant AWStats se cache en toute fin d'Ă©pisode 📣 !

Bonne Ă©coute !

Commentaires : voir le flux Atom ouvrir dans le navigateur

Entrevue avec Herman BRULE, développeur d'Ultracopier et de CatchChallenger

2 janvier 2025 Ă  07:26

Herman BRULE est l’auteur et le mainteneur de deux applications (libres sous licence GPL v3, mais aussi proposĂ©es dans des versions payantes « Ultimate ») : l’utilitaire Ultracopier et le jeu CatchChallenger.

Sommaire

Bonjour Herman, peux-tu te prĂ©senter ?

Bonjour !

Sur le plan professionnel, je suis DG de Confiared (hébergement Web et VPS) et de Confiabits (fabrication et assemblage de circuits imprimés), et directeur de la technologie chez CTO chez DanSolutions (FAI).
Par ailleurs, j’aide des associations locales (j’habite en Bolivie) dans des domaines techniques comme les tĂ©lĂ©coms ou le dĂ©veloppement logiciel, j’interviens parfois comme confĂ©rencier sur ces sujets.
Enfin, je participe au conseil d’administration de la section bolivienne de l’Internet Society (ISOC Bolivie).

Peux-tu nous raconter ton parcours ?

J’ai Ă©tudiĂ© l’électronique (BTS STI), puis le dĂ©veloppement web. J’étais d’ailleurs encore Ă©tudiant quand j’ai commencĂ© Ă  dĂ©velopper Ultracopier.
J’ai longtemps travaillĂ© dans l’e-commerce, puis pour des raisons personnelles je suis allĂ© vivre en Bolivie.
J’ai Ă©tĂ© plutĂŽt déçu par la qualitĂ© des offres locales, ici en Bolivie, dans le secteur des technologies de l’information, c’est pourquoi j’ai dĂ©cidĂ© de proposer mes services.

Peux-tu nous parler de ces deux logiciels ?

Ultracopier

Logo de Ultracopier

Comment est nĂ© ce projet ?

J’avais besoin d’un utilitaire avancĂ© pour la copie de fichiers, comme Supercopier, pour une utilisation sous Linux mais ce dernier n’était pas disponible sur cette plateforme.
Ultracopier est donc nĂ© non pas comme un fork de Supercopier mais comme un projet indĂ©pendant : Ă  l’époque, Supercopier Ă©tait Ă©crit en Pascal, et je prĂ©fĂ©rais Ă©crire en C++.

Au final, quand toutes les fonctionnalitĂ©s ont Ă©tĂ© implĂ©mentĂ©es et qu’Ultracopier a disposĂ© d’un skin Supercopier, une redirection a Ă©tĂ© mise en place.

Aujourd’hui, aprĂšs 20 ans, le projet est toujours actif et maintenu, malgrĂ© les problĂšmes de tentative de piratage, bug, DDOS, et les Ă©volutions technologiques.

Quels sont les points marquants qui ont, selon toi, marquĂ© son dĂ©veloppement ?

AprĂšs la reprise de Supercopier, qui a permis de fĂ©dĂ©rer sa base d’utilisateurs autour d’Ultracopier, il y a eu de nouvelles fonctionnalitĂ©s au fil du temps :

  • la prise en charge de gros volumes (>5TB >10 millions de fichiers)
  • les extensions (plugins) et thĂšmes graphiques (skins), dont le dĂ©veloppement m’a poussĂ© Ă  standardiser l’interface pour la rĂ©utilisation par des applis tierces.

Quel est le modĂšle Ă©conomique ?

C’est assez peu connu mais Ultracopier est proposĂ© dans deux versions : une gratuite (installable depuis le gestionnaire de paquets d’Ubuntu notamment) et une version « Ultimate ». Cette version, payante, est enrichie de fonctionnalitĂ©s comme

  • la mise en pause,
  • la limitation du taux de transfert,
  • d’autres options de performance selon le systĂšme d’exploitation utilisĂ© et inclut un support technique.

Pour ĂȘtre honnĂȘte, les utilisateurs de la version payante sont trĂšs peu nombreux : une Ă©crasante majoritĂ© utilisent la version gratuite et d’autres piratent la version payante.

Ma vie professionnelle et mon engagement Ă  l’ISOC Bolivie sont trĂšs chronophages, je ne compte pas mes heures sur mes principales activitĂ©s d’hĂ©bergeur et de FAI, et Ă  une usine de fabrication d’équipements rĂ©seau pour ces besoins.

J’ai quand mĂȘme publiĂ© de l’open source comme le firmware OpenWRT pour le routeur wifi 6 que je fabrique.

Des dons ou des achats sont bienvenus pour que je puisse me concentrer davantage Ă  l’open source ;) Je crois que beaucoup de dĂ©veloppeurs open source sont dans cette problĂ©matique.
Heureusement, l’hĂ©bergement ne coĂ»te presque rien car j’utilise mon propre service, et je suis le seul contributeur.

Quelles sont les fonctionnalitĂ©s les plus attendues que tu penses implĂ©menter ?

Je souhaiterais amĂ©liorer l’intĂ©gration d’Ultracopier dans les gestionnaires de fichiers sous Linux ou MacOs, mais ce n’est pas chose facile. Pendant des annĂ©es j’ai essayĂ© de faire modifier les gestionnaires de fichiers pour avoir la possibilitĂ© de replacer le copier/coller par Ultracopier. Rien. Soit je suis ignorĂ©, soit je suis refusĂ© (motif de refus rĂ©curent : je devrais refaire Ultracopier en « natif » : GTK, KIO, Haiku
), je me vois mal maintenir divers UI. Les votes sur demande de fonctionnalitĂ©s sont les bienvenus, par exemple ici pour KDE/Plasma.

Je veux aussi implémenter un moteur async natif sous linux (en utilisant io_uring) pour de meilleures performances.

As-tu eu des Ă©changes/retours avec les autres logiciels ou Ă©diteurs (communautĂ© linux / autres Ă©diteurs) ?

Non. J’ai essayĂ© de faire que le protocole d’envoi de copie/dĂ©placement Ă  un logiciel tiers soit un standard avec un protocole commun pour motiver les gestionnaires de fichiers Ă  l’utiliser, je n’ai reçu que des rĂ©ponses nĂ©gatives :/

Peux-tu partager des souvenirs marquants de cette expĂ©rience ?

Durant toutes ces annĂ©es, conscient que la copie de donnĂ©es est un sujet qui peut ĂȘtre trĂšs sensible, j’ai veillĂ© Ă  ĂȘtre rĂ©actif aux retours des utilisateurs : dĂšs que quelque chose d’anormal m’est reportĂ©, je m’assure de vĂ©rifier/corriger et de publier trĂšs rapidement. Je pense qu’Ultracopier garantit bien l’intĂ©gritĂ© des donnĂ©es lors des copies, parfois mieux que des copies par l’outil du systĂšme. Par exemple, si pendant le dĂ©placement de fichiers vers un lecteur rĂ©seau ce lecteur rĂ©seau se dĂ©connecte, alors Windows peut dĂ©truire la source sans avoir pu valider l’intĂ©gritĂ© rĂ©elle du fichier cible. Il faut reproduire un contexte trĂšs particulier, mais ça c’est vu.

MalgrĂ© cette attention, il m’est arrivĂ© de recevoir des insultes de certains utilisateurs, allant jusqu’à des menaces de mort. J’ai une bonne collection de conversations de ce genre ! Il s’agit d’une minoritĂ© d’utilisateurs, en majoritĂ© des dĂ©butants en informatique et qui n’ont pas utilisĂ© correctement l’outil, ou plus gĂ©nĂ©ralement leur ordinateur.

Par ailleurs, le spam et les tentatives de piratage (dont une pour rediriger les paiements des versions "Ultimate » !) auront eu raison des pages Wiki et Maintenance du site, faute de temps pour la modĂ©ration.

Il me semble tout de mĂȘme que la majoritĂ© silencieuse (= celle qui dit rarement merci ;) ) est dans l’ensemble trĂšs satisfaite des services rendus par Ultracopier, et cela est motivant. Pour moi, le point le plus positif est surtout l’acquis de connaissances.

CatchChallenger

Logo de CathChallenger

Quelle est l’origine de ce jeu ?

Je cherchais Ă  me familiariser avec la programmation autour de sujets relatifs aux clients/serveurs, comme les protocoles, la haute performance, le chiffrement, et aussi les bots
 â€Šet le dĂ©veloppement d’un jeu est le moyen ludique par excellence !

Vu qu’il n’y a pas de temps rĂ©el, je peux jouer avec TOR/I2P (un bon moyen de tester la sĂ©curitĂ©), pas de flottant donc cela marche sur tous les CPU, y compris ceux de plus de trente ans et les architectures exotiques comme celles que l’on trouve dans les routeurs (MIPS
).

C’est un mix de plusieurs jeux au gameplay de type crafting (Ă  la lineage/X3/minecraft) qui m’intĂ©ressait pour les techniques ce que ce genre implique.

Quels sont les points marquants qui ont, selon toi, marquĂ© son Ă©volution ?

Version 1 : j’ai essayĂ© de m’éloigner visuellement d’un jeu bien connu auquel mon jeu pouvait ĂȘtre associĂ©.

Version 2 : j’ai abandonnĂ© Qt niveau serveur car trop lent niveau SLOT/SIGNAL, et revu le thĂšme graphique avec des couleurs plus chaudes, mĂȘme si ça me rapproche d’un autre jeu connu.

Version 3 : modularité/API et interface responsive, refonte du datapack.

Est-il facile de monter son propre serveur? Ou de modifier le jeu ?

Le client intĂšgre un serveur embarquĂ© pour jouer en solo, qui peut ĂȘtre ouvert sur un rĂ©seau local ou sur Internet.

Le serveur a une interface graphique et une version console (avec diverses bases de donnée supportées, y compris du noSQL)

Le datapack est facilement interchangeable et tout est fait pour qu’un enfant puisse le modifier (png, xml, tmx, opus)

Y a-t-il d’autres contributeurs ?

Non

y a-t-il des fonctionnalitĂ©s importantes qui ne seront pas dĂ©veloppĂ©es, et pourquoi ?

Il y en a beaucoup, par manque de temps. Je n’ai jamais atteint un stade de maturitĂ© sur le jeu de base qui me convient, donc je me concentre lĂ -dessus. Par exemple, je me suis lancĂ© sur le multithreading GPU cĂŽtĂ© serveur : j’ai pu lancer des tests sur GPU, cela fonctionne bien mais complexifie trop le dĂ©veloppement sans apporter un rĂ©el bĂ©nĂ©fice.

Quel est le rapport avec tes autres projets ?

Avec ce projet, j’ai vite eu besoin d’un grand nombre de VPS, cela m’a incitĂ© Ă  m’intĂ©resser aux datacentres et Ă  monter modestement mon premier datacentre. De fil en aiguille, j’en ai fait mon activitĂ© :)

J’ai aussi eu besoin de connexions, de haute performance et de haute disponibilitĂ©. Curieux, je me suis lancĂ© dans la conception de mon hardware : onduleur, alimentation solaire


Qu’as-tu retirĂ© de ce projet ?

J’ai Ă©tĂ© surpris par les performances, pour un code qui n’est pas en assembleur et qui pourrait encore ĂȘtre optimisĂ© : des millions de joueurs sur un CPU de bureau par serveur. Vous saturez l’écran de bots bien avant de saturer le CPU, mĂȘme un trĂšs vieux CPU ou un microcontrĂŽleur de routeur, et la charge en RAM ne dĂ©passe pas quelques Mo.

La prĂ©diction cĂŽtĂ© client (Client-side prediction), les instructions prĂ©parĂ©es (SQL parameterized statement) sont trĂšs efficaces, je charge tout en RAM sous forme d’entier <=32Bits. Vu qu’il faut des performances bien supĂ©rieures du client pour surcharger un serveur, il y a peu de chance qu’on m’attaque via DDOS.

Quels conseils avec le recul donnerais-tu Ă  ceux qui entreprendraient de se lancer ?

Ne faites pas de projets que vous n’allez pas maintenir, aussi bien pour vous que pour ceux qui vont les utiliser.

Aussi, ne vous lancez pas sur un projet que mille autres personnes ont dĂ©jĂ  fait avant vous, il y a une tonne de projets de niche qui n’ont pas de solution open source !

Ton rapport au libre

Au niveau personnel, quels logiciels libres utilisez-vous, sur quel OS ?

J’utilise Gentoo Linux et presque que du libre.

MĂȘme question au niveau professionnel ?

En gĂ©nĂ©ral j’essaie de faire le modĂšle pro suivant : quand un logiciel a Ă©tĂ© rentabilisĂ©, je le libĂšre.

Niveau data center, on fonctionne en IPv6 avec des logiciels de conversion pour, par exemple, passer de HTTP IPv4 à IPv6, si tu ajoutes tous les services internes + gestionnaires, ça fait mal pas de logiciels.

Niveau industrie, je produis des onduleurs, des serveurs, des routeurs datacentres et domestiques (wifi 6 OpenWRT), avec les difficultĂ©s ici pour importer je dois faire avec ce que je trouve sur place (et il n’y a quasiment rien pour la microĂ©lectronique).

Niveau FAI, rien Ă  voir avec ce qu’il y a en France, entre les blocages politiques et administratifs (j’attends certaines autorisations depuis de nombreuses annĂ©es), les monopoles
 rien n’avance. Mais malgrĂ© ces difficultĂ©s j’ai pu innover et proposer des solutions efficaces pour des communautĂ©s locales, grĂące Ă  des logiciels libres.

Merci pour ce partage, et pour ton apport au libre ! Nous te souhaitons beaucoup de succĂšs dans tes nombreux projets pour 2025 !

Commentaires : voir le flux Atom ouvrir dans le navigateur

L’exploration et le calcul de l’espace : l’horlogĂšre, l’astronome et l’astrophysicienne

En octobre 2024, on Ă©tait allĂ© Ă  la conquĂȘte de l’espace, cette fois-ci, on va se concentrer sur l’exploration de l’espace vu de la Terre. Pour cela, on se penchera sur la vie et les travaux de trois femmes : Nicole-Reine Lepaute qui, au siĂšcle des LumiĂšres, a calculĂ© la date du retour de la comĂšte de Halley, Janine Connes qui prendra la direction du premier centre de calcul en France et Françoise Combes qui vient d’ĂȘtre Ă©lue prĂ©sidente de l’AcadĂ©mie des sciences. C’est aussi l’occasion de voir l’évolution des outils utilisĂ©s en astronomie.

Phases de l’éclipse du soleil du 1er avril 1764
Illustration des douze phases principales selon les calculs de Nicole-Reine Lepaute

Sommaire

Préambule

Les deux dĂ©pĂȘches consacrĂ©es Ă  la conquĂȘte de l’espace dans le cadre de la journĂ©e Ada Lovelace Ă©taient trĂšs amĂ©ricano-centrĂ©es, et il manquait l’aspect Ă©tude et dĂ©couverte de l’espace qui en prĂ©cĂšde la conquĂȘte. Sans cette connaissance, il n’aurait pas Ă©tĂ© possible d’envoyer des satellites artificiels, d’aller sur la Lune, sur Mars ou encore de crĂ©er des stations spatiales, voire, de concevoir les tĂ©lescopes Hubble et James Webb. D’oĂč cette dĂ©pĂȘche, et le choix de ces trois femmes pour contrebalancer un peu leur amĂ©ricano-centrisme.

Le choix a Ă©tĂ© guidĂ© d’une part en tenant compte des informations dont je pouvais disposer, d’autre part de l’actualitĂ© : Janine Connes vient de mourir Ă  l’ñge de 98 ans et c’est une façon de lui rendre hommage, Françoise Combes vient d’ĂȘtre Ă©lue par ses pairs Ă  la prĂ©sidence de l’AcadĂ©mie des sciences.

Nicole-Reine Lepaute, l’horlogùre

La vie de Nicole-Reine Lepaute nous est essentiellement connue grĂące Ă  l’EncyclopĂ©die des dames de JĂ©rĂŽme Lalande. De fait les biographies que l’on peut trouver sur elle citent les mĂȘmes passages en Ă©lucubrant souvent sur les relations qu’elle aurait pu avoir avec l’astronome. Mais comme LinuxFr.org n’est ni un site « people Â» ni un site de rencontre et que l’autrice de l’article n’aime gĂ©nĂ©ralement pas faire comme tout le monde, on vous renverra en fin de dĂ©pĂȘche sur ces biographies.

Nicole-Reine Lepaute en quelques dates (et hauts faits)

Nicole-Reine Étable naĂźt le 5 janvier 1723 Ă  Paris. Elle n’est pas elle-mĂȘme horlogĂšre, mais elle Ă©pouse l’horloger Jean AndrĂ© Lepaute en 1749. Il deviendra le fournisseur officiel de la cour de Louis XV en 1750. Jean AndrĂ© Lepaute Ă©tait rĂ©putĂ© comme l’un des meilleurs horlogers de son temps. Quand il Ă©crira son TraitĂ© d'horlogerie, contenant tout ce qui est nĂ©cessaire pour bien connoĂźtre et pour rĂ©gler les pendules et les montres, c’est Nicole-Reine qui calculera la « longueur que doit avoir un Pendule simple pour faire en une heure un nombre de vibrations quelconque, depuis 1 jusqu’à 18000 Â» (table VI, pages 365 et suivantes du traitĂ©). Et on le sait parce qu’elle en est crĂ©ditĂ©e.

Le couple fait la connaissance de l’astronome JĂ©rĂŽme Lalande en 1754. Elle commencera peu aprĂšs Ă  travailler avec lui. En 1757, elle calculera les dates du retour de la comĂšte de Halley avec Lalande et Clairaut. Quand, en 1759, Lalande est chargĂ© des Ă©phĂ©mĂ©rides annuelles de l’AcadĂ©mie royale des sciences : La Connaissance des temps1, elle fera partie de l’équipe qui travaille sur les tables et Ă©phĂ©mĂ©rides astronomiques.

En 1761, elle entre Ă  l’AcadĂ©mie royale des sciences et belles lettres de BĂ©ziers. C’est, probablement, la premiĂšre fois qu’une femme entre dans une acadĂ©mie pour ses travaux scientifiques. Elle offre aux acadĂ©miciens les tables astronomiques pour BĂ©ziers qu’elle avait compilĂ©es Ă  leur intention. Malheureusement ses travaux sont perdus.

En 1764, une Ă©clipse est prĂ©vue, pour Ă©viter une Ă©ventuelle panique, le clergĂ© est invitĂ© Ă  informer le peuple du caractĂšre inoffensif de ce phĂ©nomĂšne cĂ©leste. Nicole-Reine Lepaute calculera les phases de l’éclipse et en dressera une carte. Elle fera publier deux documents :

Elle meurt, aveugle, le 6 dĂ©cembre 1783, elle aura passĂ© les trois derniĂšres annĂ©es de sa vie Ă  s’occuper de son mari loin des mathĂ©matiques. Son acte de dĂ©cĂšs figure sur le site archive.org.

Elle ne reste pas complĂštement oubliĂ©e. Ainsi, quand une nouvelle Ă©dition de la Bibliographie ancienne et moderne ou (en nettement plus long) Histoire, par ordre alphabĂ©tique, de la vie publique et privĂ©e de tous les hommes qui se sont distinguĂ©s, par leurs Ă©crits, leurs actions, leurs talens, leurs vertus ou leurs crimes paraĂźt en 1820, elle a sa notice relevĂ©e ici par le Journal des dames et de la mode. SignĂ©e d’un certain M. Weiss, elle porte cette mention :

Mme Lepaute, douĂ©e de tous les avantages extĂ©rieurs, portoit dans la sociĂ©tĂ© cette politesse et cette fleur d’esprit, que semblent exclure les Ă©tudes profondes


Le numĂ©ro du 15 fĂ©vrier 1898 du bi-mensuel La Femme (page 28) dresse un portrait de Nicole-Reine Lepaute en ajoutant :

Telle fut la vie pure et simple de celle que Clairaut appelait « la savante calculatrice Â». Plus grande lorsqu’elle partageait l’internement de son mari dans une maison de santĂ© que lorsqu’elle compulsait les tables astronomiques.

Et en concluant plus gĂ©nĂ©ralement :

« L’examen attentif des faits, des biographies. l’étude de la vĂ©ritĂ© historique devraient rassurer les esprits chagrins. La famille n’est pas en pĂ©ril parce que les filles s’adonnent aux mĂȘmes Ă©tudes que les garçons et osent aspirer Ă  des carriĂšres libĂ©rales et scientifiques. Â» Le revenu qu’une jeune fille peut se procurer courageusement, dignement par son travail, Ă  l’aide des diplĂŽmes qu’elle a remportĂ©s dans les concours par son Ă©nergie, sont un appoint pour couvrir les dĂ©penses d’un mĂ©nage futur et assurer l’éducation libĂ©rale des enfants Ă  venir, qui facilite l’établissement des jeunes Ă©poux. Un diplĂŽme, c’est une dot dont la fiancĂ©e qui l’apporte dans une corbeille de mariage peut ĂȘtre justement fiĂšre, et, loin d’ĂȘtre un obstacle Ă  fonder une famille, c’est une valeur qui favorise le mariage.

Les outils des astronomes au XVIIIe siĂšcle

Il n’est pas possible de savoir ce que Nicole-Reine Lepaute utilisait pour ses calculs. Il est en revanche envisageable de dresser une liste des outils dont les astronomes disposaient pour explorer l’espace et calculer les mouvements des astres.

Pour observer et cataloguer les astres, les astronomes du 18e siĂšcle disposaient des lunettes d’astronomie. La paternitĂ© de leur invention est souvent attribuĂ©e Ă  GalilĂ©e qui a construit sa premiĂšre lunette en 1609. On trouve une premiĂšre description de ce type d’instrument dĂ©jĂ  en 1538 dans l’Homocentrica (texte-image en latin) de JĂ©rĂŽme Fracastor2. En 1608, l’opticien hollandais Hans Lippershey dĂ©pose un brevet pour des lunettes astronomiques qui lui sera refusĂ©, car :

il Ă©tait notoire que dĂ©jĂ  diffĂ©rentes personnes avaient eu connaissance de l’invention. L’optique par Fulgence Marion (texte-image) (source Gallica BnF).

On doit l’invention du tĂ©lescope Ă  Isaac Newton en 1668. Son idĂ©e Ă©tait d’ajouter un miroir : il fallait pour augmenter la puissance des lunettes astronomiques (et autres longues-vues et jumelles d’ailleurs) augmenter l’épaisseur de la lentille en perdant en prĂ©cision. L’ajout d’un miroir concave donne une meilleure qualitĂ© d’image et permet d’augmenter la taille des tĂ©lescopes. Est-ce que Lalande ou Nicole-Reine Lepaute pouvaient disposer d’un tĂ©lescope ? Dans l’EncyclopĂ©die des dames, Lalande mentionne un « un tĂ©lescope de trente deux pouces qui coĂ»te environ dix Louis Â» qui suffit pour « voir ce qu’il y a de plus singulier dans le ciel Â».

Concernant les outils de calcul : il ne fait aucun doute qu’elle a pu et dĂ» utiliser les diffĂ©rentes tables existantes. À son Ă©poque, on utilisait divers abaques pour compter, par exemple un systĂšme de jetons, utilisĂ© notamment dans le commerce. Il est possible qu’elle ait eu connaissance, en femme cultivĂ©e, de la Pascaline, voire, de la machine Ă  calculer de Leibniz. Mais il est peu probable qu’elle les ait utilisĂ©es, notamment parce que ces machines ont Ă©tĂ© peu diffusĂ©es. Elle a pu, en revanche, utiliser les bĂątons de Napier (francisĂ© en Neper). Et elle utilisait certainement la bonne vieille mĂ©thode du papier et du crayon ou plutĂŽt de la plume, ou « calcul indien Â» qui est celle que l’on apprend Ă  l’école actuellement. Cette mĂ©thode est arrivĂ©e en Europe au XIIe siĂšcle et a Ă©tĂ© adoptĂ©e par le monde scientifique assez rapidement mais pas dans les classes les moins instruites de la population.

Nicole-Reine Lepaute aurait pu aussi utiliser une rĂšgle Ă  calcul, les premiĂšres ont Ă©tĂ© inventĂ©es au XVIIe siĂšcle, mais elles n’ont vraiment commencĂ© Ă  s’implanter en France qu’au XIXe siĂšcle.

Janine Connes, l’astronome

Aussi paradoxal que cela puisse ĂȘtre, il y a encore moins d’élĂ©ments biographiques concernant Janine Connes que pour Nicole-Reine Lepaute. Son obituaire ne comporte aucun Ă©lĂ©ment informatif autre que le strict minimum (nom et date). En revanche, on a la liste de ses publications et on peut mĂȘme accĂ©der Ă  certaines.

De la spectroscopie infrarouge Ă  transformĂ©e de Fourier au centre de calcul d’Orsay

Janine Connes naĂźt en 1926. Elle Ă©pouse l’astronome Pierre Connes avec qui elle mĂšnera diverses recherches. Elle meurt le 28 novembre 2024 Ă  Orsay, presque centenaire (98 ans).

En 1954, son professeur, le physicien Pierre Jacquinot lui suggĂšre un sujet de thĂšse :

Il s’agissait de faire des TransformĂ©es de Fourier (TF) de 1 million de points.
Pierre Jacquinot faisait partie de mon jury cette annĂ©e-lĂ , et Ă  l’issue du concours il m’avait proposĂ© de faire une thĂšse dans son Laboratoire AimĂ© Cotton (LAC) alors spĂ©cialisĂ© en spectroscopie atomique et dĂ©veloppements instrumentaux. Le sujet proposĂ© Ă©tait la spectroscopie par transformation de Fourier qui thĂ©oriquement devait battre en rĂ©solution et en Ă©tendue spectrale tous les records des rĂ©seaux et des interfĂ©romĂštres de Fabry-Perot. (Janine Connes, in De l’IBM 360/75 au superordinateur Jean Zay, chapitre 1).

La spectroscopie infrarouge Ă  transformĂ©e de Fourier (IRTF ou FTIR en anglais) sur laquelle Janine Connes a basĂ© sa thĂšse est une mĂ©thode d’analyse basĂ©e sur les ondes infrarouges :

Ces ondes vont de 12 800 cm-1 Ă  10 cm-1 et sont divisĂ©es en trois groupes: le proche infrarouge, le moyen infrarouge et l’infrarouge lointain. La FTIR utilise quant Ă  elle le moyen infrarouge qui s’étend de 4 000 cm-1 Ă  400 cm-1 (2,5 Â”m Ă  25 Â”m).
Quand une onde infrarouge est envoyĂ©e sur une molĂ©cule, cette derniĂšre absorbe une partie de l’onde qui correspond aux liaisons prĂ©sentes dans la molĂ©cule. L’absorption du rayonnement infrarouge ne peut avoir lieu que si la longueur d’onde correspond Ă  l’énergie associĂ©e Ă  un mode particulier de vibrations de la molĂ©cule. (Spectroscopie infrarouge Ă  transformĂ©e de Fourier (FTIR), A. Bonneau, Association des ArchĂ©ologues du QuĂ©bec).

Comme on peut le voir, c’est une technique utilisĂ©e dans des domaines trĂšs diffĂ©rents, incluant donc l’astronomie. Sa thĂšse en Ă©tablira les principes en astronomie. Actuellement la :

mĂ©thode de Fourier conserve toutefois quelques niches spĂ©cifiques, comme dans le domaine de l’infrarouge lointain spatial ou pour la spectroscopie intĂ©grale de grands champs. La spectroscopie de Fourier en astronomie : de ses origines Ă  nos jours, Jean-Pierre Maillard, 21 dĂ©cembre 2017 (Observatoire de Paris).

La page qui lui est consacrĂ©e (en) sur le site CWP (Century Women to Physics) de l’UCLA (UniversitĂ© de Californie Ă  Los Angeles) indique que sa thĂšse, ainsi que ses publications suivantes, ont Ă©tĂ© d’une importance majeure et a posĂ© les bases de ce qui allait devenir un nouveau et important domaine de recherche qui rend les transformĂ©es de Fourier rapides et relativement courantes :

Janine Connes's analysis of the technique of Fourier Transform Infrared Spectroscopy was of major significance and laid the foundations of what was to grow into a significant new field. Her thesis work and subsequent publications gave in-depth theoretical analysis of numerous practical details necessary for this experimental technique to work. All the more remarkable is that her work predates the age of digital computers, which now make fast Fourier Transforms relatively routine. Mary R. Masson

En 1960, elle Ă©crit avec le physicien H. P. Gush une Étude du ciel nocturne dans le proche infra-rouge dans lequel les deux auteurs remercient notamment le ComitĂ© EuropĂ©en de Calcul Scientifique pour ses attributions d’heures de calcul Ă  l’ordinateur 704 I.B.M.

En 1961, elle publie une sĂ©rie de quatre articles, seule ou avec d’autres chercheurs : Études spectroscopiques utilisant les transformations de Fourier. Pour le professeur Ian McLean, fondateur du laboratoire infrarouge de l’UCLA, ce sont des « travaux fondamentaux d’une importance extrĂȘme pour le domaine Â». Le travail de Janine et de Pierre Conne sur les transformations de Fourier aura notamment permis Ă  Lewis Kaplan de dĂ©terminer, en 1966, la composition de l’atmosphĂšre de Mars (en).

ParallĂšlement Ă  cela, elle enseigne Ă  la facultĂ© de Sciences de Caen. En 1963, elle sera invitĂ©e avec Pierre Connes Ă  rejoindre le Jet Propulsion Laboratory de la NASA Ă  Pasadena. De retour en France, elle commencera par intĂ©grer le laboratoire de Meudon au poste de directrice adjointe avant de se voir confier en 1969 la crĂ©ation et la direction du Centre Inter-RĂ©gional de Calcul Électronique (CIRCÉ) Ă  Orsay.

En 1970, l’astronome Ruper Wildt la propose, avec son mari, Pierre Connes, et le physicien Robert Benjamin Leighton pour le prix Nobel de physique pour « leur dĂ©veloppement de la mĂ©thode de spectroscopie infrarouge Ă  transformĂ©e de Fourier Â». Le prix sera attribuĂ©, finalement, Ă  Louis NĂ©el.

En 2022, elle Ă©crit avec la participation de Françoise Perriquet : De l’IBM 360/75 au superordinateur Jean Zay 50 ans d’informatique au centre de calcul du CNRS d’Orsay.

Les ordinateurs de ses débuts et le centre Jean Zay

Ce sont l’IBM 704 et l’IBM 360/75 dont on va voir quelques caractĂ©ristiques techniques.

L’IBM 704 Ă©tait la plus grande machine du monde. Il avait fallu deux avions pour la transporter des États-Unis Ă  Orly. Son arrivĂ©e en France avait fait l’objet d’une Ă©mission de la Radio TĂ©lĂ©vision française (RTF). Le prĂ©sentateur interrogeait la personne chargĂ©e de rĂ©ceptionner l’ordinateur au titre de l’Institut europĂ©en de calculs scientifiques, une fondation IBM, destinĂ©e Ă  offrir aux scientifiques europĂ©ens (pas seulement français) la possibilitĂ© de procĂ©der Ă  des calculs, jusque-lĂ  peu envisageables.

Les mentions en italiques sont des citations tirĂ©es de l’émission.

L’IBM 704 pesait 21 tonnes. Celui reçu Ă  Orly Ă©tait composĂ© de « 25 unitĂ©s diffĂ©rentes constituants chacun autant de petits meubles de dimension normale Â». Ne sachant pas ce qu’est un meuble aux « dimensions normales Â», on peut se donner une idĂ©e de la taille des Ă©lĂ©ments en se rĂ©fĂ©rant aux photos : environ la profondeur et la largeur de, disons, une armoire normande, mais en moins haut, quelque chose entre 1,10 m et 1,60 m selon les Ă©lĂ©ments.

Il fonctionnait avec des bandes magnĂ©tiques et pouvait :

  • en physique, s’occuper du dĂ©pouillement de donnĂ©es de mesure,
  • faciliter l’exploitation de l’énergie atomique Ă  des fins pacifiques,
  • faire des calculs en chimie,
  • faire des calculs dans tous les domaines de l’industrie et de la science.

Dans l’émission de radio, le prĂ©sentateur demandait Ă  la fin un exemple de traitement que pouvait faire l’IBM :

Neper a passĂ© plus de trente ans de sa vie Ă  Ă©tablir les tables de logarithmes et l’ordinateur 704 pourrait exĂ©cuter le mĂȘme travail en le transcrivant sur des bandes magnĂ©tiques en dix-sept secondes Ă  peu prĂšs.

Sorti en 1954, c’est le premier ordinateur commercialisĂ© Ă  utiliser des commandes arithmĂ©tiques en virgule flottante entiĂšrement automatiques et ce grĂące Ă  John Backus qui avait insistĂ© pour que ce soit configurĂ© au niveau du matĂ©riel.

L’IBM 360/75 qui Ă©quipait CIRCÉ faisait partie d’une gamme d’ordinateurs interopĂ©rables et polyvalents IBM 360 dont le premier est sorti en 1966 (la numĂ©rotation des sĂ©ries d’ordinateurs chez IBM est Ă©tonnante). Les IBM 360 seront commercialisĂ©s jusqu’en 1978. Ce sont les premiers Ă  avoir utilisĂ© le systĂšme Solid Logic Technology (SLT). L’IBM 360/30 Ă©tait le plus lent de la sĂ©rie ; il pouvait exĂ©cuter jusqu’à 34 500 instructions par seconde avec une mĂ©moire allant de 8 Ă  64 ko. Le 360/75 est l’un des derniers de la sĂ©rie.

Ces ordinateurs Ă©taient Ă©videmment programmĂ©s en FORTRAN. D’ailleurs, le premier compilateur FORTRAN a Ă©tĂ© Ă©crit pour l’IBM 704.

Le centre Jean Zay, que l’on peut considĂ©rer comme l’un des successeurs de CIRCÉ a Ă©tĂ© inaugurĂ© en janvier 2020. C’est l’un des plus puissants centres de calcul d’Europe. Sa puissance est de 125,9 PĂ©taflop/s. Il a coĂ»tĂ© 40 M€, coĂ»te en Ă©lectricitĂ© 3 Ă  4 M€ par an et il requiert 93 tonnes d’équipement rĂ©parti sur 320 m2 (source MinistĂšre de l’enseignement et de la recherche). Il tourne sous Linux Ă©videmment, comme tous les supers calculateurs de sa gĂ©nĂ©ration.

Françoise Combes, l’astrophysicienne

Quelle diffĂ©rence y a-t-il entre les mĂ©tiers d’astronome et d’astrophysicien ? À cette question, wikidifference propose :

La diffĂ©rence entre astronome et astrophysicien est que « astronome Â» est celui ou celle qui s’occupe d’astronomie tandis que « astrophysicien Â» est [un ou une] scientifique qui Ă©tudie l’astrophysique, l’étude de l’espace et des propriĂ©tĂ©s des objets de l’univers.

Pas trĂšs convaincant, ni explicite. Les astronomes observent et cataloguent l’espace sur la base d’observations quand, en astrophysique, on se base sur les lois de la physique pour observer l’univers. En fait, Ă  l’heure actuelle, les personnes qui, au dĂ©part, Ă©taient astronomes sont maintenant des astrophysiciennes : la connaissance a Ă©voluĂ©, les mĂ©thodes de recherche aussi ainsi que les outils. Mais, Ă©videmment, les astronomes sont, ont Ă©tĂ© des scientifiques, souvent diplĂŽmĂ©s en physique.

De la physique galactique Ă  l’AcadĂ©mie des sciences

Françoise Combes naĂźt le 12 aoĂ»t 1952. En 1975, elle rĂ©ussit l’agrĂ©gation de physique ce qui l’amĂšnera Ă  enseigner Ă  l’École normale supĂ©rieure (ENS) dont elle est issue. Elle soutient sa thĂšse d’État Ă  Paris VII en 1980, sujet de la thĂšse : les dynamiques et les structures des galaxies. En 1985, elle devient sous-directrice du laboratoire de physique Ă  l’ENS (Ulm). Et c’est en 1989 qu’elle devient astronome Ă  l’Observatoire de Paris. Elle est, depuis 2014, titulaire de la chaire Galaxies et cosmologie au CollĂšge de France.

Pendant cette pĂ©riode, 1970 -1980, qui voit la naissance des premiĂšres simulations numĂ©riques des galaxies, elle a l’idĂ©e de les faire en trois dimensions au lieu des deux dimensions habituelles. Elle ainsi pu rĂ©soudre :

un mystĂšre jusqu’alors inexpliqué : la formation d’un bulbe (sorte de renflement) dans les galaxies spirales. La clĂ© de l’énigme est la barre centrale, sorte de forme allongĂ©e centrale oĂč toutes les Ă©toiles se rassemblent. « Cette barre soulĂšve les Ă©toiles dans la direction perpendiculaire au plan, explique-t-elle. De ce fait, les Ă©toiles ne restent pas confinĂ©es dans un disque trĂšs mince mais prennent de l’altitude, ce qui forme un bulbe. Â» Ses simulations ont aussi montrĂ© comment la mĂȘme barre prĂ©cipite le gaz vers le centre, ce qui a pour effet d’alimenter le trou noir central. MĂ©daille d’or, site CNRS.

Elle a Ă©tĂ© admise Ă  l’AcadĂ©mie des sciences3 en 2004, une acadĂ©mie dont elle assure la vice-prĂ©sidence pour le mandat 2023-2024 et qui l’élit Ă  la prĂ©sidence pour le mandat 2025-2026. Une Ă©lection qui devrait normalement ĂȘtre ratifiĂ©e par dĂ©cret par le prĂ©sident de la RĂ©publique. Ce sera la deuxiĂšme femme Ă  la tĂȘte de cette vĂ©nĂ©rable institution (elle a Ă©tĂ© crĂ©Ă©e en 1666) oĂč elle succĂšde Ă  Alain Fischer et trente ans aprĂšs la biochimiste Marianne Grunberg-Manago

Des prix prestigieux et des publications

Françoise Combes a engrangĂ© les prix et les distinctions au cours de sa carriĂšre Ă  commencer par le prix de Physique IBM qu’elle obtient en 1986 et le prix Petit d'Ormoy de l’AcadĂ©mie des Sciences en 1993. En 2001, le CNRS lui dĂ©cerne une mĂ©daille d’argent.

En 2009, elle obtient le prix Tycho Brahe de la SociĂ©tĂ© europĂ©enne d’astronomie (EAS) dont c’est la deuxiĂšme Ă©dition pour ses

travaux fondamentaux dans le domaine de la dynamique des galaxies, sur le milieu interstellaire dans les systĂšmes extragalactiques, sur les lignes d’absorption molĂ©culaire dans le milieu intergalactique et sur la matiĂšre noire dans l’Univers. Â» CommuniquĂ© de presse (en anglais) de l’EAS (pdf).

En 2017 la SociĂ©tĂ© Astronomique de France (SAF) lui dĂ©cerne son prix Jules-Janssen. En 2020, le CNRS lui dĂ©cerne une mĂ©daille d’or. L’annĂ©e suivante, elle obtient le prix international pour les femmes de sciences L’OrĂ©al-Unesco (en).

Elle est autrice ou co-autrice de plusieurs livres dont les plus rĂ©cents :

  • Le Big bang, PUF 2024, collection Que sais-je ?, en version papier (10 â‚Ź) et numĂ©rique (PDF et EPUB)
  • Trous noirs et quasars, CNRS Ă©ditions 2021, collection Les grandes voix de la recherche, en papier (8 â‚Ź), numĂ©rique PDF et EPUB sans DRM (5,99 â‚Ź) et audio (9,99 â‚Ź).

Par ailleurs, l’entretien qu’elle a donnĂ© au CollĂšge de France en fĂ©vrier 2024 est aussi tĂ©lĂ©chargeable en PDF.

Sources, références et remerciements

L’illustration de tĂȘte est la reproduction de la gravure originale des phases de l’éclipse (je l’ai redessinĂ©e avec Inkscape) et on peut la tĂ©lĂ©charger sur mon site de modĂšles ainsi d’ailleurs que le CV de Nicole-Reine Lepaute ou sur OpenClipart.

LinuxFr.org ne rend peut-ĂȘtre pas plus intelligent, mais la rĂ©daction de dĂ©pĂȘches pour le site rend indĂ©niablement plus savant. Pour cette dĂ©pĂȘche et compenser une grande ignorance du sujet, j’ai Ă©tĂ© amenĂ©e Ă  lire, consulter, parcourir ou Ă©couter un certain nombre de documents en plus de ce qui est citĂ© dans le corps de la dĂ©pĂȘche. À vous de voir si vous avez envie de poursuivre l’exploration.

Nicole-Reine Lepaute

Janine Connes

  • Spectroscopie du ciel nocturne dans l’infrarouge par transformation de Fourier. J. Connes, H.P. Gush, Journal de Physique et le Radium, 1959, 20 (11), pp.915-917. 10.1051/jphysrad:019590020011091500, jpa-00236163
  • Tous les articles de J. Connes sur HAL Science ouverte, Ă  savoir : il y a un site academia.eu, mieux rĂ©fĂ©rencĂ©, qui les propose moyennant une inscription au site, mais cela vient de HAL qui ne demande pas d’inscription (donc pas de courriel) pour le tĂ©lĂ©chargement des fichiers.
  • Principes & applications de la spectro. de Fourier en astronomie : de ses origines Ă  nos jours, Jean Pierre Maillard, 8 fĂ©vrier 2019, confĂ©rence mensuelle de la SociĂ©tĂ© astronomique de France (SAF)
  • De l’IBM 360/75 au superordinateur Jean Zay 50 ans d’informatique au centre de calcul du CNRS d’Orsay, EDP Sciences, il existe en version papier (39 â‚Ź), PDF et EPUB avec DRM LCP (26,99 â‚Ź), on peut le feuilleter aussi sur le site Cairn Info.
  • RĂ©ception Ă  l’aĂ©roport d’Orly de l’IBM 704 qui avait servi Ă  Janine Connes pour ses calculs, podcast France Culture, rediffusion d’une Ă©mission de 1957.
  • L’IBM 704
  • l’IBM 360 (es), Academia Lab (2024). SystĂšme IBM/360. EncyclopĂ©die. RĂ©visĂ© le 29 dĂ©cembre 2024.

Françoise Combes

L’histoire de l’astronomie

  • Les tĂ©lescopes, Gilles Kremer, Sylvie Voisin, 30 mars 2018
  • Histoire et patrimoine de l’Observatoire de Paris
  • Une histoire de l’astronomie, Jean-Pierre Verdet, Seuil 1990, il a fait l’objet d’une publication au format EPUB avec DRM LCP (9,99 â‚Ź) EAN : 9782021287929, mais on peut le trouver d’occasion assez facilement. Il est dotĂ© d’une bonne bibliographie et est plutĂŽt passionnant.

Remerciements

Un trĂšs grand merci Ă  vmagnin pour ses informations et ses prĂ©cisions, mĂȘme si je n’ai pas tout utilisĂ©. Mais ce n’est pas perdu, un prochain portrait probablement (voire, sĂ»rement).

Merci aussi Ă  Enzo Bricolo pour m’avoir signalĂ© l’élection de Françoise Combes Ă  la prĂ©sidence de l’AcadĂ©mie des sciences, sans ça je l’aurais ratĂ©e et ce serait dommage.

Ainsi se clĂŽt cette sĂ©rie sur les femmes et la conquĂȘte de l’espace ainsi que l’annĂ©e 2024. Et c’est mon cadeau de nouvelle annĂ©e.


  1. La Connaissance du temps, qui se targue d’ĂȘtre la plus ancienne publication d’éphĂ©mĂ©rides toujours publiĂ©e est actuellement gĂ©rĂ©e et publiĂ©e par l’IMCCE - Observatoire de Paris, la version 2025 vient de paraĂźtre et est tĂ©lĂ©chargeable en PDF. Elle est accompagnĂ©e d’un logiciel de calcul d’éphĂ©mĂ©rides dĂ©veloppĂ© pour Windows, Mac et Linux. â†©

  2. Source : Les lunettes astronomiques, 29 mars 2018, Sylvie Voisin et Gilles Kremer, Le Blog Gallica. â†©

  3. Une acadĂ©mie qui s’engage en faveur de libre accĂšs et dont les comptes rendus sont publiĂ©s depuis 2020 sous licence Creative commons CC BY – SA. â†©

Commentaires : voir le flux Atom ouvrir dans le navigateur

Tuxemon Tower 0 : sortie de la premiĂšre version !

19 décembre 2024 à 03:30

Tuxemon Tower 0 est un petit jeu vidĂ©o trĂšs sobre. Il est inspirĂ© des jeux PokĂ©mon classiques et consorts, mais il est 100% libre et ne cherche aucunement Ă  ĂȘtre un clone.

Sommaire

En bref

Qu'est-ce que Tuxemon Tower 0 ?

Tuxemon Tower 0 est un jeu vidéo de combats en tour par tour. Les combattants peuvent avoir un ou des types, ont des statistiques, et une ou plusieurs capacités. En gagnant assez d'expérience, ils montent de niveau et ainsi deviennent plus forts. Un genre simple et classique, mais efficace.

Et dans le cas de Tuxemon Tower 0, la rĂ©alisation est trĂšs basique. Cela est vrai autant du point de vue graphique que de celui du moteur. De plus, on accorde qu'on peut parfois juger que l'expĂ©rience des joueurs est mĂ©diocre (notamment car, hormis ĂȘtre meilleur que nous, vous allez devoir vous fader des combats juste pour avoir un niveau suffisant et on reconnaĂźt qu'il n'y a pas trop d'intĂ©rĂȘt ludique Ă  regagner le mĂȘme combat contre une dresseuse ou commettre un crime contre la biodiversitĂ© en enchaĂźnant Ă  gogo les crĂ©atures sauvages de la mĂȘme zone, mais augmenter la vitesse de dĂ©filement du texte et garder enfoncĂ© sur le bouton A permet d'Ă©courter le temps de mise Ă  niveau). Mais le jeu est court, donc il est escomptĂ© que la dĂ©couverte et la curiositĂ© qui l'accompagne permettent d'avoir une expĂ©rience agrĂ©able de ce mini-jeu.

Télécharger Tuxemon Tower 0

Le téléchargement des sources (code, images, etc.), de la documentation générée et des constructions pour certaines plateformes (distributions GNU/Linux et Windows) se fait via BitTorrent à travers un lien magnet. On promeut en effet la décentralisation et le fédéralisme, mais aussi la non-disponibilité permanente. De plus, ça oblige tout le monde à partager le coût (hormis les trackers, certes) et à avoir une copie des sources, tout en étant résilient.

Ce serait sympa de partager pendant l'obtention et aussi aprĂšs que ce soit fait. Et on prĂ©vient : on n'est que rarement Ă  la fois connectĂ© Ă  Internet (on n'a volontairement pas d'accĂšs chez nous) et en mesure de partager via BitTorrent (on ne veut pas faire ça au boulot et il faut que ce soit permis par le rĂ©seau), donc ayez de la patience (ou ne vous plaignez pas inutilement). C'est Ă©galement pour ça qu'on encourage fortement que vous continuez de partager le torrent aprĂšs l'avoir entiĂšrement obtenu et de prĂ©fĂ©rence sans ratio (puisqu'il n'est pas bien lourd Ă  la vue de la normalitĂ© actuelle, et est tout Ă  fait lĂ©gal, ça ne devrait pas vous ĂȘtre bien problĂ©matique).

Quelques clients BitTorrent libres

Au cas oĂč vous n'auriez pas de client BitTorrent (ou un qui soit propriĂ©taire), en voici quelques-uns qui sont libres :

Images du jeu

Images de cartes

Images de cartes

Images de combats

Images de combats

Images de menus

Images de menus

Comment contribuer ?

Avant d'éventuellement contribuer, n'oubliez pas plutÎt en priorité de faire des choses plus importantes. En effet selon nous, mieux vaut s'activer pour l'émancipation sociale universelle et tendre vers une société écologique que de contribuer à un jeu.

  1. Pour nous, la meilleure maniĂšre de contribuer est de mettre Ă  disposition des sprites pour des crĂ©atures et des dresseurs. En effet, nous sommes trĂšs mauvais pour produire ça et cela ajouterait de la diversitĂ© bienvenue (pendant que celle sur Terre s'effondre
). Si ça vous branche, faites-le en respectant le style des actuels, avec une taille adĂ©quate (64×64 et/ou 56×56 et/ou 48×48), et de prĂ©fĂ©rence en faisant l'avant et l'arriĂšre (car avec juste l'avant on ne peut pas jouer la crĂ©ature ou la personne dresseuse mais juste l'affronter), voire en vous restreignant Ă  4 couleurs (c'est lĂ  la contrainte ultime, mais qui serait utile pour Ă©conomiser de l'espace et deviendra nĂ©cessaire si un jour un port sur GameBoy Color est fait) et alternativement c'est dĂ©jĂ  ça si ça ne dĂ©passe pas la barre des 8 (qui va nous servir de transition entre 16 et 4, tout en permettant de rĂ©duire l'usage mĂ©moire avec une petite astuce ou de la compression plus poussĂ©e que nous ne ferons probablement pas).
  2. Nous n'avons pas l'intention de gĂ©rer une communautĂ© autour de ce jeu. C'est pourquoi nous n'avons pas mis le code source sur une forge et nous ne comptons pas le faire. Rien ne vous empĂȘche toutefois de faire une version dĂ©rivĂ©e et de la publier, peut-ĂȘtre que nous irons y piocher des trucs en vous crĂ©ditant si nous en avons connaissance.
  3. Bien sĂ»r, si vous voulez que nous intĂ©grions peut-ĂȘtre un jour une contribution, veillez Ă  la mettre sous une licence compatible quand vous n'y ĂȘtes pas de toute façon obligĂ© par le gauche d'auteur. Utilisez donc une licence libre, avec de prĂ©fĂ©rence la GNU AGPLv3+ pour le code source et la Creative Commmons BY-SA v4.0 pour le reste.
  4. Mais oĂč mettre ce que vous produisez ? Ça vous regarde. Mais, pour que ce soit visible, le wiki du projet Tuxemon est un bon endroit ou vous pouvez faire un commentaire ci-dessous (pointant par exemple vers votre dĂ©pĂŽt sur OpenGameArt).
  5. Si vous vous y connaissez en portage ou en packaging pour votre systĂšme favori, n'hĂ©sitez pas Ă  faire un joli paquet pour le jeu et Ă  tenter honnĂȘtement de le faire officiellement intĂ©grer. Toutefois, cela ne vaut pas pour Apple iOS, Google Play, Microsoft Store, Steam de Valve, Origin d'Electronic Arts, et consorts.
  6. Évidemment une autre forme de contribution est tout simplement de faire la promotion du jeu. Parlez-en !
  7. Enfin, il existe un moyen rudimentaire : partager le contenu du torrent, pour qu'il soit disponible le plus de temps possible. En effet, nous sommes trĂšs loin d'ĂȘtre en permanence avec un accĂšs Ă  Internet et nous n'ouvrons pas systĂ©matiquement notre client BitTorrent favori quand nous le sommes.

Le droit d'auteur

Les licences utilisées

Les conséquences

Remerciements

En plus long ?

Le comité éditorial de LinuxFr.org a jugé inappropriée la version longue qui était prévue et qui lui a été soumise. De plus, il a suggéré de feuilletonner l'annonce d'origine. Mais cela ne correspond pas à notre vision éditoriale et plus généralement notre vision anthropologique (le brouhaha communicationnel nous apparaßt comme néfaste et donc à ne surtout pas alimenter), et nous n'avons de toute façon pas envie d'y passer du temps (il y a pour nous bien plus important que ce petit jeu vidéo, dont la réalisation est plus pour nous un plaisir coupable qu'autre chose, à fortiori dans une phase trÚs nette de fascisation et d'écocide).

NĂ©anmoins l'annonce d'origine, qui contient bien plus d'explications, reste disponible. Dans le torrent, il y a les sources (sources.tar.xz) et dans celle-ci il y a l'annonce prĂ©vue Ă  la base (news/fr/version-1-0-0_annonce.md). Et si vous voulez la publier ailleurs (en mentionnant que nous en sommes Ă  l'origine et en diffĂ©renciant bien toute modification), en entier ou sous forme partielle, elle est sous licences libres (vous pouvez choisir celle qui vous convient le mieux) avec gauche d'auteur : Creative Commons BY-SA 3.0, Creative Commons BY-SA 4.0 et GNU GPL 3.0.

Données du jeu

Consultation en jeu

Dans le menu de lancement, proposant de dĂ©marrer une nouvelle partie ou d'en charger une existante, appuyez sur Start (ou plutĂŽt l'un des boutons qui y correspond si vous n'utilisez pas une manette ou qu'elle n'est pas reconnue ou pas bien). Cela vous fera changer de menu. Vous aurez alors une entrĂ©e « Explorer les donnĂ©es Â». Ce n'est pas parce que ça existe que c'est exhaustif.

Documentation HTML

Dans le torrent, avec les sources et les constructions, il y a de la documentation sous forme de fichiers HTML, que vous pouvez consulter avec un navigateur web. Vous pouvez aussi la regénérer depuis les sources. Comme pour la consultation en jeu, ce n'est pas nécessairement exhaustif, mais c'est déjà ça.

Images

Liste des créatures

Liste des créatures

Liste des dresseurs et dresseuses

Liste des dresseurs et dresseuses

Annexe : temps et motivation

Au début d'un projet personnel, la motivation est souvent grande. Mais tant qu'il n'y a pas quelque chose de finalisée, il est à priori courant que la motivation tende à décroitre. En tout cas, c'est notre cas.

C'est en partie pour cela que le jeu est trĂšs simple (systĂšme ultra-basique pour les cartes, pas de possibilitĂ© d'esclavagir, pas de statut, pas de possibilitĂ© de manipulation par le joueur/joueuse d'objets non-visuels, pseudo-alĂ©atoire en guise de non-intelligence artificielle, etc.). L'autre grosse partie de l'explication est la volontĂ© de faire de la basse technologie (d'oĂč entre autres que ce soit graphiquement en niveaux de gris, malgrĂ© des sprites avec des couleurs au-delĂ  de ce spectre) et la restante est l'ajout de complexitĂ© qui nuise Ă  l'expĂ©rience de la mĂ©canique du jeu en ajoutant du « bruit Â», mais ce n'est lĂ  pas le sujet.

Venir reprocher ou se plaindre de la trop grande simplicitĂ© du jeu (qu'il aurait fallu qu'il y ait ceci et cela, etc.) peut ĂȘtre en soi une critique pertinente. NĂ©anmoins, ça ferait totalement fi de l'aspect humain en ce qui concerne la production. En effet, si le jeu n'Ă©tait pas aussi basique, il ne serait probablement jamais sorti de par la baisse de motivation.

C'est pourquoi le jeu est volontairement trÚs simple. Mais c'est une fin en soi et une base. Tout ce qui a été fait pour la version 1.0.0 de ce jeu ne sera plus à faire pour une ou des éventuelles versions améliorées et un ou des éventuels autres jeux exploitant tout ou partie de ce qui a été réalisé pour celui-là.

Approximation de l'Ă©volution de la motivation

Dans le cadre du dĂ©veloppement de ce jeu, on utilise git, un logiciel de gestion de version. Tous les changements y sont consignĂ©s et datĂ©s. À partir des informations qu'il a enregistrĂ©es, il est donc possible d'avoir une idĂ©e de l'Ă©volution de la motivation.

Toutefois, on ne va pas vous livrer le dépÎt git (et on a expliqué pourquoi). Vous n'en aurez donc ci-aprÚs qu'une vue fort approximative, dont la génération a été faite par git-bars.

Il fournit une vue par mois du nombre de commits. C'est donc trĂšs approximatif. En effet, un commit peut avoir une taille trĂšs variable et ĂȘtre pour des changements importants ou mineurs. NĂ©anmoins, ça donne tout de mĂȘme une image plutĂŽt rĂ©aliste de l'Ă©volution de notre motivation.

On peut notamment bien voir que les dĂ©buts sont des pĂ©riodes fastes. Pour dĂ©but 2023, on peut constater que c'est assez peu garni, ce qui s'explique par la contre-rĂ©forme des retraites. Mais ça montre aussi un biais : en mars et en avril 2023, on n'a fait que des petits trucs pas bien importants, mais ça a engendrĂ© pas mal de commits.

Statistiques de commits par nous pour ce nouveau jeu

2024-11  61   ▀▀▀▀▀▀▀▀▀▀▀▀▀
2024-10  52   ▀▀▀▀▀▀▀▀▀▀▀
2024-09  45   ▀▀▀▀▀▀▀▀▀▀
2024-08  77   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2024-07  19   ▀▀▀▀
2024-06  34   ▀▀▀▀▀▀▀
2024-05  62   ▀▀▀▀▀▀▀▀▀▀▀▀▀
2024-04  126  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2024-03  59   ▀▀▀▀▀▀▀▀▀▀▀▀▀
2024-02  96   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2024-01  89   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2023-12  52   ▀▀▀▀▀▀▀▀▀▀▀
2023-11  78   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2023-10  117  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2023-09  224  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2023-08  106  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2023-07  87   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2023-06  56   ▀▀▀▀▀▀▀▀▀▀▀▀
2023-05  106  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2023-04  92   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2023-03  60   ▀▀▀▀▀▀▀▀▀▀▀▀▀
2023-02  10   ▀▀
2023-01  19   ▀▀▀▀
2022-12  34   ▀▀▀▀▀▀▀
2022-11  80   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2022-10  87   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2022-09  106  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2022-08  88   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2022-07  138  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2022-06  85   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2022-05  50   ▀▀▀▀▀▀▀▀▀▀▀
2022-04  28   ▀▀▀▀▀▀
2022-03  121  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2022-02  131  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2022-01  144  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-12  133  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-11  81   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-10  26   ▀▀▀▀▀
2021-09  35   ▀▀▀▀▀▀▀
2021-08  45   ▀▀▀▀▀▀▀▀▀▀
2021-07  85   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-06  5    ▀
2021-05  18   ▀▀▀▀
2021-04  55   ▀▀▀▀▀▀▀▀▀▀▀▀
2021-03  79   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-02  112  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-01  60   ▀▀▀▀▀▀▀▀▀▀▀▀▀

Statistiques de commits par nous pour Greycess Knight RPG

Greycess Knight RPG est la base de ce nouveau jeu. Il part donc du mĂȘme dĂ©pĂŽt git. Puisque des changements sont valables pour les 2 jeux, on les fait dans Greycess Knight RPG, ce qui occasionne des commits de fusion dans le nouveau jeu. De plus, en soustrayant les nombres de commits par mois de Greycess Knight RPG Ă  ceux du nouveau jeu, on peut avoir le nombre de commits qui touchent aux changements nĂ©cessaires au nouveau, ou du moins en partie puisqu'on fait parfois le changement dans le nouveau jeu avant de le mettre aussi dans l'ancien ou le (quasi-)mĂȘme changement dans les 2 pour faciliter la fusion. C'est pour ça qu'on met ci-aprĂšs les statistiques pour Greycess Knight RPG.

2024-11  17   ▀▀▀▀▀▀▀
2024-10  9    ▀▀▀▀
2024-09  4    ▀
2024-08  20   ▀▀▀▀▀▀▀▀
2024-07  1    
2024-06  8    ▀▀▀
2024-05  15   ▀▀▀▀▀▀
2024-04  34   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2024-03  3    ▀
2024-02  10   ▀▀▀▀
2024-01  12   ▀▀▀▀▀
2023-12  16   ▀▀▀▀▀▀▀
2023-11  15   ▀▀▀▀▀▀
2023-10  13   ▀▀▀▀▀
2023-09  29   ▀▀▀▀▀▀▀▀▀▀▀▀
2023-08  26   ▀▀▀▀▀▀▀▀▀▀▀
2023-07  25   ▀▀▀▀▀▀▀▀▀▀▀
2023-06  26   ▀▀▀▀▀▀▀▀▀▀▀
2023-05  25   ▀▀▀▀▀▀▀▀▀▀▀
2023-04  35   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2023-03  27   ▀▀▀▀▀▀▀▀▀▀▀▀
2023-02  4    ▀
2023-01  3    ▀
2022-12  9    ▀▀▀▀
2022-11  22   ▀▀▀▀▀▀▀▀▀
2022-10  15   ▀▀▀▀▀▀
2022-09  14   ▀▀▀▀▀▀
2022-08  27   ▀▀▀▀▀▀▀▀▀▀▀▀
2022-07  44   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2022-06  14   ▀▀▀▀▀▀
2022-05  16   ▀▀▀▀▀▀▀
2022-04  6    ▀▀
2022-03  22   ▀▀▀▀▀▀▀▀▀
2022-02  33   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2022-01  54   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-12  92   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-11  81   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-10  26   ▀▀▀▀▀▀▀▀▀▀▀
2021-09  35   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-08  45   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-07  85   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-06  5    ▀▀
2021-05  18   ▀▀▀▀▀▀▀▀
2021-04  55   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-03  79   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-02  112  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2021-01  60   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

Par ailleurs, comme vous pouvez le voir, ça a bougĂ© du cĂŽtĂ© de Greycess Knight RPG. Une version 1.0.2 est en cours. Mais du point de vue de l'expĂ©rience de jeu, elle n'apporte rien ou presque. Ce sera une mise Ă  jour technique : elle consistera essentiellement en une amĂ©lioration du code source (de diverses maniĂšres et Ă  divers endroits) et en une rĂ©duction par 3 de la taille du binaire sans la bibliothĂšque SDL2 statiquement liĂ©e (ce qui l'amĂšnera Ă  environ 250 ko grĂące Ă  la correction d'une erreur stupide).

Commentaires : voir le flux Atom ouvrir dans le navigateur

Haiku a 23 ans et un quart

La derniĂšre dĂ©pĂȘche annuelle sur les nouveautĂ©s dans Haiku a dĂ©passĂ© la longueur maximale tolĂ©rĂ©e par Linuxfr (et Ă©tĂ© finalement dĂ©coupĂ©e en plusieurs parties publiĂ©es sĂ©parĂ©ment). Aussi, les nouveautĂ©s sur Haiku seront dĂ©sormais publiĂ©es trimestriellement, pour faire face Ă  l’augmentation d’activitĂ© dans le projet.

Sommaire

Ce rapport est basĂ© sur les rapports mensuels d’activitĂ© d’aoĂ»t, septembre et octobre publiĂ©s sur le site de Haiku. Il couvre les changements de code survenus entre hrev57901 et hrev58291 de Haiku.

Certains des changements mentionnĂ©s dans ce rapport font partie des derniers dĂ©veloppements du mois d'aoĂ»t, et Ă©taient dĂ©jĂ  prĂ©sents dans la version R1 bĂȘta 5 qui a Ă©tĂ© publiĂ©e dĂ©but septembre 2024.

Les corrections de bugs sont appliquĂ©es sur la branche bĂȘta 5 si elle est concernĂ©e, mais les nouveaux dĂ©veloppements sont mis dans la branche principale et seront disponibles uniquement dans les « nighlty builds Â» (constructions journaliĂšres) puis dans la prochaine version, qui sera probablement Ă©tiquetĂ©e R1 bĂȘta 6.

La version R1 est trĂšs attendue, mais la feuille de route comporte toujours environ 600 bugs et demandes d’amĂ©lioration. Jusqu’à ce qu’ils soient tous traitĂ©s (corrigĂ©s, devenus obsolĂštes ou dĂ©placĂ©s vers une version plus tardive), Haiku continue de publier des versions bĂȘta.

Applications

Amélioration et corrections de textes de messages dans diverses applications (humdinger).

L’application Switcher — permettant de naviguer rapidement entre les diffĂ©rentes fenĂȘtres et applications Ă  l’aide d’un menu qui apparaĂźt lorsque la souris se trouve sur les bords de l’écran — peut Ă  nouveau ĂȘtre compilĂ©e. Cette application n’est pas terminĂ©e et non intĂ©grĂ©e dans Haiku par dĂ©faut pour l’instant (nephele).

Dans les préférences de disposition clavier, des icÎnes avaient disparu de certains menus suite à un problÚme dans une modification précédente. Ces icÎnes sont maintenant de retour (jscipione).

Les rĂ©glages de polices de caractĂšres de WebPositive peuvent faire des retours Ă  la ligne dans le texte d’exemple utilisĂ© pour visualiser la police choisie (correction rĂ©cupĂ©rĂ©e depuis la fenĂȘtre de rĂ©glage des polices du systĂšme, qui utilise une variante du mĂȘme code). (nipos).

Le raccourci clavier « muet » permet d’alterner entre l’activation et la dĂ©sactivation du son, au lieu de toujours passer en mode muet (korli).

Plusieurs applications pouvaient ouvrir leurs fenĂȘtres en dehors de l’écran si leur derniĂšre position enregistrĂ©e n’était pas bonne (aprĂšs un changement de rĂ©solution d’écran par exemple). L’appel de la fonction MoveOnScreen() aprĂšs la crĂ©ation d’une fenĂȘtre permet de rĂ©gler ce problĂšme (korli, pinaraf, waddlesplash).

Icon-O-Matic ouvre ses dialogues de sĂ©lection de fichiers dans le dossier oĂč se trouve l’icĂŽne en cours d’édition (nipos).

Il est possible de sélectionner une famille de polices directement dans FontDemo (nipos).

Améliorations du mode sombre

Modifications faites par nipos et nephele.

Depuis la version bĂȘta 5 de Haiku, il est beaucoup plus simple de configurer un thĂšme de couleurs dans Haiku (avec seulement 3 couleurs Ă  sĂ©lectionner, les autres Ă©tant calculĂ©es automatiquement).

Cependant, toutes les applications et contrĂŽles graphiques ne se comportent pas forcĂ©ment trĂšs bien, en particulier si on choisit une couleur de fond de fenĂȘtres sombre. Ce trimestre, on trouve donc des amĂ©liorations sur ColumnListView (contrĂŽle permettant l’affichage de donnĂ©es en listes, en arbre et en colonnes), et dans les applications Debugger, Mail (en particulier les marqueurs de portions de message citĂ©es), WebPositive, ResEdit, FontDemo, Cortex, Sudoku et Tracker (les fenĂȘtres de configuration des permissions de fichiers et de statut de copie de fichiers), ainsi que dans les prĂ©fĂ©rences de disposition clavier (couleur des touches de clavier affichĂ©es), et de configuration des Ă©crans et des Ă©crans de veille. Ces applications utilisaient encore quelques couleurs codĂ©es « en dur Â» qui ne s’adaptaient pas automatiquement au thĂšme choisi.

En outre, les formules de calcul utilisées pour générer le thÚme de couleurs ont été améliorées pour donner de meilleurs résultats dans le cas de couleurs sombres, assurant de conserver un bon contraste entre tous les éléments graphiques et une meilleure cohérence des couleurs.

AboutSystem

L’application AboutSystem donne quelques informations sur la machine (RAM, CPU), et surtout affiche les noms des dĂ©veloppeurs et les messages de copyright et clauses de licences obligatoires de logiciels libres qui sont embarquĂ©s dans Haiku.

Correction d’un crash Ă  cause d’une information de copyright mal enregistrĂ©e (madmax).

Mise Ă  jour des crĂ©dits Ă  l’occasion de la version Beta 5 : ajout des nouveaux membres de l’équipe, et passage dans la catĂ©gorie « anciens dĂ©veloppeurs » de certaines personnes qui ne participent plus pour l’instant. (waddlesplash).

DĂ©bogueur

Haiku est fourni avec un dĂ©bogueur graphique permettant d’investiguer facilement les problĂšmes dans les applications.

Waddlesplash a amĂ©liorĂ© le dĂ©sassembleur pour mieux dĂ©coder les adresses mĂ©moire calculĂ©es Ă  partir de la valeur d’un registre CPU. La correction a Ă©tĂ© remontĂ©e dans la bibliothĂšque tierce Zydis, utilisĂ©e pour le dĂ©sassemblage.

Il a Ă©galement modifiĂ© le code du Debugger pour ne pas essayer de tĂ©lĂ©charger des informations de debug lorsque l’outil est lancĂ© en mode non-interactif (dans le cas d’une test suite automatisĂ©e par exemple). Plusieurs autres problĂšmes qui pouvaient causer un plantage du debugger ou un blocage dans un Ă©tat invalide (avec l’application qui ne s’arrĂȘte jamais) ont Ă©tĂ© Ă©galement traitĂ©s.

DriveSetup

L’outil DriveSetup permet de modifier la table de partitions et de formater les partitions avec diffĂ©rents systĂšmes de fichiers.

Pour les partitions de type « Intel » (MBR), lorsqu’on crĂ©e une premiĂšre partition, par dĂ©faut elle est marquĂ©e automatiquement comme partition active. Auparavant il fallait cocher une case pour cela, et de nombreux utilisateurs oubliaient de le faire, ce qui pouvait rendre le systĂšme impossible Ă  dĂ©marrer (korli).

Dans certains messages, le nom des partitions n’était pas mis entre guillemets, ce qui pouvait prĂȘter Ă  confusion avec des noms de partitions choisis maladroitement (ou judicieusement, selon de quel point de vue on se place). Maintenant le nom de la partition est clairement identifiable dans le message (humdinger).

HaikuDepot

HaikuDepot est le frontal graphique du gestionnaire de paquets de Haiku. L’application est maintenue par apl et se compose d’une interface graphique native dĂ©veloppĂ©e en C++ et d’un webservice dĂ©veloppĂ© en Java qui permet de stocker des mĂ©tadonnĂ©es supplĂ©mentaires sur les paquets : captures d’écrans, notes et revues des utilisateurs, liste des paquets Ă  mettre en avant.

  • Refactoring du « language model Â», de la gestion des chemins, de la rĂ©cupĂ©ration des donnĂ©es des paquets, de l’affichage des auteurs de paquets, de la gestion des notes donnĂ©es par les utilisateurs. (apl)
  • FenĂȘtre des conditions d’utilisation: correction de la couleur du texte, correction d’un crash si on clique dans la fenĂȘtre avant que le texte soit chargĂ©. (apl et jscipione)
  • Le bouton « Ouvrir » permettant de lancer une application installĂ©e ne fonctionnait pas toujours (apl).
  • AmĂ©lioration de la sĂ©lection d’un icĂŽne par dĂ©faut pour les paquets qui n’ont pas d’icĂŽne inclus (apl).

La liste de paquets mis en avant a Ă©tĂ© revue, un nouveau mainteneur (Michel) se charge de la tenir Ă  jour avec des rĂšgles mieux dĂ©finies : une sĂ©lection d’applications populaires (sur suggestion de participants aux forums de discussion) ainsi que des applications mises Ă  jour rĂ©cemment. Si vous utilisez Haiku, n’hĂ©sitez pas Ă  passer un peu de temps Ă  Ă©valuer et noter les applications, peu de personnes le font et il est difficile d’exploiter les donnĂ©es de façon pertinente si beaucoup d’applications n’ont reçu qu’un seul vote.

Horloge

L’application horloge permet d’afficher l’heure (sans surprise). Elle propose diverses apparences de cadrans, peut ĂȘtre redimensionnĂ©e, et incrustĂ©e dans le bureau sous forme d’un replicant.

Un bug dans l’application conduisait Ă  afficher une heure alĂ©atoire (non initialisĂ©e) pendant quelques centiĂšmes de secondes au dĂ©marrage avant de commencer Ă  afficher l’heure courante (OscarL)

Les aiguilles de l’horloge Ă©taient dĂ©calĂ©es de quelques pixels et ne pointaient pas prĂ©cisĂ©ment lĂ  ou elles devraient (dovsienko).

Tracker

Tracker est le gestionnaire de fichiers de Haiku. Il affiche le bureau et toutes les fenĂȘtres de navigation et de recherche de fichiers. Il se distingue par son utilisation de la navigation dite « spatiale Â», oĂč chaque dossier s’ouvre dans une fenĂȘtre sĂ©parĂ©e dont la taille et la position Ă  l’écran sont mĂ©morisĂ©es.

jscipione continue son travail d’amĂ©lioration du Tracker (cela comporte de nombreux changements qui sont encore en gestation). Ce trimestre, les changements intĂ©grĂ©s permettent :

  • la dĂ©sactivation d’entrĂ©es du menu « Nouveau » lorsque les opĂ©rations ne sont pas disponibles,
  • la mise Ă  jour dynamique de certains menus en fonction des opĂ©rations disponibles,
  • la prĂ©servation de la sĂ©lection aprĂšs une opĂ©ration de copie oĂč de dĂ©placement (avec quelques problĂšmes d’affichage corrigĂ©s au passage),
  • des corrections de bug sur le choix de couleurs utilisĂ©es dans la fenĂȘtre « Ouvrir avec »,
  • la possibilitĂ© de crĂ©er un lien symbolique lorsqu’on fait un drag and drop depuis un dossier virtuel,
  • utilisation de la police de caractĂšres « menu » de façon cohĂ©rente dans tous les menus.

Il a Ă©galement travaillĂ© sur des tĂąches de fond, sans changements visibles pour l’instant. Le code du Tracker provient de BeOS et est un peu vieillissant. Il est souvent nĂ©cessaire de faire beaucoup de nettoyage avant de pouvoir dĂ©velopper de nouvelles fonctionnalitĂ©s sans casser autre chose. Cette fois-ci, on trouve entre autres une refonte de la gestion des raccourcis claviers, la fermeture automatique des fenĂȘtres en double lors du passage en mode « navigation spatiale », et divers crashs liĂ©s Ă  la gestion des menus popup.

humdinger a également travaillé sur le Tracker pour améliorer certains messages concernant la copie et la création de fichiers, pour les rendre plus faciles à traduire.

humdinger a Ă©galement travaillĂ© sur l’organisation du menu « templates » (affichĂ© quand on fait un clic droit -> nouveau
 et permettant de crĂ©er diffĂ©rents types de fichiers Ă  partir de fichiers de rĂ©fĂ©rence). Ce menu peut maintenant ĂȘtre organisĂ© en plusieurs sous-menus Ă  l’aide d’une nouvelle option « New template folder », pour les personnes qui utilisent cette fonctionnalitĂ© avec de nombreux fichiers de rĂ©fĂ©rence au point d’avoir besoin de les organiser.

La fenĂȘtre de requĂȘtes (recherche de fichiers en fonction de leurs attributs Ă©tendus indexĂ©s dans le systĂšme de fichiers) permet maintenant d’afficher en temps rĂ©el les rĂ©sultats lorsqu’on Ă©dite une requĂȘte. En outre, il est possible de filtrer les rĂ©sultats pour afficher uniquement les fichiers contenus dans un rĂ©pertoire donnĂ© (auparavant, on pouvait au mieux restreindre par volume disque). Ces changements ont Ă©tĂ© rĂ©alisĂ©s dans le cadre du Google Summer of Code par CalistoMathias, avec Ă©galement une participation de jscipione, humdinger et waddleplash pour finaliser le travail.

Correction d’un crash du Tracker lors de changements de rĂ©solution d’écran (OscarL).

Terminal

Le Terminal permet d’exĂ©cuter des applications en ligne de commande.

Lors du changement de la taille de texte du Terminal, ce dernier ajuste le nombre de lignes et colonnes de texte visibles, au lieu de redimensionner sa fenĂȘtre (nipos).

Prise en compte de la sĂ©quence d’échappement ANSI pour effacer l’historique de dĂ©filement (CodeForEvolution).

PowerStatus

L’application PowerStatus affiche des informations sur les batteries pour les ordinateurs portables.
sen a effectué plusieurs améliorations pour les systÚmes avec plusieurs batteries:

  • Gestion de plusieurs emplacements pour batteries qui ne sont pas forcĂ©ment tous utilisĂ©s,
  • Meilleur calcul des alertes de batterie faible,
  • Prise en compte de la dĂ©connexion de batteries pendant le fonctionnement du systĂšme.

Outils en ligne de commande

La commande profile (qui permet d’analyser les performances d’autres applications et du systĂšme) peut maintenant afficher le nombre d’évĂšnements qui n’ont pas pu ĂȘtre enregistrĂ©s par l’analyseur systĂšme (waddlesplash).

La commande package_repo update (utilisée pour mettre à jour un dépÎt de paquets avec de nouveaux logiciels) peut maintenant fonctionner sans avoir accÚs au contenu complet des fichiers packages à inclure dans le dépÎt (seuls les noms des paquets et quelques autres métadonnées sont réellement nécessaires).

La commande package_repo list dispose d’une option -f pour afficher le nom de fichiers correspondant aux paquets contenus dans un dĂ©pĂŽt de paquets. Les fichiers peuvent ainsi ĂȘtre tĂ©lĂ©chargĂ©s facilement par un outil tiers. (waddlesplash)

Ces deux modifications sont utiles en particulier pour la ferme de build de HaikuPorts, qui souhaite hĂ©berger les fichiers dans des buckets S3 afin de simplifier l’infrastructure et de rĂ©duire les coĂ»ts de fonctionnement.

Amélioration du format de sortie de la commande launch_roster pour indiquer le statut des services et pas simplement leur nom (kallisti5 + waddlesplash).

Ajout dans strace du décodage des drapeaux de configurations de mutex (par exemple MUTEX_SHARED) (waddlesplash).

Serveurs

Les serveurs sont des applications fonctionnant en tùche de fond et qui implémentent une grande partie des fonctionnalités du systÚme.

app_server

app_server est le serveur graphique qui se charge de l’affichage du bureau et des fenĂȘtres.

madmax a travaillĂ© sur la gestion des polices de caractĂšres: correction de problĂšmes de verrouillage pour Ă©viter des accĂšs concurrents au gestionnaire de polices par plusieurs fils d’exĂ©cution, amĂ©lioration du traitement de l’ajout et du retrait de polices, et une optimisation pour Ă©viter de scanner deux fois de suite les dossiers de polices au dĂ©marrage.

waddlesplash a complĂ©tĂ© ce changement en dĂ©plaçant une partie du code de gestion des polices pour Ă©viter que d’autres parties de l’exĂ©cution soient bloquĂ©es par l’initialisation des polices, qui peut prendre beaucoup de temps (quelques secondes) au dĂ©marrage du systĂšme.

waddlesplash a corrigĂ© un problĂšme de calcul de dĂ©lai d’expiration (probablement sans consĂ©quence, dĂ©couvert par hasard en investiguant un autre problĂšme).

jscipione a corrigĂ© un problĂšme de rafraĂźchissement de l’affichage lorsque des fenĂȘtres sont empilĂ©es, qui pouvait conduire Ă  ne pas bien effacer la barre de titre dans certains cas.

Un clic simple sur le coin bas-droite de la fenĂȘtre (coin de redimensionnement) dĂ©clenchait par erreur une minimisation de la fenĂȘtre concernĂ©e (madmax).

media_server

Le media_server prend en charge les flux audio et vidĂ©o et permet de router ces flux entre diffĂ©rentes applications ainsi que depuis et vers le matĂ©riel (cartes son, cartes d’acquisition vidĂ©o, webcams
).

Travaux effectués par waddlesplash:

Correction de problĂšmes de calculs de temps dans le mixeur audio (problĂšmes dĂ©couverts suite Ă  l’amĂ©lioration de la dĂ©tection d’erreurs dans BTimeSource, mentionnĂ© plus haut), et ajout de contrĂŽles d’intĂ©gritĂ© supplĂ©mentaires lors du dĂ©marrage du mixeur.

Cela corrige plusieurs bugs qui faisaient que le systĂšme n’avait pas de son au dĂ©marrage pendant un certain temps, avant que soudainement ça se mette Ă  fonctionner.

D’autre part, des amĂ©liorations de performance sur la programmation des Ă©vĂšnements, et des corrections de crash sur la connexion et dĂ©connexion des nƓuds mĂ©dia vers la sortie audio, et sur le nƓud multi-audio avec certaines cartes sons qui exposent des types de contrĂŽles invalides.

D’autres changements sont en cours pour pouvoir changer la sortie audio sans avoir besoin de redĂ©marrer le serveur mĂ©dia, mais ça ne fonctionne pas encore.

registrar

Le registrar surveille quelles sont les applications déjà lancées et fournit divers services de communication entre applications, en particulier pour le presse-papier.

Ajout de vĂ©rification d’erreurs si un message de rĂ©cupĂ©ration du contenu du presse-papier Ă©choue. Cela peut arriver si on a mis beaucoup de donnĂ©es dans le presse-papier et qu’il n’y a plus assez de mĂ©moire disponible.

Des corrections du cĂŽtĂ© de la libbe permettent maintenant de gĂ©rer ces erreurs et de ne pas faire planter l’application concernĂ©e.

input_server

L’input_server` se charge des pĂ©riphĂ©riques d’entrĂ©e (clavier, souris
)

AmĂ©liorations la validation des donnĂ©es des fichiers de configuration de souris, qui dans certains cas pouvaient empĂȘcher la souris de fonctionner. Refonte de la gestion des accĂšs concurrents Ă  la liste des pĂ©riphĂ©riques, pour supprimer des verrous inutiles et permettre les accĂšs Ă  la liste mĂȘme si un thread de gestion d’un pĂ©riphĂ©rique est bloquĂ©. (madmax)

Les codes de touches pour la touche power et la touche \_ des claviers japonais s’étaient retrouvĂ©s assignĂ©es Ă  des valeurs identiques (cela semble provenir tout droit de changements datant de BeOS, car ces touches non prĂ©sentes sur un clavier de PC amĂ©ricain classiques sont assez mal documentĂ©es). La documentation a Ă©tĂ© mise Ă  jour pour mieux expliquer quels sont les codes utilisĂ©s, et les diffĂ©rents pilotes (PS2, USB) ont Ă©tĂ© harmonisĂ©s pour utiliser les mĂȘmes codes (x512 et PulkoMandy).

Le code power pourra Ă©galement ĂȘtre utilisĂ© par un pilote GPIO sur les machines oĂč c’est nĂ©cessaire (souvent non compatibles PC).

net_server

Le net_server se charge de toutes les opérations liées au réseau.

mmlr a corrigé un problÚme dans le client DHCP, qui utilisait certaines variables sans les initialiser.

package_daemon

Le package_daemon vĂ©rifie la cohĂ©rence des paquets installĂ©s avec leurs dĂ©pendances, crĂ©e les dossiers de transactions et de sauvegarde de l’état passĂ© du systĂšme, et se charge de lancer les scripts d’activation et de dĂ©sactivation de paquets. L’accĂšs au contenu des paquets est en revanche traitĂ© dans le noyau par le systĂšme de fichier packagefs.

Changement des couleurs des fenĂȘtres « problĂšmes » et « rĂ©sultats » qui apparaissent quand il y a des conflits ou d’autres problĂšmes de rĂ©solution de dĂ©pendances lors de l’activation des paquets (jscipione).

Kits

Les « kits » sont les composants de la bibliothĂšque standard de Haiku. Il s’agit principalement d’une convention de documentation et d’organisation de code source pour regrouper des fonctionnalitĂ©s liĂ©es entre elles.

Interface

L’interface kit` permet l’ouverture de fenĂȘtre et l’ajout de contrĂŽles d’interface graphiques Ă  l’intĂ©rieur de ces derniĂšres.

Les objets BBitmap (permettant de stocker une image « raster ») avec le flag ACCEPT_VIEWS (permettant d’attacher une « vue" pour dessiner dans le bitmap ne sont plus automatiquement effacĂ©s. Cela permet de crĂ©er un bitmap Ă  partir de donnĂ©es existantes, puis de dessiner autre chose par-dessus. Ce changement corrige un problĂšme de compatibilitĂ© avec BeOS, et permet aussi d’utiliser cette mĂ©thode dans l’implĂ©mentation de WebKit pour Haiku (ZardShard).

Un changement prĂ©cĂ©dent avait causĂ© un problĂšme de compatibilitĂ© d’API avec BeOS, qui dĂ©clenchait dans certains cas une rĂ©cursion infinie et un crash lorsqu’on essayait de faire dĂ©filer une BListView par glisser-dĂ©placer (par exemple dans l’application Wonderbrush). Waddlesplash a corrigĂ© ce problĂšme, et jscipione a Ă©galement ajoutĂ© quelques amĂ©liorations sur la mise Ă  jour des items sĂ©lectionnĂ©s lorsqu’on effectue cette opĂ©ration.

Il est maintenant possible d’afficher des « checkmarks » (coche indiquant une option activĂ©e) sur les items de menus disposĂ©s en « matrice ». Habituellement les menus sont soit disposĂ©s sur une ligne, soit sur une colonne avec les items les un au-dessous des autres. Le mode « matrice » permet de s’affranchir de ces restrictions pour disposer les items librement avec du code applicatif.

Mise Ă  jour en direct des couleurs dans les contrĂŽles BSpinner, refonte de l’hĂ©ritage des couleurs de la vue parente, et changement de la couleur de fond des boutons en mode sombre (jscipione).

Centrage vertical des dates dans BCalendarView (permettant d’afficher un calendrier) (nipos).

Factorisation de code dans BView pour l’envoi des donnĂ©es BShape vers app_server (x512).

La méthode de debug BPoint::PrintToStream affiche maintenant les coordonnées avec des décimales, permettant de détecter les points qui ne sont pas alignés avec la grille de pixels (ayu-ch).

Les boĂźtes de texte marquĂ©es comme « invalides » ont maintenant un fond rouge. La bordure rouge utilisĂ©e prĂ©cĂ©demment n’était pas assez visible (nephele).

Media

Le media kit permet aux applications de s’interfacer avec le media server, et fournit en plus une interface standardisĂ©e pour les codecs audio et vidĂ©o.

Ajout d’assertions dans la classe BTimeSource pour empĂȘcher les applications d’envoyer des temps avec un « drift » infĂ©rieur ou Ă©gal Ă  0. Le « drift" est utilisĂ© comme multiplicateur et diviseur dans les calculs d’horloge, donc les valeurs infĂ©rieures ou Ă©gales Ă  0 causent des problĂšmes. Ceci a Ă©tĂ© mis en Ă©vidence par des corrections au niveau du noyau (voir plus loin dans la dĂ©pĂȘche) et a ensuite permis de trouver encore d’autres problĂšmes en particulier dans les add-ons media (waddlesplash).

Locale

Le « locale Â» kit permet la traduction des applications, le formatage des nombres en fonction des prĂ©fĂ©rences de chaque pays, la gestion des fuseaux horaires, et toutes les autres problĂ©matiques liĂ©es Ă  l’internationalisation. Il s’agit principalement d’un enrobage de la bibliothĂšque ICU pour faciliter son utilisation avec les types natifs de Haiku.

Meilleure gestion des erreurs si la bibliothĂšque ICU ne peut pas ĂȘtre initialisĂ©e (waddlesplash).

Support

Le support kit contient diverses méthodes et classes utilitaires et génériques.

ContrĂŽle d’intĂ©gritĂ© des donnĂ©es lors de la dĂ©serialisation de BMessage (waddlesplash).

Correction d’incohĂ©rence de nommage de paramĂštres de fonction entre les fichiers .cpp et .h dĂ©tectĂ©s par cppcheck (mt).

Pilotes de périphériques

Les pilotes sont indispensables pour assurer le fonctionnement de Haiku sur une grande variĂ©tĂ© de matĂ©riel. Certains sont dĂ©veloppĂ©s Ă  partir des spĂ©cifications du matĂ©riel spĂ©cifiquement pour Haiku, et d’autres ont Ă©tĂ© adaptĂ©s de travaux rĂ©alisĂ©s pour d’autres systĂšmes d’exploitation.

Le niveau de logging par défaut a été abaissé dans certains pilotes afin de ne pas trop polluer le journal systÚme, en particulier:

  • Suppression de messages indiquant qu’aucun matĂ©riel compatible avec le pilote n’a Ă©tĂ© dĂ©tectĂ©,
  • Suppression de certains logs de debug dans les pilotes audio HDA et usb_audio.

Processeurs et Ă©conomie d’énergie

Renommage du pilote intel_cstates en x86_cstates puisque les processeurs récents de chez AMD sont également pris en charge par ce pilote.

Appel Ă  ce pilote Ă  plus d’endroits dans le noyau pour mettre les processeurs en veille ou au ralenti quand ils ne sont pas utilisĂ©s.

RĂ©seau

virtio_net

Le pilote virtio_net (carte rĂ©seau utilisĂ©e dans les machines virtuelles) implĂ©mente maintenant le « checksum offloading » pour les protocoles IP, TCP et UDP. En effet, dans le cas de ce pilote, les vĂ©rifications et calculs de sommes d’intĂ©gritĂ© doivent ĂȘtre faits de toutes façons du cĂŽtĂ© de la machine hĂŽte, il est donc inutile de les refaire dans la machine virtuelle.

Au passage, correction de quelques erreurs dans ce driver, et en particulier de problÚmes de calcul de taille de buffers en mémoire.

broadcom750x

Utilisation des interruptions par messages (MSI) lorsque c’est nĂ©cessaire pour certaines versions du matĂ©riel (waddlesplash).

 vmxnet

Nouveau pilote portĂ© depuis FreeBSD qui permet d’utiliser l’interface rĂ©seau paravirtualisĂ©e de VMWare (CodeForEvolution).

 Couches de compatibilitĂ© BSD

Haiku utilise des pilotes réseau venus de FreeBSD et OpenBSD, cela permet de mutualiser les ressources et de ne pas perdre du temps à réinventer la roue. Une couche de compatibilité permet de réutiliser les pilotes avec trÚs peu de modification dans leur code et une simple recompilation.

Cette approche est Ă©galement utilisĂ©e par d’autres systĂšmes d’exploitation comme RTEMS.

La couche de compatibilitĂ© a reçu des corrections de problĂšmes sur l’allocation de mĂ©moire dĂ©diĂ©e aux transferts DMA, ainsi qu’un problĂšme sur le calcul de la taille d’un buffer de rĂ©ception, qui empĂȘchait les pilotes de fonctionner sur certains matĂ©riels.

 TCP

Waddlesplash a travaillĂ© sur l’amĂ©lioration de l’implĂ©mentation de TCP :

  • Refonte de la gestion des ACK reçus dans le dĂ©sordre,
  • AmĂ©lioration du code de dĂ©bogage pour investiguer des crashs du noyau remontĂ©s par quelques utilisateurs,
  • Modification du code de mise Ă  jour de la taille de fenĂȘtre TCP pour Ă©viter d’envoyer inutilement des changements de taille,
  • Correction de calcul du temps d’aller-retour,
  • ImplĂ©mentation du redimensionnement dynamique de la fenĂȘtre de rĂ©ception (auparavant, elle Ă©tait de taille fixe),
  • Ajout d’assertions Ă  divers endroits dans la pile rĂ©seau pour dĂ©tecter les problĂšmes Ă  la source.

Ces amĂ©liorations permettent au trafic TCP d’ĂȘtre au moins 10 fois plus rapide, selon le type de connexion utilisĂ©, et rĂšgle un problĂšme de lenteur des tĂ©lĂ©chargements depuis Haiku qui Ă©tait prĂ©sent depuis assez longtemps.

 Ethernet

Du cĂŽtĂ© d’Ethernet, quelques amĂ©liorations et nettoyages sur le calcul de la MTU (taille maximale d’un paquet qui peut ĂȘtre envoyĂ©). Pour l’instant, la dĂ©couverte du « path MTU », la MTU du chemin complet entre deux machines, n’est pas encore disponible. Haiku ne s’autorise donc pas Ă  envoyer du trafic plus large qu’une trame Ethernet standard, mĂȘme si cela pourrait ĂȘtre possible pour le rĂ©seau local. Il reste donc une amĂ©lioration potentielle des performances rĂ©seau dans certains cas.

 UNIX domain sockets

Les sockets UNIX sont une mĂ©thode de communication entre processus standardisĂ©e par POSIX, utilisĂ©e surtout par des logiciels portĂ©s depuis d’autres systĂšmes (les applications natives pour Haiku utiliseront plus volontiers des BMessages ou des ports).

AmĂ©lioration et nettoyage du code autour de la gestion des donnĂ©es annexes dans les sockets UNIX. Correction de petites fuites de mĂ©moire et d’un kernel panic qui pouvait se produire lors de la fermeture d’un socket (waddlesplash).

USB

ImplĂ©mentation de l’USB « Super Speed Plus », qui permet des connexions USB avec un dĂ©bit pouvant atteindre 10 gigabits par seconde (korli).

Refonte et consolidation du comptage de rĂ©fĂ©rences dans la pile USB, ce qui met en Ă©vidence sous forme de kernel panic des cas oĂč les choses ne sont pas bien faites. Ce n’est pas agrĂ©able, mais c’est tout de mĂȘme mieux qu’une corruption mĂ©moire difficile Ă  investiguer (waddleplash).

DĂ©codage des descripteurs USB Audio v2 dans la commande listusb, mais pas encore dans le pilote usb_audio qui implĂ©mente pour l’instant seulement la version 1 (gscrain).

PCI

Correction de problĂšmes d’accĂšs au bus PCI sur les machines Ă©quipĂ©es de ACPI. Suite Ă  une modification prĂ©cĂ©dente, les accĂšs sur 8 ou 16 bits Ă©taient convertis en accĂšs sur 32 bits, mais ce n’est pas le comportement attendu. En particulier, certains registres effacent automatiquement leur contenu lorsqu’ils sont lus, ou bien les donnĂ©es accessibles en lecture et en Ă©criture ne sont pas les mĂȘmes. (PulkoMandy)

Il n’est donc pas possible de lire une valeur sur 32 bits, remplacer 8 bits, et rĂ©Ă©crire 32 bits pour simuler une Ă©criture sur 8 bits dans un registre.

Les accĂšs sont Ă  nouveau traitĂ©s correctement, ce qui permet Ă  Haiku de fonctionner Ă  nouveau normalement sur les machines concernĂ©es par ce type d’accĂšs au bus PCI (cela dĂ©pend du matĂ©riel et des pilotes).

Périphériques de stockage

Petites améliorations de performances dans le pilote NVMe (waddlesplash).

Modification du pilote AHCI/SATA (waddlesplash) :
- Suppression de code dupliquĂ© pour utiliser Ă  la place des fonctions communes partagĂ©es avec d’autres pilotes,
- Correction d’une confusion entre adresses 32 et 64 bits qui empĂȘchait de dĂ©marrer la version 32
bits de Haiku sur certains systĂšmes avec plus de 4Gio de RAM.

La pile SCSI prend mieux en compte les restrictions sur les adresses DMA. Chaque pilote de pĂ©riphĂ©rique qui implĂ©mente SCSI peut indiquer ce qu’il est capable de faire, et la pile SCSI fait en sorte que les demandes de transferts DMA respectent ces contraintes, ce qui Ă©vite aux pilotes de devoir dĂ©couper par eux-mĂȘmes les transferts en unitĂ©s qu’ils sont capables de traiter (waddlesplash).

ACPI

ACPI est une interface standardisĂ©e avec le matĂ©riel. Elle permet la gestion d’énergie (extinction de la machine par exemple), ainsi que l’accĂšs Ă  du matĂ©riel annexe tels que les boutons on/off, la dĂ©tection de rabat de l’écran sur un PC portable, le contrĂŽle des LEDs indicatrices ; ainsi que la dĂ©couverte de matĂ©riel non connectĂ© sur le bus PCI (comme certains modules eMMC dans des tablettes et ordinateurs Ă  bas coĂ»t).

La spĂ©cification Ă©tant assez complexe, la bibliothĂšque ACPICA est utilisĂ©e pour implĂ©menter les bases de ACPI. Ensuite, des pilotes dĂ©diĂ©s permettent d’exposer chaque pĂ©riphĂ©rique ACPI.

Mise à jour de ACPICA avec la derniÚre version publiée par Intel (publiée en mars), et un peu de nettoyage afin de pouvoir intégrer quelques patchs dans la version upstream de ACPICA (PulkoMandy).

Ajustement du pilote ACPI pour mapper sa mĂ©moire physique en « write back » au lieu de dĂ©sactiver complĂštement le cache. C’est nĂ©cessaire sur ARM64, car le cache permet d’intercepter les accĂšs mĂ©moire non alignĂ©s. Correction de problĂšmes liĂ©s au fait que la mĂȘme zone de mĂ©moire physique pouvait ĂȘtre mappĂ©e plusieurs fois avec des configurations diffĂ©rentes, ce qui est impossible (dĂ©clenche une « machine check exception ») (oanderso).

Graphiques

AvancĂ©es sur la prise en charge des cartes graphiques Intel de gĂ©nĂ©rations Tiger Lake, Ice Lake et Gemini Lake (ttmfx, ilzu, PulkoMandy). L’utilisation de ces cartes graphiques reste assez limitĂ©, sans accĂ©lĂ©ration matĂ©rielle et sans possibilitĂ© d’utiliser plusieurs Ă©crans pour l’instant.

virtio

Les pilotes virtio permettent l’utilisation de matĂ©riel virtuel dĂ©fini pour tirer le meilleur parti des machines virtuelles. PlutĂŽt que de copier le fonctionnement d’un matĂ©riel existant, l’interface peut ĂȘtre conçue pour rendre le travail plus simple aussi bien pour l’hĂŽte que pour le systĂšme virtualisĂ©.

Correction de problĂšmes dans l’allocation des files de messages virtio et amĂ©lioration de la gestion des erreurs (mmlr).

VĂ©rification de l’état du pĂ©riphĂ©rique aprĂšs une rĂ©initialisation, et correction d’un accĂšs mĂ©moire hors limite dans le pilote virtio_pci (korli).

PS/2

Les ports PS/2 ont disparu de la plupart des machines depuis de nombreuses annĂ©es, mais le protocole est encore utilisĂ© pour les claviers des ordinateurs portables ainsi que pour certains touchpads. Ces derniers utilisent de nombreuses extensions peu standardisĂ©es et mal documentĂ©es pour offrir des fonctions avancĂ©es qui n’existaient pas Ă  l’époque des souris Ă  deux boutons.

Le driver reçoit ce trimestre une refonte de la gestion des verrous entre ses différents composants, pour essayer de régler quelques problÚmes de synchronisation (waddlesplash).

SystĂšmes de fichiers

ram_disk et ramfs

ram_disk est un pĂ©riphĂ©rique bloc (block device) qui stocke ses donnĂ©es en RAM (non persistante au redĂ©marrage). Il peut ĂȘtre formatĂ© avec n’importe quel systĂšme de fichier.

ramfs est un systĂšme de fichiers qui stocke ses donnĂ©es en RAM, sans passer par un block device. Cela permet de meilleures performances (pas besoin de journalisation par exemple), une meilleure intĂ©gration avec le cache de fichiers (la mĂ©moire peut ĂȘtre partagĂ©e directement entre ramfs et le cache), et de s’affranchir des limites habituelles des pĂ©riphĂ©riques de bloc (par exemple: une taille fixe connue lors de la crĂ©ation du systĂšme de fichiers).

Un utilisateur a remontĂ© un problĂšme de compatibilitĂ© avec POSIX. Si on utilise mmap() sur un fichier stockĂ© dans un ramfs, et que la taille du fichier n’est pas un multiple de la taille des pages de mĂ©moire, la fin de la derniĂšre page pouvait contenir des donnĂ©es alĂ©atoires. Selon la spĂ©cification POSIX, il faut que cette zone soit remplie avec des 0, et le compilateur clang dĂ©pend de ce comportement pour implĂ©menter une lecture rapide des fichiers sources compilĂ©s.

Le problÚme a été corrigé, avec au passage une commonalisation de code entre ramfs et ram_disk, de petits ajustements de performances, et un peu de nettoyage.

Enfin, la prioritĂ© des allocations mĂ©moires de ces deux pilotes a Ă©tĂ© abaissĂ©e, ce qui permet d’éviter un gel du systĂšme s’il n’y a plus de mĂ©moire disponible.

Le pilote ramfs continue d’ĂȘtre stabilisĂ©, quelques problĂšmes qui pouvaient encore causer des kernel panic ont Ă©tĂ© corrigĂ©s.

packagefs

packagefs est un systĂšme de fichier virtuel qui expose le contenu de fichiers de packages au format hpkg. Des paquets peuvent ĂȘtre ajoutĂ©s et supprimĂ©s pendant le fonctionnement du systĂšme, et il n’est pas nĂ©cessaire d’extraire leurs donnĂ©es sur disque.

Plusieurs améliorations faites par waddlesplash :

  • Ajout de vĂ©rifications de la bonne utilisation de verrous entre diffĂ©rents threads et corrections de problĂšmes mineurs qu’elles ont mis en Ă©vidence,
  • AmĂ©lioration du message d’erreur si on essaie d’activer deux paquets qui entrent en conflit.

Un reproche qui est souvent fait au packagefs est d’avoir augmentĂ© les besoins en RAM de Haiku, en effet, depuis la version Beta 1 de Haiku, la configuration mĂ©moire minimum recommandĂ©e est de 384Mio de RAM, alors que les versions prĂ©cĂ©dentes se contentaient de 128Mio.

  • Utilisation d’object_cache` (un allocateur mĂ©moire pour des objets qui font tous la mĂȘme taille) dans diffĂ©rents endroits de packagefs pour rĂ©duire sa consommation de mĂ©moire,
  • Utilisation de listes chaĂźnĂ©es simples au lieu de listes chaĂźnĂ©es doubles lĂ  oĂč ça ne pose pas de problĂšme de performances,
  • Suppression de champs constants dans certaines classes,
  • « inlining » des compteurs de rĂ©fĂ©rences pour rendre les structures de donnĂ©es plus compactes,
  • RĂ©organisation des structures pour rĂ©duire le padding,
  • Retrait des « dĂ©pĂŽts d’objets » dans les arĂšnes d'allocation,
  • DĂ©coupage des allocations en plusieurs zones distinctes,
  • Utilisation de verrous moins fins (par exemple, avoir un seul verrou pour tout un dossier au lieu de un par fichier),
  • Utilisation d’un « bump allocator » pour les objets Ă  courte durĂ©e de vie.

La rĂ©duction de consommation mĂ©moire avec ces changements est de prĂšs de 20%, soit environ 15Mio sur une installation de rĂ©fĂ©rence. En effet, un gain de quelques octets sur le stockage d’informations sur un fichier est multipliĂ© par plusieurs milliers de fichiers prĂ©sents sur le disque, ce qui fait que chaque petite optimisation est intĂ©ressante. Cependant, les investigations ont aussi permis de dĂ©couvrir d’autres problĂšmes encore plus importants qui n’étaient pas directement liĂ©s au packagefs, on en reparle un peu plus loin.

Un autre changement a Ă©tĂ© fait par waddlesplash, non seulement pour packagefs mais aussi pour d’autres endroits oĂč le mĂȘme code Ă©tait utilisĂ© : La fonction pour calculer un hash de chaĂźne de caractĂšres utilisait un algorithme obsolĂšte. Elle a Ă©tĂ© remplacĂ©e par hashdjb2 qui gĂ©nĂšre moins de collisions.

FAT

FAT est un systÚme de fichier développé par Microsoft. Il est utilisé en particulier sur les cartes SD et les clés USB, ainsi que pour les partitions systÚmes EFI. Bien que sa conception soit quelque peu obsolÚte, il reste donc indispensable.

Le pilote FAT de Haiku, qui provenait tout droit d’un code source publiĂ© par Be, a Ă©tĂ© remplacĂ© dans la version beta 5 par une nouvelle version basĂ©e sur le code de FreeBSD. Ce nouveau pilote reçoit depuis des amĂ©liorations rĂ©guliĂšres par Jim906, le dĂ©veloppeur qui s’est chargĂ© du portage du code de FreeBSD.

Ce trimestre, le pilote reçoit des corrections sur l’initialisation des « media bytes » dans l’en-tĂȘte des partitions, des amĂ©liorations de performances pour rĂ©duire le temps nĂ©cessaire au montage d’une partition FAT, ainsi qu’une meilleure gestion des erreurs dans le traitement des noms de volumes. Il est Ă©galement possible de monter les volumes FAT de taille supĂ©rieure Ă  2TiO.

BFS

BFS est le systĂšme de fichier hĂ©ritĂ© de BeOS et utilisĂ© pour les partitions natives de Haiku. Il propose une trĂšs bonne implĂ©mentation des attributs Ă©tendus (sans limite de taille, et typĂ©s) et permet en plus d’exĂ©cuter des requĂȘtes sur ces attributs pour localiser trĂšs rapidement les fichiers rĂ©pondant Ă  certains critĂšres.

L’implĂ©mentation du systĂšme de fichier BFS est assez mĂ»re et reçoit habituellement peu d’évolutions. Cependant, il reste toujours des possibilitĂ©s d’amĂ©liorer les performances.

C’est le cas de la fonction de recherche de blocs libres. Les blocs sont chacun reprĂ©sentĂ©s par un bit dans une structure indiquant s’ils sont disponibles ou pas. La recherche de blocs libres se faisait bit Ă  bit, mais il est possible de gagner beaucoup de temps en testant 64 bits d’un coup pour savoir tout de suite qu’ils reprĂ©sentent tous des blocs occupĂ©s, et passer directement aux 64 bits suivants. Cela amĂ©liore les performances de la crĂ©ation et du redimensionnement de fichier, en particulier sur les architectures RISC-V (waddlesplash).

Query parser

Plusieurs systĂšmes de fichiers conçus pour BeOS ou Haiku (bfs, ramfs, et packagefs) permettent l’utilisation d’attributs indexĂ©s par le systĂšme de fichiers qui permettent d’effectuer des requĂȘtes pour localiser des fichiers comme dans une base de donnĂ©es.

Depuis la version beta 5 de Haiku, ces 3 systĂšmes de fichiers partagent le code utilisĂ© pour parser une requĂȘte (envoyĂ©e sous forme de texte) et la convertir en une opĂ©ration de recherche exĂ©cutable.

Ce parser pouvait dans certains cas (requĂȘtes trop complexes) dĂ©clencher volontairement un kernel panic. Celui-ci a Ă©tĂ© remplacĂ© par une « simple » erreur, remontĂ©e Ă  l’application qui a dĂ©clenchĂ© la requĂȘte. L’application aura la charge de remonter cette erreur Ă  l’utilisateur, et de l’inviter Ă  simplifier sa demande.

block_cache

Le cache de blocs, comme son nom l’indique, stocke en mĂ©moire RAM une copie de certains blocs des systĂšmes de fichiers. Cela permet d’accĂ©lĂ©rer les opĂ©rations bas niveau sur le systĂšme de fichier, en particulier pour mettre en cache des structures internes du disque. Il complĂšte le file_cache, qui lui se trouve Ă  un niveau plus haut, et met en cache uniquement le contenu des fichiers lus et Ă©crits par les applications.

Le seul changement notable sur le block_cache est le retrait de paramÚtres inutilisés dans certaines fonctions, afin de simplifier le code (waddlesplash).

kernel

Une correction de bug sur le blocage des threads avec timeout (par exemple, l’attente d’un mutex ou d’un sĂ©maphore avec un dĂ©lai maximum): dans certains cas, une fonction pouvait retourner B_TIMED_OUT pour d’autres raisons que l’expiration du timer. Ce n’était pas traitĂ© correctement, et le noyau supposait que le timeout avait expirĂ©, alors qu’il s’agissait d’autre chose. Des vĂ©rifications supplĂ©mentaires permettent de traiter ce cas correctement.

Correction de problĂšme sur la programmation des timeouts « absolus temps-rĂ©el ». Comme leur nom l’indique, ils rĂ©fĂ©rencent l’horloge « real time » (qui essaie de suivre l’heure et la date « rĂ©elle », par opposition Ă  l’horloge systĂšme qui est basĂ©e sur l’uptime de la machine, mais garantit de ne jamais faire de saut ou revenir en arriĂšre). Ces timers ne fonctionnaient pas du tout (ou alors, seulement sur un coup de chance), et restaient probablement bloquĂ©s pendant une durĂ©e beaucoup plus longue que demandĂ©. Au passage, nettoyage du code de gestion des timers.

Dans le code de gestion des interruptions: ajout d’assertions pour investiguer un bug dans les addons vmware ou virtualbox.

Correction d’un bug dans l’implĂ©mentation de kqueue qui produisait un blocage au dĂ©marrage de la libevent (qui utilise maintenant kqueue pour Haiku).

Des petites amĂ©liorations de performances: sur l’allocateur mĂ©moire du noyau, sur l’utilisation de verrous dans la gestion de la mĂ©moire virtuelle, des fuites de mĂ©moire dans l’allocation de page, des amĂ©liorations sur la dĂ©tection de rĂ©fĂ©rences devenues invalides (jpelczar + waddlesplash).

Le script de link du noyau refuse maintenant les sections inconnues avec un message d’erreur, au lieu de simplement les ignorer (korli).

Correction du dĂ©compte du temps CPU utilisĂ© par le thread en cours d’exĂ©cution, pour donner des rĂ©sultats plus fiables dans les applications qui affichent l’utilisation CPU (waddlesplash).

Refactorisation du dĂ©compte du temps d’exĂ©cution des appels systĂšmes. Seul le temps passĂ© dans l’exĂ©cution du syscall est prise en compte, sans mesurer la mise en place d’un appel systĂšme et du retour vers l’espace utilisateur (qui ne peuvent de toutes façons pas ĂȘtre mesurĂ©es de façon fiable depuis le noyau). Cela rend l’affichage des durĂ©es d’exĂ©cution dans strace plus facile Ă  interprĂ©ter (waddlesplash).

RĂ©duction de la taille maximale des tampons mĂ©moire pour stocker des dirent Ă  8Kio. La plupart des applications n’utilisent pas un tampon aussi large, et les quelques-unes qui le faisaient ont Ă©tĂ© modifiĂ©es pour rĂ©duire la taille. Cette rĂ©duction permet d’utiliser un allocateur spĂ©cialisĂ© beaucoup plus rapide, ce qui devrait compenser les rares cas oĂč le tampon est trop petit pour rĂ©cupĂ©rer tout le contenu d’un dossier en une seule fois (waddlesplash).

Correction de plusieurs problĂšmes dans le systĂšme de gestion des ressources faibles (qui essaie de libĂ©rer de la mĂ©moire quand il n’y en a plus assez de disponible). Dans certains cas, le systĂšme finit par geler ou dĂ©clencher un kernel panic, alors qu’il devrait toujours ĂȘtre possible de refuser des demandes d’allocation mĂ©moire venant de l’espace utilisateur, et de conserver suffisamment de mĂ©moire libre pour au moins afficher proprement une erreur.

Amélioration de la gestion des mutex (exclusions mutuelles entre threads):

  • Ajout d’assertions pour dĂ©tecter des cas de rĂ©veil d’un thread qui ne devrait pas l’ĂȘtre.
  • Correction d’un problĂšme introduit rĂ©cemment et investiguĂ© Ă  l’aide de ces nouvelles assertions.
  • L’ABI des locks est identiques entre les builds du kernel en version debug ou release, ce qui permet de ne pas avoir besoin de recompiler tous les pilotes dans le mĂȘme mode que le kernel. Les pilotes compilĂ©s en mode release vont dĂ©clencher une erreur de symbole manquant si on essaie de les utiliser avec un noyau en mode debug, dans l’autre sens, il n’y a pas de problĂšme. Auparavant, dans les deux cas on obtenait des crashes ou un gel complet du systĂšme, difficile Ă  investiguer et faisant perdre du temps.
  • Ajout d’assertions dans plusieurs cas pour dĂ©tecter les utilisations incorrectes des rw-locks. Certaines activĂ©es par dĂ©faut, et d’autres uniquement sur demande Ă  la compilation du noyau en raison de coĂ»t de vĂ©rification trop importants.
  • Correction de mauvaises utilisations des rwlocks ainsi dĂ©tectĂ©es.

GĂ©nĂ©ralisation de l’utilisation de fonctions utilitaires partagĂ©es pour la conversion des timespec en durĂ©es en microsecondes. Cela permet aux fonctions concernĂ©es (entre autres kqueue) de bĂ©nĂ©ficier de contrĂŽles de validitĂ© supplĂ©mentaires (waddlesplash).

Ajout d’informations de debug supplĂ©mentaires dans la sortie de la commande slab_object du debugger du noyau.

RĂ©activation de la calibration du TSC Ă  partir d’informations du CPUID lorsque Haiku s’exĂ©cute dans un hyperviseur, comme c’était dĂ©jĂ  le cas lorsqu’il s’exĂ©cute directement sur une machine physique. Le TSC est un timer interne du CPU qui permet des mesures de temps trĂšs rapides (une seule instruction CPU) mais dans une Ă©chelle de temps arbitraire qu’il faut corrĂ©ler avec le « vrai » temps. Cela peut ĂȘtre fait soit Ă  l’aide d’une mesure empirique (mĂ©thode historique), soit Ă  l’aide d’informations sur cette horloge disponibles dans les informations retournĂ©es par l’instruction CPUID.

Affichage de plus de fonctionnalités du CPU reconnues dans les logs de debug pour les processeurs x86 (korli).

Ajout d’un raccourci clavier (Control+D) pour quitter le debugger noyau et reprendre l’exĂ©cution normale si possible (Ă©quivalent Ă  la commande continue ou co) (mmlr).

Le chargement des pilotes de pĂ©riphĂ©riques se fait en prioritĂ© depuis les dossiers non-packaged avant de rechercher les fichiers dans les paquets logiciels, ce qui permet de tester facilement une version modifiĂ©e d’un pilote - sauf si les dossiers non-packaged sont dĂ©sactivĂ©s dans la configuration du noyau (korli).

VFS

Le VFS (virtual file system) est le composant de Haiku qui gĂšre l’accĂšs aux fichiers. Il fait l’intermĂ©diaire entre les appels systĂšmes liĂ©s aux fichiers (open, read, write
) et les systĂšmes de fichiers eux-mĂȘmes. Il implĂ©mente autant que possible ce qui peut ĂȘtre mis en commun entre tous les systĂšmes de fichiers: rĂ©solution de chemins relatifs, vĂ©rification de permissions


Cela rend plus facile l’écriture d’un nouveau systĂšme de fichiers, qui peut alors se concentrer sur les aspects bas niveau et la gestion de ses structures de donnĂ©es.

Ajout de vĂ©rifications d’intĂ©gritĂ©s supplĂ©mentaires dans le VFS pour dĂ©tecter des bugs dans les systĂšmes de fichiers le plus rapidement possible, au lieu d’obtenir un crash du noyau difficile Ă  investiguer un peu plus tard.

Retrait d’un scan du bus SCSI et des pilotes associĂ©s par le device manager pour rĂ©duire un peu le temps de dĂ©marrage.

Correction d’un gros problĂšme dans l’API du noyau IORequest qui aboutissait Ă  une confusion entre la taille totale d’une requĂȘte et l’offset de la derniĂšre donnĂ©e transfĂ©rĂ©e (les transferts ne commençant pas forcĂ©ment Ă  l’offset 0). La consĂ©quence Ă©tait l’écrasement de donnĂ©es dans le cache de fichiers, dĂ©clenchant des crashes du noyau avec des messages d’erreur incomprĂ©hensibles Ă  propos des structures de pages. Correction d’un problĂšme de calcul d’offset qui faisait que certaines opĂ©rations Ă©taient considĂ©rĂ©es comme rĂ©ussies, alors qu’il y avait en fait une erreur.

Correction de problĂšmes de dĂ©comptage de rĂ©fĂ©rences et de gestion du cache Ă  l’interface entre ramfs et VFS, mis en Ă©vidence lors du travail de portage de Firefox.

Ajout d’une acquisition de rĂ©fĂ©rence sur un vnode qui manquait dans le cache de fichiers (waddlesplash).

Améliorations du cache d'entrées, dont en particulier la mise en cache du hash des noms de fichiers, pour éviter des comparaisons de chaßnes de caractÚres inutiles.

Gestion de la mémoire

La gestion de la mĂ©moire virtuelle est une des tĂąches essentielles d’un systĂšme d’exploitation. Elle garantit l’isolation entre les diffĂ©rents processus, permet d’utiliser la mĂ©moire physique le mieux possible (Ă©ventuellement en dĂ©plaçant certaines allocations peu utilisĂ©es vers un espace d’échange sur disque), et permet aussi aux diffĂ©rents processus de se partager des donnĂ©es.

Il s’agit Ă©galement d’un composant trĂšs sollicitĂ©, et dont les performances impactent beaucoup le comportement du systĂšme. Une mauvaise gestion de la mĂ©moire peut fortement ralentir le systĂšme ou le rendre instable.

Ajout d’assertions dans le code gĂ©rant les pages de mĂ©moire, pour essayer d’intercepter ce type de correction plus rapidement si elles se reproduisent.

Dans l’arbre des areas globales : ajout d’assertions pour dĂ©tecter les identifiants d’areas dupliquĂ©s (chaque area doit bien sĂ»r avoir un identifiant unique).

ImplĂ©mentation de PAT (Page Attribute Table) pour les processeurs x86. Les PAT permettent de configurer des zones de mĂ©moires qui peuvent ou ne peuvent pas ĂȘtre mises en cache (complĂštement ou en write-through). Elles remplacent les MTRR en permettant un contrĂŽle plus fin et plus flexible. Au passage, nettoyage de l’implĂ©mentation des MTRR (prĂ©servĂ©e pour les processeurs plus anciens incompatibles avec PAT), ajout de nouvelles commandes dans le debugger noyau. Renommage des constantes B_MTR_* pour indiquer prĂ©cisĂ©ment leur rĂŽle indĂ©pendamment des dĂ©nominations utilisĂ©es dans les registres MTRR qui ne sont pas trĂšs claires (mmlr).

Lorsque le systĂšme utilise PAT, ajout d’assertions pour dĂ©tecter les tentatives d’accĂ©der Ă  la mĂȘme zone de mĂ©moire physique avec des configurations de cache diffĂ©rentes. Elles ne sont pas activĂ©es lorqu'on utilise les MTRR, car ces derniĂšres ne permettent pas une configuration aussi fine (waddlesplash).

Ajout d’informations supplĂ©mentaire dans le message de kernel panic indiquant qu’une page devrait ĂȘtre libre mais qu’elle ne l’est pas. Modification de la commande page du debugger noyau pour rĂ©cupĂ©rer la liste des espaces d’adressage depuis les structures du kernel plutĂŽt que d’itĂ©rer sur tout l’espace d’adressage (ce qui pouvait fonctionner sur un espace 32 bit, mais pas en 64 bit).

Correction du code de « guarded heap » du noyau qui ne compilait plus. Il s’agit d’un allocateur mĂ©moire plus lent mais avec de nombreuses vĂ©rifications d’intĂ©gritĂ© pour dĂ©tecter les dĂ©bordements de tampons, double free, et autres problĂšmes de gestion de la mĂ©moire dans le noyau (kallisti5).

Le fichier swap est automatiquement supprimĂ©, et l’espace disque libĂ©rĂ©, lors de la dĂ©sactivation de la swap. Auparavant, un redĂ©marrage Ă©tait nĂ©cessaire (waddlesplash).

Correction d’un problĂšme dans l’allocation de mĂ©moire « early boot » (avant que l’allocation normale soit mise en place), qui empĂȘchait le dĂ©marrage sur les systĂšmes pouvant gĂ©rer de grandes quantitĂ©s de mĂ©moire (plusieurs centaines de Gio) (waddlesplash).

libroot

La libroot regroupe tous les composants de la librairie standard C (parfois dĂ©coupĂ©e en libc, libm et libpthread pour d’autres systĂšmes). Elle contient en plus un certain nombre d’extensions spĂ©cifiques Ă  Haiku et Ă  BeOS.

Changements effectués par waddlesplash, sauf mentions spécifiques:

Nettoyage de code dans la classe WeakReferenceable, une classe de comptage de références intrusive qui autorise les références "faibles".

Correction de problùmes dans le code d’interfaçage avec ICU pour la conversion de dates (nipos et waddlesplash).

libnetwork

Nettoyage de code de compatibilitĂ© avec BeOS dans la libnetwork, pour faire en sorte qu’il ne soit plus du tout compilĂ© sur les architectures n’offrant pas de compatibilitĂ© avec BeOS.

Compatibilité POSIX

ImplĂ©mentation minimale de mknod et mknodat dans le seul cas spĂ©cifiĂ© par POSIX, qui permet de rĂ©aliser une opĂ©ration Ă©quivalente Ă  mkfifo. La gestion des devices dans Haiku est trĂšs diffĂ©rente de celle utilisĂ©e traditionellement par UNIX, et ne se prĂȘte pas Ă  l’implĂ©mentation des autres utilisations de ces fonctions.

Rectification de l’implĂ©mentation des fonctions *at (par exemple linkat) qui permettent de rĂ©aliser une opĂ©ration Ă  partir d’un descripteur de fichier au lieu d’un path. Dans la libroot, ces fonctions envoyaient la valeur -1 aux appels systĂšmes pour implĂ©menter AT_FDCWD. La valeur de AT_FDCWD a Ă©tĂ© modifiĂ©e pour choisir autre chose que -1 (qui est souvent utilisĂ© pour indiquer une erreur dans le code de retour d’autres fonctions). Les appels systĂšmes acceptent pour l’instant les valeurs -1 et AT_FDCWD, mais rejettent maintenant toutes les autres valeurs nĂ©gatives.

Remplacement d’une partie du code de gestion des flux d’entrĂ©e-sortie par la version de la glibc. La bibliothĂšque libroot est un patchwork d’implĂ©mentations provenant de la glibc, de musl, et de divers BSD, un objectif Ă  terme est d’essayer de se rapprocher d’une de ces implĂ©mentations, mais on ne sait pas encore trop de laquelle. En tout cas, le code des I/O provient majoritairement de la glibc afin d’ĂȘtre trĂšs compatible avec ce qui Ă©tait utilisĂ© dans BeOS.

La fonction gmtime retourne une struct tm avec le champ tm_zone contenant la chaĂźne "GMT" (waddlesplash).

Correction de la conversion des "surrogate pairs" dans la fonction mbrtowc.

Mise en conformitĂ© de l’implĂ©mentation des threads avec POSIX :

  • Ajustement de code d’erreurs retournĂ©s par les fonctions
  • Suppression de la possibilitĂ© de retourner EINTR depuis un rwlock
  • Correction de deadlocks dans les barriers
  • Correction de plusieurs problĂšmes dans l’implĂ©mentation des sĂ©maphores anonymes.

Mise en place systĂ©matique de l’utilisation de _DEFAULT_SOURCE pour protĂ©ger les extensions Ă  la norme POSIX, ce qui permet de les activer automatiquement via l’inclusion de features.h lorsque c’est possible.

Nettoyage de quelques fichiers d’en-tĂȘte, dont en particulier <sys/select.h>, pour Ă©viter de polluer l’espace global avec des macros et des dĂ©finitions en double (waddlesplash).

Prise en compte correcte du drapeau O_NONBLOCK lors de l’ouverture d’un FIFO (korli).

runtime_loader

Le runtime_loader est le composant responsable du chargement en mĂ©moire des exĂ©cutables et du lancement de nouveaux processus. Il rĂ©alise la rĂ©solution des dĂ©pendances et la recherche des bibliothĂšques partagĂ©es nĂ©cessaires pour l’exĂ©cution d’un programme.

Il reçoit des Ă©volutions suite au portage d’applications complexes venues de Linux, qui nĂ©cessitent souvent plusieurs dizaines de bibliothĂšques partagĂ©es.

Correction de problÚmes détectés en testant un portage expérimental et instable de Firefox: crash du runtime_loader dans certains cas si on charge une bibliothÚque (via dlopen ou load_add_on) dont il manque des dépendances.

Retrait de l’option -fno-builtin dans les drapeaux de compilation du runtime_loader, comme cela avait dĂ©jĂ  Ă©tĂ© fait pour la majoritĂ© de la libroot. Cela permet Ă  gcc de remplacer des appels Ă  des fonctions standardisĂ©es par une implĂ©mentation inline plus performante (waddlesplash).

Outils de debug

DĂ©veloppement d’outils pour enregistrer ce qu’il se passe pendant le dĂ©marrage du systĂšme et dĂ©tecter d’éventuels problĂšmes de latence, de 'lock contention', etc. Au passage, correction de divers problĂšmes liĂ©s Ă  ces outils : les barres de dĂ©filement de DebugAnalyzer, les permissions noyau dans transfer_area, etc.

Amélioration de la remontée des valeurs de retour des appels systÚmes vers strace sur les plateformes x86 32-bit.

Pour terminer, un changement rĂ©alisĂ© par mmlr : amĂ©lioration de l’allocateur mĂ©moire "guarded heap" pour le rendre utilisable plus facilement, y compris comme allocateur pour tout le systĂšme. Cet allocateur permet de dĂ©tecter les accĂšs au-delĂ  de la fin d’une zone mĂ©moire allouĂ©e avec malloc(), ainsi que les accĂšs Ă  de la mĂ©moire dĂ©jĂ  libĂ©rĂ©e, mais au prix d’une consommation mĂ©moire nettement plus Ă©levĂ©e qu’un allocateur classique. La disponibilitĂ© d’un espace d’adressage de 64 bits permet de limiter les cas oĂč une adresse mĂ©moire est initialement utilisĂ©e pour une allocation, puis libĂ©rĂ©e et allouĂ©e Ă  nouveau pour autre chose.

Un problĂšme de gestion d’erreur dans l’interfaçage entre le Debugger et le noyau pouvait conduire Ă  un gel complet du systĂšme dans certains cas de plantage du debug_server, en particulier s’il n’y a plus assez de mĂ©moire RAM disponible.

Bootloader

Ajout d’une vĂ©rification manquante pour prendre en compte l’option « BlockedEntries » dans le bootloader. Cette option s’appelait prĂ©cĂ©demment « EntriesBlacklist » mais a Ă©tĂ© renommĂ©e pour utiliser un terme non entachĂ© de racisme. L’ancien nom continue de fonctionner pour ne pas casser les installations existantes, mais n’est plus documentĂ©.

Augmentation de la taille maximum autorisĂ©e pour les allocations « standard » sur la pile. L’allocateur mĂ©moire du bootloader traite sĂ©parĂ©ment les allocations de grande taille, mais ces allocations ne sont pas correctement libĂ©rĂ©es lors du transfert de contrĂŽle vers le noyau, en particulier sur les machines utilisant un BIOS non EFI. Pour l’instant, une correction complĂšte du problĂšme semble compliquĂ©e Ă  mettre en place, mais la modification permet de libĂ©rer de la mĂ©moire allouĂ©e pour l’accĂšs au packagefs (le bootloader a besoin d’y accĂ©der pour trouver le noyau, qui est stockĂ© dans un paquet). Ce changement permet de libĂ©rer plusieurs dizaines de Mio de mĂ©moire, et complĂšte les changements mentionnĂ©s plus haut sur la gestion des paquets aprĂšs dĂ©marrage. Il est possible de configurer Haiku pour fonctionner avec moins de 100Mio de mĂ©moire (waddlesplash).

RĂ©paration de la rĂ©-initialisation des ports sĂ©rie sur le bootloader EFI. Le port sĂ©rie est utilisĂ© Ă  des fins de debug, mais il peut ĂȘtre accĂ©dĂ© de plusieurs façons diffĂ©rentes (en adressant directement le matĂ©riel, ou bien via des services EFI dĂ©diĂ©s). Le bootloader doit passer d’une mĂ©thode Ă  l’autre Ă  diffĂ©rentes Ă©tapes du dĂ©marrage: accĂšs direct au port physique dans les premiĂšres Ă©tapes (en dĂ©tectant s’il est bien prĂ©sent Ă  une adresse standard), accĂšs via les services EFI une fois ceux-ci initialisĂ©s, puis Ă  nouveau accĂšs direct au matĂ©riel aprĂšs l’arrĂȘt des services EFI pour la derniĂšre Ă©tape de passage de contrĂŽle au noyau (cette fois-ci Ă  une adresse qui peut ĂȘtre configurĂ©e dans les options du bootloader et du noyau). Ce fonctionnement ne s’insĂšre pas forcĂ©ment trĂšs bien dans la logique du bootloader, qui n’avait Ă  l’origine pas Ă©tĂ© conçu pour une gestion aussi complexe des entrĂ©es-sorties (VoloDroid).

Réduction de la quantité de logs liés à la mise en place de SMP (gestion de plusieurs processeurs) dans le bootloader pour BIOS (waddlesplash).

Le menu de dĂ©marrage affiche la version (numĂ©ro 'hrev') du paquet systĂšme correspondant Ă  chaque point de restauration disponible, ce qui facilite l’identification des Ă©tats qui correspondent Ă  un changement de version du systĂšme, et pas une simple installation, dĂ©sinstallation ou mise Ă  jour de paquets logiciels (waddlesplash).

Documentation

Haiku Book

Le « Haiku Book » est un projet de documentation des APIs publiques de Haiku. Il doit Ă  terme remplacer le « Be Book », qui documente les APIs de BeOS, mais ne peut pas ĂȘtre mis Ă  jour Ă  cause de se license CC BY-NC-ND. Actuellement, il faut jongler entre ces deux documentations.

La documentation de B_INFINITE_TIMEOUT (constante permettant d’indiquer Ă  certaines fonctions qu’on veut les exĂ©cuter sans timeout, et attendre indĂ©finiment) a Ă©tĂ© mise Ă  jour pour indiquer explicitement que sa valeur numĂ©rique est INT64_MAX (waddlesplash).

Correction de fautes de frappe dans la documentation des API liées aux entrées clavier (drea233).

Haiku Interface Guidelines

Ce document prĂ©sente les bonnes pratiques et conventions pour la conception d’interfaces graphiques fonctionnant avec Haiku.

Ajout d’une section sur la gestion des fichiers rĂ©cemment utilisĂ©s et la façon dont ils peuvent ĂȘtre exposĂ©s aux utilisateurs.

Wiki et documentation interne

Le wiki contient des informations utiles aux développeurs de Haiku.

La documentation « interne" documente le fonctionnement de Haiku en s’adressant principalement aux contributeurs du systĂšme, par opposition aux personnes qui souhaitent seulement dĂ©velopper ou porter des applications.

Mise Ă  jour de la page « release cookbook » indiquant toutes les Ă©tapes Ă  suivre lors de la publication d’une version de Haiku.

Notes d’administration systùme : mise à jour des instructions pour instancier des machines Google Cloud Platform (kallisti5).

SystĂšme de build, environnement de compilation

La compilation d’un systĂšme d’exploitation complet n’est pas chose facile. D’autant plus pour Haiku, qui prĂ©sente les particularitĂ©s suivantes:

  • Utilisation de deux versions de gcc (gcc 2.95.3 et gcc 13) pour la version 32 bit de Haiku, afin d’assurer la compatibilitĂ© binaire avec BeOS,
  • PossibilitĂ© de compilation croisĂ©e depuis Linux, Mac OS et d’autres systĂšmes, ou depuis un hĂŽte Haiku,
  • Compilation d’outils pour la machine hĂŽte de la compilation croisĂ©e, avec si nĂ©cessaire une couche de compatibilitĂ© permettant d’écrire ces outils en utilisant des API et fonctionnalitĂ©s spĂ©cifiques Ă  Haiku,
  • PossibilitĂ© de compiler des applications pour un systĂšme hĂŽte existant (une autre version de Haiku) Ă  des fins de test,
  • Compilation d’un systĂšme complet (noyau, bibliothĂšques, applications, image disque) en une seule opĂ©ration.

Pour ces raisons, l’utilisation d’un systĂšme de build haut niveau (CMake, Meson
) s’avĂšre plutĂŽt complexe. L’utilisation de make ou de ninja directement serait de trop bas niveau. Le choix de Haiku est donc d’utiliser l’outil jam, qui est malheureusement assez peu populaire et tombĂ© Ă  l’abandon dans sa version originale. Haiku maintient un fork de jam qui est concurrent de ceux maintenus par Boost et par Freetype.

Reformatage des fichiers Jamfile pour lister une seule cible par ligne au lieu de les rassembler, cela facilite les rebase et résolutions de conflits (x512).

Mise à jour de paquets en préparation pour la version beta 5: OpenSSL 3, Python 3.10, et autres mises à jour diverses (PulkoMandy, waddlesplash, kallisti5).

Ajout de l’inclusion de <features.h> dans <sched.h>. Le fichier d’en-tĂȘte features.h configure la visibilitĂ© des extensions GNU et BSD aux fichiers d’include standards C et POSIX, en fonction d’options de ligne de commande du compilateur. L’inclusion de ce fichier permet d’utiliser facilement et par dĂ©faut ces extensions (PulkoMandy).

Mise à jour des marque-pages fournis par défaut avec le navigateur WebPositive (waddlesplash).

Ajout des en-tĂȘtes de la bibliothĂšque linprog dans le paquet haiku_devel. Ces en-tĂȘtes sont nĂ©cessaires pour les applications associĂ©es au systĂšme de layout d’interfaces graphiques ALM (korli).

Correction de fautes de frappe dans des commentaires (jmairboeck) et d’un problĂšme de compatibilitĂ© C89 dans un en-tĂȘte systĂšme (waddlesplash).

La taille des images « nightly build » de Haiku est maintenant de 650 Mo, ce qui laisse un peu plus de place disponible pour les utiliser et crĂ©er quelques fichiers (jscipione).

Diverses corrections pour une nouvelle fois essayer de faire fonctionner la compilation de Haiku avec Clang (waddlesplash, oanderso). Les choses en sont toujours au mĂȘme point depuis plusieurs annĂ©es, avec des corrections de temps en temps mais quelques parties du systĂšme qui ne fonctionnent toujours pas correctement.

La compilation du profil « nightly » n’a plus besoin de gĂ©nĂ©rer le paquet haiku_source contenant le code source de Haiku. Ce paquet est inclus uniquement dans les images de releases (pour faciliter le respect strict de la licence GPL de certains composants de Haiku), mais, pour des raisons de dĂ©pendances entre cibles dans le systĂšme de build, il Ă©tait tout de mĂȘme gĂ©nĂ©rĂ© pour les autres profils, ralentissant la compilation (waddlesplash).

Améliorations du script ./configure (jessicah, OscarL et waddlesplash):

  • Le script vĂ©rifie que les options passĂ©es fournies sont valides, et rejette immĂ©diatement les configurations incohĂ©rentes plutĂŽt que de laisser la compilation Ă©chouer bien plus loin.
  • Validation que l’interprĂ©teur Python sĂ©lectionnĂ© existe bien, et uniformisation de la syntaxe utilisĂ©e pour choisir un interprĂ©teur avec la façon dont c’est fait pour d’autres outils.
  • DĂ©tection des options disponibles pour demander Ă  wget de rĂ©-essayer un tĂ©lĂ©chargement en cas d’échec, ce qui permet d’assurer la compatibilitĂ© avec wget2.
  • Utilisation automatique d’une version moderne de GCC pour compiler les outils « hĂŽtes » lors de la compilation Ă  partir d’une machine hĂŽte fonctionnant sous Haiku en version 32 bit, en ignorant le compilateur par dĂ©faut qui est gcc 2 pour des raisons de compatibilitĂ© avec BeOS.

RĂ©organisation du code source de libroot pour dĂ©placer les implĂ©mentations de malloc dans des sous-dossiers sĂ©parĂ©s, et faciliter l’expĂ©rimentation avec d’autres implĂ©mentations de malloc. L’allocateur hoard2 utilisĂ© actuellement n’est pas adaptĂ© aux architectures 64 bits, une tentative a Ă©tĂ© faite il y a quelques annĂ©es avec rpmalloc, mais ce dernier pose des problĂšmes sur les
architectures 32 bits. Des investigations sont en cours avec l’implĂ©mentation de malloc d’OpenBSD.

L’outil de dessin Wonderbrush est maintenant disponible sur toutes les architectures. Historiquement, le code de Wonderbrush n’était pas libre, mais une version gratuite Ă©tait offerte aux utilisateurs de Haiku. Le dĂ©veloppeur principal de Wonderbrush n’est plus trĂšs actif sur le projet et a dĂ©cidĂ© de publier les sources, ce qui a permis de recompiler le programme en version 64 bits et plus tard sur les autres architectures non x86. Mais ces nouvelles versions n’avaient jamais Ă©tĂ© incluses dans Haiku (PulkoMandy).

Nettoyage et centralisation des dĂ©finitions prĂ©processeur pour la compatibilitĂ© avec BeOS. DĂ©sactivation de la compatibilitĂ© avec BeOS dans le noyau, la compatibilitĂ© avec les pilotes et modules noyau de BeOS n’étant plus assurĂ©e depuis quelque temps dans Haiku.

Suppression de définitions de rÚgles obsolÚtes et inutilisées dans le Jamfile permettant de construire le fichier package_repo (CodeforEvolution).

Remise en service du test DiskDeviceManagerTest qui ne compilait plus (waddlesplash).

ARM & PowerPC

Actuellement, Haiku est disponible officiellement pour les architectures x86 32 et 64 bits. Une version RISC-V 64 bits expĂ©rimentale est Ă©galement disponible mais pas encore totalement intĂ©grĂ©e dans le dĂ©pĂŽt de code principal, des discussions sont en cours sur la bonne façon de faire certains changements nĂ©cessaires. Les versions ARM (32 et 64 bits) et PowerPC sont les prochaines cibles sur la liste. La premiĂšre, car c’est une architecture trĂšs populaire, la deuxiĂšme plutĂŽt pour des raisons historiques : c’est l’une des architectures sur lesquelles fonctionne BeOS.

Renommage de structures qui Ă©taient initialement spĂ©cifiques Ă  l’architecture x86, mais qui sont finalement utilisĂ©es Ă©galement sur d’autres CPU sans nĂ©cessiter de changements (waddlesplash).

RĂ©paration de la console de texte du chargeur de dĂ©marrage OpenFirmware qui Ă©tait cassĂ©e depuis l’adaptation pour OpenBOOT sur les machines SPARC (zeldakatze).

Sur ARM, utilisation de la bonne instruction CPU pour mettre le processeur en veille quand il n’y a rien à faire (archeYR).

oanderso continue le travail sur le portage ARM64:

  • Correction de plusieurs problĂšmes liĂ©s Ă  la gestion du cache et de la MMU dans le bootloader, ce qui permet de dĂ©marrer le noyau dans une machine virtuelle sur un hĂŽte Apple M1.
  • Correction de l’implĂ©mentation des timers dans le kernel qui ne fonctionnait pas dans les environnements virtualisĂ©s.
  • Quelques avancĂ©es sur la gestion de la MMU : ImplĂ©mentation de la table de translation de la mĂ©moire virtuelle, du traitement des exceptions matĂ©rielles (dĂ©fauts de page), des TLBs.
  • Synchronisation du cache d’instructions.
  • Correction de problĂšmes de double lock.

Ajout de messages sur le port sĂ©rie traçant l’exĂ©cution de mĂ©thodes spĂ©cifiques Ă  une architecture qui ne sont pas encore implĂ©mentĂ©es. Ceci permet de dĂ©tecter facilement quelle est la prochaine fonction Ă  implĂ©menter (waddlesplash).

Nettoyage et documentation du fichier ArchitectureRules pour simplifier la configuration des options en ligne de commande du compilateur (qui doit savoir traiter deux versions de gcc et clang) (waddlesplash).

Commentaires : voir le flux Atom ouvrir dans le navigateur

Dons aux associations, Ă©pisode 13

Cette dĂ©pĂȘche est la treiziĂšme de sa sĂ©rie, aprĂšs celles de 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 et 2023. Elle tient compte des suggestions des annĂ©es passĂ©es.

Montre ton amour au Libre

Bissextile ou pas, cette annĂ©e encore, je m’adresse Ă  toi libriste, qui procrastine en se disant qu’il reste quasi tout dĂ©cembre pour faire des dons en 2024, dĂ©ductibles des impĂŽts ou non. Toute l’annĂ©e on escompte soutenir telle ou telle action sur tel ou tel sujet qui nous mĂ©ritait vraiment, car c’est important. Donnons quelques exemples d’associations de promotion et dĂ©fense du Libre, des droits dans l’espace numĂ©rique ou de la libertĂ© d’expression, dont les dons sont dĂ©ductibles en France : Acrimed, Amnesty France, Basta!, Debian France, Disclose, Framasoft (20 ans <3), FĂ©dĂ©ration internationale pour les droits humains (FIDH), Fonds pour une Presse Libre, Libre Ă  Toi / Radio Cause Commune, Ligue des Droits de l’Homme (LDH), Open Food Facts, OpenStreetMap France, Politis, Reporterre, Reporters Sans FrontiĂšres (RSF), WikimĂ©dia France, (qui n’est pas la Wikimedia Foundation Ă©tats-unienne qui collecte aussi des dons), etc. Ce premier mardi de dĂ©cembre (jour de rĂ©daction de cette dĂ©pĂȘche) est aussi le Giving Tuesday (aussi appelĂ©e journĂ©e mondiale de la gĂ©nĂ©rositĂ© et de la solidaritĂ©).

    Sommaire

    Et comme tu fais vivre les principes du Libre, que tu contribues Ă  des projets libres et dĂ©fends des idĂ©es, tu soutiens aussi des associations ne bĂ©nĂ©ficiant pas de la dĂ©ductibilitĂ© des dons en France (par exemple, des associations jugĂ©es trop dĂ©rangeantes ou trop critiques par le gouvernement
 ou des associations europĂ©ennes ou non, voire des associations n’ayant jamais fait la dĂ©marche, comme LinuxFr). Citons par exemple AFUL, April, Debian CH (dĂ©ductible en Suisse), European Digital Rights (EDRi), En Vente Libre, Exodus Privacy, FACIL, FFII, FreeBSD Foundation, FSF (avec une longue liste de mĂ©thodes pour donner), FSFE (dĂ©ductibilitĂ© dans plusieurs pays), Paheko, GNOME et GIMP, Haiku (dĂ©ductible aux États‐Unis), IHateMoney, Internet Archive (dĂ©ductible aux États‐Unis), KDE e.V (dĂ©ductible en Allemagne), LĂ©a-Linux, LILA, LQDN, Mageia, Nos Oignons, noyb, OKFN, PHP Foundation, SlackBuild.org, Tails (dĂ©ductible en Allemagne), TechInquiry (dĂ©ductible aux États-Unis), Toile Libre, Tor (dĂ©ductible aux États-Unis et en Europe], Ubuntu-Fr, XSF, etc. (notez qu’elles peuvent parfois avoir la dĂ©ductibilitĂ© des dons dans d’autres pays, voir la dĂ©cision C-318/07 mentionnĂ©e plus bas).

    Cette dĂ©pĂȘche rĂ©currente vit aussi grĂące Ă  vos remarques, propositions d’ajouts, de complĂ©ments et vos retours sur les systĂšmes fiscaux et les dons dans vos pays respectifs. N’hĂ©sitez pas Ă  la commenter pour l’enrichir. Bien que rĂ©currente, cette dĂ©pĂȘche est mise Ă  jour et enrichie chaque annĂ©e.

    PrĂ©cision : la dĂ©pĂȘche parle bien de « don Â» (je soutiens sans rien obtenir Ă  titre personnel), pas de « financement participatif avec contrepartie Â» (je cofinance en Ă©change de goodies ou avantages), les deux Ă©tant destinĂ©s Ă  des choses diffĂ©rentes. Si vous avez lu jusqu’ici, un dessin xkcd sur le sujet en rĂ©compense (et d’autres images plus loin pour rĂ©compenser les libristes patients qui liront jusqu’au bout).

    Pourquoi les associations ayant des permanents ont des besoins rĂ©currents d’argent ? (tirĂ© de l’épisode 12 mais mis Ă  jour)

    Quand une association veut passer de zĂ©ro Ă  un permanent ou Ă  un permanent de plus, elle n’a gĂ©nĂ©ralement pas en rĂ©serve de quoi le payer sur une annĂ©e complĂšte. Elle prend donc un risque avec une visibilitĂ© sur x mois (comme n’importe quel chef d’entreprise), en faisant de son mieux pour que l’argent rentre (le nouveau permanent va « produire Â», une campagne de communication ou d’appel Ă  don ou autres sera lancĂ©e, une subvention sera recherchĂ©e, une convention sera signĂ©e avec tel ou tel, des goodies seront vendus, etc.).

    Soutenez Framasoft, parce que le Libre n’est pas qu’une question de logiciel

    Une association qui ne veut pas s’embĂȘter Ă  rechercher des fonds ou qui ne vise pas Ă  passer le cap du premier permanent n’a pas du tout ce souci et peut ĂȘtre trĂšs indolente si elle veut.

    DĂšs qu’il y a un besoin rĂ©current de payer des salariĂ©s, de payer Ă  date les charges de l’employeur — qu’il faut prĂ©voir Ă  trois mois s’il faut gĂ©rer un prĂ©avis de licenciement Ă©conomique ou pas, etc. —, cela devient plus compliquĂ© (comme pour n’importe quel chef d’entreprise). Une association militante qui ne prendrait pas de risque financier du tout, ce n’est pas envisageable Ă  mon avis. Toute la question Ă©tant de savoir combien elle rĂ©ussit Ă  faire rentrer d’argent au moment oĂč c’est nĂ©cessaire, si elle peut continuer Ă  embaucher pour grossir, faire plus d’actions ou faire mieux, si elle doit licencier, ou bien si elle doit stagner ou continuer ainsi dans l’immĂ©diat.

    Donc, oui, on a toujours l’impression que les associations ayant des permanents recherchent de l’argent (et dĂ©cembre est particulier, car c’est la fin de l’exercice fiscal et traditionnellement la pĂ©riode des dons dĂ©fiscalisĂ©s, notamment cĂŽtĂ© humanitaire associĂ© aux bons sentiments des fĂȘtes de fin d’annĂ©e). Et oui, en dĂ©cembre, la Croix Rouge ou le Secours Populaire, April, RSF, LQDN, la FSF, Amnesty, Framasoft et bien d’autres font des appels Ă  don.

    Soutenons La Quadrature du Net !

    En dehors de la simple mais cruciale question de la trésorerie (pérennité / continuité), il y a bien évidemment aussi les projets et actions futures à financer. Citons par exemple la justification de Framasoft (une dizaine de permanents) en six points :

    1. parce que l’enfermement, c’est maintenant ;
    2. pour plus d’alternatives libres ;
    3. parce que les gentils, c’est nous !
    4. pour dĂ©cider oĂč vont vos impĂŽts (avec dĂ©fiscalisation) ;
    5. parce que l’économie du don rend indĂ©pendant ;
    6. pour changer le monde ensemble.

    Quelques chiffres : « Chacun s’accorde pour estimer que prĂšs de 90% des associations fonctionnent exclusivement grĂące Ă  leurs bĂ©nĂ©voles. Vitale dans ces associations, cette ressource humaine reste essentielle dans les 10 Ă  12% d’associations employant des salariĂ©s Â»
    « en 2022, l’emploi privĂ© non lucratif au sein des associations et des fondations reprĂ©sente plus de 155 000 employeurs, plus de 2 millions de salariĂ©s, soit 9,5% du total des salariĂ©s du secteur privĂ©, et une masse salariale de plus de 54,4 milliards d’euros (prĂšs de 7% de la masse salariale du secteur privĂ©) Â» (Recherche et SolidaritĂ©s)

    Et sur l’évolution des bĂ©nĂ©voles et du mĂ©cĂ©nat de compĂ©tences :

    « Les 25-34 ans sont de plus en plus nombreux Ă  s’engager (30% en 2024 pour 22% en 2019), quand les 70 ans et plus perdent 10 points pour n’ĂȘtre que 24% aujourd’hui. Â»
    « En 2024, 9% des Français sont prĂ©sents chaque semaine dans leurs associations, ils Ă©taient 10% en 2019 et 12,5% en 2010. Â»
    « Ces tendances fragilisent la colonne vertĂ©brale des associations, Ă  savoir celles et ceux qui les font vivre au quotidien qui se trouvent privĂ©es de l’expĂ©rience et de la disponibilitĂ© des seniors Â»
    « Parmi les perspectives positives, le mĂ©cĂ©nat de compĂ©tences poursuit sa percĂ©e avec 27% de bĂ©nĂ©voles tentĂ©s par l’expĂ©rience en 2024 ; ils Ă©taient 23% en 2022 et 20% en 2019. Â» (Recherche et SolidaritĂ©s et France GĂ©nĂ©rositĂ©s)

    Petit rappel sur les impĂŽts en France (tirĂ© de l’épisode 10 mais mis Ă  jour)

    • l’article 200 du Code gĂ©nĂ©ral des impĂŽts prĂ©voit pour un particulier une dĂ©duction fiscale de 66 % (rĂ©duction d’impĂŽt sur le revenu dans la limite de 20 % du revenu imposable, reportable sur cinq ans en cas de dĂ©passement de ce plafond) des dons vers les associations d’intĂ©rĂȘt gĂ©nĂ©ral ou reconnues d’utilitĂ© publique ; ce pourcentage monte mĂȘme Ă  75 % pour les organismes d’aide aux personnes en difficultĂ© (dans la limite de 521 €, au‐delĂ , on retombe sur les 66 %) ;
    • l’article 238 bis du CGI prĂ©voit une dĂ©duction fiscale de 60 % des dons pour une entreprise (rĂ©duction d’impĂŽt sur le revenu ou d’impĂŽt sur les sociĂ©tĂ©s dans la limite de 5 ‰ du chiffre d’affaires hors taxes, reportable sur cinq ans en cas de dĂ©passement de ce plafond) vers les associations d’intĂ©rĂȘt gĂ©nĂ©ral ou reconnues d’utilitĂ© publique ;
    • fiche pratique ServicePublic.fr : « Ă€ noter : l’organisme peut ĂȘtre en France ou dans un État membre de l’Union europĂ©enne : Allemagne, Autriche, Belgique, Bulgarie, Chypre, Croatie, Danemark, Espagne, Estonie, Finlande, France, GrĂšce, Hongrie, Irlande, Italie, Lituanie, Lettonie, Luxembourg, Malte, Pays-Bas, Pologne, Portugal, RĂ©publique tchĂšque, Roumanie, Slovaquie, SlovĂ©nie, SuĂšde, en Islande, en NorvĂšge ou au Liechtenstein. S’il n’est pas agrĂ©Ă©, vous devez justifier qu’il a un objectif et des caractĂ©ristiques similaires aux organismes situĂ©s en France et pouvant bĂ©nĂ©ficier du dispositif. Â»
    • loi n° 2021-1109 du 24 aoĂ»t 2021 : « Art. 222 bis.-A l’exception de ceux mentionnĂ©s au 3 de l’article 200, les organismes qui dĂ©livrent des reçus, des attestations ou tous autres documents par lesquels ils indiquent Ă  un contribuable qu’il est en droit de bĂ©nĂ©ficier des rĂ©ductions d’impĂŽt prĂ©vues aux articles 200,238 bis et 978 sont tenus de dĂ©clarer chaque annĂ©e Ă  l’administration fiscale, dans les dĂ©lais prĂ©vus Ă  l’article 223, le montant global des dons et versements mentionnĂ©s sur ces documents et perçus au cours de l’annĂ©e civile prĂ©cĂ©dente ou au cours du dernier exercice clos s’il ne coĂŻncide pas avec l’annĂ©e civile ainsi que le nombre de documents dĂ©livrĂ©s au cours de cette pĂ©riode ou de cet exercice. Â»

    France gĂ©nĂ©rositĂ©s mentionne des Ă©volutions rĂ©centes (juillet 2024), notamment le fait que les dons des particuliers aux organismes d’intĂ©rĂȘt gĂ©nĂ©ral qui concourent Ă  l’égalitĂ© entre les femmes et les hommes ouvrent droit Ă  rĂ©duction d’impĂŽt et la prorogation jusqu’au 31 dĂ©cembre 2026 du plafond dĂ©rogatoire de 1 000 € applicable aux dons retenus pour la rĂ©duction d’impĂŽt de 75 % accordĂ©e au titre des dons versĂ©s aux organismes qui apportent une aide gratuite aux personnes en difficultĂ©.

    Exemple pour un particulier : je suis imposable et donne 99 € Ă  l’association XYZ bĂ©nĂ©ficiant de la dĂ©ductibilitĂ© des dons Ă  hauteur de 66 %. Mon don me coĂ»te en fait (au final) 33 €, j’ai temporairement avancĂ© 66 € qui seront ensuite dĂ©duits de mon imposition fiscale (dit autrement, j’ai choisi l’attribution de 66 € du budget de l’État).

    Soutenir Framasoft

    Autres infos :

    Les dons en France (tirĂ© de l’épisode 11 mais mis Ă  jour)

    « 51 % des Français dĂ©clarent avoir donnĂ© au moins une fois en 2023 Ă  une fondation ou Ă  un organisme caritatif (+1 point par rapport Ă  2022). Â»

    (BaromÚtre de la solidarité 2024)

    « En 2023, la gĂ©nĂ©rositĂ© des Français tient bon dans un contexte encore difficile, avec une progression de 2,1% des dons par rapport Ă  2022 en euros courants. Â» (ainsi que la « poursuite de la baisse des petits dons Â» et un « focus sur les urgences mĂ©diatisĂ©es Â»)

    (BaromÚtre de la générosité 2023)

    « l’augmentation des investissements est aussi due Ă  des coĂ»ts d’acquisition en hausse (+ 28%) en raison d’une concurrence accrue pour atteindre 33 € de coĂ»t d’acquisition moyen par donateur sur les campagnes de fin d’annĂ©e (CFA) 2022 du panel de l’étude mais pour un don moyen de 172 € (+ 10%). Â»
    (BaromĂštre Orixa Fundraising 2023)

    « L’étude de Recherches & SolidaritĂ©s montre une progression de 6,3% du montant total des dons dĂ©clarĂ©s au titre de l’IR en 2022 par rapport Ă  2021.
    L’étude de Recherches & SolidaritĂ©s montre une progression de 3,9% du nombre de foyers fiscaux donateurs en 2022 par rapport Ă  2021. Â»
    (Étude 2023 sur les dons dĂ©clarĂ©s 2022 – Recherches & SolidaritĂ©s)

    « en 2022 : en moyenne, les donateurs de 35-54 ans correspondent Ă  une pĂ©nĂ©tration de 5,5% des Français de cette tranche d’ñge. Soit le plus faible taux comparĂ© aux autres tranches d’ñge. Â» (Étude sur le don des 35-54 ans – France)

    Admincal indique que « seulement 4,61 % des entreprises assujettis Ă  l’ImpĂŽt sur les SociĂ©tĂ©s (IS) dĂ©duisent des dons du mĂ©cĂ©nat Â».

    Selon Infodon.fr (via une enquĂȘte Ifop pour France gĂ©nĂ©rositĂ©s, rĂ©alisĂ©e sur un Ă©chantillon reprĂ©sentatif de la population française (4031 personnes) – Mai 2023)
    « 69% des Français dĂ©clarent soutenir financiĂšrement assos et fondations, « 46 % donnent au moins une fois par an Â». À comparer avec les chiffres donnĂ©s en 2022 (72% 48%), 2021 (58%, 45%) et 2020 (52%, 40%).

    Petit rappel sur les impĂŽts d’autres pays (tirĂ© de l’épisode 12 mais mis Ă  jour)

    ForcĂ©ment, je connais mieux le sujet pour la France, mais voici nĂ©anmoins quelques infos glanĂ©es pour d’autres pays (et je ne doute pas que les visiteurs complĂ©teront dans les commentaires) :

    Exemple de dons (source)

    Exemple de dons financiers et parfois de temps

    « Sacrifier une partie de son revenu pour faire un don Ă  une association, c’est une affaire sĂ©rieuse. Â» (patrick_g)
    Liste non exhaustive de dons financiers ou de temps à des associations du Libre ou pour libérer quelque chose :

    Pour les exemples plus ou moins exhaustifs sur les 11 premiĂšres annĂ©es de cette sĂ©rie de dĂ©pĂȘches, voir la section de l’annĂ©e 2022

    Exemple de dons de matériel ou ressources

    Pour les exemples plus ou moins exhaustifs sur les 11 premiĂšres annĂ©es de cette sĂ©rie de dĂ©pĂȘches, voir la section de l’annĂ©e 2022.

    Johann « nojhan » — CC-BY-SA-fr, LAL, GFDL

    Diffusion des idées et questionnements autour du don

    Pour les exemples plus ou moins exhaustifs sur les 11 premiĂšres annĂ©es de cette sĂ©rie de dĂ©pĂȘches, voir la section de l’annĂ©e passĂ©e.

    Lettre au PĂšre NoĂ«l — ClĂ©ment Clem Quaquin — Licence Art libre

    Don Ă  une entreprise ? (tirĂ© de l’épisode 11 mais mis Ă  jour)

    Une question un peu annexe ici vu le titre « dons aux associations Â» mais qui a dĂ©jĂ  Ă©tĂ© posĂ©e ici ou lĂ  sur LinuxFr.org : peut‐on faire un don (sans contrepartie) Ă  une entreprise ? Pour prendre quelques sites que j’aime bien : Next.ink anciennement Next INpact (SARL de presse) a optĂ© pour un mĂ©lange de comptes premium (avec contrepartie, donc), publicitĂ©s et dons. Voir les appels Ă  dons 2023 pour le Fonds pour une presse libre ou Next.ink par exemple). Tandis que Reflets.info (SAS) accepte les dons.

    Lors d’une recherche rapide prĂ©cĂ©dente, j’avais vu Ă©voquer l’utilisation du compte 7713 « libĂ©ralitĂ©s perçues Â» du plan comptable, d’un justificatif clair pour la comptabilitĂ© (un expert comptable et/ou un notaire sont Ă©voquĂ©s), d’une exonĂ©ration de TVA si aucune vente de bien ou de service n’est associĂ©e. Bref, la question des taxes et impĂŽts Ă  payer pour le donateur (60 % entre non‐parents ?) et l’entreprise n’est pas forcĂ©ment claire. Cela reste assez flou et hypothĂ©tique, et ça mĂ©riterait une question aux impĂŽts.

    « Oups, j’ai procrastinĂ© sur mes dons » gĂ©nĂ©rĂ© avec https://framalab.org/gknd-creator/.

    Logiciels libres pour gĂ©rer les dons (tirĂ© de l’épisode 12 mais mis Ă  jour)

    La question avait Ă©tĂ© posĂ©e lors de l’épisode 3 de cette sĂ©rie de dĂ©pĂȘches : quel(s) logiciel(s) libre(s) utiliser pour faire les dons ? Ou pour les gĂ©rer ? En gĂ©nĂ©ral, pour les faire, un navigateur fait l’affaire : paiement en ligne, rĂ©ception de l’éventuel reçu fiscal, rĂ©ception d’un Ă©ventuel message de remerciement.

    Pour les reçus fiscaux, il convient de les conserver avec les documents des impÎts pendant le temps nécessaire (suivant la législation locale).

    Pour les dons via des intermĂ©diaires, par exemple Liberapay ou HelloAsso, il faut conserver soigneusement les identifiants du compte crĂ©Ă© pour l’annĂ©e suivante.

    Si vous avez optĂ© pour l’adhĂ©sion Ă  une structure plutĂŽt que le don, vous allez recevoir des identifiants aussi et probablement une lettre interne ou des choses du genre, ainsi que certainement une convocation Ă  une assemblĂ©e gĂ©nĂ©rale annuelle.

    Et si vous avez optĂ© pour versement rĂ©gulier (virement ou prĂ©lĂšvement), ça ne change pas fondamentalement les choses ; Ă©ventuellement, l’organisme qui prĂ©lĂšve vous prĂ©vient un peu avant chaque prĂ©lĂšvement par courriel.

    Il existe aussi dans le Libre des logiciels ou des événements spécialement prévus pour les dons :

    À ma connaissance, le site HelloAsso, structure ayant obtenu son agrĂ©ment « Entreprise solidaire d’utilitĂ© sociale », Ă©voquĂ© dans un commentaire de 2015, n’utilise pas une plate‑forme libre, contrairement Ă  Liberapay.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Deno 2.0 est lĂ 

    Le temps oĂč Node.js rĂ©gnait en maĂźtre comme la solution incontournable pour exĂ©cuter du code JavaScript cĂŽtĂ© serveur est-il rĂ©volu ? En tout cas, il a aujourd’hui des challengers de taille comme Bun (qui pourrait lui aussi mĂ©riter une dĂ©pĂȘche) ou Deno. C'est donc de ce dernier qu'il sera question dans cette dĂ©pĂȘche, Ă  l'occasion de la sortie de sa version 2.0

    Sommaire

    Titre de l'image

    Pour rappel

    Deno est un runtime JavaScript et TypeScript. Il a vu le jour suite au constat de Ryan Dahl (crĂ©ateur aussi de Node.js), que Node avait des problĂšmes de conceptions, et qu'il Ă©tait nĂ©cessaire de repartir de zĂ©ro en tenant compte de l'expĂ©rience de Node pour ne pas refaire les mĂȘmes erreurs. Il imagine Deno comme un runtime avec un modĂšle de sĂ©curitĂ© par dĂ©faut plus strict. Les programmes Deno n'ont pas accĂšs au systĂšme de fichiers, au rĂ©seau ou Ă  l'environnement, sauf si on leur accorde explicitement ces permissions. Deno est Ă©crit en Rust, et se base sur le moteur JavaScript V8 de Google. Deno se distingue Ă©galement de Node en offrant la possibilitĂ© d'importer les dĂ©pendances via des URL, mettant en cache chaque module lors de l’importation pour amĂ©liorer la vitesse d’exĂ©cution.

    La mascotte !

    La premiĂšre chose notable quand on passe de Node.js Ă  Deno, c'est sa mascotte ! En effet, mĂȘme si Node.js possĂšde bien une petite tortue comme mascotte, celle-ci n'est utilisĂ©e nulle part ! Personnellement, j'ai toujours trouvĂ© bien plus chouettes les projets qui ont des petites bestioles comme mascotte (Mozilla, Tux 
). Et chez Deno, le dinosaure mascotte est omniprĂ©sent sur tout le site. Et en plus, Ă  l'occasion de la version 2.0, on peut habiller notre dino sur la home page du projet ! Et ça c'est cool ! Voici le mien, qui est en compagnie de Ferris, la mascotte officieuse de Rust !

    Mon dino

    Bon, comme je ne suis pas sĂ»r que tout le monde partage ma passion pour les mascottes, on va passer au cĂŽtĂ© plus technique ! đŸ€Ł

    Deno 1.x, des dĂ©buts difficiles !

    La version 1.0 sortie en mai 2020 a du mal Ă  se faire une place et reste dans l'ombre de son grand frĂšre. En effet, mĂȘme si Deno offre un grand lot de nouveautĂ©s et est plus sĂ©curisĂ© par dĂ©faut, la trĂšs large adoption de Node et le fait que les projets dĂ©veloppĂ©s pour Node ne sont pas forcĂ©ment compatibles avec Deno rend l’adoption de ce dernier difficile. De plus, l'utilisation de CDN plutĂŽt que d'installer les dĂ©pendances localement (dans le rĂ©pertoire node_modules) a certes de nombreux avantages, mais cela rend votre projet dĂ©pendant de disponibilitĂ© du rĂ©seau ou peut entraĂźner des problĂšmes de performances si le CDN est Ă©loignĂ© gĂ©ographiquement.

    Les nouveautés de la version 2.0

    Deno est désormais 100% compatible avec Node.js, et un gestionnaire de paquets officiel a vu le jour. Vous pouvez maintenant utiliser deno add et deno removepour ajouter ou retirer un paquet à votre projet.

    Autour du projet Deno, JavaScript Registry (JSR) un dĂ©pĂŽt de paquets JavaScript universel !

    Le registre NPM s'est construit autour de Node.js afin de gĂ©rer facilement les dĂ©pendances de nos projets. Il a donc Ă©tĂ© dĂ©veloppĂ© pour Node.js Ă  une Ă©poque oĂč Node Ă©tait la seule solution pour exĂ©cuter du code JavaScript cĂŽtĂ© serveur. En prĂšs de 15 ans, le registre NPM a rassemblĂ© un peu moins de 3 millions de paquets et a trĂšs largement rempli sa mission toutes ces annĂ©es. Mais aujourd'hui, la situation a changĂ©, il existe plusieurs runtimes pouvant exĂ©cuter du code JavaScript (ou TypeScript) cĂŽtĂ© serveur. Et du cĂŽtĂ© front-end, les frameworks se sont multipliĂ©s et sont devenus de plus en plus complexes et nĂ©cessitent aussi l'utilisation d'un gestionnaire de paquets. Un registre de paquets fondĂ© autour de Node.js uniquement est donc beaucoup moins pertinent qu'en 2010.
    C'est donc pourquoi, Ă  l'initiative du projet Deno, un nouveau registre de paquets JavaScript et TypeScript universel pointe aujourd'hui le bout de son nez. Il s'agit donc de JSR (JavaScript Registry).

    Dans JSR, quand on va sur la page d'un paquet, en haut Ă  droite, on a les logos des environnements compatibles avec le paquet :

    Titre de l'image

    Performances du runtime

    Niveau performance, ça donne quoi ?

    On voit souvent l'affirmation que Deno serait plus rapide que Node.js. Mais ça donne quoi en rĂ©alitĂ© ?

    J'ai voulu faire un petit test sans prĂ©tentions pour voir ce que ça donne. Je voulais faire des tests plus poussĂ©s sur diffĂ©rents systĂšmes d'exploitation et architectures, mais par manque de temps, le test sera donc fait sur un seul systĂšme et un seul ordinateur et il s'agit d'un Mac
 Un comble pour LinuxFr.org, mais c'est l'ordinateur que j'avais Ă  disposition Ă  ce moment-lĂ . Mais sinon, je ne porte pas spĂ©cialement Apple dans mon cƓur, bien au contraire !

    J'ai testĂ© l’exĂ©cution d'une mĂȘme API sur Node. et Deno pour voir les diffĂ©rences de performance entre ces solutions. Pour ce test, j'ai utilisĂ© une API Rest que j'ai dĂ©veloppĂ©e pour le site de la sociĂ©tĂ© AudioSoft. J'ai fait la mĂȘme requĂȘte POST 10 fois sur la mĂȘme route avec les mĂȘmes donnĂ©es. Il est important de prĂ©ciser que c'est la premiĂšre fois que je fais ce genre de tests, et que je ne fais peut-ĂȘtre pas tout dans les rĂšgles de l'art. Il y a des Ă©lĂ©ments extĂ©rieurs Ă  Node et Deno qui peuvent influencer les scores. Notamment, la base de donnĂ©es utilisĂ©e pour le test Ă©tait accessible via Internet, et des diffĂ©rences de dĂ©bit ont pu fausser les tests.

    Test sur un MacBook Pro (2,6 GHz Intel Core i7 6 cƓurs, AMD Radeon Pro 5300M 4 Go Intel UHD Graphics 630 1536 Mo, 16 Go 2667 MHz DDR4) sous macOS Sonoma

    Node: Le temps moyen pour exécuter le test de 126 millisecondes
    Deno: Le temps moyen pour exécuter le test de 93 millisecondes

    Performances du gestionnaire de paquets

    Comme dit précédemment, Deno c'est aussi un gestionnaire de paquets. J'ai donc trouvé intéressant de tester les principaux gestionnaires de paquets sur différents environnements.
    Pour ce test je me base sur la mĂȘme API Rest que pour le test prĂ©cĂ©dant, les dĂ©pendances Ă  installer pour cette API sont : bcrypt, body-parser, dotenv, express, jsonwebtoken, mariadb, multer, mysql2, nodemailer, et sequelize. Le test a Ă©tĂ© fait sur un MacBook Pro. Pour effectuer ce test, le cache des gestionnaires de paquets ont Ă©tĂ© nettoyĂ©s et les fichiers-verrous supprimĂ©s.

    Avec NPM, l'installation a mis 10 secondes.

    Avec Deno, l'installation a mis 1 seconde.

    Avec Bun, l'installation a mis 3 secondes.

    On voit trĂšs clairement que NPM est beaucoup plus lent que ses deux concurrents. L'Ă©cart est plus faible entre Deno et Bun. Mais Deno est bien le plus rapide des trois.

    Avant de rĂ©aliser ce test, j'en ai effectuĂ© un en oubliant de nettoyer le cache et de supprimer package-lock.json. Les rĂ©sultats Ă©taient alors 8 secondes pour NPM, 5 secondes pour Deno et 4 secondes pour Bun. Il est logique de constater que NPM est plus rapide, en revanche, je trouve surprenant que Deno et Bun aient Ă©tĂ© ralentis. Il est possible que les gestionnaires de paquets aient parcouru package-lock.json pour garder les versions prĂ©sentes dans ce fichier, ce qui les aurait tous les trois ralentis. Et NPM a peut-ĂȘtre pu bĂ©nĂ©ficier de son cache (car je l'utilise bien plus que les deux autres sur mon ordinateur), Deno et Bun eux n'avaient peut-ĂȘtre pas grand-chose dans leurs caches, ont donc Ă©tĂ© ralentis. Il est donc important de supprimer les lockfile en cas de migration d'un projet.

    Comme je le disais plus haut, c'est la premiĂšre fois que j'effectue ce genre de test comparatif. Si vous avez des conseils sur les bonnes mĂ©thodes pour faire des tests plus fiables, ça m’intĂ©resse !

    Deno 2.1 est lĂ 

    Étant donnĂ© que j'ai mis environ un siĂšcle pour rĂ©diger cette dĂ©pĂȘche, Deno 2.1 est sortie entre temps ! đŸ€Ł
    Je vous liste donc les principales nouveautĂ©s apportĂ©es Ă  la version 2.1 sans les commenter 😉

    • Support natif de WebAssembly (Wasm) : Il est dĂ©sormais possible d'importer directement des modules Wasm, simplifiant leur utilisation et amĂ©liorant les performances.
    • Version Long Term Support (LTS) : Deno 2.1 inaugure la premiĂšre version LTS, garantissant des correctifs de bugs et des amĂ©liorations de performance pendant
 Six mois
 On n'est pas encore aux 30 mois des versions LTS de Node.js
 Cela viendra peut-ĂȘtre plus tard. 🙂
    • Commande deno init --npm vite : Cette commande simplifie la crĂ©ation de nouveaux projets en utilisant des outils comme Vite, en automatisant l'initialisation et en rĂ©duisant la configuration manuelle.
    • Gestion des dĂ©pendances : Introduction de la commande deno outdated pour gĂ©rer les mises Ă  jour des dĂ©pendances JSR et npm.

    Conclusion

    Si vous ĂȘtes dĂ©veloppeur Node.js, je vous conseille de vous intĂ©resser Ă  Deno, et mĂȘme Ă  Bun. Je ne sais pas si ces deux runtime sont totalement prĂȘts pour des projets en production (par exemple, Deno 2.1 n'a que 6 mois de durĂ©e de vie, ce qui est plutĂŽt contraignant pour les serveurs.). Mais peut-ĂȘtre que dans un futur proche, il sera cohĂ©rent de migrer vers l'un de ces deux-lĂ .

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    L' appel à présentations de la conférence OW2con'25 est ouvert !

    OW2 est ravi d'annoncer l'ouverture de l'appel Ă  prĂ©sentations d'OW2con'25 ! La confĂ©rence annuelle aura lieu les 17 et 18 juin 2025, sur le site des Jardins de l'Innovation de Orange Ă  Paris-ChĂątillon. CommunautĂ© open source internationale et indĂ©pendante, OW2 est dĂ©diĂ©e au dĂ©veloppement de logiciels professionnels de qualitĂ© industrielle, et regroupe des entreprises, des collectivitĂ©s et des organismes de recherche de premier plan dont Orange, l’Inria, la Mairie de Paris et l'institut allemand Fraunhofer Fokus.

    OW2con25

    OW2con est la confĂ©rence open source europĂ©enne organisĂ©e par OW2. Rencontre internationale de contributeurs, Ă©diteurs, ESN, acadĂ©miques, et organisations Ă  but non lucratif, OW2con rassemble l'ensemble de la communautĂ© open source. OW2con est ouvert Ă  tous, l’évĂšnement est gratuit et les confĂ©rences ont lieu en anglais.

    Appel à présentations :

    Cette annĂ©e l'accent sera mis sur le thĂšme de l'open source et l'IA responsable. Au-delĂ  du buzz de l'IA nous souhaitons aborder des sujets tel que : open source et communs, technologies et innovations, donnĂ©es, souverainetĂ©, vie privĂ©e, cadre juridique, financement et Ă©conomie, durabilitĂ©, impact sur le travail et la sociĂ©tĂ©, etc. Comment l'open source contribuera-t-il Ă  cette transformation ?

    Merci de soumettre vos propositions, en anglais, avant le 23 février 2025 dans ce thÚme ou dans l'un des sujets annoncés dans le formulaire de l'appel à présentations.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Bénévalibre - « Libre à vous ! » du 12 novembre 2024 - Podcasts et références

    22 novembre 2024 Ă  04:27

    Deux-cent-vingt-sixiĂšme Ă©mission « Libre Ă  vous ! Â» de l’April. Podcast et programme :

    • sujet principal : BĂ©nĂ©valibre, un logiciel libre pour faciliter la valorisation du bĂ©nĂ©volat
    • la chronique « Que libĂ©rer d’autre que du logiciel Â» avec Antanak, intitulĂ©e : « IdentitĂ© numĂ©rique Â»
    • « Ă€ la rencontre du libre Â» poursuit son tour de France avec Martin Hardy, professeur en cursus Bachelor « Expert en informatique Â» Ă  Agen, dans le Lot-et-Garonne, Ă  l'ESIA : « comment utilise-t-il les logiciels libres dans cette Ă©cole ? Â»

    Rendez‐vous en direct chaque mardi de 15 h 30 Ă  17 h sur 93,1 FM en Île‐de‐France. L’émission est diffusĂ©e simultanĂ©ment sur le site Web de la radio Cause Commune.

    Pas d'émission inédite le 26 novembre.

    Mardi 3 décembre 2024, nous recevrons Philippe Bareille, en charge de l'Open Source, et Magali Lemaire, la cheffe du bureau de l'ingénierie logicielle, de la ville de Paris.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    🏆 Meilleures contributions LinuxFr.org : les primĂ©es d'octobre 2024

    14 novembre 2024 Ă  01:25

    Nous continuons sur notre lancĂ©e de rĂ©compenser celles et ceux qui chaque mois contribuent au site LinuxFr.org (dĂ©pĂȘches, commentaires, logo, journaux, correctifs, etc.). Vous n’ĂȘtes pas sans risquer de gagner un livre des Ă©ditions Eyrolles, ENI et D-Booker. Voici les gagnants du mois d'octobre 2024 :

    Les livres gagnĂ©s sont dĂ©taillĂ©s en seconde partie de la dĂ©pĂȘche. N’oubliez pas de contribuer, LinuxFr.org vit pour vous et par vous !

    Les livres 📚 sĂ©lectionnĂ©s

    Bandeau LinuxFr.org

    Certaines personnes n’ont pas pu ĂȘtre jointes ou n’ont pas rĂ©pondu. Les lots ont Ă©tĂ© rĂ©attribuĂ©s automatiquement. N’oubliez pas de mettre une adresse de courriel valable dans votre compte ou lors de la proposition d’une dĂ©pĂȘche. En effet, c’est notre seul moyen de vous contacter, que ce soit pour les lots ou des questions sur votre dĂ©pĂȘche lors de sa modĂ©ration. Tous nos remerciements aux contributeurs du site ainsi qu’aux Ă©ditions Eyrolles, ENI et D-Booker.

    Logo Ă©ditions ENI Logo Ă©ditions Eyrolles Logo Ă©ditions B-BookeR
         

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Capitole du Libre 2024 - au programme du 16 et 17 novembre

    Le Capitole du Libre est un week-end dĂ©diĂ© au logiciel libre et Ă  la culture libre en Occitanie. Cette annĂ©e, la onziĂšme Ă©dition se tiendra les samedi 16 et dimanche 17 novembre 2024 Ă  l’ENSEEIHT, dans le centre‐ville de Toulouse (INP-N7).

    Capitole du Libre

    En quelques mots

    Le Capitole du Libre, c'est:

    • PrĂšs de 100 confĂ©rences
    • Une dizaine d'ateliers
    • Une trentaine de stands associatifs
    • Une communautĂ© prĂ©sente en nombre : plus de 1000 participants tous les ans
    • Tous les publics reprĂ©sentĂ©s, du curieux au dĂ©veloppeur noyau, en passant par les geeks et les supporters de la culture libre

    Présentation

    ComplÚtement gratuit, le Capitole du Libre regroupe un large ensemble d'activités:

    • des confĂ©rences, qui couvrent un large ensemble de sujets et permettront Ă  tous les publics de dĂ©couvrir ou d'approfondir des sujets techniques, leur maĂźtrise d'un logiciel, les actualitĂ©s relatives au numĂ©rique, etc.
    • des ateliers, pour dĂ©couvrir par la pratique des logiciels libres
    • une table ronde: cette annĂ©e, elle portera sur le thĂšme des modĂšles de gouvernance des projets libres

    Un village associatif sera également présent pour vous permettre de rencontrer et discuter avec de nombreux acteurs du monde libre.

    ⚠ L'accĂšs est gratuit, mais une inscription est obligatoire.

    Flyer de l'Ă©vĂšnement

    Keynotes

    Deux moments sont proposés pour cette édition:

    Ateliers

    Venez dĂ©couvrir le logiciel libre lors d’ateliers avec des experts pour vous assister.

    Les ateliers au programme cette année traiteront de logiciels de dessin, de réalisation de jeu vidéo, de réalisation physique d'objets, de développement, de résolution de problÚmes, d'éditeurs de textes, etc.

    Village associatif

    Retrouvez les associations qui Ɠuvrent pour le logiciel libre : Framasoft, April, Toulibre, CHATONS


    Install party

    Venez-vous faire aider pour installer Linux, pour corriger les problĂšmes que vous rencontrez avec votre installation ou pour toute question autour du logiciel libre.
    Un atelier permanent est dédié tout le week-end.

    Boutique

    Repartez avec un T-shirt de l’évĂ©nement, un sweatshirt d'un logiciel libre que vous apprĂ©ciez, un mug, 

    Les ventes permettent de financer le Capitole du Libre.

    LAN party

    Pour les jeunes (et moins jeunes) qui souhaiteraient s'amuser tout en restant dans le thĂšme du logiciel libre, venez jouer Ă  quelques jeux libres avec la LAN party.

    Cocktail

    Comme chaque année, un moment de convivialité ouvert à tous et toutes est prévu le samedi soir.

    MiniDebConf

    Logo de la MiniDebConf

    Cette année, une conférence MiniDebConf aura lieu en parallÚle du Capitole du Libre, accessible directement à partir du hall principal de l'école, et vous pourrez donc profiter des conférences des deux évÚnements à votre guise, rencontrer des développeurs Debian, etc.

    Pour plus d'information sur la MiniDebConf


    Informations pratiques

    Restauration

    Des food trucks sont à votre disposition les midis, directement à l'intérieur de l'établissement.

    Si vous préférez vous restaurer à l'extérieur, le quartier possÚde également de nombreux restaurants et boulangeries.

    Entrée

    Comme tous les ans, l’accĂšs Ă  l’évĂ©nement est totalement gratuit !

    ⚠ Attention, puisque l'Ă©tablissement qui nous accueille est une Ă©cole, une inscription en ligne est obligatoire et le personnel de sĂ©curitĂ© demandera Ă  inspecter vos sacs Ă  l'entrĂ©e.

    Les portes seront ouvertes:

    • le samedi 16 novembre 2024 de 9h30 Ă  22h
    • le dimanche 17 novembre 2024 de 10h Ă  16h30

    Nous vous attendons nombreux !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Fedora Linux 41 est dans la place

    En ce mardi 29 octobre 2024, les utilisateurs du Projet Fedora seront ravis d’apprendre la disponibilitĂ© de la version Fedora Linux 41.

    Fedora Linux est une distribution communautaire dĂ©veloppĂ©e par le projet Fedora et sponsorisĂ©e par Red Hat, qui lui fournit des dĂ©veloppeurs ainsi que des moyens financiers et logistiques. Fedora Linux peut ĂȘtre vue comme une sorte de vitrine technologique pour le monde du logiciel libre, c’est pourquoi elle est prompte Ă  inclure des nouveautĂ©s.

    Bureau GNOME

    Sommaire

    Expérience utilisateur

    Passage Ă  GNOME 47. Cette nouvelle version de l’environnement phare de Fedora propose de nombreuses amĂ©liorations. Tout d’abord, il est maintenant possible de personnaliser une couleur "accentuĂ©e" (accent color) qui influencera la couleur de nombreux Ă©lĂ©ments graphiques comme des boutons. Cela intĂšgre donc un changement en place chez Ubuntu depuis quelques annĂ©es. Pour ceux disposant de petits Ă©crans, certains boutons et autres icĂŽnes sont agrandies pour rendre leur interaction plus aisĂ©e dans ce contexte.

    L’interface a Ă©tĂ© en partie remaniĂ©e au niveau des boĂźtes de dialogue pour rendre leur interaction plus simple notamment avec des petits Ă©crans avec des boutons plus gros et plus espacĂ©s entre eux. Et bien sĂ»r ces boutons tiennent compte maintenant de la couleur accentuĂ©e explicitĂ©e prĂ©cĂ©demment. L’interface pour ouvrir ou sauvegarder un fichier repose maintenant sur le code du navigateur de fichiers nommĂ© Fichiers plutĂŽt que d’utiliser un code indĂ©pendant jusqu’ici. Cela simplifie la maintenance mais permet surtout de fournir l’ensemble des fonctionnalitĂ©s du navigateur de fichiers pour cette tĂąche. Par exemple il est possible de renommer des fichiers depuis cette interface, de changer l’ordre d’affichage en vue icĂŽnes, prĂ©visualiser les fichiers sans les ouvrir, etc. Par ailleurs, le navigateur de fichiers s’amĂ©liore aussi. Les pĂ©riphĂ©riques rĂ©seaux sont maintenant classifiĂ©s permettant d’identifier les ressources oĂč on est dĂ©jĂ  connectĂ©, qu’on a prĂ©cĂ©demment utilisĂ© et les autres. L’ensemble des disques durs internes sont Ă©galement affichĂ©s dans la barre latĂ©rale et groupĂ©s ensemble pour rendre cela plus accessible et facile d’utilisation. Il est possible Ă©galement de supprimer les dossiers par dĂ©faut dans la barre latĂ©rale pour faire de la place si on le souhaite. Et quelques autres changements plus mineurs.

    Dans la configuration de l’interface, il est possible via le menu AccessibilitĂ© de configurer le changement automatique de focus d’une fenĂȘtre Ă  une autre par le simple survol de la souris. Option dĂ©sactivĂ©e par dĂ©faut. De mĂȘme lors de l’ajout de nouvelles dispositions clavier, la prĂ©visualisation de cette disposition peut ĂȘtre effectuĂ©e avant de la sĂ©lectionner pour s’assurer que c’est bien celle souhaitĂ©e. De maniĂšre gĂ©nĂ©rale, l’affichage des prĂ©fĂ©rences est plus cohĂ©rente dans le choix des Ă©lĂ©ments graphiques pour les reprĂ©senter Ă  travers l’interface.

    Les comptes en ligne progressent Ă©galement, les informations IMAP ou SMTP sont prĂ©remplies en se basant sur l’adresse Ă©lectronique. La synchronisation du calendrier, des courriels et des contacts a Ă©tĂ© ajoutĂ©e pour les comptes Microsoft 365 pendant que la configuration d’un nouveau compte WebDAV permet de dĂ©couvrir les services accessibles depuis ce compte pour faciliter l’expĂ©rience utilisateur.

    Le navigateur web maison n’est pas en reste et propose quelques amĂ©liorations dont le prĂ© remplissage des formulaires en se basant sur les entrĂ©es prĂ©cĂ©dentes ce qui est disponible dans de nombreux navigateur. L’option peut ĂȘtre dĂ©sactivĂ©e dans les prĂ©fĂ©rences si nĂ©cessaire. Les marques pages ont Ă©tĂ© aussi remaniĂ©s en Ă©tant affichĂ©s dans un volet latĂ©ral et en proposant une barre de recherche intĂ©grĂ©e pour retrouver celui qu’on souhaite. Le navigateur peut afficher le nombre de trackers publicitaires qui ont Ă©tĂ© bloquĂ©s. Malheureusement la synchronisation des Ă©lĂ©ments via Firefox Sync n’est plus possible en ce moment Ă  cause d’un changement dans la procĂ©dure d’authentification par Mozilla.

    L’application calendrier a Ă©tĂ© Ă©galement amĂ©liorĂ©e avec par exemple une icĂŽne de cadenas qui s’affiche pour les Ă©vĂ©nements qui sont en lecture seule. La mise en page est plus cohĂ©rente notamment dans l’espacement entre les Ă©lĂ©ments visuels. L’importation ou l’édition d’évĂ©nements gĂšrent mieux les calendriers cachĂ©s ou en lecture seule. L’application de cartographie a Ă©tĂ© aussi lĂ©gĂšrement amĂ©liorĂ©e en utilisant les cartes vectorisĂ©es par dĂ©faut et en proposant les trajets en transport en commun en exploitant le service Transitous plutĂŽt qu’une solution commerciale.

    Pour les amateurs d’enregistrement de leur Ă©cran en vidĂ©o, cette tĂąche peut ĂȘtre effectuĂ©e dans la mesure du possible avec de l’accĂ©lĂ©ration matĂ©rielle ce qui diminue la consommation d’énergie et amĂ©liore les performances du systĂšme dans ce cadre. Dans la mĂȘme veine, le rendu effectuĂ© par la bibliothĂšque graphique GTK se fait via Vulkan dorĂ©navant ce qui amĂ©liore les performances en particulier pour les machines plus anciennes et avec moins d’effets visuels indĂ©sirables due Ă  la lenteur de certaines opĂ©rations. Dans la mĂȘme veine, il y a une amĂ©lioration des performances des applications vidĂ©os, photos et du navigateur web maison par la rĂ©duction quand c’est possible du nombre de copies en mĂ©moire des donnĂ©es d’une vidĂ©o ou d’une image.

    Pour ceux qui ont accĂšs Ă  leur session Ă  distance, il est dorĂ©navant possible de rendre cette session persistante. En cas de dĂ©connexion il est possible de revenir plus tard et de retrouver la session dans l’état oĂč elle Ă©tait.

    Pour les utilisateurs avancĂ©s, il y a des changements expĂ©rimentaux qui sont proposĂ©s. Si vous souhaitez utiliser la mise Ă  Ă©chelle fractionnaire de l’interface pour les applications utilisant X11 via XWayland, vous pouvez l’activer via la commande suivante :

    $ gsettings set org.gnome.mutter experimental-features '["scale-monitor-framebuffer", "xwayland-native-scaling"]'

    Couleur d’accentuation dans GNOME

    L’environnement de bureau lĂ©ger LXQt passe Ă  la version 2.0. Cette mise Ă  jour importante est essentiellement technique avec un port complet vers la bibliothĂšque graphique Qt 6 au lieu de Qt 5 qui n’est bientĂŽt plus maintenue. La prise en charge de Wayland est disponible Ă  titre expĂ©rimental, cela devrait ĂȘtre stabilisĂ© pour la version 2.1 Ă  venir.

    L’éditeur d’image GIMP utilise la branche de dĂ©veloppement qui deviendra la version 3. Cette dĂ©cision a Ă©tĂ© prise car GIMP devenait la raison principale pour maintenir le langage Python 2.7 dans la distribution qui n’est plus maintenue depuis quelques annĂ©es. Alors que GIMP 3 devrait sortir sous peu, il a Ă©tĂ© dĂ©cidĂ© de prendre potentiellement un peu d’avance pour permettre de supprimer cette dĂ©pendance assez lourde et complexe de Fedora.

    Outre cette dĂ©cision, cette version de l’application propose entre autres une meilleure gestion des couleurs avec notamment la visualisation, l’import ou l’export d’images avec la colorimĂ©trie CMJN. Les tablettes graphiques ont une expĂ©rience utilisateur amĂ©liorĂ©e avec notamment la possibilitĂ© de personnaliser l’action des boutons de ce matĂ©riel sous Wayland, et la prise en charge des Ă©crans avec une dĂ©finition HiDPI est aussi amĂ©liorĂ©e. L’édition non destructive est Ă©galement possible pour sĂ©parer l’application des effets des calques de l’image pour permettre de revenir dessus plus tard. Si on le souhaite, un calque peut se redimensionner automatiquement lors de son Ă©dition lors d’un dessin par exemple. Et bien d’autres changements.

    Le gestionnaire de listes de tĂąches Taskwarrior Ă©volue Ă  la version 3. Cette version a surtout changĂ© la maniĂšre de stocker les donnĂ©es sauvegardĂ©es et n’est pas rĂ©trocompatible avec l’ancienne mĂ©thode. Il est donc nĂ©cessaire d’exporter les tĂąches avec l’ancienne version par l’usage de la commande task export et de les importer avec la nouvelle version avec la commande task import rc.hooks=0. La tĂąche de sauvegarde est aussi confiĂ©e Ă  un nouveau module TaskChampion Ă©crit en Rust.

    La mise Ă  jour du cƓur des systĂšmes atomiques de bureau peut se faire sans droits administrateurs, mais pas les mises Ă  niveau de celui-ci Ă  savoir par exemple passer d’une version Fedora Linux Silverblue 40 Ă  Fedora Linux Silverblue 41. Cela Ă©tait dĂ©jĂ  le cas pour Fedora Silverblue avec l’usage de GNOME Logiciels mais a Ă©tĂ© de fait gĂ©nĂ©ralisĂ©. L’objectif est de simplifier la procĂ©dure de mise Ă  jour du systĂšme, qui dans le cadre d’un systĂšme atomique est considĂ©rĂ© comme plus sĂ»re que dans un systĂšme traditionnel de par sa conception qui permet facilement de revenir Ă  l’état prĂ©cĂ©dent et par la faible quantitĂ© de logiciels installĂ©s dans le cƓur du systĂšme.

    Les autres opĂ©rations ne sont pas considĂ©rĂ©es Ă  ce stade car trop risquĂ©es pour ĂȘtre confiĂ©es Ă  un simple utilisateur. Pour certaines opĂ©rations le mot de passe administrateur sera systĂ©matiquement demandĂ© telles que l’installation d’un nouveau paquet local, la mise Ă  niveau complet du systĂšme (qui consiste en une opĂ©ration de rebase avec une autre branche de travail), ou changer les paramĂštres du noyau. Pour d’autres comme l’installation d’un paquet provenant d’un dĂ©pĂŽt, la mise Ă  jour, le retour dans un Ă©tat prĂ©cĂ©dent ou l’annulation d’une commande peut se faire sans demander systĂ©matiquement le mot de passe, comme lors de l’usage de commandes via sudo si les opĂ©rations ne sont pas trop espacĂ©es.

    Mise Ă  disposition des images Spin KDE Plasma Mobile et Fedora Kinoite Mobile. L’objectif est de fournir une image native avec cet environnement qui fonctionne aussi bien pour tĂ©lĂ©phone que pour les tablettes ou petits ordinateurs portables 2-1 avec possibilitĂ© de dĂ©tacher l’écran tactile du clavier.

    De mĂȘme le gestionnaire de fenĂȘtres en mode pavant Miracle exploitant Wayland est proposĂ© dans Fedora et bĂ©nĂ©ficie de son propre Spin. Cette interface moderne prend en charge aussi les fenĂȘtres flottantes, prend en charge les derniĂšres montures de Wayland tout en permettant l’usage des pilotes propriĂ©taires de Nvidia. Il consomme Ă©galement peu de ressources ce qui le rend intĂ©ressant dans l’usage de machines peu performantes ou anciennes tout en exploitant une pile graphique trĂšs moderne et flexible.

    L’installation de Fedora Workstation se fera avec le protocole d’affichage Wayland uniquement, les sessions GNOME X11 restent disponibles et installables aprĂšs. Cela suit l’effort entrepris depuis longtemps de faire de Wayland le protocole d’affichage par dĂ©faut de Fedora et par l’abandon progressif de X11 par GNOME Ă©galement. L’état actuel du systĂšme permet de franchir ce cap par dĂ©faut ce qui allĂšge Ă©galement un peu le mĂ©dia d’installation. Cependant pour ceux qui veulent toujours utiliser GNOME avec X11 aprĂšs l’installation pour diffĂ©rentes raisons, il reste possible d’installer les paquets gnome-session-xsession et gnome-classic-session-xsession depuis les dĂ©pĂŽts officiels.

    Prévisualisation du clavier dans GNOME

    Gestion du matériel

    L’installation du pilote propriĂ©taire de Nvidia via GNOME Logiciels est compatible avec les systĂšmes utilisant l’option Secure Boot. Ce mode de sĂ©curitĂ© s’assure que tous les Ă©lĂ©ments de la chaine de dĂ©marrage de la machine sont signĂ©s avec une des clĂ©s cryptographiques autorisĂ©es. L’objectif est d’éviter qu’une tierce personne puisse modifier un de ces composants dans le dos d’un utilisateur afin de rĂ©aliser une attaque plus tard. Le chargeur de dĂ©marrage GRUB, le noyau Linux et ses pilotes sont Ă©videmment concernĂ©s, et installer le pilote propriĂ©taire de Nvidia qui n’est pas signĂ© pouvait rendre la machine impossible Ă  dĂ©marrer.

    MĂȘme si Fedora ne fournit pas ce pilote, car il est non libre, l’objectif reste d’avoir un systĂšme fonctionnel et simple Ă  utiliser. Dans ce contexte, GNOME logiciels permet d’outre passer cette limitation en utilisant l’outil mokutil pour auto signer le pilote Nvidia. L’utilisateur devra saisir un mot de passe Ă  l’installation du paquet, et au redĂ©marrage suivant cet outil sera affichĂ© pour confirmer la clĂ© de sĂ©curitĂ© et ainsi autoriser le chargement du dit pilote sans encombre.

    Prise en charge des camĂ©ras MIPI pour les systĂšmes utilisant Intel IPU6 qui concerne de nombreux ordinateurs portables actuels. En effet, de nombreux modĂšles utilisent le bus MIPI CSI2 au lieu du traditionnel USB UVC qui Ă©tait la norme jusqu’à prĂ©sent. En effet ce protocole permet des bandes passantes plus Ă©levĂ©es, en consommant moins d’énergie et plus facile Ă  intĂ©grer. Sauf que la prise en charge de ce bus n’était pas pleinement gĂ©rĂ©e, car les images envoyĂ©es sont un peu brutes et nĂ©cessitent des traitements notamment concernant la balance des blancs ou le dĂ©matriçage de l’image ou le contrĂŽle pour l’exposition et le gain. Cela est complexe, car chaque camĂ©ra a ses propres caractĂ©ristiques qui nĂ©cessitent une approche au cas par cas en espace utilisateur. Un travail d’intĂ©gration a Ă©tĂ© fait entre le noyau Linux, libcamera, pipewire et Firefox pour rendre cela possible. Le noyau Linux fourni l’API de base et un pilote pour chaque type de modĂšles, avec un pilote commun pour la prise en charge du protocole en lui-mĂȘme. Le flux vidĂ©o est rĂ©cupĂ©rĂ© par libcamera qui applique des traitements tels que le dĂ©matriçage en prenant en compte le modĂšle considĂ©rĂ©, qui envoie le flux vidĂ©o obtenu par pipewire vers le navigateur Firefox.

    L’installateur Anaconda prend en charge le chiffrement matĂ©riel des disques via le standard TCG OPAL2 disponible sur certains pĂ©ripĂ©riques SATA ou NVMe, mais cela nĂ©cessite de passer via un fichier kickstart pour personnaliser l’installation. L’outil cryptsetup n’a pris en charge ce standard que trĂšs rĂ©cemment, l’objectif est de fournir les arguments --hw-opal-only ou --hw-opal Ă  cet utilitaire dans le fichier kickstart. Le premier argument n’active que le chiffrement matĂ©riel, ce qui est recommandĂ© uniquement pour des pĂ©riphĂ©riques oĂč l’usage du CPU pour cette tĂąche nuirait grandement aux performances, alors que le second utilise un chiffrement matĂ©riel et logiciel. Il n’est pas prĂ©vu de fournir cette fonctionnalitĂ© par dĂ©faut et restera pendant un moment une option pour les utilisateurs avancĂ©s, car la sĂ©curitĂ© de l’ensemble dĂ©pend de la qualitĂ© des firmwares de ces pĂ©riphĂ©riques de stockage et qui doivent ĂȘtre maintenus Ă  jour dans le temps ce qui n’est pas garanti.

    Utilisation par dĂ©faut de l’outil tuned au lieu de power-profiles-daemon pour la gestion de l’énergie de la machine. C’est l’outil qui permet notamment de passer du mode Ă©conomie d’énergie Ă  performance pour moduler la puissance du CPU en fonction de la consommation d’énergie souhaitĂ©e, ce qui est trĂšs apprĂ©ciable sur les ordinateurs portables en particulier. Cependant power-profiles-daemon est trĂšs simple, en dehors de ces modes trĂšs gĂ©nĂ©riques et d’appliquer cela sur les CPU ou les plateformes matĂ©rielles supportĂ©es, il ne permettait une configuration plus fine ou l’ajout de modes personnalisĂ©es. Les utilisateurs avancĂ©s Ă©taient contraints d’installer un utilitaire additionnel comme tuned pour cela. Il a Ă©tĂ© ajoutĂ© un paquet tuned-ppd qui fourni une API DBus compatible avec l’interface de power-profiles-daemon, ainsi les applications telles que le centre de configuration de GNOME, Plasma ou Budgie peuvent s’en servir directement Ă  la place sans rĂ©gression, tout en permettant aux utilisateurs avancĂ©s d’aller plus loin s’ils le souhaitent en modifiant le contenu de /etc/tuned/ppd.conf comme en changeant les rĂ©glages pĂ©riphĂ©rique par pĂ©riphĂ©rique.

    Mise Ă  jour de ROCm 6.2 pour amĂ©liorer la prise en charge de l’IA et le calcul haute performance pour les cartes graphiques ou accĂ©lĂ©rateurs d’AMD. Il fournit entre autres des nouveaux composants tels que Omniperf pour l’étude et l’analyse de performance, Omnitrace pour tracer l’exĂ©cution des fonctions sur le CPU ou le GPU, rocPyDecode comme implĂ©mentation de l’API rocDecode en Python pour l’analyse des donnĂ©es de profilage faits avec cet outil en C ou C++ ou ROCprofiler-SDK pour identifier les points bloquants de performance. Il prend en charge Ă©galement les derniĂšres versions des outils PyTorch et TensorFlow.

    L’outil de dĂ©veloppement et de dĂ©bogage des tables ACPI nommĂ© acpica-tools ne prend plus en charge les architectures gros boutistes tels que s390x. En effet, ce standard qui est conçu pour les machines petits boutistes n’a pas beaucoup de sens pour cette architecture, les paquets qui en avaient besoin pour s390x ont de moins en moins cette dĂ©pendance et comme l’usage de cette architecture reste faible surtout pour cet usage, il a Ă©tĂ© dĂ©cidĂ© de retirer la prise en charge de cette spĂ©cificitĂ©. 49 correctifs sur 69 concernant ce paquet sont liĂ©s Ă  cette prise en charge, car le projet n’a jamais voulu les adopter par manque d’intĂ©rĂȘt, ce qui impliquait beaucoup de test et de dĂ©veloppement ralentissant la frĂ©quence des mises Ă  jour du paquet. Ces correctifs sont maintenant supprimĂ©s.

    PHP ne prend plus en charge les processeurs x86 32 bits. Il n’y avait dĂ©jĂ  plus de paquets PHP 32 bits dans les dĂ©pĂŽts, mais PHP Ă©tait toujours compilĂ© pour permettre Ă  d’autres dĂ©pendances de l’ĂȘtre pour cette architecture. Des restrictions ont Ă©tĂ© ajoutĂ©es Ă  ces dĂ©pendances pour que cela ne soit plus bloquant. PHP Ă©tait souvent utilisĂ© dans le cadre de tests ou pour gĂ©rer des plugins ou extensions qui pouvaient ĂȘtre dĂ©sactivĂ©es. L’architecture x86 32 bits n’est pour rappel plus pris en charge par Fedora depuis quelques annĂ©es maintenant, ces paquets ne sont utilisables que sur des machines x86 64 bits pour des raisons de compatibilitĂ©. Ce nettoyage permet en contrepartie un gain de temps machine et de dĂ©veloppeurs, car il n’y a plus Ă  gĂ©rer ce cas de figure.

    Internationalisation

    Le gestionnaire d’entrĂ©es IBus par dĂ©faut pour la langue traditionnelle chinoise de Taiwan passe de ibus-libzhuyin Ă  ibus-chewing. En effet la bibliothĂšque chewing sous-jacent semble avoir une communautĂ© dynamique qui fournit une bonne maintenance contrairement Ă  libzhuyin qui n’est d’ailleurs pas maintenu en ce moment par un locuteur de cette langue ce qui pose quelques difficultĂ©s. Le code semble Ă©galement mieux organisĂ© et plus maintenable.

    Nouvelles options de focus dans GNOME

    Administration systĂšme

    Le gestionnaire de paquet dnf est mis Ă  jour vers sa 5ᔉ version. Cette version Ă©crite en C++ au lieu de Python est bien plus rapide Ă  l’usage et consomme moins d’espace disque et requiert moins de dĂ©pendances pour tourner, l’ensemble est 60% plus lĂ©ger sur le disque. Par ailleurs dnf5daemon remplace PackageKit comme couche de compatibilitĂ© pour dnf dans GNOME Logiciels, ce qui permet notamment le partage des caches entre l’interface console et l’interface graphique Ă©vitant un gaspillage d’espace disque et de bande passante. Niveau performance, certaines opĂ©rations sont maintenant parallĂ©lisĂ©es comme le tĂ©lĂ©chargement et le traitement des donnĂ©es des dĂ©pĂŽts qui doit ĂȘtre jusqu’à deux fois plus rapide. Les plugins sont Ă©galement mieux intĂ©grĂ©s ce qui en simplifie leur installation et leur maintenance. Cependant certains plugins n’ont pas Ă©tĂ© encore portĂ©s, vous pouvez suivre l’avancement pour ceux qui manquent Ă  l’appel. Mais cela ne devrait concerner que peu d’utilisateurs. Certaines options de la ligne de commande n’existent plus par ailleurs, cela vous sera rappelĂ© si vous les invoquiez. L’historique des prĂ©cĂ©dentes transactions de paquets comme les mises Ă  jour ou installations ne sont pas compatibles entre l’ancienne et la nouvelle version, vous ne pourrez donc pas voir vos anciennes transactions pour les annuler par exemple.

    Tandis que la commande rpm utilise la version 4.20. Cette version permet de lister ou de supprimer les clĂ©s pour signer les paquets via la commande rpmkeys alors que l’outil rpmsign permet de signer les paquets avec l’algorithme ECDSA. La commande rpm elle-mĂȘme permet d’afficher une sortie en format JSON, en plus du format XML dĂ©jĂ  pris en charge depuis longtemps. Un nouveau plugin rpm-plugin-unshare apparaĂźt pour empĂȘcher Ă  des scripts d’installation de faire certaines opĂ©rations sur le systĂšme de fichiers ou via le rĂ©seau pour des raisons de sĂ©curitĂ©. CĂŽtĂ© crĂ©ation de paquet, l’introduction de la directive BuildSystem est sans doute la plus importante pour permettre de dĂ©finir de maniĂšre unique et gĂ©nĂ©rique la crĂ©ation de paquets basĂ©s sur des outils communs tels que autotools ou cmake. L’empaqueteur n’aurait pas besoin de rappeler pour ces outils courants chaque Ă©tape pour la crĂ©ation du paquet, sauf en cas de particularitĂ©, ce qui permet une meilleure maintenance et cohĂ©rence au sein de la distribution par exemple.

    Les systĂšmes Fedora atomiques de bureau et Fedora IoT disposent de bootupd pour la mise Ă  jour du chargeur de dĂ©marrage. La mise Ă  jour du chargeur de dĂ©marrage au sein d’un systĂšme atomique n’est pas trivial, car ce n’est pas une opĂ©ration facile Ă  fiabiliser. Par consĂ©quent rpm-ostree ne prenait pas cela en charge, et c’est pourquoi bootupd a Ă©tĂ© crĂ©Ă© et est maintenant intĂ©grĂ© dans ces versions. Il Ă©tait dĂ©jĂ  prĂ©sent depuis quelque temps sur la version CoreOS ce qui a dĂ©jĂ  donnĂ© un retour d’expĂ©rience en conditions rĂ©elles. Il peut prendre en charge les systĂšmes UEFI et BIOS, mais la mise Ă  jour reste une Ă©tape manuelle pour ĂȘtre automatisĂ©e dans le futur, notamment quand le composant shim sera Ă  jour pour rendre la mise Ă  jour moins risquĂ©e sur les systĂšmes UEFI si la mise Ă  jour est coupĂ©e au milieu de l’opĂ©ration comme lors d’une coupure de courant ou lors d’un plantage. Il permet Ă©galement de pouvoir bloquer l’usage de versions du chargeur de dĂ©marrage plus anciens ayant des failles connues, par l’usage de Secure Boot dbx et le paquet ostree-grub2 pourra ĂȘtre progressivement retirĂ©, ce qui notamment mettra un terme au bogue oĂč chaque dĂ©ploiement est affichĂ© deux fois dans l’interface de sĂ©lection de GRUB et devrait rĂ©duire le risque d’avoir certains problĂšmes lors de la mise Ă  jour du systĂšme.

    Les images atomiques de Fedora proposent les outils dnf et bootc, ce premier est utilisable dans un contexte de dĂ©veloppement pour l’instant mais le second peut commencer Ă  servir Ă  dĂ©ployer des images du systĂšme qui sont bootables. Plus tard il est prĂ©vu que dnf puisse remplacer rpm-ostree pour certaines actions. En attendant, en cas d’usage de dnf sur de tels systĂšmes, le message d’erreur sera plus explicite concernant les outils Ă  employer pour rĂ©aliser ces actions. L’objectif est de fournir aux administrateurs systĂšmes des outils plus familiers pour ces diffĂ©rentes actions tout en ayant un outil clairement identifiĂ© pour chaque type de tĂąches.

    Introduction de l’outil fedora-repoquery pour faire des requĂȘtes sur les dĂ©pĂŽts comme savoir la version exacte d’un paquet spĂ©cifique dans une autre version de Fedora, la date de mise Ă  jour d’un dĂ©pĂŽt, ou connaĂźtre les paquets qui dĂ©pendent d’un paquet spĂ©cifique (dĂ©pendance inverse donc), etc. Il fonctionne par-dessus dnf concernant cette fonction mais permet de facilement obtenir des informations depuis les dĂ©pĂŽts Fedora, CentOS ou EPEL.

    La bibliothĂšque de sĂ©curitĂ© OpenSSL n’accepte plus les signatures cryptographiques avec l’algorithme SHA-1. Cet algorithme n’est plus considĂ©rĂ© comme sĂ»r, car il devient de plus en plus facile de gĂ©nĂ©rer des collisions Ă  la demande. Si vous souhaitez les autoriser Ă  nouveau pour des raisons lĂ©gitimes, malgrĂ© le risque de sĂ©curitĂ©, cela reste possible de le faire via la commande

    # update-crypto-policies --set FEDORA40

    Commande qui devrait ĂȘtre prise en charge pendant quelques versions encore.

    Le gestionnaire de rĂ©seaux NetworkManager ne prend plus en charge la configuration dans le format ifcfg qui Ă©tait dĂ©jĂ  dĂ©suet depuis des annĂ©es. Cela fait suite aux tentatives progressives d’utiliser massivement le format keyfile. Fedora Linux 33 en l’utilisant comme format par dĂ©faut pour les nouveaux profils de connexions, tandis que Fedora Linux 36 a poussĂ© la prise en charge de l’ancien format dans un paquet dĂ©diĂ© non installĂ© par dĂ©faut nommĂ© NetworkManager-initscripts-ifcfg-rh et enfin Fedora Linux 39 a entamĂ© la conversion automatique vers le nouveau format. Et depuis longtemps NetworkManager ne fait que maintenir ce format, de nombreuses options ou types de connexions n’étant de fait pas possibles avec l’ancien format. Cela permet de prĂ©parer la suppression future de la prise en charge de ce format de fichier de NetworkManager lui-mĂȘme.

    Dans la mĂȘme veine, le paquet network-scripts a Ă©tĂ© retirĂ©, mettant fin Ă  la gestion du rĂ©seau via les scripts ifup et ifdown. Depuis 2018 ces outils sont considĂ©rĂ©s comme obsolĂšte et soumis Ă  une suppression planifiĂ©e future. D’ailleurs le projet officiel ne fait plus une maintenance trĂšs active de ces outils.

    Les interfaces rĂ©seaux pour les Ă©ditions Cloud vont utiliser les nouveaux noms par dĂ©faut (par exemple enp2s0f0) comme adoptĂ©s par les autres Ă©ditions il y a des annĂ©es au lieu de conserver les noms traditionnels (tels que eth0). Cela signifie que le noyau ne recevra plus pour ces systĂšmes le paramĂštre net.ifnames=0 pour maintenir cet ancien comportement. Le reste de l’écosystĂšme avait adoptĂ© la nouvelle nomenclature avec Fedora
 15 en 2011 ! Ce retard est attribuable Ă  certains problĂšmes avec certains outils tels que cloud-init avec cette convention de nommage qui ont Ă©tĂ© rĂ©solus Ă  la fin des annĂ©es 2010 seulement. Ainsi les pĂ©riphĂ©riques auront maintenant une correspondance physique, leur rĂŽle devrait ĂȘtre plus facilement identifiable et limiter le risque de problĂšmes suite Ă  des changements dynamiques des interfaces.

    Le gestionnaire de virtualisation libvirt utilise maintenant par dĂ©faut le pare-feu nftables au lieu de iptables pour son interface rĂ©seau vibr0. En effet Fedora utilise par dĂ©faut nftables maintenant et par ailleurs utiliser iptables signifiait crĂ©er des rĂšgles nftables sous le capot. Cette transition est faite pour amĂ©liorer les performances et rĂ©duire le risque d’une suppression accidentelle de rĂšgles par une application tierce, car tout sera mis dans les rĂšgles associĂ©es Ă  la table libvirt_network. iptables sera cependant utilisĂ© si nftables n’est pas prĂ©sent dans le systĂšme et le comportement peut ĂȘtre changĂ© dans le fichier de configuration /etc/libvirt/network.conf.

    L’outil Netavark pour gĂ©rer la pile rĂ©seau des conteneurs, notamment avec podman, utilise Ă©galement par dĂ©faut le pare-feu nftables au lieu de iptables. Les avantages du changement sont assez similaires Ă  ce qui est expliquĂ© au point prĂ©cĂ©dent, les rĂšgles associĂ©es Ă  l’outil seront mises dans la table dĂ©diĂ©e netavark. La possibilitĂ© d’envoyer les rĂšgles par lot peut amĂ©liorer de maniĂšre lĂ©gĂšre le temps de dĂ©marrage des conteneurs par ailleurs.

    Le gestionnaire de conteneurs Kubernetes a des nouveaux paquets versionnĂ©s, permettant d’avoir plusieurs versions en parallĂšle. Ici les versions 1.29, 1.30 et 1.31 sont proposĂ©es avec des noms comme kubernetes1.31. Cela devenait nĂ©cessaire car Kubernetes maintient 3 versions sur une pĂ©riode de 4 mois par version seulement ce qui rend nĂ©cessaire un tel montage. Cela permet aussi de dĂ©coupler la version de Kubernetes avec la version de Fedora Linux ce qui facilite la gestion pour les administrateurs.

    L’implĂ©mentation des interfaces de Kubernetes fait par l’OCI a ses propres paquets cri-o et cri-tools qui sont Ă©galement versionnĂ©s pour pouvoir suivre les versions de Kubernetes.

    GIMP 3

    DĂ©veloppement

    Mise Ă  jour de la suite de compilation GNU : binutils 2.42, glibc 2.40 et gdb 15.

    Pour la suite d’outils binutils, cela se concentre surtout sur la prise en charge plus Ă©tendue des instructions des architectures Aarch64, RISC-V et x86_64. Il gĂšre notamment les registres supplĂ©mentaires et les instructions associĂ©es proposĂ©s par l’évolution de l’architecture x86 avec Intel APX. L’assembleur BPF amĂ©liore son interopĂ©rabilitĂ© avec les outils de LLVM en suivant les mĂȘmes conventions.

    La bibliothĂšque standard C commence une prise en charge expĂ©rimentale de la norme C23. La capacitĂ© de renforcer la sĂ»retĂ© des programmes compilĂ©s avec le compilateur Clang a Ă©tĂ© aussi amĂ©liorĂ©e pour se rapprocher de ce qui est possible de faire avec le compilateur GCC. De nombreuses fonctions mathĂ©matiques ont une version vectorisĂ©e pour l’architecture Aarch64 ce qui peut amĂ©liorer les performances pour cette architecture.

    Pour finir le dĂ©bogueur amĂ©liore significativement son API Python pour faciliter sa manipulation Ă  travers un programme ou script Ă©crit dans ce langage. La prise en charge du protocole Debugger Adapter Protocol s’amĂ©liore encore pour faciliter sa manipulation par divers IDE qui s’en servent pour l’intĂ©grer. Les informations de dĂ©bogage du programme cible au format DWARF sont lues dans un fil d’exĂ©cution dĂ©diĂ© pour amĂ©liorer le temps de chargement.

    Mise Ă  niveau de la suite de compilateurs LLVM vers la version 19. Les paquets versionnĂ©s des versions prĂ©cĂ©dentes sont toujours disponibles pour ceux qui ont besoin de la compatibilitĂ© avec les anciennes bibliothĂšques. Les paquets clang, compiler-rt, lld et libomp sont maintenant gĂ©nĂ©rĂ©s Ă  partir du fichier de spĂ©cification du paquet llvm ce qui n’était pas le cas avant. Cela permet entre autres de simplifier leur maintenance mais aussi d’appliquer une optimisation Profile-Guided Optimizations sur ces binaires pour amĂ©liorer les performances. Les paquets Fedora compilĂ©s avec Clang bĂ©nĂ©ficient aussi de la compilation avec l’option -ffat-lto pour avoir des bibliothĂšques ayant le bitcode LTO en plus du binaire au format ELF, ce qui permet de rĂ©duire le temps de l’édition de lien quand ces bibliothĂšques sont impliquĂ©es. Le tout sans recourir Ă  des macros pour obtenir le rĂ©sultat aprĂšs la compilation des paquets et sans renoncer Ă  la compatibilitĂ© pour les logiciels non compilĂ©s avec ce mode activĂ©.

    Retrait de Python 2.7 dans les dĂ©pĂŽts, seule la branche 3 est maintenue dorĂ©navant. Enfin, cela est vrai pour l’implĂ©mentation de rĂ©fĂ©rence, il reste possible de le faire via PyPy qui fourni toujours un support de la version 2.7 via le paquet pypy. Pour rappel, Python 2.7 n’est plus maintenu depuis dĂ©but 2020, mais ce maintien Ă©tait nĂ©cessaire pour certains paquets qui n’avaient toujours pas terminĂ© leur portage, en particulier le logiciel GIMP, cas abordĂ© plus haut. Les autres paquets concernĂ©s n’étaient plus vraiment maintenus de fait et ont Ă©tĂ© retirĂ©s. Cela devenait nĂ©cessaire car avec la fin de support de RHEL 7 prochainement, plus aucun correctif pour Python 2 ne sera dĂ©veloppĂ© Ă  l’avenir rendant la situation plus critique encore.

    D’ailleurs Python bĂ©nĂ©ficie de la version 3.13. Cette version fournit un nouvel interprĂ©teur interactif avec la coloration activĂ©e par dĂ©faut pour le prompt ou les erreurs. Il donne la possibilitĂ© d’avoir de l’édition multi-lignes qui est prĂ©servĂ©e dans l’historique. Les touches F1, F2 et F3 donnent respectivement l’accĂšs Ă  une aide interactive, Ă  la navigation de l’historique de l’édition et Ă  un mode de copie plus simple pour copier-coller de gros blocs de code. Les messages d’erreur sont Ă©galement plus clairs.

    En dehors de cela, Python dispose du tant attendu mode sans verrou global nommĂ© GIL ce qui permet d’amĂ©liorer les performances et de faire de rĂ©els fils d’exĂ©cution parallĂšle dans un programme. Mais ce mode Ă©tant expĂ©rimental, il faut installer le paquet python3.13-freethreading et exĂ©cuter Python avec la commande python3.13t pour en profiter.

    Le compilateur juste Ă  temps n’est quant Ă  lui pas fourni d’une façon ou d’une autre, cette fonctionnalitĂ© Ă©tant aussi expĂ©rimentale.

    Python est aussi compilĂ© avec l’optimisation -O3 activĂ©e, en ligne avec la maniĂšre de faire par le projet officiel et amĂ©liorant les performances. Selon le test pyperformance le gain de performance est en moyenne 1,04 fois plus rapide rien qu’avec cette option. Auparavant Python Ă©tait compilĂ© avec l’optimisation -O2 qui est moins agressive, cependant la nouvelle option augmente la taille des binaires concernĂ©s d’environ 1.2% (soit 489 kio).

    Le framework d’écriture de tests en Python, Pytest se teste avec sa version 8. Cette version n’est pas compatible avec la version prĂ©cĂ©dente, de nombreux Ă©lĂ©ments obsolĂštes sont maintenant traitĂ©s comme des erreurs, et de mĂȘme la façon dont les tests sont rĂ©cupĂ©rĂ©s dans l’arborescence d’un code source a Ă©tĂ© modifiĂ©e ce qui peut poser diffĂ©rents problĂšmes.

    En termes d’amĂ©lioration, il propose un meilleur affichage des diff en cas d’erreur lors de l’exĂ©cution d’un test, le rendant plus lisible et plus proche du visuel d’un diffĂ©rentiel gĂ©nĂ©rĂ© Ă  partir de la commande diff.

    Mise Ă  jour du langage Go vers la version 1.23. Cette version apporte la tĂ©lĂ©mĂ©trie pour collecter des donnĂ©es sur l’usage de la chaine de compilation Go aux dĂ©veloppeurs du projet, par dĂ©faut dans Fedora la tĂ©lĂ©mĂ©trie est activĂ©e mais reste uniquement sur votre machine, rien n’est envoyĂ© aux serveurs du projet. Ce comportement peut ĂȘtre changĂ© dans les options.

    Autrement, quand le temps de compilation est amĂ©liorĂ© lorsqu’un profil d’optimisation est utilisĂ©, passant d’un dĂ©lai supplĂ©mentaire pouvant aller jusqu’au double du temps de compilation normal Ă  maximum 10% supplĂ©mentaire maintenant. Les applications Go ont un usage de la pile qui est lĂ©gĂšrement rĂ©duit tandis que pour l’architecture x86_64, au dĂ©triment d’une lĂ©gĂšre augmentation de la taille du binaire, les boucles peuvent avoir une amĂ©lioration de performances d’environ 1-1,5%.

    Mise Ă  jour dans l’écosystĂšme Haskell GHC 9.6 et Stackage LTS 22. Le compilateur en lui-mĂȘme propose de compiler le code pour ĂȘtre exĂ©cutĂ© en tant que programme WebAssembly ou JavaScript. Les deux sont cependant considĂ©rĂ©s comme en dĂ©veloppement et peuvent ĂȘtre sujets Ă  des bogues. L’ensemble des messages d’erreur ont maintenant un code unique, permettant de simplifier la recherche d’une explication et d’une solution concernant celui-ci.

    Le langage Perl passe Ă  la version 5.40. Un nouveau mot clĂ© __CLASS__ donne la classe d’exĂ©cution rĂ©elle dont l’instance d’objet est membre, ce qui est utile pour les constructeurs de classes enfants, car l’accĂšs Ă  $self n’étant pas autorisĂ© dans ce contexte. Un autre mot clĂ© :reader est proposĂ©, ajoutĂ© Ă  un membre de classe il permet de dĂ©finir automatiquement une fonction du mĂȘme nom que le membre, qui renvoie cette valeur. Un nouvel opĂ©rateur ^^ est disponible, Ă©tant l’équivalent de && et || mais pour la fonction logique ou exclusif.

    Node.js 22 devient la version de rĂ©fĂ©rence, tandis que la version 20 et 18 restent disponibles en parallĂšle. Cette version propose entre autres un client Websocket natif sans dĂ©pendances additionnelles, une mise Ă  jour habituelle du moteur JavaScript V8 vers la version 12.4 qui propose notamment un ramasse-miette WebAssembly. Les flux de donnĂ©es passent par dĂ©faut d’un buffer de 16 kib Ă  64 kib ce qui augmente les performances au dĂ©triment de la consommation de mĂ©moire vive. Enfin le compilateur JIT Maglev fourni par le moteur V8 est activĂ© par dĂ©faut, qui amĂ©liore les performances en particulier pour les petits programmes exĂ©cutĂ©s en ligne de commande.

    Pour des raisons de changement de licence, le gestionnaire de bases de donnĂ©es clĂ©-valeur Redis est remplacĂ© par Valkey. En effet Redis a adoptĂ© la licence RASLv2/SSPL en remplacement de la licence BSD qui n’est pas une licence libre ce qui est en conflit avec les rĂšgles de Fedora concernant les licences des logiciels proposĂ©s dans ses dĂ©pĂŽts. Valkey est un fork de Redis qui rĂ©utilise la mĂȘme licence originelle. À ce jour pas d’incompatibilitĂ© est Ă  prĂ©voir pour les utilisateurs de ce logiciel, mais un paquet valkey-compat est proposĂ© pour migrer la configuration et les donnĂ©es depuis Redis. Le changement est effectuĂ© automatiquement lors de la mise Ă  niveau de Fedora pour ces utilisateurs.

    La bibliothĂšque Python d’apprentissage profond Pytorch est Ă©clairĂ©e avec sa version 2.4. Le changement majeur de cette version est la prise en charge de ROCm pour tirer parti de l’accĂ©lĂ©ration matĂ©rielle de l’intelligence artificielle proposĂ©e par AMD. Il y a Ă©galement une amĂ©lioration de performances pour ceux utilisant GenAI sur un CPU ou encore exĂ©cutant sur des processeurs AWS Graviton3 Ă  base d’architecture Aarch64.

    L’API engine de la bibliothĂšque OpenSSL est dĂ©prĂ©ciĂ©e car non maintenue tout en gardant une ABI stable. En effet cette API n’est pas conforme aux standards FIPS et n’est plus maintenue depuis la version 3.0 d’OpenSSL. Aucun nouveau paquet ne peut dĂ©pendre de celui-ci jusqu’à sa suppression dĂ©finitive pour simplifier la transition. Le code liĂ© Ă  cette API est fourni par le paquet indĂ©pendant openssl-engine-devel pour ceux qui en ont besoin. L’objectif Ă  terme est de simplifier la maintenance tout en rĂ©duisant la surface d’attaque.

    Projet Fedora

    L’édition de Fedora KDE pour l’architecture AArch64 est maintenant bloquante pour les sorties d’une nouvelle version. L’édition doit ĂȘtre suffisamment stable pour qu’une nouvelle version de Fedora Linux voit le jour. Cela Ă©tait dĂ©jĂ  le cas pour Fedora Workstation de cette architecture et pour Fedora KDE pour l’architecture x86_64. L’objectif est de garantir une certaine fiabilitĂ© pour ses utilisateurs.

    Phase 4 de l’usage gĂ©nĂ©ralisĂ© des noms abrĂ©gĂ©s de licence provenant du projet SPDX pour la licence des paquets plutĂŽt que des noms du projet Fedora. Cela devait ĂȘtre l’ultime phase mais quelques contretemps repoussent Ă  nouveau l’échĂ©ance. Cette Ă©tape et la suivante sont en fait la conversion massive des paquets vers le nouveau format, comme rapportĂ© par ce document, la progression reste rapide et prĂšs de 98,5% des licences mentionnĂ©es dans les paquets sont dĂ©jĂ  converties.

    Les bibliothĂšques Java n’ont plus une dĂ©pendance explicite envers le runtime de Java pour simplifier la maintenance, rien ne change concernant les applications. L’objectif est d’éviter de spĂ©cifier une version spĂ©cifique de la version de Java pour du code qui finalement n’est pas exĂ©cutĂ© directement, la dĂ©pendance revenant plutĂŽt aux applications Ă  ce sujet. Cela peut faciliter les utilisateurs ou mainteneurs d’utiliser diffĂ©rents JDK pour ces bibliothĂšques. Cela simplifie considĂ©rablement aussi la maintenance des paquets Java dans Fedora, car il n’est plus nĂ©cessaire de mettre Ă  jour la valeur de la version du JRE requis.

    Le paquet systemtap-sdt-devel n’a plus l’outil dtrace qui a Ă©tĂ© mis dans le paquet systemtap-sdt-dtrace. L’objectif est de supprimer la dĂ©pendance Python dans ce paquet qui est utilisĂ© pour l’image de compilation des paquets de Fedora. Plusieurs centaines de paquets peuvent ainsi ĂȘtre gĂ©nĂ©rĂ©s plus rapidement par cette dĂ©pendance en moins.

    Ajout d’une tĂąche de nettoyage lors de la gĂ©nĂ©ration des paquets RPM pour amĂ©liorer la reproductibilitĂ© des paquets. Depuis quelques annĂ©es Fedora fait un effort pour rendre la conception de ses paquets reproductibles. L’objectif est qu’un utilisateur devrait ĂȘtre en mesure de recompiler un paquet de son cĂŽtĂ© avec le fichier spec RPM + sources additionnelles de Fedora et obtenir exactement le mĂȘme paquet, au bit prĂšs, garantissant que le paquet a Ă©tĂ© gĂ©nĂ©rĂ© avec ces Ă©lĂ©ments sans altĂ©rations malveillantes. Cela peut Ă©galement faciliter le dĂ©veloppement, car il rend la comparaison entre versions d’un paquet plus facile Ă  analyser car seuls les changements dans le code sont diffĂ©rents et non des Ă©lĂ©ments annexes.

    Un effort a Ă©tĂ© fait rĂ©cemment qui repose notamment sur l’usage du programme add-determinism pour retirer du code source des Ă©lĂ©ments non dĂ©terministes comme la date de compilation. Ce programme est appelĂ© Ă  la fin de la gĂ©nĂ©ration du paquet. Fedora n’a pas rĂ©utilisĂ© le travail de Debian Ă  base du script strip-nondeterminism qui est un script Perl qui ajouterait une dĂ©pendance relativement lourde pour gĂ©nĂ©rer tous les paquets de Fedora.

    Mise Ă  jour de createrepo_c Ă  la version 1.0 qui gĂšre la gĂ©nĂ©ration des mĂ©tadonnĂ©es des dĂ©pĂŽts de Fedora. Les versions stables et Rawhide de Fedora vont partager maintenant la mĂȘme configuration des mĂ©tadonnĂ©es, ce qui rendra la maintenance cĂŽtĂ© infrastructure plus simple et cohĂ©rente. Toutes les mĂ©tadonnĂ©es sont compressĂ©es, avant seulement les mĂ©tadonnĂ©es primaires l’étaient pour les versions stables de Fedora par exemple. Certaines donnĂ©es ou mĂ©tadonnĂ©es Ă©taient compressĂ©es suivant diffĂ©rents algorithmes :

    • gzip pour les mĂ©tadonnĂ©es des dĂ©pĂŽts ;
    • XZ pour les donnĂ©es XML concernant les mises Ă  jour dans les dĂ©pĂŽts concernĂ©s.

    Maintenant tout cela utilise l’algorithme zstd ce qui devrait amĂ©liorer un peu la bande passante et la consommation d’espace de stockage. Il n’est pas exclu de basculer Ă  l’avenir sur zlib-ng dans ce but.

    Les fichiers sqlite renseignant la composition des dĂ©pĂŽts n’étaient utiles que pour le gestionnaire de paquets YUM, avec son remplacement par DNF depuis quelques annĂ©es il est inutile de les gĂ©nĂ©rer ce qui avait un coĂ»t en espace de stockage.

    La communauté francophone

    L’association

    Logo de Boorsalinux-fr

    Borsalinux-fr est l’association qui gĂšre la promotion de Fedora dans l’espace francophone. Nous constatons depuis quelques annĂ©es une baisse progressive des membres Ă  jour de cotisation et de volontaires pour prendre en main les activitĂ©s dĂ©volues Ă  l’association.

    Nous lançons donc un appel à nous rejoindre afin de nous aider.

    L’association est en effet propriĂ©taire du site officiel de la communautĂ© francophone de Fedora, organise des Ă©vĂšnements promotionnels comme les Rencontres Fedora rĂ©guliĂšrement et participe Ă  l’ensemble des Ă©vĂšnements majeurs concernant le libre Ă  travers la France principalement.

    Si vous aimez Fedora, et que vous souhaitez que notre action perdure, vous pouvez :

    • adhĂ©rer Ă  l’association : les cotisations nous aident Ă  produire des goodies, Ă  nous dĂ©placer pour les Ă©vĂšnements, Ă  payer le matĂ©riel ;
    • participer sur le forum, les listes de diffusion, Ă  la rĂ©fection de la documentation, reprĂ©senter l’association sur diffĂ©rents Ă©vĂšnements francophones ;
    • concevoir des goodies ;
    • organiser des Ă©vĂšnements type Rencontres Fedora dans votre ville.

    Nous serions ravis de vous accueillir et de vous aider dans vos dĂ©marches. Toute contribution, mĂȘme minime, est apprĂ©ciĂ©e.

    Si vous souhaitez avoir un aperçu de notre activitĂ©, vous pouvez participer Ă  nos rĂ©unions mensuelles chaque premier lundi soir du mois Ă  20h30 (heure de Paris). Pour plus de convivialitĂ©, nous l’avons mis en place en visioconfĂ©rence sur Jitsi.

    La documentation

    Depuis juin 2017, un grand travail de nettoyage a été entrepris sur la documentation francophone de Fedora, pour rattraper les 5 années de retard accumulées sur le sujet.

    Le moins que l’on puisse dire, c’est que le travail abattu est important : prĂšs de 90 articles corrigĂ©s et remis au goĂ»t du jour.
    Un grand merci à Charles-Antoine Couret, Nicolas Berrehouc, Édouard Duliùge et les autres contributeurs et relecteurs pour leurs contributions.

    La synchronisation du travail se passe sur le forum.

    Si vous avez des idĂ©es d’articles ou de corrections Ă  effectuer, que vous avez une compĂ©tence technique Ă  retransmettre, n’hĂ©sitez pas Ă  participer.

    Comment se procurer Fedora Linux 41 ?

    Logo de Fedora Media Writer

    Si vous avez déjà Fedora Linux 40 ou 39 sur votre machine, vous pouvez faire une mise à niveau vers Fedora Linux 41. Cela consiste en une grosse mise à jour, vos applications et données sont préservées.

    Autrement, pas de panique, vous pouvez télécharger Fedora Linux avant de procéder à son installation. La procédure ne prend que quelques minutes.

    Nous vous recommandons dans les deux cas de procéder à une sauvegarde de vos données au préalable.

    De plus, pour éviter les mauvaises surprises, nous vous recommandons aussi de lire au préalable les bogues importants connus à ce jour pour Fedora Linux 41.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Projets Libres ! Saison 3 Ă©pisode 3 : la fondation Eclipse

    Pour ce troisiÚme épisode du podcast Projets Libres depuis la rentrée, nous recevons Gaël Blondelle pour parler de la fondation Eclipse.

    Logos Podcast Projets Libres et Fondation Eclipse

    Avec Gaël, qui est un des dirigeants exécutifs de la fondation et membre du board de l'Open Source Initiative (OSI), nous parlons des sujets suivants :

    • l'histoire et la crĂ©ation de la fondation
    • les raisons de son dĂ©mĂ©nagement en Europe et sa forme juridique
    • Ă  quoi sert une fondation ?
    • Eclipse et la souverainetĂ© digitale europĂ©enne
    • les principaux projets hĂ©bergĂ©s par la fondation Eclipse
    • la collaboration avec les autres fondations dans le cadre du Cyber Resilience Act (CRA)
    • constituer un lobby europĂ©en de l'Open Source
    • le futur de la fondation

    Bonne Ă©coute !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Des nouvelles de Unvanquished

    La derniĂšre dĂ©pĂȘche sur le jeu Unvanquished a Ă©tĂ© publiĂ©e ici en 2023, pour son dixiĂšme anniversaire. La derniĂšre version annoncĂ©e ici Ă©tait la version 0.53, en 2022. Alors que nous sommes Ă  deux mois de 2025 et Ă  quelques jours de la prochaine version 0.55, c’est l’occasion de faire un point sur ce qui s’est passĂ© ces derniĂšres annĂ©es et d’ajouter un Ă©pisode Ă  la sĂ©rie « des nouvelles de [votre jeu prĂ©fĂ©rĂ©] » et de faire suite Ă  celui sur Xonotic.

    Unvanquished

    Laisse-moi sortir de là ! — rĂ©clame la version 0.55


    Unvanquished est un jeu de stratĂ©gie en temps rĂ©el (RTS) Ă  la premiĂšre personne (FPS) oĂč des extraterrestres Ă©volutifs et des humains lourdement armĂ©s s’affrontent pour leur survie. Son dĂ©veloppement, basĂ© sur Tremulous, a commencĂ© en 2011.

    Sommaire

    Quelques nouvelles en vrac

    Un nouveau lanceur

    En prĂ©vision de la prochaine version 0.55 qui arrive (deux « release candidates » ont dĂ©jĂ  Ă©tĂ© publiĂ©es), le « lanceur » (aussi appelĂ© « updater ») a Ă©tĂ© mis Ă  jour en juillet dernier.

    Le lanceur est le moyen recommandĂ© d’installer Unvanquished : il permet une intĂ©gration optimale avec le systĂšme (possibilitĂ© de cliquer sur des liens pour lancer une partie) et propose la mise Ă  jour du jeu quand une nouvelle version est disponible. Le lanceur sait aussi se mettre Ă  jour et c’est ce qui a Ă©tĂ© fait en juillet.

    Des améliorations graphiques

    L’annĂ©e derniĂšre le projet Unvanquished avait annoncĂ© ĂȘtre en recherche d’un dĂ©veloppeur spĂ©cialisĂ© dans les moteurs de rendus. Reaper a rejoint l’équipe et a rĂ©alisĂ© un gros travail : dĂ©bugage et finalisation des miroirs rĂ©cursifs et d’autres choses. Il fait aussi progresser le moteur pour tirer partie d’OpenGL 4.6 et autre techniques avancĂ©es (« bindless textures », etc.).

    Un explorateur de serveur minimaliste

    Viech a publiĂ© un explorateur de serveur de jeu minimaliste qui tient dans la barre de notification (tray browser). C’est Ă  la fois simple et pratique.

    Des vidéos et un compte Mastodon

    Diverses vidĂ©o montrant les avancĂ©es du dĂ©veloppement ont Ă©tĂ© publiĂ©es sur la chaĂźne Youtube d’Unvanquished, c’est l’occasion de rappeler l’existence de cette chaĂźne : https://www.youtube.com/@UNVofficial

    Pour ceux qui prĂ©fĂšrent Peertube, qui permet aussi de s’abonner aux chaĂźnes Ă  travers Mastodon et plus globalement le FĂ©diverse, avec la publication de certaines parties : https://vdo.unvanquished.greboca.com/

    Un compte Mastodon a Ă©tĂ© crĂ©Ă© sur l’instance idtech.space dĂ©diĂ©e aux technologies id Tech et projets associĂ©s (le moteur d’Unvanquished dĂ©rive d’id Tech 3) : https://idtech.space/users/UNVofficial

    Ce compte Mastodon s’ajoute aux comptes X et Facebook. Le public libriste sera peut-ĂȘtre plus intĂ©ressĂ© par ce compte Mastodon.

    Unvanquished, ARMĂ© et dangereux

    De nouvelles architectures

    La version 0.54 de Unvanquished sortie en janvier 2023 avait Ă©tĂ© la premiĂšre Ă  ĂȘtre jouable autrement que sur PC (x86 et x86-64), en proposant des binaires pour les processeurs ARM (sous Linux seulement pour l’instant).

    CĂŽtĂ© moteur la version 0.54 avait reçu de nombreuses optimisations pour mieux tourner sur des machines moins performances, par exemple, Certaines ressources logiciels optionnelles comme les deluxemaps ne sont plus chargĂ©es si dĂ©sactivĂ©es, ceci Ă©conomise non seulement le calcul, mais aussi la mĂ©moire de la carte graphique. Les lightstyles peuvent ĂȘtre dĂ©sactivĂ©s, ce qui peut accĂ©lĂ©rer le rendu graphique, etc. La compatibilitĂ© matĂ©rielle sera encore Ă©tendue avec la version 0.55.

    À partir de la version 0.54 tous les binaires pour toutes les architectures matĂ©rielles et systĂšmes d’exploitation sont compilĂ©s dans des containers Docker, y compris les binaires macOS compilĂ©s dans un container Linux en utilisant Darling, Darling Ă©tant Ă  macOS ce que Wine est Ă  Windows. La version 0.55 sera produite de la mĂȘme maniĂšre.

    La version 0.55 apportera la compatibilitĂ© pour un nouveau systĂšme d’exploitation ! đŸ€«ïž

    Interface, jouabilité et bots

    Chargement de carte

    Le nouvel Ă©cran de chargement des cartes.

    L’interface avait Ă©tĂ© revue Ă  l’occasion de la version 0.54 :

    • Nouvelles icĂŽnes d’inventaire contribuĂ©es par Nanaa, Gireen et Bob Vador
      Ces icÎnes donnent un coup de fraßcheur, on distingue mieux les deux types de grenades et les armures ainsi que le mode de déplacement.
    • L’écran de chargement des cartes affiche le nom de la carte et des auteurs (si renseignĂ©) depuis les mĂ©tadonnĂ©es. Historiquement, les artistes inscrivaient ces informations sur l’image d’illustration de la carte avec un logiciel de dessin
 (!!!)
    • La version 0.55 apportera des modifications d’interface rĂ©alisĂ©es par Grise.

    CĂŽtĂ© jouabilitĂ©, la version 0.54 avait corrigĂ© le momentum nĂ©gatif qui Ă©tait particuliĂšrement pĂ©nalisant. Le momentum, est gĂ©nĂ©rĂ© par les Leech (Alien) ou les Drills (Humain). Il faut qu’il y ait assez de momentum pour pouvoir construire d’autres Ă©lĂ©ments.

    La version 0.54 a apportĂ© toute une sĂ©rie de nouveautĂ©s au niveau des bots (entitĂ©s qui remplacent les joueurs afin de complĂ©ter les Ă©quipes) :

    • AmĂ©lioration de l’évitement d’obstacles pour les bots.
    • Les bots peuvent viser des cibles situĂ©es sur des navmesh diffĂ©rents.
    • Certains bots n’hĂ©siteront pas Ă  sauter pour atteindre une cible en hauteur, d’autres se retiennent d’exĂ©cuter une attaque qui pourraient les blesser si la cible est trop proche


    Depuis quelque temps, le dĂ©veloppement des bots suscite un regain d’intĂ©rĂȘt. La version 0.55 ne sera pas la plus riche Ă  ce sujet car elle apportera surtout des amĂ©liorations du moteur. Le dĂ©veloppement de gameplay ne s’est pas ralenti mais s’est surtout focalisĂ© sur des mods dont il faudra fusionner les avancĂ©es dans le tronc commun aprĂšs la sortie de la version 0.55. Ces amĂ©liorations de gameplay sont dĂ©jĂ  jouables sur des serveurs en ligne.

    L’amĂ©lioration du comportement des bots Ă  permis un nouveau type de jeu : Le PVE. C’est Ă  dire que les joueurs peuvent jouer ensemble contre l’ennemi pilotĂ© par le serveur. Certaines cartes ont Ă©tĂ© crĂ©Ă©es spĂ©cifiquement pour ce type de jeu, et d’autres ont Ă©tĂ© adaptĂ©es Ă  l’aide de layout qui Ă©taient dĂ©jĂ  utilisĂ©s pour crĂ©er des variantes de parties.

    La version 0.54.1 n’avait pas vraiment proposĂ© de modifications des donnĂ©es, il s’agissait surtout de publier des correctifs de bugs gĂȘnant du moteur. La version 0.55 viendra avec une mise Ă  jour des donnĂ©es et donc avec les corrections attendues. Par exemple un bug dans la chaĂźne logicielle de conversion d’images avait produit des artefacts dans certaines textures, ce sera corrigĂ© dans la version 0.55.

    La danse des submodules

                _________________
               /                 \
              |         ✝         |  
              |                   |
              |      beloved      |
              |     submodule     |
              |                   |
              |    2017-12-30     |
              |     2023-04-11    |
              |                   |
              |       R.I.P.      |
              |                   |  đŸ„”
      (,,)Ă©   |                   |   ɘ̀(âčâč)  ɘ̀(âčâč)
    ////////////////////////////////////////////////
    

    Press F to Pay Respects!

    Tous ceux qui doivent traiter avec Git savent que les submodules sont trÚs pratiques mais parfois bien ennuyeux. Un travail de fond réalisé sur les outils de production des données a permis la réintégration du dossier source unvanquished_src.dpkdir. Le générateur de code CBSE qui produit la plomberie pour la logique de jeu a été réintégré aussi. Cela rend plus facile de travailler sur des mods en évitant de devoir gérer plusieurs dépÎts différents.

    Contributions

    Unvanquished recrute
    Voulez-vous en savoir plus ?

    Comme vous le voyez, ce cycle de dĂ©veloppement a aussi vu de nouveaux contributeurs apporter leur concours au projet. Certaines de leurs amĂ©liorations ont dĂ©jĂ  Ă©tĂ© publiĂ©es dans la version mineure 0.54.1, d’autres arriveront avec la version 0.55.

    Récement, le développeur Slipher qui est un des développeurs Unvanquished les plus prolifiques et les plus fidÚles a étendu ses activités au moteur de rendu et a rejoint la petite élite de ceux qui savent comment le moteur fonctionne. Il a corrigé entre autre le rendu de vidéo sur des surfaces et une fonctionnalité de sprites.

    La liste de rĂ©gressions depuis le dĂ©sormais lointain ancĂȘtre d’Unvanquished, Tremulous, est maintenant rĂ©duite Ă  peau de chagrin.

    Des traductions !

    La grosse nouveautĂ© de la version 0.54.1 publiĂ©e en dĂ©cembre 2023 a Ă©tĂ© de proposer Ă  nouveau des traductions intĂ©grĂ©es au jeu. L’outil de traduction est gracieuseuement hĂ©bergĂ© par Weblate.

    L’interface Weblate

    L’interface de traduction Weblate.

    Il y a longtemps, le jeu Ă©tait traduit, mais suite Ă  de trĂšs profonds changements (par exemple le remplacement total de la technologie utilisĂ©e pour faire des menus, dĂ©sormais sous RmlUi), l’effort de traduction avait Ă©tĂ© interrompu.

    La traduction francophone est bien avancĂ©e, mais la traduction en breton a besoin de plus de contributions. Si vous souhaitez contribuer votre langue rĂ©gionale, vous ĂȘtes les bienvenus, c’est ici que cela se passe !

    La 0.55 arrive !

    Préparez votre souris et votre clavier, la version 0.55 arrive trÚs bientÎt.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Le Lama déchaßné ou la nouvelle campagne de soutien financier de l'April

    2015 est la date de la derniĂšre campagne d’adhĂ©sion de l’April. Neuf ans sans recrutement, il Ă©tait temps de s’y remettre. Mais la formule change en cette annĂ©e 2024 !

    Mais commençons par le début :

    L'April, c’est l’association qui promeut et dĂ©fend le logiciel libre et les libertĂ©s informatiques. Au fur et Ă  mesure des annĂ©es, sa tĂąche s’est accrue, le nombre de dossiers Ă  traiter, toujours plus urgents les uns que les autres, augmentant sans cesse. Et pourtant, depuis 2015, aucune campagne d’adhĂ©sions n’a Ă©tĂ© proposĂ©e


    L’April en difficultĂ© financiĂšre

    Depuis deux ans, notre situation financiĂšre n’étant plus Ă  l’équilibre, il nous a paru opportun de relancer la machine en cette fin d’annĂ©e. Pour finir sereinement l’annĂ©e 2024, une somme de 20 000 € nous serait nĂ©cessaire.

    Le Lama déchaßné

    Pour cette nouvelle campagne, nous n’allons pas vous proposer un seul et unique texte, aussi encourageant soit-il, sur un site de campagne, mais neuf, un pour chacune de ces annĂ©es sans sollicitation !

    Ce dĂ©fi a Ă©tĂ© fiĂšrement et, nous espĂ©rons, dignement relevĂ© par notre Ă©quipe devenue, pour un temps, une rĂ©daction de journalistes. Soyez Ă  l’affĂ»t, car Ă  partir d’aujourd’hui et durant neuf semaines, chaque mercredi, paraĂźtra un exemplaire de ce magazine automnal, Le Lama dĂ©chaĂźnĂ©. Diverses rubriques vous prĂ©senteront les diffĂ©rentes actions de l’association durant toutes ces annĂ©es ! Mais pas que, puisque nous avons invitĂ© Ă©galement des plumes extĂ©rieures Ă  l’April afin de parler du Libre et que nous vous confions quelques anecdotes rigolotes. Sans oublier les mots croisĂ©s et le concours de dessins gĂ©nĂ©rĂ©s !
    Le Lama déchaßné

    À vous de dĂ©cider, numĂ©ro aprĂšs numĂ©ro, si notre initiative est suffisamment convaincante pour susciter de votre part une adhĂ©sion ou, Ă  minima, si elle vous encourage Ă  faire de temps en temps un don ponctuel pour nous soutenir. Nous avons fait le choix de l’indĂ©pendance vis-Ă -vis des institutions en n’ayant recours Ă  aucune subvention et le rescrit d’intĂ©rĂȘt fiscal nous a Ă©tĂ© refusĂ© deux fois.

    Sans vos apports financiers, l’April ne pourrait pas agir aussi librement !

    Découvrez le numéro 0 du Lama déchaßné

    Numéro 0 car, en informatique, tout commence à 0.

    Lisez-le, dĂ©vorez-le d’un seul coup, dĂ©gustez-le lentement un ou deux articles par jour, parcourez-le rubrique aprĂšs rubrique, n’hĂ©sitez pas Ă  participer Ă  l’un des numĂ©ros suivants en proposant un dessin et, surtout, parlez-en autour de vous et relayez le plus possible !

    Nous comptons sur chacun et chacune d’entre vous. Merci d’avance !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Minetest, l'autre pays du minage - « Libre Ă  vous ! » du 10 septembre 2024 - Podcasts et rĂ©fĂ©rences

    28 septembre 2024 Ă  02:49

    Deux-cent dix-septiĂšme Ă©mission « Libre Ă  vous ! Â» de l’April. Podcast et programme :

    • sujet principal : « Minetest : l’autre pays du minage Â»

    • la chronique « Que libĂ©rer d’autre que du logiciel Â» avec Antanak, sur la pratique de double systĂšme d’exploitation

    • la chronique « PĂ©pite libre Â» de Jean-Christophe Becquet, vice-prĂ©sident de l’April, sur le thĂšme « L’Accueillette : un outil d’autodiagnostic de lieux d’accueil Â»

    Rendez‐vous en direct chaque mardi de 15h30 Ă  17h00 sur 93,1 FM en Île‐de‐France. L’émission est diffusĂ©e simultanĂ©ment sur le site Web de la radio Cause Commune.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Haiku a 23 ans - Haiku R1 bĂȘta 5 (partie 3 : documentation, finances et GSOC)

    Les deux parties précédentes ont présenté les principales évolutions dans le code de Haiku. Mais le code ne fait pas tout.

    Cette troisiĂšme (et derniĂšre) partie prĂ©sente les nouveautĂ©s dans la documentation, ainsi qu’un court aperçu du rapport financier et aux dons qui permettent Ă  Haiku d’employer un dĂ©veloppeur Ă  plein temps de façon durable.

    Enfin, elle présente la participation au Google Summer of Code et les travaux réalisés par les cinq étudiants encadrés par Haiku cette année.

    Sommaire

    Documentation

    La documentation de Haiku se dĂ©coupe en 3 parties principales : un manuel de l’utilisateur, une documentation d’API, et une documentation interne pour les dĂ©veloppeurs qui travaillent sur les composants du systĂšme.

    Ces documents sont complĂ©tĂ©s par de nombreuses pages et articles sur le site Internet, et deux livres pour apprendre Ă  programmer en C++ avec Haiku, ou encore un document de rĂ©fĂ©rence pour la conception d’interfaces graphiques et un autre pour le style graphique des icĂŽnes.

    Documentation d’API

    La documentation d’API de BeOS Ă©tait assez complĂšte et de bonne qualitĂ©. L’entreprise Access Co Ltd qui a hĂ©ritĂ© de la propriĂ©tĂ© intellectuelle de BeOS a autorisĂ© le projet Haiku Ă  la rĂ©utiliser et Ă  la redistribuer. Malheureusement, cette autorisation est faite avec une licence Creative Commons n’autorisant pas les modifications. Cette documentation ne peut donc pas ĂȘtre mise Ă  jour, ni pour corriger les erreurs, ni pour ajouter des informations sur toutes les nouvelles fonctions ajoutĂ©es par Haiku ou les diffĂ©rences entre les deux systĂšmes.

    Il est donc nĂ©cessaire de rĂ©Ă©crire une nouvelle documentation Ă  partir de zĂ©ro. Ce travail est assez ingrat lorsqu’il s’agit de re-dĂ©crire ce qui est dĂ©jĂ  trĂšs bien expliquĂ© dans la documentation existante. La nouvelle documentation a donc tendance Ă  se concentrer sur les nouvelles fonctions, et il faut souvent jongler entre les deux documentations, le contenu des fichiers .h, et des exemples de code d’applications existantes pour dĂ©couvrir toutes les possibilitĂ©s offertes.

    Il ne semble pas utile de lister chaque fonction ou mĂ©thode qui a Ă©tĂ© documentĂ©e. On peut mentionner une page d’explications sur la bibliothĂšque C standard, comprenant des liens vers les spĂ©cifications POSIX qui documentent dĂ©jĂ  la plupart des choses, et quelques dĂ©tails sur les diffĂ©rences avec d’autres systĂšmes.

    Une autre nouvelle page documente les primitives de synchronisation qui sont disponibles pour le code s’exĂ©cutant dans le noyau.

    Documentation interne

    La documentation interne Ă©tait Ă  l’origine simplement une accumulation de fichiers dans divers format dans un dossier « docs » du dĂ©pĂŽt Git de Haiku. Depuis 2021, ces fichiers ont Ă©tĂ© rassemblĂ©s et organisĂ©s Ă  l’aide de Sphinx, qui permet de mettre Ă  disposition une version navigable en HTML et de donner une meilleure visibilitĂ© Ă  ces documents.

    D’autres pages sont petit Ă  petit migrĂ©es depuis le site web principal de Haiku, qui n’est pas un trĂšs bon support pour de la documentation, et bĂ©nĂ©ficiera un jour d’une refonte pour ĂȘtre plus tournĂ© vers les utilisateurs que vers les dĂ©veloppeurs.

    Quelques nouvelles pages ajoutées cette année:

    • Une documentation sur l’utilisation de divers outils de complĂ©tion de code automatique avec le code source de Haiku
    • Une page prĂ©sentant l’organisation du code source et les principaux dossiers et sous-dossiers
    • La documentation de l’outil rc utilisĂ© pour compiler les « resources » attachĂ©es aux exĂ©cutables a Ă©tĂ© intĂ©grĂ©e
    • Le systĂšme de fichier FAT a reçu Ă©galement une page de documentation Ă  l’occasion de sa rĂ©Ă©criture

    Un point sur le financement

    L’association Haiku inc qui gĂšre le compte en banque de Haiku publie chaque annĂ©e un rapport financier.

    Le financement provient principalement de dons des utilisateurs et soutiens de Haiku. Le projet reçoit Ă©galement une compensation financiĂšre de Google pour le temps passĂ© Ă  encadrer les participants du Google Summer of Code (voir le paragraphe suivant). La contribution de Google cette annĂ©e est de 3 300$.

    Les plateformes de don les plus utilisĂ©es sont Paypal et Github sponsor. Ce dernier est recommandĂ© car, pour les dons reçus via Github, c’est Microsoft qui paie les frais bancaires de la transaction. 100% de l’argent donnĂ© arrive donc sur le compte de Haiku. Tous les autres opĂ©rateurs ont un coĂ»t, soit fixe lors des retraits, soit un pourcentage de chaque don, soit un mĂ©lange des deux.

    En 2023, l’association a reçu 25 422$ de dons et a dĂ©pensĂ© 24 750$. Elle dispose d’une rĂ©serve confortable de 100 000$ (accumulĂ©s avant 2021, alors qu’il n’y avait pas de dĂ©veloppeur salariĂ©) ainsi que d’environ 150 000$ en cryptomonnaies.

    Les dons en cryptomonnaies sont pour l’instant bloquĂ©s sur un compte Coinbase suite Ă  des problĂšmes administratifs (le compte n’est pas correctement dĂ©clarĂ© comme appartenant Ă  une association, il faudrait donc payer un impĂŽt sur le revenu lors de la conversion en vraie monnaie). Il semble difficile de contacter Coinbase pour rĂ©gler ce problĂšme.

    Du cĂŽtĂ© des dĂ©penses, le poste le plus important est le paiement de 21 000$ Ă  Waddlesplash, dĂ©veloppeur employĂ© par Haiku inc pour faire avancer le projet Haiku. Il travaille Ă  temps partiel et avec un salaire trĂšs bas par rapport au marchĂ©, comme cela a Ă©tĂ© fait pour les prĂ©cĂ©dents contrats entre Haiku inc et d’autres dĂ©veloppeurs. Les finances de l’association ne permettent pas encore d’assurer un emploi Ă  plein temps avec un salaire correct sur le long terme (c’est faisable sur le court ou moyen terme Ă  condition de puiser dans les rĂ©serves de trĂ©sorerie).

    Le reste des dĂ©penses concerne principalement le paiement de l’infrastructure (serveurs pour le site Internet, l’intĂ©gration continue, hĂ©bergement cloud pour les dĂ©pĂŽts de paquets) pour environ 3 000$.

    Il faut enfin compter environ 500$ de frais Paypal, puis quelques dĂ©penses administratives (dĂ©claration de changement d’adresse de l’association, dĂ©claration d’embauche) pour des montants nĂ©gligeables (moins de 10$ au total).

    En 2024, l’objectif fixĂ© en janvier Ă©tait de rĂ©colter 20 000$ de dons supplĂ©mentaires. Cet objectif a Ă©tĂ© atteint dĂšs le mois de juillet, et a donc Ă©tĂ© rĂ©visĂ© pour tenter d’atteindre les 30 000$. Cela permettra de rĂ©munĂ©rer Waddlesplash pour un plus grand nombre d’heures cette annĂ©e, ou bien d’envisager l’embauche d’une deuxiĂšme personne si un ou une candidate se prĂ©sente parmi les personnes contribuant au projet (l’embauche d’une personne extĂ©rieure ne se fera pas tant que l’association ne peut pas se permettre de proposer une rĂ©munĂ©ration raisonnable).

    Google Summer of Code

    Haiku participe au Google Summer of Code depuis 2007. Il s’agit d’un programme oĂč des Ă©tudiants (et d’autres participants pas forcĂ©ment Ă©tudiants, ces derniĂšres annĂ©es) sont payĂ©s par Google pendant deux mois pour dĂ©couvrir la contribution Ă  des projets de logiciels libres.

    Ce programme a Ă©tĂ© montĂ© par « l’Open source program office » de Google. Leur intĂ©rĂȘt est de dĂ©fendre leur image d’entreprise sympathique (bien mise Ă  mal ces derniĂšres annĂ©es, c’est devenu un gĂ©ant de la publicitĂ© en ligne et de l’aspiration des donnĂ©es personnelles), et de contribuer Ă  la richesse d’un Ă©cosystĂšme de logiciels libres dont ils bĂ©nĂ©ficient beaucoup. Cela permet aussi d’encourager des personnes Ă  s’essayer au dĂ©veloppement logiciel, facilitant indirectement le recrutement chez Google en augmentant le nombre de candidats. Ces justifications peuvent sembler hypothĂ©tiques ou trĂšs indirectes, mais elles ont convaincu Google d’attribuer un budget de quelques millions de dollars Ă  ce programme.

    Une Ă©quipe de Google choisit les projets de logiciel libres participants parmi de nombreuses candidatures. Chaque projet participant propose une liste Â«â€Żd’idĂ©es » (un peu sous la forme d’un sujet de stage) et a ensuite la responsabilitĂ© de choisir parmi les candidats qui ont rĂ©pondu Ă  cette offre (en respectant les critĂšres de non-discrimination imposĂ©es par Google ainsi que les embargos imposĂ©s par les USA), et d’assurer l’encadrement des personnes sĂ©lectionnĂ©es. Google rĂ©munĂšre les participants, et dĂ©dommage les projets participants pour le temps investi.

    Cette année les développeurs de Haiku encadrent cinq participants :

    Calisto Mathias — Re-design de la fenĂȘtre de recherche de fichiers

    Le systĂšme de fichier BFS utilisĂ© par Haiku permet l’exĂ©cution de requĂȘtes (comme une base de donnĂ©es) exploitant les attributs Ă©tendus des fichiers, qui peuvent ĂȘtre indexĂ©s.

    Ce systĂšme permet de faire beaucoup de choses, et la fenĂȘtre de recherche du navigateur de fichier essaie d’en tirer parti. Cependant, l’interface rĂ©sultante est trop complexe, et peu de personnes prennent le temps de concevoir des requĂȘtes amĂ©liorant leur façon de travailler, se cantonnant aux quelques exemples fournis.

    L’objectif de ce projet est de refondre l’interface de cette fenĂȘtre pour obtenir quelque chose de plus intuitif, et Ă©galement d’afficher en temps rĂ©el les rĂ©sultats de la requĂȘte dĂšs qu’elle est modifiĂ©e, pour encourager les utilisateurs Ă  expĂ©rimenter avec des requĂȘtes plus complexes.

    Daniel Martin — Virtualisation matĂ©rielle accĂ©lĂ©rĂ©e avec NVMM

    Haiku n’est pas encore parfait, et certaines tĂąches nĂ©cessitent encore l’utilisation d’autres systĂšmes d’exploitation. Une partie des utilisateurs ont donc une configuration en double boot, ou bien lancent Haiku dans une machine virtuelle.

    L’objectif de ce projet est de permettre d’utiliser Haiku comme systĂšme principal, et de lancer les autres systĂšmes dans des machines virtuelles. Cela sera rĂ©alisĂ© Ă  l’aide d’un portage de NVMM, qui a Ă©tĂ© dĂ©veloppĂ© Ă  l’origine par NetBSD et Dragonfly BSD. Cette bibliothĂšque a l’avantage d’ĂȘtre bien documentĂ©e et conçue pour faciliter son adaptation vers d’autres systĂšmes.

    NVMM sera complĂ©tĂ©e par l’utilisation de QEMU qui pourra fournir un « front-end » Ă  cette mĂ©canique.

    Diego Roux — Pilote pour les cartes sons virtuelles VirtIO

    Pour les personnes utilisant Haiku dans une machine virtuelle, il est intĂ©ressant d’utiliser autant que possible la famille de pĂ©riphĂ©riques VirtIO.

    Il s’agit de pĂ©riphĂ©riques virtuels conçus sans s’inspirer de matĂ©riel existant, et plutĂŽt pour avoir l’interface la plus simple possible entre la machine virtualisĂ©e et son hĂŽte.

    Haiku dispose dĂ©jĂ  d’un jeu de pilote Virtio relativement complet (rĂ©seau, stockage de masse, affichage graphique). Le but de ce projet est de complĂ©ter cet ensemble avec un pilote pour les cartes son VirtIO.

    trungnt2910 — Portage de GDB

    Haiku dispose de son propre dĂ©bugger (appelĂ© Debugger, de façon assez peu originale). Ce dernier prĂ©sente une interface graphique confortable, mais une interface en ligne de commande beaucoup plus limitĂ©e. Il souffre Ă©galement de quelques problĂšmes de performances et d’un manque de prise en charge des fichiers exĂ©cutables et bibliothĂšques compilĂ©s avec autre chose que GCC. Il est Ă©galement incapable de faire du debug Ă  distance ou de s’intĂ©grer dans une interface graphique existante (par exemple au sein d’un IDE).

    L’objectif de ce projet est de ressusciter la version de GDB ciblant Haiku. Cette version trĂšs ancienne Ă©tait utilisĂ©e avant l’apparition du Debugger natif. Le projet est en bonne voie, le code d’interfaçage a Ă©tĂ© entiĂšrement rĂ©Ă©crit pour s’adapter aux versions modernes de GDB, et plusieurs Ă©volutions et corrections ont Ă©tĂ© intĂ©grĂ©es dans le systĂšme de debugging de Haiku (par exemple, pour mettre en pause tous les threads nouvellement crĂ©Ă©s afin que le debugger puisse les intercepter).

    Zardshard — Migration du navigateur web WebPositive vers WebKit2

    Le navigateur WebPositive utilise le moteur de rendu webKit. Actuellement, il s’interface avec ce moteur via l’API WebKitLegacy. Cette API exĂ©cute tout le moteur de rendu web dans un seul processus, et ne fournit pas les garanties d’isolation nĂ©cessaires pour les navigateurs web modernes (que ce soit en termes de sĂ©curitĂ©, ou en termes de fiabilitĂ©).

    L’objectif de ce projet est de reprendre les travaux dĂ©jĂ  entamĂ©s en 2019 pour migrer WebPositive vers la nouvelle API « WebKit2 », et bĂ©nĂ©ficier d’une sĂ©paration entre l’interface graphique, la communication rĂ©seau, et le rendu HTML/CSS/JavaScript dans des applications sĂ©parĂ©es. Ainsi, un crash d’un de ces composants peut ĂȘtre rĂ©cupĂ©rĂ© de façon transparente sans faire disparaĂźtre toute l’application (et les donnĂ©es non enregistrĂ©es de l’utilisateur avec).

    Le projet est Ă©galement en bonne voie, un navigateur de test permet dĂ©jĂ  d’afficher quelques pages ce qui montre que les bases sont en place. Il reste Ă  rĂ©gler de nombreux problĂšmes de rendu de texte, ainsi qu’à implĂ©menter la gestion des entrĂ©es (clavier et souris) pour avoir un navigateur web utilisable. Il faudra ensuite migrer WebPositive vers ces nouvelles APIs.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Haiku a 23 ans - Haiku R1 bĂȘta 5 (partie 1 : applications)

    Haiku est un systĂšme d’exploitation libre destinĂ© aux ordinateurs personnels ou de bureau (pas de serveurs, pas de systĂšmes embarquĂ©s, pas de tablettes ni de tĂ©lĂ©phones). Il s’agit au dĂ©part d’une rĂ©Ă©criture libre de BeOS, prĂ©servant la compatibilitĂ© binaire avec ce dernier (les applications BeOS peuvent tourner sur certaines versions de Haiku).

    Le projet Haiku (au dĂ©part nommĂ© OpenBeOS) a dĂ©marrĂ© officiellement le 18 aoĂ»t 2001 avec le premier message sur la liste de diffusion : Ok, let's start (OK, allons-y). Cet anniversaire est l’occasion de faire un point sur les dĂ©veloppements de l’annĂ©e dans Haiku et ce qui est en prĂ©paration.

    La dĂ©pĂȘche a Ă©tĂ© un peu retardĂ©e cette annĂ©e, pour ĂȘtre synchronisĂ©e avec la version R1 bĂȘta 5 de Haiku, publiĂ©e le vendredi 13 septembre 2024.

    Le projet emploie un dĂ©veloppeur presque Ă  plein temps depuis 2021 et le reste de l’équipe contribue bĂ©nĂ©volement. La derniĂšre version bĂȘta a Ă©tĂ© publiĂ©e fin 2023 et la BĂȘta 5 est dĂ©sormais disponible : l’occasion de revenir en trois parties sur ce que propose Haiku, d’abord des applications, un noyau et des amĂ©liorations de la documentation.

    Sommaire

    PrĂšs de 350 tickets ont Ă©tĂ© clos dans le cadre du travail sur la version R1 bĂȘta 5. Il y a bien sĂ»r de trĂšs nombreuses corrections de bugs, qui ne seront pas listĂ©es dans cet article. On se concentrera plutĂŽt sur les nouveautĂ©s, sauf dans les cas oĂč la correction est vraiment importante ou permet d’ouvrir de nouvelles possibilitĂ©s d’utilisation.

    Applications

    Haiku est un systĂšme d’exploitation complet, fourni avec un certain nombre d’applications permettant d’accomplir les tĂąches les plus courantes. En plus de ces applications de base, le gestionnaire de paquets HaikuDepot, alimentĂ© principalement par le travail du projet HaikuPorts, apporte Ă  la fois des applications portĂ©es depuis d’autres systĂšmes et des applications dĂ©veloppĂ©es spĂ©cifiquement pour Haiku.

    De façon gĂ©nĂ©rale, on trouve cette annĂ©e dans les applications de Haiku des amĂ©liorations sur le rendu des nombres, l’utilisation d’un symbole de multiplication Ă  la place d’une lettre x lĂ  oĂč c’est pertinent, et de nombreuses petites corrections et amĂ©liorations sur la mise en page des fenĂȘtres, des corrections de problĂšmes de traduction et ainsi de suite.

    AboutSystem

    AboutSystem est la fenĂȘtre d’information sur le systĂšme Haiku. Elle fournit quelques informations sur la machine sur laquelle le systĂšme fonctionne (quantitĂ© de RAM, marque et modĂšle du CPU, uptime) ainsi que les noms des dĂ©veloppeurs et autres logiciels libres ayant participĂ© au dĂ©veloppement de Haiku.

    Cette application reçoit tout d’abord une mise Ă  jour cosmĂ©tique : si le systĂšme est configurĂ© en « mode sombre », le logo Haiku correspondant (avec un lettrage blanc et des dĂ©gradĂ©s de couleurs un peu diffĂ©rents) sera utilisĂ©. Sinon, ce sera le logo avec lettrage noir.

    AboutSystem en mode clair
    AboutSystem en mode sombre

    Elle reçoit Ă©galement quelques mises Ă  jour de contenu : en plus de l’ajout de quelques nouveaux contributeurs qui ont rejoint le projet, on trouvera maintenant un lien vers la page web permettant de faire un don Ă  Haiku. Plusieurs liens vers des bibliothĂšques tierces utilisĂ©es dans Haiku, qui ne fonctionnaient plus, ont Ă©tĂ© soit supprimĂ©s, soit remplacĂ©s par des liens mis Ă  jour.

    Enfin, il est dĂ©sormais possible d’utiliser AboutSystem comme un « rĂ©plicant », c’est-Ă -dire de l’installer directement sur le bureau pour avoir en permanence sous les yeux les statistiques sur l’utilisation mĂ©moire et l’uptime ainsi que le numĂ©ro de build de Haiku en cours d’exĂ©cution (ce qui peut ĂȘtre utile par exemple lorsqu’on lance beaucoup de machines virtuelles avec des versions diffĂ©rentes de Haiku pour comparer un comportement, ou si on veut stocker des captures d’écran de plusieurs versions et s’y retrouver facilement).

    CharacterMap

    L’application « table de caractĂšres » permet d’étudier de prĂšs les diffĂ©rents glyphes et symboles prĂ©sents dans une police de caractĂšres. En principe, elle permet de choisir une police spĂ©cifique, mais le serveur graphique de Haiku substitue automatiquement une autre police si on lui demande d’afficher un caractĂšre qui n’est pas disponible dans la police demandĂ©e.

    Cela peut ĂȘtre gĂȘnant dans certains contextes, par exemple si on envisage d’embarquer une police dans un fichier PDF, il est difficile de savoir quelle police contient vraiment les caractĂšres qu’on veut utiliser.

    L’application a Ă©tĂ© amĂ©liorĂ©e pour traiter ce cas et affiche maintenant ces caractĂšres en grisĂ©.

    CharacterMap affichant des caractĂšres manquants

    CodyCam

    CodyCam est une application permettant de tester une webcam et de l’utiliser pour envoyer pĂ©riodiquement des images vers un serveur HTTP.

    L’évolution principale a Ă©tĂ© la mise Ă  jour de l’icĂŽne de l’application. L’utilitĂ© de CodyCam est limitĂ©e par le manque de pilotes : il faudra soit trouver une webcam Sonix du dĂ©but des annĂ©es 90, seul modĂšle USB Ă  disposer d’un pilote fonctionnel, soit utiliser un ordiphone Android Ă©quipĂ© d’un logiciel permettant de le transformer en camĂ©ra IP (ou encore une vraie camĂ©ra IP).

    Le pilote pour les WebCams UVC — standard utilisĂ© pour les camĂ©ras USB modernes — n’est pas encore au point et n’est pas inclus dans les versions publiĂ©es de Haiku.

    Debugger

    Debugger est, comme son nom l’indique, le debugger de Haiku. Il est dĂ©veloppĂ© spĂ©cifiquement pour le projet sans s’appuyer sur les outils existants (gdb ou lldb). Il dispose Ă  la fois d’une interface graphique et d’une interface en ligne de commande, plus limitĂ©e. Cette derniĂšre est surtout utilisĂ©e pour investiguer des problĂšmes dans les composants de Haiku qui sont nĂ©cessaires pour l’utilisation d’une application graphique : app_server, input_server ou encore registrar.

    La version en ligne de commande a reçu quelques petites amĂ©liorations, mais la principale nouveautĂ© est la prise en charge des formats DWARF-4 et DWARF-5 pour les informations de debug. Cela permet de charger les informations gĂ©nĂ©rĂ©es par les versions modernes de GCC, sans avoir besoin de forcer la gĂ©nĂ©ration d’une version plus ancienne du format DWARF.

    Le dĂ©sassembleur udis86, qui n’est plus maintenu et ne reconnaĂźt pas certaines instructions ajoutĂ©es rĂ©cemment dans les processeurs x86, a Ă©tĂ© remplacĂ© par Zydis.

    Enfin, un bug assez gĂȘnant a Ă©tĂ© corrigé : si une instance de Debugger Ă©tait dĂ©jĂ  en train de dĂ©bugger une application et qu’une deuxiĂšme application venait Ă  planter, il n’était pas possible d’attacher une deuxiĂšme instance de Debugger Ă  cette application. Les problĂšmes impliquant plusieurs processus pouvaient donc ĂȘtre un peu compliquĂ©s Ă  investiguer. C’est maintenant rĂ©solu.

    Deskbar

    L’application DeskBar fournit la « barre des tĂąches » de Haiku. Elle permet de naviguer entre les fenĂȘtres et applications ouvertes, de lancer de nouvelles applications via un menu (similaire au « menu dĂ©marrer » de Windows), ou encore d’afficher une horloge et des icĂŽnes fournis par d’autres applications (sous forme de rĂ©plicants).

    Elle fait partie, avec le Tracker, des applications qui ont Ă©tĂ© publiĂ©es sous license libre lors de l’abandon de BeOS par Be Inc.

    Quelques changements dans la DeskBar :

    • Tous les menus utilisent maintenant la police « menu » choisie dans les prĂ©fĂ©rences d’apparence du systĂšme. Auparavant, la police « menu » et la police « plain » Ă©taient mĂ©langĂ©es. Ces deux polices Ă©tant identiques dans la configuration par dĂ©faut, le problĂšme n’avait pas Ă©tĂ© repĂ©rĂ©.
    • Si un nom de fenĂȘtre est tronquĂ© dans la liste des fenĂȘtres, le nom complet peut ĂȘtre affichĂ© dans une infobulle.
    • L’icĂŽne pour les fenĂȘtres dans la DeskBar a Ă©tĂ© remplacĂ©e. La nouvelle icĂŽne indique plus clairement si une fenĂȘtre se trouve dans un autre bureau virtuel (dans ce cas, activer cette fenĂȘtre provoquera un changement de bureau).

    GLTeapot

    GLTeapot est une application permettant de tester le rendu OpenGL, en affichant un modĂšle 3D de la thĂ©iĂšre de l’Utah.

    En plus de la thĂ©iĂšre, cette application affiche un compteur du nombre d’images affichĂ©es par secondes. Bien que les chiffres affichĂ©s ne soient pas du tout reprĂ©sentatifs des performances d’un rendu 3D rĂ©aliste, certains utilisateurs insistent lourdement pour pouvoir faire le concours de gros chiffres de nombre d’images par seconde.

    Il est donc Ă  nouveau possible de dĂ©sactiver la synchronisation sur le rafraĂźchissement de l’écran, et demander au processeur de rĂ©afficher la thĂ©iĂšre plusieurs centaines de fois par seconde, bien que l’écran soit incapable de suivre le rythme. Par dĂ©faut, la synchronisation est activĂ©e et le rafraĂźchissement ne dĂ©passera jamais 60 FPS, si toutefois le pilote graphique implĂ©mente les fonctions de synchronisation nĂ©cessaires.

    HaikuDepot

    HaikuDepot est un hybride entre un gestionnaire de paquets et un magasin d’applications.

    Il se compose d’un serveur (dĂ©veloppĂ© en Java) fournissant une API REST et permettant de collecter les informations sur les applications (icĂŽnes, captures d’écrans, catĂ©gories, votes et revues des utilisateurs, choix de la rĂ©daction pour les applications mises en avant
), d’un frontend web minimaliste et d’une application native C++ permettant d’afficher ces donnĂ©es.

    La principale nouveautĂ© est l’intĂ©gration du systĂšme de single-sign-on (SSO) permettant d’utiliser un compte utilisateur commun avec d’autres services en ligne de Haiku. Actuellement, l’outil de revue de code Gerrit
    utilise ce mĂȘme compte, mais ce n’est pas encore le cas pour Trac (outil de suivi des bugs) ni pour le forum. Ce sera mis en place plus tard.

    De façon peut-ĂȘtre moins visible, mais pas moins importante, le code C++ de l’application a reçu de nombreuses amĂ©liorations et optimisations « sous le capot », rendant l’application plus rapide et plus fiable, mais qui sont un peu difficiles Ă  rĂ©sumer dans le cadre de cette dĂ©pĂȘche.

    Enfin, l’apparence de l’application a Ă©tĂ© lĂ©gĂšrement retravaillĂ©e pour mieux s’adapter aux Ă©crans Ă  haute dĂ©finition (ce qui nĂ©cessite d’avoir des marges et espacements de taille dynamique en fonction de la taille de texte choisie par l’utilisateur).

    Icon-O-Matic

    Capture d’écran de l’éditeur d’icĂŽnes

    Icon-O-Matic est un Ă©diteur d’icĂŽnes. Il permet d’exporter les fichiers au format HVIF, un format vectoriel compact qui permet de stocker les icĂŽnes dans l’inode d’en-tĂȘte des fichiers pour un chargement et un affichage rapide.

    Cette application a bĂ©nĂ©ficiĂ© du travail de Zardshard pendant le Google Summer of Code 2023, elle a donc reçu plusieurs Ă©volutions et corrections importantes (dont certaines sont mentionnĂ©es dans la dĂ©pĂȘche anniversaire de l’annĂ©e derniĂšre).

    Citons en particulier l’ajout d’un nouveau type de transformation, « perspective », qui permet de facilement dĂ©former un ensemble de chemins vectoriels selon une projection de perspective, ce qui est assez utile pour concevoir plus facilement une icĂŽne avec un aspect tridimensionnel (bien qu’en pratique l’apparence habituelle des icĂŽnes de Haiku soit un intermĂ©diaire entre une projection perspective et une vue isomĂ©trique, ne se prĂȘtant pas forcĂ©ment Ă  l’utilisation de cette opĂ©ration de transformation purement mathĂ©matique).

    Une autre petite amĂ©lioration est l’ajout d’une vĂ©rification pour empĂȘcher la fenĂȘtre de Icon-O-Matic de se positionner en dehors de l’écran, par exemple si on a dĂ©placĂ© la fenĂȘtre vers le bas de l’écran, enregistrĂ© cette position, puis relancĂ© l’application dans une rĂ©solution d’écran plus rĂ©duite. Dans ce cas, la fenĂȘtre sera automatiquement ramenĂ©e dans la zone visible de l’affichage.

    Magnify

    L’application Magnify permet d’afficher une vue zoomĂ©e d’une partie de l’écran. Elle peut servir pour amĂ©liorer l’accessibilitĂ© (mais n’est pas idĂ©ale pour cet usage), mais aussi pour les dĂ©veloppeurs d’interfaces graphiques qui ont parfois besoin de compter les pixels pour s’assurer que leurs fenĂȘtres sont bien construites.

    En plus de l’affichage zoomĂ©, l’application permet d’afficher l’encodage RGB de la couleur d’un pixel, ou encore de placer des « rĂšgles » permettant de vĂ©rifier l’alignement des objets. Ces derniĂšres ont reçu une petite mise Ă  jour, avec une amĂ©lioration de l’affichage de leur largeur et hauteur pour les rendre plus lisibles.

    Magnify avec une 'rĂšgle'

    MediaPlayer

    L’affichage des sous-titres ne fonctionnait pas correctement, il manquait une partie du texte. C’est maintenant corrigĂ©.

    PowerStatus

    Capture d’écran de PowerStatus: fenĂȘtre principale et icĂŽne de la DeskBar avec son menu

    L’application PowerStatus permet de surveiller l’état de la batterie pour les ordinateurs qui en disposent.

    Elle a reçu plusieurs améliorations importantes :

    Une notification a Ă©tĂ© ajoutĂ©e pour un niveau de dĂ©charge trĂšs faible (en plus du niveau faible dĂ©jĂ  prĂ©sent). Ces deux niveaux peuvent ĂȘtre paramĂ©trĂ©s Ă  un pourcentage choisi de dĂ©charge de la batterie, et associĂ© Ă  des sons d’alerte spĂ©cifiques. Avant ces changements, il Ă©tait facile de ne pas voir le message d’alerte (affichĂ© seulement pendant quelques secondes) ou de se dire qu’avec 15% de batterie on a encore le temps de faire plein de trucs, puis se retrouver un peu plus tard avec une batterie vide sans autre avertissement.

    L’état « not charging » est maintenant dĂ©tectĂ© et correctement affichĂ©, pour une batterie au repos : ni en train de se charger, ni en train d’alimenter la machine. C’est en particulier le cas d’une batterie dĂ©jĂ  chargĂ©e Ă  100%, si la machine reste connectĂ©e au rĂ©seau Ă©lectrique.

    L’icĂŽne de statut de la batterie s’installe automatiquement dans la DeskBar au premier dĂ©marrage de Haiku sur les machines disposant d’une batterie.

    Le rĂ©glage du mode « performance » ou « économie d’énergie" est enregistrĂ© et rĂ©-appliquĂ© lors des prochains dĂ©marrages (ces modes configurent l’ordonnanceur du noyau pour exĂ©cuter un maximum de tĂąches sur tous les cƓurs du processeur, ou bien au contraire pour essayer de garder ces cƓurs en veille autant que possible s’ils ne sont pas nĂ©cessaires).

    SerialConnect

    SerialConnect est une application de terminal série, utile principalement aux développeurs de systÚmes embarqués et autres gadgets électroniques.

    Elle est encore en cours de dĂ©veloppement et propose pour l’instant les fonctions les plus basiques. Il est maintenant possible de coller du texte depuis le presse-papier pour l’envoyer sur un port sĂ©rie, ce qui est pratique si on veut envoyer plusieurs fois la mĂȘme sĂ©quence de commandes.

    ShowImage

    ShowImage est la visionneuse d’images de Haiku. Elle utilise les traducteurs, des greffons avec une API standardisĂ©e qui permettent de convertir diffĂ©rents formats de fichiers entre eux.

    L’interface graphique de ShowImage a Ă©tĂ© mise Ă  jour pour utiliser le « layout system ». Historiquement, dans BeOS, tous les Ă©lĂ©ments des interfaces graphiques devaient ĂȘtre positionnĂ©s manuellement avec des coordonnĂ©es en pixels, ce qui est pĂ©nible Ă  faire, surtout si on doit traiter tous les cas (polices de caractĂšres de diffĂ©rentes tailles, remplacement des textes lors de traductions, utilisation de thĂšme d’interfaces diffĂ©rents), et aussi lors d’évolution de l’application (si on veut insĂ©rer un Ă©lĂ©ment en plein milieu, il faut souvent dĂ©caler tout ce qui se trouve autour).

    Le « layout system » fournit un ensemble d’outils pour automatiser ce travail, soit Ă  l’aide d’élĂ©ments prĂ©dĂ©finis (grilles, groupes, « cartes » superposĂ©es), soit Ă  l’aide d’un systĂšme de dĂ©finition de contraintes et de programmation linĂ©aire.

    D’autre part, ShowImage dispose maintenant d’un menu permettant d’ouvrir l’image affichĂ©e dans un Ă©diteur d’images.

    Terminal

    Le Terminal de Haiku permet d’exĂ©cuter un shell (c’est bash par dĂ©faut) et toutes les applications conçues pour un affichage en console.

    Les principaux changements cette annĂ©e sont la correction d’un problĂšme sur la configuration des couleurs utilisĂ©es par le Terminal (il y avait un mĂ©lange entre le nom anglais et le nom traduit des couleurs, empĂȘchant d’enregistrer et de relire correctement le fichier de configuration), ainsi que des modifications sur les raccourcis clavier utilisĂ©s par le Terminal lui-mĂȘme (en particulier pour naviguer entre plusieurs onglets) qui entraient en conflit avec ceux utilisĂ©s par les applications lancĂ©es dans le terminal.

    Le terminal est Ă©galement capable de traiter les « bracketed paste », c’est-Ă -dire que les applications en console sont informĂ©es que des caractĂšres en entrĂ©e proviennent du presse-papier. Cela permet par exemple Ă  bash de ne pas exĂ©cuter directement des commandes qui sont collĂ©es, mais de les mettre en surbrillance et d’attendre que l’utilisateur valide cette saisie.

    D’un point de vue plus bas niveau, les pilotes TTY utilisĂ©s pour les ports sĂ©rie et pour le Terminal, qui Ă©taient indĂ©pendants, ont Ă©tĂ© unifiĂ©s afin d’éviter de devoir corriger tous les bugs deux fois dans deux versions du code presque identiques.

    Tracker

    Tracker est le navigateur de fichiers de Haiku. Tout comme la DeskBar, il fait partie des quelques rares morceaux de BeOS qui ont Ă©tĂ© publiĂ©s sous licence libre par Be et ont donc pu ĂȘtre repris directement par Haiku. Contrairement Ă  la DeskBar, la publication du code du Tracker avait conduit Ă  l’apparition de nombreux forks, chacun amĂ©liorant Ă  sa façon le logiciel. La version utilisĂ©e par Haiku provient principalement du projet OpenTracker, mais a rĂ©intĂ©grĂ© ou rĂ©implĂ©mentĂ© au fil du temps les modifications faites dans d’autres variantes.

    Le Tracker est un composant central de l’interface de Haiku et a donc reçu un nombre assez important d’évolutions :

    La taille des fichiers est maintenant affichĂ©e Ă  l’aide de la fonction string_for_size qui s’adapte aux conventions de la langue et du pays choisi par l’utilisateur.

    Les brouillons de courrier Ă©lectronique disposent maintenant de leur propre type MIME et de l’icĂŽne associĂ©e. Ils s’ouvriront dans un Ă©diteur de mail plutĂŽt que dans une fenĂȘtre de lecture de message.

    Pour les fichiers qui disposent d’un attribut « rating » (Ă©valuation), ce dernier est affichĂ© avec des Ă©toiles pleines ou vides selon la note attribuĂ©e. La note va de 0 Ă  10 mais il n’y a que 5 Ă©toiles. Le caractĂšre demi-Ă©toile permet d’afficher la note exacte avec les versions rĂ©centes d’Unicode (depuis 2018 en fait, mais il a fallu attendre la disponibilitĂ© dans une police de caractĂšres).

    Une fenĂȘtre du Tracker, montrant la colonne taille et la colonne rating

    La gestion des dossiers en lecture seule a Ă©tĂ© amĂ©liorĂ©e. Ils sont affichĂ©s sur fond gris (au lieu d’un fond blanc pour les dossiers modifiables) et tous les menus correspondant Ă  des opĂ©rations non autorisĂ©es sont dĂ©sactivĂ©s (au lieu d’ĂȘtre activĂ©s, mais d’aboutir sur une erreur car le dossier est en lecture seule).

    Dans le mĂȘme esprit, le bouton « ouvrir » des boĂźtes de dialogues d’ouverture de fichier est dĂ©sactivĂ© si le fichier sĂ©lectionnĂ© ne peut pas ĂȘtre ouvert (c’était dĂ©jĂ  le cas, mais tous les cas possibles n’étaient pas bien pris en compte).

    Un problĂšme d’affichage sur le systĂšme de fichier packagefs a Ă©tĂ© corrigĂ© : les dossiers n’ont pas de taille et affichent donc - au lieu d’une taille fixe de 4 Kio qui n’a aucune signification.

    La fenĂȘtre de recherche a reçu quelques Ă©volutions, voir plus bas dans la section dĂ©diĂ©e au Google Summer of Code, qui dĂ©taille le travail rĂ©alisĂ© Ă  ce sujet.

    Le menu « templates », utilisĂ© quand on fait un 'clic droit -> Nouveau
' et qui permet de crĂ©er diffĂ©rents types de fichiers et de dossiers Ă  partir de fichiers de rĂ©fĂ©rence, peut maintenant contenir des sous-dossiers, pour les personnes qui utilisent beaucoup cette possibilitĂ©, avec par exemple des modĂšles de documents prĂ©-remplis pour diffĂ©rents usages.

    Enfin, un peu de nettoyage interne : les classes NavMenu et SlowContextPopup, qui permettent la navigation dans les sous-dossiers via des menus popup, ont Ă©tĂ© fusionnĂ©es en une seule classe car elles sont toujours utilisĂ©es ensemble. Cela simplifie le code pour l’affichage de ces menus, qui a quelques particularitĂ©s pour permettre une navigation confortable mĂȘme sur un disque dur un peu lent.

    TV

    L’application TV utilisĂ©e pour recevoir la TNT Ă  l’aide d’un tuner appropriĂ© a Ă©tĂ© dĂ©placĂ©e dans le paquet haiku_extras et n’est donc plus installĂ©e par dĂ©faut. La plupart des gens ne disposant pas d’un tuner compatible sur leur ordinateur, cette application Ă©tait source de confusion et de nombreuses questions sur le forum.

    WebPositive

    WebPositive est le navigateur web de Haiku. Il utilise le moteur WebKit développé conjointement par Apple, Igalia et Sony principalement.

    En dehors de la mise Ă  jour du moteur vers une version plus rĂ©cente, WebPositive reçoit actuellement peu d’évolutions, les dĂ©veloppeurs Ă©tant malheureusement trop occupĂ©s par ailleurs. On peut toutefois mentionner une correction sur la barre de signets : celle-ci ne s’affichait jamais lorsque la langue du systĂšme Ă©tait autre chose que l’anglais.

    Zip-O-Matic

    Zip-O-Matic est un outil permettant de crĂ©er une archive zip facilement depuis le Tracker. Il a reçu une amĂ©lioration qui est en fait une correction d’un problĂšme qui existait depuis longtemps : l’archive crĂ©Ă©e est maintenant automatiquement sĂ©lectionnĂ©e dans le navigateur de fichier Ă  la fin du processus, ce qui permet de facilement la retrouver pour la renommer, la dĂ©placer ou l'envoyer Ă  son destinataire.

    Haikuports

    Haikuports est un projet indĂ©pendant de Haiku, il se charge d’alimenter le dĂ©pĂŽt de paquets. Au dĂ©part il s’agissait principalement d’un projet pour le portage de bibliothĂšque et de programmes venant d’autres systĂšmes (d’oĂč son nom), mais il est Ă©galement utilisĂ© pour la plupart des applications natives dĂ©veloppĂ©es pour Haiku.

    Le dĂ©pĂŽt de paquets contient actuellement 4193 paquets, il est mis Ă  jour en continu par une petite Ă©quipe de bĂ©nĂ©voles qui ne sont pas forcĂ©ment tous dĂ©veloppeurs, mais tout de mĂȘme capables de faire les tĂąches de maintenance ainsi que le dĂ©veloppement de quelques patchs simples.

    Il est impossible de lister toutes les mises à jour et ajouts, le projet HaikuPorts étant trÚs actif. Donc voici une sélection arbitraire de quelques nouveautés et mises à jour.

    Applications natives

    • Mises Ă  jour de Renga (client XMPP), PonpokoDiff (outil de diff), 2pow (clone de 2048), StreamRadio (lecteur de podcasts), NetSurf (navigateur web lĂ©ger)

    • Genio, un IDE pour Haiku avec gestion de la complĂ©tion de code via le protocole LSP (compatible avec les outils dĂ©veloppĂ©s pour VS Code par exemple).
    • Ajout de HaikuUtils, un ensemble d’outils de dĂ©veloppement et de debug divers.
    • WorkspaceNumber, un replicant pour afficher le numĂ©ro du bureau actif dans la DeskBar.
    • KeyCursor, un outil pour contrĂŽler le curseur de souris Ă  l’aide du clavier.
    • BatchRename, un outil pour renommer automatiquement des fichiers par lot.

    HaikuUtils

    WorkspaceNumber

    PonpokoDiff

    PecoRename

    2pow

    BatchRename

    Applications portées

    • Un gros travail a Ă©tĂ© fait sur le portage de KDE Frameworks et des applications l’utilisant. De trĂšs nombreuses applications Qt et KDE sont donc disponibles.
    • Du cĂŽtĂ© de GTK, il n’existait pas de version de GTK pour Haiku, le problĂšme a Ă©tĂ© rĂ©solu Ă  l’aide d’une couche de compatibilitĂ© avec Wayland qui n’implĂ©mente pas le protocole Wayland mais rĂ©implĂ©mente l’API de la libwayland. Les applications GTK arrivent petit Ă  petit, mais l’intĂ©gration est pour l’instant beaucoup moins bonne qu’avec Qt, qui dispose lui d’un vrai port utilisant les APIs natives directement. L’apparence des applications est trĂšs visiblement diffĂ©rente, certaines touches du clavier ne fonctionnent pas. C’est donc encore un peu expĂ©rimental.
    • Enfin, pour complĂ©ter les possibilitĂ©s d’outils graphiques, la bibliothĂšque Xlibe implĂ©mente les APIs de la libx11 (mais pas le protocole de communication de X) et permet de porter les applications FLTK par exemple, ainsi que celles utilisant directement la libx11. Il reste encore des problĂšmes avec les applications utilisant Tk (si vous connaissez Tk ou X, les dĂ©veloppeurs de Xlibe aimeraient bien un petit coup de main). En attendant, les applications Tk sont utilisables Ă  travers un portage de undroidwish, mais ça reste peu confortable.

    Du cĂŽtĂ© des compilateurs et des langages de programmation : LLVM a Ă©tĂ© mis Ă  jour en version 17. GCC est disponible en version 13 et peut maintenant ĂȘtre utilisĂ© pour compiler du FORTRAN et de l’Objective-C. Les derniĂšres versions de Python sont disponibles, et en plus avec des performances amĂ©liorĂ©es. Node.JS est Ă©galement mis Ă  jour, ou si vous prĂ©fĂ©rez le langage R, vous le trouverez Ă©galement, avec son IDE associĂ© rkward.

    Bien sĂ»r, la plupart des bibliothĂšques et outils disponibles sur d’autres systĂšmes sont aussi disponibles : ffmpeg (en version 6), Git, libreoffice, Wireshark


    Mentionnons enfin un pilote FUSE pour monter des volumes réseau NFS, qui vient compléter les deux implémentations de NFS présentes dans le noyau (une obsolÚte qui implémente NFS2, et une plus récente implémentant NFS4, mais qui est instable et pas activement maintenue actuellement).

    GCompris

    DrawTerm

    KDE Mah Jong

    NetBeans

    Frogatto

    CudaText

    Cantor

    Panneaux de préférences

    Appearance

    Les prĂ©fĂ©rences « Appearance » permettent de configurer l’apparence du systĂšme et des applications : principalement les polices de caractĂšres et les choix de couleurs.

    C’est ce dernier qui reçoit une mise Ă  jour en profondeur, avec l’ajout d’un mode automatique. Auparavant, chaque couleur utilisĂ©e par le systĂšme devait ĂȘtre configurĂ©e manuellement, ce qui permet un contrĂŽle trĂšs fin, mais demande de passer un certain temps Ă  faire des ajustements. Le mode automatique permet de configurer seulement 3 couleurs : le fond des fenĂȘtres, les barres de titres, et une couleur d’« accentuation ». Les autres couleurs et nuances sont calculĂ©es automatiquement Ă  partir de cette palette de base.

    En particulier, il devient beaucoup plus facile de choisir un fond sombre pour se retrouver avec un systÚme en mode sombre, trÚs à la mode chez certain·e·s utilisateurices de Haiku.

    Il est toujours possible d’activer le mode avancĂ© pour affiner les rĂ©glages si nĂ©cessaire (ou si vous aimez les interfaces graphiques bariolĂ©es et multicolores).

    Le mode automatique dans l’application Appearance

    La mĂȘme capture d’écran avec une configuration « mode sombre »

    Keymap (disposition clavier)

    L’application Keymap permet de configurer la disposition de touches du clavier. Le point qui a reçu un peu d’attention est la gestion de la configuration des touches modificatrices.

    Haiku est un dĂ©rivĂ© de BeOS qui lui-mĂȘme a Ă©tĂ© au dĂ©part inspirĂ© de Mac OS. On conserve de cet hĂ©ritage l’utilisation des touches commande et option au lieu de meta et alt sur les claviers de PC. Mais BeOS et Haiku sont conçus pour ĂȘtre utilisĂ©s avec des claviers de PC. La touche commande qui prend la place de la touche ALT est donc celle utilisĂ©e pour la plupart des raccourcis claviers. Cela se complique si on essaie d’utiliser un clavier fabriquĂ© par Apple (les codes de touches renvoyĂ©s par le clavier pour des touches situĂ©es au mĂȘme endroit ne sont pas les mĂȘmes), ou encore si on a besoin d’une touche AltGr (historiquement utilisĂ©e comme touche option par BeOS, mais aujourd’hui ce rĂŽle est plutĂŽt attribuĂ© Ă  la touche windows apparue un peu plus tard). Une page sur le wiki de dĂ©veloppement de Haiku tente de rĂ©sumer l’historique et la situation actuelle.

    La configuration des touches modificatrices est donc un sujet complexe, et il est probable que le comportement sera Ă  nouveau modifiĂ© plus tard. Quoi qu’il en soit, en attendant, l’application Keymap permet toutes les permutations possibles de configuration de ces touches.

    Screen (Affichage)

    Les prĂ©fĂ©rences d’affichage, en plus de permettre de changer la rĂ©solution d’écran, affichent quelques informations essentielles sur la carte graphique et l’écran en cours d’utilisation. Pour les Ă©crans, ces informations sont gĂ©nĂ©ralement extraites des donnĂ©es EDID, mais il y a une exception : les dalles d’affichage des PC portables n’implĂ©mentent en gĂ©nĂ©ral pas ce protocole. Les informations sont donc rĂ©cupĂ©rĂ©es par d’autres moyens parfois moins bien normalisĂ©s. Par exemple, l’identifiant du fabricant est un code Ă  3 lettres. En principe, les fabricants doivent s’enregistrer auprĂšs d’un organisme qui attribue ces codes, afin d’en garantir l’unicitĂ©.

    Cependant, certains fabricants ne l’ont pas fait, et se sont choisi eux-mĂȘmes un code qui semblait inutilisĂ©. La base de donnĂ©es officielle rĂ©serve donc ces codes et en interdit l’utilisation, afin d’éviter des conflits. Il arrivait donc que le fabriquant d’un Ă©cran soit affichĂ© comme Ă©tant « DO NOT USE », ce qui a inquiĂ©tĂ© quelques utilisateurs de Haiku se demandant s’ils risquaient d’endommager leur matĂ©riel.

    Ces entrĂ©es de la liste sont maintenant filtrĂ©es et remplacĂ©es par les noms des fabricants de panneaux d’affichages concernĂ©s (lorsqu’on sait de qui il s’agit).

    Outils en ligne de commande

    Haiku est fourni avec un terminal et un shell bash (par dĂ©faut, d’autres shells peuvent Ă©galement ĂȘtre utilisĂ©s). Les outils dĂ©finis dans la spĂ©cification POSIX sont fournis, ainsi que des complĂ©ments permettant d’utiliser les fonctionnalitĂ©s supplĂ©mentaires de Haiku.

    df

    La commande df affiche l’espace disque disponible sur chaque volume de stockage actuellement montĂ©.

    Les colonnes de l’affichage ont Ă©tĂ© rĂ©organisĂ©es, pour ĂȘtre plus lisibles, et se rapprocher un peu du format spĂ©cifiĂ© par POSIX (mais pas complĂštement lorsqu’on lance la commande sans options particuliĂšres : des informations supplĂ©mentaires sont alors affichĂ©es).

    filteredquery

    L’outil filteredquery permet d’effectuer une requĂȘte sur les attributs Ă©tendus du systĂšme de fichiers (permettant de requĂȘter le systĂšme de fichiers comme une base de donnĂ©es, plutĂŽt que de naviguer de façon hiĂ©rarchique dans les dossiers), puis de filtrer le rĂ©sultat pour ne conserver que les rĂ©ponses contenues dans un sous-dossier spĂ©cifique. En effet, les requĂȘtes Ă©tant indĂ©pendantes de l’organisation des dossiers, il est nĂ©cessaire de faire ce filtrage par post-traitement des rĂ©sultats (ce qui reste tout de mĂȘme gĂ©nĂ©ralement plus rapide que de faire l’inverse : parcourir tous les fichiers d’un dossier pour trouver ceux correspondant Ă  un critĂšre particulier).

    Cet outil n’a pas reçu de nouvelles fonctionnalitĂ©s, mais de nombreuses corrections et nettoyages qui le rendent vĂ©ritablement utilisable.

    ping, traceroute, telnet, ftpd

    Ces commandes liĂ©es Ă  des opĂ©rations sur le rĂ©seau ont Ă©tĂ© remplacĂ©es par les derniĂšres versions dĂ©veloppĂ©es par FreeBSD, permettant de bĂ©nĂ©ficier d’une version moderne, avec plus de fonctionnalitĂ©s et moins de bugs.

    La commande ping6 est supprimĂ©e, car ping peut maintenant utiliser l’IPv6 aussi bien que l’IPv4.

    pkgman

    L’outil pkgman permet de tĂ©lĂ©charger et d’installer des logiciels et des mises Ă  jour.

    Il a peu Ă©voluĂ©, mais on peut tout de mĂȘme noter l’utilisation d’un algorithme de tri « naturel » pour l’affichage des rĂ©sultats dans l’ordre alphabĂ©tique (par exemple, llvm12 sera affichĂ© aprĂšs llvm9).

    Une fonction qui n’est toujours pas disponible dans pkgman est le nettoyage des dĂ©pendances non utilisĂ©es. Un script fourni dans le dĂ©pĂŽt Git de Haiku permet de rĂ©aliser manuellement une analyse des paquets installĂ©s sur le systĂšme pour dĂ©tecter ceux qui n’ont pas de dĂ©pendances, il faudra pour l’instant se contenter de cette solution.

    strace

    L’outil strace permet d’afficher les appels systĂšmes effectuĂ©s par une application, pour comprendre son interfaçage avec le noyau et investiguer certains problĂšmes de performances ou de mauvais comportements.

    L’interfaçage avec le noyau pour extraire ces informations Ă©tant assez spĂ©cifique, l’implĂ©mentation de strace est faite Ă  partir de zĂ©ro, et ne partage pas de code avec la commande du mĂȘme nom disponible par exemple sous Linux.

    strace est mis Ă  jour rĂ©guliĂšrement et en fonction des besoins des dĂ©veloppeurs de Haiku pour dĂ©coder et afficher de plus en plus d’informations. Par exemple, elle peut maintenant afficher le contenu des iovec (par exemple pour les fonctions readv ou writev), ainsi que les objets manipulĂ©s par wait_for_object et event_queue.

    Un exemple de sortie de strace (traçant l’ouverture d’un fichier et le chargement d’une bibliothĂšque partagĂ©e) avant ces changements:

    open(0x5, "plaintext", 0x2042, 0x0) = 0x8000000f () (49 us)
    map_file("libicuuc.so.66 mmap area", 0x7f04c2675228, 0x6, 0x1ababd0, 0x1, 0x0, true, 0x3, 0x0) = 0x329a0 () (108 us)
    

    et aprĂšs :

    open(0x5, "plaintext", O_RDWR|O_NOTRAVERSE|O_CLOEXEC, 0x0) = 0x8000000f Operation not allowed (57 us)
    map_file("libicuuc.so.66 mmap area", [0x0], B_RANDOMIZED_ANY_ADDRESS, 0x1ababd0, B_READ_AREA, 0x0, true, 0x3, 0x0) = 0x73e8 ([0x6392223000]) (135 us)
    

    whence

    La commande whence permettait de trouver dans le PATH un exĂ©cutable Ă  partir de son nom. Elle Ă©tait implĂ©mentĂ©e sous forme d’une fonction bash dans le fichier profile par dĂ©faut. Cependant, cette implĂ©mentation posait problĂšme pour charger le fichier profile avec d’autres shells, elle a donc Ă©tĂ© supprimĂ©e. La commande which peut ĂȘtre utilisĂ©e Ă  la place, puisqu’elle remplit un rĂŽle Ă©quivalent.

    Serveurs

    Les serveurs sont l’équivalent des daemons pour UNIX ou des services sous Windows : il s’agit d’applications lancĂ©es par le systĂšme pour rendre diffĂ©rents services et coordonner l’ensemble des applications.

    app_server

    app_server est le serveur graphique de Haiku, Ă©quivalent de X ou de Wayland. Il se distingue par un rendu graphique fait principalement cĂŽtĂ© serveur (pour les applications natives), ce qui permet de l’utiliser de façon fluide Ă  travers une connexion rĂ©seau.

    Bien que ce soit le serveur graphique, et qu’il ait reçu plusieurs amĂ©liorations importantes, les diffĂ©rences sont subtiles. Elles sont toutefois importantes pour proposer un systĂšme qui semble rĂ©actif et confortable Ă  utiliser.

    Un premier changement est une rĂ©architecture du code qui traite le rafraĂźchissement de l’écran. Ce rafraĂźchissement se fait en gĂ©nĂ©ral en plusieurs Ă©tapes, par exemple, si on dĂ©place une fenĂȘtre :

    • Le contenu de la fenĂȘtre dĂ©placĂ©e peut ĂȘtre directement recopiĂ© de l’ancienne position vers la nouvelle,
    • La zone oĂč se trouvait la fenĂȘtre auparavant doit ĂȘtre re-remplie avec ce qui se trouvait en dessous de la fenĂȘtre dĂ©placĂ©e. Cela peut ĂȘtre plusieurs morceaux de fenĂȘtres d’autres applications, qui vont devoir chacune rĂ©-afficher une partie de cette zone.

    Le problĂšme Ă©tant que certaines applications peuvent mettre un peu de temps Ă  rĂ©pondre Ă  cette demande de rĂ©-affichage (par exemple parce qu’elles sont occupĂ©es ailleurs, ou alors parce que la zone Ă  redessiner est relativement complexe).

    DiffĂ©rentes stratĂ©gies peuvent ĂȘtre mises en place dans ce cas : laisser Ă  l’écran le contenu obsolĂšte, ou remplir la zone en blanc en attendant que les donnĂ©es deviennent disponibles, par exemple. Ou encore, tout simplement ne rien mettre Ă  jour du tout tant que tout l’écran n’est pas prĂȘt Ă  ĂȘtre affichĂ©. Il faut faire un compromis entre la rĂ©activitĂ© (dĂ©placer la fenĂȘtre tout de suite), la fluiditĂ© (Ă©viter les clignotements de zones blanches) et la prĂ©cision (affichage d’information cohĂ©rente et Ă  jour).

    Plusieurs modifications ont permis d’obtenir un meilleur compromis.

    Dans un autre domaine, la police de caractĂšres par dĂ©faut « Noto Sans Display » a Ă©tĂ© remplacĂ©e par « Noto Sans », ce qui donne un affichage du texte lĂ©gĂšrement diffĂ©rent. La police « display » avait Ă©tĂ© choisie suite Ă  une mauvaise comprĂ©hension de la signification de ce mot en typographie : il signifie que c’est une police de caractĂšres Ă  utiliser pour des gros titres et autres textes courts. Il ne signifie pas que c’est une police Ă  utiliser sur un Ă©cran d’ordinateur. De toutes façons la police Noto Display n’est plus maintenue par Google et a disparu des derniĂšres versions du jeu de polices Noto.

    Toujours dans le domaine des polices de caractĂšres, app_server sait maintenant charger les fichiers « variable fonts ». Ces fichiers contiennent plusieurs polices de caractĂšres dĂ©finies Ă  partir de glyphes de base, et d’algorithmes de transformation et de dĂ©formation (pour rendre une police plus ou moins grasse, plus ou moins italique
). Pour l’instant, app_server sait charger les valeurs de ces paramĂštres qui sont prĂ©configurĂ©es dans le fichier. Cela permet de rĂ©duire la place utilisĂ©e par les polices de caractĂšres sur le media d’installation de Haiku (c’est l’un des plus gros consommateurs d’espace disque, qui nous empĂȘche de faire tenir une version complĂšte de Haiku sur un CD de dĂ©monstration par exemple).

    Plus tard, il sera Ă©galement possible de configurer plus finement ces paramĂštres pour gĂ©nĂ©rer des variantes intermĂ©diaires des polices de caractĂšres, ainsi que d’exploiter certaines polices qui offrent des paramĂštres configurables supplĂ©mentaires.

    input_server

    L’input_server se charge de lire les donnĂ©es venant des pĂ©riphĂ©riques d’entrĂ©e (clavier et souris) et de les convertir en Ă©vĂšnements distribuĂ©s aux applications. Il est extensible par des add-ons qui peuvent gĂ©nĂ©rer ou filtrer des Ă©vĂšnements, ce qui peut ĂȘtre utilisĂ© pour de l’accessibilitĂ© (Ă©muler une souris Ă  partir de touches du clavier), de l’automatisation (envoi de commandes prĂ©-enregistrĂ©es), du confort d’utilisation (bloquer le touchpad d’un ordinateur portable lorsque le clavier est en cours d’utilisation) et bien d’autres choses.

    L’input_server a reçu des corrections de problĂšmes sur la gestion des rĂ©glages de souris, permettant en particulier d’utiliser des rĂ©glages diffĂ©rents pour plusieurs pĂ©riphĂ©riques (souris, touchpad), et que ceux-ci soient bien enregistrĂ©s.

    registrar

    Le serveur registrar suit les applications en cours de fonctionnement, et leur permet de communiquer entre elles au travers de l’envoi de messages. Il assure Ă©galement le suivi de la base de donnĂ©es des types MIME et des associations de types de fichiers avec les applications correspondantes.

    L’implĂ©mentation de BMessageRunner, qui permet d’envoyer des messages pĂ©riodiques (par exemple pour faire clignoter le curseur des zones de texte Ă  la bonne vitesse), autorise maintenant des intervalles de rĂ©pĂ©tition en dessous de 50 millisecondes. Cela permet d’utiliser ce systĂšme pour des animations fluides de l’interface graphique, par exemple.

    D’autre part, la liste des applications et documents rĂ©cemment lancĂ©s est maintenant limitĂ©e Ă  100 entrĂ©es. Cela Ă©vite un fichier qui grossit indĂ©finiment et finit par contenir surtout des vieilles informations sans intĂ©rĂȘt.

    Kits

    Le systĂšme Haiku fournit les mĂȘmes APIs que BeOS. Elles couvrent les usages basiques d’une application, et sont dĂ©coupĂ©es (dans la documentation de BeOS et de Haiku, au moins) en « kits » qui prennent chacun en charge une partie spĂ©cifique (interface graphique, multimĂ©dia, jeux vidĂ©os, accĂšs au matĂ©riel, etc).

    Interface

    L’interface kit est la partie de la bibliothùque standard qui se charge des interfaces graphiques.

     BColumnListView

    BColumnListView est un ajout de Haiku par rapport Ă  BeOS. Il s’agit d’un Ă©lĂ©ment d’interface permettant de prĂ©senter une liste avec plusieurs colonnes, de trier les lignes selon le contenu de ces colonnes, et aussi d’avoir des items hiĂ©rarchisĂ©s avec la possibilitĂ© de plier et dĂ©plier une partie de l’arborescence.

    Cette classe remplace avantageusement BListView et surtout BColumnListView, les classes historiques de BeOS, qui sont beaucoup plus limitées.

    Un certain nombre de type de colonnes prĂ©dĂ©finis sont Ă©galement disponibles, ce qui facilite la construction d’interfaces prĂ©sentant les donnĂ©es de diffĂ©rentes applications avec le mĂȘme formatage.

    La classe BColumnListView elle-mĂȘme n’a pas changĂ©. Par contre, les colonnes de type « taille » (pour afficher une taille en Kio, Mio, Gio
) et « date » utilisent la langue choisie dans les prĂ©fĂ©rences systĂšme au lieu d’un format anglais par dĂ©faut.

    BTextView

    BTextView est une classe permettant d’afficher une zone de texte Ă©ditable. Elle implĂ©mente les fonctionnalitĂ©s de base (curseur, sĂ©lection, retour Ă  la ligne automatique) ainsi que quelques possibilitĂ©s de mise en forme (couleurs, polices de caractĂšres).

    BTextView peut Ă©galement ĂȘtre utilisĂ©e pour des zones de textes non Ă©ditables, souvent plus courtes. Cela permet de rĂ©utiliser une partie des algorithmes de mise en page et de formatage du texte dans diffĂ©rents contextes. Dans le cadre de l’utilisation du « layout system », une vue doit pouvoir indiquer sa taille minimale, maximale et optimale. Le « layout system » va ensuite calculer la meilleure disposition de fenĂȘtre possible pour satisfaire ces contraintes.

    Le cas des zones de texte est particulier, car la hauteur optimale dĂ©pend du nombre de lignes de texte, qui lui-mĂȘme peut ĂȘtre plus ou moins grand si la largeur de la vue oblige Ă  ajouter des retours Ă  la ligne. Le « layout kit » prend en compte ce cas particulier, mais les algorithmes ne sont pas encore tout Ă  fait au point et peuvent conduire Ă  des rĂ©sultats inattendus dans certains cas. Un de ces cas particuliers sur les zones de texte non Ă©ditables a Ă©tĂ© corrigĂ©.

    BMenu

    La classe BMenu permet d’afficher un menu. Elle est utilisĂ©e de plusieurs façons, puisqu’on trouve des menus dans des barres de menu, dans des contrĂŽles de type « popup », ou encore en faisant un clic droit sur certains Ă©lĂ©ments de l’interface.

    Les menus sont Ă©galement particuliers parce qu’ils peuvent d’étendre en dehors de la fenĂȘtre dont ils sont originaires. Ils sont donc implĂ©mentĂ©s sous forme de fenĂȘtres indĂ©pendantes. Mais cela pose un autre problĂšme : dans Haiku, chaque fenĂȘtre exĂ©cute son propre thread et sa propre boucle d’évĂšnements. Si on navigue dans un grand nombre de menus et de sous-menus, cela peut causer quelques problĂšmes de synchronisation et de performances.

    Le code contient Ă©galement un grand nombre de cas particuliers pour, par exemple, aligner les raccourcis claviers et les flĂšches indiquant la prĂ©sence de sous-menus ente les diffĂ©rents items d’un menu, ou encore dĂ©tecter si un dĂ©placement de souris a pour but de sĂ©lectionner un autre menu (en dessous ou au-dessus de celui actif), ou bien plutĂŽt de naviguer vers un sous-menu.

    Les nouveautés suivantes sont apparues cette année:

    • Correction de problĂšmes de race condition lors de l’ajout d’items dans un menu pendant qu’il est affichĂ© Ă  l’écran. Ce problĂšme se manifestait par exemple dans les menus affichant la liste des rĂ©seaux Wifi, qui sont mis Ă  jour en temps rĂ©el.
    • Finalisation de l’implĂ©mentation de la navigation au clavier (avec les flĂšches directionnelles) dans les menus.
    • Affichage des symboles graphiques UNICODE pour « backspace » (⌫) et « delete » (〈) si ces touches sont utilisĂ©es comme raccourcis clavier pour un item de menu.
    • Utilisation d’un algorithme de tri stable pour la fonction SortItems. Ce type d’algorithme prĂ©serve l’ordre relatif des items qui sont Ă©gaux d’aprĂšs la fonction de comparaison. Ce n’est pas le cas de certains algorithmes de tri classiques, notamment le quicksort. La consĂ©quence Ă©tait que trier un menu dĂ©jĂ  triĂ© pouvait changer l'ordre des items. C’était visible encore une fois sur le menu listant les rĂ©seaux Wifi, qui est triĂ© par puissance du signal reçu.

     BSpinner

    BSpinner est un contrĂŽle permettant de choisir une valeur numĂ©rique, soit Ă  l’aide de boutons +/- pour modifier la valeur par incrĂ©ments, soit en entrant directement la valeur dans une zone de texte.

    Il s’agit d’une extension de Haiku par rapport Ă  BeOS qui ne proposait pas cette fonctionnalitĂ©.

    Cette classe est encore en cours de développement. Elle a reçu des améliorations pour désactiver correctement les boutons +/- lorsque la valeur atteint le minimum ou le maximum autorisé, et aussi une correction sur le message de notification envoyé lors des changements de valeurs du spinner, qui ne contenaient pas la bonne valeur.

    rgb_color

    La structure rgb_color permet de reprĂ©senter une couleur par la valeur de ses composantes rouge, vert, bleu (comme son nom l’indique) et alpha (comme son nom ne l’indique pas). Elle fournit Ă©galement un certain nombre de fonctions pour mĂ©langer des couleurs, les Ă©claircir ou les assombrir.

    La mĂ©thode Brightness() dans la classe rgb_color implĂ©mentante maintenant l’algorithme perceptual brightness documentĂ© par Darel Rex Finley, qui donne des meilleurs rĂ©sultats que l’algorithme utilisĂ© prĂ©cĂ©demment (qui Ă©tait celui de la luminositĂ© dans l’espace de couleurs Y'IQ. La fonction perceptual_brightness devenue redondante est supprimĂ©e.

    Cette mĂ©thode permet en particulier de dĂ©terminer si une couleur est « sombre » ou « claire », et ainsi de dĂ©cider si du texte affichĂ© par-dessus doit ĂȘtre blanc ou noir (comme dĂ©montrĂ© ici par exemple).

    Locale

    Le locale kit se charge de tous les aspects liés à la localisation : traductions des applications, formatage des messages en utilisant les rÚgles de pluralisation de chaque langue, formatage de dates, de nombres avec et sans unités, de pourcentages, nom des fuseaux horaires


    Il utilise ICU pour implĂ©menter la plupart de ces fonctionnalitĂ©s, mais fournit une surcouche avec une API s’intĂ©grant mieux avec les autres kits.

    La principale Ă©volution cette annĂ©e est l’implĂ©mentation de BNumberFormat, qui permet de formater des nombres. Elle permet de choisir une prĂ©cision (nombre de dĂ©cimales - pour les langues qui utilisent un systĂšme dĂ©cimal), d’afficher ou non des sĂ©parateurs de groupes (de milliers en français, mais par exemple en Inde la sĂ©paration se fait traditionnellement par multiples de 10 000).

    Media

    Le media kit se charge de tous les aspects multimedia.

    Il se compose de deux parties. D’une part, un systĂšme de gestion de flux mĂ©dia temps rĂ©el, permettant de transfĂ©rer des donnĂ©es multimĂ©dia (son ou flux vidĂ©o par exemple) entre diffĂ©rentes applications qui vont les manipuler, le tout avec un certain contrĂŽle du temps de traitement ajoutĂ© par chaque opĂ©ration, pour tenter de minimiser la latence tout en Ă©vitant les vidages de tampons qui produiraient une interruption dans le flux. D’autre part, des classes permettant d’encoder et de dĂ©coder des fichiers mĂ©dia et d’en extraire des flux de donnĂ©es (encodĂ©es ou dĂ©codĂ©es).

    C’est surtout cette deuxiĂšme partie qui a reçu quelques Ă©volutions. La version de ffmpeg utilisĂ©e pour le dĂ©codage de presque tous les formats audio et video est maintenant la derniĂšre version ffmpeg 6. Quelques autres problĂšmes (erreurs d’arrondis, gestion des tampons partiels en fin de fichier) ont Ă©galement Ă©tĂ© corrigĂ©s, ce qui permet de faire fonctionner Ă  nouveau le jeu BePac Deluxe qui est extrĂȘmement intolĂ©rant au moindre Ă©cart de comportement par rapport Ă  l’implĂ©mentation du Media Kit dans BeOS.

    Support

    Le support kit contient un ensemble de classes basiques mais indispensables : gestion des chaßnes de caractÚres, des tampons en mémoire, etc. Il fournit les briques de bases utilisées par les autres kits.

    BDataIO

    BDataIO est une classe abstraite avec des fonctions de lecture et d’écriture. Plusieurs autres classes sont des instances de BDataIO, par exemple BFile (reprĂ©sentant un fichier), mais aussi BMemoryIO (permettant d’accĂ©der Ă  une zone mĂ©moire).

    Plusieurs autres classes acceptent BDataIO (ou sa sous-classe BPositionIO, qui ajoute la possibilitĂ© de se dĂ©placer Ă  une position donnĂ©e dans le flux) comme entrĂ©e ou comme sortie. Il est donc facilement possible de rĂ©aliser les mĂȘmes opĂ©rations sur un fichier, une zone de donnĂ©es en mĂ©moire, un socket rĂ©seau, ou tout autre objet susceptible de fournir une interface similaire.

    BDataIO elle-mĂȘme n’a pas Ă©voluĂ©, mais deux de ses implĂ©mentations, BBufferedDataIO et BAdapterIO, ont Ă©tĂ© amĂ©liorĂ©es. Ces deux classes permettent de construire un objet BDataIO Ă  partir d’un autre, en ajoutant un cache en mĂ©moire pour accĂ©lĂ©rer les opĂ©rations ou encore pour rendre compatible avec BPositionIO un objet qui ne l’est pas.

    Ces classes sont en particulier utilisĂ©es par l’application StreamRadio, qui implĂ©mente la lecture de podcasts en connectant directement le rĂ©sultat d’une requĂȘte HTTP (effectuĂ©e grace au network kit) dans un dĂ©codeur audio (via la classe BMediaFile du media kit). La mise en tampon permet de revenir en arriĂšre dans la lecture d’un Ă©pisode, de tĂ©lĂ©charger en avance les donnĂ©es qui vont ĂȘtre lues, et d’éviter de conserver inutilement en mĂ©moire les donnĂ©es qui sont dĂ©jĂ  lues par l’application.

    BibliothĂšques C

    Les « kits » mentionnĂ©s ci-dessus sont l’API en C++ utilisĂ©e par les applications Haiku.

    Il existe aussi des APIs en C, en grande partie implémentant la bibliothÚque C standard et les fonctions décrites dans la spécification POSIX.

    Libroot

    Libroot implĂ©mente la bibliothĂšque standard C. Elle regroupe entre autres la libc, la libm, et la libpthread, qui sont parfois implĂ©mentĂ©es comme 3 bibliothĂšques diffĂ©rentes pour d’autres systĂšmes. Les Ă©volutions consistent Ă  complĂ©ter l’implĂ©mentation de la spĂ©cification POSIX, et Ă  suivre les Ă©volutions de cette derniĂšre ainsi que des nouvelles versions du langage C. On trouve Ă©galement des corrections de bugs dĂ©couverts en essayant de faire fonctionner de plus en plus d’applications sur Haiku, ce qui permet de mettre en Ă©vidence des diffĂ©rences de comportement avec d’autres systĂšmes.

    • Ajout de getentropy pour initialiser les gĂ©nĂ©rateurs de nombres alĂ©atoires
    • Correction de problĂšmes de locks au niveau de l’allocateur mĂ©moire lors d’un fork
    • Plusieurs corrections sur l’implĂ©mentation de locale_t, remplacement de code Ă©crit pour Haiku ou provenant de FreeBSD par une implĂ©mentation simplifiĂ©e mais suffisante, provenant de la bibliothĂšque C musl.
    • Ajout de static_assert en C11
    • Correction d’un crash lors de l’utilisation de certaines fonctions XSI
    • Ajout de stpncpy
    • La fonction open utilisĂ©e sur un lien symbolique pointant vers un fichier non existant peut maintenant crĂ©er le fichier cible.
    • Il est possible d’utiliser mmap sur un fichier plus grand que la mĂ©moire disponible sans avoir besoin de spĂ©cifier le flag MAP_NORESERVE
    • Utiliser rename pour renommer un fichier vers lui-mĂȘme ne retourne plus d’erreur (conformĂ©ment Ă  la spĂ©cification POSIX).
    • Ajout de pthread_sigqueue

    Libnetwork

    La libnetwork implĂ©mente les APIs nĂ©cessaire pour se connecter au rĂ©seau (sockets, rĂ©solution DNS
). Elle est sĂ©parĂ©e de la bibliothĂšque C pour des raisons historiques : l’implĂ©mentation de TCP/IP pour BeOS avait Ă©tĂ© rĂ©alisĂ©e entiĂšrement en espace utilisateur (le noyau n’offrant qu’une interface pour envoyer et recevoir des paquets ethernet sur la carte rĂ©seau). Cela a posĂ© des problĂšmes de compatibilitĂ© avec d’autres systĂšmes, et des problĂšmes de performance. Haiku est donc compatible avec la version "BONE" de BeOS, qui implĂ©mente la pile rĂ©seau dans le noyau.

    • Mise Ă  jour du rĂ©solveur DNS Ă  partir du code de NetBSD 9.3. PrĂ©cĂ©dement le code utilisĂ© Ă©tait celui du projet netresolv de NetBSD, mais ce projet n’a pas connu de nouvelles publications et le code est Ă  nouveau maintenu directement dans NetBSD sans publication sĂ©parĂ©e.
    • Correction d’un crash lors de l’utilisation de multicast IPv4

    LibBSD

    La libbsd implĂ©mente plusieurs extensions fournies par la libc de certains systĂšmes BSD. Elle est sĂ©parĂ©e de la bibliothĂšque C principale pour limiter les problĂšmes de compatibilitĂ©: certaines applications prĂ©fĂšrent fournir leur propre version de ces fonctions, ou d’autres fonctions avec le mĂȘme nom mais un comportement diffĂ©rent. Elles peuvent alors s’isoler en n’utilisant pas la libbsd pour Ă©viter toute interfĂ©rence.

    LibGNU

    De façon similaire à la libbsd, la libgnu fournit des fonctions qui sont disponibles dans la glibc (la bibliothùque C du projet GNU) mais ne font pas partie d’un standard (C ou POSIX).

    • Ajout de sched_getcpu pour savoir sur quel cƓur de CPU le thread appelant est en train de s’exĂ©cuter.
    • Ajout de pthread_timedjoin_np, pour attendre la fin de l’exĂ©cution d’un thread (comme pthread_join mais avec un timeout.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    ❌
    ❌