From Fedora Project Wiki
Line 146: Line 146:
'''Son voisin Haskell bénéficie du compilateur GHC 8.10 et de sa distribution Stackage version 18.''' Il embarque un backend LLVM 9 pour la compilation. Il propose aussi un ramasse miette avec une faible latence. Une amélioration des performances est noté pour le filtrage par motif. Le langage bénéficie de quelques extensions.
'''Son voisin Haskell bénéficie du compilateur GHC 8.10 et de sa distribution Stackage version 18.''' Il embarque un backend LLVM 9 pour la compilation. Il propose aussi un ramasse miette avec une faible latence. Une amélioration des performances est noté pour le filtrage par motif. Le langage bénéficie de quelques extensions.


'''Le langage PHP 8.0 fait son apparition.'''  
'''Le langage PHP 8.0 fait son apparition.''' Tout d'abord il introduit deux compilateurs JIT pour être évalués, offrant des performances similaires à la voie classique pour els grosses applications type Wordpress. Il apporte la possibilité de nommer les arguments lors de l'appel à une fonction pour améliorer la souplesse et la lisibilité. Comme Python il a joute le mot clé ''match'' pour faire du filtrage par motif. Le Nullsafe est introduit pour éviter lors d'une chaine d'appels de devoir vérifier si chaque élément est non null, si un des éléments est null, l'évaluation de la chaine s'arrête automatiquement ce qui améliore la fiabilité et la lisibilité. Enfin la comparaison entre un nombre et une chaine de caractère est plus logique et le comportement plus cohérent.


* L'environnement de compilation de binaires Windows, MinGW, est mis à jour ;
'''L'environnement de compilation de binaires Windows, MinGW, est proposé à la version 9.0.0.''' Son apport principal est la modernisation de la chaine de compilation GNU avec GCC 11 notamment.
* La bibliothèque graphique SDL 2.0 fournira la gestion de la compatibilité avec la version 1.2, plutôt que l'installation de cette ancienne version ;
 
* Le paquet ''libmemcached'' utilise le code de ''libmemcached-awesome'' au lieu du projet d'origine, qui n'est plus maintenu depuis 7 ans. Le tout reste compatible au niveau API et ABI ;
'''La bibliothèque graphique SDL 2.0 fournira la gestion de la compatibilité avec la version 1.2''', plutôt que l'installation de cette ancienne version. Cela signifie que le paquet ''sdl12-compat'' est supprimé tout en permettant d'exécuter des jeux n'ayant pas migré. Ce changement apporte de nombreux avantages comme la prise en charge correcte de Wayland pour l'affichage, de Pipewire pour l'audio et des manettes. De plus, SDL 2.0 étant maintenu contrairement à cette vieille version, les correctifs futurs pourront bénéficier à ces applications aussi.
* Debuginfod est utilisé par défaut pour obtenir les codes source et autres données de débogage en cas de nécessité, plutôt que de recourir à l'installation des paquets de débogage correspondant.
 
'''Le paquet ''libmemcached'' utilise le code de ''libmemcached-awesome'' au lieu du projet d'origine''', qui n'est plus maintenu depuis 7 ans. Le tout reste compatible au niveau API et ABI.
 
'''Debuginfod est utilisé par défaut pour obtenir les codes source et autres données de débogage en cas de nécessité''', plutôt que de recourir à l'installation des paquets de débogage correspondant. Grâce à ce protocole, en cas de besoin, il téléchargera les ressources nécessaires depuis [ https://debuginfod.fedoraproject.org/ les serveurs de Fedora dédiés] ce qui est plus simple pour l'utilisateur, léger car tout le contenu du paquet n'est pas téléchargé et évite de polluer la base de données RPM avec des paquets qui ne serviront que temporairement.
 
Actuellement les fichiers ne sont conservés qu'une semaine en cache sur le disque dans le répertoire ''$HOME/.cache'', mais cela est configurable ou peut être nettoyé à la main. Un minimum d'info est envoyé par HTTPS vers les serveurs de Fedora, pour essayer de conserver la confidentialité des utilisateurs : adresse IP, hash du contenu demandé, le nom du fichier source demandé, un User-Agent contenant l'architecture de la machine et la version de Fedora employée.


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

Revision as of 22:46, 13 October 2021

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

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 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.

Expérience utilisateur

Passage à GNOME 41.

Le centre de contrôle est doté de nouvelles options.

Tout d'abord dans le menu Énergie, il y a la possibilité de choisir un mode de performance de l'ordinateur. Option souvent proposée dans d'autres systèmes comme Windows, il est possible de choisir entre le mode performance, un mode équilibré ou un mode d'économie d'énergie. Ces options dépendent du matériel de votre machine, certaines options peuvent être absentes. L'objectif est que l'utilisateur puisse adapter l'usage de sa machine en fonction de ses besoins du moment. Pour faciliter cela, il est possible de changer de mode via le menu de la barre principale de GNOME Shell. Et quand la batterie est faible, le mode économie d'énergie est utilisée automatiquement.

Par ailleurs, un nouveau menu Multi-tâches fait son apparition. Il permet de définir si la souris au coin supérieur gauche affiche ou non la vue d'ensemble des activités. Une autre option pour que déplacer une fenêtre vers un coin de l'écran permet d'afficher l'application sur la moitié de l'écran correspondant. Le comportement des espaces de travail, grandement remaniés avec GNOME 40, peut être configuré : nombre fixe ou dynamiques des bureaux virtuels, si les ces espaces de travail sont sur 'lécran principal uniquement ou tous les écrans, et encore si le comportement de Alt-Tab affiche toutes les applications ou seulement celles de l'espace de travail actuel.

Enfin le centre de contrôle expose des informations pour les connexions mobiles de votre machine. Cela permet de choisir si vous préférez une connexion 2G, 3G ou 4G, s'il y a une limite de données, l'activation ou non de l'itinérance des données et le code pin de la carte SIM. Ces options ne sont affichées que si la machine dispose d'une telle fonctionnalité.

La boutique Logiciels a été rafraîchie. Les captures d'écrans sont plus gros, il y a plus de catégories pour les applications ou encore une page d'accueil présentant plus d'informations. La présentation des éléments pour une applciation est également plus visuelle et claire. Il gagne également en vitesse et en fiabilité.

Une nouvelle application Connexions permet de gérer les connexions graphiques distantes via les protocoles RDP ou VNC. Cela permet d'éviter de recourir à Machines pour cet usage, il est ainsi dédié à la virtualisation.

La calculatrice a été retouchée avec un mode clavier qui facilite les conversions d'unités et efface le clavier visuel. Tandis que le clavier visuel dans les autres modes a été redessiné.

De manière générale GNOME bénéficie d'améliorations de performances, en particulier en réduisant la latence entre une entrée clavier ou souris, et une plus grande fiabilité des gestes multi touches.

En lien avec la nouvelle fonctionnalité de GNOME concernant l'énergie, Fedora installe par défaut le paquet power-profiles-daemon pour contrôler via DBus la politique énergétique du système entre performance, équilibré ou économie d'énergie. La disponibilité des modes dépend de votre matériel. Il est possible de personnaliser des actions pour par exemple désactiver la recharge rapide par USB des périphériques quand l'ordinateur portable est en mode économie d'énergie.

Les applications gourmandes en ressources comme des jeux vidéo ou de rendus 3D peuvent ainsi modifier le mode de la machine hôte pour garantir son bon fonctionnement.

GNOME Logiciels et GNOME Initial Setup proposent une option à l'utilisateur pour activer des dépôts tiers. Le paquet fedora-third-party offre un script du même nom pour configurer ou connaître l’activation ou non de ces dépôts. L'ensemble est sauvegardé dans le fichier '/etc/fedora-third-party.conf. Ce mécanisme permet de facilement gérer ce choix pour Flatpak, dnf et GNOME Logiciels.

Ajout d'un dépôt tiers nommé fedora-flathub-filter qui expose des applications Flatpaks provenant de Flathub sélectionnées par Fedora. Il exploite la fonctionnalité décrite au paragraphe précédent. L'installation usuelle de Flathub reste nécessaire pour accéder à l'ensemble de ses applications. Ce dispositif permet d'afficher facilement aux utilisateurs les applications Flatpak provenant de Flathub dans Fedora, en évitant la redondance avec les paquets RPM et en retirant aussi les logiciels posant des problèmes légaux pour le projet Fedora.

WirePlumber va gérer les sessions Pipewire pour l'audio dorénavant plutôt que ce que Pipewire utilise en interne. En effet, Pipewire a besoin d'un gestionnaire de sessions pour les opérations suivantes :

  • créer et configurer les périphériques multimédia détectés par le système ;
  • configurer les applications et le routage des flux audio et vidéo vers les périphériques ou différents filtres ;
  • garder en mémoire les périphériques par défaut et leurs différents volumes ;
  • modifier les flux audio et vidéo en cas de connexion ou déconnexion d'un périphérique.

Wireplumber a plus d'options que Pipewire a ce sujet, utilise les GObjects ce qui permet un une communication avec différents langages de programmation, et peut être configuré avec des scripts LUA.

Le système Fedora Kinoite devient une variante officielle. C'est l'équivalent de Fedora Silverblue avec KDE Plasma comme environnement graphique par défaut. C'est donc un système immuable (en lecture seule) très minimaliste, qui doit utiliser des applications via Fedora toolbox ou les Flatpaks.

Gestion du matériel

L'image Fedora Cloud prend en charge le mode hybride BIOS et UEFI pour le démarrage de la machine. On passe donc d'un partitionnement par défaut avec une partition unique et un MBR implicite à ce schéma :

1-BIOS boot

2-EFI System (FAT32)

3-/boot (ext4)

4-/ (btrfs)

Ainsi, le démarrage fonctionnera peut importe si la machine fonctionne avec un BIOS classique ou un UEFI.

Cela fait suite au travail entrepris pour Fedora Linux 34 d'unifier la configuration de GRUB. Cela permet d'unifier la gestion du démarrage dans Fedora, de suivre d'ailleurs celle d'OpenSUSE et de CentOS pour cet usage. D'autant que l'amélioration u support de l'UEFI dans les offres de machines virtuelles permet un tel changement.

Les partitions chiffrées avec LUKS auront la taille du secteur défini automatiquement, suivant le matériel sous-jacent pour améliorer les performances. Jusqu'ici, l'installateur Anaconda fixait la taille à 512 octets par secteur, peut importe la réalité du matériel utilisé. Cela devrait être de 4096 octets par secteur dans la majorité des cas. Sur un SSD connecté par NVMe, le gain estimé est d'environ 2-3% de performances.

Internationalisation

IBus est proposé à la version 1.5.25. La version proposée apporte l'usage d'un seul script transfiletriggerin pour générer le fichier de cache des méthodes d'entrées plutôt que l'ancienne méthode qui reposait sur plusieurs scripts posttrans plus difficiles à maintenir. Derrière le capot ce script est appelé par la commande ibus write-cache qui va écrire les fichiers de cache dans le dossier /usr/share/ibus/component.

La composition des caractères suit maintenant la méthode implémentée dans GTK+4, si vous souhaitez saisir par exemple le caractère à, il faut saisir avec la touche de composition le caractère ` puis la touche a. Mais avant, si le caractère ne supportait pas cet accent, par exemple la lettre x, rien n'était affiché car c'est invalide. Maintenant cela va afficher `x séparément. Cela simplifie notamment la saisie de ``` très utilisé avec le langage markdown. L'intégration avec GTK+4 est de manière générale améliorée.

Le raccourci clavier pour accéder aux émojis passent de Ctrl+Shift+e à Ctrl+, par défaut.

La méthode d'entrée par défaut pour les langues indo-aryennes passe de Inscript vers Enhanced Inscript keymaps. L'objectif est d'utiliser le dernier standard indien sur le sujet avant son inclusion progressif dans GNOME en amont.

Administration système

L'image de base de Fedora ne fournit plus les paquets sssd-client et util-linux pour réduire la taille des conteneurs avec Fedora. On gagne ainsi 13 Mio sur les 122 Mio de l'image minimale soit un gain d'environ 10%.

En lien avec ce changement, le cache de SSSD pour les utilisateurs locaux peut être activé ou désactivé à chaud, et il n'est plus lancé par défaut dorénavant. Cela permet d'avoir un système pleinement fonctionnel même quand il est manquant, et de limiter son impact sur le système quand on n'en a pas besoin.

L'installateur Anaconda prend en charge des fichiers de profil et non plus des fichiers de configuration de produits pour être plus générique.

En fait dans le dossier /etc/anaconda/profile.d, il y a plusieurs fichiers pour configurer l'installation. Par exemple le fichier de configuration fedora-workstation.conf défini que l'environnement par défaut c'est Workstation (qui de fait est GNOME), il spécifie un fichier CSS pour l'habillage d'Anaconda, puis il dit aussi d'ignorer la configuration de l'utilisateur et du réseau car cela est géré au niveau de GNOME. Si on regarde du côté du serveur on a le fichier fedora-server.conf qui définie que le partitionnement par défaut doit utiliser LVM avec un système de fichier xfs d'au moins 2 Gio pour la racine.

C'est en somme la logique qui permet avec un seul logiciel de gérer des configurations différentes sans trop de maintenance. Seulement le choix de ces fichiers se basaient sur les éléments suivants dans l'ordre :

  • Les paramètres du noyau inst.product et inst.variant ;
  • Les variables Product et Variant dans le fichier .buildstamp ;
  • Ou la variable NAME du fichier /etc/os-release.

Seulement cela était fragile car reliés aux noms officiels de Fedora Linux et de ses variants. Le nom du système a changé (lire plus bas), cela imposait des astuces pour gérer le cas des images boot.iso ou Live en créant notamment des faux produits.

Pour simplifier cela la conception repose sur des identifiants uniques à la place. L'option du noyau devient alors inst.profile et les variables ID et VARIANT_ID pour le fichier os-release.

L'image Fedora Cloud utilise le système de fichiers btrfs par défaut. Cela rejoint Fedora Workstation qui s'en sert depuis la version 33. Ainsi cette image peut tirer parti des avantages de btrfs comme la compression transparente, l'intégration des cgroups, les clichés système, le redimensionnement ou la gestion automatique des sous-volumes.

Les mots de passe des utilisateurs dans /etc/shadow sont hashés par yescrypt par défaut. Cela suit les distributions ALT Linux, Debian testing, et Kali Linux 2021.1+ qui ont déjà fait ce choix. Les avantages de yescrypt par rapport à sha256crypt et sha512crypt utilisés jusqu'ici sont :

  • Il peut avoir plus de 90 bits d'entropie pour le sel, à savoir au delà des 120 bits recommandée par la NIST ;
  • Il est plus difficile de faire un déni de service au niveau du CPU en lui soumettant des mots de passe longs ;
  • C'est plus difficile de deviner la longueur du mot de passe en fonction du temps de traitement ;
  • Il utilise une fonction de dérivation de clé.

La mise à jour d'un paquet ayant un service systemd au niveau utilisateur mènera à son relancement à la fin de la mise à jour. Auparavant cela n'était fait que pour systemd en tant que PID 1 au niveau système. Ces services sont identifiables avec le nom user@<uid>.service qui répondent aux commandes systemd --user. Cela est particulièrement utile pour pouvoir relancer le service de pipewire pour la gestion du son.

Le gestionnaire de virtualisation libvirt a un démon par module dorénavant pour plus de souplesse et de fiabilité. Le service libvirtd.service est supprimé en faveur de virtqemud.service, virtxend.service, virtlxcd.service, virtinterfaced.socket, virtnetworkd.socket, virtnodedevd.socket, virtnwfilterd.socket, virtproxyd.socket, virtsecretd.socket et virtstoraged.socket.

Ainsi seuls les services nécessaires sont lancés ce qui peut réduire significativement le temps de chargement de libvirt. Et en cas de problème dans un service, les autres peuvent potentiellement tourner sans problèmes ce qui n'était pas le cas avant, une erreur était fatale à l'ensemble. SELinux pourra aussi à terme en tirer profit pour avoir une politique plus fine, la politique actuelle étant assez large car devant autoriser quasiment tout à libvirt qui en avait besoin.

La bibliothèque Cyrus SASL passe de Berkeley DB à GDBM pour la gestion des bases de données. Les paquets concernés auront leurs bases de données automatiquement convertis via la commande :

cyrusbdb2current <sasldb path> <new_path>

Cela est du entre autre à la licence de libdb qui est devenue plus restrictive.

Mise à jour du parefeu dynamique firewalld à la version 1.1.0. Cette version s'autorise un toilettage bienvenue en réduisant ses dépendances, en supprimant le support de tftp-client et de Python 2 alors que iptables et l'interface Direct sont dépréciés. Les règles NAT sont déplacés dans la famille inet ce qui réduit la taille des règles pour les utilisateurs d'ipset, qui étaient jusqu'ici dupliquées entre IPv4 et IPv6. La cible défaut est proche de la cible rejet pour améliorer la cohérence dans leur comportement. Le premier n'autorise en plus que les paquets ICMP. Deux zones de même niveau de confiance peuvent également s'échanger des paquets ce qui est le comportement attendu avec les autres pare-feu ayant le concept de zones.

Suppression du paquet authselect-compat, de fait l'outil authconfig disparaît au profit de authselect qui est mis par défaut depuis Fedora 28.

Le paquet libusb est renommé libusb-compat-0.1 et libusbx en libusb1. Ce nommage est plus conforme avec la nomenclature du projet officiel.

Mise à jour de RPM à la version 4.17. Les erreurs à l'installation sont mieux gérées. Les macros sont améliorés et peuvent se complexifier en tirant profit d'une meilleure intégration du langage Lua. Les bibliothèques n'ont plus besoin de la permission exécutable pour la génération des dépendances ce qui améliore la qualité des paquets.

Développement

La collection d'outils binutils passe à la version 2.37. Il prend en charge notamment plus d'instructions des architectures x86_64 et AArch64. L'éditeur de liens et l'assembleur bénéficient de plus d'options.

La bibliothèque C Glibc 2.34 est proposée. Les bibliothèques libpthread, libdl, libutil et libanl sont inclus dans la libc, rendant inutile l'ajout de ces bibliothèques lors de l'édition des liens. Des bibliothèques statiques vides sont fournies pour garantir la compatibilité avec l'existant. Sinon beaucoup de nettoyags et de changements mineurs, comme le support des dernières fonctions du noyau Linux.

La suite LLVM passe la 13e version. Les paquets llvm12 et clang12 sont fournis pour garantir la compatibilité. Cette version apporte un nouveau frontend pour le langage Fortran : Flang. Ajout de la prise en charge de quelques instructions Armv9-A : Realm Management Extension (RME) et Scalable Matrix Extension (SME). Clang gère mieux OpenCL et utilise par défaut sa version 1.2. Et d'autres changements divers dans le formateur de code de Clang et son analyseur statique.

La bibliothèque généraliste de C++, Boost, appuie sur le champignon jusqu'à la version 1.76. Comme souvent, beaucoup d'améliorations diverses dans l'ensemble des modules. De manière plus notable, le module Boost.Math abandonne la prise en charge de C++03, tandis que Boost.Multiprecision exige du code compilé en C++1 ou supérieur. Le module Boost.DLL renomme boost::dll::import en boost::dll::import_symbol pour éviter une collision de nommage avec la nouvelle norme C++20.

Node.js 16 est proposé par défaut. Les versions 14 et 12 restent disponibles dans les modules facultatives. Le moteur JavaScript passe ainsi à la version 9.4 qui améliore les performances et fourni les dernières fonctionnalités de JavaScript. De même que l'utilitaire npm évolution avec la version 8.0.0. Le support expérimental des Web Streams API est introduit.

Le langage Python 3.10 est déployé pendant que Python 3.5 est entièrement retiré. Les nouveaux mots clés match / case sont introduits pour le filtrage par motif, fonctionnalité qu'on retrouve dans de nombreux langages modernes ou fonctionnels. Les emssages d'erreurs sont aussi plus clairs avec des suggestions de correction.

Le célèbre générateur de documentation en Python, Sphinx, veille sur la 4e version. Il passe notamment à la version 3 de MathJax pour les formules mathématiques. Il prend en charge docutils-0.17 pour le rendu.

Le langage Perl perle vers la version 5.34. La syntaxe expérimentale pour les exceptions try/catch est ajoutée. Il est possible d'utiliser une autre syntaxe pour els nombres en octal avec 0o123_456. Enfin il est possible d'ajouter librement des espaces au sein d'accolades comme \x{ FFFC }. Une fuite mémoire importante dans le module des expressions régulières a été colmatée.

Le langage de programmation fonctionnelle et concurrente Erlang 24 est disponible. Parmi les nouveautés il y a un nouveau compilateur JIT BeamAsm remplaçant le compilateur haute performance HiPE. Le module graphique wx a été entièrement réécrit basé sur la version 3 de la bibliothèque wxWidgets qui fourni aussi wxWebView.

Son voisin Haskell bénéficie du compilateur GHC 8.10 et de sa distribution Stackage version 18. Il embarque un backend LLVM 9 pour la compilation. Il propose aussi un ramasse miette avec une faible latence. Une amélioration des performances est noté pour le filtrage par motif. Le langage bénéficie de quelques extensions.

Le langage PHP 8.0 fait son apparition. Tout d'abord il introduit deux compilateurs JIT pour être évalués, offrant des performances similaires à la voie classique pour els grosses applications type Wordpress. Il apporte la possibilité de nommer les arguments lors de l'appel à une fonction pour améliorer la souplesse et la lisibilité. Comme Python il a joute le mot clé match pour faire du filtrage par motif. Le Nullsafe est introduit pour éviter lors d'une chaine d'appels de devoir vérifier si chaque élément est non null, si un des éléments est null, l'évaluation de la chaine s'arrête automatiquement ce qui améliore la fiabilité et la lisibilité. Enfin la comparaison entre un nombre et une chaine de caractère est plus logique et le comportement plus cohérent.

L'environnement de compilation de binaires Windows, MinGW, est proposé à la version 9.0.0. Son apport principal est la modernisation de la chaine de compilation GNU avec GCC 11 notamment.

La bibliothèque graphique SDL 2.0 fournira la gestion de la compatibilité avec la version 1.2, plutôt que l'installation de cette ancienne version. Cela signifie que le paquet sdl12-compat est supprimé tout en permettant d'exécuter des jeux n'ayant pas migré. Ce changement apporte de nombreux avantages comme la prise en charge correcte de Wayland pour l'affichage, de Pipewire pour l'audio et des manettes. De plus, SDL 2.0 étant maintenu contrairement à cette vieille version, les correctifs futurs pourront bénéficier à ces applications aussi.

Le paquet libmemcached utilise le code de libmemcached-awesome au lieu du projet d'origine, qui n'est plus maintenu depuis 7 ans. Le tout reste compatible au niveau API et ABI.

Debuginfod est utilisé par défaut pour obtenir les codes source et autres données de débogage en cas de nécessité, plutôt que de recourir à l'installation des paquets de débogage correspondant. Grâce à ce protocole, en cas de besoin, il téléchargera les ressources nécessaires depuis [ https://debuginfod.fedoraproject.org/ les serveurs de Fedora dédiés] ce qui est plus simple pour l'utilisateur, léger car tout le contenu du paquet n'est pas téléchargé et évite de polluer la base de données RPM avec des paquets qui ne serviront que temporairement.

Actuellement les fichiers ne sont conservés qu'une semaine en cache sur le disque dans le répertoire $HOME/.cache, mais cela est configurable ou peut être nettoyé à la main. Un minimum d'info est envoyé par HTTPS vers les serveurs de Fedora, pour essayer de conserver la confidentialité des utilisateurs : adresse IP, hash du contenu demandé, le nom du fichier source demandé, un User-Agent contenant l'architecture de la machine et la version de Fedora employée.

Projet Fedora

Le fichier /etc/os-release renvoie le nom du système comme Fedora Linux et non Fedora. Cela met en avant la distinction entre le projet Fedora et son écosystème comme et Copr par rapport au système lui même, qui s'appelle Fedora Linux maintenant. Les produits spécifiques gardent quant à eux la dénomination usuelle, par exemple Fedora Workstation n'est pas renommée car il n'y a pas de confusion possible.

Chez les plus anciens cela évoque la fusion des dépôts Core et Extras ayant mené au renommage de Fedora Core en Fedora pour la magnifique version 7, sortie en 2007, il y a 14 ans déjà.

La politique de choix du compilateur pour générer un paquet évolue pour laisser plus de latitude à l'empaqueteur. GCC ou Clang/LLVM peuvent être choisis par l'empaqueteur même si GCC est pleinement supporté ou non par le logiciel en question. Avant seulement GCC devait être utilisé, sauf si le projet ne gérait officiellement que Clang. Cette souplesse pour l'empaqueteur doit permettre de limiter la perte de temps en compilant le projet avec un compilateur qu'il maitrise mal, ou moins bien testé par le logiciel à compiler. Cette décision ne concerne pas le débogueur, ni l'éditeur de lien ou autres outils intervenant dans la chaine de compilation.

La politique pour les paquets de Python a été mise à jour pour favoriser le travail commun avec Python et les autres distributions. L'idée est que le nom employé par le répertoire d'installation du paquet corresponde au nom utilisé par la PyPI pour ce même projet, au lieu d'utiliser le nom du paquet RPM qui ne correspond pas toujours. Cela permet de mieux faire le lien entre les deux mondes et d'éviter les conflits avec des projets Python installés autrement que par RPM.

Par ailleurs, moins de paquets Python vont dépendre de python3-setuptools. En effet cet outil est de moins en moins utilisé par l'écosystème Python pour concevoir des paquets, au profit de poetry ou flit ce qui rendait cette dépendance systématique lourde et inutile.

Un nouveau paquet glibc-gconv-extra est ajouté pour prendre en charge les formats d'encodage en dehors de UTF-*, unicode, ISO-8859-1, ISO8859-15, CP1252 et ANSI_X3.110 pour gagner 8 Mio sur une image minimale. En effet seuls ces formats sont proposés par défaut avec Glibc. Cela permet aussi de plus facilement retirer des modules pour des encodages peu utilisés, et donc peu testés avec potentiellement des bogues et des failles associées. Seule l'image de compilation du projet Fedora ne l'installe pas par défaut pour l'instant.

Les paquets seront compilés sans -ffat-lto-objects par défaut, les paquets qui en ont besoin devront l'ajouter eux même. Avec cette option, les fichiers objets étaient compilés et optimisés avec un langage intermédiaire LTO et étaient compilés normalement en même temps. Cela permettait d'utiliser les objets optimisés par LTO ou non selon les besoins. Supprimer par défaut cette option permet de supprimer l'étape de la compilation normale, seuls les objets optimisés avec LTO sont générés et exploités. Du coup on gagne du temps de compilation pour le paquet et on réduit la charge sur les serveurs de compilation.

Import de la macro OpenSUSE pour définir la mémoire minimale nécessaire par constructeur du paquet durant le parallélisme :

%limit_build -m 8192

pour éviter que les gros projets comme ceph, chromium oumcrouter échouent par manque de mémoire disponible. Chromium peut par exemple en réclamer plus de 8 Gio en cas de compilation parallèle sur 4 cœurs à lui tout seul. Ces projets devaient jouer sur la variable _smp_build_ncpus pour réduire le nombre de CPUs disponibles pour limiter le pic de consommation mémoire, ce qui n'est pas très fiable d'une part, et 'autre part chaque mainteneur réinventait la roue sur le sujet ce qui dégradait les performances de compilation en dehors de ces pics mémoire importants.

Lors de la construction d'un paquet RPM, le chemin RPATH sera vérifié et pourra faire échouer la génération du paquet s'il ne respecte pas les consignes du projet Fedora. Certains logiciels utilisent cette variable pour bypasser l'éditeur de lien dynamique qui cherche les bibliothèques nécessaires à l'exécution du logiciel dans le système. Si cela peut être utile pour pointer vers des répertoires privées et de fait non standard, si cela est mal fait cela peut rendre la variable LD_LIBRARY_PATH inopérante pour l'utilisateur ou de présenter un risque de sécurité car le chemin pointé n'est pas géré par le système avec potentiellement un accès large en écriture.

N'est plus accepté :

  • Un RPATH pointant vers /usr/lib ou /usr/lib64 qui sont standards et donc redondants ;
  • Les chemins invalides ;
  • Les chemins relatifs pour des raisons de sécurité ;
  • Un chemin vide ;
  • Tout chemin contenant .. .

Les champs Release et changelog d'un paquet RPM peuvent être autogénérés par rpmautospec. Ces macros se basent sur les informations fournies par git pour définir la version et les changements opérés depuis la dernière fois, ce qui peut permettre de gagner du temps pour l'empaquetage des paquets en réduisant l'intervention manuelle.

La communauté francophone

L'association

Logo de Borsalinux-fr
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 Linux 35 ?

Fedora Media Writer
Fedora Media Writer

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