Dépêche sous licence CC BY-SA
En ce mardi 15 novembre 2016, le projet Fedora est fier d’annoncer la sortie de la distribution GNU/Linux Fedora 25.
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, systemd, 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.
Environnement bureautique
La nouveauté la plus importante est sans conteste la mise à disposition par défaut de Wayland pour l'environnement bureautique GNOME. Fedora devient ainsi la première distribution majeure à faire ce choix, pour promouvoir ce projet novateur annoncé il y a 8 ans maintenant. Wayland consiste en une remise à plat du serveur graphique historique X11 (qui a plus de 30 ans) en tenant compte de l'évolution des usages et de l'architecture de nos machines aujourd'hui. Wayland vise à améliorer la sécurité du système, en évitant qu'une application quelconque puisse dessiner sur d'autres applications par exemple. Il pourrait à terme améliorer les performances, en exploitant pleinement l'accélération matérielle par les cartes graphiques. Puis il devrait améliorer la fiabilité du système, en améliorant l'architecture du programme et en facilitant sa maintenance.
Cependant, si Wayland commence à devenir mature, de nombreuses fonctionnalités restent à proposer par rapport à l'expérience proposée par X11. C'est pourquoi, à l'ouverture de la session GNOME, il reste possible de choisir X11. Pour ceux qui n'ont pas besoin de ces fonctions, l'usage de Wayland devrait être totalement transparent. Fedora espère proposer toujours plus de technologies innovantes et modernes et récolter beaucoup de retours afin de les améliorer avant une éventuelle généralisation à d'autres distributions. Notons que si les autres environnements comme KDE peuvent exploiter Wayland, la stabilité n'est pas encore jugée suffisante pour proposer cela par défaut pour ces environnements.
Cette nouveauté a été possible grâce à la mise à jour de GNOME à la version 3.22. Logiciels gère nativement mais sommairement le format de paquets Flatpak de Freedesktop.org qui est un format concurrent de Snap de Canonical. Dans cette optique de cloisonnement, les applications doivent demander des autorisation pour accéder à certaines fonctions comme la géolocalisation, de manière similaire à ce qui se fait sur téléphone. La stabilité de l'API des extensions est telle, que les versions supportées par les extensions ne sont plus vérifiées pour enrichir l'écosystème. Fichiers peut faire du renommage multiple, tirant parti des métadonnée éventuelles dans ce but. Fichiers est également dissocié de l'affichage du bureau lui même pour améliorer la stabilité du système. Et bien d'autres changements !
Nous en avions parlé pour Fedora 24, l'utilitaire Media Writer est la méthode de téléchargement de Fedora par défaut. L'objectif est en effet que l'utilitaire télécharge et installe très simplement une version spécifiée de Fedora, qui peut être un Spin par exemple. Cela évite notamment de devoir graver l'image disque à la main sur clé USB ou CD, étape compliquée pour trop d'utilisateurs potentiels. Cette fois, l'utilitaire est disponible pour Windows et macOS également, d'où sa mise en avant pour cette version.
La distribution propose de mieux exploiter les machines avec deux cartes graphiques, une intégrée au processeur et une autre externe. Cette configuration, très populaire sur les ordinateurs portables récents, permet en temps normal d'avoir une carte graphique minimale suffisante pour la bureautique qui consomme peu d'énergie et d'utiliser la carte externe pour les applications gourmandes. Jusqu’ici, sans outil externe, votre environnement fonctionnait avec une carte graphique seulement et sans possibilité de changer celle en fonction à chaud. Aujourd'hui, celle intégrée au processeur est utilisée par défaut. Puis, en cas de besoin, vous pouvez lancer un logiciel sur l'autre carte graphique. Cela nécessite de lancer le programme avec la variable d'environnement DRI_PRIME=1 ou via un clic droit pour lancer l'application dans l'interface GNOME Shell.
Administration système
Fedora poursuit le changement opéré par Fedora 24, avec la suppression des algorithmes de sécurité obsolètes TC4 et SSL 3.0 dans la bibliothèque NSS. Après les bibliothèques OpenSSL et GnuTLS, cela concerne donc cette fois les applications de Mozilla ou curl. Cela permet d'améliorer la sécurité des applications en empêchant l'utilisation de ces protocoles qui ne sont plus sécurisés. Dans la même veine, les certificats 1024 bits provenant d'autorités de certification ont été supprimés du système.
Deux liens symboliques liés à SSH sont supprimés : slogin et ssh-keygen. Le premier était un lien symbolique vers ssh lui même pour la compatibilité avec d'anciens systèmes mais qui a été supprimé par le projet officiel il y a peu et Fedora a décidé d'en faire autant. Le second était un script notamment d'init pour générer les clés SSH. Cependant, avec le passage à systemd, il a été supprimé et les applications qui ont besoin des clés SSH disponibles sur le système devront dépendre du service systemd sshd-keygen.target.
La bibliothèque UDisks2 a été remplacée par Storaged. Cette bibliothèque est en fait un fork de UDisks2 pour proposer des greffons orientés pour l'entreprise pour gérer les volumes LVM2 et iSCSI et gère aujourd'hui également Btrfs, BCache, LSM et ZRam. Cependant la compatibilité binaire et avec DBus a été préservée. Cela concerne la plupart des logiciels qui s'occupent des espaces de stockages tels que GVFS, GNOME Disques, blivet ou Cockpit.
Améliorations dans l'utilitaire Cockpit. Cet utilitaire, prisé par les administrateurs système, dispose maintenant d'un module similaire au rapporteur graphique des anomalies constatées par SELinux avec la suggestion de correction si l'anomalie est légitime. Les clés SSH de l'hôte sont affichées dans le tableau de bord pour identifier plus facilement les changements opérés sur celui-ci. En outre, il devient possible d'utiliser l'identification par deux facteurs pour améliorer la sécurité d'accès.
FreeIPA, le système de gestion d’identité progresse à la version 4.4. Cette version apporte dans l'interface web la possibilité de visualiser et de modifier la topologie du système. Cette même interface peut être accessible via une identification par clés de sécurité ou certificats. L'intégration d'Active Directory progresse, avec l'ajout de fonctions pour les environnements professionnels, comme les utilisateurs qui peuvent changer leurs informations via la ligne de commande ou encore le solveur DNS qui gère les conflits d'espace de noms. Et bien d'autres choses encore !
Développement
La bibliothèque standard Glibc progresse à la version 2.24. Comme souvent, glibc renforce sa stabilité et sa sécurité par des correctifs mineurs. Fedora en a profité pour créer deux paquets glibc-nss-devel et libcrypt-nss pour tout ce qui concerne NSS afin d'alléger les systèmes n'en ayant pas besoin. Dans ce but également, les binaires sln et ldconfig sont maintenant identiques, car ils avaient beaucoup de code en commun. Comme busybox, l'usage de la partie spécifique de l'un ou de l'autre dépendra du nom de la commande d'invocation.
Pour Python, il est possible d'installer des versions concurrentes ensemble. Auparavant, Fedora ne proposait que les dernières versions de Python des branches 2.x et 3.x. Aujourd'hui, il existe des paquets pour exploiter Python 3.5, 3.4, 3.3, 2.7 et 2.6 au sein d'un même système pour faciliter le travail des développeurs sur des applications pas toujours compatibles.
Le compilateur d'Haskell GHC passe à la version 7.10. Cette version introduit des changements majeurs, rompant la compatibilité avec le passé. Par exemple la classe Applicative devient une superclasse de Monad. Parmi les améliorations importantes, GHC se débarrasse des conditions spécifiques accordées à la bibliothèque C GMP pour gérer les grands nombres, dorénavant c'est une bibliothèque comme les autres. Les greffons peuvent aussi modifier le comportement du vérificateur de type, qui lui même peut supporter une signature de fonction partielle pour la traiter en détail dans un second temps.
Le reluisant langage Perl évolue à la version 5.24. Cette version apporte la gestion de l'Unicode 8.0 et le hasbang redirige maintenant vers le futur Perl 6. Certains comportements sont mieux définis, comme les décalages d'entiers négatifs (avec << ou >>) ou les fonctions printf et assimilées qui peuvent changer la précision des arguments. Les noms de variables en ASCII doivent être des caractères visibles et bien d'autres choses encore.
Pour les amateurs de JavaScript, c'est Node.js qui utilise la branche 6.x (6.9 plus précisément). En effet, Fedora avait repoussé ce changement pour des raisons de durée de vie des versions de ce projet. Parmi les améliorations notables, nous avons une meilleure gestion des erreurs dans beaucoup de modules. Il y a aussi une meilleure sécurité, par la mise à jour de nombreuses dépendances (comme OpenSSL ou V8) mais aussi par des changements de comportement comme url.resolve() qui n'envoie pas un couple identifiant / mot de passe en cas de changement de l'hôte par exemple. Et bien d'autres changements, qui peuvent nécessiter une adaptation des modules ou applications.
Le compilateur pour le langage Rust est enfin disponible. Le langage développé par Mozilla va servir de base aux changements à venir du moteur de rendu de Firefox : Gecko. En fait, ce langage a été conçu dans l'optique de remplacer C ou C++, avec des performances similaires mais une fiabilité à l'exécution accrue en réalisant beaucoup de vérifications en amont ou de par sa gestion de la concurrence permettant de tirer profit sans grand risque du parallélisme de nos processeurs. Cette mise à disposition permettra à la communauté autour de ce langage d'y travailler depuis Fedora plus simplement.
Le langage Go fonce à la version 1.7. Le langage de Google bénéficie surtout d'un changement de ses outils périphériques, le langage lui même bénéficiant de changements mineurs. Google s'est attaqué à de nombreuses optimisations, principalement pour l'architecture x86_64. Par exemple le compilateur est basé sur une nouvelle architecture SSA afin d'identifier plus rapidement des portions de code inutiles afin de gagner du temps à l'exécution et en taille de binaire. Le ramasse-miettes et le compilateur ont été optimisés également tout comme le format d'exportation des binaires. Selon Google, les binaires pourraient être 20 à 30% plus légers, et la vitesse d'exécution 5 à 35% plus rapide.
Le langage fonctionnel Erlang 19 est à l'honneur. Cette version apporte beaucoup de choses comme une amélioration des performances des fonctions cryptographiques via l'ajout d'une interface permettant l'usage plus poussé d'OpenSSL. Une nouvelle machine d'état gen_statem est proposée, destinée à remplacer gen_fsm en étendant ses fonctionnalités comme les évènements qui peuvent être repoussés. Mais aussi l'ajout expérimental de la gestion des Unix Domain Sockets , ouvrant la voie l’interaction d'Erlang avec journald, systemd ou encore dbus, que le nouveau paquet erlang-dbus permet.
Le framework Ruby On Rails est sur les rails vers la version 5.0. Il met à disposition ActionCable pour interagir avec les WebSockets ou encore API mode pour concevoir des API serveur plus facilement. Ou encore le nouvel utilitaire Rake pour exploiter Rails en ligne de commande.
Le langage PHP s'impose avec la version 7.0. Cette version majeure garde une bonne compatibilité ascendante avec la précédente. Une bonne partie a été réécrite pour améliorer les performances de consommation mémoire comme celles de temps d'exécution (de l'ordre de 50% pour chaque, pour les gros sites). Mais l'API interne a beaucoup changé, ce qui a impliqué beaucoup de réécritures des extensions en C, et la suppressions de toutes celles qui n'ont pas su tenir le rythme.
Inclusion de Jekyll, un utilitaire qui transforme vos fichiers textes au format Liquid et Markdown en site web ou blog automatiquement. GitHub Pages repose sur cette solution par exemple.
Internationalisation
La norme UNICODE 9.0 fait son entrée dans Fedora 25. Cette mise à jour apportée aux bibliothèques de base de la distribution telle que glibc permet de la répercuter sur l'ensemble des applications. Elle apporte près de 7500 caractères, environ 70 emoji et ajoute ou améliore la gestion de certaines langues asiatiques et africaines.
L'assistant à la saisie IBus a bénéficié de deux améliorations importantes. Tout d'abord, son aide à la saisie rapide peut suggérer les emoji. plutôt que d'insérer manuellement les caractères UNICODE correspondants, ici ils seront donc suggérés. Ce même assistant qui suggère des mots durant la frappe peut supporter plusieurs langues à la fois. Ainsi il est possible d'autocompléter le terme en cours en anglais alors que la phrase est en français et inversement.
Du côté du Projet Fedora
L'image minimale de base de Fedora ne dispose plus des paquets Perl pour l'alléger d'environ 20 Mio et simplifier sa maintenance. Cette image de base, qui pèse aujourd'hui 527 Mio, est utilisée par Koji pour tester l'installation d'un ensemble de paquets essentiels pour toutes les images de Fedora. Elle est aussi exploitée par les empaqueteurs pour s'assurer du bon fonctionnement d'une mise à jour ou d'un nouveau paquet. Cela leur offre donc également un gain de temps important à terme.
Un nouvel outil pour gérer la création des images officielles a été conçu. Nommé Release Engineering Automation Workflow Engine , il met en œuvre une centralisation dans la communication entre certains composants de l'infrastructure afin de collecter les journaux associés et de proposer un véritable espace de travail pour simplifier ce processus. Le tout reposant sur Ansible, il permet de remplacer un bon nombre de scripts et autres tâches cron et de simplifier l'infrastructure existante. Cela permettra au processus de devenir plus flexible à l'avenir car plus fiable et rapide, notamment dans le cadre de Fedora.NEXT, mais aussi de former plus facilement de nouveaux contributeurs dans cette équipe de livraison.
Les nouvelles de la traduction
Pour Fedora 25, les traducteurs se sont chargés de traduire intégralement ibus-typing-booster, qu’on pourrait appeler l’accélérateur de saisie ! Il vise à l’origine à faciliter l’écriture de langues asiatiques, mais peut aussi permettre aux européens, outre l'accélération de la saisie par prédiction, d’accéder à leurs propres symboles : les émoticônes ! En saisissant le drapeau, on nous suggère « 🏳 » ou le chat « 🐈 ».
Dans la continuité, nous avons également traduit/finalisé des outils plus anciens ibus, ibus-anthy, ibus-chewing, ibus-libpinyin. permettant la saisie en japonais et chinois.
Évidemment, l’outil Fedora Media Write, qu’on appellerait l’installateur de médias, est intégralement traduit pour faciliter l’installation. Les sites Internet et tous les outils principaux sont toujours complètement traduits.
L’outil de signalement automatique ABRT et ses dépendances devraient être également complètement traduits pour faciliter la remontée de rapports d’anomalie, ainsi que Storaged pour le partitionnement.
L’équipe de Documentation a toujours besoin de bras pour actualiser ses documents et publier nos traductions. Ils refondent leurs outils et chaînes de production, n’hésitez pas à les aider !
Pour des informations similaires mais globales à toutes les langues, voyez G11N/Fedora_25_Talking_points.
Que faire pour aider ?
Dès que vous voyez un logiciel (que vous utilisez) qui est incomplet voire même non traduit :
- remontez jusqu’à son code,
- trouvez sa plateforme de traduction,
- battez-vous pour obtenir une traduction à 100 %,
- relisez trois fois pour un 100 % en qualité,
- suivez son cycle de parution pour s’assurer que les nouvelles traductions parviennent jusqu’à votre ordinateur.
La dernière étape peut prendre du temps.
Traduisez également les notes de version de vos logiciels et outils pour faciliter leur compréhension.
Un doute dans la traduction d’un programme ?
Vous pouvez préciser dans quelle langue lancer le programme en surchargeant la valeur de '“LANG”'
Si votre système est configuré en Français, vous pouvez tout de même lancer l’éditeur OpenStreetMap en anglais, en faisant :
LANG="en_US" josm
Organisation de Fedora
L’organisation de la traduction d’une distribution est particulière de part la diversité des sources des contenus fournis à l’utilisateur.
La communauté Fedora :
- utilise majoritairement Zanata comme plateforme de traduction de ses productions internes http://fedora.zanata.org/
- on y trouve par exemple les sites Internet https://fedora.zanata.org/version-group/view/web
- les outils majeurs, tels que l’installateur ou le gestionnaire de paquets DNF https://fedora.zanata.org/version-group/view/main
Des logiciels peuvent être majoritairement utilisés par Fedora, mais être pensés dans une optique plus large, on les retrouvera sur la plateforme “publique” de Zanata. C’est d’ailleurs là qu’on trouvera Zanata ou Publican : https://translate.zanata.org/
Pour tout le reste, il faut remonter à la source du code pour trouver où traduire. Voici quelques exemples parmi les plus connus :
- Thunderbird et Firefox : https://wiki.mozilla.org/L10n : Home_Page
- Libreoffice : https://fr.libreoffice.org/community/localization/
- GNOME : https://l10n.gnome.org/
- KDE : http://l10n.kde.org/