En ce mardi 11 juillet 2017, le projet Fedora est fier d’annoncer la sortie de la distribution GNU/Linux Fedora 26.

Fedora est une distribution communautaire développée par le projet éponyme 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.

Sommaire

Environnement bureautique

L’environnement bureautique par défaut, GNOME, évolue à la version 3.24. Cette version propose entre autres :

les icônes du projet GNOME ont été redessinées, pour être plus grandes et modernes ;

la mise à disposition du mode nuit, pour que les couleurs de l’interface passent progressivement au rouge durant la nuit pour prévenir la fatigue oculaire ;

un rafraîchissement de l’interface du centre de configuration, pour la simplifier et la rendre plus cohérente avec le reste : par exemple, vous pourrez voir le niveau d’encre de vos imprimantes sans avoir à les sélectionner ;

la nouvelle application Recettes, pour lire, rédiger ou évaluer des recettes de cuisine ;

les tablettes Wacom sont prises en charge sous Wayland et leur configuration a été raffinée ;

la zone de notification a été améliorée et propose en plus les informations météorologiques ;

des corrections et des nouvelles fonctionnalités dans les applications Photos, Web, Polari, Builder, etc.

Utilisation de l’interface graphique de blivet pour le partitionnement dans l’installateur Anaconda, en plus de l’interface traditionnelle. L’objectif est de fournir une autre approche pour cette étape cruciale afin de satisfaire les besoins du plus grand nombre, c’est pourquoi l’interface traditionnelle reste disponible. L’approche d’Anaconda était top‐down, à savoir que l’utilisateur définissait ses points de montage et ses propriétés afin qu’Anaconda définisse les partitions correspondantes et leur agencement. Avec blivet, c’est plutôt l’inverse car les disques et leurs états sont affichés pour que l’utilisateur puisse concevoir les partitions et volumes logiques avant de définir à la fin les points de montage. Cette interface est donc plus proche de ce que propose GParted.

Le pilote Synaptics pour les pavés tactiles, dans les sessions Xorg, est remplacé par libinput. Le paquet xorg-x11-drv-synaptics est donc supprimé par défaut, mais reste disponible dans les dépôts pour ceux qui le souhaitent. L’objectif est de mutualiser cette partie avec Wayland (qui repose sur libinput également) et de bénéficier de ses options de configuration et autres fonctionnalités comme la gestion des gestes (comme zoomer en pinçant) et du multi‐point.

Création d’une image dédiée (dite spin) avec l’environnement LXQt par défaut. Cet environnement de bureau repose sur la bibliothèque Qt, tout comme KDE par exemple, et était disponible depuis Fedora 22 dans les dépôts. Cet environnement se veut cependant plus léger que KDE en restant plus simple. Il est donc possible pour ses utilisateurs d’installer Fedora avec uniquement cet environnement, sans recourir à un environnement intermédiaire ou à une installation textuelle.

Fedora Media Writer prend en charge les images ARM. L’installateur officiel et recommandé pour générer et écrire vos images de Fedora sur vos médias d’installation gère donc plus d’architectures. Pour rendre cela possible, FMW gère mieux les cartes SD, qui sont préférées aux clés USB sur cette architecture généralement. Les cartes à base de processeurs ARM officiellement supportées pour le moment sont les Raspberry 2 et 3.

Passage des adresses virtuelles de 42 à 48 bits pour l’architecture AARCH64, ce qui devrait améliorer les performances pour ces processeurs. L’objectif est que les processus puissent bénéficier de plus de mémoire virtuelle. Cela permet dans la foulée de pouvoir mieux exploiter les machines ayant une grande portion de la mémoire vive dans les adresses hautes. Il a fallu corriger entre autres les paquets mozjs et luajit pour activer ce changement.

Mise à jour de libpinyin vers la version 2.0 pour les entrées de saisies en chinois Pinyin. Le Pinyin est la méthode officielle de translittération du chinois en alphabet latin qui repose sur la prononciation des mots. Par exemple, Pékin, en français, s’écrit 北京 en chinois traditionnel et Běijīng en Pinyin. Cette nouvelle version propose plusieurs phrases de suggestions à la volée plutôt qu’une seule, pour améliorer l’efficacité de la saisie.

Administration système

Les utilisateurs locaux identifiés avec le démon sssd bénéficient d’un cache de fichiers locaux plus rapide. En effet, le cache mémoire de sssd entrait en conflit avec nscd qui était donc désactivé, ce qui ruinait les performances pour les accès aux fichiers. Dorénavant, le cache de fichiers provient de sss du projet NSS améliorant à nouveau les performances du système dans ce cas.

La machine virtuelle Java OpenJDK et le projet OpenSSH rejoignent les politiques de sécurité de GnuTLS, NSS et OpenSSL en utilisant la même politique de sécurité de mots de passe qu’eux. En effet, depuis quelques versions de Fedora, les utilitaires pouvant avoir une politique de mots de passe, par exemple de huit caractères avec au moins un chiffre et deux majuscules, bénéficient peu à peu de l’unification de cette politique. En définissant la politique une fois via l’utilitaire update-crypto-policies, elle sera disponible pour l’ensemble des applications compatibles.

systemd-coredump est activé par défaut. coredumpctl était en effet en conflit avec ABRT pour la gestion des fichiers core (vidage mémoire) des applications non officiellement empaquetées dans Fedora, chacun changeant /proc/sys/kernel/core_pattern , et ABRT avait le dernier mot. Maintenant, abrt-ccpp.service est désactivé par défaut pour laisser systemd prendre la main, ce comportement étant réversible. ABRT étant plus utilisée pour l’assurance qualité et systemd par les développeurs, la politique par défaut actuelle convient donc mieux, car ABRT est moins utile pour des crashes d’applications non empaquetées que systemd et vice versa pour les applications empaquetées par Fedora. Cela n’a un impact que pour les applications compilées, les exceptions en Python ou Java sont toujours du ressort d’ABRT.

Mise à disposition d’une image Docker minimale pour réduire au maximum la taille des conteneurs. Il est possible de l’étendre via dnf ensuite, et prochainement de la personnaliser et de la générer via kickstart. L’objectif est de les rendre plus légères en cas d’utilisation intensive tout en laissant le choix à son utilisateur de la personnaliser pour que l’image Docker n’ait que le strict nécessaire.

L’image Docker utilise maintenant OverlayFS 2 par défaut afin d’améliorer les performances. Cela permet à l’image Docker de partager en partie les ressources présentes dans votre installation principale ; en mutualisant les fichiers et les accès nous disposons donc mécaniquement de plus d’espace disque et de meilleures performances. Attention cependant, ce système de fichiers n’est pas totalement conforme au standard POSIX, ce qui peut causer des bogues dans certains programmes exécutés dans les conteneurs. Il est toujours possible de retourner au mode DeviceMapper utilisé jusqu’à présent.

Toujours à propos de Docker et de Python, son SDK exploitable par Python est disponible en version 2, conformément aux décisions du projet officiel qui est mis à disposition dans le paquet python3-docker. L’ancienne version reste disponible grâce au paquet python-docker-py, mais il devrait être supprimé dès Fedora 27.

Le répertoire de cache de Fontconfig passe de /var/cache/fontconfig à /usr/lib/fontconfig/cache pour mieux fonctionner sur le système à base d’OSTree, à savoir Fedora Atomic.

Authconfig a été nettoyé, supprimant la gestion de Hesiod, mais aussi l’interface utilisateur, que ce soit l’interface graphique ou l’interface en mode texte (TUI). En effet, cet outil d’aide à la configuration des utilisateurs PAM, Kerberos ou LDAP avait de nombreuses portions de code non maintenu, notamment les interfaces utilisateur, car plus nécessaires, remplacées entre autres par des outils d’auto‐configuration tels que SSSD ou Realmd qui font ce travail convenablement. Authconfig est donc conservé pour des opérations plus manuelles, nécessaires dans certains cas (comme PAM ou NSSWITCH), et ne conserve de fait que le strict minimum pour remplir son rôle avec une certaine valeur ajoutée. Le code sera également plus simple à maintenir à l’avenir.

La bibliothèque de gestion des cartes cryptographiques PKCS#11 Coolkey est remplacée par OpenSC par défaut, pour une suppression prévue lors de la sortie de Fedora 27. Les deux étaient jusque‐là utilisées conjointement à cause notamment de la bibliothèque NSS qui employait encore Coolkey. Cependant, ce dernier n’est plus vraiment maintenu, alors qu’OpenSC bénéfice, entre autres, de nouveaux pilotes pour les cartes les plus récentes. La présence des deux, en plus d’être redondante, créait de la confusion lors de la configuration des systèmes.

L’interpréteur de Python 3 passe la gestion de la locale par défaut C à C.UTF-8, sauf si la variable d’environnement PYTHONCOERCECLOCALE vaut 0. Cela est particulièrement important pour les environnements cloisonnés tels que Docker, Flatpak, OpenShift ou lors de la création des paquets dans rpmbuild et mock, car les erreurs d’encodage du texte y sont fréquentes faute de paramétrage correcte de la locale du système qui se rabattait dès lors sur la locale C qui utilise le codage ASCII. Le passage à l’UTF-8 permettra donc la gestion correcte des chaînes de caractères dans la majorité des cas dans ce contexte, la variable d’environnement proposée permettant de régler les éventuels problèmes générés par ce changement.

Le serveur DNS BIND a une mise à jour vers la version 9.11. Cette version comporte de nombreuses nouvelles fonctionnalités et des comportements ont changé, n’hésitez donc pas à lire les notes de versions complètes pour éviter les surprises. Nous pouvons noter entre autres : l’ajout d’un module Python pour effectuer des commandes rndc, un nouveau gestionnaire de clés DNSSEC dnssec-keymgr, l’interrogation des serveurs par nslookup par défaut, aussi bien en IPv4 qu’en IPv6, le nombre d’écouteurs de requêtes UDP est maintenant lié au nombre de processeurs de la machine, et bien plus encore.

Mise à jour d’OpenSSL à la version 1.1.0. Cette version est la nouvelle branche bénéficiant de nouvelles fonctionnalités tout en ayant un grand nettoyage de ses API et ABI. Les algorithmes SSL v2 et 3DES ne sont plus activés par défaut, pour des raisons de sécurité, de nombreuses structures deviennent opaques pour faciliter l’évolution de l’API, de nombreuses options et portions de codes mortes ont été supprimées. La compatibilité avec la version précédente est maintenu via le paquet compat-openssl10

Le gestionnaire de paquets par défaut, DNF, passe à la version 2.0. Une rupture d’API a eu lieu, supprimant la compatibilité avec quelques extensions. Elle ajoute l’option --with-optional pour l’installation des groupes, afin d’installer aussi les paquets recommandés par le groupe. Des options de YUM (son prédécesseur) font leur retour : includepkgs et excludepkgs, pour établir des règles de sélections des paquets pour cette commande.

Développement

Fedora 26 dispose de la suite de compilateurs GCC dans sa version 7. Cette version propose des suggestions de noms en cas d’erreurs pour des macros, fonctions ou types dans les langages C et C++. Pour ces mêmes langages, les opérations arithmétiques peuvent être contrôlées pour détecter des dépassements. Le C++17 est géré à titre expérimental. Le Go est pris en charge dans sa version 1.8, alors que Java n’est plus proposé via GCJ. Enfin, Fortran dispose de la gestion d’OpenMP 4.5.

La bibliothèque standard Glibc progresse à la version 2.25. Au menu, principalement une implémentation de la norme ISO TS 18661-1:2014 concernant la partie mathématique. Cette norme ajoutant, par exemple, des macros pour identifier les valeurs NaN, de nouvelles fonctions d’arrondis, la transformation des flottants en chaînes de caractères ou des fonctions de classification, comme dire si un nombre est bien un zéro.

La bibliothèque majeure du C++ Boost donne un coup de boost à la version 1.63. Depuis la dernière version embarquée, la 1.60, Boost bénéficie du module QVM pour manipuler les quaternions, les vecteurs et matrices à tailles fixes. Un module Compute apparaît aussi pour la prise en charge du calcul parallèle, notamment sur processeur graphique à travers OpenCL. Un dernier module, Fiber, apporte un complément à la gestion des fils d’exécution.

Le langage Python rampe à la version 3.6. Parmi les nouveautés, les arguments donnés à une fonction sont ordonnés, tout comme l’ordre des attributs dans une classe, et la possibilité d’utiliser directement le nom des variables dans une chaîne de caractères pour gagner en lisibilité. Les classes disposant d’une implémentation de la fonction ''fspath'' peuvent bénéficier du protocole de manipulation des chemins de fichiers. Une classe mère peut forcer l’exécution de fonctions particulières à ses classes filles. Et, tout comme désormais le C++, Python propose d’améliorer la lisibilité des grands nombres en autorisant des séparations de blocs de chiffres par '''' comme _100000 devient 100_000.

Mise à disposition d’une nouvelle variante Fedora Lab centrée sur le développement autour de Python, disponible également par Docker et Vagrant. Cette initiative vise à aider les professeurs ou animateurs d’ateliers en leur mettant à disposition une image de Fedora prête à l’emploi pour ce genre d’activité.

Le compilateur de Haskell GHC passe à la version 8.0. Cette version s’est concentrée sur la possibilité de personnaliser les messages d’erreurs de type, l’interpréteur peut être exécuté dans un processus externe, offrant la possibilité d’étudier les performances du programme, la gestion de plus d’architectures matérielles dont une amélioration à propos d’ARM. Le format de données de débogage DWARF est plus fiable. Et une nouvelle documentation !

Le compilateur Go officiel fonce à la version 1.8. Cette nouvelle amélioration dans la chaîne de compilation propose des performances améliorées du binaire de 15 à 30 %, le ramasse‐miettes est lui aussi plus rapide et des changements assez mineurs sont apportés aux bibliothèques.

Le compilateur du langage D, LDC, donne la réponse 1.1.0 concernant sa version. Les amateurs du langage pourront bénéficier de l’ajout de l’optimiseur, lors de l’édition de liens provenant de LLVM, de fonctions mathématiques plus optimisées. L’ajout également des optimisations par profil, ce qui permet de gagner en performances. Ce dernier point analyse en fait le flux du programme (le nombre de fois qu’une fonction est appelée, le lien entre les classes, etc.) pour optimiser les chemins les plus souvent exécutés au détriment des autres. Cela aboutit à environ 5 à 10 % de gain. Là encore, au détriment du temps de compilation.

Le langage Ruby brille dans sa version 2.4. Comme pour beaucoup de langages cités précédemment, les performances sont la source de toutes les attentions. Tout d’abord, les tables de hachage via un changement de structure interne. Mais aussi les minimums et maximums des tableaux, les accès à des variables d’instance ou les correspondances des expressions rationnelles sont aussi plus rapides. Conformément à la norme ISO/IEC 30170:2012 sur les nombres entiers, Ruby s’est autorisé à fusionner les classes BigNum et Fixnum en Integer pour la gestion des entiers. Enfin, les fonctions de gestion des caractères, comme définir la minuscule d’un caractère, prennent en charge l’Unicode et non uniquement l’ASCII.

Le langage PHP s’impose avec la version 7.1. Les arguments ou retours de fonctions peuvent prendre pour valeur NULL pour signifier une erreur, de même que les fonctions qui ne retournent rien. Les membres constants d’une classe peuvent bénéficier d’une définition de leur visibilité (privé, protégé ou public). L’ajout des itérateurs pour parcourir un objet implémentant l’interface traversable. Les blocs try {} catch() {}_ peuvent gérer plusieurs exceptions par catch()`. Et comme d’autres langages tel que Python, l’index des chaînes de caractères peut être négatif. Enfin, ajout des gestionnaires de signaux asynchrones.

Mais la patrouille des éléphants bénéficie aussi d’une mise à jour du cadriciel Zend à la version 3. Au menu, de meilleures performances, de l’ordre d’un facteur 4. La compatibilité avec PHP 7. Un meilleur découpage des modules et une documentation plus complète sont aussi disponibles. Cela permet, entre autres, de développer les modules séparément et donc de proposer des améliorations plus souvent. Pour finir, il propose la possibilité d’utiliser Zend comme un micro-cadriciel et non plus uniquement l’architecture complète en MVC, si besoin.

pkgconf est maintenant l’implémentation de référence pour le système pkgconfig, qui était géré par pkg-config jusqu’ici. Ce programme qui interprète les fichiers .pc pour retrouver les bibliothèques installées sur le système de manière standard et multi‐plate‐forme. Cette nouvelle implémentation possède un meilleur gestionnaire de performances, n’a pas de dépendance avec la glib2, qui entraînait une dépendance circulaire, et gère plus de fonctionnalités offertes par ces fichiers, comme les provides et CFLAGS.private. Vous pouvez consulter ce tableau comparatif entre les deux solutions pour en savoir plus.

Autour de Fedora

Les CFLAGS par défaut des paquets ont changé pour les programmes C et C++ pour supprimer l’optimisation concernant les processeurs Atom, afin d’accélérer le fonctionnement des programmes pour les autres processeurs i686. D’autant plus que non seulement l’Atom n’est plus commercialisé, mais aussi que Fedora ne prend pas en charge leur UEFI 32 bits.

Les paquets reposant sur le langage Go bénéficieront par défaut de l’option Position Independent Executables, pour plus de sécurité. Cette option, déjà activée pour les programmes C et C++ depuis un moment, permet de complexifier la tâche des attaquants qui essayeraient d’exploiter des failles de sécurité à des adresses précises du programme, les adresses variant à chaque fois pour chaque machine.

Mise à disposition comme expérimentale de la modularité dans une déclinaison de Fedora Server nommée Boltron. L’objectif de la modularité est d’implémenter les résolutions prises du projet Fedora.NEXT, dont le but est de pouvoir utiliser des logiciels, ou plus exactement des piles applicatives, en dehors des cycles de développement de Fedora.

Par exemple, Fedora 26 propose par défaut Node.js en version 6.10. Sauf que la version 8 est disponible et que faute d’applications compatibles et de support assez long de Node.js, Fedora ne l’utilise pas encore. Vous pouvez donc installer la version 8 en utilisant la commande :

dnf install nodejs-8

Pour revenir à la version par défaut de Node.js pour Fedora 26, il suffit de faire :

dnf install nodejs-f26

Pour l’instant, ce sont surtout des piles applicatives qui sont prises en charge : PHP, Apache, MariaDB, PostgreSQL, DHCP, Perl, etc. Notons que c’est encore en expérimental et que les possibilités offertes restent pour l’instant limitées. Vous pouvez suivre sur YouTube leurs progrès hebdomadaires.

La communauté francophone

Rencontres Fedora 26

L’association Borsalinux-fr, qui gère la promotion de Fedora dans l’espace francophone, a organisé les Rencontres de Fedora 26 le 1er juillet à Paris pour présenter Fedora et la (future) Fedora 26 qui est sortie plus tard que prévu.

Outre l’aide apportée à quelques visiteurs, cela a été l’occasion de dispenser trois présentations dont les supports sont disponibles ci‐dessous :

Pour assurer la continuité de ce genre d’initiatives et poursuivre notre présence à des évènements tels que les RMLL, nous sommes toujours à la recherche de nouveaux membres.

La traduction

D’après le dernier état des lieux de début juillet 2017, la traduction française est dans l’état suivant :

sites Web : 100 % ;

documentation : 38 % ;

logiciels liés à Fedora : 100 % ;

paquets prioritaires : 99,3 % ;

autres paquets : 47,7 %.

La langue française est donc parmi les meilleures traductions de Fedora en termes de couverture, la documentation est en retrait car l’équipe de la documentation entreprend depuis un an un véritable changement de son infrastructure, complexifiant sa production dans les temps pour une traduction pertinente.

Si vous souhaitez donner un coup de main, n’hésitez pas à rejoindre l’équipe, il y a toujours du travail pour avoir une distribution bien traduite !

La documentation francophone

Fedora-fr dispose de son propre wiki, pour écrire sa documentation indépendante, pour guider les nouveaux venus, résoudre des problèmes courants ou autres.

Cependant, depuis 2011-2012, la documentation n’était plus vraiment maintenue et cela commençait à se ressentir sur la qualité des documents qui devenaient obsolètes.

C’est pourquoi, depuis début juin 2017, des ateliers hebdomadaires ont lieu chaque lundi soir à partir de 21 h sur IRC pour remédier au problème.

Depuis de nombreuses pages ont été corrigées et le travail continue. N’hésitez pas aussi à contribuer également !

De manière générale, vous pouvez également participer au projet Fedora.

Fedora 27

La prochaine version de Fedora est prévue pour fin octobre 2017.

À ce stade, outre les mises à jour habituelles, nous aurons normalement le droit à :

la disparition des versions alpha, au profit d’une meilleure stabilité de la branche en développement Rawhide ;

une intégration par défaut des pilotes invités de VirtualBox ;

une clarification de ce qui est configuré lors de l’installation via Anaconda et en post‐installation sur chaque environnement de bureau (en particulier GNOME) ;

un recours plus important et mieux intégré aux applications disponibles par Flatpak.

Bien sûr, nous vous donnons rendez‐vous à sa date de sortie pour faire un point plus complet.

Aller plus loin