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

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 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 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 2014, Fedora 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 travail pour intégrer et développer de nouvelles solutions pour améliorer l'usage bureautique de l'utilisateur.

Et si la distribution Fedora 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 qui avait donné lieu à une conférence lors des JM2L de 2017 et aux RMLL de 2018 dont la vidéo est disponible ici.

Expérience utilisateur

Pipewire

Wim Taymans, co-auteur de GStreamer et grand contributeur de PulseAudio étend le spectre de ses travaux avec Pipewire. Il souhaite avec ce composant unifier l'audio et la vidéo sous Linux. L'objectif au long terme n'est pas de gérer uniquement la vidéo, mais de prendre en compte également tout type de flux audio. Et non seulement il souhaite s'attaquer aux cas d'usage de PulseAudio, mais également à ceux de Jack (qui est plutôt dédié au traitement audio professionnel ou d'amateurs éclairés). Cela passera notamment par une compatibilité avec les applications existantes sans réécriture de leur part.

L'objectif est de rendre la plateforme Linux plus attirante pour les compositeurs et autres artistes du milieu. Pipewire a fait sa première apparition dans Fedora 27. Et son usage commence à produire ses premiers effets.

En effet, grâce à ce composant, GNOME Shell avec Wayland est capable de faire de l'affichage distant de la session via le protocole VNC. Cela permet donc les usages de contrôles à distance graphique. Merci à Jonas Ådahl pour ce résultat.

Séquence de démarrage

Affichage de GRUB

Hans de Goede a travaillé pour masquer GRUB par défaut sous Fedora, sauf si plusieurs systèmes sont installés. En effet dans ce cas de figure, GRUB ne sert qu'à démarrer un ancien noyau, ce qui est nécessaire uniquement en cas de soucis. Pour des raisons de cohérence et de simplicité, les messages de démarrage étant cachés par défaut, ce menu est caché pour ne pas perturber l'utilisateur outre mesure et gagner du temps.

Un nouveau mécanisme est mis en place. Le menu caché est finalement affiché si le précédent démarrage n'a pas abouti à une session valide. Cela autorise ainsi une résolution possible du problème. Pour désactiver cette fonctionnalité, vous pouvez manuellement appliquer la commande suivante avec les droits super utilisateurs :

# grub2-editenv - unset menu_auto_hide

Hans de Goede a publié une FAQ à propos de ce changement pour savoir comment l'activer ou le désactiver et quel est le comportement en cas de problèmes. Ce travail documenté permet à d'autres distributions de reproduire ce comportement pour simplifier la séquence de démarrage.

Démarrage sans remise à zéro de l'affichage

Pour les utilisateurs d'une carte graphique Intel et d'un ordinateur avec l'UEFI activé, l'affichage durant le démarrage est continu, sans remise à zéro de ce dernier. Cela rend l'expérience plus fluide et jolie. La changement fait suite au changement introduit dans Fedora 29 pour qu'un ordinateur mono-système ait GRUB masqué par défaut. Le nouveau thème plymouth bgrt récupère également le logo du constructeur de l'ordinateur ou de la carte mère durant le démarrage. Si vous ne souhaitez pas voir ce logo, basculez vers le thème spinner. Vous pouvez regarder cette vidéo pour voir le changement en action et les explications en détails et la FAQ par Hans de Goede, son développeur.

Les jeux vidéo

Beaucoup de tests ont été effectués par Olivier Fourdan et Jonas Ådahl pour identifier les problèmes d'exécution des jeux vidéo Steam avec GNOME sous Wayland et ont pu en corriger l'essentiel. Cela permet de repousser les limites de Wayland dans les cas d'usage et rendre ainsi chaque jour X11 de moins en moins nécessaire.

Pour améliorer également les performances des jeux vidéo, l'entreprise Feral Interactive a développé le projet gamemode pour optimiser la configuration du système dans le but de maximiser les performances lors de l'exécution d'un jeu. Pour l'instant Fedora se contente de proposer par défaut ce paquet mais une réflexion est en cours pour essayer de rendre ce paquet non nécessaire, en améliorant le gouverneur du CPU par exemple.

Gestion du matériel

Autonomie

Hans de Goede a travaillé sur une meilleure gestion de l'autonomie des ordinateurs portables avec un processeur Intel. Cela passe par une meilleure gestion de l'énergie des ports SATA pour disques durs et SSD (gain estimé de 1-1,5 W) en reprenant le mode utilisé par Windows : med_power_with_dipm. Intel HDA codec pour le multimédia est mis en sommeil après une seconde d’inactivité (gain estimé de 0,4 W). Et activation de l'économie d'énergie pour les récepteurs Bluetooth en USB (gain estimé de 0,4 W si tous les ports USB sont en repos). Sachant qu'un ordinateur portable récent non orienté puissance consomme moins de 10 W (7,5 W par exemple sur un Lenovo E560) en usage non intensif. Cela peut donner 20% d'autonomie supplémentaire.

Thunderbolt 3

Intégration de la norme Thunderbolt 3 qui est une norme concurrente à l'USB sur de nombreux points. Cette norme permet en effet de gérer des transferts de données ou de brancher un écran externe par exemple sur le même port. Cependant ces périphériques pourraient accéder à des informations sensibles de votre machine lors du branchement pour des raisons de performances. En effet pour alléger la charge CPU, ces périphériques peuvent être maîtres de la communication DMA. C'est pourquoi la norme propose une politique de sécurité pour que l'utilisateur autorise ou non l'accès à l'ordinateur et éviter que discrètement un appareil branché sans votre consentement ait un libre accès. Maintenant il est possible de configurer dans GNOME ces accès par le biais des notifications ou du panneau de configuration qui lui est dédié.

Panneau-Thunderbolt.png

Les politiques de sécurité possibles étant :

  • none : pas de restrictions ;
  • dponly : uniquement la sortie vidéo via DisplayPort ;
  • user : les périphériques connectés doivent recevoir une autorisation de l'utilisateur ;
  • secure : l'utilisateur doit autoriser l'appareil également et l'appareil doit prouver son identité avec une clé secrète.

Développement

Fedora Toolbox

Debarshi Ray a développé l'outil Fedora Toolbox pour simplifier le développement en utilisant massivement les conteneurs. Ainsi il sera plus simple de développer par exemple votre projet maison avec Fedora pour bénéficier des dernières versions, de le tester sur RHEL pour la compatibilité. Et si c'est un jeu, exécuter cela dans un environnement SteamOS.

Un gros travail est en cours pour améliorer encore l'expérience utilisateur afin de ne pas à avoir à réinstaller les mêmes outils dans chaque conteneur, ou d'être confus à propos du contenu de chacun. Il est envisagé de pouvoir plus facilement travailler sur des environnements complexes précis tels que Tensorflow ou CUDA par exemple.

Son intérêt sera particulièrement important dans le cadre du projet Silverblue, détaillé plus bas. En effet dans le contexte d'un système immutable, l'objectif sera de reposer les outils de développement sur des conteneurs manipulés à travers ce genre d'outils.

Et demain ?

Le HiDPI fractionnel

GNOME_HiDPI.png

Les affichages à haute densité de pixels (HiDPI) sont de plus en plus fréquents dans les configurations milieu et haut de gamme. Ils permettent d'améliorer la finesse de l'affichage sans pour autant réduire la taille des éléments affichés. Cependant sur certains modèles d'écran, les ratios entiers du HiDPI produisent des affichages trop grands ou trop petits. Pour résoudre ce problème, on souhaite introduire des valeurs intermédiaires non entières.

La bonne prise en charge de tels écrans n'est possible qu'avec Wayland, et GNOME dispose à titre expérimental d'une telle fonctionnalité qui a besoin de quelques raffinements encore. Pour ceux qui veulent tester, il suffit d'ajouter la valeur scale-monitor-framebuffer à la clé gsettings org.gnome.mutter.experimental-features pour que le panneau de configuration le propose.

Cela peut être effectué à l'aide de la commande suivante :

$ gsettings set org.gnome.mutter.experimental-features ['scale-monitor-framebuffer']

Ce travail est le fruit de la collaboration entre Jonas Ådahl de Red hat et Marco Trevisan de Canonical. Il devrait être bientôt disponible de manière stable.

Pipewire

Pipewire est encore en voie de maturation. De nombreuses choses restent à faire ou à stabiliser. Par exemple Jan Grulich, Tomas Popela et Eike Rathke travaillent sur la fonctionnalité d'écran partagé avec Wayland pour Firefox et Chrome afin de partager son écran lors d'une visioconférence avec WebRTC par exemple. Cependant cela n'est pas encore assez stable pour être activé par défaut. Si vous le souhaitez avec Chrome, il suffit d'activer l'option chrome://flags/#enable-webrtc-pipewire-capturer.

La gestion de l'audio n'est pas encore en place bien que le chantier soit bien avancé. Pipewire peut utiliser un plugin PulseAudio de GStreamer pour jouer le son de certaines applications GNOME. Wim teste également les applications employant Jack pour corriger les problèmes de compatibilité. Il fait également des tests sur une barre de son Sony HT-Z9F soundbar pour s'assurer du bon fonctionnement de Pipewire avec ce genre de matériel. Ainsi à terme les protocoles SPDIF, HDMI ou Bluetooth seront pris en charge convenablement. Le codec LDAC qui est un codec de haute qualité audio pour le Bluetooth sera également de la partie.

La prise en charge de JACK devrait être disponible avant celle de PulseAudio. Les premiers résultats stables pourraient apparaitre pour Fedora 31 à ce niveau.

OpenH264

Cela fait quelques temps que Firefox dispose de la bibliothèque d'OpenH264 de Cisco pour décoder matériellement le format H264 qui est très répandu. Cependant, le format H264 dispose de ce que l'on appelle des profils. L'objectif est d'activer certaines fonctionnalités du format suivant le cas d'usage de la vidéo. Une visio-conférence par exemple a besoin d'une plus faible qualité d'image que le film enregistré sur votre disque dur, et ce afin de limiter le besoin en bande passante et en latence.

OpenH264 ne prenait en charge que le profil baseline. Grâce à une collaboration de Red Hat, Endless, Cisco et Centricular, les profils high et main seront proposés prochainement. Le travail est en fait déjà partiellement disponible mais quelques rafinements restent nécessaires avant de le proposer par défaut. Des plateformes de vidéo en ligne comme Youtube pourront en tirer parti prochainement.

Les applications reposant sur la bibliothèque GStreamer, comme Totem de GNOME seront également bénéficiaires de cette amélioration.

Wayland

Firefox

Firefox_Wayland.png

Fedora a beaucoup œuvré pour proposer Wayland par défaut et faire en sorte que les logiciels essentiels fonctionnent bien avec comme LibreOffice et GNOME. C'est également le cas pour Firefox qui commence à voir le bout du tunnel, ce travail étant porté par Martin Stransky.

Fedora avait un dépôt COPR pour tester Firefox avec Wayland, puis un paquet officiel firefox-wayland était proposé depuis Fedora 28. Ce dernier n'étant qu'un script qui lance Firefox avec la variable d'environnement MOZ_ENABLE_WAYLAND défini à 1. Cela a permis de constater de nombreux problèmes qui ont pu être corrigés. Pour Fedora 31, qui devrait sortir en fin d'année 2019, Firefox avec la gestion native de Wayland sera proposé par défaut. Ainsi l'un des derniers composants par défaut de Fedora Workstation pourrait se passer du besoin d'utiliser XWayland.

Pilote propriétaire de nVidia

Il y a également le pilote propriétaire de nVidia qui n'offre pas pleinement une bonne expérience avec une session sous Wayland. Ce qui est bien sûr un problème pour ceux qui veulent tirer le plein potentiel de la carte graphique, en particulier pour les jeux ou le montage vidéo. Des travaux importants de Adam Jackson ont pu résoudre des problèmes pour la gestion des espaces de couleur et des écrans multiples. Mais il manque toujours la compatibilité avec XWayland pour offrir une expérience complète d'une session sous Wayland, si vous n'en avez pas besoin cela devrait fonctionner convenablement dès maintenant.

Les souris à haute résolution

Les souris à destination des joueurs ou des graphistes ont souvent des résolution plus haute afin d'améliorer la sensibilité et la précision du pointage. C'est pourquoi Peter Hutterer et Benjamin Tissoires ont proposé une RFC pour Wayland afin de tenir compte de ces cas d'usage. Le périphérique Dell Totem pourrait avoir une prise en charge pour Fedora 31.

La construction des applications Flatpak

GNOME_Logiciels_Flatpak_RPM.png

Owen Taylor travaille sur l'infrastructure de Fedora pour apporter de quoi construire des applications Flatpak directement, en parallèle des formats RPM classiques. L'objectif est de faciliter la vie du mainteneur qui pourra concevoir en une fois la construction des deux formats et les autres distributions ou utilisateurs pourront récupérer le Flatpak à jour directement s'ils le souhaitent.

Depuis la dernière fois, des progrès sensibles ont été obtenus. Un site web a été mis en ligne pour suivre l'évolution de ce travail pour une dizaine de paquets. Une fois que cet essai sera transformé, l'objectif est bien sûr d'étendre ce système à l'ensemble des paquets concernés.

Une réflexion est menée pour que GNOME Logiciels propose via une option de choisir d'installer un logiciel depuis Flatpak ou le dépôt RPM par défaut. À plus long terme l'option disparaitrait pour laisser place aux Flatpak uniquement, les RPM seraient relégués pour la base du système.

L'outil fleet commander avec Active Directory

FleetCommander.png

Fleet Commander est un outil pour gérer des flottes entières de machines sous Fedora ou RHEL, notamment pour les universités, les grosses entreprises ou les administrations et ainsi, de pouvoir gérer des milliers de machines. Il est possible de configurer les postes avec un navigateur Web ou l'outil Cockpit.

Oliver Gutierrez a intégré la sauvegarde de la configuration avec la solution Active Directory en plus de FreeIPA qui n'attend plus que la mise à disposition de la nouvelle version. Cela permettra de rendre cet outil plus pertinent dans plus d'entreprises ou administrations, qui utilisent plus souvent Active Directory que FreeIPA.

Fedora Silverblue

silverblue-logo.png

Fedora travaille beaucoup pour concevoir un système atomique, selon les travaux de Project Atomic. Actuellement c'est la version Cloud qui en bénéficie nativement, mais les travaux sur la version Workstation sont en cours. Le but est d'améliorer la fiabilité du système, il sera ainsi possible de facilement mettre à jour le système en diminuant les risques liés à une procédure exécutée dans un ordre différent que prévu par exemple. Le retour à une situation antérieure en cas de problème sera également plus facile en sélectionnant l'état précédent du système dans GRUB.

Une telle architecture propose aussi un système dans un état immutable, le rendant plus fiable ce qui impose une séparation plus stricte et claire entre le système et les applications. Ce qui parachève le travail envisagé par le projet Fedora.next. L'objectif est que Fedora propose un système de base et immutable à travers rpm-ostree et que les applications traditionnelles soient installées avec des Flatpak uniquement.

Devant l'intérêt récent pour cette technologie, un groupe de travail a été constitué l'année dernière, le projet a été renommé également en Fedora Silverblue et de grands progrès fonctionnels ont eu lieu depuis.

En effet cela fait deux cycles de développement de Fedora où Fedora Silverblue a bénéficié d'une journée de tests. Ainsi de nombreuses personnes, dont votre serviteur, ont pu le tester pour vérifier la viabilité du système avec l'image de base et les applications provenant du dépôt Flathub. Et les résultats sont positifs.

Aujourd'hui la gestion des Flatpak est complète. GNOME Logiciels permet de gérer un système reposant sur rpm-ostree. Les situations un peu particulières, comme Google Chrome qui installe tout dans /opt ou le pilote graphique propriétaire de nVidia qui ne peut être distribué nativement ont été réglées.

Le travail reste important pour gérer l'ensemble des cas d'usage tout en proposant une expérience utilisateur optimale. Par ailleurs quelques travaux restent nécessaires pour proposer des environnements de développement complets capables de gérer un tel système, la gestion des codecs ou encore des applications complexes comme VirtualBox.

Matthias Clasen a publié un article complet pour ceux qui veulent plus de détails.

Vous pouvez tester Fedora Silverblue en téléchargeant les images mis à disposition régulièrement.

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.

Et encore, nous ne parlons que des travaux significatifs de ces trois 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é !

Et 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