GNU Guix 1.2.0 est publié

Posté par roptat le 29/11/20

Distribution

GNU Guix est le gestionnaire de paquets transactionnel et une distribution perfectionnée du système GNU qui respecte la liberté de ses utilisateurs. Guix peut s’utiliser en tant que gestionnaire de paquets sur n’importe quel système utilisant le noyau Linux ou Hurd, et peut s’utiliser comme distribution à part entière sur les machines i686, x86-64, ARMv7 et AArch64.

En plus des fonctionnalités habituelles des gestionnaires de paquets, Guix permet des mises à jour et des retours en arrière transactionnels, de gérer ses paquets sans privilèges, d’utiliser plusieurs profils par utilisateur, et d’empaqueter une collection de paquets via une archive TAR repositionnable ou une image Docker. Et tout ceci pour n’importe quel point dans le temps via guix time-machine .

Lorsque Guix est utilisé comme distribution GNU/Linux à part entière, il permet aussi de gérer son système d’exploitation avec une approche déclarative et sans état. Guix est extrêmement personnalisable et bidouillable grâce à ses interfaces Guile (un dialecte du langage Scheme).

La publication fournit des images d’installation ISO 9660, une image pour machine virtuelle et un script d’installation pour installer le gestionnaire de paquets sur votre distribution GNU/Linux sans interférer avec celle‑ci. Les utilisateurs de Guix peuvent mettre à jour comme d’habitude en lançant guix pull .

La suite de la dépêche est une traduction de l’annonce officielle. Le « nous » utilisé dans la dépêche renvoie à l’équipe Guix, pas aux traducteurs.

Sommaire

Nous sommes heureux d’annoncer la sortie de GNU Guix en version 1.2.0, juste à temps pour célébrer le huitième anniversaire de Guix !

La publication fournit des images d’installation ISO 9660, une image pour machine virtuelle et des archives pour pour installer le gestionnaire de paquets sur votre distribution GNU/Linux, soit à partir des sources, soit à partir des binaires. Les utilisateurs de Guix peuvent mettre à jour comme d’habitude en lançant guix pull .

Cela fait presque sept mois depuis la dernière version, pendant lesquels deux cents personnes ont contribué au code et aux paquets, et de nombreuses autres personnes ont contribué à d’autres tâches importantes : la revue de code, l’administration système, les traductions, la mise à jour du site Web, le mentorat à travers Outreachy, et bien d’autres !

Il y a eu plus de 10 200 commits durant cette période et c’est toujours un défi de résumer toute cette activité dans les notes de version.

Bonus musical

Avant d’aller plus loin, asseyez‑vous confortablement et lancez la lecture de cette chanson de publication très spéciale, Ode to One Two Oh (paroles) proposée par la sympathique équipe de Guix — voir les crédits plus bas !

Sécurité

Une avancée majeure dans cette version est la possibilité d’authentifier les canaux , ce qui fait sans doute aujourd’hui de Guix l’une des manières les plus sécurisées pour fournir un système d’exploitation. C’était le lien manquant dans notre « chaîne logistique logicielle » et nous sommes ravis qu’il soit désormais corrigé. Le résultat, c’est que guix pull et les commandes associées authentifient maintenant le code des canaux qu’elles récupèrent de manière cryptographique. Vous ne pouvez plus par exemple récupérer des commits non autorisés dans le dépôt officiel de Guix. Nous avons détaillé la conception et le code de cette fonctionnalité en juillet. Le manuel explique ce que vous devez savoir en tant qu’utilisateur et en tant qu’auteur d’un canal. Il y a aussi une nouvelle commande guix git authenticate pour pouvoir utiliser ce mécanisme dans des dépôts Git arbitraires !

Exemple de graphique de commit

En plus de cela, guix pull et guix system reconfigure détectent maintenant de potentiels retours en arrière du système ou de Guix et renvoie une erreur. Cela permet de s’assurer qu’on ne puisse pas vous tromper et faire revenir les logiciels de votre système à des versions antérieures, ce qui pourrait éventuellement réintroduire des vulnérabilités exploitables dans les logiciels que vous utilisez.

Avec ces nouvelles sécurités, nous avons ajouté un service de mise à jour non surveillées qui, en substance, lance guix pull && guix system reconfigure régulièrement. Des mises à jour non surveillées en toute quiétude.

Un autre changement important en termes de sécurité dont nous sommes très fiers est la réduction de l’ensemble d’amorçage à 60 Mio sur les systèmes x86-64 et x686, grâce à un travail acharné sur GNU Mes, Gash et d’autres logiciels associés.

Toujours sur le thème de la sécurité, le démon de construction et l’interface de programmation origin acceptent maintenant de nouvelles fonctions de hachage cryptographiques (en particulier SHA‑3 et BLAKE2s) pour les « dérivations à sortie fixe ». Jusqu’ici nous utilisions toujours des hachages SHA256 pour le code source.

Expérience utilisateur

Nous souhaitons que Guix soit accessible et utile pour une large audience, et ça a de nouveau été l’une des lignes directrices dans cette version. L’installateur graphique du système et le script pour installer Guix sur une autre distribution ont tous deux reçu des corrections de bogues et des améliorations en termes d’utilisabilité. Les nouveaux utilisateurs apprécieront le fait que guix help fournisse maintenant un aperçu clair des commandes disponibles, que les commandes guix soient moins verbeuses par défaut (elles n’affichent plus les longues listes de ce qu’elles vont télécharger), et que guix pull affiche une barre de progression lorsqu’il met à jour son dépôt Git. guix search , guix system search et les commandes similaires invoquent maintenant automatiquement un outil de mise en forme ( less par défaut), ce qui règle un désagrément souvent perçu.

La nouvelle version propose des améliorations de performance à plusieurs endroits . L’utilisation du nouveau « compilateur de référence » qui est arrivé avec Guile 3.0.4 permet de réduire les temps de construction de Guix lui‑même, ce qui signifie aussi que guix pull est moins gourmand en ressources. Les performances se sont améliorées à plusieurs autres endroits et il y a encore du travail à venir.

Nous proposons encore plus de flexibilité à la ligne de commande, avec l’ajout de trois options de transformation de paquets --with-debug-info (pour toujours déboguer dans de bonnes conditions !), --with-c-toolchain et --without-tests . Les transformations sont maintenant sauvegardées dans le profil et rejouées avec guix upgrade . En outre, ces options opèrent maintenant sur tout le graphe de dépendance, ce qui inclut des entrées « implicites » et donc permet d’effectuer des transformations précédemment impossibles, comme :

guix install --with-input=python=python2 python-itsdangerous

Enfin, le nouveau module (guix transformations) founit une interface pour les options de transformation disponibles sur la ligne de commande, ce qui est pratique si vous voulez utiliser une telle transformation dans un manifeste.

Le manuel de référence a été étendu : il y a une nouvelle section « Pour démarrer », la section « Interface de programmation » contient plus d’informations pour celles et ceux qui écrivent des paquets. Nous avons ajouté des exemples de code à de nombreux endroits. Sur la copie en ligne du manuel, les identifiants dans ces bouts de code sont cliquables et renvoient au bon endroit dans le manuel de Guix ou de Guile.

Finalement, le manuel est entièrement traduit en français, en allemand et en espagnol, avec des traductions partielles en russe et en chinois. Guix lui‑même est entièrement traduit dans ces trois langues et partiellement traduit en onze autres langues.

Lots, GNU/Hurd, images disques, services…

Attendez, il y en a encore plus ! Si ce qui vous intéresse, c’est d’apporter des applications de Guix à des machines qui n’ont pas Guix, guix pack -RR prend maintenant en charge un nouveau moteur d’exécution « fakechroot » pour les lots repositionnables, avec la possibilité de choisir entre différents moteurs à l’exécution avec la variable GUIX_EXECUTION_ENGINE . Le moteur fakechroot améliore les performances par rapport au moteur proot , pour les hôtes qui ne prennent pas en charge les espaces de noms d’utilisateurs non privilégiés.

La prise en charge de la compilation croisée d’un système entier — comme dans guix system build --target=arm-linux-gnueabihf config.scm — a été améliorée. Avec tout un travail de portage à la fois pour les paquets et la machinerie de Guix System. Cela permet d’apporter le service hurd-vm — un système Guix sur GNU/Hurd compilé de manière croisée lancé dans une machine virtuelle sous GNU/Linux. À son tour, ce service nous a permis de travailler sur la prise en charge native de GNU/Hurd.

En parlant de cela, le nouveau module (gnu image) implémente une interface flexible aux images de systèmes d’exploitation. Depuis la ligne de commande, elle est accessible via guix system disk-image --image-type=TYPE . Plusieurs types d’images sont pris en charge : le format ISO 9660 compressé, le format qcow2 contenant des partitions ext4, ext2 avec les options de Hurd, etc. Cela est actuellement implémenté avec genimage .

En plus des services système déjà mentionnés, une douzaine de nouveaux services sont disponibles, dont un service pour Ganeti, un service pour LXQt, un service R Shiny, un service Gemini, et un service pour le Guix Build Coordinator.

Deux mille paquets ont été ajoutés, pour un total de plus de quinze mille paquets ; 3 652 ont été mis à jour. La distribution embarque GNU libc 2.31, GCC 10.2, GNOME 3.34, Xfce 4.14.2, Linux-libre 5.9.3 et LibreOffice 6.4.6.2 pour n’en citer que quelques‑uns. Il y a aussi un nouveau système de construction de paquets pour Maven (l’amorçage de Maven dans Guix a été le sujet d’une présentation lors des Guix Days la semaine dernière)

Le fichier NEWS liste des changements supplémentaires importants et des corrections de bogues qui pourraient vous intéresser.

Essayer, c’est l’adopter !

Vous pouvez télécharger cette nouvelle version et nous contacter.

D’ailleurs, notre ambassadeur chez Debian nous signale que vous pourrez bientôt lancer apt install guix si vous utilisez Debian ou une distribution dérivée !

Amusez‑vous bien !

Crédits

Merci à Ricardo Wurmus ( grand stick , synthétiseur, percussions, voix et paroles), Luis Felipe (illustration), Vagrant Cascadian (paquet Debian, paroles) et Festival (voix de fond).

En savoir plus …