From Fedora Project Wiki

En ce mardi 1er mai, les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de la version Fedora 28.

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.

Notons que Fedora 28, avec ses quelques 51 changements officiels validés, est sans conteste la version comportant le plus de changements de son histoire. La version finale est pour le moment fixée pour la première semaine de mai (sortie le 1er ou le 8 mai).

Voici les nouveautés annoncées pour cette version :

Bureautique

Passage à GNOME 3.28. Ce nouvel environnement apporte comme souvent quelques raffinements :

  • Disparition des icônes sur le bureau, faute de mainteneur ;
  • Refonte du visuel du clavier virtuel ;
  • Nouveau dessin pour la police par défaut Cantarell ;
  • Fichiers gère les marques-pages dans un dossier dédié dans la barre latérale ;
  • Photos prend en charge l'import depuis un média amovible ;
  • Mise à disposition d'Usage, sorte de Moniteur système simplifié qui reprend les codes des applications similaires sur Mobile pour simplifier la maintenance de l'appareil ;
  • Le glisser-déposer de fichiers entre l'hôte et la machine virtuelle est disponible dans Machines. Par ailleurs, Machines peut télécharger elle même l'ISO de votre distribution favorite ;
  • Les fenêtres jointes latéralement sont redimensionnées ensemble.

L'environnement Sugar est disponible en version 0.112. Cet environnement bureautique, destiné à l'ordinateur OLPC continue d'évoluer. En premier lieu le matériel est mieux géré avec la machine qui s'éteint en cas de batterie trop faible pour éviter de l’endommager et une coupure trop brutale. La gestion des écrans externes est meilleure. Le navigateur affiche la progression des téléchargements, supporte le copier/coller par les raccourcis claviers et bénéficie d'une meilleure auto-complétion. Enfin, l'ensemble des applications profite de la demande de sauvegarde du document en cas de fermeture de l'application, si cela n'a pas été sauvegardé.

Mise à jour de Fontconfig à la version 2.13. Le plus gros du travail concerne l'amélioration des performances. Le cache peut être partagé entre dossiers montés via bind ce qui bénéficie aux applications Flatpak. L'empreinte du cache a été considérablement réduit, ce qui permet d'accélérer sa lecture et sa génération. À titre d'exemple, régénérer le cache prend 5 à 10 fois moins de temps qu'avant. Fontconfig apporte aussi la gestion des polices de caractères variables.

Réduction de la redondance entre Anaconda et gnome-initial-setup pour la version Workstation dans la configuration demandée à l'utilisateur crée lors de l'installation. L'objectif étant bien entendu de simplifier le code mais aussi la procédure d'installation afin de rendre le tout cohérent.

Configurés par Anaconda :

  • Le clavier ;
  • La date ;
  • L'heure ;
  • La langue et la disposition clavier.

Configurés par gnome-initial-setup :

  • Création du premier utilisateur.

Supprimés :

  • Le nom d'hôte réseau ;
  • Le mot de passe root.

En effet, Fedora Workstation suit la politique d'Ubuntu en désactivant le compte root par défaut. Le premier utilisateur sera donc super-utilisateur configuré via sudo automatiquement. Il reste possible de l'activer manuellement si vous le souhaitez.

Le premier utilisateur est donc configuré après le premier redémarrage, une session temporaire de Gnome-Shell sera ouverte automatiquement pour créer l'utilisateur avec l'ensemble des paramètres usuels avant de vous proposer à travers GDM de vous connecter avec.

Fedora a poussé petit à petit l'intégration des modules invités de VirtualBox dans le noyau Linux. Ainsi si vous utilisez VirtualBox pour virtualiser un système Fedora, ce dernier aura automatiquement et dès l'installation la gestion du plein écran et du presse papier partagé par exemple. La gestion du dossier partagé devrait arriver après la sortie de Fedora 28. Ainsi il ne sera plus nécessaire de recourir à l'installation manuelle des modules invités pour profiter pleinement de Fedora dans VirtualBox.

Gestion du matériel

Meilleure gestion de l'autonomie des ordinateurs portables avec un processeur Intel. Cela passe par une meilleure gestion de l'énergie des ports SATA pour disques durs et SSD (gain estimé de 1-1,5 W) en reprenant le mode utilisé par Windows : med_power_with_dipm. Intel HDA codec pour le multimédia est mis en sommeil après une seconde d’inactivité (gain estimé de 0,4 W). Et activation de l'économie d'énergie pour les récepteurs Bluetooth en USB (gain estimé de 0,4 W si tous les ports USB sont en repos). Sachant qu'un ordinateur portable récent non orienté puissance consomme moins de 10 W (7,5 W par exemple sur un Lenovo E560) en usage non intensif. Cela peut donner 20% d'autonomie supplémentaire.

Intégration de la norme Thunderbolt 3 qui est une norme concurrent à l'USB sur de nombreux points. Cette norme permet en effet de gérer des transferts de données ou de brancher un écran externe par exemple sur le même port. Cependant ces périphériques pourraient accéder à des informations sensibles de votre machine lors du branchement pour des raisons de performances. En effet pour alléger la charge CPU, ces périphériques peuvent être maîtres de la communication DMA. C'est pourquoi la norme propose une politique de sécurité pour que l'utilisateur autorise ou non l'accès à l'ordinateur et éviter que discrètement un appareil branché sans votre consentement ait un libre accès. Maintenant il est possible de configurer dans GNOME ces accès par le biais des notifications ou du panneau de configuration qui lui est dédié.

Les politiques de sécurité possibles étant :

  • none : pas de restrictions ;
  • dponly : uniquement la sortie vidéo via DisplayPort ;
  • user : les périphériques connectés doivent recevoir une autorisation de l'utilisateur ;
  • secure : l'utilisateur doit autoriser l'appareil également et l'appareil doit prouver son identité avec une clé secrète.

Mise à jour de VA-API à la version 1.1.0, qui change l'API et l'ABI de ce module vidéo pour plateforme Intel mais propose en contrepartie une meilleure exploitation de l’accélération matérielle du matériel récent de la marque. L'API propose par exemple la gestion du multi-frame, la gestion du format H264 FEI et la correction de bogues concernant Wayland. Le module Video Processing Pipeline peut maintenant effectuer des rotations, des effets miroirs, de la composition et utiliser le filtre couleur Total.

Les caméras et autres appareils optiques compatibles RealSens d'Intel peuvent utiliser la bibliothèque librealsense 1 et 2 pour exploiter l'entièreté de cette gamme technologique. Cette bibliothèque permettant d'exploiter l'ensemble des informations proposées par ces capteurs comme calculer les dimensions d'un objet en 3D. Le paquet librealsense réfèrera à la version 2 de la bibliothèque pour les versions modernes, un nouveau paquet librealsense1 sera à installer manuellement pour le matériel plus ancien comme les modèles F200, R200, LR200 et ZR300.

Internationalisation

Ibus Typing utilise maintenant la boîte de dialogue pour les emoji afin de proposer des symboles UNICODE en tapant leur description. Cette boîte de dialogue permettait de simplifier la saisi d'emoji en se basant sur leur descriptif pour trouver celui que souhaitait l'utilisateur. Cela a été généralisé à l'ensemble des caractères UNICODE pour simplifier la saisie de caractères complexes. Ainsi saisir copyright sign propose le symbole © connu sous le nom technique U+00A9.

La bibliothèque libidn passe à la version 2.0.0 forçant le passage de la norme IDNA2003 à IDNA2008 pour l'ensemble des applications. Ces normes ne sont pas compatibles ce qui pouvaient mener à des incompatibilités entre les applications mais aussi pouvaient être une source d'attaque par redirection en faisant passer un site Web pour un autre par exemple. Ces normes servent à transcrire un nom de domaine Internet UNICODE en une chaîne latine unique comme faß.de qui devient fass.de ou xn--fa-hia.de respectivement.

Les données concernant l’internationalisation de GLibc sont mises à jour à partir des fichiers ISO et CLDR de 2015 (UNICODE 9.0) en remplacement de iso14651_t1_common qui avait 15 ans. Cela permettra de corriger pas mal d'erreurs, dont des tris alphabétiques dans des langages moins courants en Occident. Ou les symbole infini et ensemble vide qui étaient considérés comme identiques dans les applications.

Les langues asiatiques 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 proposera aussi un affichage plus cohérent de l'interface pour ces utilisateurs, toutes les applications en bénéficiant.

Administration système

Anaconda, le programme d'installation, devient modulaire. La communication se fait via une API plus stable en DBus, permettant d'augmenter les tests disponibles et de simplifier la personnalisation ou l'extension par l'utilisateur suivant ses envies et ses besoins. Cette décomposition en module est progressive, cette version par exemple propose la lecture et l'interprétation des fichiers kickstarts. Les tâches plus critiques comme la tâche qui installe les paquets seront effectués plus tard. À terme il permettra à Anaconda de ne pas nécessiter les droits super-utilisateurs et donc d'avoir un rendu natif sous Wayland.

authselect remplace authconfig et devient l'outil de configuration par défaut pour le PAM et le fichier nsswitch.conf.

L'outil authconfig devenait assez difficile à maintenir car il gérait l'ensemble des possibilités de configurer les droits des utilisateurs et leur authentification. Par exemple il devait définir le profil pour signifier qu'il gérait les utilisateurs locaux avec des fichiers, des utilisateurs distants avec sssd ou winbind le tout avec authentification par carte ou empreinte digitale. Ensuite il devait configurer chaque démon comme sssd. Cette explosion combinatoire le rendait peu fiable, et une nouvelle fonctionnalité d'un des démon qu'il gère pouvait prendre du temps à être prise en charge, avec beaucoup de régressions en prime.

authselect est plus simple car il laisse la configuration des démons à la charge de l'administrateur système ou à des outils dédiés comme realmd ou ipa-client-install. Du coup sa configuration est plus simple et stable, avec des configurations par défaut mieux testées. L'outil est aussi bien nettoyé, écrit en C ce qui le rend plus léger et apte à une inclusion dans une installation très minimale de Fedora.

Le paquet tcp_wrappers est supprimé. Cet outil servait à bloquer les connections entrantes au niveau applicatif alors que Linux ne bénéficiait pas de pare-feu à la hauteur. De plus il n'était plus réellement maintenu. Son utilisation doit être remplacée par iptables, ou mieux par firewalld.

OpenLDAP abandonne la gestion de TCP Wrappers également. Ce qui consiste concrètement, outre ce qui a été décrit précédemment, à supprimer l'option --enable-wrappers pour la compilation.

libnsl et nss_nis sont proposés hors de GLibc comme recommandé par le projet officiel depuis quelques temps. libnsl passe à la version 2 au passage permettant la compatibilité de NIS avec la norme IPv6.

De même pour Sun RPC dont la gestion dans GLibc est supprimée pour libtirpc qui permet entre autre la gestion de l'IPv6 nativement. Le faire au niveau de la GLibc aurait nécessité un changement d'ABI important.

Le stockage par défaut des clés et autres certificats de sécurité par la bibliothèque NSS est le format de SQLite au lieu de DBM. La bibliothèque NSS est souvent utilisée pour sa base de données de clé de sécurité, les certificats et valider la chaîne de confiance. Par défaut NSS utilisait le format DBM qui reposait sur l'antique berkeley DB. Le principal inconvénient est qu'il n'est pas possible de faire des accès parallèles ce qui peut mener régulièrement à des corruption de la base de données. En passant à SQLite par défaut, l'accès parallèle est bien entendu géré nativement sans option supplémentaire pour l'utilisateur.

OpenLDAP utilise OpenSSL au lieu de NSS, comme recommandée par le projet officiel. OpenLDAP avait ajouté la gestion de NSS en 2008 pour en cesser son support en 2014, ne le gardant disponible uniquement pour de vieilles applications telles que 389DS. Par conséquent certains bogues autours de PKI et TLS n'ont jamais été corrigés avec l'utilisation de NSS, le passage avec OpenSSL permettra de les résoudre comme d'autres fonctionnalités ou problèmes à venir.

Clients et serveurs OpenLDAP vont utiliser uniquement les certificats partagés du système. Ainsi OpenLDAP exploite une nouveauté introduite par Fedora 19 qui est de centraliser les certificats et leur exclusion au sein du système tout comme l'ont fait depuis NSS, GnuTLS, OpenSSL et Java. Ainsi il ne va plus lire le contenu du chemin /etc/openldap/certs mais /etc/openldap/certs. Ceci simplifiera la maintenance des certificats pour le projet Fedora tout comme les administrateurs systèmes.

L'utilisateur et groupe nobody:nobody passent de UID et GUID 99:99 à 65534:65534, nfsnobody:nfsnobody sont supprimés, et nobody n'est plus utilisé de manière systématiquement par défaut pour certains services. La situation précédente était source de confusion :

  • Le couple GID:UID 65534:65534 (utilisé par nfsnobody:nfsnobody) est la valeur limite employée par le noyau, qui s'en sert pour désigner un utilisateur qui n'existe pas dans cet espace de nom soit très couramment pour les conteneurs. nfsnobody est donc un nom impropre pour cet usage.
  • nfsnobody n'est défini que si le paquet nfs-utils est installé, ce qui n'est pas forcément courant dans le cas des conteneurs où on souhaite minimiser la taille du système.
  • nobody était quant à lui employé parfois pour des services du système où aucun utilisateur spécifique n'était rattaché à son exécution. Le soucis est que tout processus lancé avec cet utilisateur pouvait communiquer facilement avec les autres processus de cet utilisateur, voire utiliser ptrace pour les analyser. Des utilisateurs dédiés seront crées pour couvrir cette situation.
  • Fedora était la seule distribution populaire à ne pas suivre la convention nobody:nobody ou nobody:nogroup pour le couple GID:UID 65534:65534 ce qui est source d'erreurs ou de confusion pour l'administrateur système.

Étant donnée l'importance du changement, et la difficulté de changer cela à chaud, cela ne concernera que les systèmes nouvellement installés.

Première étape de la nouvelle version de la politique de sécurité par défaut. Afin d'améliorer la sécurité du système, les applications fournies par Fedora devront suivre une politique de sécurité qui sera peu à peu renforcée. Pour cette première étape, les clés RSA doivent avoir une taille minimum de 2048 bits par défaut et l'algorithme DSA est désactivé par défaut. Le passage à TLS 1.2 minimum par défaut est repoussé pour le moment.

Les paquets de gestion de Kerberos dans Python sont grandement remaniés. python-krbV, pykerberos et python-requests-kerberos sont remplacés par python-gssapi. Cela a été fait pour les raisons suivantes :

  • python-krbV n'est pas compatible Python 3 ;
  • pykerberos n'a pas de documentation et est trop minimaliste ;
  • python-requests-kerberos n'est plus maintenu ;
  • python-gssapi utilise une interface répandue et standard GSS-API pour l'authentification, est implémentée par la version MIT et Heimdal Kerberos en plus d'être plus simple à l'usage.

libcurl utilisera libssh au lieu de libssh2 pour les protocoles SCP et SFTP ce qui permet l'utilisation de l'authentification GSS-API et l'usage d'algorithmes plus sécurisés par défaut. De plus, la version libssh est mieux maintenue.

L'outil time passe à la version 1.8. Cette version change de licence vers GPLv3 et GFDL. Elle bénéficie de nouveaux codes d'erreur pour signifier l'erreur de la commande exécutée ou s'il y a eu un soucis dans time lui même. Enfin elle a une nouvelle sortie par défaut. L'affichage conforme POSIX reste possible via l'option -p.

Comparez : Avant

$ time -p /bin/false
real 0,00
user 0,00
sys 0,00

Après

$ time /bin/false

real	0m0,003s
user 0m0,000s
sys	0m0,003s

Mise à disposition initiale de l'application Stratis Storage qui est une application Python communiquant à travers DBus pour gérer l'espace de stockage du système. Reposant sur le système de fichier XFS pour le moment, son but est de proposer des fonctionnalités populaires chez Btrfs, ZFS ou LVM mais en plus simple pour l'utilisateur comme les clichés, l'intégrité des données ou mettre en place d'un système de cache.

Une interface de programmation est mise à disposition, et il possède aussi des fonctionnalités de réparation et de surveillance du système de fichiers. Cela reste la première étape de son intégration, il est prévu à terme de l'utiliser dans Anaconda ou dnf pour simplifier l'installation de Fedora ou permettre un retour en arrière après mise à jour plus facilement.

Facter passe de la version 2.4.3 à 3.9.2. Cet outil qui permet de récupérer facilement des informations sur le système a pour principal changement sa réécriture de Ruby à C++. Des ports de son interface en ruby existent notamment pour l'utilisation de puppet. Cela est fourni entre autre par le paquet ruby-facter si vous en avez besoin pour un de vos projets. Cela permet au passage de se débarrasser peu à peu de l'obsolète net-tools dans Fedora.

Développement

Binutils passe à la version 2.29.1.

GLibc 2.27 est utilisée par défaut.

La partie cryptographique libcrypt de GLibc est remplacée par libcrypt.

GCC 8 devient le compilateur de référence.

Le framework Web de Python DJango dégaine à la version 2.0.

Coup de Boost à la version 1.66.

Ruby est polis à la version 2.5.

Le compilateur Haskell GHC évolue à la version 8.2.

De même pour le couple Erlang/OTP pour la version 20.

Le langage Go court vers la version 1.10.

L'éléphant PHP avance prudemment à la version 7.2.

Mise à jour de giflib vers la version 5.1.4. Un paquet compat-giflib est proposé pour faciliter la transition aux utilisateurs.

Les symboles de débogue PE pour les applications compilées avec MinGW (à destination de Windows donc) seront conservés pour simplifier le débogue natif. Les autres symboles seront bien conservés dans le dossier .debug à part. Cela a un sourcoût d'environ 17% d'espace disque pour une application compilée par ce biais.

Modularité

Ajout des dépôts modular, modular-updates et modular-updates-testing pour proposer des composants dans des versions différentes que dans les dépôts natifs de Fedora. Ainsi l'utilisateur peut choisir d'utiliser une version plus récente (ou ancienne) de Python que celle proposée nativement. Mais seulement des composants toujours maintenus par le projet officiel sont proposés.

Projet Fedora

L'architecture Aarch64 (ARM 64 bits) devient une architecture primaire pour Fedora Server, donnant lieu à une meilleure promotion et à une meilleure qualité des images officielles.

L'architecture s390x est proposée aux images Cloud, Docker et Atomic.

Les binaires empaquetés par Fedora et compilés avec GCC sont maintenant annotés pour permettre de plus facilement retrouver les options de compilations l'ayant généré ou les propriétés de son ABI.

Renforcement des options de compilation par défaut pour une meilleure sécurité. Ajout de -fstack-clash-protection, D_GLIBCXX_ASSERTIONS, -fcf-protection=full -mcet, .got.plt et --enable-default-pie.

Définition et empaquetage des applications écrites en Rust comme exa, ripgrep ou tokei.

Activation de Python Generators pour permettre aux empaqueteurs de choisir d'utiliser ou non le générateur automatique de dépendance envers un module Python au lancement.

Les scriptlets ldconfig sont supprimés, du moins pour les paquets installant les bibliothèques partagées dans des endroits standards. Cela simplifiera la maintenance des specs RPM et l'installation des paquets sera également plus rapide.

La communauté francophone

L'association

Logo de Borsalinux-fr

Borsalinux-fr est l'association qui gère la promotion de Fedora dans l'espace francophone. Nous constatons depuis quelques années une baisse progressive des membres à jour de cotisation et de volontaires pour prendre en main les activités dévolues à l'association.

Nous lançons donc un appel à nous rejoindre afin de nous aider.

L'association est en effet propriétaire du site officiel de la communauté francophone de Fedora, organise des évènements promotionnels comme les Rencontres Fedora régulièrement et participe à l'ensemble des évènements majeurs concernant le libre à travers la France principalement.

Si vous aimez Fedora, et que vous souhaitez que notre action perdure, vous pouvez :

  • Adhérer à l'association : les cotisations nous aident à produire des goodies, à nous déplacer pour les évènements, à payer le matériel ;
  • Participer sur le forum, les listes de diffusion, à la réfection de la documentation, représenter l'association sur différents évènements francophones ;
  • Concevoir des goodies ;
  • Organiser des évènements type Rencontres Fedora dans votre ville.

Nous serions ravis de vous accueillir et de vous aider dans vos démarches. Toute contribution, même minime, est appréciée.

Si vous souhaitez avoir un aperçu de notre activité, vous pouvez participer à nos réunions hebdomadaires chaque lundi soir à 20h30 (heure de Paris) sur IRC (canal #fedora-meeting-1 sur Freenode).

La documentation

Depuis juin 2017, un grand travail de nettoyage a été entrepris sur la documentation francophone de Fedora, pour rattraper les 5 années de retard accumulées sur le sujet.

Le moindre que l'on puisse dire, c'est que le travail abattu est important : près de soixante-dix 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.

Liens