En ce mardi 3 avril, les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de la version Beta Fedora 28.
Malgré les risques concernant la stabilité d’une version Beta, il est important de la tester ! En rapportant les bogues maintenant, vous découvrirez les nouveautés avant tout le monde, tout en améliorant la qualité de Fedora 28 et réduisez du même coup le risque de retard. Les versions en développement manquent de testeurs et de retours pour mener à bien leurs buts.
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
- L'environnement Sugar est disponible en version 112.
- Mise à jour de Fontconfig à la version 2.13.
- Réduction de la redondance entre Anaconda et gnome-initial-setup dans la configuration demandée à l'utilisateur crée lors de l'installation. Le clavier, la date, l'heure et la langue resteront configurés par Anaconda, par contre la configuration du nom d'hôte est supprimée tout comme la création du compte root pour reprendre la politique d'Ubuntu. La création du premier utilisateur revient à gnome-initial-setup.
- Les modules invités de VirtualBox sont peu à peu intégrés dans le noyau officiel, Fedora propose ainsi dans ses dépôts officiels les paquets pour obtenir la résolution native ou le dossier partagé dans un système Fedora virtualisé 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 de 1-1,5 W), Intel HDA codec pour le multimédia est mis en sommeil après une seconde d’inactivité (gain de 0,4 W) et activation de l'économie d'énergie pour les récepteurs Bluetooth en USB (gain 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 chez moi) en usage non intensif. Cela peut donner 20% d'autonomie supplémentaire.
- Intégration de la norme Thunderbolt 3 (concurrent à l'USB sur de nombreux points). La politique de sécurité liée à cette norme (pour éviter qu'un nouveau périphérique accède sans autorisation à des informations confidentielles) est intégrée à Gnome Shell pour notifier les demandes à l'utilisateur.
- Mise à jour de VA-API à la version 1.0.0, qui change l'API et l'ABI mais propose en contrepartie une meilleure exploitation de l’accélération matérielle du matériel récent.
- Les appareils photo RealSens ont besoin de deux bibliothèques librealsense 1 et 2 pour exploiter l'entièreté de leur gamme historique. Le paquet librealsense réfèrera à la version 2 de la bibliothèque pour les versions modernes, un nouveau paquet librealsense1 sera nécessaire pour le matériel plus ancien.
Internationalisation
- Ibus Typing utilise maintenant la boîte de dialogue pour les emoji afin de proposer des symboles UNICODE en tapant leur description. Ainsi copyright sign propose le symbole ©.
- La bibliothèque libidn passe à la version 2.0.0 forçant le passage de la norme IDNA2003 à IDNA2008 qui ne sont pas compatibles et pouvaient être source d'attaque par redirection. Cette norme sert à 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.
- Les langues asiatiques chinoises, coréennes et japonaises utiliseront par défaut les polices de Google Noto.
Administration système
- Anaconda, le programme d'installation, devient modulaire. La communication se fait via une API plus stable en DBus, permettant d'améliorer les tests, d'être utilisable sans les droits super utilisateur et d'être étendu par l'utilisateur.
- authselect remplace authconfig et devient l'outil de configuration par défaut pour le PAM et le fichier nsswitch.conf.
- Le paquet tcp_wrappers est supprimé. Son utilisation doit être remplacée par iptables, ou mieux par firewalld.
- libnsl et nss_nis sont proposés hors de GLibc comme recommandé par le projet officiel. libnsl passe à la version 2 au passage autorisant 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 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. Cela permet l'accès parallèle et diminue le risque de corruption de la base de données.
- OpenLDAP utilise OpenSSL au lieu de NSS, comme recommandée par le projet officiel.
- Les bibliothèques de OpenLDAP non compatibles multithread redirigent vers leur version compatibles multithread comme libldap qui pointe vers libldap_r.
- OpenLDAP abandonne la gestion de TCP Wrappers également.
- L'utilisateur et groupe nobody:nobody passent de UID et GUID 99:99 à 65534:65534, nfsnobody est supprimé, et nobody n'est plus utilisé de manière systématiquement par défaut pour certains services. Des utilisateurs dédiés seront crées.
- Nouvelle version de la politique de sécurité par défaut. Les clés RSA doivent être de minimum 2048 bits et DSA est désactivé par défaut. Le passage à TLS 1.2 minimum 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. Le premier n'est pas compatible Python 3, le second n'a pas de documentation et est trop minimaliste quant au dernier il n'est plus maintenu.
- 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.
- L'outil time passe à la version 1.8, qui change de licence vers GPLv3 et GFDL, qui a de nouveaux codes d'erreur et une nouvelle sortie par défaut. L'affichage conforme POSIX reste possible via l'option -p.
- Mise à disposition 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 un système de cache.
- Facter passe de la version 2.4.3 à 3.9.2.
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.
Si l'aventure vous intéresse, les images sont disponibles par Torrent ou via le site officiel. En cas de bogue, n'oubliez pas de relire la documentation pour signaler les anomalies sur le BugZilla ou de contribuer à la traduction sur Zanata.
Bons tests à tous !