From Fedora Project Wiki

< User:Renault‎ | Promotion

Revision as of 18:02, 1 July 2013 by Hguemar (talk | contribs) (→‎Outils: CLang + réécriture de certaines tournures)

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.


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 fichiers pour améliorer la qualité du code, les performances et apporter de nouvelles fonctionnalités. De nombreuses applets Plasma ont été porté 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.

Concernant KDE plus précisément, l'utilitaire KScreen a été ajouté pour la détection et la gestion des écrans sous cet environnement. Ce logiciel moderne permet notamment la sauvegarde et restauration des configurations. En plus, il se base sur les EDIDs des écrans de télévision pour réemployer la configuration précédente associée à cet écran. Cet utilitaire simplifie beaucoup la vie aux personnes qui changent régulièrement d'écran via leurs ordinateurs portables par exemple.

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, notamment utilisés actuellement par GNOME 3.

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 instruction 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 d'impression 3D et bien intégrée.

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é 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, l'objectif a été centré 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és pour la gestion des disques, permet d'ajouter 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', pour joindre la machine durant l'installation via un domaine AD ou FreeIPA, cela demande 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 également é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 machines hôte seulement. Actuellement les images initramfs sont génériques et inclues un grand nombre de pilotes afin d'être utilisable 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 ce qui prend du temps et des ressources inutilement. A chaque mise à jour du noyau, la liste du matériel sera mis à 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 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 bases de paquets de la distribution. Au menu une amélioration des performances a été enregistré, la détection des conflits de fichiers a également été amélioré et le fichier de macro %config est mieux traité. Les fichiers de spécifications des paquets RPM ont été un peu revue avec une meilleur séparation de la licence et de la documentation et une amélioration des erreurs de parsing du fichier qui sont plus 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 augmentant les performances et simplifiant l'administration par l'automatisation du procédé.

La configuration par défaut de Yum vis à vis des groupes a été changé de group_command=compat à group_command=objects. Ainsi maintenant, si un groupe installé possède un paquet supplémentaire, un yum upgrade l'installera et l'affectera à ce groupe. De plus, en acs 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 d'utilitaires XMvn et l'automatisation de macros %install dans ce but. La génération des dépendances a également été automatisé pour simplifier la maintenance.

Serveurs logiciels

La gestionnaire de bade 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 est ainsi amélioré 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).

Alors que l'impression 3D a reçu un important travail d'intégration, l'impression 2D poursuit son chemin avec CUPS 1.6. Cette dernière version du serveur d'impression 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 supporte maintenant les profils ICC d'étalonnage des couleurs, la découverte et l'usage du réseau via Avahi. Les filtres et autres traitement 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é également revu afin d'éviter les envois de données en clair à tout le monde notamment via le Wifi. 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 mais en VoIP. La configuration du proxy pour ces services est également simplifié via l'outil reSIProcate tandis que reTurnServer est un serveur qui 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 aux 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 deux authentifications. Si l'administrateur active ce service, il faut que l'utilisateur utilise un client TOTP pour établir l'authentification qui serait complété 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. pour les membres du domaine. 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 le cas où les Active Directory sont situés dans des réseaux physiques 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. Actuellement, le travail a surtout été fait 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 riche dit de haut niveau pour facilité la créations des complexes règles de pare-feu 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 a enfin la configuration simple pour bloquer les changement de configurations provenant des applications locales, même exécutées en root. L'administrateur peut gérer ainsi une liste des services qui peuvent le faire ou non et faire 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é est ainsi 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 fourni.

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 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. L'objectif 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 car l'anglais reste une langue non maternelle pour une majorité de la population mondiale. L'autre objectif est de permettre de relier plus facilement à un problème, une erreur, les métadonnées et informations spécifiques à cette erreur et de faciliter la maintenance.

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 via liaison PCI Express, la connexion physique de la carte et l'adresse mac associée 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 via 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é pour une meilleur 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ée 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. Dans les améliorations notables, il y a l'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 de point de sauvegarde et de restauration des processus a été introduits dans Fedora. Cela peut servir notamment en cas de manque de ressources, de crash ou de l'équilibrage dans la distribution des ressources. Par exemple, en cas de crash de l'application, il est possible de la relancer sans perdre des données trop volumineuses. Il est également 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 configurer de nouveaux autorités de certification de confiance, avec un système de niveaux qui sont requis pour le système local, et que tout ceci soit 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 compatible avec cette solution. Le GSS Proxy doit notamment ê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 en résidant 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 ces 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 pour ê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 étant directement prêtes à l'emploi mais cela permettrait également de tester régulièrement la chaine de construction de ces images pour l'améliorer.

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 dans la plateforme tandis que le serveur et la plateforme proprement dite est gérée 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é. Puis 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 a apporté une attention particulière à simplifier la vie aux débutants de la programmation à partir de nombreuses petites modifications. De nombreux langages de programmations ou d'outils qui y sont liés, fournissent des code d'exemples, sont mieux configurés pour être utilisés directement, les dépendances essentielles fournies plus simplement, intégration de nombreux utilitaires avec git et simplification de la création de projet dans un langage donné ou un framework.

Langages de programmation

Le langage Java a le droit a une mise en bouche de la future version 8, en attendant la sortie de la version officielle plus tard dans l'année. ce qui est attendu dans cette version c'est entre autre : l'ajout des lambda expressions, la construction du programme basé 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. Mais 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é placés dans un code séparé sous forme d'extension pour rendre le système plus modulaire. Dans ce travail nous pouvons noter la nouvelle extension Zend OPcache qui a subi de grandes améliorations de performances ou le support des générateurs ou l'instruction foreach() qui supporte list().

Le langage Ruby qui a le vend 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.

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 mise en avant dans cette édition. Par exemple les processus manipulés dans la machine virtuelle sont plus optimisés et 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 structure port a été amélioré 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, l'optimisation des copies mémoires pour les processeurs MIPS et System z10. D'autres optimisation 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é à sa dernière version qui est la 1.53. Cette mise à jour apporte de nombreuses sections nouvelle 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 une mise à jour importante.

La bibliothèque python-imaging laisse sa place à son fork Pillow. En effet, python-imagin était non maintenu depuis longtemps et n'est pas compatible Python 3 ce qui devient problématique. Ainsi Fedora est doté d'une bibliothèque de manipulation d'image pour Python moderne et adaptée aux évolutions du langage.

Le paquet PyXML a été supprimé de Fedora. En effet, ce projet n'était 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é 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 dérivés bénéficient de messages de diagnostics plus clairs et précis et le support de la norme C++11 est désormais complet au niveau du langage. Sans oublier bien entendu le support de la nouvelle architecture ARM 64 bits. 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.

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

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.

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