From Fedora Project Wiki

Revision as of 10:15, 27 April 2018 by Renault (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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 52 changements officiels validés, est sans conteste la version comportant le plus de changements de son histoire. C'est d'autant plus remarquable que la date de sortie initiale n'a jamais été repoussée, une première !

GNOME nature

Bureautique

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

  • Disparition des icônes sur le bureau, faute de mainteneur ;
  • Nouveau 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 du nouveau logiciel Utilisation, 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.
  • GNOME Logiciels peut gérer les dépôts tiers depuis Fedora 27, un dépôt RPMFusion pour Steam et le pilote nVidia est proposé nativement dans cette interface de gestion.

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 sur 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 concurrente à 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é.

Nouveau panneau de contrôle pour Thunderbolt

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

Nouveau logiciel : GNOME Utilisation

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 symboles 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ées plus tard. À terme il permettra à Anaconda de ne pas nécessiter les droits super-utilisateurs et donc d'avoir un rendu natif sous Wayland.

Anaconda est plus léger

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émons 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 connexions 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 quelque 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 corruptions 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é 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 utilise l'outil p11-kit. Ceci simplifiera la maintenance des certificats pour le projet Fedora tout comme les administrateurs systèmes.

La nouvelle interface pour créer un utilisateur, dans gnome-initial-setup...

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ématique 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 souci 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éés 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é 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 souci 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

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

Après

$ /usr/bin/time /bin/false

Command exited with non-zero status 1
0.00user 0.00system 0:00.00elapsed 100%CPU (0avgtext+0avgdata 1076maxresident)k
0inputs+0outputs (0major+54minor)pagefaults 0swaps

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. Cette version qui reste un changement mineur, corrige quelques bogues sans nouvelles fonctionnalités. Le plus notable est sans doute sa compilation avec l'option -z defs pour considérer les symboles indéfinis comme des erreurs. Pour notamment éviter de fournir un fichier DSO ayant besoin de versions versionnées d'une fonction, qui ne sont pas spécifiées.

... avec la définition du mot de passe

GLibc 2.27 est utilisée par défaut. Cette version peut être compilée en statique pour des applications avec la position indépendante du code activée (PIE) ce qui peut améliorer la sécurité de l'application. De nombreuses fonctions mathématiques ont été optimisées pour l'architecture x86_64 : asin, atan2, exp, expf, log, pow, atan, sin, cosf, sinf, sincosf et tan. Pour cette architecture, avec les instructions SSE4.1 disponibles, trunc et truncf sont concernés aussi. Et pour l'ensemble des architectures c'est expf, exp2f, logf, log2f, powf, sinf, cosf et sincosf qui ont été optimisées. Les instructions memfd_create, copy_file_range et mlock2 ont été implémentées tout comme des fonctions de protections de clés en mémoire avec la suite pkey_alloc, pkey_free, pkey_mprotect, pkey_set, et pkey_get.

De manière plus significative pour la compatibilité, la fonction abort ne vide plus le flux de la sortie standard avant de quitter l'application ce qui posait des soucis pour la corruption des données et entraînait des interblocages. La famille de fonctions malloc n'affichera plus l'adresse de l'échec et la pile d'appels en cas de détection d'une erreur du tas. Pour des raisons de sécurité mais aussi de performances.

La partie cryptographique libcrypt de GLibc est remplacée par libxcrypt. Cette séparation, non encore actée en amont, a été effectuée pour découpler l'évolution des deux bibliothèques et permettre ainsi une évolution plus rapide de libcrypt pour améliorer la sécurité. Ce changement repose par la création d'une nouvelle bibliothèque nommée libxcrypt qui est compatible avec libcrypt mais pas inversement. Car si les symboles de libcrypt ont été correctement reproduits, de nouveaux sont disponibles comme les fonctions crypt_rn, crypt_ra, crypt_gensalt, crypt_gensalt_rn, et crypt_gensalt_ra.

GCC 8 devient le compilateur de référence. Cette version apporte bien sûr une meilleure gestion des architectures ou processeurs récents comme les dernières puces ARM, d'Intel ou d'AMD. La gestion du C++17 a aussi été améliorée avec un début d'implémentation pour le futur C++20. Un grand effort a été effectué pour améliorer la qualité de la lisibilité des erreurs de compilation en C et C++ avec même des conseils sur la correction à appliquer. Des améliorations notables au niveau des performances sont disponibles comme une meilleure heuristique pour inliner une fonction ou une meilleure exploitation des profils pour une application,

Coup de Boost à la version 1.66. Cette bibliothèque majeure de l'écosystème C++ progresse de deux versions. Outre de multiples corrections de bogues, cette version bénéficie de cinq nouvelles sous-bibliothèques :

  • Boost.PolyCollection pour des conteneurs rapides d'objets polymorphiques ;
  • Boost.Stacktrace pour obtenir, sauvegarder, copier ou afficher une pile d'appels ;
  • Boost.Beast qui permet de faire du HTTP portable avec WebSocket tout en utilisant exclusivement des opérations réseaux en C++11 avec Boost.Asio ;
  • Boost.CallableTraits qui est un fichier d'en-tête C++11 pour l'inspection au moment de la compilation et la manipulation de tous les types callables ;
  • Boost.Mp11 qui fait de la métaprogrammation pour C++11.

Le framework Web de Python DJango dégaine à la version 2.0. Le changement majeur est bien entendu la non gestion de Python 2. Pour les applications ayant toujours besoin de Python 2 avec Django, le paquet python2-django1.11 avec ses sous-paquets sont proposés. En terme de fonctionnalités, Django simplifie sa fonction django.urls.path() pour la rendre plus lisible à l'usage. La partie contrib.admin est plus adaptée à la navigation sur mobile. Enfin, une nouvelle classe Window fait son apparition pour permettre l'application de fonctions sur des frames ou des partitions de données.

Ruby est poli à la version 2.5. Cette version propose UNICODE 10.0, une amélioration des performances d'environ 5-10% en réduisant l'ajout des instructions de trace tout le long du code généré. Il gère la mesure de la couverture des branches et des méthodes ce qui permet d'avoir une vue plus précise de la couverture du code. L'affichage des erreurs et de la pile d'appels dans le terminal se fait dans le sens inverse (du plus récent au plus ancien) pour simplifier sa lecture.

Le compilateur Haskell GHC évolue à la version 8.2. Les informations de débogues DWARF sont plus fiables. La génération de code aux points de jointures est améliorée. De nouveaux messages d'erreurs sont colorisés. Enfin, dans certaines circonstances, une exception est lancée en cas de dépassement dans le tas.

De même pour le couple Erlang/OTP pour la version 20. Cette version propose aux applications de gérer certains signaux du système comme SIGHUP. Les dirty schedulers sont implémentés pour permettre l'exécution de code natif avec moins de restrictions sur le temps d'exécution. L'utilisation d'UNICODE a été améliorée que ce soit dans les chaînes de caractères ou dans le module Atom. gen_fsm est déclaré obsolète en faveur de l'usage de gen_statem. Le module zlib pour la compression peut être utilisé de manière concurrente. Fedora a ajouté la gestion de journald pour la journalisation, auparavant chaque application avait son propre système.

Le langage Go court vers la version 1.10. Comme souvent, une légère amélioration des performances devraient être mesurée. Les résultats de l'exécution des tests sont maintenant cachés. Cgo gère la notation C de l'instruction typedef et vérifie les valeurs de CFLAGS avec depuis une liste blanche.

L'éléphant PHP avance prudemment à la version 7.2. Cette version inclut la bibliothèque Sodium pour la cryptographie ce qui permet d'incorporer dans PHP des fonctionnalités essentielles pour la sécurité de base de ses applications. Cela se fait aux dépends de Mcrypt qui a été supprimé du noyau du langage car plus maintenu depuis 2007. Les clés numériques pour tableau ou objet peuvent être échangées lors d'un cast. Une erreur est émise en cas d'appel de l'instruction count sur un objet non dénombrable.

Mise à jour de giflib vers la version 5.1.4. Cette version majeure de la bibliothèque de rendu des images GIF a diminué grandement le nombre de crashes ou le nombre de failles de sécurité liés à des fichiers GIF mal formés. La bibliothèque est réentrante et concurrente. Il n'y a plus de variable d'erreur globale, il faut utiliser les fonctions GifError ou GifLastError dorénavant. De nombreuses fonctions ont été renommées ou préfixées. 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 surcoût d'environ 17% d'espace disque pour une application compilée par ce biais mais permet de bénéficier de plus d'informations pour l'utilisateur et le développeur.

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. Cela est proposé par défaut pour l'édition Server, optionnel pour les autres. Cela est la continuité des travaux de Fedora.NEXT, afin de proposer une nouvelle vision des distributions. 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. Pour le moment les modules suivants sont disponibles : Docker, Django, NodeJS et le langage Go.

Projet Fedora

Il n'a jamais été aussi facile d'utiliser RPMFusion

L'architecture Aarch64 (ARM 64 bits) devient une architecture primaire pour Fedora Server, donnant lieu à une meilleure promotion sur les sites web du projet Fedora et à une meilleure qualité des images officielles. Il pourra aussi avoir une image DVD, une image qcow2 pour le Cloud et une image Docker.

L'architecture s390x est proposée aux images Cloud, Docker et Atomic. Cela améliorera la disponibilité de Fedora pour cette architecture d'IBM.

Les binaires empaquetés par Fedora et compilés avec GCC sont maintenant annotés grâce à un plugin de GCC. Cela permet de plus facilement retrouver ou vérifier les options de compilation l'ayant généré ou les propriétés de son ABI. Par exemple pour vérifier si le renforcement d'une application a bien été appliqué. En contre-partie les applications et bibliothèques prendront un petit peu plus d'espace disque, environ 2% en moyenne.

Renforcement des options de compilation par défaut pour une meilleure sécurité du système.

  • -fstack-clash-protection pour que l'application crashe plutôt que l'exploitant prenne le contrôle de l'application via les objets de la pile ou du tas ;
  • D_GLIBCXX_ASSERTIONS pour appliquer une vérification des bornes des tableaux, vecteurs et chaînes de caractères en C++ ;
  • -fcf-protection=full -mcet qui active la technologie Control-flow Enforcement Technology d'Intel pour l’architecture x86_64 qui protège notamment les applications des attaques return-oriented programming et call-jump-oriented programming ;
  • .got.plt pour que la table globale des décalages des adresses soit en lecture seule ;
  • --enable-default-pie pour activer la position indépendante du code pour toutes les architectures.

Définition et empaquetage des applications écrites en Rust. Fedora propose ainsi quelques applications écrites dans ce langage :

  • exa qui est l'équivalent d'un ls en plus élaboré (mais non POSIX) ;
  • ripgrep qui est l'équivalent d'un grep en plus moderne avec exécution en parallèle nativement (mais non POSIX) ;
  • tokei qui génère des statistiques sur le code d'un projet logiciel comme cloc.

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, ce qui a déjà été proposé depuis un moment par des distributions comme Mageia par exemple. 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.

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 car il n'est plus nécessaire d'y faire appel et l'installation des paquets sera également plus rapide. En effet, l'appel à ldconfig sera effectué une fois par transaction (par exemple la mise à jour de plusieurs paquets en même temps) et non pour chaque paquet de cette transaction.

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

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