From Fedora Project Wiki
No edit summary
mNo edit summary
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
En ce mardi XX octobre, les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de la version Fedora 33.
En ce mardi 27 octobre, les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de la version Fedora 33.


Fedora 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 peut se voir comme une sorte de vitrine technologique pour le monde du logiciel libre, c’est pourquoi elle est prompte à inclure des nouveautés.
Fedora 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 peut se voir comme une sorte de vitrine technologique pour le monde du logiciel libre, c’est pourquoi elle est prompte à inclure des nouveautés.


Fedora garde un rôle central dans le développement de ces nouveautés via le développement en amont. En effet, les développeurs de la distribution contribuent également directement au code d’un certain nombre de logiciels libres contenus dans la distribution, dont le noyau Linux, GNOME, NetworkManager, PackageKit, PulseAudio, X.Org, systemd, la célèbre suite de compilateurs GCC, etc. [https://fedoraproject.org/wiki/Red_Hat_contributions Cliquez ici pour voir l’ensemble des contributions de Red Hat].
Fedora garde un rôle central dans le développement de ces nouveautés via le développement en amont. En effet, les développeurs de la distribution contribuent également directement au code d’un certain nombre de logiciels libres contenus dans la distribution, dont le noyau Linux, GNOME, NetworkManager, PackageKit, PulseAudio, Wayland, systemd, la célèbre suite de compilateurs GCC, etc. [https://fedoraproject.org/wiki/Red_Hat_contributions Cliquez ici pour voir l’ensemble des contributions de Red Hat].


Cela a été aussi abordé dans une série d'articles [https://fedoraproject.org/wiki/Apports_de_Fedora_%C3%A0_l%27%C3%A9cosyst%C3%A8me_du_Logiciel_Libre ici] et [https://fedoraproject.org/wiki/Apports_de_Fedora_%C3%A0_l%27%C3%A9cosyst%C3%A8me_du_Logiciel_Libre_partie_2 là].
Cela a été aussi abordé dans une série d'articles [https://fedoraproject.org/wiki/Apports_de_Fedora_%C3%A0_l%27%C3%A9cosyst%C3%A8me_du_Logiciel_Libre ici], [https://fedoraproject.org/wiki/Apports_de_Fedora_%C3%A0_l%27%C3%A9cosyst%C3%A8me_du_Logiciel_Libre_partie_2 là] et [https://fedoraproject.org/wiki/Apports_de_Fedora_%C3%A0_l%27%C3%A9cosyst%C3%A8me_du_Logiciel_Libre_partie_3 par ici encore].
 
[[File:F33-GNOME-Bureau.png|thumb|center|500px|GNOME nature]]


== Expérience utilisateur ==
== Expérience utilisateur ==
Line 12: Line 14:


* Les grilles d'applications ''fréquemment utilisées'' et ''toutes'' ont fusionné.
* Les grilles d'applications ''fréquemment utilisées'' et ''toutes'' ont fusionné.
* L'application ''Visite'' a été revisité pour guider les utilisateurs lors de leur première utilisation de GNOME. Pour présenter les fonctionnalités de base et être plus accessible aux débutants.
* L'application ''Visite'' a été revisitée pour guider les utilisateurs lors de leur première utilisation de GNOME, pour présenter les fonctionnalités de base et être plus accessible aux débutants.
* Un contrôle parental a été ajouté au panneau de configuration des utilisateurs. Des applications peuvent ne pas être lancées ou installées par un utilisateur particulier.
* Un contrôle parental a été ajouté au panneau de configuration des utilisateurs. Des applications peuvent ne pas être lancées ou installées par un utilisateur particulier.
* Quelques améliorations ergonomiques avec l'option pour afficher le pourcentage de batterie (sans recourir aux paramètres avancées) ou la possibilité de redémarrer la machine directement depuis le menu principal.
* Quelques améliorations ergonomiques avec l'option pour afficher le pourcentage de batterie (sans recourir aux paramètres avancés) ou la possibilité de redémarrer la machine directement depuis le menu principal.
* Certaines applications ont été redessinnées comme l'outil de capture d'écran ou l'enregistrement vocal. De nombreuses icônes d'application ont été aussi redessinnées.
* Certaines applications ont été redessinées comme l'outil de capture d'écran ou l'enregistrement vocal. De nombreuses icônes d'application ont été aussi redessinées.
* Amélioration des performances lors de l'enregistrement de l'écran.
* Amélioration des performances lors de l'enregistrement de l'écran.
* Avec Wayland uniquement, les écrans peuvent avoir un taux de rafraichissement différent, selon les specifications de la machine.
* Avec Wayland uniquement, les écrans peuvent avoir un taux de rafraichissement différent, selon les spécifications de la machine.
* Le navigateur Web de GNOME active par dfaut une protection contre le pistage, permet de rendre un onglet muet et désactive la lecture automatique des vidéos.
* Le navigateur Web de GNOME active par défaut une protection contre le pistage, permet de rendre un onglet muet et désactive la lecture automatique des vidéos.
* Le gestionnaire d'indexs de fichier ''Tracker'' a été mis à jour vers la version 3 et la plupart des applications GNOME en tirent profit. Il permet principalement à chaque application d'avoir son propre index, ce qui est aussi utile dans le cas des applications fonctionnement avec ''Flatpak''
* Le gestionnaire d'index de fichiers ''Tracker'' a été mis à jour vers la version 3 et la plupart des applications GNOME en tire profit. Il permet principalement à chaque application d'avoir son propre index, ce qui est aussi utile dans le cas des applications fonctionnant avec ''Flatpak''.


'''Nettoyage de la fonction pour cacher le menu du chargeur de démarrage.''' Cette fonction introduite avec Fedora 29 permet de mettre à jour le noyau de manière transparente pour l'utilisateur. Si après une mise à jour du noyau le démarrage échoue, le chargeur de démarrage le détectera pour choisir le noyau précédent automatiquement par la suite. Cette fonction était spécifique à Fedora et l'objectif ici est de le rendre disponible en amont et sera également plus maintenable en tirant parti de l'API de systemd et de sa variable d'environnement ''SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU''.
'''Nettoyage de la fonction pour cacher le menu du chargeur de démarrage.''' Cette fonction introduite avec Fedora 29 permet de mettre à jour le noyau de manière transparente pour l'utilisateur. Si après une mise à jour du noyau le démarrage échoue, le chargeur de démarrage le détectera pour choisir le noyau précédent automatiquement par la suite. Cette fonction était spécifique à Fedora et l'objectif ici est de la rendre disponible en amont et sera également plus maintenable en tirant parti de l'API de systemd et de sa variable d'environnement ''SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU''.


'''C'est le retour des fonds d'écran animés par défaut''', le fond d'écran a une teinte qui varie en fonction de l'heure de la journée. Fedora avait introduite cette nouveauté dans ''Fedora 7'' avant de le rendre facultatif par la suite.
'''C'est le retour des fonds d'écran animés par défaut''', le fond d'écran a une teinte qui varie en fonction de l'heure de la journée. Fedora avait introduit cette nouveauté dans ''Fedora 7'' avant de la rendre facultative par la suite.


'''L'environnement de bureau LXQt 0.15.0 a été mis à jour.''' Cette version apporte entre autres :
'''L'environnement de bureau LXQt 0.15.0 a été mis à jour.''' Cette version apporte entre autres :
Line 32: Line 34:
* Le navigateur de fichiers peut sauvegarder les mots de passe pour monter un système de fichier, si le démon ''gnome-keyring'' est actif.
* Le navigateur de fichiers peut sauvegarder les mots de passe pour monter un système de fichier, si le démon ''gnome-keyring'' est actif.


'''Le service ''dmraid-activation.service'' ne sera pas activé si aucun firmware RAID n'est détecté lors de l'installation.''' Un système ''firmware RAID'' étant quand le RAID est géré au niveau de la carte mère et du BIOS. Cela permet d'éviter de dépendre du service ''systemd-udev-settle.service'' qui attend particulièrement longtemps pour détecter les périphériques même quand cela n'est pas nécessaire si aucun firmare RAID n'est pas exploité. Le temps de démarrage pour ces utilisateurs est ainsi réduit.
[[File:GNOME-Redémarrer.png|thumb|left|500px|Le nouveau menu pour facilement redémarrer ou voir l'état de la batterie]]


'''L'éditeur de texte en console ''nano'' devient l'éditeur de texte par défaut en lieu et place de ''vi''''' . En réalité la variable ''$EDITOR'' n'a jamais été configurée par défaut dans Fedora et pour de nombreux outils tels que ''git'', ''vi'' devenait le choix alternatif privilégié. Cependant ''nano'' est considéré comme plus intuitif pour les utilisateurs en ne nécessitant pas de connaissances particulières pour s'en servir. Que les amateurs de l'éditeur du diable se rassurent, le paquet ''vim-minimal'' qui installe ''vi'' (mais pas ''vim'') est installé par défaut, il reste donc disponible sur une nouvelle installation. Seule la variable ''$EDITOR'' est ici affectée.
'''L'éditeur de texte en console ''nano'' devient l'éditeur de texte par défaut en lieu et place de ''vi''''' . En réalité la variable ''$EDITOR'' n'a jamais été configurée par défaut dans Fedora et pour de nombreux outils tels que ''git'', ''vi'' devenait le choix alternatif privilégié. Cependant ''nano'' est considéré comme plus intuitif pour les utilisateurs en ne nécessitant pas de connaissances particulières pour s'en servir. Que les amateurs de l'éditeur du diable se rassurent, le paquet ''vim-minimal'' qui installe ''vi'' (mais pas ''vim'') est installé par défaut, il reste donc disponible sur une nouvelle installation. Seule la variable ''$EDITOR'' est ici affectée.


'''L'extension de mémoire avec le mécanisme du swap utilise maintenant ''zram'' par défaut'''. En effet, quand la mémoire vive physique vient à manquer, le noyau peut utiliser la pagination pour transférer des programmes ou données en mémoire sur la mémoire de masse comme le disque dur ou un SSD. Cela est transparent pour l'utilisateur et les programmes mais cependant cette procédure est lente car ces périphériques ne sont pas aussi rapides d'accès que la RAM. Il n'est pas rare en effet que l'usage de swap puisse ralentir un ordinateur trop fortement, nécessitant de le redémarrer brutalement. Pour améliorer la réactivité et les performances, on peut à la place compresser en RAM ces données. Cela libère de la place tout en étant plus plus rapide que d'utiliser la mémoire de masse en échange d'un léger surcoût en mémoire de 0,1% à 0,04%. C'est ce que propose ''zram''. Ce changement concerne aussi les systèmes existants. Les partitions ou fichiers ''swap'' existants sont préservés et obtiennent une priorité d'utilisation plus faible, donc uniquement quand ''zram'' aura atteint ses propres limites. Par défaut ''zram'' sera configuré pour avoir une taille équivalente à la moitié de la RAM du système, borné à 4 Gio si l'ordinateur a plus de 8 Gio de RAM.
'''L'extension de mémoire avec le mécanisme du swap utilise maintenant ''zram'' par défaut'''. En effet, quand la mémoire vive physique vient à manquer, le noyau peut utiliser la pagination pour transférer des programmes ou données en mémoire sur la mémoire de masse comme le disque dur ou un SSD. Cela est transparent pour l'utilisateur et les programmes mais cependant cette procédure est lente car ces périphériques ne sont pas aussi rapides d'accès que la RAM. Il n'est pas rare en effet que l'usage de swap puisse ralentir un ordinateur trop fortement, nécessitant de le redémarrer brutalement. Pour améliorer la réactivité et les performances, on peut à la place compresser en RAM ces données. Cela libère de la place tout en étant plus rapide que d'utiliser la mémoire de masse en échange d'un léger surcoût en mémoire de 0,1% à 0,04%. C'est ce que propose ''zram''. Ce changement concerne aussi les systèmes existants. Les partitions ou fichiers ''swap'' existants sont préservés et obtiennent une priorité d'utilisation plus faible, donc uniquement quand ''zram'' aura atteint ses propres limites. Par défaut ''zram'' sera configuré pour avoir une taille équivalente à la moitié de la RAM du système, borné à 4 Gio si l'ordinateur a plus de 8 Gio de RAM.


'''Btrfs devient le système de fichier par défaut des variantes orientées bureautiques dont Fedora Workstation.''' Il remplace ainsi ''ext4'' qui reste évidemment possible d'utiliser pour ceux qui le souhaitant. Notons que OpenSuse 13.4 avait sauté le pas en 2014, et Facebook l'utilise en interne depuis un moment, un employé de l'entreprise ayant d'ailleurs participé à ce changement dans Fedora. Les bénéfices attendus sont :
'''Btrfs devient le système de fichier par défaut des variantes orientées bureautiques dont Fedora Workstation.''' Il remplace ainsi ''ext4'' qui reste évidemment possible d'utiliser pour ceux le souhaitant. Notons que OpenSuse 13.4 avait sauté le pas en 2014, et Facebook l'utilise en interne depuis un moment, un employé de l'entreprise ayant d'ailleurs participé à ce changement dans Fedora. Les bénéfices attendus sont :


* La correction de [https://pagure.io/fedora-workstation/issue/152 certains bogues liés à la séparation stricts entre les partitions ''/'' et ''/home''].
* La correction de [https://pagure.io/fedora-workstation/issue/152 certains bogues liés à la séparation stricte entre les partitions ''/'' et ''/home''].
* Une compression native des données redondantes, réduisant l'espace de stockage pris et l'usure des périphériques de stockage.
* Une compression native des données redondantes, réduisant l'espace de stockage pris et l'usure des périphériques de stockage.
* La possibilité de réserver des IO minimum à certains processus via l'usage des ''cgroups'', ce que Btrfs gère bien.
* La possibilité de réserver des IO minimum à certains processus via l'usage des ''cgroups'', ce que Btrfs gère bien.
Line 49: Line 51:
'''DXVK devient l'implémentation de référence de ''wine3d'' en étant basé sur Vulkan.''' Cela améliorera les performances et la compatibilité des programmes graphiques prévus pour Windows et fonctionnant sous Fedora, en particulier les jeux vidéo. Le paquet ''wine-dxvk'' était disponible depuis Fedora 31 pour activer ce changement manuellement.
'''DXVK devient l'implémentation de référence de ''wine3d'' en étant basé sur Vulkan.''' Cela améliorera les performances et la compatibilité des programmes graphiques prévus pour Windows et fonctionnant sous Fedora, en particulier les jeux vidéo. Le paquet ''wine-dxvk'' était disponible depuis Fedora 31 pour activer ce changement manuellement.


'''Alors que ''earlyoom'' était apparu sur Fedora Workstation 32, la variante Fedora KDE le propose désormais par défaut.''' En somme, quand la mémoire vive descend en dessous de 4% de mémoire disponible et que la mémoire swap descend en dessous des 10%, un signal ''SIGTERM'' sera envoyé au processus choisi pour être coupé proprement afin de libérer assez de mémoire pour que la machine continue de tourner dans ces conditions. Si cela descend respectivement à 2% pour la RAM et 5% pour la swap, un signal ''SIGKILL'' sera envoyé ce qui mettra fin au processus immédiatement. l'objectif est de garder un système fluide et utilisable pour l'utilisateur, en évitant de devoir recourir à un redémarrage forcé.
'''Alors que ''earlyoom'' était apparu sur Fedora Workstation 32, la variante Fedora KDE le propose désormais par défaut.''' En somme, quand la mémoire vive descend en dessous de 4% de mémoire disponible et que la mémoire swap descend en dessous des 10%, un signal ''SIGTERM'' sera envoyé au processus choisi pour être coupé proprement afin de libérer assez de mémoire pour que la machine continue de tourner dans ces conditions. Si cela descend respectivement à 2% pour la RAM et 5% pour la swap, un signal ''SIGKILL'' sera envoyé ce qui mettra fin au processus immédiatement. L'objectif est de garder un système fluide et utilisable pour l'utilisateur, en évitant de devoir recourir à un redémarrage forcé.


'''Un ''cgroups'' a été crée pour réserver des ressources minimum aux sessions graphiques actives.''' Un utilisateur actif avec une session graphique a 250 Mio de réservé, plafonné à 10% de la mémoire vive disponible. Ce dispositif repose sur le démon ''uresourced'' pour le moment, l'objectif sera de le l'intégrer dans les projets en amont plus tard.
'''Un ''cgroups'' a été créé pour réserver des ressources minimum aux sessions graphiques actives.''' Un utilisateur actif avec une session graphique a 250 Mio de réservé, plafonné à 10% de la mémoire vive disponible. Ce dispositif repose sur le démon ''uresourced'' pour le moment, l'objectif sera de le l'intégrer dans les projets en amont plus tard.


== Gestion du matériel ==
== Gestion du matériel ==


* Activation des techniques ''Arm Pointer Authentication '' et de ''Branch Target Identification'' pour l'architecture Aarch64 pour améliorer la sécurité des programmes par défaut.
'''Activation des techniques ''Arm Pointer Authentication'' et de ''Branch Target Identification'' pour l'architecture Aarch64 pour améliorer la sécurité des programmes par défaut.''' La première technique permet de se protéger contre les attaques de type ''Return Oriented Programming'', les pointeurs reçoivent un tag qui est ensuite vérifié pour s'assurer qu'il n'a pas été altéré. Le second consiste en identifiant les sauts et branchements dans le code pour qu'ils ne puissent aller que dans une liste d'instructions autorisées, limitant le risque d'exécution de code arbitraire. Les paquets sont donc compilés avec GCC et son option ''-mbranch-protection=standard''.
* Meilleure gestion des pics d'activité et de la chauffe des processeurs Intel, entre autre via le démon ''thermald''.
 
* L'écosystème .NET Core est disponible pour Aarch64 et non plus uniquement pour l'architecture x86_64.
'''Meilleure gestion des pics d'activité et de la chauffe des processeurs Intel, entre autre via le démon ''thermald''.'''  En effet les processeurs modernes, notamment ceux d'Intel, disposent d'une grande variété de capteurs de températures et de différents modes pour limiter la fréquence du processeur afin de réduire ou contenir la température. Ce démon va collecter les données du processeur pour choisir le mode le plus optimal de fonctionnement.
* L'édition ''Internet des objets'' de Fedora devient une édition officielle de Fedora.
 
'''Le service ''dmraid-activation.service'' ne sera pas activé si aucun firmware RAID n'est détecté lors de l'installation.''' Un système ''firmware RAID'' étant quand le RAID est géré au niveau de la carte mère et du BIOS. Cela permet d'éviter de dépendre du service ''systemd-udev-settle.service'' qui attend particulièrement longtemps pour détecter les périphériques même quand cela n'est pas nécessaire si aucun firmware RAID n'est exploité. Le temps de démarrage pour ces utilisateurs est ainsi réduit.
 
[[File:Pourcentage batterie.png|thumb|right|500px|Nouvelle option pour voir l'état de la batterie plus facilement]]
 
'''L'écosystème .NET Core est disponible pour Aarch64 et non plus uniquement pour l'architecture x86_64.'''
 
'''L'édition ''Internet des objets'' de Fedora devient une édition officielle de Fedora.''' Il obtient donc le même statut que l'édition ''Workstation'' ou ''Server''. Cette édition qui cible les architectures ''x86_64'', ''Aarch64'' et ARMv7 repose sur rpm-ostree comme Fedora Silverblue et les applications dans des conteneurs pour faciliter la maintenance et la mise à jour des composants internes. C'est également une édition minimaliste par défaut.


== Internationalisation ==
== Internationalisation ==


* Mise à jour d'IBus 1.5.23.
'''Mise à jour d'IBus 1.5.23.''' Cette mise à jour affiche surtout une autre liste de dispositions clavier provenant de XKB. Cela permet notamment aux outils comme ''ibus-setup'' ou au centre de configuration de GNOME de proposer une liste plus complète de ces dispositions par défaut.
* La plateforme de traduction Zanata tire complètement sa révérence de l'écosystème Fedora.
 
'''La plateforme de traduction Zanata tire complètement sa révérence de l'écosystème Fedora.''' Cela met fin à la transition de la plateforme de traduction de Zanata vers Weblate qui a franchi une grande étape déjà dans Fedora 32. Ainsi il n'y a plus qu'une seule plateforme de traduction active, ce qui simplifie la maintenance et la gestion des traductions.
 
Weblate apporte aussi entre autre pour les contributeurs :
 
* De simplifier l'accès aux nouveaux, en n'ayant pas besoin d'approuver les comptes avant qu'ils ne puissent contribuer.
* La possibilité d'ajouter des notifications ou des commentaires pour simplifier le travail.
* D'utiliser un outil utilisé par d'autres projets libres, permettant de mutualiser les développements autour de cet outil.
* D'automatiser certaines tâches comme la mise à jour automatique des fichiers de traduction.


== Administration système ==
== Administration système ==


* La synchronisation du temps par le réseau sécurisé (NTS) est prise en charge dans le client NTP ''chrony'' et l'installateur ''anaconda''.
'''La synchronisation du temps par le réseau sécurisé (NTS) est prise en charge dans le client NTP ''chrony'' et l'installateur ''anaconda''.''' Cela permet d'éviter les attaques de type ''homme du milieu'' pour le changement d'heure, trop loin dans le futur ou dans le passé. Cette synchronisation utilise le protocole de sécurité TLS.
* Les dépôts modulaires sont proposés dans un paquet à part : ''fedora-repos-modular''.
 
* La résolution des noms de domaine dans les applications se fera via ''systemd-resolved''. La bibliothèque glibc utilisera ''nss-resolve'' au lieu de ''nss-dns'' jusqu'à aujourd'hui.
'''Les dépôts modulaires sont proposés dans un paquet à part : ''fedora-repos-modular''.''' Ce paquet reste installé par défaut. Cela permet aux utilisateurs de désactiver facilement les dépôts en supprimant le paquet plutôt qu'en changeant la configuration des dépôts ce qui empêche les mises à jour ultérieur de ces fichiers de configuration.
* Renforcement de la politique globale du système : désactivation des protocoles TLS 1.0 et TLS 1.1, rejet des clés Diffie-Hellman 1024 bits et des hash SHA-1 en guise de signature.
 
'''La résolution des noms de domaine dans les applications se fera via ''systemd-resolved''.''' La bibliothèque glibc utilisera ''nss-resolve'' au lieu de ''nss-dns'' jusqu'à aujourd'hui. Notons que la première partie du changement a été faite par Ubuntu 16.10 mais pas la seconde partie. Cela permet d'utiliser l'outil ''resolvectl'' nativement, cela donne accès à un mini cache DNS ce qui améliore la performance de ces requêtes pour les applications qui n'en disposent pas eux mêmes. Les utilisateurs de plusieurs VPN (un personnel et un professionnel par exemple), n'auront plus les requêtes DNS qui peuvent aller échouer sur la mauvaise connexion. La fonctionnalité de sécurité DNS avec TLS est également accessible par ce biais bien que non actif, pour le moment, par défaut.
 
'''Renforcement de la politique globale du système :'''
 
* désactivation des protocoles TLS 1.0 et TLS 1.1 ;
* rejet des clés Diffie-Hellman 1024 bits et de la fonction de hashage SHA-1 en guise de signature.


En cas de problème, pour restaurer à une politique plus souple, vous pouvez exécuter la commande :
En cas de problèmes, pour revenir à une politique plus souple, vous pouvez exécuter la commande :


  # update-crypto-policies --set LEGACY
  # update-crypto-policies --set LEGACY


* La prise en charge du format ''dbm'' dans NSS a été supprimée.
'''La prise en charge du format ''dbm'' dans NSS a été supprimée.''' Depuis Fedora 28 le format SQLite était utilisé par défaut. NSS propose de migrer les formats de stockage des clés si c'est nécessaire. La bibliothèque est de fait plus légère.
* Ajout de PARSEC pour proposer une API pour le matériel de sécurité ou des services de cryptographie en étant indépendant du matériel. Il peut exploiter les matériels suivants : TPM2, HSM et Arm TrustZone.
 
* ''Storage Instantiation Daemon'' fait son arrivée en grande pompes. L'objectif est d'avoir un démon unique pour étendre udev pour la gestion des espaces de stockage pour éviter d'aboutir à des règles complexes que l'on pouvait avoir dans des systèmes complexes.
'''Ajout de PARSEC pour proposer une API pour le matériel de sécurité ou des services de cryptographie en étant indépendant du matériel.''' Il peut exploiter les matériels de sécurité suivants : TPM2, HSM et Arm TrustZone. L'édition ''Internet des Objets'' propose cette API par défaut.
* La collection d'outils X.org sera proposée via des paquets plus individuels que les paquets génériques ''xorg-x11-{apps,font-utils,resutils,server-utils,utils,xkb-utils}'' employés jusqu'ici. Certains utilitaires sont également supprimés.
 
* Mise à jour de Stratis 2.1.
'''''Storage Instantiation Daemon'' fait son arrivée en grande pompes.''' L'objectif est d'avoir un démon unique pour étendre udev pour la gestion des espaces de stockage pour éviter d'aboutir à des règles complexes que l'on pouvait avoir dans des systèmes complexes. Cela permet de collecter facilement tous les évènements relatifs à un périphérique de stockage comme son insertion ou son retrait du système. Il prend en charge des périphériques employés à travers plusieurs sous systèmes comme LVM, multipath ou MD avec les mêmes commandes.
* Le paquet ''device-mapper-multipath'' a été supprimé des LiveCD (et de fait des installations par défaut) ce qui améliore le temps de boot pour les usages bureautiques. Les serveurs et data center qui en ont besoin pour leur usage pourront toujours l'installer ou en disposer via une image plus adaptée.
 
* Les profils de connexion de NetworkManager seront sauvegardés dans le format officiel ''keyfile'' au lieu d'utiliser le format spécifique à Red Hat qui est ''ifcfg-rh''. Cela ne concerne que les nouveaux profils, la compatibilité est pour l'instant conservée pour les profils pré-existants.  
'''La collection d'outils X.org sera proposée via des paquets plus individuels que les paquets génériques ''xorg-x11-{apps,font-utils,resutils,server-utils,utils,xkb-utils}'' employés jusqu'ici.''' Certains utilitaires sont également supprimés. Ces collections d'utilitaires étaient assez historiques mais offrent peu de flexibilité et ne représentent plus la réalité. Par exemple les utilitaires ''luit'' ou ''edid-decode'' ne sont même plus développés sous l'égide de X.org. Le versionnage de ces paquets ne collait plus avec ceux des projets embarqués. Mettre à jour un paquet pour un composant nécessitait de régénérer cette mise à jour pour l'ensemble. Les paquets étaient aussi plus gros que nécessaires pour beaucoup d'utilisateurs. Tout ceci est donc simplifié et plus cohérent avec le nouveau découpage.
* Le gestionnaire de paquets RPM 4.16 a été mis à jour.
 
* Les bases de données RPM passent du format Berkeley DB à Sqlite.
[[File:LxQT-Bureau.png|thumb|left|500px|Nouvelle version de l'environnement LxQt]]
 
'''Mise à jour de Stratis 2.1.''' Cette version apporte le chiffrement des données avec notamment une interface DBus pour leur gestion. Les clés de chiffrement sont ensuite gérés dans le noyau. L'utilitaire en ligne de commandes peut aussi initialiser le cache avec la commande ''init_cache''. Les sous commandes ''report'' et ''key'' sont ajoutés pour gérer ou voir respectivement les rapports générés par Stratis et les clés de chiffrement.
 
'''Le paquet ''device-mapper-multipath'' a été supprimé des LiveCD''' (et de fait des installations par défaut) ce qui améliore le temps de boot pour les usages bureautiques. En effet, ce service dépendait aussi du service ''systemd-udev-settle.service'' dont on a expliqué la problématique plus haut. Les serveurs et data center qui en ont besoin pour leur usage pourront toujours l'installer ou en disposer via une image plus adaptée comme celle de l'édition ''Server''.
 
'''Les profils de connexion de NetworkManager seront sauvegardés dans le format officiel ''keyfile'' au lieu d'utiliser le format spécifique à Red Hat qui est ''ifcfg-rh''.''' En réalité NetworkManager utilisait déjà, même dans Fedora, les nouveaux profils mais uniquement pour les profils non supportés par l'ancien format. L'objectif est d'essayer de recourir au nouveau format systématiquement pour à terme uniformiser leur gestion. Les nouvelles configurations sont sauvegardées dans les fichiers ''/{etc,usr/lib,run}/NetworkManager/system-connections''. Les anciens profils ne sont pas migrés automatiquement, la compatibilité est pour l'instant conservée pour ces profils pré-existants.  
 
'''Le gestionnaire de paquets RPM 4.16 a été mis à jour.''' Le parseur des fichiers specs et macro a été amélioré. Les macros disposent de nouvelles fonctionnalités comme l'opérateur ternaire ou une comparaison des versions nativement. Les meta dépendances sont également ajoutées.
 
'''Les bases de données RPM passent du format Berkeley DB à SQLite.''' Ceci arrive grâce à la nouvelle version de RPM. L'ancien format n'était plus maintenu depuis des années car la nouvelle version de l'utilitaire Berkeley DB 6.x a adopté une licence incompatible. De plus ce format n'était pas transactionnel, donc incapable de détecter et de corriger lui même les erreurs suite à un crash ou à une corruption de données par exemple. SQLite offre donc une solution plus robuste.


== Développement ==
== Développement ==


* LLVM passe à la 11e version.
'''LLVM passe à la 11e version.''' Son compilateur CLang compile par défaut en C17 et non plus C11. Il propose aussi l'option ''-fstack-clash-protection '' pour protéger contre ces attaques pour les architectures x86/x86_64, s390x, et POWER 64-bits. Les instructions ''asm inline'' sont également prises en charges de même que le support préliminaire du C++20. De nouvelles instructions ARMv8 sont gérées de même que celles d'Intel AMX. WebAssembly est également mieux géré.
* Make prépare sa 4.3 version.
 
* Mise à jour de la bibliothèque C glibc 2.32.
'''Make prépare sa version 4.3.''' Cette version a plusieurs changements qui cassent la compatibilité avec les versions antérieures. Le symbole ''#'' n'introduit plus un commentaire lors de l'appel d'une fonction ou d'une macro, il ne doit donc plus être échappé. L'instruction ''+='' sur une chaîne vide n'introduit plus un espace initial. L'ordre d'exécution des fichiers Makefile est aussi déterministe. Les listes obtenues via des jokers ''$(wildcard...)'' sont dorénavant triées. Les performances sont également globalement améliorées.
* Mise à jour des outils Binutils 2.34.
 
* Petit coup de Boost 1.73 pour la bibliothèque générique C++.
'''Mise à jour de la bibliothèque C glibc 2.32.''' Elle prend en charge Unicode 13.0.0. De nombreuses fonctions sont annotées avec ''access'' pour générer des alertes en cas de risque d'un accès en dehors de la mémoire lors de ces appels. De nombreuses suppressions de symboles, corrections de bogues et de failles de sécurité complètent cette version.
* Mise à jour de l'environnement MinGW pour la compilation d'applications Windows sous Linux.
 
* Passage de Golang à la version 1.15.
'''Mise à jour des outils Binutils 2.34.''' Le désassembleur ''objdump --disassemble'' génère en ASCII art l'arc entre le début et la fin d'un point dans le flot d'exécution. Il prend en charge aussi ''debuginfod'' qui est un service HTTP pour télécharger les informations de débogue ELF/DWARF tout comme le code source associé. En plus d'autres corrections plus mineures.
* OpenJDK 11 danse la Java.
 
* Node.js fait un 14e nœud.
'''Petit coup de Boost 1.73 pour la bibliothèque générique C++.''' La compatibilité avec C++20 se renforce tandis que pour certains modules le C++03 est déprécié pour une suppression ultérieure. De nombreux algorithmes d'interpolations ont été ajoutés. Le module pour les histogrammes se dote de nouvelles opérations pour réduire le champ de certains calculs. Enfin la compilation est plus rapide en retirant l'inclusion de l'en-tête standard ''algorithm'' qui est particulièrement lourd.
* Erlang 23 est disponible.
 
* Mise à jour de GHC 8.8 et de Haskell Stackage LTS 16.
'''Mise à jour de l'environnement MinGW pour la compilation d'applications Windows sous Linux.''' Ainsi il est possible d'utiliser GCC 10, binutils 2.34 et GDB 9.1 en tirant parti de leurs améliorations respectives.
* Le langage Perl est proposé à la version 5.32.
 
* Ruby On Rails embarque dans la voiture 6.0.
'''Passage de Golang à la version 1.15.''' La taille des binaires compilés est réduite d'environ 5% en optimisant l'usage des métadonnées du ramasse miettes. L'éditeur de liens est significativement amélioré avec ses opérations 20% plus rapides en consommant au maximum 30% de mémoire en moins. D'autres optimisations du genre sont attendues par la suite. Les données des fuseaux horaires ''tzdata'' peuvent être inclus dans un programme. La variable ''GOPROXY'' peut lister différents proxys et utiliser les suivants dans l'ordre en cas d'une erreur d'indisponibilité.
* La version 3.9 de Python débarque.
 
* Alors que les versions 2.6 et 3.4 de Python sont supprimées.
'''OpenJDK 11 danse la Java.''' Cela fait deux ans que Fedora attendait de faire ce changement mais les grandes incompatibilités qu'elles génèrent ont retardé cette mise à jour. Ce qui est maintenant privé dans les API le sont réellement. Autrement il apporte notamment un client protocole HTTP, de l'UNICODE 10 ou la gestion du protocole de sécurité TLS 1.3.
* À propos de Python, le paquet ''python-pytoml'' est déprécié et sera supprimé prochainement.
 
* mod_php est supprimé, il permettait au serveur Apache d'exécuter du PHP directement.
'''Node.js fait un 14e nœud.''' Il met à jour le moteur JavaScript V8 8.3, qui améliore les performances. Il apporte une nouvelle API pour DOM afin d'écouter des évènements ou une autre pour compter le nombre de fois qu'une fonction est appelée. Et bien entendu des corrections de bogues et de failles de sécurité.
* La bibliothèque ''libdb'' est dépréciée et sera supprimée définitivement dans une prochaine version de Fedora.
 
* Le paquet ''glibc-headers.i686'' et ''glibc-headers.x86_64'' ont fusionné dans le nouveau paquet ''glibc-headers-x86.noarch''. Pour les autres architectures le paquet ''glibc-headers'' a fusionné dans ''glibc-devel''.
'''Erlang 23 est disponible.''' Cette version améliore les performances, en particulier concernant les opérations SSL/TLS,  et la montée en charge. La gestion de SSL 3.0 est abandonnée car plus suffisamment sécurisée. Une nouvelle API pour les sockets pour gérer TCP et UDP fait son apparition. Fedora en profite pour mieux exploiter l'intégration dans ''syslog'' ou ''journald'' les journaux applicatifs. Les règles SELinux particulièrement anciennes ont été rafraîchies.
* Les paquets de BLAS/LAPACK seront compilés avec FlexiBLAS qui est un wrapper pour pouvoir choisir la bibliothèque compatible BLAS de référence de son choix.
 
'''Mise à jour de GHC 8.8 et de Haskell Stackage LTS 16.''' Les chaînes de caractères prennent en charge l'UNICODE 12. Une nouvelle optimisation optionnelle pour l'architecture x86 a été introduite via l'option ''-fblock-layout-cfg'', pour deviner et précharger la prochaine instruction lors d'un saut afin d'améliorer l'usage du cache. Et ien sûr d'autres corrections sont de la partie.
 
'''Le langage Perl est proposé à la version 5.32.''' La gestion d'UNICODE 13.0 est proposée cette fois. Il est possible avec l'opérateur ''isa'' de vérifier si un objet est d'une classe particulière ou une classe fille de celle-ci. Quelques optimisations sont également là pour vérifier les fonctionnalités disponibles plus rapidement.
 
'''Ruby On Rails embarque dans la voiture 6.0.''' Cette boîte à outils web peut paralléliser les tests. Il apporte également ''Action Mailbox'' pour rediriger des courriels entrants vers des contrôlleur afin de les traiter. Tandis que ''Action Text'' arrive pour pouvoir éditer du texte riche, qui permet de facilement inclure du formatage de base.
 
'''La version 3.9 de Python débarque.''' Elle introduit quelques simplifications, avec ''removeprefix'' et ''removesuffix'' pour remplacer avantageusement ''startswith'' pour supprimer un début ou une fin de chaîne de caractères. Il est possible de fusionner deux dictionnaires avec l'opérateur ''|''. Un nouveau module '' zoneinfo'' est proposé pour gérer les différents fuseaux horaires.
 
'''Alors que les versions 2.6 et 3.4 de Python sont supprimées.''' Ces versions étaient disponibles pour ceux qui voulaient faire des développements pour RHEL 6 qui prenait en charge ces versions. Or ils ont respectivement plus aucun support depuis octobre 2013 et mars 2019.  Le support était tout de même fourni par Red Hat jusqu'ici, mais avec la fin de RHEL 6, la maintenance et le besoin autour de ces versions ont disparu. Cela simplifiera grandement la maintenance de l'écosystème Python.
 
'''À propos de Python, le paquet ''python-pytoml'' est déprécié et sera supprimé prochainement.''' Les développeurs et utilisateurs sont encouragés à recourir au paquet ''python-toml'' à la place.
 
'''''mod_php'' est supprimé, il permettait au serveur Apache d'exécuter du PHP directement.''' Cette méthode n'est plus la plus employées depuis longtemps et est même un risque de sécurité car il partage sa mémoire avec le processus du serveur HTTP. Il faut utiliser ''php-fpm'' à la place qui a une bonne compatibilité avec ''httpd'' et ''nginx''.
 
'''La bibliothèque ''libdb'' est dépréciée et sera supprimée définitivement dans une prochaine version de Fedora.''' Comme expliqué plus haut dans le cas RPM, la licence de la version 6 de ce projet est plus restrictive, passant de LGPLv2 à AGPLv3. De nombreux projets qui en dépendent ne peuvent pas en bénéficier donc l'idée est de progressivement le supprimer dans la mesure du possible pour Fedora 35 avec un outil pour faire les migrations nécessaires.
 
'''Le paquet ''glibc-headers.i686'' et ''glibc-headers.x86_64'' ont fusionné dans le nouveau paquet ''glibc-headers-x86.noarch''.''' Pour les autres architectures le paquet ''glibc-headers'' a fusionné dans ''glibc-devel''. Ce changement permet d'améliorer la fiabilité de la mise à niveau du système car il pouvait être installé par erreur assez facilement sans que cela soit utile.
 
'''Les paquets de BLAS/LAPACK seront compilés avec FlexiBLAS qui est un wrapper pour pouvoir choisir la bibliothèque compatible BLAS de référence de son choix.'''


== Projet Fedora ==
== Projet Fedora ==


* CMake peut être utilisé pour faire des compilations dans différents répertoires pour la conception des RPM.
'''CMake peut être utilisé pour faire des compilations dans un répertoire distinct du code source pour la conception des RPM.''' Cela suit par ailleurs les recommandations du projet CMake et donc probablement ceux de nombreux projets qui s'en servent. Les macros ''%cmake_build'', ''%cmake_install'' et ''%cmaketest'' ont été ajoutées par ailleurs pour mieux correspondre aux opérations similaires utilisées par d'autres outils et de plus facilement avoir des outils agnostiques à ce sujet.
* Mise à disposition de ELN qui est un nouveau buildroot qui permettra de simuler un environnement RHEL afin d'évaluer les impacts des changements de Fedora dans RHEL directement.  
 
* Les paquets sont maintenant compilés avec l'optimisation au niveau de l'éditeur des liens qui supprime le code inutile.
'''Mise à disposition de ELN qui est un nouveau buildroot qui permettra de simuler un environnement RHEL afin d'évaluer les impacts des changements de Fedora dans RHEL directement.''' Ainsi les compilations dans ce système se basera sur une Fedora Rawhide qui simulera, aujourd'hui, une RHEL 9. L'objectif est de rapprocher le travail effectué entre Fedora et Red Hat. Ainsi les développeurs de Red Hat sont incités à utiliser Rawhide comme plateforme d'expérimentation avant de porter le résultat dans RHEL.
* Phase 3 pour supprimer les éléments automagiques pour la constructions des paquets RPM autour de Python.
 
* Les dépendances additionnelles des paquets Python seront automatiquement générées.
'''Les paquets générés avec ''rpmbuild'' sont maintenant compilés avec l'optimisation au niveau de l'éditeur des liens qui supprime le code inutile.''' Concrètement, le drapeau ''-flto'' a été ajouté dans ''redhat-rpm-config''. Les paquets résultants sont plus petits et plus rapides à charger. Comme cela nécessite aussi des analyses plus poussées par le compilateur, certaines erreurs et bogues potentiels sont détectés plus tôt.
* La macro non versionnée ''%{__python}'' génèrera une erreur.
 
* Ajout des macros ''%make_build'' et ''%make_install'' pour la conception des RPM afin d'avoir un usage plus uniforme de la commande ''make'' pour créer ces paquets.
'''Phase 3 pour supprimer les éléments automagiques pour la constructions des paquets RPM autour de Python.''' La variable ''%global _python_bytecompile_extra 1'' n'est plus autorisée.
 
'''Les dépendances additionnelles des paquets Python seront automatiquement générées.''' Des programmes Python peuvent en effet déclarer certaines dépendances optionnelles pour des fonctionnalités supplémentaires. Et si le code y a recours, le programme ne crashera pas mais invitera l'utilisateur à installer la dépendance pour en profiter. Pour simplifier le travail des mainteneurs de paquets, ces dépendances sont générées automatiquement ce qui évitera d'avoir des paquets redondants ou qui manquent. Le projet Fedora aura un comportement plus proche de l'écosystème Python Extra et sa gestion est maintenant plus standardisée.
 
'''La macro non versionnée ''%{__python}'' génèrera une erreur.''' Cela permet de mettre un terme à la référence vers ''/usr/bin/python'' qui a posé beaucoup de problèmes pour la transition de Python 2 à 3. Maintenant le mauvais comportement ne sera plus autorisé par défaut et ne sera pas le plus simple.
 
'''Ajout des macros ''%make_build'' et ''%make_install'' pour la conception des RPM afin d'avoir un usage plus uniforme de la commande ''make'' pour créer ces paquets.'''


== La communauté francophone ==
== La communauté francophone ==
Line 149: Line 207:
Un grand merci à Charles-Antoine Couret, Nicolas Berrehouc, Édouard Duliège, José Fournier et les autres contributeurs et relecteurs pour leurs contributions.
Un grand merci à Charles-Antoine Couret, Nicolas Berrehouc, Édouard Duliège, José Fournier et les autres contributeurs et relecteurs pour leurs contributions.


L'équipe se réunit tous les lundis soir après 21h (heure de Paris) sur IRC (canal #fedora-doc-fr sur Freenode) pour faire progresser la documentation par un travail collaboratif. Le reste de la semaine cela se passe sur les listes de diffusion.
L'équipe se réunit tous les lundis soir après 21h (heure de Paris) sur IRC (canal #fedora-doc-fr sur Freenode) pour faire progresser la documentation par un travail collaboratif. Le reste de la semaine cela 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.
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.

Latest revision as of 19:10, 22 October 2020

En ce mardi 27 octobre, les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de la version Fedora 33.

Fedora 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 peut se voir comme une sorte de vitrine technologique pour le monde du logiciel libre, c’est pourquoi elle est prompte à inclure des nouveautés.

Fedora garde un rôle central dans le développement de ces nouveautés via le développement en amont. En effet, les développeurs de la distribution contribuent également directement au code d’un certain nombre de logiciels libres contenus dans la distribution, dont le noyau Linux, GNOME, NetworkManager, PackageKit, PulseAudio, Wayland, systemd, la célèbre suite de compilateurs GCC, etc. Cliquez ici pour voir l’ensemble des contributions de Red Hat.

Cela a été aussi abordé dans une série d'articles ici, et par ici encore.

GNOME nature

Expérience utilisateur

Passage à GNOME 3.38. Cette mise à jour apporte de nombreux changements :

  • Les grilles d'applications fréquemment utilisées et toutes ont fusionné.
  • L'application Visite a été revisitée pour guider les utilisateurs lors de leur première utilisation de GNOME, pour présenter les fonctionnalités de base et être plus accessible aux débutants.
  • Un contrôle parental a été ajouté au panneau de configuration des utilisateurs. Des applications peuvent ne pas être lancées ou installées par un utilisateur particulier.
  • Quelques améliorations ergonomiques avec l'option pour afficher le pourcentage de batterie (sans recourir aux paramètres avancés) ou la possibilité de redémarrer la machine directement depuis le menu principal.
  • Certaines applications ont été redessinées comme l'outil de capture d'écran ou l'enregistrement vocal. De nombreuses icônes d'application ont été aussi redessinées.
  • Amélioration des performances lors de l'enregistrement de l'écran.
  • Avec Wayland uniquement, les écrans peuvent avoir un taux de rafraichissement différent, selon les spécifications de la machine.
  • Le navigateur Web de GNOME active par défaut une protection contre le pistage, permet de rendre un onglet muet et désactive la lecture automatique des vidéos.
  • Le gestionnaire d'index de fichiers Tracker a été mis à jour vers la version 3 et la plupart des applications GNOME en tire profit. Il permet principalement à chaque application d'avoir son propre index, ce qui est aussi utile dans le cas des applications fonctionnant avec Flatpak.

Nettoyage de la fonction pour cacher le menu du chargeur de démarrage. Cette fonction introduite avec Fedora 29 permet de mettre à jour le noyau de manière transparente pour l'utilisateur. Si après une mise à jour du noyau le démarrage échoue, le chargeur de démarrage le détectera pour choisir le noyau précédent automatiquement par la suite. Cette fonction était spécifique à Fedora et l'objectif ici est de la rendre disponible en amont et sera également plus maintenable en tirant parti de l'API de systemd et de sa variable d'environnement SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU.

C'est le retour des fonds d'écran animés par défaut, le fond d'écran a une teinte qui varie en fonction de l'heure de la journée. Fedora avait introduit cette nouveauté dans Fedora 7 avant de la rendre facultative par la suite.

L'environnement de bureau LXQt 0.15.0 a été mis à jour. Cette version apporte entre autres :

  • Un nouveau widget pour la barre principale pour changer la luminosité de l'écran.
  • La luminosité de l'écran peut également se réduire automatiquement si l'ordinateur est inactif trop longtemps.
  • Depuis la barre des tâches il devient possible de changer le bureau virtuel d'une application.
  • Le navigateur de fichiers peut sauvegarder les mots de passe pour monter un système de fichier, si le démon gnome-keyring est actif.
Le nouveau menu pour facilement redémarrer ou voir l'état de la batterie

L'éditeur de texte en console nano devient l'éditeur de texte par défaut en lieu et place de vi . En réalité la variable $EDITOR n'a jamais été configurée par défaut dans Fedora et pour de nombreux outils tels que git, vi devenait le choix alternatif privilégié. Cependant nano est considéré comme plus intuitif pour les utilisateurs en ne nécessitant pas de connaissances particulières pour s'en servir. Que les amateurs de l'éditeur du diable se rassurent, le paquet vim-minimal qui installe vi (mais pas vim) est installé par défaut, il reste donc disponible sur une nouvelle installation. Seule la variable $EDITOR est ici affectée.

L'extension de mémoire avec le mécanisme du swap utilise maintenant zram par défaut. En effet, quand la mémoire vive physique vient à manquer, le noyau peut utiliser la pagination pour transférer des programmes ou données en mémoire sur la mémoire de masse comme le disque dur ou un SSD. Cela est transparent pour l'utilisateur et les programmes mais cependant cette procédure est lente car ces périphériques ne sont pas aussi rapides d'accès que la RAM. Il n'est pas rare en effet que l'usage de swap puisse ralentir un ordinateur trop fortement, nécessitant de le redémarrer brutalement. Pour améliorer la réactivité et les performances, on peut à la place compresser en RAM ces données. Cela libère de la place tout en étant plus rapide que d'utiliser la mémoire de masse en échange d'un léger surcoût en mémoire de 0,1% à 0,04%. C'est ce que propose zram. Ce changement concerne aussi les systèmes existants. Les partitions ou fichiers swap existants sont préservés et obtiennent une priorité d'utilisation plus faible, donc uniquement quand zram aura atteint ses propres limites. Par défaut zram sera configuré pour avoir une taille équivalente à la moitié de la RAM du système, borné à 4 Gio si l'ordinateur a plus de 8 Gio de RAM.

Btrfs devient le système de fichier par défaut des variantes orientées bureautiques dont Fedora Workstation. Il remplace ainsi ext4 qui reste évidemment possible d'utiliser pour ceux le souhaitant. Notons que OpenSuse 13.4 avait sauté le pas en 2014, et Facebook l'utilise en interne depuis un moment, un employé de l'entreprise ayant d'ailleurs participé à ce changement dans Fedora. Les bénéfices attendus sont :

  • La correction de certains bogues liés à la séparation stricte entre les partitions / et /home.
  • Une compression native des données redondantes, réduisant l'espace de stockage pris et l'usure des périphériques de stockage.
  • La possibilité de réserver des IO minimum à certains processus via l'usage des cgroups, ce que Btrfs gère bien.
  • Réduction de la complexité du stockage en ayant Btrfs qui gère l'ensemble depuis le noyau.

Les systèmes existants ne sont pas concernés par ce changement pour éviter les problèmes liés à une telle migration qui serait compliquée d'automatiser de manière fiable.

DXVK devient l'implémentation de référence de wine3d en étant basé sur Vulkan. Cela améliorera les performances et la compatibilité des programmes graphiques prévus pour Windows et fonctionnant sous Fedora, en particulier les jeux vidéo. Le paquet wine-dxvk était disponible depuis Fedora 31 pour activer ce changement manuellement.

Alors que earlyoom était apparu sur Fedora Workstation 32, la variante Fedora KDE le propose désormais par défaut. En somme, quand la mémoire vive descend en dessous de 4% de mémoire disponible et que la mémoire swap descend en dessous des 10%, un signal SIGTERM sera envoyé au processus choisi pour être coupé proprement afin de libérer assez de mémoire pour que la machine continue de tourner dans ces conditions. Si cela descend respectivement à 2% pour la RAM et 5% pour la swap, un signal SIGKILL sera envoyé ce qui mettra fin au processus immédiatement. L'objectif est de garder un système fluide et utilisable pour l'utilisateur, en évitant de devoir recourir à un redémarrage forcé.

Un cgroups a été créé pour réserver des ressources minimum aux sessions graphiques actives. Un utilisateur actif avec une session graphique a 250 Mio de réservé, plafonné à 10% de la mémoire vive disponible. Ce dispositif repose sur le démon uresourced pour le moment, l'objectif sera de le l'intégrer dans les projets en amont plus tard.

Gestion du matériel

Activation des techniques Arm Pointer Authentication et de Branch Target Identification pour l'architecture Aarch64 pour améliorer la sécurité des programmes par défaut. La première technique permet de se protéger contre les attaques de type Return Oriented Programming, les pointeurs reçoivent un tag qui est ensuite vérifié pour s'assurer qu'il n'a pas été altéré. Le second consiste en identifiant les sauts et branchements dans le code pour qu'ils ne puissent aller que dans une liste d'instructions autorisées, limitant le risque d'exécution de code arbitraire. Les paquets sont donc compilés avec GCC et son option -mbranch-protection=standard.

Meilleure gestion des pics d'activité et de la chauffe des processeurs Intel, entre autre via le démon thermald. En effet les processeurs modernes, notamment ceux d'Intel, disposent d'une grande variété de capteurs de températures et de différents modes pour limiter la fréquence du processeur afin de réduire ou contenir la température. Ce démon va collecter les données du processeur pour choisir le mode le plus optimal de fonctionnement.

Le service dmraid-activation.service ne sera pas activé si aucun firmware RAID n'est détecté lors de l'installation. Un système firmware RAID étant quand le RAID est géré au niveau de la carte mère et du BIOS. Cela permet d'éviter de dépendre du service systemd-udev-settle.service qui attend particulièrement longtemps pour détecter les périphériques même quand cela n'est pas nécessaire si aucun firmware RAID n'est exploité. Le temps de démarrage pour ces utilisateurs est ainsi réduit.

Nouvelle option pour voir l'état de la batterie plus facilement

L'écosystème .NET Core est disponible pour Aarch64 et non plus uniquement pour l'architecture x86_64.

L'édition Internet des objets de Fedora devient une édition officielle de Fedora. Il obtient donc le même statut que l'édition Workstation ou Server. Cette édition qui cible les architectures x86_64, Aarch64 et ARMv7 repose sur rpm-ostree comme Fedora Silverblue et les applications dans des conteneurs pour faciliter la maintenance et la mise à jour des composants internes. C'est également une édition minimaliste par défaut.

Internationalisation

Mise à jour d'IBus 1.5.23. Cette mise à jour affiche surtout une autre liste de dispositions clavier provenant de XKB. Cela permet notamment aux outils comme ibus-setup ou au centre de configuration de GNOME de proposer une liste plus complète de ces dispositions par défaut.

La plateforme de traduction Zanata tire complètement sa révérence de l'écosystème Fedora. Cela met fin à la transition de la plateforme de traduction de Zanata vers Weblate qui a franchi une grande étape déjà dans Fedora 32. Ainsi il n'y a plus qu'une seule plateforme de traduction active, ce qui simplifie la maintenance et la gestion des traductions.

Weblate apporte aussi entre autre pour les contributeurs :

  • De simplifier l'accès aux nouveaux, en n'ayant pas besoin d'approuver les comptes avant qu'ils ne puissent contribuer.
  • La possibilité d'ajouter des notifications ou des commentaires pour simplifier le travail.
  • D'utiliser un outil utilisé par d'autres projets libres, permettant de mutualiser les développements autour de cet outil.
  • D'automatiser certaines tâches comme la mise à jour automatique des fichiers de traduction.

Administration système

La synchronisation du temps par le réseau sécurisé (NTS) est prise en charge dans le client NTP chrony et l'installateur anaconda. Cela permet d'éviter les attaques de type homme du milieu pour le changement d'heure, trop loin dans le futur ou dans le passé. Cette synchronisation utilise le protocole de sécurité TLS.

Les dépôts modulaires sont proposés dans un paquet à part : fedora-repos-modular. Ce paquet reste installé par défaut. Cela permet aux utilisateurs de désactiver facilement les dépôts en supprimant le paquet plutôt qu'en changeant la configuration des dépôts ce qui empêche les mises à jour ultérieur de ces fichiers de configuration.

La résolution des noms de domaine dans les applications se fera via systemd-resolved. La bibliothèque glibc utilisera nss-resolve au lieu de nss-dns jusqu'à aujourd'hui. Notons que la première partie du changement a été faite par Ubuntu 16.10 mais pas la seconde partie. Cela permet d'utiliser l'outil resolvectl nativement, cela donne accès à un mini cache DNS ce qui améliore la performance de ces requêtes pour les applications qui n'en disposent pas eux mêmes. Les utilisateurs de plusieurs VPN (un personnel et un professionnel par exemple), n'auront plus les requêtes DNS qui peuvent aller échouer sur la mauvaise connexion. La fonctionnalité de sécurité DNS avec TLS est également accessible par ce biais bien que non actif, pour le moment, par défaut.

Renforcement de la politique globale du système :

  • désactivation des protocoles TLS 1.0 et TLS 1.1 ;
  • rejet des clés Diffie-Hellman 1024 bits et de la fonction de hashage SHA-1 en guise de signature.

En cas de problèmes, pour revenir à une politique plus souple, vous pouvez exécuter la commande :

# update-crypto-policies --set LEGACY

La prise en charge du format dbm dans NSS a été supprimée. Depuis Fedora 28 le format SQLite était utilisé par défaut. NSS propose de migrer les formats de stockage des clés si c'est nécessaire. La bibliothèque est de fait plus légère.

Ajout de PARSEC pour proposer une API pour le matériel de sécurité ou des services de cryptographie en étant indépendant du matériel. Il peut exploiter les matériels de sécurité suivants : TPM2, HSM et Arm TrustZone. L'édition Internet des Objets propose cette API par défaut.

Storage Instantiation Daemon fait son arrivée en grande pompes. L'objectif est d'avoir un démon unique pour étendre udev pour la gestion des espaces de stockage pour éviter d'aboutir à des règles complexes que l'on pouvait avoir dans des systèmes complexes. Cela permet de collecter facilement tous les évènements relatifs à un périphérique de stockage comme son insertion ou son retrait du système. Il prend en charge des périphériques employés à travers plusieurs sous systèmes comme LVM, multipath ou MD avec les mêmes commandes.

La collection d'outils X.org sera proposée via des paquets plus individuels que les paquets génériques xorg-x11-{apps,font-utils,resutils,server-utils,utils,xkb-utils} employés jusqu'ici. Certains utilitaires sont également supprimés. Ces collections d'utilitaires étaient assez historiques mais offrent peu de flexibilité et ne représentent plus la réalité. Par exemple les utilitaires luit ou edid-decode ne sont même plus développés sous l'égide de X.org. Le versionnage de ces paquets ne collait plus avec ceux des projets embarqués. Mettre à jour un paquet pour un composant nécessitait de régénérer cette mise à jour pour l'ensemble. Les paquets étaient aussi plus gros que nécessaires pour beaucoup d'utilisateurs. Tout ceci est donc simplifié et plus cohérent avec le nouveau découpage.

Nouvelle version de l'environnement LxQt

Mise à jour de Stratis 2.1. Cette version apporte le chiffrement des données avec notamment une interface DBus pour leur gestion. Les clés de chiffrement sont ensuite gérés dans le noyau. L'utilitaire en ligne de commandes peut aussi initialiser le cache avec la commande init_cache. Les sous commandes report et key sont ajoutés pour gérer ou voir respectivement les rapports générés par Stratis et les clés de chiffrement.

Le paquet device-mapper-multipath a été supprimé des LiveCD (et de fait des installations par défaut) ce qui améliore le temps de boot pour les usages bureautiques. En effet, ce service dépendait aussi du service systemd-udev-settle.service dont on a expliqué la problématique plus haut. Les serveurs et data center qui en ont besoin pour leur usage pourront toujours l'installer ou en disposer via une image plus adaptée comme celle de l'édition Server.

Les profils de connexion de NetworkManager seront sauvegardés dans le format officiel keyfile au lieu d'utiliser le format spécifique à Red Hat qui est ifcfg-rh. En réalité NetworkManager utilisait déjà, même dans Fedora, les nouveaux profils mais uniquement pour les profils non supportés par l'ancien format. L'objectif est d'essayer de recourir au nouveau format systématiquement pour à terme uniformiser leur gestion. Les nouvelles configurations sont sauvegardées dans les fichiers /{etc,usr/lib,run}/NetworkManager/system-connections. Les anciens profils ne sont pas migrés automatiquement, la compatibilité est pour l'instant conservée pour ces profils pré-existants.

Le gestionnaire de paquets RPM 4.16 a été mis à jour. Le parseur des fichiers specs et macro a été amélioré. Les macros disposent de nouvelles fonctionnalités comme l'opérateur ternaire ou une comparaison des versions nativement. Les meta dépendances sont également ajoutées.

Les bases de données RPM passent du format Berkeley DB à SQLite. Ceci arrive grâce à la nouvelle version de RPM. L'ancien format n'était plus maintenu depuis des années car la nouvelle version de l'utilitaire Berkeley DB 6.x a adopté une licence incompatible. De plus ce format n'était pas transactionnel, donc incapable de détecter et de corriger lui même les erreurs suite à un crash ou à une corruption de données par exemple. SQLite offre donc une solution plus robuste.

Développement

LLVM passe à la 11e version. Son compilateur CLang compile par défaut en C17 et non plus C11. Il propose aussi l'option -fstack-clash-protection pour protéger contre ces attaques pour les architectures x86/x86_64, s390x, et POWER 64-bits. Les instructions asm inline sont également prises en charges de même que le support préliminaire du C++20. De nouvelles instructions ARMv8 sont gérées de même que celles d'Intel AMX. WebAssembly est également mieux géré.

Make prépare sa version 4.3. Cette version a plusieurs changements qui cassent la compatibilité avec les versions antérieures. Le symbole # n'introduit plus un commentaire lors de l'appel d'une fonction ou d'une macro, il ne doit donc plus être échappé. L'instruction += sur une chaîne vide n'introduit plus un espace initial. L'ordre d'exécution des fichiers Makefile est aussi déterministe. Les listes obtenues via des jokers $(wildcard...) sont dorénavant triées. Les performances sont également globalement améliorées.

Mise à jour de la bibliothèque C glibc 2.32. Elle prend en charge Unicode 13.0.0. De nombreuses fonctions sont annotées avec access pour générer des alertes en cas de risque d'un accès en dehors de la mémoire lors de ces appels. De nombreuses suppressions de symboles, corrections de bogues et de failles de sécurité complètent cette version.

Mise à jour des outils Binutils 2.34. Le désassembleur objdump --disassemble génère en ASCII art l'arc entre le début et la fin d'un point dans le flot d'exécution. Il prend en charge aussi debuginfod qui est un service HTTP pour télécharger les informations de débogue ELF/DWARF tout comme le code source associé. En plus d'autres corrections plus mineures.

Petit coup de Boost 1.73 pour la bibliothèque générique C++. La compatibilité avec C++20 se renforce tandis que pour certains modules le C++03 est déprécié pour une suppression ultérieure. De nombreux algorithmes d'interpolations ont été ajoutés. Le module pour les histogrammes se dote de nouvelles opérations pour réduire le champ de certains calculs. Enfin la compilation est plus rapide en retirant l'inclusion de l'en-tête standard algorithm qui est particulièrement lourd.

Mise à jour de l'environnement MinGW pour la compilation d'applications Windows sous Linux. Ainsi il est possible d'utiliser GCC 10, binutils 2.34 et GDB 9.1 en tirant parti de leurs améliorations respectives.

Passage de Golang à la version 1.15. La taille des binaires compilés est réduite d'environ 5% en optimisant l'usage des métadonnées du ramasse miettes. L'éditeur de liens est significativement amélioré avec ses opérations 20% plus rapides en consommant au maximum 30% de mémoire en moins. D'autres optimisations du genre sont attendues par la suite. Les données des fuseaux horaires tzdata peuvent être inclus dans un programme. La variable GOPROXY peut lister différents proxys et utiliser les suivants dans l'ordre en cas d'une erreur d'indisponibilité.

OpenJDK 11 danse la Java. Cela fait deux ans que Fedora attendait de faire ce changement mais les grandes incompatibilités qu'elles génèrent ont retardé cette mise à jour. Ce qui est maintenant privé dans les API le sont réellement. Autrement il apporte notamment un client protocole HTTP, de l'UNICODE 10 ou la gestion du protocole de sécurité TLS 1.3.

Node.js fait un 14e nœud. Il met à jour le moteur JavaScript V8 8.3, qui améliore les performances. Il apporte une nouvelle API pour DOM afin d'écouter des évènements ou une autre pour compter le nombre de fois qu'une fonction est appelée. Et bien entendu des corrections de bogues et de failles de sécurité.

Erlang 23 est disponible. Cette version améliore les performances, en particulier concernant les opérations SSL/TLS, et la montée en charge. La gestion de SSL 3.0 est abandonnée car plus suffisamment sécurisée. Une nouvelle API pour les sockets pour gérer TCP et UDP fait son apparition. Fedora en profite pour mieux exploiter l'intégration dans syslog ou journald les journaux applicatifs. Les règles SELinux particulièrement anciennes ont été rafraîchies.

Mise à jour de GHC 8.8 et de Haskell Stackage LTS 16. Les chaînes de caractères prennent en charge l'UNICODE 12. Une nouvelle optimisation optionnelle pour l'architecture x86 a été introduite via l'option -fblock-layout-cfg, pour deviner et précharger la prochaine instruction lors d'un saut afin d'améliorer l'usage du cache. Et ien sûr d'autres corrections sont de la partie.

Le langage Perl est proposé à la version 5.32. La gestion d'UNICODE 13.0 est proposée cette fois. Il est possible avec l'opérateur isa de vérifier si un objet est d'une classe particulière ou une classe fille de celle-ci. Quelques optimisations sont également là pour vérifier les fonctionnalités disponibles plus rapidement.

Ruby On Rails embarque dans la voiture 6.0. Cette boîte à outils web peut paralléliser les tests. Il apporte également Action Mailbox pour rediriger des courriels entrants vers des contrôlleur afin de les traiter. Tandis que Action Text arrive pour pouvoir éditer du texte riche, qui permet de facilement inclure du formatage de base.

La version 3.9 de Python débarque. Elle introduit quelques simplifications, avec removeprefix et removesuffix pour remplacer avantageusement startswith pour supprimer un début ou une fin de chaîne de caractères. Il est possible de fusionner deux dictionnaires avec l'opérateur |. Un nouveau module zoneinfo est proposé pour gérer les différents fuseaux horaires.

Alors que les versions 2.6 et 3.4 de Python sont supprimées. Ces versions étaient disponibles pour ceux qui voulaient faire des développements pour RHEL 6 qui prenait en charge ces versions. Or ils ont respectivement plus aucun support depuis octobre 2013 et mars 2019. Le support était tout de même fourni par Red Hat jusqu'ici, mais avec la fin de RHEL 6, la maintenance et le besoin autour de ces versions ont disparu. Cela simplifiera grandement la maintenance de l'écosystème Python.

À propos de Python, le paquet python-pytoml est déprécié et sera supprimé prochainement. Les développeurs et utilisateurs sont encouragés à recourir au paquet python-toml à la place.

mod_php est supprimé, il permettait au serveur Apache d'exécuter du PHP directement. Cette méthode n'est plus la plus employées depuis longtemps et est même un risque de sécurité car il partage sa mémoire avec le processus du serveur HTTP. Il faut utiliser php-fpm à la place qui a une bonne compatibilité avec httpd et nginx.

La bibliothèque libdb est dépréciée et sera supprimée définitivement dans une prochaine version de Fedora. Comme expliqué plus haut dans le cas RPM, la licence de la version 6 de ce projet est plus restrictive, passant de LGPLv2 à AGPLv3. De nombreux projets qui en dépendent ne peuvent pas en bénéficier donc l'idée est de progressivement le supprimer dans la mesure du possible pour Fedora 35 avec un outil pour faire les migrations nécessaires.

Le paquet glibc-headers.i686 et glibc-headers.x86_64 ont fusionné dans le nouveau paquet glibc-headers-x86.noarch. Pour les autres architectures le paquet glibc-headers a fusionné dans glibc-devel. Ce changement permet d'améliorer la fiabilité de la mise à niveau du système car il pouvait être installé par erreur assez facilement sans que cela soit utile.

Les paquets de BLAS/LAPACK seront compilés avec FlexiBLAS qui est un wrapper pour pouvoir choisir la bibliothèque compatible BLAS de référence de son choix.

Projet Fedora

CMake peut être utilisé pour faire des compilations dans un répertoire distinct du code source pour la conception des RPM. Cela suit par ailleurs les recommandations du projet CMake et donc probablement ceux de nombreux projets qui s'en servent. Les macros %cmake_build, %cmake_install et %cmaketest ont été ajoutées par ailleurs pour mieux correspondre aux opérations similaires utilisées par d'autres outils et de plus facilement avoir des outils agnostiques à ce sujet.

Mise à disposition de ELN qui est un nouveau buildroot qui permettra de simuler un environnement RHEL afin d'évaluer les impacts des changements de Fedora dans RHEL directement. Ainsi les compilations dans ce système se basera sur une Fedora Rawhide qui simulera, aujourd'hui, une RHEL 9. L'objectif est de rapprocher le travail effectué entre Fedora et Red Hat. Ainsi les développeurs de Red Hat sont incités à utiliser Rawhide comme plateforme d'expérimentation avant de porter le résultat dans RHEL.

Les paquets générés avec rpmbuild sont maintenant compilés avec l'optimisation au niveau de l'éditeur des liens qui supprime le code inutile. Concrètement, le drapeau -flto a été ajouté dans redhat-rpm-config. Les paquets résultants sont plus petits et plus rapides à charger. Comme cela nécessite aussi des analyses plus poussées par le compilateur, certaines erreurs et bogues potentiels sont détectés plus tôt.

Phase 3 pour supprimer les éléments automagiques pour la constructions des paquets RPM autour de Python. La variable %global _python_bytecompile_extra 1 n'est plus autorisée.

Les dépendances additionnelles des paquets Python seront automatiquement générées. Des programmes Python peuvent en effet déclarer certaines dépendances optionnelles pour des fonctionnalités supplémentaires. Et si le code y a recours, le programme ne crashera pas mais invitera l'utilisateur à installer la dépendance pour en profiter. Pour simplifier le travail des mainteneurs de paquets, ces dépendances sont générées automatiquement ce qui évitera d'avoir des paquets redondants ou qui manquent. Le projet Fedora aura un comportement plus proche de l'écosystème Python Extra et sa gestion est maintenant plus standardisée.

La macro non versionnée %{__python} génèrera une erreur. Cela permet de mettre un terme à la référence vers /usr/bin/python qui a posé beaucoup de problèmes pour la transition de Python 2 à 3. Maintenant le mauvais comportement ne sera plus autorisé par défaut et ne sera pas le plus simple.

Ajout des macros %make_build et %make_install pour la conception des RPM afin d'avoir un usage plus uniforme de la commande make pour créer ces paquets.

La communauté francophone

L'association

Logo de Borsalinux-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 hebdomadaires chaque lundi soir à 20h30 (heure de Paris) sur IRC (canal #fedora-meeting-1 sur Freenode).

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, José Fournier et les autres contributeurs et relecteurs pour leurs contributions.

L'équipe se réunit tous les lundis soir après 21h (heure de Paris) sur IRC (canal #fedora-doc-fr sur Freenode) pour faire progresser la documentation par un travail collaboratif. Le reste de la semaine cela 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 33 ?

Fedora Media Writer

Si vous avez déjà Fedora 32 ou 31 sur votre machine, vous pouvez faire une mise à niveau vers Fedora 33. 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 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 33.