m (→Développement) |
m (→Développement) |
||
Line 112: | Line 112: | ||
GCC bénéficie ainsi d'une meilleure prise en charge de l'évolution de la norme du langage C dénommé C23. De même par ailleurs pour le langage C++ avec C++23. Sinon c'est l'analyseur statique de code qui bénéficie de nouveaux avertissements plutôt nombreux. Les architectures x86 et ARM ou Aarch64 bénéficient comme souvent d'une meilleure prise en charge des spécificités des différentes micro-architectures dans ces familles. | GCC bénéficie ainsi d'une meilleure prise en charge de l'évolution de la norme du langage C dénommé C23. De même par ailleurs pour le langage C++ avec C++23. Sinon c'est l'analyseur statique de code qui bénéficie de nouveaux avertissements plutôt nombreux. Les architectures x86 et ARM ou Aarch64 bénéficient comme souvent d'une meilleure prise en charge des spécificités des différentes micro-architectures dans ces familles. | ||
Concernant binutils, l'éditeur de lien ELF va émettre un avertissement si la pile est exécutable pour des raisons de sécurité. La commande ''objdump'' a sa sortie de désassemblage qui est colorée syntaxiquement pour favoriser sa lecture pour les architectures AVR, RiscV, s390, x86 et x86_64. La bibliothèque C bénéficie essentiellement de corrections plus mineures dont de | Concernant binutils, l'éditeur de lien ELF va émettre un avertissement si la pile est exécutable pour des raisons de sécurité. La commande ''objdump'' a sa sortie de désassemblage qui est colorée syntaxiquement pour favoriser sa lecture pour les architectures AVR, RiscV, s390, x86 et x86_64. La bibliothèque C bénéficie essentiellement de corrections plus mineures dont de sécurité. | ||
Enfin pour le débogueur, l'architecture LoongArch est prise en charge, pendant que celle d'OpenRISC s'améliore. Sinon l'API des plugins de Python s'étoffe de même que la gestion des templates C++. | Enfin pour le débogueur, l'architecture LoongArch est prise en charge, pendant que celle d'OpenRISC s'améliore. Sinon l'API des plugins de Python s'étoffe de même que la gestion des templates C++. | ||
Line 122: | Line 122: | ||
'''GNU Make prépare sa version 4.4.''' Il y a beaucoup d'annonce de rupture de la compatibilité ascendante, dont l'usage plus important du répertoire temporaire ce qui peut casser tout script manipulant ou nettoyant ''TMPDIR''. Il apporte l'ajout d'une nouvelle cible ''.WAIT'' pour permettre d'attendre la fin de l'exécution de plusieurs cibles avant de débuter le traitement d'une nouvelle. L'option ''-l'' va utiliser l'information exposé dans le fichier ''/proc/loadavg'' pour définir le nombre de tâches à exécuter en parallèles. | '''GNU Make prépare sa version 4.4.''' Il y a beaucoup d'annonce de rupture de la compatibilité ascendante, dont l'usage plus important du répertoire temporaire ce qui peut casser tout script manipulant ou nettoyant ''TMPDIR''. Il apporte l'ajout d'une nouvelle cible ''.WAIT'' pour permettre d'attendre la fin de l'exécution de plusieurs cibles avant de débuter le traitement d'une nouvelle. L'option ''-l'' va utiliser l'information exposé dans le fichier ''/proc/loadavg'' pour définir le nombre de tâches à exécuter en parallèles. | ||
'''Le langage Go quant à lui passe à la version 1.20.''' Cette version apporte le début de la prise en charge du PGO (profile-guided optimization) pour se baser sur des données collectées à l'exécution d'un logiciel pour que Go puisse compiler ce logiciel par la suite autrement afin d'en optimiser ses performances jusqu'à 3-4 % d'amélioration pour le moment. Par ailleurs les performances d'un logiciel Go en terme de pression mémoire et d'utilisation du processeurs sont améliorées par une optimisation du ramasse miettes, pouvant aller jusqu'à 2% d'amélioration. Il est également possible de régler la micro-architecture cible à la compilation pour améliorer les performances en utilisant les fonctionnalités du processeur cible. | |||
'''Le langage Ruby expose sa version 3.2 en vitrine.''' Son nouveau compilateur JIT nommé YJIT n'est plus considéré comme expérimental et est d'ailleurs plus performant jusqu'à 41% par rapport à la version précédente. YJIT alloue maintenant la mémoire de manière paresseuse et fonctionne aussi sur les architectures ARM et Aarch64. Les expressions régulières bénéficient d'une amélioration notable des performances pour une évaluation de la correspondance qui devient linéaire par rapport à la taille des entrées et si l'évaluation est trop lente, un timeout est généré basé sur la valeur de configuration ''Regexp.timeout''. L'objectif était d'éviter une dégradation trop importante des performances dans certains cas, notamment dans un cadre malveillant. | |||
'''Le langage PHP évolue vers la version 8.2.''' Cette version apporte entre autre la possibilité de définir des classes en lecture seule. Les types ''null'', ''false'' et ''true'' deviennent des types autonomes. Les types de forme normale disjonctive sont prises en charge pour faciliter l'expression des unions et intersections de types pour faciliter la lecture et l'écriture de code. | |||
'''Le gestionnaire de base de données PostgreSQL met à jour à la version 15.''' Cette version apporte la prise en charge de la commande SQL ''MERGE''. L'algorithme de compression Zstd peut être employé également notamment pour les sauvegardes. Les journaux côté serveur peuvent être exportés au format JSON. Enfin les performances sont améliorées en particulier pour les opérations de tris. | |||
* Pendant que Haskell GHC (le compilateur Haskell) 9.2 avec sa suite Stackage 20 sont disponibles ; | * Pendant que Haskell GHC (le compilateur Haskell) 9.2 avec sa suite Stackage 20 sont disponibles ; | ||
* L'écosystème Node.js est repackagé pour autoriser des installations multiples et parallèles, abandonnant l'usage des modules qui était la voie privilégiée ; | * L'écosystème Node.js est repackagé pour autoriser des installations multiples et parallèles, abandonnant l'usage des modules qui était la voie privilégiée ; |
Revision as of 21:44, 9 April 2023
En ce mardi XX avril, les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de la version Fedora Linux 38.
Fedora Linux est une distribution communautaire développée par le projet Fedora et sponsorisée par Red Hat, qui lui fournit des développeurs ainsi que des moyens financiers et logistiques. Fedora Linux peut être vu 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, là et par ici encore.
Expérience utilisateur
Passage à GNOME 44. Cette version apporte comme d'habitude de nombreuses fonctionnalités pour l'interface par défaut de Fedora Workstation.
Tout d'abord le sélecteur de fichiers permet de voir les fichiers en grille avec prévisualisation, ce qui simplifie la sélection pour l'envoie de photos ou de vidéos que la vue en liste qui était jusqu'à présent l'unique vue disponible.
Le panneau de configuration bénéficie d'améliorations diverses. Il est possible de partager un mot de passe Wifi par un simple QR code affiché à l'écran. Concernant la réseau les VPN Wireguard sont officiellement pris en charge. La page sécurité de l'appareil est plus simple à comprendre, permettant de savoir en un clin d’œil si la vérification a échoué ou réussi, et le résultat de cette vérification. Le résultat détaillé peut facilement être copié / collé pour l'envoyer sur des forums par exemple.
La page accessibilité a été remaniée également pour être plus simple d'accès. Quelques nouvelles options ont été ajoutées comme la possibilité de sur-amplifier le son au détriment de sa qualité en cas de déficit auditif. Il y a un champ de test pour la configuration du clignotement du curseur de souris ou encore la possibilité de toujours voir la barre de défilement sur le côté.
La page son permet de désactiver le son d'alerte, la liste des alertes a d'ailleurs été déplacée dans une fenêtre popup. La page de tests du son s'adapte mieux aux différentes tailles d'écran.
La page souris et pavé tactile a été entièrement réécrite. Des vidéos montre la direction du défilement pour rendre l'explication plus claire à l'utilisateur. De même pour les tests des paramètres, la page a été refaite pour être plus simple et complète.
Pour le reste, le menu principal affiche la liste des applications en arrière plan, pour l'instant seules les applications Flatpak sont concernées. L'application Logiciels est plus réactive et il supprime automatiquement les runtimes Flatpak quand ils ne sont plus nécessaires. Le logiciel Fichiers quant à lui réintroduit la vue expansion de dossiers qui avait été brièvement supprimée lors du passage à GTK4. Il est maintenant possible de déplacer un onglet vers une autre fenêtre.
Le navigateur Web de GNOME passe d'ailleurs à GTK4 ce qui améliore la cohérence de l'interface et sa réactivité. Une fenêtre popup surgit pour enregistrer ou non un mot de passe.
La petite souris Xfce est mise à jour après 4.18 tours de roue. Cette version apporte aussi de nombreux changements pour ses utilisateurs comme l'amélioration du renommage des fichiers dans Thunar pour remonter des erreurs ou avoir de long noms de fichier. Ce dernier comme le terminal ou éditeur de texte peuvent voir leur raccourcis claviers personnalisés dans leurs préférences. Les miniatures de fichiers sont générés plus rapidement.
Le navigateur de fichiers affiche le nombre de fichiers dans un répertoire lors d'une vue en liste, la colonne de date de création d'un fichier est également disponible. Les dix dernières opérations sur les fichiers peuvent être annulées ou refaites. Chaque fichier peut être mis en évidence avec une couleur spécifique en fond. Sa barre des tâches peut être personnalisée. Elle bénéficie d'une vue scindée au sein d'un même fenêtre pour voir deux dossiers différents en même temps. Par ailleurs, elle eprmet la recherche récursive dans les dossiers ou de voir els derniers fichiers récemment utilisés.
Le tableau de bord fusionne DateTime et l'horloge pour les préférences concernant l'heure et le calendrier pour supprimer des doublons. L'horloge bénéfice d'un affichage alternative en binaire pour les amateurs.
Le gestionnaire de configuration comme pour GNOME bénéficie de certains changements. Il est possible de décider quelle action effectuer quand un nouvel écran est branché.
Enfin, le gestionnaire de fenêtre permet la synchronisation verticale de son affichage. Une meilleure mise à l'échelle de l'interface est également proposée.
Le gestionnaire de connexions SDDM (utilisé par KDE par exemple) utilise Wayland par défaut. Cela signifie que le spin KDE Plasma et Kinoite ont fini leur transition vers Wayland par défaut. Cela a été rendu possible grâce au travail en amont pour le permettre au sein de SDDM, mais aussi aux changements opérés dans Fedora 36 qui a remplacé fbdev par simpledrm pour la gestion de l'affichage en cas d'absence de pilote vidéo dédié.
L'image Fedora Linux avec le bureau Budgie devient une image Spin officielle. Cela permet de simplifier la découverte de ce bureau moderne d'une part en le mettant en avant et en facilitant son installation. Mais ses utilisateurs pourront également l'installer plus rapidement tout en n'ayant pas des composants inutiles par ailleurs.
De même pour l'image Fedora Linux avec le gestionnaire de fenêtre Sway. Cela fourni les mêmes avantages que pour Budgie, avec en plus le bénéfice que Sway, en tant que i3 sous Wayland, peut être exploité sur des machines très minimalistes en puissance ce qui rend son installation direct plus pertinent encore.
L'utilitaire initial-setup n'est plus fourni dans l'image KDE et l'image Kinoite. Cette application est centrée sur GNOME pour permettre la création de l'utilisateur et quelques paramètres après l'installation, en particulier pour les installations OEM. L'objectif sera de le remplacer plus tard par un utilitaire plus adapté à l'interface de KDE Plasma, en entendant c'est Anaconda qui prend en charge ces paramètres lors de l'installation.
Flathub n'est plus filtré par défaut lors de l'installation de Fedora Linux, tous les paquets proposés sont donc accessibles. Depuis Fedora Linux 35 Flathub est proposé comme un dépôt tiers facilement activable pour récupérer des paquets Flatpak provenant de ce dépôt sans manipulations supplémentaires. Cependant il y avait un filtrage pour supprimer les applications propriétaires, ou les doublons, etc. Cependant cela rendait confus les utilisateurs qui n'avaient pas accès à tout le dépôt et rendait plus difficile la tâche de ceux qui voulaient accéder au dépôt entier.
Le filtre est donc supprimé, pour éviter les effets de bords GNOME Logiciels doit proposer dans l'ordre les Flatpak de Fedora, les paquets RPM de Fedora puis les Flatpak de Flathub (ou autre dépôts) par défaut si un logiciel est disponible sous ces formats là. GNOME Logiciels doit garantir de rendre clair le fait que le logiciel à installer est propriétaire ou libre.
Pour rappel, Flathub n'est pas actif par défaut.
Le timer systemd pour l'extinction de la machine passe de 2 minutes à 45 secondes, envoyant un signal SIGABRT puis un SIGKILL si jamais des services n'ont pas réussi à s'arrêter dans ce délai. En effet un service bloqué dans cette procédure pouvait bloquer le redémarrage ou l'extinction de la machine pendant 2 minutes ce qui est particulièrement long et souvent due à un problème comme le service PackageKit qui est souvent concerné par ces problèmes.
Il a été suggéré de baisser cela à 15 secondes, mais cela a été jugé trop agressif pour une première baisse de la durée. L'objectif est d'observer le résultat avec 45 secondes avant d'envisager une baisse supplémentaire. Les services pouvant être longs à s'éteindre peuvent de toute façon désactiver ce temps d'attente ce qui est le cas de PostgreSQL ou de virt-manager pour éviter de mauvaises surprises pour des systèmes qui en ont besoin. Les utilisateurs qui en ont besoin sur leurs services peuvent se renseigner au sujet de XDG inhibit pour les applications ou de systemd inhibit pour les services.
cups-filters passe à la version 2.0b. Cette nouvelle version est essentiellement un redécoupage des composants avec cups-filters, libcupsfilters, libppd, braille-printer-app et cups-browsed. L'objectif est de rendre la prise en charge du format PPD comme indépendant pour une éventuelle suppression future quand cela ne sera plus prise en charge ce qui est prévu pour CUPS 3.X. Les applications spécifiques des constructeurs seront dès lors nécessaires.
Dans le domaine de l'impression le paquet ipp-usb devient une dépendance faible de cups ou de sane-airscan pour proposer la prise en charge des imprimantes USB par défaut sans installations supplémentaires de la part de l'utilisateur. En effet de nombreuses imprimantes proposent de nos jours une prise en charge sans pilotes spécifiques pour l'impression via le réseau, mais aussi par USB via le protocole IPP over USB ce que prend en charge le paquet en question. Par conséquent un utilisateur qui souhaite imprimer ou scanner (et même faxer) aura par défaut une possibilité supplémentaire de s'en servir sans devoir chercher les paquets manquants éventuels. Ceux qui n'en veulent pas pourront toujours supprimer ce paquet dans ce cas précis.
La distribution LaTeX TeXLive version 2022 est proposée, qui est la dernière version avec une prise en charge longue durée.
L'ancien cache personnel devrait être supprimé pour s'assurer du fonctionnement, à savoir supprimer le répertoire ~/.texlive2021
.
L'utilitaire ImageMagick tire profit de sa 7e version. Cette version n'est pas compatible avec l'ancienne branche 6. Elle bénéficie de nombreux changements comme la prise en charge native des images HDRI. La structure de donnée Pixel Channels a été totalement remaniée, au lieu d'en avoir 4 définie dans PixelPacket
(pour rouge, vert, bleu et l'opacité) et d'autres éventuellement ailleurs comme le niveau de gris, ou l'index des couleurs dans IndexPacket
, maintenant il peut y en avoir 1 à 64 par pixels définis ensemble. Cela rend le code plus générique et clair, mais aussi autorise le compilateur d'optimiser le code dans les boucles de traitement en particulier. Beaucoup de fonctions sont fournies autour de cela pour faciliter leur utilisation et rendre le code plus générique. L'opacité devient aussi un canal `alpha´ ce qui inverse la logique, une opacité de 0 signifie opaque, quand c'est totalement transparent pour alpha. Mais cela correspond mieux à la terminologie habituelle pour manipuler des pixels. Les API ont été remaniées pour prendre en compte ces changements de conception, d'où la rupture de compatibilité.
Gestion du matériel
L'installateur Anaconda utilise mdadm au lieu de dmraid pour la prise en charge des stockages RAID reposant sur un firmware ou un BIOS. En effet ce dernier n'est plus très maintenu ce qui pose des soucis pour la correction de bogues ou de failles de sécurité. D'ailleurs mdadm est plus utilisé par les logiciels de gestion des configurations RAID de nos jours. Cependant mdadm ne prend en charge que deux formats de RAID : Common RAID Disk Data Format (DDF) par SNIA et Intel Matrix Storage Manager. Cela signifie que les formats RAID gérés matériellement les plus anciens ne seront pas forcément pris en charge par Anaconda.
L'image LXQt est proposée pour l'architecture aarch64. Le bureau étant particulièrement léger, cela le rend pertinent de le proposer pour cette architecture directement.
Fourniture d'une image avec Phosh, GNOME Shell pour mobile, à destination des téléphones ou des tablettes pour l'architecture x86_64 et aarch64. Cette interface proposée par l'entreprise Purism peut tourner sur des téléphones ou tablettes si les noyaux classiques permettent une telle prise en charge native. Proposer une image dédiée permet cette installation et rend cette action plus facile pour les utilisateurs.
L'architecture s390x utilise les processeurs de la génération z13 comme base, les plus anciens ne seront plus forcément compatibles. Les processeurs de générations antérieures ne sont plus prises en charge par le fabricant. Et l'architecture z13 propose des instructions vectorielles dont il est possible de tirer profit sur l'ensemble des logiciels grâce aux nouvelles options de compilation, ce qui était compromis par la prise des modèles plus anciens.
Les implémentations du serveur X (Xorg et Xwayland) refusent par défaut à des clients ayant un boutisme différent du serveur de s'y connecter. Il devient donc impossible d'utiliser un client X avec un processeur Intel pour afficher une interface provenant un serveur X sous processeur s390x. En effet ce cas de figure particulier est difficile à prendre en charge en l'état actuel du code, est peu testé et source d'une grande surface d'attaque pour un usage considéré comme marginal. Le désactiver par défaut permet de protéger les utilisateurs qui n'en ont pas besoin contre des clients malveillants. Cependant pour ceux qui en ont réellement besoin, il est possible de le résoudre via l'option de configuration AllowByteSwappedClients dans le fichier xorg.conf
ou par l'usage de l'option +byteswappedclients
en démarrant le serveur X.
Première partie de la migration vers une image noyau unifiée nommée UKI (donc unifiant noyau, initrd, ligne de commande du noyau et signature) pour les plateformes avec UEFI mais rien ne change par défaut à ce sujet pour les utilisateurs. L'objectif est de rendre le démarrage du système plus sûr, robuste et uniforme car moins dépendant des spécificités de chaque système, idéalement avec un tel système, le noyau, l'initrd et la ligne de commande seraient uniques sur tous les systèmes Fedora Linux.
Cependant c'est irréaliste de tout faire en une étape, trop de choses dépendent encore de la méthode actuelle à savoir l'initrd qui est générée à partir de l'ordinateur de l'utilisateur qui se base notamment sur les pilotes actuellement chargés par le système. Le plan a été phasé ainsi :
- Phase 1 : fournir les blocs de base, à savoir installer, démarrer et mettre à jour de tels fichiers, pour permettre de développer et de tester des images UKIs en machine virtuelle ;
- Phase 2+ : étendre la prise en charge en gérant de plus en plus de cas d'usage un par un ;
- Phase X : une fois qu'il y a parité avec les noyaux non-UKI, discuter de l'usage par défaut pour tous les cas d'usage. En particulier les images cloud ou serveurs pourraient y passer plus tôt car ils ont moins de contraintes quand le système est virtualisé.
- Non prévu : la suppression des images non UKI.
Pour ceux qui veulent tester en machine virtuelle, le paquet kernel-uki-virt est proposé à cette fin. Dans les difficultés à résoudre il y a la question des secrets matériels provenant de l'UEFI qu'il faut récupérer, il y aussi la partition où se situe la partition système qui doit être auto-détectée ce qui est possible grâce à la norme UEFI (chaque partition a un type défini sous forme de UUID unique ce qui nous renseigne sur sa nature), ou encore la question des options particuliers à envoyer au noyau pour configurer le système, utilisés par exemple pour éviter le conflit entre le pilote libre ou propriétaire de nVidia.
L'installateur de l'image IoT récupère celui de CoreOS pour simplifier son installation. Ainsi c'est une simple image OSTree qui peut être écrite sur l'espace de stockage via un argument noyau à spécifier. Pas besoin d'utiliser l'outil kickstart ou une quelconque manipulation supplémentaire de l'utilisateur. L'avantage c'est de simplifier l'installation pour des systèmes avec une connexion Internet lente ou non fiable, l'installation se faisant en une fois après que l'image ait été entièrement récupérée. Cela rapproche également Fedora IoT de l'image de RHEL dédiée à cet usage.
Internationalisation
La police par défaut pour la langue thaï et le cambodgien passe à Noto. Ces langues rejoignent ainsi celles qui avaient déjà effectué ce changement pour Fedora Linux 36 ce qui réduit la taille du système d'environ 344 kio dans ce cas et rend l'affichage plus cohérente pour l'ensemble des langues. La qualité d'affichage devrait aussi être meilleure pour ces langues.
Tandis que les polices Noto CJK pour les langues chinoises, japonaises et coréennes utilisent la variante variable au lieu de static comme auparavant. Cette variante est en effet plus légère d'un facteur deux environ, de quoi gagner plusieurs dizaines de Mio sur le système par défaut et sur les images Live.
Mise à jour de libpinyin 2.8. Ce gestionnaire d'entrée de saisie pour la langue chinoise ajoute la proposition d'expressions candidates à partir de l'entrée en cours. Cela permet d'accélérer la saisie dans cette langue.
Administration système
Les clés du serveur SSH suppriment le droit de lecture par les utilisateurs du groupe ssh_keys (qui est supprimé) pour rétablir le SUID bit de l'utilitaire ssh-keysign. Cela revient à supprimer un correctif spécifique de Fedora qui date de 11 ans, ce correctif échangeait le setuid du compte root avec une permission sur ces fichiers 0600 par un sgid associé au groupe ssh_keys mais des permissions plus lâches à savoir 0640. La raison derrière ce changement n'a pas été documentée et semble perdue, cependant de plus en plus d'utilitaires, notamment pour l'authentification basée sur l'hôte, font des vérifications de ces permissions et cette déviation par rapport à une installation OpenSSH standard était source de problèmes difficiles à justifier.
RPM utilise Sequoia pour traiter le format OpenPGP au lieu de sa propre implémentation interne. Pendant près de 20 ans, toute la partie pour gérer OpenGPG était développée en interne. Cela avait plusieurs inconvénients, évidemment en terme de sécurité car ce code sensible était prise en charge par des développeurs pas experts du domaine. Mais aussi le temps de développement étant limité, améliorer la prise en charge d'OpenGPG était au détriment du reste. Le tout pour une implémentation imparfaite de la norme RFC-4880. Les messages d'erreurs pourraient à terme aussi être améliorés dans ce contexte.
Le paquet systemd-udev fourni par défaut la règle Link.MACAddressPolicy=none au lieu de Link.MACAddressPolicy=persistent pour les interfaces réseaux logiciels ponts ou agrégées. Cette information est fournie dans le fichier /usr/lib/systemd/network/99-default.link. La configuration reste inchangée pour les interfaces réseaux logiciels plus classiques ce qui garanti une stabilité dans l'assignation des adresses MAC. Ce changement a été décidé suite aux interférences avec le comportement du noyau Linux dans ce cas de figure qui utilise l'adresse MAC de la première interface. Cela peut aussi affecter les machines virtuelles qui s'attendent à ce que le pont ou l'agrégation de liens ait une des adresses MAC des interfaces réseaux impliquées.
Le gestionnaire de paquet Microdnf est mis à jour à sa 5e version. Il est à terme prévu que microdnf devienne l'implémentation de référence de dnf, le gestionnaire de paquets actuel de Fedora. Cette version majeure rapproche l'objectif d'une compatibilité des deux outils tout en gardant une taille plus raisonnable. Il est disponible sous le nom de paquet dnf5. Cette version améliore l'affichage des bars de progression et la gestion des transactions. L'exécution des scriptlets (les scripts avant ou après l'installation / suppression d'un paquet à des fin de conversion ou de nettoyage) est aussi affichée. Les opérations impliquant des RPM locaux est aussi améliorées de même que l'auto-complétion des commande fournie par le shell Bash qui devient meilleure que celle de dnf lui même. La gestion des dépôts modulaires est également totalement intégrée, les plugins C++ et Python sont mutualisés pour réduire le coup de maintenance. Les performances sont également améliorées dans l'ensemble parmi d'autres changements plus mineurs.
Développement
La mise à niveau de la chaine de compilation GNU est à l’œuvre avec GCC 13.0, binutils 2.39, glibc 2.37 et GDB 12.1. GCC bénéficie ainsi d'une meilleure prise en charge de l'évolution de la norme du langage C dénommé C23. De même par ailleurs pour le langage C++ avec C++23. Sinon c'est l'analyseur statique de code qui bénéficie de nouveaux avertissements plutôt nombreux. Les architectures x86 et ARM ou Aarch64 bénéficient comme souvent d'une meilleure prise en charge des spécificités des différentes micro-architectures dans ces familles.
Concernant binutils, l'éditeur de lien ELF va émettre un avertissement si la pile est exécutable pour des raisons de sécurité. La commande objdump a sa sortie de désassemblage qui est colorée syntaxiquement pour favoriser sa lecture pour les architectures AVR, RiscV, s390, x86 et x86_64. La bibliothèque C bénéficie essentiellement de corrections plus mineures dont de sécurité.
Enfin pour le débogueur, l'architecture LoongArch est prise en charge, pendant que celle d'OpenRISC s'améliore. Sinon l'API des plugins de Python s'étoffe de même que la gestion des templates C++.
Retrait de la prise en charge du langage Guile pour étendre GDB pour laisser la place à Python pour cela. La prise en charge de Guile est en effet en déclin, elle est moins complète que Python qui est de plus en plus utilisée et améliorée à cette fin. La documentation de GDB met par ailleurs en avant Python plutôt que Guile dans cette tâche, ce qui peut laisser à penser qu'un jour cette prise en charge de Guile sera supprimée à terme. Anticiper ce mouvement permet de simplifier la tâche des mainteneurs.
Pendant que LLVM version 16 débarque. Cette mise à jour s'accompagne d'abord par une amélioration de la prise en charge des architectures, avec les nouveaux processeurs AMD Zen 4 ou Intel Emerald Rapids. L'architecture RISC V bénéficie des options -mcpu=native / -mtune=native pour une mise au point plus fine. Le compilateur JIT prend en charge le langage OpenMP. Il peut également compresser avec l'algorithme Zstd les sections de débogue ELF.
GNU Make prépare sa version 4.4. Il y a beaucoup d'annonce de rupture de la compatibilité ascendante, dont l'usage plus important du répertoire temporaire ce qui peut casser tout script manipulant ou nettoyant TMPDIR. Il apporte l'ajout d'une nouvelle cible .WAIT pour permettre d'attendre la fin de l'exécution de plusieurs cibles avant de débuter le traitement d'une nouvelle. L'option -l va utiliser l'information exposé dans le fichier /proc/loadavg pour définir le nombre de tâches à exécuter en parallèles.
Le langage Go quant à lui passe à la version 1.20. Cette version apporte le début de la prise en charge du PGO (profile-guided optimization) pour se baser sur des données collectées à l'exécution d'un logiciel pour que Go puisse compiler ce logiciel par la suite autrement afin d'en optimiser ses performances jusqu'à 3-4 % d'amélioration pour le moment. Par ailleurs les performances d'un logiciel Go en terme de pression mémoire et d'utilisation du processeurs sont améliorées par une optimisation du ramasse miettes, pouvant aller jusqu'à 2% d'amélioration. Il est également possible de régler la micro-architecture cible à la compilation pour améliorer les performances en utilisant les fonctionnalités du processeur cible.
Le langage Ruby expose sa version 3.2 en vitrine. Son nouveau compilateur JIT nommé YJIT n'est plus considéré comme expérimental et est d'ailleurs plus performant jusqu'à 41% par rapport à la version précédente. YJIT alloue maintenant la mémoire de manière paresseuse et fonctionne aussi sur les architectures ARM et Aarch64. Les expressions régulières bénéficient d'une amélioration notable des performances pour une évaluation de la correspondance qui devient linéaire par rapport à la taille des entrées et si l'évaluation est trop lente, un timeout est généré basé sur la valeur de configuration Regexp.timeout. L'objectif était d'éviter une dégradation trop importante des performances dans certains cas, notamment dans un cadre malveillant.
Le langage PHP évolue vers la version 8.2. Cette version apporte entre autre la possibilité de définir des classes en lecture seule. Les types null, false et true deviennent des types autonomes. Les types de forme normale disjonctive sont prises en charge pour faciliter l'expression des unions et intersections de types pour faciliter la lecture et l'écriture de code.
Le gestionnaire de base de données PostgreSQL met à jour à la version 15. Cette version apporte la prise en charge de la commande SQL MERGE. L'algorithme de compression Zstd peut être employé également notamment pour les sauvegardes. Les journaux côté serveur peuvent être exportés au format JSON. Enfin les performances sont améliorées en particulier pour les opérations de tris.
- Pendant que Haskell GHC (le compilateur Haskell) 9.2 avec sa suite Stackage 20 sont disponibles ;
- L'écosystème Node.js est repackagé pour autoriser des installations multiples et parallèles, abandonnant l'usage des modules qui était la voie privilégiée ;
- La bibliothèque pcre est marquée comme obsolète au bénéfice de pcre2, sa suppression totale des dépôts (et de ses dépendances) est à prévoir prochainement ;
- OpenJDK est compilé pour ressembler plus aux implémentations standards de JDK avec les bibliothèques internes au lieu de celles du système et la compilation avec la bibliothèque libstdc++ liée statiquement ;
- La boîte à outils pour le développement Web en Python nommé Pyramid bénéficie de la version 2.0 ;
- Mise à jour de python-packaging version la version 22.0 ;
- Le paquet python3-toml est considéré comme obsolète avant suppression définitive à venir depuis la prise en charge de cette fonctionnalité dans la bibliothèque standard depuis Python 3.11 ;
- Le paquet du compilateur FreePascal fpc est subdivisé en trois paquets : fpc pour le compilateur lui même, fpc-ide pour l'environnement de développement en ligne de commande et fpc-units-NOMARCHITECTURE-linux pour la bibliothèque standard précompilée ;
- Le générateur d'interface SWIG se balance vers la version 4.10.
Projet Fedora
- La génération des images Fedora IoT reposera sur osbuild ;
- Les paquets sont compilés avec l'option _FORTIFY_SOURCE=3 au lieu de _FORTIFY_SOURCE=2 pour mieux se protéger contre les buffers overflow dans les logiciels fournis ;
- Les paquets sont également compilés avec les options -fno-omit-frame-pointer et -mno-omit-leaf-frame-pointer par défaut ;
- Les paquets qui veulent changer leur option de compilation doivent passer par les macros %_pkg_extra_cflags, %_pkg_extra_cxxflags, %_pkg_extra_fflags et %_pkg_extra_ldflags pour plus de lisibilité et de traçabilité ;
- rpmautospec (qui emploie les macros %autorelease et %autochangelog) est recommandé pour l'ensemble des paquets par défaut ;
- Activation de la macro %clamp_mtime_to_source_date_epoch à 1 qui configure mtimes en $SOURCE_DATE_EPOCH pour la compilation reproductible des paquets ;
- La macro pour gérer les dépendances des modules Perl perl(:MODULE_COMPAT_%(eval "
%{__perl} -V:version
"; echo $version)) est supprimée au profit de perl-generators ; - Les paquets Python fournissant la métadonnée python3dist(...) = 0 échoueront dans leur construction ;
- Début de l'usage généralisé des noms de licence provenant du projet SPDX pour la licence des paquets plutôt que des noms du projet Fedora, de manière facultative pour l'instant.
La communauté francophone
L'association
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 Libera). Pour plus de convivialité, nous avons mis en place également une réunion mensuelle le premier lundi du mois à la même heure en visio-conférence sur Jitsi.
La documentation
Depuis juin 2017, un grand travail de nettoyage a été entrepris sur la documentation francophone de Fedora, pour rattraper les 5 années de retard accumulées sur le sujet.
Le moins que l'on puisse dire, c'est que le travail abattu est important : près de 90 articles corrigés et remis au goût du jour. Un grand merci à Charles-Antoine Couret, Nicolas Berrehouc, Édouard Duliège, 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 Libera) 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 Linux 38 ?
Si vous avez déjà Fedora Linux 37 ou 36 sur votre machine, vous pouvez faire une mise à niveau vers Fedora Linux 38. Cela consiste en une grosse mise à jour, vos applications et données sont préservées.
Autrement, pas de panique, vous pouvez télécharger Fedora Linux avant de procéder à son installation. La procédure ne prend que quelques minutes.
Nous vous recommandons dans les deux cas de procéder à une sauvegarde de vos données au préalable.
De plus, pour éviter les mauvaises surprises, nous vous recommandons aussi de lire au préalable les bogues importants connus à ce jour pour Fedora Linux 38.