Apports de Fedora à l'écosystème du Logiciel Libre partie 4

Il est courant, au sein de la communauté du Logiciel Libre, de présenter une distribution GNU/Linux comme une simple intégration, ou un assemblage de tous les logiciels qu'elle propose. Une sorte de glu entre eux.

Si c'est sans doute le cas de certaines d'entre elles, nous ne pouvons en conclure que c'est toujours le cas. En particulier, la distribution Fedora Linux va au delà de ce constat. Ses objectifs et sa communauté lui permettent de réaliser d'autres choses. En effet depuis sa création, Fedora Linux est une vitrine technologique et à ce titre a essayé de mettre en avant ou de développer des solutions novatrices pour le Logiciel Libre. Mais depuis Fedora 21, sortie fin 2011, Fedora Linux s'est découpée en trois produits distincts. Si finalement une Fedora Workstation et Server ont accès aux mêmes paquets, le projet a souhaité fournir des expériences utilisateur adaptées à chaque cas d'usage dès la fin de l'installation. Par conséquent, Fedora Workstation a sa liste de tâches pour intégrer et développer de nouvelles solutions pour améliorer l'usage bureautique de l'utilisateur.

Et si la distribution Fedora Linux est souvent considérée comme une version de tests pour la distribution Red Hat Enterprise Linux (RHEL) de Red Hat nous allons constater que finalement toute la communauté tire des bénéfices de ses travaux.

Le présent article est une adaptation des articles de blogs ici et de Christian Schaller qui m'en a donné l'autorisation. Il fait suite à un premier article à ce sujet puis à un second et enfin le dernier de la série. Le premier article avait donné lieu à une conférence lors des JM2L de 2017 et aux RMLL de 2018 dont la vidéo est disponible ici.

Wayland

Si la transition vers Wayland par défaut date de 2016 et est globalement une réussite pour la plupart des cas d'usage. Il reste toujours des éléments qui continuent à poser des problèmes justifiant le maintien de X.org et de XWayland.

La compatibilité avec le pilote propriétaire de nVidia est un de ces points. La fiabilité s'améliore, au point que GNOME utilise Wayland par défaut dans ce cas de figure dès Fedora Linux 36 grâce aux apports de la version 495.44 du pilote. Le travail continue avec l'entreprise nVidia, avec des réunions deux fois par semaine avec eux, pour être capable de l'étendre à l'ensemble des sessions de bureau KDE Plasma.

Un autre travail important abattu par Jonas Ådahl pour proposer la connexion distante à travers les protocoles VNC ou RDP afin d'afficher les applications graphiques à distance depuis une session Wayland.

La prise en charge de la fonctionnalité HDR des écrans est un autre sujet sur la table de Wayland.

PipeWire

L'objectif initial de Pipewire est de gérer les flux vidéos et audio de manière sécurisée et simple au sein du système. Par exemple faire le lien entre votre webcam et l'application web de visioconférence exécutée par Firefox.

Depuis Fedora 34, Pipewire remplace PulseAudio et JACK pour la gestion du son, tout en gardant des couches de compatibilité. Ce changement a fait l'objet d'une grande série de tests et d'améliorations pour parvenir finalement à une transition réussie où les problèmes étaient plus rares et mineurs. La gestion des périphériques Bluetooth pour l'audio bénéfice aussi de grandes avancées, notamment avec l'apport du codec audio haute définition LDAC ou encore de aptX-LL et de FastStream.

L'auteur de Pipewire, Wim Taymans, travaille avec les amateurs d'applications professionnelles en lien avec l'audio pour s'assurer de la bonne compatibilité des applications et proposer des améliorations. Red Hat souhaite également recruter des employés pour travailler sur ce sujet pour améliorer le support de l'audio dans le système, en lien avec un investissement dans le secteur de l'automobile.

L'un des objectifs actuels de PipeWire est la transmission audio transparente d'un flux S/PDIF à travers S/PDIF ou HDMI qui sont très employés dans des systèmes multimédia. Ou encore afficher l'état de la batterie du périphérique Bluetooth.

Toolbox

Cette application permet de lancer rapidement des machines virtuelles Fedora Linux dans un conteneur prêt à l'emploi permettant de facilement accéder au dossier personnel de l'utilisateur et à la session graphique et DBus. Outil idéal pour coder dans un environnement tel que Fedora Silverblue où le système de base est minimal et en lecture seule.

Ondřej Michal a travaillé pour permettre l'intégration du système RHEL dans ce système, ce qui permet de facilement travailler pour cette cible si nécessaire, ou d'effectuer différents tests.

De manière analogue au fonctionnement avec Fedora Linux, vous pouvez invoquer un nouveau système RHEL 8.3 ainsi :

$ toolbox create --distro rhel --release 8.3

L'intégration avec la configuration des comptes en ligne de GNOME est prévue pour permettre de faire le lien avec la souscription RHEL, comme cela a été fait pour GNOME Machines pour simplifier l'usage encore.

Flatpak

Owen Taylor a travaillé pour la génération des images Flatpak depuis la définition des paquets RPM de Fedora Linux. Ce qui permet de facilement déployer des paquets Flatpak récents à n'importe quel système le prenant en charge avec peu d'efforts, le gros du travail reposant sur la création du paquet RPM.

Cependant ce système reposait sur des images OCI, en gros compatible avec Kubernetes ou Docker ce qui permet de les exploiter à travers ces outils très employés. Mais l'inconvénient de cette méthode est que les tailles des mises à jour sont énormes en comparaison de l'usage d'OSTree par le dépôt Flathub. En effet, OSTree étant une sorte de git pour les binaires, les mises à jour sont incrémentales et de fait optimales. Grâce à Owen les images OCI bénéficient d'une mise à jour incrémentale et donc très petite ce qui permet de concilier le bénéfice des deux mondes.

GNOME

Il y a eu un gros travail d'amélioration de l'interface de GNOME ces derniers temps, en partie effectué par Allan Day pour notamment la nouvelle gestion du multi-écrans.

Kiosk mode

Une demande récurrente pour certaines machines est d'afficher une application uniquement sur un écran. Cela peut être une vidéo de promotion, une brochure tarifaire, un navigateur web dans un espace libre service, l'application du distributeur automatique de billets, et bien d'autres.

Mais GNOME Shell est trop gourmand par défaut et la possibilité de quitter facilement l'application par erreur ou volontairement est un point faible. On ne peut se contenter d'afficher l'application en plein écran dans une session GNOME Shell.

Pour tirer bénéfice de la gestion du matériel de GNOME avec libinput et Wayland tout en limitant la maintenance, Ben Breard a écrit une application nommée GNOME Kiosk répondant à ce problème. Il lance une application unique en plein écran avec Mutter et rien d'autres. Il explique en détail sur le blog officiel de Red Hat comment s'en servir.

La session consomme seulement 18 Mio de RAM, soit 72 Mio de moins qu'une session minimale de GNOME Shell. Le but semble donc atteint.

Entrées de saisie

Peter Hutterer et Benjamin Tissoires ont travaillé sur la prise en charge des touchpad haptiques, en somme des touchpads qui vibrent ou simulent des sensations du toucher au doigt ce qui est utile pour certaines interactions.

Carlos Garnacho a quant à lui travaillé pour séparer les entrées de saisie et l'affichage dans GNOME. Maintenant les entrées de saisie ont un fil d'exécution dédié. Cela améliore la latence et la sensation de fluidité du système.

Peter Hutterer est en train de travailler pour la prise en charge du défilement haute définition à la souris à travers libinput.

L'écran

Une fonctionnalité qui est apparue ces dernières années notamment dans la gamme Lenovo (qui a un partenariat avec Red Hat et Fedora) est l'affichage qui réduit la lisibilité depuis un point de vue différent de celui de l'utilisateur principal. Cela évite qu'un coup d’œil discret par dessus votre épaule aboutisse à obtenir beaucoup d'informations sensibles tout en vous permettant de travailler convenablement. Hans de Goede de Red Hat a travaillé sur la prise en charge côté noyau quand Marco Trevisan de Canonical travaille sur la prise en charge côté espace utilisateur.

L'accélération graphique pour Penny

Khronos Group a proposé il y a quelques années une nouvelle API pour l'accélération graphique nommée Vulkan, en plus d'OpenGL qui était la référence par le passé. Si Vulkan a remplacé en partie OpenGL, ce dernier a encore de beaux jours devant lui.

Cependant cela nécessite beaucoup d'efforts de maintenir les deux API en même temps, notamment pour la prise en charge du matériel. Ainsi est né le projet Zink qui est d'implémenter l'API OpenGL au dessus de Vulkan, tirant parti ainsi des améliorations qu'il apporte. Ainsi OpenGL est implémenté une seule fois, et l'adaptation avec le matériel ne sera fait que pour l'API Vulkan.

Cependant Zink nécessite de télécharger l'image du GPU vers le CPU pour y appliquer un traitement à travers llvmpipe ce qui est tout sauf rapide. C'est l'objectif de Adam Jackson avec Penny de tout gérer au niveau du GPU pour améliorer les performances.

La gestion de l'énergie

Depuis longtemps Windows, macOS, Android et autres iOS permettent de contrôler la gestion de l'énergie de manière globale très facilement. Souvent à base de trois modes économie d'énergie, normal ou performance, le système pouvait jouer sur la fréquence des processeurs, la désactivation ou non des charges USB, ou le temps d'inactivité avant la mise en veille ou pour éteindre l'écran.

Cependant sous Linux, rien de tel de manière simple, il fallait souvent jouer soi même avec des applications ou extensions tierces qui jouaient plus ou moins finement dans /sys pour reproduire des comportements vaguement similaires.

Bastien Nocera a travaillé pour fournir dans GNOME 41 une telle configuration pour les machines qui le permettent. Le passage en mode économie d'énergie devenant même automatique quand le niveau de la batterie est faible. Cela repose sur un nouveau démon DBus power-profiles-daemon ce qui autorise son utilisation dans tout autre environnement de bureau facilement.

GNOME-Energie.png, oct. 2021

Conclusion

Comme nous pouvons le voir avec cette liste d'exemples, une distribution d’envergure comme Fedora, mais aussi Ubuntu, Debian ou autres peuvent apporter bien plus qu'une liste de logiciels à installer. Ils proposent des nouveaux outils, participent au développement ou à la stabilisation des logiciels qu'ils fournissent, peuvent collaborer avec d'autres entreprises ou communautés pour améliorer la prise en charge de leur produit.

Ici nous ne parlons que des travaux significatifs de ces dernières années, Fedora a également œuvré pour PulseAudio, systemd, PackageKit, NetworkManager, le pilote libre nouveau et tant d'autres composants par le passé !

Malgré les liens forts entre Red Hat et Fedora, nous pouvons voir que beaucoup des travaux de Fedora de ces dernières années ont bénéficié à la plupart des distributions aujourd'hui. Et cela n'est pas près de se terminer.

Haut de page