From Fedora Project Wiki

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

Fedora est une distribution communautaire développée par le projet Fedora et sponsorisée par Red Hat, qui lui fournit des développeurs ainsi que des moyens financiers et logistiques. Fedora peut se voir comme une sorte de vitrine technologique pour le monde du logiciel libre, c’est pourquoi elle est prompte à inclure des nouveautés.

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

GNOME nature

Expérience utilisateur

Passage à GNOME 3.30, l'environnement par défaut de l'édition Workstation bénéficie de :

  • Mise à jour des paquets Flatpak automatiquement ;
  • Amélioration globale des performances ;
  • Le partage d'écran est simplifié, de même que la connexion à des machines Windows distantes via Machines ;
  • Ajout du mode lecture pour le navigateur Web ;
  • Le navigateur de fichiers Fichiers a une nouvelle barre de navigation plus efficace ;
  • La virtualisation avec Machines permet l'import de fichiers de VirtualBox et le partage de fichiers entre l'hôte et l'invité.

De même pour l'environnement Xfce qui est mis à jour vers la version 4.13. Cette version en développement est considérée comme suffisamment stable par Fedora pour le proposer nativement. Le principal changement est la mise à jour de l'ensemble des composants vers GTK+3 ce qui améliore l'intégration des applications GNOME en son sein, et ouvre la voie à l'accès de Wayland et la gestion des écrans à haute densité de pixels par exemple.

Le menu de GRUB sera caché par défaut, sauf en cas de dual-boot. En effet dans ce cas de figure, GRUB ne sert qu'à démarrer un ancien noyau, ce qui est nécessaire uniquement en cas de soucis. Pour des raisons de cohérence et de simplicité, les messages de démarrage étant cachés par défaut, ce menu est caché pour ne pas perturber l'utilisateur et gagner du temps.

Un nouveau mécanisme est mis en place. Le menu caché sera finalement affiché si le précédent démarrage n'a pas abouti à une session valide. Cela autorise ainsi une résolution possible du problème. Pour désactiver cette fonctionnalité, vous pouvez manuellement appliquer la commande suivante avec les droits super utilisateurs :

# grub2-editenv - unset menu_auto_hide

La variable $PATH par défaut change l'ordre des dossiers ~/.bin et ~/.local/bin pour les placer en tête afin d'être prioritaires par rapport aux dossiers systèmes. L'objectif est de simplifier la vie de l'utilisateur, on considère que les applications personnelles priment sur celles du système, comme celles installées via pip pour Python. En plus de cela, Fedora rejoint la politique de Debian et Ubuntu à ce sujet ce qui apporte une plus grande cohérence dans l'écosystème. Ce changement ne s'applique qu'aux nouveaux utilisateurs pour éviter les problèmes, car le changement réside dans le squelette qui permet la création d'un nouvel utilisateur.

L'utilitaire Wireshark pour l'analyse des paquets réseau perd son interface GTK+. Uniquement l'interface Qt est proposée en adéquation avec le choix du projet depuis la version 2.4.0. De nombreuses fonctionnalités ne sont en effet pas proposées pour la version GTK+.

Le synthétiseur vocal festival est proposé à la version 2.5 et a été grandement amélioré. En effet il n'était pas rare que cette application plante. Cette dernière version est non seulement un bon synthétiseur vocal mais aussi une boîte à outils pour la création d'une nouvelle voix. Les voix sont considérées comme plus convaincantes que celles provenant de Espeak.

Gestion du matériel

Les paquets i686 sont compilés avec les instructions SSE2 ce qui réduit la liste des processeurs compatibles avec Fedora pour cette architecture. Mais uniquement de vieux processeurs tels que le Pentium III ou antérieurs (avant l'année 2000) sont vraiment concernés. Or les paquets i686 sont majoritairement installés sur des machines compatibles x86_64 voire sur des systèmes x86_64 en tant que bibliothèques de compatibilité. Activer les instructions SSE2 permet une amélioration importante des performances pour une perte négligeable de compatibilité. Une meilleure précision de calculs mathématiques serait de la partie et certains bogues disparaitront également, beaucoup d'applications exigeant déjà les instructions SSE2.

Nouvelle barre de navigation pour Nautilus

Les images pré-générées pour les architectures ARMv7 et aarch64 bénéficient de la ZRAM (une mémoire compressée) par défaut afin d'améliorer les performances et limiter l'usure des cartes SD de stockage en ayant besoin d'un espace d'échange plus faible en cas de gros besoins de mémoire.

Prise en charge initiale des FPGA, les cartes 96boards d'Ultra96 et UP² d'Intel proposent des FPGA pour faire des calculs spécialisés comme l'intelligence artificielle ou le machine learning. Fedora propose des outils de base et agnostiques pour les exploiter.

Clap de fin pour l'architecture ppc64, sa sœur little endian ppc64le recevra toutes les attentions pour cette famille. C'était une version déjà considérée comme étant en maintenance uniquement, à cause de la non gestion de cette architecture par un nombre croissant de projets, dont le dernier en date est Eclipse, ce qui devenait bloquant pour produire une version fonctionnelle.

Internationalisation

Mise à jour du gestionnaire d'entrée de saisie IBus vers 1.5.19. Au niveau des changements, la saisie des émojis via Ctrl+Shift+e se fait dans la zone de saisie courante de l'application, évitant de créer une nouvelle pop-up posant des soucis de positionnement sous Wayland. La saisie de caractères UNICODE via Ctrl+Shift+u se fait de manière disjointe de la saisie des émojis bien que reprenant la même conception. Enfin la saisie de caractères de composition comme ^ affiche le caractère saisi et le remplace éventuellement si le caractère suivant peut être affecté. Ainsi saisir ^ puis e affichera ^ dans la zone de saisie avant de venir ê. Avant le caractère ^ n'était pas affiché du tout ce qui était source de confusion pour l'utilisateur.

La famille de police de caractères Liberation, compatible avec celle de Microsoft, passe à la version 2 proposant plus de caractères Unicode. Ce changement a été envisagé il y a longtemps pour Fedora 19. Mais repoussé à cause d'une régression du hinting pour le rendu de la police. Cette régression reste présente mais semble moins cruciale qu'il y a quelques années grâce à l'amélioration de la définition des écrans depuis. L'ancienne version reste disponible via un dépôt copr.

Les langues chinoises, coréennes et japonaises utiliseront par défaut les polices de Google Noto. Ces polices sont en effet de meilleure qualité pour représenter les symboles de ces langues. Cela permettra aussi un affichage plus cohérent de l'interface pour ces utilisateurs, toutes les applications en bénéficiant.

Les fichiers des fuseaux horaires de tzdata seront fondés sur le format vanguard en accord avec le choix effectué en amont. Cela améliore la compatibilité avec POSIX par une meilleure représentation du décalage négatif pour l'heure d'été. Cela était problématique pour les interpréteurs Java et ICU.

Administration système

Mise à jour d'OpenShift Origin 3.10. Le serveur applicatif de Red Hat propose plusieurs changements d'importance. Citons le CPU manager qui est stable, il permet de gérer des groupes de CPU et de gérer le lancement des services en tenant compte de la puissance disponible, des erreurs de cache ou encore de la faible latence du réseau. De même pour le Device Manager pour définir des limites matériel ou encore le Huge page manager pour obtenir des pages de taille supérieures à 4 kio (sur x86_64). La partie réseau a bénéficié de quelques améliorations également.

Le fichier /usr/bin/python est fourni par le paquet python-unversioned-command en accord avec la PEP 394. Les paquets de Fedora mentionnent en effet explicitement l'usage de Python 2 ou 3. Ce paquet sera recommandé par le paquet python2. L'objectif est bien sûr d’entamer la transition vers l'abandon total de Python 2 en 2020. Et les utilisateurs auront la possibilité de supprimer ce binaire s'ils le souhaite.

Web a un mode lecture

Les groupes de paquets python-classroom, engineering-and-scientific, development-libs, cloud-management, font-design, mysql, robotics-suite, authoring-and-publishing et electronic-lab utilisent les paquets Python 3. Le groupe python-web est supprimé car pas très propre et la motivation de sa création a disparu. Là encore ce changement amorce la transition vers Python 3.

Ansible utilise Python 3 par défaut. Ce changement fait suite à l'adoption l'an dernier d'un paquet pour utiliser Python 3 tout en gardant Python 2 par défaut le temps de faire la transition. Un guide ansible a été publié pour vous aider à utiliser Python 2 ou 3 sur vos cibles.

Stratis Storage est mis à jour à la version 1.0 qui est une application Python communiquant à travers DBus pour gérer l'espace de stockage du système. Introduite par Fedora 28, la technologie commence à se stabiliser. Maintenant la solution commence à être considérée pour gérer l'espace de stockage dans Anaconda dans un futur proche.

GnuTLS utilise le protocole TLS 1.3 par défaut. Cela autorise les applications qui en dépendent de pouvoir bénéficier de ce nouveau protocole de sécurité. La politique de sécurité du système peut également en tirer profit.

Le module p11-kit-proxy gère les bases de données NSS par défaut maintenant en plus d'OpenSSL et GnuTLS. Cela permet donc aux applications employant NSS d'accéder de la même manière à ces informations que celles utilisant les deux autres bibliothèques, sans manipulations supplémentaires. Cela simplifie donc l'administration du système mais aussi l'expérience utilisateur pour ceux qui ont des lecteurs de carte par exemple.

OpenLDAP ne gère plus le module NSS pour la sécurité, suite à son remplacement par défaut par OpenSSL avec Fedora 28. Cette période de transition est donc terminée pour se conformer aux choix du projet officiel. Décision qui a été motivée par certains bogues autours de PKI et TLS qui n'ont jamais été corrigés avec l'utilisation de NSS.

Fusion de Dstat et Performance Co-Pilot pour les statistiques de performance. Dstat n'est plus maintenu en amont mais PCP ajoute le module pcp-dstat pour être compatible avec son illustre prédécesseur. Cette compatibilité peut être invoquée par la commande pcp dstat. Notons également que dstat était disponible uniquement avec Python 2 quand PCP gère Python 3 ce qui a pesé dans la décision. Enfin, un lien symbolique /usr/bin/dstat a été ajouté pour invoquer pcp dstat le temps d'effectuer la transition.

Développement

Binutils passe à la version 2.31. Cette version apporte un changement notable à l'éditeur de lien qui peut mettre le code et les sections en lecture seule dans un segment avec les permissions de lecture et d'exécution uniquement. Tandis que les sections en lecture et écriture sont dans un autre segment avec les permissions lecture et écriture évidemment. Mais cette sécurité supplémentaire rend le binaire généré plus lourd.

L'assembleur x86 a une nouvelle option -O2 ou -Os pour activer des encodages d'instruction plus courts. Il peut aussi ajouter une pseudo instruction NOP pour simplifier l'introduction de séquences de NOP. L'assembleur et le désassembleur de Aarch64 préviennent l'utilisateur en cas de mauvaise combinaison d'instructions et de registres ou si l'encodage des instructions n'est pas cohérente.

GLibc 2.28 est utilisée par défaut. Cette version propose la gestion des caractères d'UNICODE 11.0. La fonction renameat2 a été ajoutée, ce qui permet d'ajouter un drapeau pour empêcher d'écraser un fichier existant par exemple. La fonction statx a été ajoutée également. Enfin, les fils d'exécution du langage C11 sont également pris en charge, ceux disponibles avec l'en-tête <threads.h>.

Node.js 10 est proposé par défaut qui est la dernière version LTS disponible. Dans les changements importants nous avons la prise en charge de N-API. Il est possible de déboguer en remontant les instructions pour les modules async et generators notamment avec l'éditeur de code Visual Studio Code. Et il gère le protocole Inspector de Chronium pour la communication avec les outils de développement. De nombreuses améliorations de la stabilité sont également de la partie.

Fedora aime Python
Fedora aime Python

Python 3.7 devient la version de référence. Cette version propose principalement la gestion des nanosecondes dans le module time. L'ordre d'insertion dans les dictionnaires est maintenant conservé. Les mots clés async et await sont maintenant réservés par le langage. Une nouvelle API importlib.resources est proposée pour lire facilement des ressources embarquées liées au programme comme ses icônes. Les variables contextualisées débarquent avec contextvars pour différencier les variables en cas de programmation parallèle.

Ruby on Rails est sur les rails de la version 5.2. Parmi les changements, nous pouvons noter l’apparition de la boîte à outils Active Storage qui simplifie l'envoi de données vers Amazon S3, Google Cloud Storage, ou Microsoft Azure Storage. La gestion d'un cache de données avec l'aide de Redis. La gestion des HTTP/2 Early Hints est proposée tout comme de Content Security Policy pour sécuriser votre application.

La perle des langages, Perl 5.28, a été mise à jour. Cette version propose la gestion d'UNICODE 10, par ailleurs la performance des opérations sur les chaînes UNICODE est meilleure. L'édition en place des fichiers est plus fiable. L'opérateur delete fonctionne sur des slices. Changer de locale à chaud est maintenant sûr en cas de programmation parallèle.

Le langage Go passe à la version 1.11. Cette avancée apporte un port expérimental à WebAssembly. Les modules débarquent également à titre expérimental pour remplacer GOPATH à l'usage, en étant plus simple et rendant les compilations plus reproductibles. Pour l'architecture Aarch64, le nettoyeur de mémoire -msan est désormais pris en charge.

MySQL 8 est proposé pour sa gestion des bases de données. Les informations à propos des objets de la base de données sont maintenant gérés dans un dictionnaire transactionnel. L'ajout des Atomic DDL qui permet de combiner la mise à jour du dictionnaire de donnée, les opérations sur le stockage et les journaux en une opération atomique. Les opérations cryptographiques liées au SHA-256 ont été ajoutées. MySQL peut restreindre les ressources systèmes par groupe comme l'usage du CPU. Enfin les modules InnoDB et Json ont été profondément améliorés.

OpenJDK 11 LTS devient la machine virtuelle de référence pour Java. Cela signifie la fin des applets et du déploiement Web Start. Une nouvelle API pour gérer les requêtes HTTP est proposée. Le shebang fait également son apparition pour appeler les fichiers .java comme un script Shell. La prise en charge d'UNICODE 10.0 est également de la partie. Enfin les algorithmes de chiffrement ChaCha20, Poly1305 et TLS 1.3 sont disponibles.

La sélection de paquets Haskell compatibles entre eux Stackage LTS passe de la version 10 à 11. Cela permet aux utilisateurs de ces paquets de bénéficier d'un ensemble de composants plus à jour tout en gardant une bonne compatibilité entre ces ressources.

Modularité

Fedora Workstation et Cloud bénéficient par défaut des modules en plus de Fedora Server. Ainsi tout le monde est capable facilement d'exploiter les modules, pour installer une version différente de Node.js que celle proposée par exemple. Cela remplace la version par défaut proposée par Fedora, que ce soit pour une version supérieure ou inférieure à celle proposée.

Rappel, vous pouvez lister les modules disponibles via la commande :

$ dnf module list

Pour procéder à l'installation d'un module vous pouvez faire comme suit :

# dnf module install perl:5.24
# dnf module install perl/default

Les principaux modules disponibles à ce jour : Perl, Stratis, PostgreSQL, mongodb, meson et ninja, Node.js, le langage Go, Kubernetes, GIMP, MariaDB et Django. D'autres sont disponibles et ce chiffre progresse régulièrement.

Ajout du module Kubernetes. Il met à disposition la version 1.10 mais aussi l'implémentation avec Openshift 3.10.

Projet Fedora

Fedora Silverblue
Fedora Silverblue

Fedora Workstation Atomic devient Silverblue. Ce projet qui monte en puissance met en avant le projet Atomic pour l'édition phare de Fedora. Cela consiste majoritairement à utiliser Flatpak et rpm-os-tree pour gérer les paquets permettant une meilleure isolation des composants et une plus grande fiabilité du système. Un site web dédié a été conçu pour l'occasion. Notons que cela reste une expérimentation à ce jour.

Les éditions dérivées de Fedora comme les Spins, labs ou conteneurs auront les champs VARIANT et VARIANT_ID renseignés dans le fichier /usr/lib/os-release pour avoir des statistiques plus précises quant à leur utilisation et pour l'utilisateur de connaître la provenance de l'image.

Fedora Scientific a une image VagrantBox en plus des ISO traditionnelles. Cela simplifie l'usage de Fedora en machine virtuelle auprès des utilisateurs scientifiques.

GCC n'est plus nécessaire dans l'image minimale de compilation de Fedora nommée buildroot, réduisant le temps nécessaire à la production des paquets n'en ayant pas besoin. Les paquets en ayant besoin devront renseigner correctement le champ BuildRequires. En effet de nos jours de moins en moins de paquets en ont besoin ce qui rend ce choix pertinent.

Fedora Cloud aura des images mises à jour mensuellement, pour limiter le besoin de mettre à jour juste après l'installation. Mais cela demande de télécharger à nouveau l'image régulièrement pour en tirer profit.

La compilation du bytecode Python est moins magique pour les paquets, les étapes doivent être mieux décrites pour faciliter la transition vers Python 3. En effet, quand un module Python est importé, il est automatiquement compilé et cela doit suivre maintenant une procédure unifiée.

Les modules Perl obtenus via CPAN changent leurs URL de search.cpan.org vers metacpan.org dans la description des paquets concernés.

Les paquets Erlang ne sont liés à aucune architecture dorénavant. La machine virtuelle d'Erlang cherche ses dépendances dans /usr/lib64/erlang/lib pour l'architecture x86_64 par exemple. Donc la plupart des paquets étaient générés en étant dépendant de l'architecture alors qu'en réalité ces composants sont indépendant de l'architecture. Un chemin alternatif est maintenant employé : /usr/share/erlang/lib. Cela réduit l'espace de stockage nécessaire et le temps de génération de ces paquets.

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

Par ailleurs au début de l'année 2019, l'Assemblée Générale Ordinaire procèdera au renouvellement du Conseil d'Administration et du Bureau de l'association. C'est l'occasion de se présenter et d'intégrer le fonctionnement de l'association !

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

Comment se procurer Fedora 29 ?

Fedora Media Writer
Fedora Media Writer

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