From Fedora Project Wiki

Dépêche sous licence CC BY-SA

En ce mardi 2 juillet 2013, le projet Fedora est fier d’annoncer la sortie de la distribution GNU/Linux Fedora 19. Cette version est baptisée « Schrödinger's cat », en hommage à l'expérience du chat de Schrödinger, la plus célèbre expérience de pensée de la mécanique quantique.

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.

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, la célèbre suite de compilateurs GCC, etc. Cliquez ici pour voir l’ensemble des contributions de Red Hat.

Par ailleurs, les distributions telles que RHEL, Scientific Linux ou CentOS (plus indirectement), avec un cycle de sortie plus espacé permettant un support à plus long terme, sont développées à partir d’une version de Fedora et mises à jour environ tous les trois à cinq ans. Notons que CentOS est un clone gratuit de RHEL, cette dernière étant certes libre, mais payante, offrant ainsi un support technique, des certifications et une garantie.

Je tiens à remercier Ife, palm123, Yala, Atem18, antistress, number80, shaiton, remi, VINDICATORs et Refuznik pour leurs contributions.

Liste des nouveautés

Bureautique

Environnement bureautique

Comme d'habitude, nouvelle version de Fedora, nouvelle version de GNOME. Cette fois-ci c'est la version 3.8 qui fait honneur. Ainsi un pack d'extensions du mode classique remplace le vieillissant mode restreint, portage de Epiphany vers Webkit2, la plupart des applications finissent leurs portages sous GTK3 avec une intégration plus poussée dans l'environnement bureautique, apparition de l'application horloge. Sans compter plus d'une soixantaine de correctifs mineurs.

Bien entendu, KDE n'est pas en reste avec la version 4.10. Le navigateur de fichiers Dolphin a été particulièrement retravaillé entre ajouts, corrections et amélioration des performances. Le système de bureau sémantique Nepomuk, souvent décrié pour ses problèmes de performances, a subi des modifications pour le rendre plus efficace tout en améliorant le système d’étiquetage des fichiers. Le système d'indexation de contenu de Nepomuk, qui se nommait Strigi, a été remplacé par 5 composants différents suivant le type de fichier pour améliorer la qualité du code, les performances et apporter de nouvelles fonctionnalités. De nombreux applets Plasma ont été portés vers la nouvelle technologie QtQuick de Qt pour améliorer le rendu et la qualité du code. Sans oublier le gestionnaire de fenêtre KWin qui a subi de grandes améliorations pour le stabiliser.

L'utilitaire KScreen vient d'être inclus, ce dernier vous permettra de détecter, gérer et sauvegarder la configuration de vos écrans moniteurs, téléviseurs et vidéo-projecteurs.

Les amateurs de MATE seront servis avec la version 1.6 de leur environnement favori. Systemd-logind remplace ConsoleKit pour la gestion des sessions utilisateurs. le gestionnaire de fichiers Caja supporte DBus et améliore la connexion à distance. Les notifications sont maintenant plus personnalisables. Les thèmes ont subi de nombreux correctifs et de nombreux composants internes ont été remplacés par des variantes plus modernes et maintenables, utilisés actuellement par GNOME 3.

La pile graphique de Linux emportée par mesa peut enfin utiliser les instructions d'OpenGL 3.0, 3.1 et OpenCL ! Et comme une bonne nouvelle n'arrive jamais seule, l'accélération vidéo matérielle par vdpau pour les cartes Radeon est disponible.

Productivité

Et la nouveauté technologique de l'impression 3D fait son apparition dans Fedora. Un ensemble d'outils a été porté et intégré afin de supporter cette technologie sur des imprimantes compatibles comme le RepRap. Pour la modélisation, outre Blender, il y a l'intégration de OpenSCAD. Ensuite des logiciels tels que Skeinforge ou Slic3r vont traduire ces modèles en instructions G-Code afin de manipuler l'imprimante 3D. Mais avant impression, les logiciels de contrôle de l'impression comme Printrun, Cura ou RepetierHost prendront le relais. Ces outils sont également disponibles pour les deux versions précédentes de Fedora, moyennant l'activation des mises à jour de tests. Fedora devient ainsi l'une des premières distributions à supporter une chaine complète et intégrée d'impression 3D.

La bibliothèque libkkc pointe le bout de son museau à Fedora. Cette bibliothèque d'entrée de Kana Kanji pour le japonais peut être utilisée par IBus pour simplifier la saisie dans ce style d'écriture, ibus-kkc prenant la place de ibus-anthy qui devenait vieillissant et non maintenu.

Administration système

Installation

Fedora 18 a été l'occasion de la refonte graphique du logiciel d'installation Anaconda. Cette fois, les modifications été centrées sur l'amélioration de cette base tout en gardant une grande compatibilité avec les logiciels de post-installation des environnements bureautiques. Anaconda propose du coup des options plus avancées pour la gestion des disques, l'ajout d'un dépôt logiciel ou utilise mieux les threads pour une expérience utilisateur plus fluide même en cas de traitement lourd. Le mode texte bénéficie également de nombreuses retouches.

Mais Anaconda bénéficie également d'une amélioration du support des commandes Realm de kickstart. Ainsi si la commande 'realm join example.com',permet de joindre la machine durant l'installation directement via son domaine AD ou FreeIPA, cela demandera un seul mot de passe voire aucun pour contacter le domaine afin de simplifier la vie des administrateurs systèmes qui doivent gérer un grand parc de machines.

Le logiciel de configuration post-installation, firstboot, a été revu. Il permet entre autre la configuration de l'heure, du mot de passe root et la création d'utilisateurs. Son interface est plus proche de l'expérience utilisateur de Anaconda. Un travail important a été fourni pour gérer au mieux la relation entre Anaconda, firstboot et des logiciels des environnements bureautiques comme GNOME 3 qui gèrent cette étape.

Dracut crée une image initramfs pour la machine hôte seulement. Auparavant les images initramfs sont génériques et inclues un grand nombre de pilotes afin d'être utilisables par un maximum de matériel différent. Le problème est que l'image associée est de plus en plus grosse et lourde à charger. Aujourd'hui, à chaque mise à jour du noyau, la liste du matériel sera mise à jour afin d'inclure les pilotes nécessaires. En cas de problème, le mode de secours dispose de l'initramfs complète comme générée précédemment pour lancer la machine et régler le problème. Le répertoire /boot en est ainsi allégé.

Syslinux peut être utilisé comme gestionnaire de démarrage par défaut en lieu et place de GRUB 2. Pour cela il faut soit utiliser kickstart ou alors utiliser une option cachée de Anaconda.

Gestion de paquets

RPM a subi une cure de jeunesse avec la version 4.11 du gestionnaire de paquets. Au menu, une amélioration des performances a été enregistrée, la détection des conflits de fichiers a été améliorée et le fichier de macro %config est mieux traité. Les fichiers de spécifications des paquets RPM ont été revus avec une meilleure séparation de la licence et de la documentation ainsi qu'une amélioration des erreurs de parsing du fichier qui sont dorénavant plus claires.

Yum pouvait déjà générer un cliché du système pour le restaurer en cas d'échec de la mise à jour ou de l’installation d'un programme, actuellement compatible avec le système de fichier btrfs. Fedora 19 améliore le support de LVM pour cette technique et augmente de fait les performances et simplifie l'administration par l'automatisation du procédé.

La configuration par défaut de Yum vis à vis des groupes a été changée de group_command=compat à group_command=objects. Ainsi, si un groupe installé possède un paquet supplémentaire, un yum upgrade l'installera et l'affectera à ce groupe. De plus, en cas d'installation d'un groupe et de sa suppression plus tard, tous les paquets du groupe seront désinstallés et pas plus.

L'empaquetage de Maven a été simplifié avec l'ajout du pack d'utilitaires XMvn et l'automatisation des macros %install. La génération des dépendances a également été automatisée pour simplifier la maintenance.

Serveurs logiciels

Le gestionnaire de base de données MySQL laisse place à son fork MariaDB par défaut. Outre le fait que les deux sont compatibles, MariaDB apporte une amélioration des performances dans certains cas et d'autres correctifs uniques. C'est aussi un logiciel communautaire et indépendant du bon vouloir d'Oracle. Pour des raisons de compatibilités, MariaDB utilisera le nom de paquet mysql tandis que le logiciel original utilisera le nom community-mysql.

Le serveur de gestion des DNS, BIND, a été réécrit et passe de la version 9 à 10 qui inclut maintenant la gestion des serveurs DHCP. L’architecture logicielle a été revue avec plusieurs utilitaires indépendants pour gérer le DDNS, les zones de transfert entrants, les zones de transfert sortants et les statistiques. La qualité de service en est ainsi améliorée en réduisant les dépendances entre eux au minimum. Il supporte également les gestionnaires de bases de données SQL comme SQLite (mais MySQL et PostgreSQL viendront plus tard).

Le système d'impression est mis à jour avec CUPS 1.6 qui utilise le format PDF plutôt que PostScript comme format de base, ce qui simplifie les traitements d'autant que les imprimantes modernes supportent nativement ce format. Il prend en charge les profils ICC d'étalonnage des couleurs, la découverte et l'usage du réseau via Avahi. Les filtres et autres traitements non inclus dans Mac OS X ont été séparés dans un autre composant, cups-filters, géré par la Linux Foundation afin de rester au plus près de la version officielle. Sa gestion protocolaire du réseau a été aussi revue afin d'éviter les envois de données en clair à tout le monde via le Wifi par exemple. DNS-SD et Avahi sont utilisés à la place.

Réseaux

L'outil Realmd supporte FreeIPA pour découvrir et et configurer les domaines Active Directory. Realmd est un service DBus sur demande pour configurer les membres d'un domaine et les authentifications. Cette configuration pouvant se faire automatiquement pour être complétée via une GUI ou CLI.

La fédération VoIP a été mise en place pour permettre une fédération des réseaux SIP et XMPP, comme cela a été fait pour SMTP. Avec ce travail, il est possible de contacter les autres utilisateurs, même d'autres distributions, avec une adresse comme user@domaine aussi simplement que le courriel. La configuration du proxy pour ces services est également simplifiée via l'outil reSIProcate tandis que reTurnServer est un serveur ICE/STUN/TURN pour les réseaux SIP et XMPP.

IPAv3 est disponible sur Fedora 19. Quand on utilise FreeIPA pour les domaines Active Directory, il est possible de désigner plusieurs domaines pour desservir les clients Windows. FreeIPA ajoute la configuration et la gestion des suffixes de domaine visibles aux clients des domaines Active Directory. Pour finir, il supporte le service de catalogue global pour que les administrateurs puissent garantir l'accès des ressources aux utilisateurs.

Toujours au sujet de FreeIPA, Kerberos peut être utilisé pour établir l'authentification dans un domaine via un annuaire LDAP en mode double authentification. Si l'administrateur active ce service, il faut que l'utilisateur utilise un client TOTP pour établir l'authentification qui serait complétée par un code envoyé par SMS ou appel téléphonique à réutiliser. Cette fonctionnalité augmente la sécurité des services et utilise un protocole de plus en plus courant parmi les grands acteurs du Web.

Kerberos a été consolidé en supprimant ses fragilités les plus communes. Les clients n'ont plus besoin de synchroniser leurs horloges par exemple. De même, il n'y a plus la nécessité d'avoir un enregistrement de DNS inverse pour l'installation des services.

SSSD, le gestionnaire d'authentification moderne et centralisé, poursuit sa progression avec l'intégration des Active Directory. Cela inclus la découverte du site, la mise à jour dynamique du DNS, la correspondance les SIDs et des noms et la découverte dynamique du NetBIOS. Cela gère par exemple les cas où les AD sont situés dans des réseaux physiques externes différents et dont l'interconnexion peut varier.

Fedora inclus un ensemble d'utilitaires pour tester la connexion entre un client NFS et son serveur. Du côté du client, il est possible de tester, entre autres : les arguments de lignes de commandes, l'échec d'authentification, le montage et démontage, la création de fichiers ou de dossiers, l'inspection des paquets et le suivi de ces derniers. L'objectif est bien entendu de faciliter le travail de configuration mais aussi de faciliter l'adoption de NFSv4 et pNFS auprès des administrateurs systèmes.

Pare-feu

Firewalld, le nouveau pare-feu par défaut dynamique de Fedora, a été la source de nombreuses améliorations dont voici un extrait.

Pour commencer, il est doté du support d'un langage de haut niveau pour faciliter la création de règles complexes sans pour autant connaitre les commandes de iptables. Ceci est d'autant plus important que les règles iptables ne sont pas gravées dans le marbre.

Exemple pour rediriger un paquet IPv6 provenant du port 4011 de l'adresse 1:2:3:4:6:: vers le port 4012 de l'adresse 1::2:3:4:7 et qui utilise le protocole TCP :

firewall-cmd --add-rich-rule='rule family="ipv6" source address="1:2:3:4:6::" forward-port to-addr="1::2:3:4:7" to-port="4012" protocol="tcp" port="4011"'

Le pare-feu peut enfin bloquer les changement de configurations provenant des applications locales, même exécutées en root. L'administrateur a la possibilité de gérer une liste des services qui peuvent le faire ou non et donner des autorisations après coup. Exemple si l'option est activée, la commande suivante :

firewall-cmd --add-service=imaps

retournera une erreur. Il faudra pour cela utiliser la commande suivante :

firewall-cmd --add-lockdown-whitelist-command='/usr/bin/python /usr/bin/firewall-cmd*'

ou ajouter dans le fichier de la liste blanche pour permettre ensuite l'activation du service. La sécurité en ressort accrue.

systemd

Le nouveau logiciel d'init utilisé par défaut dans Fedora s'améliore encore. Et comme pour le pare-feu, voici un extrait du travail réalisé.

L'usage des timers peut être basé sur le calendrier. L'objectif est de pouvoir lancer des services à des moments précis plutôt qu'à des itérations de temps. Par exemple, plutôt que de lancer un service par itération comme « toutes les 5 minutes » via systemd, il est possible de se rapprocher d'un format comme celui de cron pour signifier de lancer un service tous les 1ers du mois à 8h uniquement si c'est un mardi. Le format a été fait pour être plus lisible que cron comme :

Thu,Fri 2012-*-1,5 11:12:13

Cette ligne signifiant que la date concernée est le 1er ou 5e jour de chaque mois de 2012 à 11h12 et 13 secondes uniquement les jeudis et vendredis. Son équivalent cron serait plutôt :

12 11 1,5 * thu,fri cependant il n'y a ni la précision à la seconde près, ni de l'année.

Les conteneurs allégés sont disponibles. systemd-nspawn est un utilitaire plus puissant que chroot pour le développement, l'expérimentation, le débogage, etc. de la construction des paquets ou logiciels. Le but est de permettre à terme le démarrage d'une Fedora non modifiée et complète avec des services systèmes normaux afin que cela soit optimal.

Les catalogues de messages sont maintenant accessibles via systemd. Cela génère des messages dans le journal via un identifiant unique dont la chaine associée est située ailleurs. L'objectif est de permettre la traduction de ces messages dans la langue dans chacun. L'autre objectif est de permettre de relier plus facilement à un problème les métadonnées et les informations spécifiques à cette erreur.

Les noms des interfaces réseaux sont prédictibles avec systemd via udev. En fait, actuellement, si votre machine a plusieurs interfaces réseaux comme eth0 et eth1, il est possible qu'au prochain démarrage l'association physique et logique des interfaces soient inversées. Au niveau de la sécurité c'est un problème car les règles de pare-feu peuvent être associées à l'interface logique et si l'interface physique sous-jacente n'est plus la même, les problèmes peuvent survenir...

L'association se base sur le nom du Firmware ou BIOS et de l'index des cartes embarquées, puis ceux de la liaison PCI Express, la connexion physique de la carte et l'adresse mac avant de finir par une association aléatoire si aucune des méthodes précédentes n'a fonctionné.

Le contrôle des ressources a également été étendu par systemd. Actuellement avec les cgroups, il est possible d'allouer une part de la RAM, du CPU et autres ressources. L'extension en question permet d'étendre cette allocation si nécessaire afin de rendre le système plus dynamique suivant les besoins.

Haute disponibilité / Supervision

OpenLMI, l'infrastructure pour gérer les systèmes à distance, a reçu de nombreux correctifs afin d'être plus simple d'utilisation. L'API de stockage CIM a été complétée pour une meilleure gestion à distance. De nouveaux fournisseurs ont été ajoutés ou étendus pour l'ajout d'enregistrement d'Active Directory ou Kerberos. Le shell de cette solution a été amélioré pour simplifier la réalisation de scripts. Et les permissions peuvent ajouter des systèmes externes pour améliorer la sécurité comme SELinux.

L'infrastructure de surveillance système Performance Co-Pilot a également été mis à jour vers sa version 4. On notera une amélioration de la sécurité par le transport des données distantes par SSL et l'introduction de l'authentification. Ensuite, une interface JSON a été développée pour être utilisable par le Web et elle utilise le format de données RRD qui est interopérable. Le support de l'IPv6 est également à noter avec la possibilité d'utiliser Python pour le scripter. Pour finir, il est possible de surveiller systemd et les clusters GFS2.

Divers

La gestion des points de sauvegarde ou de restauration des processus vient d'être introduite dans Fedora. Cela va servir en cas de manque de ressources, de crash ou d'un besoin de ré-équilibrage dans la distribution des ressources. Par exemple, en cas de crash de l'application, il est possible de la relancer sans perte de jeu de données trop volumineux en cours. Il est ainsi possible de charger le processus dans un autre système pour le transfert des ressources, ce qui peut trouver une application particulière dans le domaine de la virtualisation.

NSS, GnuTLS, OpenSSL et Java partagent les sources pour retrouver les certificats systèmes et les listes noires associés. L'objectif final est de pouvoir configurer de nouvelles autorités de certification, avec un système de niveaux requis pour un système en local, tout en étant partagé par l'ensemble des applications. La brique présentée est la première étape vers cette solution finale.

Ajout de GSS Proxy qui a pour but de remplacer rpc.svcgssd(8) comme serveur de rpcsec_gss. C'est un protocole standard RPC qui permet une meilleur séparation des droits pour l'accès aux données via la GSSAPI pour l’initialisation et l’authentification. La GSSAPI est analogue au fonctionnement de Windows SSPI et est compatible avec cette solution. Le GSS Proxy doit être utilisable pour Kerberos et les clients NFS en permettant par exemple aux applications de ne pas accéder trop facilement aux clés de chiffrement matérielles, le proxy servant de filtre à ces accès.

Et la nouvelle version 2.2 de SystemTap qui fait son apparition. Cette solution de traçage du système pour tenter d'endiguer les problèmes de performances ou de stabilité dispose d'un nouveau manuel concernant les messages d'erreurs, l'usage de perf pour lire les données à la demande ou effectuer des tâches particulières à un processus et améliore le support de la programmation concurrente pour mieux traiter les processus exploitant le parallélisme.

Virtualisation

Les conteneurs de ressources permettent à Pacemaker et Corosync sur une machine hôte d'étendre le management des ressources au sein des machines invitées comme KVM/Linux Containers en utilisant le service pacemaker_remote. En effet, jusqu'alors, ces applications ne pouvaient que lancer, arrêter, gérer ou migrer de telles machines invitées au sein d'un cluster.

La migration du stockage virtuel fait son apparition et ce sans taux d'indisponibilité. Aucun stockage partagé entre les deux machines n'étant nécessaire à cette réalisation contrairement à la situation passée ce qui entrainait des difficultés à l’utiliser. C'est équivalent à la solution VMWare qui se nomme « storage vmotion ».

Le générateur de nombre aléatoire para-virtuel est accessible aux machines virtuelles pour générer des nombres aléatoires avec une bonne entropie dans cette configuration. La machine hôte pouvant ainsi injecter de l'entropie dans la machine virtuelle suivant le besoin et limiter le déni de service par manque d'entropie.

Le pilote QXL, utilisé par Spice pour la virtualisation, dispose de la compatibilité avec KMS. Cela permettrait notamment à terme de disposer d'un environnement Spice supportant la 3D et d'améliorer les performances en dédiant tout à la carte graphique, via OpenGL, pour les calculs graphiques.

L'informatique dans les nuages

Les versions de Fedora disposent d'une image prête à l'emploi, destinée à l'informatique des nuages pouvant être utilisée dans une infrastructure EC2 ou équivalent comme OpenStack, CloudStack ou Eucalyptus. La création de ces images se ferait régulièrement pour la version en développement continuel, Rawhide, et une image pour les versions Alpha, Beta et finale de version stable de la distribution. Ainsi elles seront plus simples à tester et à utiliser, en permettant de tester régulièrement la chaine de construction de ces images.

Aux origines du nuage, il y avait OpenShift Origin. Ce logiciel fait son apparition dans Fedora pour compléter les autres solutions de cloud existantes comme Eucalysptus ou OpenStack. L'objectif est de donner au client la maitrise de ses applications qu'il pourra développer et intégrer quant le serveur et la plateforme proprement dite sont gérés par un prestataire. Cette solution offre de la souplesse et de la puissance aux applications clientes. OpenShift supporte la plupart des technologies libres que ce soit pour les bases de données, les frameworks ou encore les langages de programmation.

Pour finir au 7e ciel, le Grizzly d'OpenStack apparaît dans les contrées de Fedora 19. Cette mise à jour majeure apporte le support des groupes de sécurité, une nouvelle infrastructure LDAP est introduite et l'envoie de données a été amélioré. Un nouveau panel de gestion a été ajouté tout comme une configuration unifiée du système.

Arrivée de Heat qui est une API d'orchestration dans le cloud pour OpenStack en ligne de commande, solution particulièrement développée chez Fedora depuis plus d'un an. Le fonctionnement est très classique, l'administrateur décrit des machines virtuelles via un système de template basé sur l'utilisation de oz, un outil de création d'image disque automatisé, et heat se charge du déploiement de la machine et des ressources à partir de la configuration. Intégrant dés le départ une API, le but est de permettre une automatisation des processus afin d'industrialiser l'usage d'openstack.

Pour finir sur OpenStack et redescendre des nuages, Ceilometer est supporté. Cet utilitaire collecte les mesures effectuées au sein de l'infrastructure OpenStack pour s'assurer que deux agents n'ont pas besoin d'écrire sur les mêmes données. Il peut bien entendu collecter d'autres données et être étendu. Il possède la possibilité d'échanger les données collectées avec d'autres utilitaires.

Développement

Le Projet Fedora apporte une attention particulière à simplifier la vie aux débutants en programmation à partir de nombreuses petites modifications. De nombreux langage de programmations ou d'outils qui y sont liés, fournissent des codes d'exemples, sont mieux configurés pour être utilisés directement, les dépendances essentielles fournies plus simplement, intègrent de nombreux utilitaires avec git et simplifient la création de projet dans un langage donné ou un framework.

Langages de programmation

Le langage Java a droit à une mise en bouche de la future version 8, en attendant la sortie de la version officielle plus tard dans l'année. Dans cette version nous avons entres autre : l'ajout des lambdas expressions, la construction du programme repose sur les autoconfs, les profils compacts pour les périphériques peu puissants, le début de la modularisation de la plateforme ou un nouveau moteur JavaScript. Et c'est aussi l'occasion d'obtenir la création de machine virtuelle plus légère et une amélioration des vérifications des erreurs,

La pile de développement PHP a migré vers la version 5.5 du langage. De nombreuses portions de code ont été séparées sous forme d'extensions pour rendre le système plus modulaire. Dans ce travail nous pouvons noter la nouvelle extension Zend OPcache, ainsi que de grandes améliorations de performances ou le support des générateurs ou encore l'instruction foreach() qui supporte list().

Le langage Ruby qui a le vent en poupe se permet d'avoir une nouvelle implémentation libre disponible sur Fedora ! JRuby 1.7 est surtout considéré pour l'amélioration de ses performances dans le cadre de tâches parallèles. Cela devrait permettre de satisfaire les besoins de nombreux développeurs Ruby. Pour les plus traditionalistes, c'est Ruby 2.0 qui est présent. Outre quelques raffinements, il supporte le traçage notamment par SystemTap ce qui en facilitera le débogage des applications, un changement de moteur pour les expressions régulières et de nouveaux mots-clés pour les arguments à la clé !

L'interpréteur libre du langage de programmation Scheme, GNU Guile, a aussi une mise à jour vers la version 2. Cette version est l'occasion pour lui de gérer l'encodage Unicode, d'avoir un compilateur et une machine virtuelle, d'utiliser un nouveau ramasse-miette, le traitement du format XML et un nouveau module dédié au web. Le nouveau standard R6RS bénéficie quant à lui d'un support partiel.

Erlang R16 est mis en avant dans cette édition. Les processus manipulés dans la machine virtuelle sont optimisés et cette version autorise également l'écriture et lecture parallèle des données, le support complet de l'UTF-8 (qui sera activé comme encodage par défaut dans la R17), l'allocation dynamique des structures ports a été améliorée en augmentant le nombre d'objets maximum autorisés ou le client HTTP supporte le passage de HTTPS par un proxy. Pour finir il y a une amélioration dans la gestion du multi-processeur et de l'analyseur.

Bibliothèque

La brique de base du système, GLibc, bénéficie d'une mise à jour vers la version 2.17. Cette bibliothèque a été portée vers l'architecture ARM AArch64, optimise les copies mémoires pour les processeurs MIPS et System z10. Il y a aussi d'autres optimisations au sujet des chaînes de caractères pour les processeurs POWER7, de nouvelles traductions et une amélioration du support de la compilation croisée.

La bibliothèque pour le langage C++, Boost, a été portée à sa dernière version qui est la 1.53. Cette version apporte de nombreuses sections nouvelles comme le changement de contexte, les coroutines, le flottant multiprécision, les données C++11 atomic et la résolution des équations différentielles. Et la plupart des autres sections ont reçu des correctifs et ajouts importants.

La bibliothèque python-imaging (PIL) laisse sa place à son fork Pillow. En effet, python-imaging n'est plus maintenu depuis longtemps et n'était pas compatible Python 3. Les logiciels dépendants de PIL ont été portés et testés avec Pillow.

Le paquet PyXML a été supprimé de Fedora. En effet, ce projet n'est plus maintenu par ses développeurs depuis de nombreuses années et a été remplacé par les fonctions de la bibliothèques standards qui s'en occupent. Cela permet de se débarrasser d'un vieux code bogué au profit d'un autre plus actif et bénéficiant de correctifs non appliqués à PyXML.

Outils

La suite de compilation GCC a été améliorée avec sa version 4.8. Outre une légère refonte en C++, cette version intègre des outils de détection d'accès concurrents à une même donnée ou de détection d'accès mémoires invalides. Le langage C et ses dérivés bénéficient de messages de diagnostics plus clairs et précis. Le support de la norme C++11 est désormais complet au niveau du langage. Sans oublier le support de la nouvelle architecture ARM 64 bits.

Son cousin MinGW GCC 4.8 pour la compilation croisée à destination des plateformes Windows profite des mêmes améliorations.

Le compilateur CLang n'est pas en reste avec l'intégration de la version 3.3 qui offre un support complet de la norme C++11.

Node.js est révélé au grand jour dans cette version de Fedora. Cette plateforme légère de compilation du JavaScript permet d'obtenir des applications web scalables et performantes. L'objectif étant toujours d'attirer les développeurs avec une large gamme d'outils à leur disposition, ici pour les amateurs de JavaScript côté serveur.

Inclusion de l'utilitaire MEMSTOMP DSOs qui pourrait aider les développeurs à détecter plus rapidement les comportements indéfinis à l'appel de certaines bibliothèques avec le chevauchement des arguments en mémoire. Cet utilitaire est plus léger que Valgrind par exemple pour réaliser cette action.

Anecdotes autour de cette version

Les distributions GNU/Linux sont depuis de nombreuses années compatibles avec l'Unicode. Mais derrière cette réussite bien affichée, quelque chose n'a jamais été réellement testé : les nom de versions utilisant des caractères non-ASCII. Avec le nom Schrödinger Cat's, l'équipe de développement de Fedora a mis en évidence de nombreux bogues autour de ce sujet à cause du nom ésotérique (https://lwn.net/Articles/545741/). La fonction fautive is_text_file() a été ainsi corrigée pour tenir compte de cette possibilité. Un grand débat s'est tenu autour de la correction du bogue et sur la date effective de correction afin d'éviter un énième retard de publication.

La version Alpha a été retardée pour cette version de Fedora à cause d'un bogue important dans la gestion de l'EFI pour le démarrage de la machine si la partition concernée était remplie au delà de 50%. Nul doute que ce problème important valait ce retard qui a permis son éradication et le retour au sourire pour les utilisateurs concernés.