From Fedora Project Wiki

En ce mardi 2 juillet 2013, comme tous les six mois, la célèbre distribution GNU/Linux libre et gratuite Fedora nous propose une nouvelle version après plusieurs semaines de développement. Cette 19e version répond au nom de Schrödinger Cat's, en l'honneur d'une expérience de pensée très célèbre de la mécanique quantique.

Fedora est une distribution communautaire dévellopé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 se présente comme une sorte de vitrine technologique pour le monde du logiciel libre, c'est pourquoi elle inclut davantage de nouveautés par rapport à d'autres distributions, ce qui peut en faire une distribution instable à certains égards.

Fedora garde toutefois 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 RHEL et CentOS (plus indirectement), plus professionnelles et plus stables, sont développées à partir d'une version de Fedora et mises à jour environ tous les 18 à 24 mois. Notons que CentOS est un clone gratuit de RHEL, cette dernière étant certes libre mais payante, offrant ainsi un support technique 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'extension 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 favoris. systemd-logind remplace ConsoleKit pour les composants nécessitant des autorisations spécifiques. le gestionnaire de fichier 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.

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.

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.

Développement

Langages de programmation

Bibliothèque

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