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 2011, 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 là et par là encore de Christian Schaller qui m'en a donné l'autorisation. Il fait suite à un premier article à ce sujet puis à un second. 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
La transition vers ce nouveau protocole d'affichage requiert toujours des ajustements et des travaux de long terme.
Actuellement GNOME Shell est en train d'achever cette transition en étant capable de lancer une session GNOME sans utiliser XWayland. Ce dernier ne serait démarré qu'en cas de lancement d'une application ayant toujours besoin de X11. En effet quelques composants internes, comme le démon GNOME Setting, reposaient encore sur l'existence de X11 pour fonctionner.
Il est possible à titre expérimental de forcer ce comportement à l'aide de la commande suivante :
$ gsettings set org.gnome.mutter experimental-features "['autostart-xwayland']"
Cela est rendu possible par Carlos Garnacho pour le travail sur GNOME Shell, Olivier Fourdan pour le nettoyage du centre de contrôle de GNOME, Iain Lane (de Canonical) pour l'amélioration des sessions utilisateurs de systemd et Benjamin Berg de manière générale.
Dans la même veine, Martin Stransky et Jan Horak ont travaillé pour corriger les derniers bogues afin que Firefox puisse utiliser Wayland par défaut dans Fedora 31. Martin Stransky a aussi travaillé pour fournir la prise en charge de l'accélération matérielle pour WebGL.
L'une des grandes régressions étaient aussi les outils d'accessibilité de X.org qui ne fonctionnaient plus sous Wayland. Mais grâce à Olivier Fourdan cette prise en charge a été améliorée et il est maintenant possible de cliquer grâce survol d'un élément graphique pendant un certain temps.
Hans de Goede travaille aussi pour autoriser les applications XWayland à être lancées avec les droits super utilisateur. Certes cela n'est pas une action recommandée mais peut être nécessaire pour des raisons de compatibilité.
Il travaille aussi pour améliorer la prise en charge de la bibliothèque d'affichage SDL pour fonctionner correctement sous Wayland, en particulier pour les jeux vidéo avec une faible résolution.
Enfin Adam Jackson opère sur la possibilité d'avoir l'accélération matérielle pour les applications XWayland, quand le pilote propriétaire nVidia est utilisé. Les autres pilotes ou cartes matériels n'ont quant à eux pas ce genre de problèmes grâce à leur inclusion dans le noyau Linux officiel en exploitant l'API moderne correspondante pour l'affichage.
Si vous souhaitez les aider dans ce travail, vous pouvez modifier le fichier /usr/lib/udev/rules.d/61-gdm.rules pour commenter la ligne suivante :
DRIVER=="nvidia", RUN+="/usr/libexec/gdm-disable-wayland
Qui doit devenir
# DRIVER=="nvidia", RUN+="/usr/libexec/gdm-disable-wayland
Ainsi même avec le pilote propriétaire de nVidia, la session de GNOME par défaut sera Wayland et non X.org comme c'est le cas pour les autres cas de figure. X.org sera utilisé en cas de problèmes majeurs d'affichage. Et si vous rencontrez un bogue dans cette configuration, n'oubliez pas de le signaler aux développeurs.
Il n'est plus très loin le moment où X.org ne sera qu'un projet en mode maintenance uniquement.
Pipewire
Wim Taymans continue de travailler pour être capable de remplacer Jack et PulseAudio pour la gestion du son. Par ailleurs le remplacement de Jack est considéré comme opérationel aujourd'hui. Pour PulseAudio le remplacement est fonctionnel en ce moment pour la lecture simple de flux audio mais pas au delà.
Avec Jonas Adahl et Benjamin Berg ils ont apporté la prise en charge de Miracast pour exporter l'écran et le son vers un appareil via le réseau comme un téléviseur.
Un client de test pour GNOME, Network Displays, a été conçu à cette fin avant une intégration probable dans la base de GNOME à l'avenir.
Une option de configuration a été ajoutée dans Google Chrome pour prendre en charge le partage d'écran sous Wayland via WebRTC.
Flatpak
Le travail se poursuit pour fournir une infrastructure automatique qui génère des Flatpak à partir de RPM. Les étapes sont à ce jour encore trop manuelles.
Une intégration future de Flathub et de Quay comme dépôts alternatifs disponibles par défaut suit aussi son chemin.
Fedora Toolbox
Debarshi Ray a amélioré l'intégration dans GNOME Terminal. Quand une instance est ouverte dans un onglet, en ouvrir un nouveau à partir de celui-ci va pointer par défaut sur l'espace de ce conteneur plutôt que sur le dossier courant du système hôte.
L'outil a été réécrit pour améliorer sa maintenance à long terme. En passant d'un immense script shell vers un programme conçu en Go. De plus comme les outils buildah et podman sont eux même conçus en Go, cela simplifiera les synergie et les collaborations entre ces différents projets.
Fleet commander
La version 0.14.1 de cette application ajoute la prise en charge des réseaux d'entreprise basés sur Active Directory en plus de FreeIPA. Cela favorisera son adoption dans un réseau d'entreprise centré sur Windows, ce qui est encore souvent le cas.
Il est aussi possible depuis cette version de déployer une extension GNOME dans le parc de machines.
Un travail est en cours pour améliorer la prise en charge de la configuration de Firefox par Oliver Gutierrez Suarez.
Mode jeu
Le fameux gamemode développé par Christian Kellner continue ses améliorations avec une meilleure intégration avec les applications Flatpak.
Gestion du matériel
Lecteurs d'empreintes digitales
La pile fprint qui est la référence libre pour la prise en charge de ces appareils a été pendant longtemps dans un état léthargique. Bastien Nocera a entreprit une modernisation de ce composant, qui consiste notamment en une amélioration de la documentation du projet, en l'ajout de code d'exemples et une mise à jour de certains pilotes.
Un nouveau pilote pour prendre en charge certains lecteurs de Synaptics est en voie de finalisation.
Benjamin Berg quant à lui essaye d'apporter la possibilité d'enregistrer les empreintes digitales au sein du lecteur lui même, quand c'est possible, plutôt que de les stocker sur le disque dur comme cela est fait actuellement.
Dell Totem
Le dispositif de pointage très particulier Dell Totem est maintenant pris en charge par la bibliothèque libinput. Benjamin Tissoires et Peter Hutterer ont rendu cela possible, alors qu'il est utilisé notamment dans le domaine de la conception assisté par ordinateur.
Firmware
Richard Hughes continue son travail sur LVFS pour fournir des mises à jour de firmware sous Linux. Il a écrit une application GNOME Firmware pour afficher les firmwares de votre système, quelques informations à leur propos et s'ils sont compatible la recherche de leur mise à jour.
Sysprof et les performances
L'amélioration des performances est un sujet important pour les utilisateurs comme les développeurs. Dans la course à améliorer celles de GNOME Shell, un constat s'est imposé, il manque des outils simples d'usage pour mesurer précisément les performances d'un bureau ou d'une application. Afin d'identifier et de corriger finement les comportements qui réduisent les performances du système.
Christian Hergert a conçu l'outil GNOME Sysprof pour récupérer et afficher des données relatives à un processus.
L'application permet de mesurer durant l'utilisation du logiciel à analyser au cours du temps différents paramètres comme l'usage de la mémoire, du CPU, des accès disques ou réseaux. Il affiche également les fonctions qui allouent de la mémoire et le temps processeur passé dans les fonctions.
D'ailleurs Christian Hergert a découvert et corrigé des appels d'API bloquants dans la boucle principale e GNOME Shell ce qui réduisait la fluidité en cas d'utilisation intensive des entrées / sorties de l'ordinateur. Le système devrait se montrer plus réactif dans ce cas de figure.
GNOME
Le nouvel écran de verrouillage
Il a été profondément remanié par Allan Day et l'équipe design de GNOME. L'intégration entre l'écran de verrouillage, où les notifications et l'heure sont affichées, et celui de la saisie du mot de passe est meilleure. Ce dernier par ailleurs permet d'afficher le mot de passe si souhaité pour s'assurer qu'il est correctement introduit.
Le fait d'utiliser le fond d'écran de l'utilisateur en mode flouté permet aussi d'apporter plus de cohérence et d'élégance à l'interface.
GNOME Extension
Cette nouvelle application a été conçue pour gérer les extensions de GNOME, qui permettent d'ajouter ou de modifier des comportements de GNOME Shell sans entraver la maintenance du code principal.
Auparavant les extensions étaient gérés soit via GNOME Ajustements qui est un peu fourre tout ou via le site dédié à cet effet. Ce n'était pas spécialement clair pour l'utilisateur comment faire. Ici l'application s’occupera exclusivement de cette tâche et son nom aidera à guider les utilisateurs vers cette fonction s'ils le souhaitent.
GNOME Classique
GNOME Classique est un thème de GNOME Shell pour essayer de reproduire l'interface de GNOME 2, tout en gardant les bases techniques de GNOME 3.
Allan Day a supprimé la vue globale des applications, qui est spécifique de l'interface de GNOME 3, dans ce mode pour le rendre plus proche de l'expérience utilisateur que l'on avait avec GNOME 2. Ce mode était automatiquement utilisé en pointant le curseur de la souris dans le coin supérieur gauche de l'écran.
QtGNOME
Cette couche de compatibilité entre les applications écrites en Qt et GNOME permet de s'assurer que les applications s'intègrent du mieux que possible dans GNOME. Utiliser le même thème, choisir l'affichage sombre ou clair, etc.
Jan Grulich a apporté une mise à jour de ce composant pour refléter les changements du thème par défaut de GNOME, Adwaita, et améliorer l'intégration avec les applications Flatpak.
Internationalisation
L'internationalisation est rarement quelque chose de totalement bien prise en charge. Elle requiert souvent des étapes manuelles pour l'utilisateur afin d'avoir tout le contenu de son système dans sa langue natale, avec les polices qui peuvent l'afficher et un format de données qui correspond.
Malgré les améliorations constantes de ce domaine ces dernières années, changer de langue nécessite toujours de faire des actions à plusieurs endroits, comme configurer l'environnement de bureau et installer les paquets manquants. Sundeep Anand a corrigé ce problème sous GNOME, où choisir la langue dans le centre de contrôle entraînera l'installation des langpacks nécessaires.
Codec multimédia
Cisco, Endless, Red Hat et Centricular ont œuvré pour fournir une mise à jour du codec OpenH264 2.0. Cette mise à jour permet la prise en charge de profils additionnels de ce codec, ici High et Advanced, afin de pouvoir lire plus de fichiers employant ce codec.
Wim Taymans a corrigé certains bogues de qualité audio pour les fichiers audio encodés avec AAC.
Le codec MPEG2 est également dans la liste des travaux à venir pour améliorer sa prise en charge native avec du Logiciel Libre avec une bonne qualité. Pour les codecs plus exotiques comme Windows Media ou DivX sont en vue mais pas dans les priorités du moment.
Ce que le futur nous réserve
GNOME
Certaines optimisations dans GNOME devraient encore avoir lieu, notamment autour de la gestion du matériel. En ne démarrant les services et les interfaces de configuration uniquement si le matériel sous-jacent les rendent pertinents. Ainsi le démon de prise en charge du Bluetooth ne sera pas démarré si le matériel ne le prend pas en charge.
Pipewire
Les avancées de Pipewire rendent envisageable sa mise en place par défaut dans Fedora Workstation 33. Bien qu'il reste à finaliser le remplacement de PulseAudio.
Par ailleurs, un travail est en cours pour permettre l'enregistrement de flux vidéo avec zéro copie mémoire. Une optimisation nécessaire pour garantir un traitement rapide en évitant de surcharger le processeur dans cette tâche.
Prise en charge du matériel
Atomic KMS
Jonas Ådahl travaille pour utiliser atomic KMS dans le noyau et la pile graphique du système, afin que l'affichage et la configuration de celui-ci se fassent de manière atomique. Cela peut permettre aussi d'utiliser des fonctionnalités plus avancées du matériel.
Par exemple utiliser le matériel pour stocker le contenu de chaque fenêtre cliente de manière indépendante. Ainsi si seulement le contenu de l'une d'elle change, l'étape de composition peut être sautée au niveau logiciel ce qui accélère la vitesse du rendu. Ou encore permettre d'utiliser des framebuffers sur des écrans plus grands encore avec de bonnes performances.
De plus, le rendu KMS pourrait être effectué dans un fil d'exécution séparé, ce qui réduirait la latence entre un mouvement de la souris et son affichage.
Divers
En collaboration avec Lenovo, certaines fonctionnalités sont attendues dans le futur.
Tout d'abord la prise en charge des microphones à large champ, ce qui est utile en téléconférence quand la personne n'a pas de casque et est possiblement éloigné du micro.
Ensuite il y a la détection de l'utilisation de l'ordinateur portable sur des jambes, pour éviter de brûler l'utilisateur dans un tel cas ce qui est courant en déplacement.
Enfin, il y a la prise en charge de la fonctionnalité matérielle pour limiter l'angle de lecture sur l'ordinateur. La lecture ne serait possible que de face, évitant qu'un voisin ou quelqu'un qui passe derrière vous puisse lire l'intégralité de votre écran. Cela améliorerait la confidentialité de ce qui est affiché.
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.
Par ailleurs, la consécration de ces efforts a été la signature récente du partenariat entre Lenovo et Fedora pour fournir des ordinateurs portables avec Fedora Workstation préinstallé. Cela n'étant possible que parce que le système a atteint une certaine maturité. De plus, ce partenariat sera sans doute le point de départ pour améliorer encore la prise en charge du matériel nativement par le système comme cela a été expliqué brièvement plus haut.