En ce mardi 30 avril 2019, les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de la version Fedora 30.
Fedora est une distribution communautaire développée par le projet Fedora et sponsorisée par RedHat, 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. Cliquez ici pour voir l’ensemble des contributions de RedHat.
[center][/center]
Expérience utilisateur
L'environnement de bureau par défaut de Fedora Workstation est mis à jour vers GNOME 3.32. Cette version apporte notamment :
[center][/center]
Le bureau léger LxQt bénéficie de la mise à jour vers la version 0.14.0. Le gestionnaire de fichier pcmanfm-qt qui peut afficher côte à côte le contenu de deux dossiers. Le bureau peut avoir des icônes interactives comme la corbeille, le dossier utilisateur ou le réseau. En plus de corrections plus mineures et d'une grande mise à jour des traductions.
Le nouvel environnement de bureau DeepinDE est proposé. Un bureau qui se veut moderne, performant, simple et élégant. L'interface est une synthèse des différentes interfaces. Il repose sur un dock situé en bas à la macOS, il dispose d'un panneau latéral pour les accès rapide et notifications comme pour Windows 10. Enfin l'ensemble des applications installées sont affichées sous forme de grille comme ce que propose GNOME. Pour l'installer vous devez installer le groupe Deepin Desktop.
Encore un nouvel environnement, Pantheon Desktop débarque dans Fedora. C'est celui utilisé par elementaryOS, qui réutilise les technologies de GNOME mais est écrit plutôt en Vala et se veut plus proche de l'expérience utilisateur de macOS. Pour l'installer vous devez installer le paquet pantheon-session-settings au minimum. Les applications ont un nom sous la forme elementary-*.
GnuGPG 2 devient l'implémentation de GPG par défaut. Le chemin /usr/bin/gpg pointe donc vers cette nouvelle version ce qui est plus conforme à l'expérience fournie par d'autres distributions. Si vous avez besoin de l'ancienne version pour des raisons de compatibilité, le chemin /usr/bin/gpg1 doit être explicitement mentionné.
Gestion du matériel
Pour les utilisateurs d'une carte graphique Intel et d'un ordinateur avec l'UEFI activé, l'affichage durant le démarrage est continu, sans remise à zéro de ce dernier. Cela rend l'expérience plus fluide et jolie. Le changement fait suite à celui introduit dans Fedora 29 pour qu'un ordinateur mono-système ait GRUB masqué par défaut. Le nouveau thème plymouth bgrt récupère également le logo du constructeur de l'ordinateur ou de la carte mère durant le démarrage. Si vous ne souhaitez pas voir ce logo, basculez vers le thème spinner. Vous pouvez regarder cette vidéo pour voir le changement en action et les explications en détails et la FAQ par Hans de Goede, son développeur.
Les architectures ARMv7 disposeront par défaut d'un démarrage en UEFI. Cela permet notamment de passer de U-boot à GRUB2 comme chargeur de démarrage ce qui unifie la procédure de démarrage pour l'ensemble des architectures et simplifie la maintenance et la cohérence de la distribution et des procédures fournies.
Internationalisation
Les groupes de composition des langues sont remplacés par les packs de langue. Ce dernier était utilisé depuis Fedora 24 pour installer les traductions des paquets nécessaires à l'utilisateur. Maintenant il gère également les entrées de saisie et les polices de caractères pour une expérience plus cohérente et simple, surtout pour les langues d'origines non latines. Pour rappel, pour bénéficier donc d'une meilleure expérience utilisateur en français, n'hésitez pas à installer le paquet langpacks-fr si cela n'est pas déjà fait.
Administration système
Mise à jour de Bash à la version 5.0. Cette version apporte notamment de nouvelles variables natives : BASH_ARGV0, EPOCHSECONDS et EPOCHREALTIME (qui a une granularité à la microseconde). La commande history peut supprimer des intervalles de l'historique ou prendre en charge des arguments négatifs pour les décalages. Les performances sont meilleures en cas d'appel avec un grand nombre d'arguments, et de nombreuses erreurs de gestion mémoire ont été corrigées. Enfin l'expansion des variables $@ et $* est plus conforme à la norme POSIX.
Le shell Fish évolue également à la version 3.0. Il est plus conforme avec la norme POSIX via l'ajout des instructions &&, || et ! en plus des équivalents en anglais présents jusque là. La commande wait a été également ajoutée. Un mode privé a été ajouté, disponible via l'argument --private qui n'enregistre pas les commandes dans l'historique et n'a également pas accès au contenu de celui-ci. En plus de tout ça, les performances ont été améliorées dans de nombreux scénarios.
L'outil Vagrant est à la version 2.2 maintenant. Il utilise maintenant par défaut qemu:///session au lieu de qemu:///system ce qui permet de s'en servir depuis n'importe quel utilisateur sans manipulation à faire en tant que super utilisateur au préalable. Il prend en charge également VirtualBox 6.0 et l'envoi de fichiers du système hôte vers le système invité.
DNF dispose de l'algorithme de compression zchunk en plus de xz ou gzip pour les métadonnées des dépôts. Ce qui permet la prise en charge des deltas pour optimiser la taille des téléchargements, pouvant passer de 60 Mio à moins de 5 Mio si la vérification est faite régulièrement.
[center][/center]
Par défaut les entrées de démarrage, pour choisir la version du noyau à lancer, va passer au format BootLoaderSpec par défaut. Ceci permettant de ne plus employer l'utilitaire grubby pour réaliser cette tâche car il est ancien et peu flexible. Il devait en effet se charger de la représentation interne de la configuration de GRUB, lilo, elilo, silo et yaboot. Le but est d'uniformiser la manière de représenter les noyaux à démarrer entre les architectures, car ils n'utilisent pas tous GRUB, en effet zipl est utilisé pour s390x et Petitboot pour ppc64le. Seule l'architecture ARMv7 n'est pas encore concernée, car U-boot ne gère pas ce format de représentation. Les entrées de démarrage sont donc situées dans le répertoire /boot/loader/entries/ et en cas de mise à niveau des scripts comme grub2-switch-to-blscfg font la conversion vers ce nouveau format automatiquement. Vous pouvez trouver plus d'explications sur cette conception et les raisons de cette mise en œuvre.
cryptsetup utilise dorénavant les métadonnées de LUKS2 par défaut. Cela ne concerne donc que les nouvelles installations nativement. Elle prend en charge la nouvelle fonction de dérivation de clé, Argon2, qui a été conçu pour mieux résister aux attaques par GPU. Il permet également à une application externe de peupler un jeton pour dire où retrouver le mot de passe. Le but étant que le jeton soit généré et vérifié par une carte à puce par exemple. Enfin les méta données sont agnostiques par rapport à l'algorithme de chiffrement, autorisant des mises à jour de ces derniers sans rupture de compatibilité pour une meilleure sécurité.
dbus-broker devient l'implémentation par défaut de DBus. Son objectif est de fournir une implémentation qui soit plus plus performante et fiable tout en gardant la compatibilité avec l'implémentation de référence. Cela passe par une utilisation plus intensive des API spécifiques à Linux pour rendre cela possible.
Il fournit en effet un moyen de limiter par défaut la consommation de ressources, comme la mémoire, entre les différents utilisateurs pour éviter qu'un seul monopolise toutes les ressources du système.
dbus-broker ne supprime plus silencieusement des messages et limite le nombre de situations où une telle action peut être prise. Il ne repose plus sur un mécanisme IPC (en étant un lui même) pour éviter les cas d'interblocages au niveau système.
Il passe également mieux à l'échelle en supprimant la plupart des structures globales ce qui diminue la taille de l'état et augmente les performances tout en réduisant le risque d'effets de bord.
FreeIPA n'est plus utilisable avec Python 2. Cela rejoint la décision prise par le projet en amont cette année, mais permet aussi d'accélérer la transition vers Python 3 en supprimant l'ensemble des paquets qui en dépendaient.
Suppression de beaucoup de paquets dépendants ou relatifs à Python 2, la fin approche et devrait arriver pour Fedora 31. Cela concerne ici les paquets ne contenant pas une application ou n'étant pas dépendants d'autres paquets existants. L'objectif est de limiter la rupture de compatibilité tout en simplifiant et amorçant la transition devenue nécessaire. Vous trouverez la liste des paquets concernés. Si pour vos développements vous aviez besoin d'un tel paquet, vous pouvez utiliser les environnements virtuels ou porter votre travail vers Python 3.
Le fichier /etc/sysconfig/nfs est maintenant obsolète en faveur de /etc/nfs.conf pour permettre la configuration depuis un point central. Cela met fin à une période de transition de près de 2 ans. L'objectif est donc de fournir un fichier de configuration unique ce qui simplifie la maintenance et l'automatisation de cette tâche via Ansible par exemple. Le nouveau fichier de configuration est aussi plus conforme à la philosophie derrière systemd, la configuration des démons se faisant par un fichier spécifique au lieu de fournir des arguments de ligne de commande directement. Enfin le nouveau système de configuration bénéficie de l'outil nfsconf qui vérifie la validité du fichier.
De nombreux outils sont dépréciés : Apache Avalon, Apache Jakarta Commons HTTP client, Apache Jakarta ORO et Regexp, Apache Maven branche 2.x et Sonatype OSS Parent. Ils ne sont en effet plus maintenus depuis un moment et cette étape permet d'amorcer la transition pour leur suppression définitive des dépôts, avec les éventuels paquets qui en dépendent. En effet, plus aucun nouveau paquet, ni une mise à jour d'un paquet existant, ne peut les ajouter en tant que dépendance.
MongoDB est supprimé, la licence nouvellement adoptée SSPL n'étant pas considérée comme libre par le projet. Le projet a refusé de garder la dernière version distribuée sous licence AGPL, pour des raisons de maintenance de sécurité qui serait difficile de fournir en l'état.
En cas de connexion distante via SSH, l'information sur la langue à utiliser est toujours propagée du client vers le serveur pour la session en cours. Maintenant, si la machine distante ne dispose pas de la langue cible, C.UTF-8 sera demandée. Cela peut arriver si le client utilise LANG=fr_FR.UTF-8 pour se connecter dans un conteneur qui ne dispose que de en_EN.UTF-8. L'objectif est de limiter les erreurs dans certains outils ou dans l'affichage en utilisant toujours une langue supportée par le système cible.
[center][/center]
Kerberos modernise son support des algorithmes cryptographiques en supprimant la gestion de DES, 3DES, crc-32, et MD4 pour les clés de session ou clés à long terme. MD5 et RC4 sont marqués comme obsolètes et dangereux en attendant une suppression ultérieurement. Pour activer ces derniers, il faudra tout de même ajouter la ligne allow_weak_crypto = True dans le fichier de configuration /etc/krb5.conf. Il y a une documentation pour migrer votre installation existante si elle est concernée par ce changement.
Pour ceux intéressés par le standard SWID, l'outil OpenScap est fourni. Cet outil permet de gérer les drapeaux liés à des paquets RPM, des installations de Fedora ou ses dépôts. Son utilisation apporte de la traçabilité, l'utilisateur pouvant créer ses propres drapeaux pour ses paquets par exemple. Il peut également lister les paquets correspondant à un drapeau par exemple via dnf.
Développement
Mise à jour de GCC qui fait du 9. Cette version apporte un support partiel de OpenMP 5.0 et un début de prise en charge de la norme à venir C++2a. La mise en page de la sortie d'erreur est encore plus claire qu'avant pour simplifier leur lecture et la correction par le développeur. De nombreuses nouvelles alertes ont été ajoutées pour signaler au développeur plus de comportements à corriger dans son code. Avec l'option -fdiagnostics-format=json il est possible d'obtenir la sortie dans un format plus simple à interpréter par un programme. Quelques nouvelles optimisations du code généré sont également proposées, notamment pour certaines instructions switch.
Glibc n'est pas en reste avec la version 2.29. Les fonctions mathématiques et trigonométriques de base reçoivent de légères optimisations en terme de performance. La bibliothèque propose une interface pour appeler la fonction getcpu() sous Linux, évitant de devoir appeler la fonction indirectement via syscall(). En plus de quelques corrections plus mineures, dont de sécurité.
Petit coup de Boost à la version 1.69. Cette montée en version repose essentiellement sur de la correction de bogues. Deux nouvelles bibliothèques sont proposées, Safe Numerics pour avoir une arithmétique garantie correcte sur les entiers et YAP pour exprimer les templates. Les deux étant prévues pour C++14 ou supérieur.
Les fonctions obsolètes et non sûres de libcrypt sont supprimées et encrypt, encrypt_r, setkey, setkey_r, and fcrypt renvoient une erreur systématiquement. En effet ces fonctions ne sont plus considérées comme sûres pour effectuer des opérations de sécurité. Par conséquent la bibliothèque libcrypt.so.2 ne propose plus les fonctions mentionnées avant. Pour des raisons de compatibilité POSIX, il est possible d'installer la bibliothèque libcrypt.so.1 via le paquet libxcrypt-compat. Si ce dernier implémente ces fonctions, elles renvoient toutes une erreur avec la variable errno mis à ENOSYS et les éventuels tampons remplis de valeurs aléatoires pour des raison de sécurité.
Mise à jour de Ruby qui vaut 2.6 carats. Cette version propose un début d'implémentation d'un compilateur juste à temps ce qui permet un gain de performances du code Ruby. Il propose aussi à titre expérimental le module RubyVM::AST pour parcourir les noeuds de l'arbre syntaxique abstrait d'un code Ruby. En plus de ceci certaines fonctions bénéficient d'un gain de performances et quelques ajouts mineurs sont proposés tout en gardant une compatibilité ascendante.
Les programmes Java pourront danser dans la machine virtuelle OpenJDK 12. Elle apporte entre autre l'instruction switch comme une expression pour simplifier le code en évitant de créer une fonction ad-hoc pour cela tout en simplifiant l'écriture. La gestion d'UNICODE 11 est également de la partie.
Le langage de l'éléphant PHP impose sa version 7.3. Les syntaxes Heredoc et Nowdoc pour déclarer une chaine de caractères sont plus flexibles pour gérer notamment l'indentation en fin de déclaration. Il est possible de vérifier si un élément est énumérable via la fonction is_countable() pour éviter l'appel à count() inutilement dans ce cas. Pour la gestion des expressions régulières, le moteur passe de PCRE à PCRE2.
Go avance à la version 1.12. De grands efforts ont été faits pour améliorer les performances, dont l’éligibilité plus large des fonctions à l'inlining. Il est possible de compiler un programme Go en demandant la version de Go à employer. Au niveau de la sécurité, le protocole TLS version 1.3 est proposé. Notons que l'ABI employé a changé légèrement ce qui peut causer des soucis de compatibilités si jamais le programme fait appel directement à de l'assembleur.
L'environnement d'Erlang passe à la version 21. L'amélioration des performances esamét au rendez-vous, l'interpréteur BEAM a été réécrit pour diminuer l'usage de la mémoire en augmentant la vitesse d'exécution alors que le compilateur maison bénéficie de performances augmentées de l'ordre de 10-20%. Les instructions d'entrées/sorties ont également été améliorées en ce sens. Enfin la bibliothèque zlib peut être utilisée en situation de parallélisme. Les bibliothèques liées à CORBA sont séparées dans de nouveaux dépôts tandis que les fonctions cryptographiques obsolètes ont été supprimées.
Le compilateur Haskell GHC et Stackage LTS passent respectivement à la version 8.4 et 12. La génération du code a été améliorée afin d'augmenter les performances. TypeInType a des messages d'erreurs bien plus claires maintenant. Ainsi qu'une longue liste de 300 bogues corrigés.
[center][/center]
Python progressbar2 devient la version de référence pour le module des barres de progressions. En effet, le premier dérive du second mais il est mieux maintenu et propose plus de fonctionnalités dans l'affichage tout en restant rétrocompatible. D'où la décision de proposer la version 2 comme celle de référence.
La compilation de modules Python dans Fedora sera plus proche de ce qui se fait en amont sans nécessiter de recourir à des outils tel que redhat-rpm-macros pour cela. Le but est de séparer les drapeaux de compilations nécessaires à Python et ses extensions et ceux fournis par Fedora. Cependant cela signifie que les drapeaux utilisés par les paquets de Fedora, comme la position indépendante du code, ne sera pas disponible nativement pour la compilation de telles extensions. Les développeurs doivent donc gérer ce genre d'options par eux mêmes.
Projet Fedora
L'environnement de compilation minimal ne dépend plus du paquet glibc-all-langpacks pour gagner en poids, de l'ordre de 17%. Cela rendra la construction de paquet plus rapide et moins gourmande en ressources.
La compilation des programmes Python est en deuxième phase de réécriture pour reposer sur moins d'hypothèses. Ce travail avait débuté pour Fedora 29. L'objectif est d'être plus fiable et plus maintenable.
Les drapeaux group des paquets sont supprimés pour près de 9600 d'entre eux. Depuis mars 2017 il ne fallait plus les utiliser. En effet ils servaient à définir la catégorie du paquet pour simplifier la représentation hiérarchique dans les installateurs. Par exemple le paquet LibreOffice pouvait être dans le groupe Applications/Spreadsheets pour que yumex par exemple le propose si l'utilisateur va dans cette catégorie d'applications. Mais cette fonctionnalité a été avantageusement remplacée par Fedora comps et les groupes d'applications que dnf exploite depuis.
L'édition de lien supprime tous les liens excessifs entre les bibliothèques et les exécutables. En effet, l'argument --as-needed est envoyé par défaut à l'éditeur de liens. Seules les bibliothèques réellement nécessaires pour l'exécutable sont liées, ce qui améliore les performances au lancement de l'application, que ce soit en chargeant moins de données depuis l'espace de stockage mais aussi en évitant l'initialisation complet d'un framework pour rien. Les métadonnées relatives à cette compilation sont également réduites.
Les scriptlets qui étaient obsolètes sont supprimés comme ldconfig ou gtk-update-icon-cache. L'objectif est de gagner du temps à l'installation des paquets et de générer des paquets plus rapidement, tout ceci pour des étapes qui ne sont plus nécessaires.
[center][/center]
Le projet améliore la façon d'avoir des statistiques sur l'utilisation de Fedora. L'objectif est de connaître plus finement le nombre de machines employant Fedora, mais aussi avoir des informations sur la version utilisée, sa variante (comme le Spins), etc. Ce qui permet à l'équipe qualité mais aussi au projet dans son ensemble de baser leurs décisions sur des données factuelles.
Actuellement le tout reposait sur la collecte de données des différents miroirs pour connaître le nombre d'installation en vigueur ce qui n'était pas fiable, à cause du fait que derrière une adresse IP peut se cacher plusieurs installations. Et cette méthode était plutôt lente pour remonter les informations.
Et il fallait trouver un moyen qui garantisse un respect de la vie privée maximale ce qui n'autorise pas l'utilisation d'un identifiant unique par installation qui pourrait servir à suivre un utilisateur pour d'autres fins. Et bien évidemment, il faut que le mécanisme fonctionne si l'utilisateur utilise dnf, GNOME Logiciels ou Cockpit par exemple pour gérer ses paquets.
Pour éviter cela, tous les 7 jours lors d'une requête vers un dépôt, libdnf va envoyer la chaîne libdnf/VERSION (NAME VERSION_ID; VARIANT_ID;OS.BASEARCH) comme user agent et incrémenter un compteur interne. Cela permettra d'obtenir les informations suffisantes à savoir la version de Fedora, la variante utilisée et l'architecture. L'user agent peut être changé via l'option user_agent dans le fichier de configuration de dnf. Cette fonctionnalité est également désactivable avec l'aide de l'option countme dans ce même fichier qui est configuré à False. Cette option étant activée par défaut.
Les shebangs Python ambigus concernant la version de Python à employer génèrent des erreurs. #!/usr/bin/python devant devenir #!/usr/bin/python2 ou #!/usr/bin/python3 dans les paquets fournis par Fedora; ceci est fait pour forcer la transition propre vers Python3 qui doit intervenir d’ici janvier. Cela ne concerne pas les scripts Python de l’utilisateur.
Activation de Python Generators par défaut. Ceci est la généralisation de la nouveauté de Fedora 28. Ainsi un empaqueteur n'a plus à spécifier dans le paquet RPM les dépendances Python nécessaires à l'exécution du paquet. Et l'utilisateur ne se retrouvera pas avec une erreur en cas d'oubli de la dite dépendance car résolue en amont.
La communauté francophone
L'association
[center][/center]
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 :
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).
Au début de l'année 2019, Borsalinux-fr a tenu une Assemblée Générale pour renouveler le conseil d'administration pour deux ans. Bravo à eux et bon mandat !
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 et Édouard Duliège 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.
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. Afin de vous faire connaître, n'hésitez pas à utiliser le forum ou les listes de diffusion.
Comment se procurer Fedora 30 ?
[center][/center]
Si vous avez déjà Fedora 28 ou 29 sur votre machine, vous pouvez faire une mise à niveau vers Fedora 30. 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.
Liens
Fedora est une distribution communautaire développée par le projet Fedora et sponsorisée par RedHat, 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. Cliquez ici pour voir l’ensemble des contributions de RedHat.
[center][/center]
Expérience utilisateur
L'environnement de bureau par défaut de Fedora Workstation est mis à jour vers GNOME 3.32. Cette version apporte notamment :
- Un rafraichissement du thème graphique, qui est un peu plus arrondi ;
- Par ailleurs, les icônes ont été profondément remaniées abandonnant le style très réaliste pour un style plus sobre et plus simple à dessiner ;
- GNOME avec Wayland prend en charge maintenant les ratios non entiers des affichages à haute densité de pixels (HiDPI), ce qui rendra l'affichage plus propre pour les machines concernées ;
- Il y a eu beaucoup de nettoyages et d'optimisations pour rendre le bureau moins gourmand en ressources graphiques et processeur. Les opérations de recherche notamment sont concernées ou la gestion des fichiers sur Google Drive ;
- Le clavier virtuel prend en charge les émojis ;
- Le navigateur officiel Web, anciennement Epiphany gère les gestes du touchpad ;
- Les paramètres ont été améliorées. Le menu son a un affichage vertical, plus conforme avec les autres, le mode nuit peut utiliser des couleurs plus chaudes ou froides que celles par défaut et on peut enfin paramétrer les permissions des applications Flatpak.
[center][/center]
Le bureau léger LxQt bénéficie de la mise à jour vers la version 0.14.0. Le gestionnaire de fichier pcmanfm-qt qui peut afficher côte à côte le contenu de deux dossiers. Le bureau peut avoir des icônes interactives comme la corbeille, le dossier utilisateur ou le réseau. En plus de corrections plus mineures et d'une grande mise à jour des traductions.
Le nouvel environnement de bureau DeepinDE est proposé. Un bureau qui se veut moderne, performant, simple et élégant. L'interface est une synthèse des différentes interfaces. Il repose sur un dock situé en bas à la macOS, il dispose d'un panneau latéral pour les accès rapide et notifications comme pour Windows 10. Enfin l'ensemble des applications installées sont affichées sous forme de grille comme ce que propose GNOME. Pour l'installer vous devez installer le groupe Deepin Desktop.
Encore un nouvel environnement, Pantheon Desktop débarque dans Fedora. C'est celui utilisé par elementaryOS, qui réutilise les technologies de GNOME mais est écrit plutôt en Vala et se veut plus proche de l'expérience utilisateur de macOS. Pour l'installer vous devez installer le paquet pantheon-session-settings au minimum. Les applications ont un nom sous la forme elementary-*.
GnuGPG 2 devient l'implémentation de GPG par défaut. Le chemin /usr/bin/gpg pointe donc vers cette nouvelle version ce qui est plus conforme à l'expérience fournie par d'autres distributions. Si vous avez besoin de l'ancienne version pour des raisons de compatibilité, le chemin /usr/bin/gpg1 doit être explicitement mentionné.
Gestion du matériel
Pour les utilisateurs d'une carte graphique Intel et d'un ordinateur avec l'UEFI activé, l'affichage durant le démarrage est continu, sans remise à zéro de ce dernier. Cela rend l'expérience plus fluide et jolie. Le changement fait suite à celui introduit dans Fedora 29 pour qu'un ordinateur mono-système ait GRUB masqué par défaut. Le nouveau thème plymouth bgrt récupère également le logo du constructeur de l'ordinateur ou de la carte mère durant le démarrage. Si vous ne souhaitez pas voir ce logo, basculez vers le thème spinner. Vous pouvez regarder cette vidéo pour voir le changement en action et les explications en détails et la FAQ par Hans de Goede, son développeur.
Les architectures ARMv7 disposeront par défaut d'un démarrage en UEFI. Cela permet notamment de passer de U-boot à GRUB2 comme chargeur de démarrage ce qui unifie la procédure de démarrage pour l'ensemble des architectures et simplifie la maintenance et la cohérence de la distribution et des procédures fournies.
Internationalisation
Les groupes de composition des langues sont remplacés par les packs de langue. Ce dernier était utilisé depuis Fedora 24 pour installer les traductions des paquets nécessaires à l'utilisateur. Maintenant il gère également les entrées de saisie et les polices de caractères pour une expérience plus cohérente et simple, surtout pour les langues d'origines non latines. Pour rappel, pour bénéficier donc d'une meilleure expérience utilisateur en français, n'hésitez pas à installer le paquet langpacks-fr si cela n'est pas déjà fait.
Administration système
Mise à jour de Bash à la version 5.0. Cette version apporte notamment de nouvelles variables natives : BASH_ARGV0, EPOCHSECONDS et EPOCHREALTIME (qui a une granularité à la microseconde). La commande history peut supprimer des intervalles de l'historique ou prendre en charge des arguments négatifs pour les décalages. Les performances sont meilleures en cas d'appel avec un grand nombre d'arguments, et de nombreuses erreurs de gestion mémoire ont été corrigées. Enfin l'expansion des variables $@ et $* est plus conforme à la norme POSIX.
Le shell Fish évolue également à la version 3.0. Il est plus conforme avec la norme POSIX via l'ajout des instructions &&, || et ! en plus des équivalents en anglais présents jusque là. La commande wait a été également ajoutée. Un mode privé a été ajouté, disponible via l'argument --private qui n'enregistre pas les commandes dans l'historique et n'a également pas accès au contenu de celui-ci. En plus de tout ça, les performances ont été améliorées dans de nombreux scénarios.
L'outil Vagrant est à la version 2.2 maintenant. Il utilise maintenant par défaut qemu:///session au lieu de qemu:///system ce qui permet de s'en servir depuis n'importe quel utilisateur sans manipulation à faire en tant que super utilisateur au préalable. Il prend en charge également VirtualBox 6.0 et l'envoi de fichiers du système hôte vers le système invité.
DNF dispose de l'algorithme de compression zchunk en plus de xz ou gzip pour les métadonnées des dépôts. Ce qui permet la prise en charge des deltas pour optimiser la taille des téléchargements, pouvant passer de 60 Mio à moins de 5 Mio si la vérification est faite régulièrement.
[center][/center]
Par défaut les entrées de démarrage, pour choisir la version du noyau à lancer, va passer au format BootLoaderSpec par défaut. Ceci permettant de ne plus employer l'utilitaire grubby pour réaliser cette tâche car il est ancien et peu flexible. Il devait en effet se charger de la représentation interne de la configuration de GRUB, lilo, elilo, silo et yaboot. Le but est d'uniformiser la manière de représenter les noyaux à démarrer entre les architectures, car ils n'utilisent pas tous GRUB, en effet zipl est utilisé pour s390x et Petitboot pour ppc64le. Seule l'architecture ARMv7 n'est pas encore concernée, car U-boot ne gère pas ce format de représentation. Les entrées de démarrage sont donc situées dans le répertoire /boot/loader/entries/ et en cas de mise à niveau des scripts comme grub2-switch-to-blscfg font la conversion vers ce nouveau format automatiquement. Vous pouvez trouver plus d'explications sur cette conception et les raisons de cette mise en œuvre.
cryptsetup utilise dorénavant les métadonnées de LUKS2 par défaut. Cela ne concerne donc que les nouvelles installations nativement. Elle prend en charge la nouvelle fonction de dérivation de clé, Argon2, qui a été conçu pour mieux résister aux attaques par GPU. Il permet également à une application externe de peupler un jeton pour dire où retrouver le mot de passe. Le but étant que le jeton soit généré et vérifié par une carte à puce par exemple. Enfin les méta données sont agnostiques par rapport à l'algorithme de chiffrement, autorisant des mises à jour de ces derniers sans rupture de compatibilité pour une meilleure sécurité.
dbus-broker devient l'implémentation par défaut de DBus. Son objectif est de fournir une implémentation qui soit plus plus performante et fiable tout en gardant la compatibilité avec l'implémentation de référence. Cela passe par une utilisation plus intensive des API spécifiques à Linux pour rendre cela possible.
Il fournit en effet un moyen de limiter par défaut la consommation de ressources, comme la mémoire, entre les différents utilisateurs pour éviter qu'un seul monopolise toutes les ressources du système.
dbus-broker ne supprime plus silencieusement des messages et limite le nombre de situations où une telle action peut être prise. Il ne repose plus sur un mécanisme IPC (en étant un lui même) pour éviter les cas d'interblocages au niveau système.
Il passe également mieux à l'échelle en supprimant la plupart des structures globales ce qui diminue la taille de l'état et augmente les performances tout en réduisant le risque d'effets de bord.
FreeIPA n'est plus utilisable avec Python 2. Cela rejoint la décision prise par le projet en amont cette année, mais permet aussi d'accélérer la transition vers Python 3 en supprimant l'ensemble des paquets qui en dépendaient.
Suppression de beaucoup de paquets dépendants ou relatifs à Python 2, la fin approche et devrait arriver pour Fedora 31. Cela concerne ici les paquets ne contenant pas une application ou n'étant pas dépendants d'autres paquets existants. L'objectif est de limiter la rupture de compatibilité tout en simplifiant et amorçant la transition devenue nécessaire. Vous trouverez la liste des paquets concernés. Si pour vos développements vous aviez besoin d'un tel paquet, vous pouvez utiliser les environnements virtuels ou porter votre travail vers Python 3.
Le fichier /etc/sysconfig/nfs est maintenant obsolète en faveur de /etc/nfs.conf pour permettre la configuration depuis un point central. Cela met fin à une période de transition de près de 2 ans. L'objectif est donc de fournir un fichier de configuration unique ce qui simplifie la maintenance et l'automatisation de cette tâche via Ansible par exemple. Le nouveau fichier de configuration est aussi plus conforme à la philosophie derrière systemd, la configuration des démons se faisant par un fichier spécifique au lieu de fournir des arguments de ligne de commande directement. Enfin le nouveau système de configuration bénéficie de l'outil nfsconf qui vérifie la validité du fichier.
De nombreux outils sont dépréciés : Apache Avalon, Apache Jakarta Commons HTTP client, Apache Jakarta ORO et Regexp, Apache Maven branche 2.x et Sonatype OSS Parent. Ils ne sont en effet plus maintenus depuis un moment et cette étape permet d'amorcer la transition pour leur suppression définitive des dépôts, avec les éventuels paquets qui en dépendent. En effet, plus aucun nouveau paquet, ni une mise à jour d'un paquet existant, ne peut les ajouter en tant que dépendance.
MongoDB est supprimé, la licence nouvellement adoptée SSPL n'étant pas considérée comme libre par le projet. Le projet a refusé de garder la dernière version distribuée sous licence AGPL, pour des raisons de maintenance de sécurité qui serait difficile de fournir en l'état.
En cas de connexion distante via SSH, l'information sur la langue à utiliser est toujours propagée du client vers le serveur pour la session en cours. Maintenant, si la machine distante ne dispose pas de la langue cible, C.UTF-8 sera demandée. Cela peut arriver si le client utilise LANG=fr_FR.UTF-8 pour se connecter dans un conteneur qui ne dispose que de en_EN.UTF-8. L'objectif est de limiter les erreurs dans certains outils ou dans l'affichage en utilisant toujours une langue supportée par le système cible.
[center][/center]
Kerberos modernise son support des algorithmes cryptographiques en supprimant la gestion de DES, 3DES, crc-32, et MD4 pour les clés de session ou clés à long terme. MD5 et RC4 sont marqués comme obsolètes et dangereux en attendant une suppression ultérieurement. Pour activer ces derniers, il faudra tout de même ajouter la ligne allow_weak_crypto = True dans le fichier de configuration /etc/krb5.conf. Il y a une documentation pour migrer votre installation existante si elle est concernée par ce changement.
Pour ceux intéressés par le standard SWID, l'outil OpenScap est fourni. Cet outil permet de gérer les drapeaux liés à des paquets RPM, des installations de Fedora ou ses dépôts. Son utilisation apporte de la traçabilité, l'utilisateur pouvant créer ses propres drapeaux pour ses paquets par exemple. Il peut également lister les paquets correspondant à un drapeau par exemple via dnf.
Développement
Mise à jour de GCC qui fait du 9. Cette version apporte un support partiel de OpenMP 5.0 et un début de prise en charge de la norme à venir C++2a. La mise en page de la sortie d'erreur est encore plus claire qu'avant pour simplifier leur lecture et la correction par le développeur. De nombreuses nouvelles alertes ont été ajoutées pour signaler au développeur plus de comportements à corriger dans son code. Avec l'option -fdiagnostics-format=json il est possible d'obtenir la sortie dans un format plus simple à interpréter par un programme. Quelques nouvelles optimisations du code généré sont également proposées, notamment pour certaines instructions switch.
Glibc n'est pas en reste avec la version 2.29. Les fonctions mathématiques et trigonométriques de base reçoivent de légères optimisations en terme de performance. La bibliothèque propose une interface pour appeler la fonction getcpu() sous Linux, évitant de devoir appeler la fonction indirectement via syscall(). En plus de quelques corrections plus mineures, dont de sécurité.
Petit coup de Boost à la version 1.69. Cette montée en version repose essentiellement sur de la correction de bogues. Deux nouvelles bibliothèques sont proposées, Safe Numerics pour avoir une arithmétique garantie correcte sur les entiers et YAP pour exprimer les templates. Les deux étant prévues pour C++14 ou supérieur.
Les fonctions obsolètes et non sûres de libcrypt sont supprimées et encrypt, encrypt_r, setkey, setkey_r, and fcrypt renvoient une erreur systématiquement. En effet ces fonctions ne sont plus considérées comme sûres pour effectuer des opérations de sécurité. Par conséquent la bibliothèque libcrypt.so.2 ne propose plus les fonctions mentionnées avant. Pour des raisons de compatibilité POSIX, il est possible d'installer la bibliothèque libcrypt.so.1 via le paquet libxcrypt-compat. Si ce dernier implémente ces fonctions, elles renvoient toutes une erreur avec la variable errno mis à ENOSYS et les éventuels tampons remplis de valeurs aléatoires pour des raison de sécurité.
Mise à jour de Ruby qui vaut 2.6 carats. Cette version propose un début d'implémentation d'un compilateur juste à temps ce qui permet un gain de performances du code Ruby. Il propose aussi à titre expérimental le module RubyVM::AST pour parcourir les noeuds de l'arbre syntaxique abstrait d'un code Ruby. En plus de ceci certaines fonctions bénéficient d'un gain de performances et quelques ajouts mineurs sont proposés tout en gardant une compatibilité ascendante.
Les programmes Java pourront danser dans la machine virtuelle OpenJDK 12. Elle apporte entre autre l'instruction switch comme une expression pour simplifier le code en évitant de créer une fonction ad-hoc pour cela tout en simplifiant l'écriture. La gestion d'UNICODE 11 est également de la partie.
Le langage de l'éléphant PHP impose sa version 7.3. Les syntaxes Heredoc et Nowdoc pour déclarer une chaine de caractères sont plus flexibles pour gérer notamment l'indentation en fin de déclaration. Il est possible de vérifier si un élément est énumérable via la fonction is_countable() pour éviter l'appel à count() inutilement dans ce cas. Pour la gestion des expressions régulières, le moteur passe de PCRE à PCRE2.
Go avance à la version 1.12. De grands efforts ont été faits pour améliorer les performances, dont l’éligibilité plus large des fonctions à l'inlining. Il est possible de compiler un programme Go en demandant la version de Go à employer. Au niveau de la sécurité, le protocole TLS version 1.3 est proposé. Notons que l'ABI employé a changé légèrement ce qui peut causer des soucis de compatibilités si jamais le programme fait appel directement à de l'assembleur.
L'environnement d'Erlang passe à la version 21. L'amélioration des performances esamét au rendez-vous, l'interpréteur BEAM a été réécrit pour diminuer l'usage de la mémoire en augmentant la vitesse d'exécution alors que le compilateur maison bénéficie de performances augmentées de l'ordre de 10-20%. Les instructions d'entrées/sorties ont également été améliorées en ce sens. Enfin la bibliothèque zlib peut être utilisée en situation de parallélisme. Les bibliothèques liées à CORBA sont séparées dans de nouveaux dépôts tandis que les fonctions cryptographiques obsolètes ont été supprimées.
Le compilateur Haskell GHC et Stackage LTS passent respectivement à la version 8.4 et 12. La génération du code a été améliorée afin d'augmenter les performances. TypeInType a des messages d'erreurs bien plus claires maintenant. Ainsi qu'une longue liste de 300 bogues corrigés.
[center][/center]
Python progressbar2 devient la version de référence pour le module des barres de progressions. En effet, le premier dérive du second mais il est mieux maintenu et propose plus de fonctionnalités dans l'affichage tout en restant rétrocompatible. D'où la décision de proposer la version 2 comme celle de référence.
La compilation de modules Python dans Fedora sera plus proche de ce qui se fait en amont sans nécessiter de recourir à des outils tel que redhat-rpm-macros pour cela. Le but est de séparer les drapeaux de compilations nécessaires à Python et ses extensions et ceux fournis par Fedora. Cependant cela signifie que les drapeaux utilisés par les paquets de Fedora, comme la position indépendante du code, ne sera pas disponible nativement pour la compilation de telles extensions. Les développeurs doivent donc gérer ce genre d'options par eux mêmes.
Projet Fedora
L'environnement de compilation minimal ne dépend plus du paquet glibc-all-langpacks pour gagner en poids, de l'ordre de 17%. Cela rendra la construction de paquet plus rapide et moins gourmande en ressources.
La compilation des programmes Python est en deuxième phase de réécriture pour reposer sur moins d'hypothèses. Ce travail avait débuté pour Fedora 29. L'objectif est d'être plus fiable et plus maintenable.
Les drapeaux group des paquets sont supprimés pour près de 9600 d'entre eux. Depuis mars 2017 il ne fallait plus les utiliser. En effet ils servaient à définir la catégorie du paquet pour simplifier la représentation hiérarchique dans les installateurs. Par exemple le paquet LibreOffice pouvait être dans le groupe Applications/Spreadsheets pour que yumex par exemple le propose si l'utilisateur va dans cette catégorie d'applications. Mais cette fonctionnalité a été avantageusement remplacée par Fedora comps et les groupes d'applications que dnf exploite depuis.
L'édition de lien supprime tous les liens excessifs entre les bibliothèques et les exécutables. En effet, l'argument --as-needed est envoyé par défaut à l'éditeur de liens. Seules les bibliothèques réellement nécessaires pour l'exécutable sont liées, ce qui améliore les performances au lancement de l'application, que ce soit en chargeant moins de données depuis l'espace de stockage mais aussi en évitant l'initialisation complet d'un framework pour rien. Les métadonnées relatives à cette compilation sont également réduites.
Les scriptlets qui étaient obsolètes sont supprimés comme ldconfig ou gtk-update-icon-cache. L'objectif est de gagner du temps à l'installation des paquets et de générer des paquets plus rapidement, tout ceci pour des étapes qui ne sont plus nécessaires.
[center][/center]
Le projet améliore la façon d'avoir des statistiques sur l'utilisation de Fedora. L'objectif est de connaître plus finement le nombre de machines employant Fedora, mais aussi avoir des informations sur la version utilisée, sa variante (comme le Spins), etc. Ce qui permet à l'équipe qualité mais aussi au projet dans son ensemble de baser leurs décisions sur des données factuelles.
Actuellement le tout reposait sur la collecte de données des différents miroirs pour connaître le nombre d'installation en vigueur ce qui n'était pas fiable, à cause du fait que derrière une adresse IP peut se cacher plusieurs installations. Et cette méthode était plutôt lente pour remonter les informations.
Et il fallait trouver un moyen qui garantisse un respect de la vie privée maximale ce qui n'autorise pas l'utilisation d'un identifiant unique par installation qui pourrait servir à suivre un utilisateur pour d'autres fins. Et bien évidemment, il faut que le mécanisme fonctionne si l'utilisateur utilise dnf, GNOME Logiciels ou Cockpit par exemple pour gérer ses paquets.
Pour éviter cela, tous les 7 jours lors d'une requête vers un dépôt, libdnf va envoyer la chaîne libdnf/VERSION (NAME VERSION_ID; VARIANT_ID;OS.BASEARCH) comme user agent et incrémenter un compteur interne. Cela permettra d'obtenir les informations suffisantes à savoir la version de Fedora, la variante utilisée et l'architecture. L'user agent peut être changé via l'option user_agent dans le fichier de configuration de dnf. Cette fonctionnalité est également désactivable avec l'aide de l'option countme dans ce même fichier qui est configuré à False. Cette option étant activée par défaut.
Les shebangs Python ambigus concernant la version de Python à employer génèrent des erreurs. #!/usr/bin/python devant devenir #!/usr/bin/python2 ou #!/usr/bin/python3 dans les paquets fournis par Fedora; ceci est fait pour forcer la transition propre vers Python3 qui doit intervenir d’ici janvier. Cela ne concerne pas les scripts Python de l’utilisateur.
Activation de Python Generators par défaut. Ceci est la généralisation de la nouveauté de Fedora 28. Ainsi un empaqueteur n'a plus à spécifier dans le paquet RPM les dépendances Python nécessaires à l'exécution du paquet. Et l'utilisateur ne se retrouvera pas avec une erreur en cas d'oubli de la dite dépendance car résolue en amont.
La communauté francophone
L'association
[center][/center]
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.
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).
Au début de l'année 2019, Borsalinux-fr a tenu une Assemblée Générale pour renouveler le conseil d'administration pour deux ans. Bravo à eux et bon mandat !
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 et Édouard Duliège 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.
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. Afin de vous faire connaître, n'hésitez pas à utiliser le forum ou les listes de diffusion.
Comment se procurer Fedora 30 ?
[center][/center]
Si vous avez déjà Fedora 28 ou 29 sur votre machine, vous pouvez faire une mise à niveau vers Fedora 30. 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.
Liens