logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#26 24-11-2020 18:02:23

gonzoleri
Membre
Lieu : Provence Alpes
Distrib. : Guix System 1.4.0
Noyau : Linux gnu 6.0.13-gnu
(G)UI : Gnome Shell
Inscription : 24-12-2017

Re : Guix System, la 2ème distribution Gnu/Linux fonctionnelle

Salut !

Hier est parue la version 1.2.0 à laquelle j'ai contribué à mon niveau, qui n'est pas celui d'un·e développeur·euse, mais qui concerne la traduction en français d'environ 8% du manuel d'utilisation. Ces premiers efforts ont été bien accueillis par la très chaleureuse communauté Guix !

flight-of-the-guix.jpg

https://guix.gnu.org/en/blog/2020/gnu-g … -released/

Loin de toute la comprendre, je vous traduis l'annonce :

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

La version est livrée avec des images d'installation ISO-9660, une image de machine virtuelle et des tarballs pour installer le gestionnaire de paquets sur votre distribution GNU/Linux, soit à partir des sources, soit à partir des binaires. Les utilisateur·rice·s de Guix peuvent effectuer des mises à jour en lançant

guix pull

.

Il s'est écoulé près de 7 mois depuis la dernière version, au cours desquels 200 personnes ont contribué au code et aux paquets, et un certain nombre de personnes ont participé à d'autres tâches importantes - révision du code, administration du système, traduction, mise à jour du site web, mentorat de sensibilisation, etc.

Il y a eu plus de 10.200 commits dans ce laps de temps et c'est le défi de ces notes de publication de résumer toute cette activité.

Avant de poursuivre la lecture, asseyez-vous et écoutez ce morceau très spécial, « Ode to One Two Oh »

https://guix.gnu.org/audio/ode-to-one-two-oh.ogg

qui vous a été apporté par votre sympathique équipe de Guix - voir les crédits ci-dessous !

Sécurité
L'un des principaux points forts de cette version est la capacité d'authentification des canaux, ce qui fait probablement de Guix l'un des moyens les plus sûrs de fournir des systèmes d'exploitation complets aujourd'hui. C'était le chaînon manquant dans notre « chaîne d'approvisionnement en logiciels » et nous sommes heureux qu'il soit maintenant réparé. Le résultat final est que les commandes guix pull et les commandes connexes authentifient désormais de manière cryptographique le code des canaux qu'elles récupèrent ; vous ne pouvez pas, par exemple, récupérer des commandes non autorisées dans le dépôt officiel de Guix. Nous avons détaillé la conception et l'implémentation en juillet dernier. Le manuel explique ce que vous devez savoir en tant qu'utilisateur·rice et en tant qu'auteur·e de canal. Il y a aussi une nouvelle commande

guix git authenticate

qui permet d'utiliser ce mécanisme d'authentification pour les dépôts Git arbitraires !

De plus,

guix pull

et

sudo guix system reconfigure

détectent maintenant les déclassements potentiels du système ou les déclassements Guix et signalent une erreur. Cela permet de s'assurer que vous ne pouvez pas être amené à déclasser le logiciel de votre système, ce qui pourrait potentiellement réintroduire des vulnérabilités exploitables dans le logiciel que vous exécutez.

Une fois ces garanties en place, nous avons ajouté un service de mise à niveau sans surveillance qui, en un mot, fait fonctionner guix pull && sudo guix system reconfigure /etc/config.scm périodiquement. Mises à jour sans surveillance et tranquillité d'esprit.

Un autre changement important du point de vue de la sécurité dont nous sommes fiers est la réduction des binary seeds à 60 MiB sur x86_64 et i686, grâce au travail inlassable sur GNU Mes, Gash, et les logiciels connexes.

Sur le même thème de la sécurité, le démon de construction et l'interface de programmation d'origine acceptent désormais de nouvelles fonctions de hachage cryptographique (en particulier SHA-3 et BLAKE2) pour les « dérivations à sortie fixe » - jusqu'à présent, nous utilisions inconditionnellement les hachages SHA256 pour le code source.

Expérience utilisateur·rice
Nous voulons que Guix soit accessible et utile à un large public et cela a été une fois de plus un principe directeur pour ce communiqué. L'installateur du système graphique et le script pour installer Guix sur une autre distribution ont tous deux reçu des corrections de bogues et des améliorations de la convivialité. Les nouveaux et nouvelles utilisateur·rice·s apprécieront le fait que l'aide de Guix donne désormais une vue d'ensemble claire des commandes disponibles, que les commandes de Guix sont moins verbeuses par défaut (elles n'affichent plus une longue liste de choses à télécharger), et que Guix pull affiche une barre de progression lorsqu'il met à jour son Git checkout. Les commandes

guix search

,

guix system search

et autres commandes similaires invoquent désormais un pager automatiquement (moins par défaut), ce qui répond à un désagrément souvent signalé.

Les performances se sont améliorées à plusieurs niveaux. L'utilisation du nouveau « compilateur de base » qui a atterri dans Guile 3.0.4 permet de réduire les temps de construction de Guix lui-même, ce qui signifie que l'extraction de Guix est beaucoup moins gourmande en ressources. Les performances se sont améliorées dans plusieurs autres domaines, et d'autres travaux sont encore à venir.

Nous donnons aux utilisateur·rice·s plus de flexibilité sur la ligne de commande, avec l'ajout de trois options de transformation des paquets :

--with-debug-info

(toujours déboguer dans de bonnes conditions !),

--with-c-toolchain

, et

--without-tests

. Les transformations sont maintenant enregistrées dans le profil et rejouées lors de la mise à jour de guix. En outre, ces options fonctionnent maintenant sur l'ensemble du graphe de dépendance, y compris les entrées « implicites », ce qui permet des transformations qui n'étaient pas possibles auparavant, comme par exemple :

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



Enfin, le nouveau module (transformations guix) fournit une interface vers les options de transformation disponibles en ligne de commande, ce qui est utile si vous souhaitez utiliser de telles transformations dans un manifest.

Le manuel de référence a été étoffé : il y a une nouvelle section « Démarrage », la section « Interface de programmation » contient plus d'informations pour les emballeurs·euse·s. Nous avons ajouté des exemples de codes à de nombreux endroits ; dans la copie en ligne du manuel, les identificateurs de ces extraits de codes sont cliquables, ce qui permet de se rendre au bon endroit dans les manuels Guix ou Guile.

Enfin, 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 dans onze autres langues.

Packs, GNU/Hurd, images disques, services...

Mais ce n'est pas tout ! Si vous souhaitez faire passer des applications de Guix sur des machines sans Guix,

guix pack -RR

prend désormais en charge un nouveau moteur d'exécution « fakechroot » pour les packs relocalisables, et la possibilité de choisir parmi différents moteurs au moment de l'exécution grâce à 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'utilisateur·rice·s non privilégié·e·s.

La prise en charge de la compilation croisée de l'ensemble du système - comme dans la construction du système

guix --target=arm-linux-gnueabihf config.scm

- a été améliorée. Ceci, ainsi que de nombreux travaux de portage à la fois pour les paquets et pour les machines Guix System, apporte le service hurd-vm, un système Guix GNU/Hurd à compilation croisée fonctionnant comme une machine virtuelle sous GNU/Linux. Cela nous a permis de commencer à travailler sur le support natif de GNU/Hurd.

Dans le même ordre d'idées, le nouveau module (gnu image) met en œuvre une interface flexible pour les images du système d'exploitation ; depuis la ligne de commande, il est accessible via le système

guix disk-image --image-type=TYPE

. Plusieurs types d'images sont pris en charge : ISO-9660 compressé, qcow2 contenant des partitions ext4, ext2 avec options Hurd, etc. Ceci est actuellement implémenté en utilisant genimage.

En plus de ceux déjà mentionnés, une douzaine de nouveaux services système sont disponibles, notamment les services pour Ganeti, LXQt, R Shiny, Gemini, et Guix Build Coordinator.

2 000 paquets ont été ajoutés, pour un total de plus de 15 000 paquets ; 3 652 ont été mis à niveau. La distribution est livrée avec 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 également un nouveau système de construction pour les paquets construits avec Maven (le démarrage de Maven à Guix a fait l'objet d'une conférence lors des Guix Days la semaine dernière).

Le fichier NEWS énumère d'autres changements notables et des corrections de bogues qui pourraient vous intéresser.

Essayez-le !
Vous pouvez télécharger cette nouvelle version et prendre contact avec nous.

A ce propos, notre ambassadeur Debian nous a dit que vous pourrez bientôt

apt install guix



si vous êtes sur Debian ou une distribution dérivée !

Profitez-en bien ! »

Credits
Ricardo Wurmus (grand stick, synthesizer, drums, vocals, lyrics) — Luis Felipe (illustration) — Vagrant Cascadian (Debian packaging, lyrics) — Festival (back vocals)

Dernière modification par gonzoleri (11-09-2021 18:34:07)


Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert

Hors ligne

#27 24-11-2020 20:18:40

deuchdeb
Moderato ma non troppo
Distrib. : Debian11-KDE-Plasma, LinuxMintCinnamon, DFLinux11
Noyau : Noyau stable
(G)UI : KDE Plasma 5.20
Inscription : 13-01-2010
Site Web

Re : Guix System, la 2ème distribution Gnu/Linux fonctionnelle

Cool l'aventure continue et nous on suit ça avec intérêt.

Bon anniversaire et longue vie à Guix .  smile

Une fleur, c'est magique non? smile
Association Debian Facile

Hors ligne

#28 24-11-2020 20:20:42

deuchdeb
Moderato ma non troppo
Distrib. : Debian11-KDE-Plasma, LinuxMintCinnamon, DFLinux11
Noyau : Noyau stable
(G)UI : KDE Plasma 5.20
Inscription : 13-01-2010
Site Web

Re : Guix System, la 2ème distribution Gnu/Linux fonctionnelle

gonzoleri a écrit :

j'ai contribué à mon niveau, qui n'est pas celui·elle d'un·e développeur·euse, mais qui concerne la traduction en français d'environ 8% du manuel d'utilisation



C'est déjà très beau.
Plus les tutos que tu as écrit, c'est énorme !!!!


Une fleur, c'est magique non? smile
Association Debian Facile

Hors ligne

#29 24-11-2020 21:30:11

gonzoleri
Membre
Lieu : Provence Alpes
Distrib. : Guix System 1.4.0
Noyau : Linux gnu 6.0.13-gnu
(G)UI : Gnome Shell
Inscription : 24-12-2017

Re : Guix System, la 2ème distribution Gnu/Linux fonctionnelle

deuchdeb a écrit :

C'est déjà très beau.
Plus les tutos que tu as écrit, c'est énorme !!!!



Salut deuchdeb  !

En fait, lors de ma première installation de Guix System, début 2018, j'ai pris des notes et ensuite ça m'a semblé naturel de faire partager un peu tout ça roll

A bientôt merci.gifgnulinux.png

Dernière modification par gonzoleri (20-01-2021 21:15:27)


Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert

Hors ligne

#30 25-11-2020 19:25:27

gonzoleri
Membre
Lieu : Provence Alpes
Distrib. : Guix System 1.4.0
Noyau : Linux gnu 6.0.13-gnu
(G)UI : Gnome Shell
Inscription : 24-12-2017

Re : Guix System, la 2ème distribution Gnu/Linux fonctionnelle

Pour compléter, voici quelques adresses de téléchargements :

Les sources compressées et une signature détachée GPG :
https://ftp.gnu.org/gnu/guix/guix-1.2.0.tar.gz
https://ftp.gnu.org/gnu/guix/guix-1.2.0.tar.gz.sig

Les images de l'installation USB amorçable et leurs signatures :
https://ftp.gnu.org/gnu/guix/guix-syste … nux.iso.xz
https://ftp.gnu.org/gnu/guix/guix-syste … iso.xz.sig
https://ftp.gnu.org/gnu/guix/guix-syste … nux.iso.xz
https://ftp.gnu.org/gnu/guix/guix-syste … iso.xz.sig

L'image de la machine virtuelle (VM) QCOW2 et sa signature :
https://ftp.gnu.org/gnu/guix/guix-syste … 4-linux.xz
https://ftp.gnu.org/gnu/guix/guix-syste … nux.xz.sig


Les tarballs binaires et leurs signatures :
https://ftp.gnu.org/gnu/guix/guix-binar … nux.tar.xz
https://ftp.gnu.org/gnu/guix/guix-binar … tar.xz.sig
https://ftp.gnu.org/gnu/guix/guix-binar … nux.tar.xz
https://ftp.gnu.org/gnu/guix/guix-binar … tar.xz.sig
https://ftp.gnu.org/gnu/guix/guix-binar … nux.tar.xz
https://ftp.gnu.org/gnu/guix/guix-binar … tar.xz.sig
https://ftp.gnu.org/gnu/guix/guix-binar … nux.tar.xz
https://ftp.gnu.org/gnu/guix/guix-binar … tar.xz.sig

Utilisez un miroir pour obtenir une plus grande largeur de bande de téléchargement :
https://www.gnu.org/order/ftp.html

Voici les sommes de contrôle SHA256 :
5ecdf7ced25b1fb0ca7c57e794b7b60c8a7adcb15261dec2af37925c838c6d74      guix-1.2.0.tar.gz
639cd9f4d55d59819a96eda966794be191378347cd857d2a47cbab6087a4b759   guix-binary-1.2.0.aarch64-linux.tar.xz
101fe55a68217ba213d68b53cf1935fe7119406d5652243b3d651beb3cb43f62      guix-binary-1.2.0.armhf-linux.tar.xz
4ab083925be76cd4887e44de0a3bd37aa6c89b09a9cbc9d897d0f701dbb0ddf6    guix-binary-1.2.0.i686-linux.tar.xz
58fecdbaa8bec3795930879fad4cf7c31d3291c363b6cced18e4f7008d7e0282       guix-binary-1.2.0.x86_64-linux.tar.xz
230a5662a78741629775c97564418836242d094d4f8db866c9e395e982298ef4    guix-system-install-1.2.0.i686-linux.iso.xz
a6ecc45084e6f3f93c1ed5fc5c6d2b8b3338f3c1875ed6d89e996df62aa40455        guix-system-install-1.2.0.x86_64-linux.iso.xz
468ddc396ad42a2fee60ccd9d249b760ac498109deea8b1c6b5d0be9c16f2f82      guix-system-vm-image-1.2.0.x86_64-linux.xz

Utilisez un fichier .sig pour vérifier que le fichier correspondant (sans le .sig suffixe) est intact.  Tout d'abord, assurez-vous de télécharger le fichier .sig
et le tarball correspondant.  Ensuite, lancez une commande comme celle-ci :

gpg --verify guix-1.2.0.tar.gz.sig



Si cette commande échoue parce que vous n'avez pas la clé publique requise, alors lancez cette commande pour l'importer :

gpg --keyserver keys.openpgp.org --recv-keys 3CE464558A84FDC69DB40CFB090B11993D9AEBB5



et relancez la commande « gpg --verify ».

Pour installer Guix System, veuillez consulter la rubrique « Système Installation » dans le manuel.   https://guix.gnu.org/manual/fr/html_nod … yst_00e8me

Pour installer Guix sur un système en fonctionnement, voir « Installation » dans le manuel. https://guix.gnu.org/manual/fr/html_nod … on-binaire

Dernière modification par gonzoleri (13-12-2020 00:11:57)


Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert

Hors ligne

#31 12-05-2021 20:32:47

gonzoleri
Membre
Lieu : Provence Alpes
Distrib. : Guix System 1.4.0
Noyau : Linux gnu 6.0.13-gnu
(G)UI : Gnome Shell
Inscription : 24-12-2017

Re : Guix System, la 2ème distribution Gnu/Linux fonctionnelle

Salut, la version 1.3.0 est sortie. Voici la traduction de l'annonce postée hier sur le blog de guix https://guix.gnu.org/fr/blog/2021/gnu-g … -released/

Bonne lecture ! gnulinux.png

                       GNU Guix 1.3.0

Ludovic Courtès, Maxim Cournoyer — 11 mai 2021

« Nous sommes heureux d'annoncer la sortie de la version 1.3.0 de GNU Guix !

La version est livrée avec des images d'installation ISO-9660 (https://guix.gnu.org/manual/en/html_nod … ation.html), une image de machine virtuelle (https://guix.gnu.org/manual/en/html_nod … -a-VM.html), et avec des tarballs pour installer le gestionnaire de paquets au dessus de votre distro GNU/Linux, soit à partir des sources ou des binaires. https://guix.gnu.org/manual/en/html_nod … ation.html  Les utilisateurs de Guix peuvent mettre à jour en exécutant guix pull.

https://guix.gnu.org/manual/en/html_nod … ments.html

Presque 6 mois se sont écoulés depuis la dernière version, pendant lesquels 212 personnes ont contribué au code et aux paquets, et un certain nombre de personnes ont contribué à d'autres tâches importantes - révision du code, administration du système, traduction, mises à jour du site web, mentorat Outreachy, et plus encore.


Expérience utilisateur

Une caractéristique distinctive de Guix est son support pour le déploiement déclaratif : au lieu d'exécuter un tas de commandes guix install et guix remove, vous exécutez guix package --manifest=manifest.scm, où manifest.scm liste le logiciel que vous voulez installer dans un extrait qui ressemble à ceci :

;; This is 'manifest.scm'.
(specifications->manifest
  (list "emacs" "guile" "gcc-toolchain"))



En faisant cela, vous installez exactement les paquets listés. Vous pouvez avoir ce fichier sous contrôle de version et le partager avec d'autres, ce qui est pratique. Jusqu'à présent, il fallait écrire le manifeste à la main - ce qui n'est pas insurmontable, mais reste une barrière pour quelqu'un qui souhaite migrer vers le modèle déclaratif.

La nouvelle commande guix package --export-manifest (et son option complémentaire --export-channels) produit un manifeste basé sur le contenu d'un profil existant. Cela facilite la transition du modèle "impératif" classique, où vous exécutez guix install selon les besoins, vers le modèle déclaratif plus formel. On l'attendait depuis longtemps !

Les utilisateurs qui aiment exécuter toujours les dernières et meilleures pièces du patrimoine logiciel libre vont adorer la nouvelle option de transformation de paquet --with-latest. Utilisant le même code que guix refresh, cette option recherche la dernière version amont d'un paquet, la récupère, l'authentifie et la construit. Ceci est utile dans les cas où la nouvelle version n'est pas encore empaquetée dans Guix. Par exemple, la commande ci-dessous, si elle est exécutée aujourd'hui, va (tenter) d'installer QEMU 6.0.0 :

$ guix install qemu --with-latest=qemu
The following package will be upgraded:
   qemu 5.2.0 → 6.0.0

Starting download of /tmp/guix-file.eHO6MU
From https://download.qemu.org//qemu-6.0.0.tar.bz2...
 …0.tar.bz2  123.3MiB                                                                                                                      28.2MiB/s 00:04 [##################] 100.0%

Starting download of /tmp/guix-file.9NRlvT
From https://download.qemu.org//qemu-6.0.0.tar.bz2.sig...
 …tar.bz2.sig  310B                                                                                                                         1.2MiB/s 00:00 [##################] 100.0%
gpgv: Signature made Thu 29 Apr 2021 09:28:25 PM CEST
gpgv:                using RSA key CEACC9E15534EBABB82D3FA03353C9CEF108B584
gpgv: Good signature from "Michael Roth <michael.roth@amd.com>"
gpgv:                 aka "Michael Roth <mdroth@utexas.edu>"
gpgv:                 aka "Michael Roth <flukshun@gmail.com>"
The following derivation will be built:
   /gnu/store/ypz433vzsbg3vjp5374fr9lhsm7jjxa4-qemu-6.0.0.drv


 


Il y a un avertissement évident : le fonctionnement n'est pas garanti. Si la nouvelle version a un système de construction différent, ou si elle nécessite des dépendances supplémentaires par rapport à la version actuellement emballée, le processus de construction échouera. Cependant, cela offre aux utilisateurs une flexibilité supplémentaire qui peut parfois être pratique. Pour les développeurs, c'est aussi un moyen rapide de vérifier si un paquetage donné se construit avec succès avec la dernière version de l'une de ses dépendances.

Plusieurs changements ont été apportés ici et là pour améliorer l'expérience des utilisateurs. Par exemple, un nouveau niveau --verbosity a été ajouté. Par défaut (--verbosity=1), moins de détails sur les téléchargements sont imprimés, ce qui correspond à l'attente de la plupart des utilisateurs.

Une autre amélioration pratique concerne les suggestions lors de fautes de frappe :

$ guix package --export-manifests
guix package: error: export-manifests: unrecognized option
hint: Did you mean `export-manifest'?

$ guix remve vim
guix: remve: command not found
hint: Did you mean `remove'
?

Try `guix --help' for more information.



Les personnes qui configurent le déchargement de la compilation par SSH apprécieront le processus simplifié, où l'exécutable guile n'a plus besoin d'être dans PATH, avec les paramètres appropriés de GUILE_LOAD_PATH, sur les machines cibles. Au lieu de cela, le déchargement canalise maintenant toutes ses opérations à travers guix repl.

Le manuel de référence de Guix est entièrement traduit en français, allemand et espagnol, avec des traductions préliminaires en russe, chinois et autres langues. Guix lui-même est entièrement traduit en français, allemand et slovaque, et partiellement traduit dans presque vingt autres langues. Les traductions sont maintenant gérées par Weblate https://translate.fedoraproject.org/projects/guix/  et vous pouvez aider ! https://guix.gnu.org/manual/devel/en/ht … -Guix.html 

Outils pour les développeurs

Nous avons de bonnes nouvelles pour les empaqueteurs ! Tout d'abord, guix import est livré avec un nouvel importateur récursif Go, qui peut créer des définitions de paquet ou des modèles de celles-ci pour des ensembles entiers de paquets Go. La commande guix import crate, pour les paquets Rust, respecte désormais le "versioning sémantique" lorsqu'elle est utilisée en mode récursif.

La commande guix refresh inclut maintenant de nouveaux " updaters " : sourceforge, pour le code hébergé sur SourceForge, et generic-html qui, comme son nom l'indique, est une mise à jour générique qui fonctionne en scannant les pages d'accueil des paquets. Cela améliore grandement la couverture de guix refresh.

les développeurs peuvent également apprécier la nouvelle option de transformation de paquet --with-patch, qui fournit un moyen de construire un groupe de paquets avec un patch appliqué à un ou plusieurs d'entre eux.

Basé sur l'API d'image du système Guix introduite dans la v1.2.0, les commandes guix system vm-image et guix system disk-image sont remplacées par une commande unifiée guix system image. Par exemple,

$ guix system vm-image --save-provenance config.scm



devient

$ guix system image -t qcow2 --save-provenance config.scm



tandis que

$ guix system disk-image -t iso9660 gnu/system/install.scm



devient

$ guix system image -t iso9660 gnu/system/install.scm



Cela apporte des avantages en termes de performances ; alors qu'une machine virtuelle était auparavant impliquée dans la production des artefacts d'image, les bits de bas niveau sont maintenant gérés par l'outil genimage dédié. Un autre avantage est que le format qcow2est maintenant compressé, ce qui supprime la nécessité de compresser manuellement les images en les post-traitant avec xz ou un autre compresseur. Pour en savoir plus sur la commande guix system image, vous pouvez vous référer à sa documentation.

Enfin, l'introduction du chemin de recherche GUIX_EXTENSIONS_PATH Guix devrait permettre aux extensions Guix, telles que le Guix Workflow Language, d'avoir leurs modules Guile automatiquement découverts, simplifiant ainsi leurs déploiements.


Performances

Une chose que vous remarquerez est que l'installation de substitution (téléchargement de binaires pré-construits) est devenue plus rapide, comme nous l'avons expliqué précédemment. Ceci est en partie dû à l'utilisation opportuniste de la compression zstd, qui a un débit de décompression élevé. Le démon et la publication guix supportent zstd comme une méthode de compression supplémentaire, à côté de gzip et lzip.

Un autre changement qui peut aider à récupérer les substituts plus rapidement est la découverte du serveur de substitution local. La nouvelle option --discover de guix-daemon lui demande de découvrir et d'utiliser les serveurs de substitution sur le réseau local (LAN) annoncés avec les protocoles mDNS/DNS-SD, en utilisant Avahi. De même, guix publish a une nouvelle option --advertise pour s'annoncer sur le réseau local.

Sur Guix System, vous pouvez exécuter herd discover guix-daemon on pour activer temporairement la découverte, ou vous pouvez l'activer dans la configuration de votre système. L'utilisation opportuniste de serveurs de substitution voisins est entièrement sûre, grâce à des constructions reproductibles.

Dans d'autres nouvelles, guix system init a été optimisé, ce qui contribue à rendre l'installation de Guix System plus rapide.

Sur certaines machines avec des ressources limitées, la construction des modules Guix est une opération coûteuse. Une nouvelle procédure, channel-with-substitutes- disponible à partir du module (guix ci), peut maintenant être utilisée pour tirer Guix vers le dernier commit qui a déjà été construit par la ferme de construction. Référez-vous à la documentation pour un exemple.


Support POWER9, paquets, services

Le support POWER9 est maintenant disponible en tant qu'aperçu technologique, grâce au travail inlassable de ceux qui ont aidé à porter Guix sur cette plateforme. Il n'y a pas encore beaucoup de substituts binaires POWER9 disponibles, en raison de la capacité POWER9 limitée de notre ferme de construction, mais si vous n'avez pas peur de construire de nombreux paquets à partir de la source, nous serions ravis de connaître votre expérience !

2 000 paquets ont été ajoutés, pour un total de plus de 17 000 paquets ; 3 100 ont été mis à jour. La distribution est livrée avec GNU libc 2.31, GCC 10.3, Xfce 4.16.0, Linux-libre 5.11.15, LibreOffice 6.4.7.2 et Emacs 27.2, pour n'en citer que quelques-uns. Parmi les nombreux changements de paquets, l'un d'entre eux se distingue par le nouveau bootstrap OCaml : le paquet OCaml est désormais entièrement construit à partir des sources via camlboot. Les mises à jour des paquets incluent également Cuirass 1.0, le service qui alimente notre ferme de construction.

La panoplie de services a également vu de nouveaux ajouts tels que wireguard, syncthing, ipfs, un service simplifié et plus pratique pour Cuirass, et plus encore ! Vous pouvez rechercher des services via la fonction de recherche du système guix.

Le fichier NEWS liste d'autres changements notables et des corrections de bogues qui pourraient vous intéresser.

Le script d'installation a été amélioré pour permettre une plus grande automatisation. Par exemple, si vous êtes pressé, vous pouvez l'exécuter avec :

# yes | ./install.sh



pour procéder à l'installation du binaire Guix sur votre système sans aucune invite !

Vous pouvez également être intéressé à essayer l'image VM de démonstration du système Guix qui supporte maintenant l'intégration du presse-papiers avec l'hôte et le redimensionnement dynamique grâce au protocole SPICE, ce qui, nous l'espérons, améliorera l'expérience utilisateur.

Pour passer en revue toutes les options d'installation à votre disposition, consultez la page de téléchargement et n'hésitez pas à nous contacter. »

Dernière modification par gonzoleri (13-05-2021 20:15:06)


Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert

Hors ligne

#32 23-03-2022 14:11:08

gonzoleri
Membre
Lieu : Provence Alpes
Distrib. : Guix System 1.4.0
Noyau : Linux gnu 6.0.13-gnu
(G)UI : Gnome Shell
Inscription : 24-12-2017

Re : Guix System, la 2ème distribution Gnu/Linux fonctionnelle

Salut à tou(te)s, un billet de blog de Ludovic Courtès, concepteur de Guix, paru avant-hier sur le site de GNU Guix nous explique les avantages qu'il y a à utiliser le nouveau service 'Guix Home'.

https://guix.gnu.org/fr/blog/2022/keepi … home-tidy/

En voici la traduction (perso plus confortable le navigateur bien dimensionné)  :

Quel effort faut-il fournir pour recréer votre environnement de travail lorsque vous passez à une nouvelle machine ? Que faut-il faire pour revenir à votre environnement précédent après avoir remarqué qu'un programme ne se comporte plus comme prévu ? Qu'en est-il du partage de votre environnement avec vos amis ? Ce sont quelques-unes des choses que Guix Home, qui a atterri dans Guix en tant que "technology preview" en septembre 2021, vise à rendre facile, fiable et amusant.

En un mot, Guix Home apporte la configuration entièrement déclarative de Guix System aux répertoires personnels. Avec Guix System, les utilisateurs et les administrateurs fournissent un fichier de configuration qui définit la configuration du système d'exploitation ; avec Guix Home, les utilisateurs fournissent un fichier de configuration qui définit la configuration de leur environnement de travail dans leur répertoire personnel - leur environnement personnel. Cette configuration est censée être autonome, pour décrire tous les aspects pertinents de votre environnement de travail. Mais que se passe-t-il exactement dans un environnement domestique ?


Les "Dot Files" ne vivent pas dans le vide.

Parmi les utilisateurs chevronnés de langage style Unix, nous associons souvent "environnement personnel" aux "fichiers point", autrement dits "dot files"- les fichiers de configuration dans notre répertoire personnel, de ~/.bashrc et ~/.ssh/config à ~/.emacs et tout ce qui se trouve sous ~/.config. Ces fichiers sont précieux et beaucoup les stockent sous contrôle de version, pour garder la trace des modifications apportées à leur configuration. C'est une bonne idée, mais est-ce tout ce qu'il faut pour décrire l'environnement domestique ? Pour revenir à une version antérieure ?

Bien sûr que non. Les fichiers dot n'existent pas dans le vide ; à tout le moins, votre environnement personnel n'est pas seulement un ensemble de fichiers dot, mais aussi un ensemble de paquets installés. Ils fonctionnent ensemble : si vous mettez à jour un paquet, le fichier point correspondant peut avoir besoin d'être ajusté ; si un paquet est manquant, son fichier point n'est d'aucune utilité. Parfois, un environnement personnel contient des éléments supplémentaires : des démons (programmes qui s'exécutent en arrière-plan), ou des tâches exécutées périodiquement.

Guix Home va au-delà des fichiers point : il vous permet de déclarer et d'instancier tous ces aspects qui composent votre environnement personnel.


Genèse

Guix Home a été initialement développé par Andrew Tropin dans le cadre du projet rde ; il a été intégré dans Guix proprement dit il y a six mois. J'écris ceci en tant qu'adopteur et contributeur, mais il y a eu un certain nombre d'adopteurs et de contributeurs antérieurs. En fait, bien qu'il soit toujours en cours de développement, l'outil a déjà attiré un certain nombre d'utilisateurs enthousiastes désireux de trouver un moyen de garder leur maison en ordre !

L'idée d'écrire une déclaration de votre environnement personnel que vous pouvez reproduire à tout moment est une suite naturelle de tout ce que fait Guix - vous pouvez déjà déclarer un ensemble de paquets dans un manifeste ou même un système d'exploitation complet. Cette idée a circulé, dans le monde Nix avec Home Manager et dans le monde Guix avec le défunt Guix Home Manager de Julien Lepiller. Ce dernier était similaire au Guix Home d'aujourd'hui, mais allait un peu plus loin en rendant votre répertoire personnel en lecture seule - oui, en lecture seule ! Le principal avantage est d'assurer l'apatridie - vous êtes sûr qu'absolument toute la configuration de votre home est sous le contrôle de Guix Home Manager ; les sous-répertoires contenant des données mutables doivent être déclarés explicitement. L'inconvénient est que cela augmente la barrière à l'entrée : vous devrez soit changer complètement, soit ne pas l'utiliser du tout. Guix Home adopte une approche plus pragmatique et coexiste volontiers avec la configuration gérée "à l'ancienne".

Mise en route

Pour commencer, vous avez besoin d'un fichier de configuration Home. Il existe une documentation, mais comme toujours, partir d'une page blanche est un peu intimidant. Donc, au lieu de partir d'une page blanche, vous pouvez laisser guix home import générer une configuration initiale pour vous :

$ guix home import ~/src/guix-config



Cela créera le répertoire ~/src/guix-config et le remplira d'un tas de fichiers parmi lesquels home-configuration.scm avec ces lignes :

(use-modules (gnu home)
             (gnu packages)
             (gnu services)
             (guix gexp)
             (gnu home services shells))

(home-environment
 (packages
  (map (compose list specification->package+output)
       (list "emacs-geiser-guile"
             "emacs-geiser"
             "pinentry-emacs"
             "emacs-exwm"
             "gnome-maps"
             "pipe-viewer"
             "emacs"
             "pavucontrol"
             "git"
             "xterm"
             "qemu"
             "openssh")))
 (services
  (list (service home-bash-service-type
                 (home-bash-configuration
                  (aliases
                   '(("grep" . "grep --color=auto")
                     ("ll" . "ls -l")
                     ("ls" . "ls -p --color=auto")
                     ("qemu" . "qemu-system-x86_64 -enable-kvm -m 512")
                     ("rm" . "rm --one-file-system")))
                  (bashrc
                   (list (local-file "/home/charlie/src/guix-config/.bashrc"
                                     "bashrc")))
                  (bash-profile
                   (list (local-file
                          "/home/charlie/src/guix-config/.bash_profile"
                          "bash_profile"))))))))


                         
guix home import a automatiquement ajouté les paquets de ~/.guix-profile au champ des paquets. Comme j'utilise Bash, il a également ajouté une instance de home-bash-service-type avec des alias extraits de mon ~/.bashrc ; il a également fait des copies de ~/.bashrc et ~/.bash_profile et y fait référence.

Maintenant que j'ai une configuration initiale, je peux d'abord la tester dans un conteneur isolé :

$ guix home container ~/src/guix-config/home-configuration.scm



Cette commande donne un shell interactif dans un conteneur où mon environnement personnel, tel que déclaré dans home-configuration.scm, est déployé. Là, je peux voir mon répertoire personnel tel qu'il serait si je déployais mon environnement personnel "pour de vrai" : Je peux voir mon ~/.bashrc et autres, je peux vérifier que tous les paquets déclarés sont dans $PATH et visibles dans ~/.guix-home, et ainsi de suite. Et tout cela est sans danger : mon répertoire personnel actuel n'a pas été modifié !

Une fois satisfait de ma configuration, je peux l'instancier :

$ guix home reconfigure ~/src/guix-config/home-configuration.scm



A ce moment là, mon répertoire personnel actuel correspond à cette configuration. Certains de mes fichiers point (.) sont maintenant fournis par Guix Home, et donc ce sont des liens symboliques ("symlinks") vers leur copie en lecture seule dans /gnu/store :

$ ls -l ~/.bashrc ~/.bash_profile
lrwxrwxrwx 1 charlie users 56 Mar  7 15:46 /home/charlie/.bash_profile -> /gnu/store/lpdydssyyxx9n0xvp2jmv7yqgyr2pcg3-bash_profile
lrwxrwxrwx 1 charlie users 50 Mar  7 15:46 /home/charlie/.bashrc -> /gnu/store/kxc0j4i05sib04vf92nr8xxkb8isdfn7-bashrc



Mais ne vous inquiétez pas : avant de créer ces symlinks, guix home reconfigure les sauvegarde des fichiers existants sous ~/TIMESTAMP-guix-home-legacy-configs-backup, où TIMESTAMP est un timestamp de style Unix.

Et voilà, j'ai ma première génération de Guix Home !

$ guix home describe
Generation 1    Mar 07 2022 15:46:20   (current)
  file name: /var/guix/profiles/per-user/charlie/guix-home-1-link
  canonical file name: /gnu/store/qr1c5jpfrj815ncv6yr2lfdgs8nq8kkn-home
  channels:
    guix:
      repository URL: https://git.savannah.gnu.org/git/guix.git
      branch: master
      commit: 3ac1366648f933f7244c2d0b9926f7ba5d92a113
  configuration file: /gnu/store/xfgasfms9rhhigyj7i8za77zpqx6zbhn-configuration.scm



guix home describe montre le suivi de la provenance que nous connaissons et aimons de Guix System : toutes les informations dont nous avons besoin pour redéployer le même environnement domestique ailleurs, ou à un moment différent dans le temps. C'est aussi l'information sur laquelle guix home reconfigure s'appuie pour s'assurer que vous ne rétrogradez jamais accidentellement votre environnement de base vers une ancienne révision de Guix.

Aller plus loin

D'accord, à ce stade, vous pouvez penser que c'est beaucoup d'agitation mais le "seul" avantage par rapport aux fichiers point (dot files) sous contrôle de version est que guix home s'occupe aussi de l'installation des paquets. Guix Home brille vraiment lorsque vous utilisez des services de plus haut niveau, et lorsque vous commencez à composer des services ensemble.

Dans l'exemple ci-dessous, dans le champ services, nous pouvons ajouter une déclaration de service qui exécute Redshift, un programme qui ajuste la température de couleur de l'écran en fonction de l'heure de la journée :

(service home-redshift-service-type
         (home-redshift-configuration
          (location-provider 'manual)
          (latitude 35.81)    ;northern hemisphere
          (longitude -0.80))) ;west of Greenwich


         
L'effet est que, dès que nous nous connectons, sous Xorg, Redshift sera lancé en arrière-plan en tant que service Shepherd. Le ~/.profile généré par Home se charge de faire apparaître Shepherd, qui à son tour fait apparaître le service Redshift :

$ herd status
Started:
 + root
 + redshift



Nous avons gagné une autre chose ici : un langage de configuration cohérent et unifié. Au lieu d'apprendre le format de fichier de configuration de Redshift, nous définissons un enregistrement home-redshift-configuration, directement dans Scheme. Sous le capot, cette configuration est convertie dans le format de fichier de Redshift ; toute erreur est détectée au moment de la configuration, lors de l'exécution de guix home reconfigure, et nous pouvons être sûrs que Redshift reçoit un fichier de configuration valide.

Nous pouvons de la même manière définir une tâche mcron périodique, par exemple une tâche qui met à jour une base de données de recherche GNU Idutils (c'est un moyen assez pratique et rapide de rechercher du code ou des documents !)

(simple-service 'idutils home-mcron-service-type
                ;; Every day at 12:15 and 19:15.
                (list #~(job '(next-minute-from (next-hour '(12 19)) '(15))
                             (string-append #$idutils "/bin/mkid \
-o $HOME/.idutils/src.db $HOME/src"
))))

 

Encore une fois, guix home crée un service Shepherd qui démarre mcron avec un fichier de configuration contenant les définitions des tâches périodiques, que nous pouvons inspecter via herd :

$ herd schedule mcron | head -5
Sun Mar 20 19:15:00 2022 +0000
/gnu/store/2d026nan309qkci968k8gpa8fcv9q4mv-idutils-4.6/bin/mkid -o $HOME/.idutils/src $HOME/src
Mon Mar 21 12:15:00 2022 +0000
/gnu/store/2d026nan309qkci968k8gpa8fcv9q4mv-idutils-4.6/bin/mkid -o $HOME/.idutils/src $HOME/src




Services, composés

Si vous utilisez déjà Guix System, tout ce qui précède vous semblera certainement familier : Guix Home se base sur le cadre de services qui fait fonctionner Guix System ; les services Home sont définis dans l'arbre de modules (gnu home services ...).

Ce cadre nous permet de définir les relations entre les "services", au sens large, et comment les services s'étendent les uns les autres - dans l'exemple ci-dessus, redshift et mcron étendent tous les deux Shepherd en lui donnant un démon dont il doit s'occuper. Nous pouvons voir ces relations en jeu en exécutant :

guix home extension-graph home-configuration.scm



... ce qui, pour la configuration décrite ci-dessus, donne un graphique qui ressemble à ceci :

https://guix.gnu.org/static/blog/img/ho … -graph.svg

Nous voyons redshift, mcron et shepherd, mais aussi des services de plus bas niveau que guix home instancie pour nous, comme le service profile qui se charge de déployer les paquets listés dans le champ packages sous ~/.guix-home/profile. Chaque flèche indique une extension de service. Vous pouvez en lire plus (et en voir plus !) sur la composition des services. Pour satisfaire notre public de mathématiciens et de programmeurs fonctionnels, nous devons mentionner que les types de services et leurs opérations d'extension forment un monoïde.


Quelle est la prochaine étape ?

Soyons clairs : Guix Home est assez nouveau et il y a de fortes chances que guix home search - la commande pour rechercher des services par mot-clé - ne vous donnera pas le service que vous cherchez. Il reste aussi un tas de questions ouvertes, comme par exemple comment réutiliser des services initialement définis pour Guix System dans des cas où ils pourraient être aussi utiles dans Guix Home - Syncthing, par exemple.

Mais alors qu'il s'agit encore d'une "technology preview", c'est déjà un outil avec lequel les bricoleurs peuvent jouer et en tirer profit. Des patches ajoutant de nouveaux services ont déjà été proposés ; peut-être que votre service préféré sera le prochain ? Pensez à y contribuer.

Avec une nouvelle version et un anniversaire de dix ans à venir, nous sommes heureux de célébrer avec un outil qui étend la portée du déploiement déclaratif et reproductible !

A propos de GNU Guix

GNU Guix est un gestionnaire de paquets transactionnel et une distribution avancée du système GNU qui respecte la liberté de l'utilisateur. Guix peut être utilisé au-dessus de n'importe quel système utilisant le noyau Hurd ou Linux, ou peut être utilisé comme une distribution de système d'exploitation autonome pour les machines i686, x86_64, ARMv7, AArch64 et POWER9.

En plus des fonctionnalités standards de gestion des paquets, Guix supporte les mises à jour et les retours en arrière transactionnels, la gestion des paquets non privilégiés, les profils par utilisateur et la collecte des déchets. Lorsqu'il est utilisé comme une distribution GNU/Linux autonome, Guix offre une approche déclarative et sans état de la gestion de la configuration du système d'exploitation. Guix est hautement personnalisable et modifiable grâce aux interfaces de programmation Guile et aux extensions du langage Scheme.

------------------------------------------------------------------------------------------------------------------------------------------------

Pour en savoir plus sur les dot files


Dans Unix/Linux, dot-files fait référence aux fichiers/répertoires dont le nom est précédé d'un . Les exemples sont ~/.bashrc, ~/.bash_profile, etc. Le point en tête . est utilisé comme indicateur par des logiciels comme bash et nautilus pour ne pas lister ces fichiers normalement, mais seulement lorsqu'ils sont spécifiquement demandés, par exemple en appuyant sur Ctrl+H dans Nautilus. Cela s'explique par le fait que, généralement, les fichiers point sont utilisés pour stocker les configurations de différentes applications, mais ils sont aussi parfois utilisés autrement. Par exemple, Mozilla crée un dossier .mozilla qui contient ses fichiers de configuration ainsi que le cache du navigateur.

Les gens ont tendance à sauvegarder et à partager leurs dot-files afin que d'autres puissent démarrer leurs propres applications en utilisant ces fichiers de configuration. Un guide non officiel : https://dotfiles.github.io/.

Voilà, en espérant que cette lecture vous ait plû gnulinux.pnghandy.pngguantas.png

Dernière modification par gonzoleri (23-03-2022 18:18:26)


Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert

Hors ligne

#33 23-03-2022 14:46:31

gonzoleri
Membre
Lieu : Provence Alpes
Distrib. : Guix System 1.4.0
Noyau : Linux gnu 6.0.13-gnu
(G)UI : Gnome Shell
Inscription : 24-12-2017

Re : Guix System, la 2ème distribution Gnu/Linux fonctionnelle

Oups ! Sais pas ce qu'il y a eu... Le code n'apparaisait pas. Corrigé maintenant smile

Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert

Hors ligne

#34 20-04-2022 18:38:16

gonzoleri
Membre
Lieu : Provence Alpes
Distrib. : Guix System 1.4.0
Noyau : Linux gnu 6.0.13-gnu
(G)UI : Gnome Shell
Inscription : 24-12-2017

Re : Guix System, la 2ème distribution Gnu/Linux fonctionnelle

Bonsoir,

Guix a eu 10 ans avant-hier smile

https://guix.gnu.org/fr/blog/2022/10-ye … hind-guix/

10 ans d'histoires autour de Guix

Cela fait dix ans que le tout premier commit  de ce qui s'appelait déjà Guix (le nom peu imaginatif est un hommage à Guile et Nix), a été envoyé. Le 18 avril 2012, il y avait très peu de choses à voir et aucun "projet" réel. Le projet s'est formé dans les mois suivants et est devenu une aventure collective autour d'une vision partagée.

Dix ans plus tard, il est étonnant de voir ce que plus de 600 personnes ont accompli, avec 94K commits, d'innombrables heures de traduction, d'administration système, de travail de conception web, et pas moins de 175 articles de blog pour partager notre enthousiasme à chaque étape majeure. Une sacrée aventure !

Ce qui suit est une série de récits personnels de certains des contributeurs qui ont offert leur temps et leur énergie et ont rendu tout cela possible. Lisez leurs histoires et peut-être aurez-vous envie de vous joindre à eux dans cette aventure ?

Logo 10 ans de Guix


Alice Brenon

Guix est un système vraiment génial et j'espère que vous l'apprécierez autant que moi !

Mon histoire avec Guix est un peu sens dessus dessous alors j'ai pensé que je pourrais commencer par la fin smile Je l'ai d'abord classé dernier parmi les systèmes que je voulais tester, puis j'ai été un peu perplexe quand j'ai eu la chance de le tester après que tous les autres m'aient déçue, et nous avons finalement appris à nous connaître une fois que je l'ai installé sur mon ordinateur portable de travail, parce que quand vous avez besoin d'un bon système stable sur lequel vous savez que vous pouvez compter, pourquoi ne pas utiliser le plus surprenant ? Étrangement, l'alchimie a fonctionné et il ne m'a jamais laissé tomber jusqu'à présent.

Comme toutes les bonnes choses de l'informatique, il semblait bien plus effrayant de loin qu'il ne l'était réellement, et semblait être très lié à l'éthique et à la théorie alors qu'il est en fait très pragmatique. Je me suis battue pendant des années avec la myriade de formats de paquets incompatibles pour les systèmes, puis pour chaque langage spécifique, et j'ai été ravie de découvrir enfin ce qui semblait être un format universel raisonnable. C'est probablement ce que je préfère : la possibilité d'utiliser potentiellement tous les logiciels que je veux sans détruire mon système. La communauté accueillante, désireuse de m'aider et valorisant mes contributions, a rendu le projet encore meilleur, et la soumission de correctifs s'est faite naturellement. Je l'utilise principalement pour le développement et pour rester saine d'esprit malgré tous les outils de science des données que je dois utiliser pour mon travail. J'aimerais parfois qu'il soit plus facile de modifier le cœur du système, mais je blâme mon manque de temps libre au moins autant que sa conception. J'aurais absolument voulu voir mon système Guix utiliser le système runit init un jour, mais il fonctionne tout simplement et j'ai finalement appris que c'était tout ce qui comptait si vous vouliez que les choses soient faites.


Andreas Enge

Quand je pense à Guix, je me fais toujours des illusions en croyant que c'est moi qui en ai eu l'idée - je me souviens avoir discuté avec Ludovic autour d'une réunion de hackers GNU à propos de Nix ; j'ai plaisanté en disant que puisque Guile est le langage GNU, Nix devrait être réécrit en Guile. Mais il s'est avéré que Ludovic avait déjà commencé un tel projet pour de bon... Heureusement, il y a l'historique git pour nous rafraîchir la mémoire. Apparemment, j'ai installé Guix, à l'époque seulement le gestionnaire de paquets, avec l'aide de Ludovic en décembre 2012, et j'ai immédiatement signalé quelques bugs. Mon action suivante a été de mettre à jour le paquet pour mon propre logiciel. L'apprentissage de Scheme a été assez difficile, mais je me souviens très bien avoir discuté des citations et des quasi-quotes avec Ludovic. Après cela, j'ai surtout ajouté des paquets à Guix, ce qui était possible sans connaître grand chose de la programmation fonctionnelle ; les paquets les plus délicats qui sont restés dans mon esprit sont ImageMagick et TeX Live. J'ai appris à apprécier les GNU Autotools - avec tous leurs défauts, avoir une manière uniforme (et généralement fiable) de compiler et d'installer un logiciel rend la création d'un paquetage Guix presque triviale.

La caractéristique la plus convaincante de Guix était (et est toujours, je pense) la possibilité de revenir en arrière dans l'installation des paquets, et maintenant dans l'installation complète de Guix System - plus de crainte de mettre à jour un paquetage dans un état non fonctionnel ! Et à un niveau complètement différent, l'atmosphère agréable et accueillante de la communauté, en grande partie grâce aux efforts initiaux de Ludovic pour créer un environnement inclusif.

De nombreuses aventures formidables sont liées au travail sur Guix. L'achat de notre premier serveur pour la ferme de construction a été difficile, car nous voulions utiliser une machine avec Libreboot qui fonctionnerait bien avec le système GNU. Finalement, nous avons réussi, et il est toujours hébergé par l'association Aquilenet à Bordeaux, nous avons donc réussi à démarrer notre propre infrastructure en accord avec nos valeurs.

La rédaction des statuts de l'asbl Guix Europe a été une autre aventure passionnante ; là encore nous avons essayé de créer une structure en accord avec nos valeurs, où les décisions étaient prises le plus collectivement possible.

Et personnellement, je garde un excellent souvenir de ma participation aux réunions Guix au FOSDEM et de la co-organisation des Guix Days à Bruxelles ; ce sont de si belles occasions de rencontrer des personnes passionnées par Guix et les logiciels libres ! Je n'oublierai jamais les Guix Days 2020 alors que je revenais d'un Reproducible Build Summit où j'ai admiré leur façon d'animer l'atelier, que j'ai ensuite essayé de copier pour notre propre réunion.

Guix System répond à tous mes besoins quotidiens maintenant, je n'ai donc pas de souhaits techniques pour l'avenir - mais je fais confiance aux nombreux esprits créatifs qui travaillent à l'avancement du projet pour trouver de nouvelles idées sympas. Et je souhaite que l'aventure humaine et la construction de la communauté autour de Guix continuent !


Andrew Tropin

C'est tout en lisp, pas de distraction, une cohérence pure ! Au bout de quelques années, je migre vers un autre ordinateur et il a toujours été pénible d'apporter ma configuration logicielle avec moi : j'ai oublié une règle pam/udev ici, un paquet ici et un petit hack là et tout est en désordre, il est plus facile de tout réinstaller depuis le début. Avec la nature déclarative et reproductible de Guix System, de Guix Home et du projet rde, c'est un pur plaisir : écrire la configuration une fois, l'utiliser partout ! Configurations de démons, phases de construction de paquets, tâches cron, tout est décrit en Guile Scheme. Le seul langage qui les gouverne tous ! J'attends avec impatience un peu plus : une adoption plus large de Guix pour la gestion des environnements et infrastructures de développement.

GNU Guix vous respecte et respecte vos libertés : tout le monde peut explorer et étudier, bidouiller et ajuster, et partager tout ce qu'il veut, chaque programme disponible. De plus, chaque paquetage est amorcé, quel miracle ! Oui, certains matériels ne sont pas supportés, mais pour une bonne raison, pour ce prix vous obtenez beaucoup. J'attends avec impatience un peu plus : des substituts décentralisés et des ordinateurs portables RISC-V faisant tourner GNU Guix.

Merci à la communauté pour tout le dur travail, je profite déjà de Guix depuis plus d'un an et j'attends avec impatience que d'autres choses excitantes apparaissent !


Arun Isaac

J'ai été initié à Guix en 2016. C'était à peu près à l'époque où j'apprenais lisp et où je me faisais souffler l'esprit. Dès que j'ai entendu que Guix était écrit en lisp et qu'il s'agissait d'une distro compatible FSDG, j'ai su que cela allait être la meilleure distro de tous les temps et j'ai immédiatement sauté à bord.

Bien que j'ai été immédiatement séduit par la perfection et l'élégance de Guix, je suis resté aussi longtemps non pas pour l'excellence technique mais pour les gens. La communauté Guix est la plus chaleureuse et la plus attentionnée des communautés de logiciels libres dont j'ai jamais fait partie. Honnêtement, je ne croyais pas que de telles personnes pouvaient exister en ligne jusqu'à ce que je voie Guix. Dans l'avenir, j'aimerais que cette communauté se développe et prospère avec un suivi des problèmes et un processus de contribution plus facile afin que les contributeurs potentiels, en particulier les nouveaux arrivants, ne soient pas frustrés.


Björn Höfling

En 2016, je cherchais une distribution GNU/Linux pour l'ordinateur portable d'un ami et j'ai choisi GuixSD (maintenant Guix System), inspiré par une vidéo LibrePlanet de MediaGoblin. L'ordinateur portable n'a pas réussi à digérer ce système d'exploitation, car il exigeait des pilotes binaires et non libres. En revanche, mon matériel est 100% compatible GNU FSDG, et donc, la génération 1 de Guix s'est gravée avec succès dans mon cerveau, sans aucun mal de tête. Ou du moins, ils ont disparu avec l'aide de la communauté très amicale, solidaire, tolérante (seulement pour les tolérants, grâce au code de conduite).

Mes contributions ont commencé par ne pas comprendre Guix, et par poser des questions stupides sur les listes de diffusion. Parfois, au cours de ce processus, j'ai trouvé des bogues et les ai analysés plus en profondeur, ce qui a aidé Ludovic et d'autres développeurs à les corriger. J'ai revu la plupart des paquets Java et j'en ai ajouté quelques-uns de mon propre chef. J'ai beaucoup apprécié le co-mentoring pour Outreachy, et j'ai appris davantage sur la génération automatisée de vidéos/écrans. Je devrais être à nouveau plus actif dans la communauté !

Pour le futur de Guix, j'aimerais voir plus de paquets Java et Go (hem, cela ne vient pas de moi seul, je devrais revoir et contribuer plus). En interne, je souhaite un bug- et patch-tracker plus intuitif au lieu de Debbugs+Mumi. En externe, j'aimerais que le monde commercial "Open Source" prenne davantage conscience de la liberté des logiciels, de la nécessité d'amorcer son environnement et ses dépendances à partir de code source libre de manière réellement reproductible, au lieu de s'appuyer sur des conteneurs opaques et binaires. Je souhaite que les gens prennent davantage soin de leurs dépendances (avec Guix, bien sûr !), qu'ils réfléchissent davantage à leur utilisation des dépendances, qu'ils brisent l'enfer des dépendances et qu'ils aident les tiers à construire leurs sources avec des logiciels libres (au lieu de s'appuyer sur des dépendances binaires et des environnements de développement conteneurisés opaques).


Blake Shaw

Les artistes et les concepteurs de nouveaux médias souffrent du dilemme suivant : notre travail, dont le principal support est le code, est peut-être le support le plus simple à distribuer - il ne nécessite guère plus que la copie d'un répertoire de fichiers texte d'un disque dur à un autre - mais les œuvres elles-mêmes restent un cauchemar total à reproduire fidèlement sur différentes machines à différents moments. Cela s'explique, entre autres, par le fait que nos œuvres sont souvent composées de parties disparates, accompagnées d'une dette technique : une installation audiovisuelle peut utiliser la bibliothèque C++ openFrameworks pour les graphiques interactifs à haute performance, TidalCycles de Haskell pour le séquençage en temps réel, le fantastique langage de traitement du signal FAUST pour le DSP audio sans délai, ainsi que les dépendances habituelles : openCV, libfreenect, cairo, gstreamer, ffmpeg, etc... Le temps et les changements d'ABI qui en découlent ne font qu'aggraver la situation. Non seulement il est souvent difficile et laborieux d'obtenir un fonctionnement correct sur de nombreuses machines, mais la nature de la dette technique signifie que la mise en service d'une installation de 2014 en 2022 est souvent plus difficile que nécessaire. Malheureusement, ces œuvres d'art apparemment immatérielles qui sont les plus simples à copier sont en même temps parmi les plus difficiles à reproduire et les plus rapides à déprécier.

Guix, en revanche, offre à ses utilisateurs des constructions reproductibles bit à bit préservant la provenance de leurs systèmes d'exploitation entiers : en utilisant l'implémentation de Guix du modèle de déploiement de logiciels fonctionnels, je devrais être en mesure de reproduire, bit à bit, les mêmes résultats exacts sur du matériel équivalent. Soudain, nos œuvres d'art peuvent être produites de manière déterministe non seulement au niveau du journal des modifications du code source, mais aussi au niveau de la construction, offrant la garantie que nos tours de systèmes habituellement collés ensemble qui alimentent nos installations peuvent être revisitées et reproduites à l'avenir, et les processus de déploiement deviennent aussi simples que l'emballage de votre système dans un conteneur pour être déployé vers une cible distante. Ces garanties signifient que la mise à l'échelle de nos travaux est simplifiée : si vous voulez faire une installation qui implique 100 Raspberry Pis communiquant les uns avec les autres dans un système dynamique, vous pouvez vous concentrer sur le travail sur un petit sous-ensemble paramétré, et ensuite générer leurs différentes configurations en utilisant l'infrastructure que Guix fournit. Je suis actuellement dans les premières phases de développement de re::producer, une "boîte à outils du plombier créatif" qui cherche à simplifier ce processus pour les artistes, en adaptant les outils fournis par Guix aux besoins spécifiques du domaine de l'art médiatique et en permettant aux artistes de définir de manière déclarative des systèmes complexes d'art médiatique en utilisant l'un des plus grands langages de programmation de tous les temps, Scheme.

C'est encore un nouveau terrain, il y a donc beaucoup de travail à faire. Mais ce n'est pas une excuse pour garder vos vieilles habitudes, alors retroussez vos manches et venez hacker le bon hack !


Cyril Roelandt

Au début de l'année 2013, j'ai eu la chance d'être au chômage pendant quelques mois. Cela m'a donné beaucoup de temps pour essayer GNU Guix. Ludovic m'en avait parlé quelques mois plus tôt, alors que nous travaillions encore au même endroit. Il était si facile d'ajouter de nouveaux paquets que j'ai naturellement fini par soumettre quelques patches et j'ai rapidement trollé l'ensemble du projet en ajoutant mon éditeur de choix, vim. Le débogage des définitions de paquets était également très simple puisque les constructions étaient reproductibles par défaut.

J'ai aussi eu du plaisir à écrire la première version du linter et à améliorer l'importateur/updater pour les paquets Python. J'ai même modifié la tox pour qu'elle utilise Guix au lieu de virtualenv et j'ai fait une présentation à ce sujet au FOSDEM. Même si j'ai quitté le projet il y a quelques années, je suis heureux de voir qu'il se porte bien, qu'il est utilisé dans la science et qu'il a rejoint les forces de Software Heritage.


Efraim Flashner

En 2015 environ, j'utilisais GNU/Linux sur le bureau depuis un certain nombre d'années et je voulais contribuer d'une manière ou d'une autre. Je venais de terminer un cours à l'université en utilisant Lisp et Prolog et j'ai entendu parler de Guix avec sa version 0.8.3 (ou à peu près) et cela semblait être quelque chose auquel je pouvais essayer de contribuer. J'ai certainement fait un certain nombre d'erreurs au début ; je ne savais pas que git revert était une commande réelle et j'ai essayé de revenir sur un commit à la main, laissant une parenthèse pendante et cassant le repo. Une autre fois, j'ai ajouté Java comme dépendance d'une bibliothèque d'images et j'ai cassé la pile graphique pour la moitié des architectures jusqu'à ce que je rétablisse la situation ! J'ai même été un étudiant raté du GSoC. Je travaillais sur Bournish, un utilitaire semblable à Gash/Gash-utils pour faciliter le débogage au début du processus de démarrage en fournissant des utilitaires CLI communs. J'ai eu quelques problèmes avec la gestion du temps et j'ai fini par passer plus de temps que je n'aurais dû à mettre à jour les paquets dans le dépôt, en conséquence, je n'ai pas passé assez de temps à travailler sur Bournish et il a langui depuis ce temps.

Actuellement, j'aime travailler sur les paquets problématiques et augmenter le nombre de paquets disponibles sur les architectures non populaires. Parfois, il s'agit de supprimer des drapeaux de compilateur ou d'inclure des éléments spécifiques à l'architecture (ifdef gating) et d'autres fois, certaines parties de programmes doivent être désactivées. Ensuite, tout doit être revérifié pour la compilation croisée. En ce moment je travaille sur le support de riscv64-linux dans Guix, il a beaucoup de potentiel mais les cartes puissantes sont difficiles à trouver. Il y a également quelques bugs persistants avec l'affichage de Guix qui montre différents systèmes supportés pour les paquets en fonction de l'architecture à partir de laquelle vous l'exécutez ; sur x86_64-linux seulement deux sont affichés, à partir de aarch64-linux les 9 architectures sont affichées.


Ekaitz Zarraga

Un ami m'a présenté Nix et Guix il y a quelques temps mais j'ai hésité à l'essayer car je déteste configurer des choses et cela ne semblait pas être une distribution facile à utiliser. Une fois que j'ai découvert que nous pouvions avoir des environnements séparés et qu'il était facile d'écrire un paquet (malgré toutes les autres difficultés de Guix), j'étais complètement dedans. J'ai installé Guix sur mon ordinateur portable et je n'ai jamais regardé en arrière. Pendant les 10 ans où j'ai utilisé une distribution GNU/Linux, je n'ai jamais interagi aussi directement avec mes paquets : créer des paquets personnalisés, les envoyer en amont, faire des corrections... C'est aussi ça la liberté ! Maintenant, quelques années plus tard, je travaille à l'amélioration du processus d'amorçage pour RISC-V et j'utilise Guix comme un mécanisme qui fournit des constructions reproductibles et un moyen facile de gérer tous les acteurs avec lesquels je dois composer : de très vieux logiciels avec de vieilles dépendances, des bibliothèques en collision, des variables d'environnement, des patches personnalisés dans le code source... Ce serait une douleur de construire dans n'importe quel autre environnement, mais Guix rend les choses difficiles faciles. Guix rend aussi les choses faciles difficiles parfois, mais nous y travaillons !


Eric Bavier

En tant que jeune (ou presque) programmeur informatique, j'ai utilisé des systèmes GNU/Linux pendant environ 7 ans, mais je voulais trouver un projet auquel je pourrais contribuer. Heureusement, je suis tombé sur une annonce de sortie de Guix après avoir fouiné dans les sphères de GNU Hurd et Guile. Pour moi, à l'époque, Guix avait le mélange exact d'énergie, d'optimisme et de vision à long terme que j'espérais trouver. Au fil des années, j'ai pu contribuer à des paquets que j'utilise à la fois dans ma vie personnelle et professionnelle, et je suis fier d'avoir implémenté la première version de 'guix refresh --list-dependents'. J'ai vraiment aimé la façon dont Guix me permet de déplacer facilement mes environnements sur différents systèmes, et le "rollback" me donne une grande tranquillité d'esprit en sachant que je peux bricoler avec le système et le récupérer si quelque chose ne va pas. Mais probablement ma partie préférée de Guix est la fantastique communauté que j'ai vu grandir autour du projet. C'est un exemple du genre de groupe attentionné, gentil et solidaire que j'aimerais voir dans d'autres projets. Ensemble, je sais que nous serons en mesure de faire des progrès sur de nombreux fronts. En particulier, j'aimerais voir la poursuite du travail sur la livraison de substituts en peer-to-peer, un démon de construction natif, des outils supplémentaires pour gérer les collections de paquets relocalisables, et un leadership continu dans le domaine du bootstrapping.


Florian Pelz (pelzflorian)

Pour moi, GNU Guix est un groupe qui se soucie de ses logiciels et des personnes impliquées. J'ai appris à connaître Guix en lisant des discussions sur la façon de faire du sandboxing correctement. Mais en fait, Guix m'a convaincu par sa clarté, sa facilité d'approche et ses principes. Guix m'a ouvert les yeux sur la façon dont les parties de GNU s'assemblent. Merci à tous ceux qui nous donnent cette liberté de comprendre et de décider. En contribuant à la traduction, j'espère qu'il atteindra plus de personnes, aussi bien dans l'utilisation que dans le développement.


Guillaume Le Vaillant

Avant de commencer à utiliser Guix en 2019, j'utilisais Gentoo parce que j'aimais la façon dont je pouvais facilement empaqueter des logiciels et faire des variantes de paquets avec quelques correctifs personnalisés. Cependant, un jour, une mise à niveau ne s'est pas bien passée et de nombreux paquets se sont retrouvés dans un mauvais état. J'ai réalisé que je devais réinstaller tout le système pour que tout fonctionne à nouveau. Avant de recompiler tout le système, j'ai essayé Nix et Guix, car j'avais lu quelque part qu'ils utilisaient une gestion fonctionnelle des paquets, ce qui donne la possibilité de revenir à un état de fonctionnement lorsqu'une mise à jour pose des problèmes. J'ai choisi Guix parce que je pensais qu'il allait dans la bonne direction en utilisant uniquement des logiciels libres et en essayant d'obtenir des constructions reproductibles. Le fait que les définitions de paquets utilisent le langage Scheme était un point bonus car j'aime les langages Lisp. Et il y avait même un système de construction pour les paquets Common Lisp, ce qui est rarement le cas dans les distributions GNU/Linux que j'ai essayé au fil du temps. J'ai donc commencé à utiliser Guix, et à empaqueter les logiciels que je voulais qui n'étaient pas encore dans Guix. Un jour, quelqu'un m'a demandé si je serais intéressé par l'accès aux commit, et j'ai accepté. J'ai également trouvé un moyen d'améliorer le système de construction pour les paquets Common Lisp qui simplifie les définitions de paquets. Dans le futur, je pense qu'il serait bien d'ajouter un importateur récupérant les informations de Quicklisp, car cela rendrait l'empaquetage des logiciels Common Lisp encore plus facile.


Hartmut Goebel

Christian Grothoff (GNU Taler) m'a parlé de Guix début 2016, en disant "Cela va devenir la nouvelle Debian !" et en me demandant de l'étudier pour GNU Taler. Eh bien, rapidement, j'ai été attiré par les idées de construction reproductible et la facilité d'empaquetage des logiciels. J'aime aussi l'utilisation unique de programmes sans encombrer mon système.

Curieusement, même si je suis un développeur Python, mes premières contributions ont porté sur le packaging Java. Et j'ai passé pas mal de temps à essayer de construire maven. Ce défi, je l'ai abandonné après deux (ou trois ? je ne me souviens plus) tentatives. Heureusement Julien Lepiller a continué l'effort et a créé le système de construction Maven.

Aujourd'hui, j'utilise toujours Guix sur une distro étrangère seulement, car le bureau KDE et certaines de mes applications principales ne sont toujours pas ici. Guix garde mon système principal en ordre, tandis que je peux avoir différents environnements de développement sans conflits de dépendances.

Comme vous pouvez l'imaginer, j'aimerais voir KDE desktop dans Guix ainsi que guix compose pour gérer les conteneurs composés.


Jan (janneke) Nieuwenhuizen

Au FOSDEM 2016, il y a eu sept exposés sur GNU Guix : Un exposé sur le Hurd par Manolis Ragkousis, sur la gestion fonctionnelle des paquets par Ricardo Wurmus et c'était juste ce que j'avais besoin d'entendre : Enfin une promesse viable pour le système GNU et beaucoup plus innovante que ce que j'aurais pu espérer. À l'époque, je travaillais également sur un projet où la construction de versions binaires devenait de plus en plus ingérable à chaque version en raison d'exigences contradictoires. Nous abandonnions lentement le C++ au profit de GNU Guile, et bien que cela ne soit pas directement applicable, l'exposé de Ludovic Courtès intitulé "Your distro is a Scheme library" m'a également touché : Allez Guix !

En utilisant Guix, mes problèmes de dépendance complexes pour construire des paquets binaires ont rapidement et facilement disparu. Cela m'a donné la confiance dont j'avais besoin et j'ai voulu m'impliquer. Mes premières contributions étaient un jeu de programmation appelé Laby et ses dépendances ainsi que quelques autres paquets que j'ai oubliés. Après avoir fait tourner Guix au-dessus de Debian GNU/Linux pendant trois mois, je suis passé à ce que nous appelons maintenant Guix System. Guix n'avait pas encore la rotation des journaux à cette époque, j'ai donc créé un paquet.

C'est ainsi que j'ai découvert à quel point la communauté était étonnamment utile et amicale. J'ai créé le cross build MinGW pour Guile 2.0 et j'ai ensuite "découvert" les binaires bootstrap : Les seuls paquets de Guix qui ne sont pas construits à partir des sources. Quelque chose n'allait pas. Le manuel disait : "Ces gros morceaux de code binaire sont pratiquement non auditables ce qui brise la transparence source-binaire que nous obtenons dans le reste du graphe de dépendance des paquets." J'ai donc écrit GNU Mes et commencé à travailler à la résolution de ce problème. Par deux fois, nous avons réduit de moitié la taille des binaires d'amorçage et le travail est toujours en cours.

Ce qui a peut-être commencé comme un poisson d'avril en 2020 à propos du Hurd - ce qui n'est toujours pas clair - a été (mal ?) pris par certains comme un vrai projet et a conduit à une frénésie de hacks amusants de plusieurs mois qui a finalement produit le "Childhurd" : Un service Guix Shepherd qui donne accès au GNU/Hurd dans une VM. Mon souhait pour le futur proche serait de voir un Hurd à jour incluant les correctifs de Debian rumpkernel qui pourraient enfin permettre de faire tourner le Hurd sur du vrai matériel.


John Kehayias

Tout ce que je voulais faire était d'essayer une nouvelle barre d'état, mais l'auteur ne supportait officiellement que Nix pour la construction. C'est ce qui m'a poussé à m'intéresser à Nix après en avoir entendu parler en passant. J'ai été intrigué par l'accent mis sur les constructions reproductibles et déclaratives. Le langage, pas tellement. Mon frère a mentionné un autre projet dans la même veine mais construit sur un Lisp. En tant qu'amoureux de tout ce qui est Lisp, cela m'a suffi pour plonger dedans. Au-delà des caractéristiques de la gestion puissante des paquets et du système, des constructions reproductibles, de la configuration du système et, bien sûr, de Guile, j'ai rapidement trouvé ce qui est peut-être le plus grand et le plus important : la communauté GNU Guix. Ils ont été tout simplement extraordinaires : utiles, intelligents, solidaires et agréables à côtoyer sur le canal #guix. En moins d'un an, mon parcours m'a mené à travers la récente branche et la fusion (est-ce encore infâme ?) des gros core-updates, à soumettre des patches pour des bibliothèques aléatoires et des fonctionnalités clés du bureau que j'utilise, et à participer aux motivants Guix Days 2022. En regardant vers l'avenir, j'espère que nous pourrons mieux exploiter l'énergie et les ressources de la communauté Guix en pleine croissance. C'est déjà un grand projet dans lequel on peut s'impliquer et s'approprier, mais avec une révision des patchs meilleure et plus rapide, en continuant à construire et à utiliser nos outils de développement et notre écosystème, et en continuant à arrondir les angles pour les nouveaux utilisateurs/contributeurs, je suis sûr que les 10 prochaines années de GNU Guix seront très brillantes.


Konrad Hinsen

Dans mon travail de scientifique informaticien, ma première rencontre avec les questions de reproductibilité a eu lieu en 1995, lorsqu'un paquet de chimie quantique a produit des résultats différents sur deux stations de travail Silicon Graphics presque identiques. Ce fut le début d'une longue quête pour une meilleure reproductibilité informatique, au cours de laquelle j'ai découvert en 2014 Nix et Guix comme deux implémentations de la même idée prometteuse : la construction entièrement automatisée d'une pile logicielle reproductible complète. Des deux, Guix était plus aligné avec mon passé zozotant, et avait déjà une communauté d'utilisateurs de science computationnelle en plein essor. J'ai commencé à jouer avec Guix en 2016, dans une machine virtuelle sous macOS, mais je n'ai pleinement adopté Guix pour mon travail quotidien qu'en 2021, lorsque j'ai quitté macOS pour Linux. Au cours de ces cinq années, j'ai également appris à apprécier la communauté Guix, qui est amicale, compétente et rafraîchissante, sans cérémonie, malgré sa croissance continue. Cela permet une transition facile du débutant au contributeur (principalement en contribuant aux paquets, mais aussi à la commande time-machine qui est importante pour la reproductibilité). Cet anniversaire est une bonne occasion d'exprimer mes remerciements à tous ceux qui ont répondu à mes nombreuses questions, qu'elles soient d'ordre conceptuel ou technique, ainsi qu'à l'équipe de mainteneurs qui fait un travail important mais peu visible en examinant de manière critique tous les paquets soumis et les améliorations du code. Mon principal souhait pour l'avenir est de réduire la barrière à l'adoption pour mes collègues des sciences informatiques, et j'espère contribuer à la réalisation de cet objectif.


Lars-Dominik Braun

Vers la fin de 2019, nous cherchions un moyen de fournir des environnements logiciels reproductibles aux chercheurs en ( ?) psychologie et je recherchais un logiciel pour y parvenir. Binder/repo2docker était la solution évidente et la plus mature à ce moment-là et un de mes collègues avait déjà mis en place un serveur de preuve de concept. Mais il ne pouvait gérer que des projets publics prêts à l'emploi et la mise en place d'un cluster Kubernetes entier ne semblait pas particulièrement attrayante à ce moment-là, car aucun autre projet n'allait encore dans cette direction. Je me suis donc mis à la recherche d'alternatives. Une autre idée était basée sur OpenStack et une machine virtuelle par projet avec des logiciels préinstallés, que nous garderions pour l'éternité. Ce n'était pas non plus l'idéal et OpenStack est également très difficile à maîtriser. Je me suis donc penché sur Nix, qui - à l'époque - n'offrait pas de moyen évident de créer des environnements ad hoc avec un certain nombre de paquets. Heureusement, je suis tombé sur GNU Guix par simple accident, qui avait exactement cette fonctionnalité. Et c'est ainsi qu'en décembre 2019, ma première contribution au code a été fusionnée.

Avant cela, je n'avais jamais écrit une seule ligne de Scheme ou de Lisp et même maintenant, la pente est encore raide. GNU Guix alimente toujours notre projet et nous permet de partager facilement des environnements logiciels tout en offrant d'excellents temps de démarrage des applications. J'ai également commencé à contribuer aux logiciels que j'exécute sur mes propres machines, mais je n'exécute pas Guix System, car comparé à systemd, Shepherd est assez limité sur le bureau et le manque de support de première classe de Guix pour les pilotes/firmware non libres, dont j'ai besoin pour même démarrer ma machine.


Ludovic Courtès

Tout a commencé par une expérience de grattements et de démangeaisons : un petit bout de code Guile pour faire des appels de procédure à distance (RPC) au démon de construction Nix. Pourquoi ? Comme j'étais enthousiaste et impliqué dans Guile et Nix, il m'a semblé naturel d'essayer de les rapprocher. Guile venait de sortir la version 2.0.0, qui élargissait son champ d'application, et je voulais en tirer parti. Savoir s'il faut aller au-delà de la simple expérience est une décision que j'ai prise quelque temps après une présentation à la réunion 2012 des GNU Hackers.

Il était loin d'être évident que cela nous mènerait quelque part - le monde avait-il vraiment besoin d'un autre gestionnaire de paquets ? Le tournant décisif, pour moi, a été de voir qu'au moment où Guix est devenu officiellement une partie de GNU en novembre 2012, il était déjà devenu un effort de groupe ; il y avait, semble-t-il, une vision partagée de la raison pour laquelle un projet aussi fou avait du sens non seulement techniquement mais aussi socialement - pour GNU, pour la liberté des utilisateurs. Je me souviens de Nikita Karetnikov comme du premier contributeur héroïque, à une époque où Guix pouvait à peine installer des paquets.

L'un de mes moments "ah ha !" a été lorsque j'ai construit la première image amorçable un an plus tard. G-expressions, le cadre de service et l'authentification par checkout font partie de mes bidouillages préférés. Ce qui m'épate le plus, c'est ce que d'autres ont réalisé au fil des ans : l'incroyable travail de démarrage, Disarchive, Emacs-Guix, l'installateur, le support de Hurd, Guix Home, les outils de support comme Cuirass, le Data Service et mumi. Il y a aussi le travail moins visible mais crucial : Outreachy et le mentorat GSoC, le support sur IRC et les listes de diffusion, l'administration de la ferme de construction, la traduction, la gestion des incidents occasionnels sur les canaux de communication, l'organisation d'événements tels que les Guix Days ou le FOSDEM, et plus encore.

Autant j'aime faire du bon hacking, autant je pense que le principal atout de Guix est sa communauté : un groupe amical, productif et créatif avec un sens de l'attention à l'autre. J'ai commencé sans savoir ce que signifie "construire une communauté" et j'ai beaucoup appris de toutes les personnes rencontrées en chemin. Nous l'avons fait, nous l'avons construit ! Bravo, Guix !


Luis Felipe

Lorsque j'ai découvert l'existence de Guix, j'ai vu qu'il pourrait faciliter la sortie du système d'exploitation de GNU et toucher un public plus large. J'avais l'intention de proposer quelques conceptions graphiques liées à cela, et j'ai envoyé un message à GNU afin de tâter le terrain. Les choses ne se sont pas passées comme je l'espérais, et j'ai donc décidé de diriger mes contributions vers GNU Guix et sa distribution de GNU.

Depuis lors, j'ai contribué aux graphismes (logos Guix et Guile, conception de sites web, fonds d'écran, illustrations de versions et de promotions), aux tests, aux rapports de bogues, à l'empaquetage et aux traductions en espagnol.

Cela fait environ 8 ans de Guix pour moi (le diable !). J'ai commencé à utiliser le gestionnaire de paquets sur Debian, j'ai progressivement changé la provenance de mes logiciels de Debian à Guix, et, une fois que GNOME est devenu disponible, je suis passé à la distribution Guix du système d'exploitation GNU, que j'utilise comme système principal depuis environ 3 ans maintenant (et je ne vois pas cela changer de sitôt).

En ce moment, j'aime développer des logiciels en utilisant les environnements reproductibles et les conteneurs de Guix, et en utilisant un seul gestionnaire de paquets pour toutes les dépendances.

J'espère que ce système atteindra un public plus large et apportera la science à l'informatique domestique en cours de route. Les environnements utilisateur devraient être capables de produire des travaux scientifiques aussi.


Manolis Ragkousis

Quand je pense à la façon dont j'ai commencé avec Guix, j'utilise un seul mot pour le décrire, la chance ! C'est au début de l'année 2014 que j'ai rencontré Guix par chance, alors que j'étais encore étudiant à Crète, en Grèce. Je me souviens qu'il y avait une grève à cette époque et j'avais beaucoup de temps libre pendant une semaine, alors j'ai décidé que j'allais essayer de commencer à travailler sur ce projet. Puis une idée m'est venue à l'esprit, pourquoi ne pas essayer de porter Guix sur GNU/Hurd et construire un système avec ? Une chose menant à une autre, cela est également devenu un projet GSoC en 2015 et 2016. En 2016, j'ai également donné une conférence au FOSDEM à ce sujet, qui a fini par être le point de départ de mon aide au développement de GNU Guile en 2017 et 2018, puis de ce qui est devenu les langages minimalistes jusqu'à aujourd'hui. Quand je pense à Guix, c'est comme si je pensais à l'histoire de mon enfance et aux personnes que j'ai rencontrées pendant toutes ces années et que je considère comme ma famille ! Guix est une grande partie de ma vie, je l'utilise partout et même si je ne suis pas en mesure d'aider beaucoup aujourd'hui, je suis le projet autant que je peux. Espérons que nous aurons 10 ans de plus !


Marius Bakke

J'ai commencé à m'intéresser à Guix après avoir été confronté aux lacunes des outils traditionnels de gestion de la configuration. Un système entièrement déclaratif et immuable qui nettoie les anciens comptes utilisateurs et paquets, qui offre également la reproductibilité, les retours en arrière, et la possibilité de générer des machines virtuelles et des conteneurs à partir du même code. Où dois-je m'inscrire ?

Il s'est avéré que l'inscription était facile, et je me suis rapidement retrouvé à contribuer aux éléments dont j'avais besoin pour en faire un pilote quotidien. Il a été étonnant de voir la communauté passer d'une poignée de contributeurs à une centaine par mois. J'ai beaucoup appris de cette communauté et je suis fier d'en faire partie. J'ai hâte de voir ce que la prochaine décennie nous apportera. Joyeux anniversaire Guix !


Mathieu Othacehe

J'ai été initié à GNU Guix par un collègue, Clément Lassieur, en 2016. Au début, je trouvais le concept écrasant. Écrire des wrappers Guile pour chaque service Linux existant et les maintenir à jour semblait impossible. Cependant, je suis rapidement tombé amoureux du gestionnaire de paquets, de la distribution et de la communauté derrière. Quelques mois plus tard, GNU Guix tournait sur toutes mes machines et j'ai commencé à travailler sur l'outil d'intégration continue : Cuirass.

Depuis lors, GNU Guix a été une partie importante de ma vie. J'ai écrit la majeure partie de l'installateur du système Guix lors d'un voyage à vélo en Chine en 2018. Pendant le confinement de 2020, j'ai travaillé avec janneke sur la nouvelle API image et sur le portage du Hurd. À cette époque, on m'a proposé un poste de co-mainteneur du projet. En 2021, grâce à un parrainage NGI, j'ai consacré 6 mois à l'amélioration de notre processus d'intégration continue et de la couverture globale des substituts.

Récemment, il m'a été plus difficile de consacrer autant d'efforts au projet, mais je suis sûr qu'il s'agit d'une phase transitoire. Je suis impatient de recommencer à travailler avec les personnes incroyablement talentueuses qui ont créé ce logiciel si spécial pour moi.


Paul Garlick

J'ai commencé à utiliser et à contribuer au projet Guix en 2016. J'avais cherché un moyen de préserver les environnements logiciels qui sont utilisés pour la simulation numérique. Les applications qui fonctionnent dans ces environnements comprennent souvent une combinaison de code spécialisé et de blocs de construction tirés d'un cadre sous-jacent. Il y a beaucoup de pièces mobiles et les modifications apportées à une bibliothèque de bas niveau peuvent bloquer le fonctionnement de l'application de haut niveau. Combien les choses seraient meilleures si l'on pouvait spécifier les composants exacts de l'environnement et le recréer chaque fois qu'il est nécessaire. J'ai découvert que Guix fournit la machinerie pour faire exactement cela. Scheme était nouveau pour moi à l'époque, et j'ai donc dû apprendre quelque chose avant d'y participer. Cela incluait un détour par Vonnegut/Cat's Cradle, bien sûr, pour découvrir la signification de ice-9. Bien informé, je suis revenu pour ajouter un certain nombre de cadres de volumes finis et d'éléments finis à la collection de paquets Guix. Le prochain objectif est de maintenir ces paquets à jour et d'accueillir de nouveaux paquets liés à la simulation. Pour les dix prochaines années, une tâche importante consiste à populariser l'utilisation des outils Guix. Beaucoup plus d'ingénieurs et de scientifiques pourraient bénéficier de l'utilisation des environnements logiciels fiables qui sont maintenant rendus possibles.


Ricardo Wurmus

En 2014, je suis devenu responsable de la construction et de l'installation de logiciels scientifiques au Centre Max Delbrück, un institut de recherche à Berlin. Nous utilisions CentOS, alors j'ai construit des RPM personnalisés, installant des applications dans des répertoires de préfixes ad-hoc. Après quelques semaines, j'ai pris une minute pour considérer les implications horribles de la maintenance d'une collection croissante de logiciels personnalisés avec RPM. Alors que j'essayais de me rappeler quels choix de vie m'avaient conduit à ce moment, je me suis souvenu d'une annonce par email d'un gestionnaire de paquets GNU excentrique écrit en Scheme. Une courte recherche sur le web plus tard, je jouais avec Guix.

Après une discussion encourageante sur IRC, j'ai réalisé que je pouvais probablement remplacer notre dépôt RPM personnalisé et construire différentes variantes de logiciels scientifiques sur des bases beaucoup plus solides, tout en contribuant à un projet qui ressemblait à une nouvelle et passionnante approche de GNU. Nous construisons le système GNU !

Guix n'avait que très peu des paquets, alors je me suis mis au travail. J'ai empaqueté et démarré le JDK parce que je pensais à tort que j'en aurais besoin pour R (il s'avère que Java est optionnel). De nombreuses autres aventures insensées ont suivi, et certaines d'entre elles ont en fait été utiles à d'autres.

J'avais trouvé ma tribu de collègues hackers qui se souciaient de la vision du système GNU, encourageaient l'expérimentation ludique et s'encourageaient mutuellement à réussir à construire un meilleur système qui fasse de la liberté logicielle une réalité pratique, en brouillant les frontières entre développeurs et utilisateurs. Dans les décennies à venir, j'espère que beaucoup d'autres personnes feront l'expérience de ce que j'ai vécu et finiront par se sentir chez elles dans cette communauté.


Simon Tournier

En 2014, j'avais regardé la vidéo "Growing a GNU with Guix" au FOSDEM mais la véritable révélation avait eu lieu en 2015 avec "GNU Guix : The Emacs of Distros", toujours au FOSDEM. A l'époque, je suivais le développement mais n'utilisais pas encore Guix. 2016, nouveau job où je passais mon temps à lutter contre les dépendances et les Modulefiles. Puis j'ai totalement sauté dans Guix en décembre 2018. Ma première interaction avec le projet - et sans encore utiliser Guix - a été un événement en personne à Paris avant l'atelier Reproducible Builds. De retour à la maison, j'ai relu de bout en bout le manuel en français - ma première contribution - et j'ai installé Guix au sommet de mon système Debian GNU/Linux. C'est incroyable ! Guix corrige de nombreux problèmes que j'avais au travail - et en introduit de nouveaux^W défis. De plus, grâce aux personnes qui m'entourent, j'apprends beaucoup, tant sur les détails techniques que sur les interactions interpersonnelles. Mon souhait pour l'avenir proche est une communauté plus structurée : plus d'événements et de rencontres, plus de processus pour lisser les contributions ("équipes" pour améliorer la révision en partageant la charge, RFC pour discuter des nouvelles fonctionnalités, versions régulières, etc.

Dans un contexte scientifique, la transparence - être capable d'auditer l'ensemble de l'environnement informatique, des codes sources à la production de binaires - est l'une des clés d'une véritable recherche reproductible. Puisque Guix est transparent de par sa conception, il me semble être une partie de la solution pour s'attaquer à l'aspect computationnel de la crise de la réplication. Dans un futur proche, je souhaite que plus de praticiens scientifiques utilisent Guix.


Thiago Jung Bauermann

J'ai appris l'existence de Guix lorsque je cherchais des moyens alternatifs et sûrs pour installer une chaîne d'outils Rust à jour sur ma machine (à l'époque, rustup ne vérifiait pas les signatures des binaires téléchargés, et il ne fait toujours pas le travail complet). Guix est un excellent moyen d'avoir les derniers et meilleurs logiciels en plus de votre distribution Linux plus lente. J'aime la facilité avec laquelle il est possible de créer instantanément des environnements ad hoc avec les paquets dont vous avez besoin pour une tâche spécifique. Ou pour essayer temporairement une nouvelle application ou un nouvel outil, en laissant Guix s'occuper de la collecte des paquets et de leurs dépendances. La communauté Guix est également incroyable ! C'est un plaisir de participer aux listes de diffusion. Et j'ai pris plaisir à apprendre Scheme ! Pour l'avenir, j'espère que Guix pourra obtenir une couverture de test encore meilleure afin que chaque mise à jour de la branche master soit garantie de ne pas introduire de régressions. Et que le projet obtienne plus de committers, pour aider avec l'afflux constant de patches.


raingloom

Il y a plusieurs raisons pour lesquelles j'ai commencé à utiliser Guix. Du point de vue technique, j'ai joué avec 9front pendant un certain temps, mais j'étais toujours confronté à des problèmes où la structure impérative des espaces de noms me gênait. J'aime beaucoup Haskell et j'ai entendu parler des nombreux avantages d'une approche purement fonctionnelle des systèmes de construction, etc. J'ai fait tourner Guix au-dessus d'Arch pendant un certain temps et je l'ai beaucoup aimé. L'utilisation des transformations de paquets est toujours aussi magique. Mais vous êtes déjà au courant de ces trucs sympas grâce à l'article du blog d'Ambrevar. Sur le plan social, j'ai vu parmi les gens que je préfère en sciences informatiques - Christine Lemmer Webber - était impliqué dans le projet, je savais donc qu'il y avait probablement une bonne communauté, ce qui s'est avéré très vrai. C'est l'une des meilleures communautés centrées sur une technologie que j'ai fréquentée et vous m'incitez à devenir meilleur à chaque interaction. Un grand merci pour cela. Mon souvenir favori de Guix est quand quelqu'un m'a fait un patch pour 'egg importer', qui était construit sur le système de construction Chicken Scheme auquel j'ai contribué. Voir d'autres personnes construire sur mon travail est un sentiment incroyable. Pour l'avenir, j'espère que les améliorations de la gestion des services continueront à affluer, mais ce que j'aimerais le plus voir, c'est Guix fonctionner sur des appareils vieux et lents. Il y a beaucoup de travail à faire pour le rendre plus efficace en termes de bande passante et d'espace et pour supporter le développement sur des systèmes avec peu de RAM. Si je pouvais l'utiliser à la place de PostmarketOS/Alpine, je serais ravi. Du point de vue humain, j'espère que nous pourrons empêcher les contributeurs de s'épuiser, tout en améliorant la qualité du logiciel. Je pense que la façon dont le développement de Blender est structuré pourrait être une source d'inspiration. Sur cette note, utiliser Guix pour des flux de travail artistiques reproductibles serait génial. Ok c'est tout, au revoir gens adorables !


Vagrant Cascadian

Je pense que j'ai entendu parler de Guix pour la première fois en 2016, ce qui a déclenché une session de nuit tardive en essayant d'envelopper ma tête autour des fermes de symlink folles au cœur de Guix. Fin 2017, je déposais des rapports de bogues et finalement des correctifs !

Je suis profondément fasciné par le fait que Guix possède des constructions reproductibles intégrées, avec des environnements de construction normalisés et conteneurisés et l'outil "guix challenge" pour vérifier la reproductibilité. J'avais entendu parler de Nix comme d'un modèle intéressant, mais j'ai apprécié l'engagement fort envers le logiciel libre de Guix.

Finalement, je suis même devenu assez fou pour empaqueter Guix dans Debian... ce qui a indirectement conduit à l'une de mes contributions les plus créatives à un projet de logiciel libre, un poème typographique intégré !

J'apprécie vraiment la communauté autour de Guix et le processus, les valeurs et la réflexion qui travaillent de manière proactive pour maintenir une communauté saine, même face à des conflits inévitables et occasionnels. Guix équilibre le formel et l'informel d'une manière qui me convient.

J'attends avec impatience le jour où Guix aura un bootstrap full source !


10 Ans de Guix, œuvre d'art de Luis Felipe.

Dernière modification par gonzoleri (26-04-2022 08:54:00)


Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert

Hors ligne

#35 12-12-2022 18:05:32

gonzoleri
Membre
Lieu : Provence Alpes
Distrib. : Guix System 1.4.0
Noyau : Linux gnu 6.0.13-gnu
(G)UI : Gnome Shell
Inscription : 24-12-2017

Re : Guix System, la 2ème distribution Gnu/Linux fonctionnelle

Bonsoir, un message (traduit de l'anglais) de Ludovic Courtès annonçant la sortie de la prochaine version de Guix (System)

« La deuxième release candidate de la prochaine version 1.4.0 est désormais
disponible pour les tests, corrigeant les problèmes qui ont été signalés pour la rc1 :

Source:
    https://alpha.gnu.org/gnu/guix/guix-1.4.0rc2.tar.gz

Tarball binaire (pour installer sur une "distro étrangère")
    https://alpha.gnu.org/gnu/guix/guix-bin … nux.tar.xz
    https://alpha.gnu.org/gnu/guix/guix-bin … nux.tar.xz
    https://alpha.gnu.org/gnu/guix/guix-bin … nux.tar.xz
    https://alpha.gnu.org/gnu/guix/guix-bin … nux.tar.xz
    https://alpha.gnu.org/gnu/guix/guix-bin … nux.tar.xz

Installation de Guix System :
    https://alpha.gnu.org/gnu/guix/guix-sys … -linux.iso
    https://alpha.gnu.org/gnu/guix/guix-sys … -linux.iso

Image de machine virtuelle :
    https://alpha.gnu.org/gnu/guix/guix-sys … linux.qcow

Hashes SHA256 :

  3b6c676615ce0b9de7c66ead528a91bb8520b74d2c391e0000dac8d4c76d2d52  guix-1.4.0rc2.tar.gz
  3566bfe5f0615f9b2167db7d1a2f1c88c02e8cc5013563b3e1eb95636a58f850  guix-binary-1.4.0rc2.aarch64-linux.tar.xz
  18741b6780e9d0f8985d2514e5dff32110091cdf4da106062d1a2cf5cd6ed6a4  guix-binary-1.4.0rc2.armhf-linux.tar.xz
  3d8348c2dbed8f9c6ab90f2ddc0df8c10d45c042612aed1fe7dcc7eabbc18b70  guix-binary-1.4.0rc2.i686-linux.tar.xz
  4731126cc4f3f22265ae430e2acc3f67489ec311e42de346b634656740258033  guix-binary-1.4.0rc2.powerpc64le-linux.tar.xz
  542e53a09fddedbddd75dfc745509ad9365cb7a76750d9bf8575b589c97dc286  guix-binary-1.4.0rc2.x86_64-linux.tar.xz
  b35f94609942b9715acefa978166189c5505934c9576b1c3e14417beb5c48d6d  guix-system-install-1.4.0rc2.i686-linux.iso
  880a1ee977f6999f635352222d5667930d1d859a607c723573c86bd9f6c2ae69  guix-system-install-1.4.0rc2.x86_64-linux.iso
  8bc98e42ba9370f49cfc2b051083121d8682c760ac3dac614b3f478d174c8756  guix-system-vm-image-1.4.0rc2.x86_64-linux.qcow2
 
Tous ces fichiers ont un '.sig' associé, une signature OpenPGP que vous pouvez vérifier comme expliqué à :

https://guix.gnu.org/fr/manual/devel/fr … on-binaire

Vous pouvez aider en testant :

1 - Le tarball binaire sur la distro de votre choix.  Vous pouvez
télécharger https://guix.gnu.org/install.sh et décommenter l'affectation de la variable
'GNU_URL' qui fait référence à alpha.gnu.org. Il devrait récupérer la version 1.4.0rc2 automatiquement.

2 - L'installateur graphique de Guix System (les images ISO).

3 - L'image VM :

https://guix.gnu.org/fr/manual/devel/fr … ans-une-VM


Veuillez signaler les succès à guix-devel@gnu.org, et les bogues et désagréments à
bug-guix@gnu.org.

Si aucun problème grave n'est signalé, nous pourrons publier la version 1.4.0 le 19 décembre.

Merci d'avance ! »

Dernière modification par gonzoleri (13-12-2022 09:46:50)


Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert

Hors ligne

#36 20-12-2022 13:15:40

gonzoleri
Membre
Lieu : Provence Alpes
Distrib. : Guix System 1.4.0
Noyau : Linux gnu 6.0.13-gnu
(G)UI : Gnome Shell
Inscription : 24-12-2017

Re : Guix System, la 2ème distribution Gnu/Linux fonctionnelle

Et voilà ! Hier il y a eu la sortie de la nouvelle version smile

Traduction :

Sortie de GNU Guix 1.4.0
Ludovic Courtès - 19 décembre 2022
Nous sommes heureux d'annoncer la sortie de la version 1.4.0 de GNU Guix !

La version est livrée avec des images d'installation ISO-9660, une image de machine virtuelle, et avec des tarballs pour installer le gestionnaire de paquets au dessus de votre distro GNU/Linux, soit à partir des sources, soit à partir des binaires - consultez la page de téléchargement.
Les utilisateurs de Guix peuvent mettre à jour en exécutant guix pull.

18 mois se sont écoulés depuis la dernière version. C'est beaucoup de temps, reflétant à la fois le fait que, en tant que rolling release, les utilisateurs obtiennent continuellement de nouvelles fonctionnalités et peuvent mettre à jour en exécutant guix pull ; mais avouons-le, cela montre aussi un domaine où nous pourrions et devrions collectivement améliorer nos processus. Pendant cette période, Guix a reçu environ 29.000 commits par 453 personnes, ce qui inclut d'importantes nouvelles fonctionnalités comme nous le verrons ; le projet a également changé de mainteneurs, structuré la coopération en équipes , et célébré son dixième anniversaire !

Logo Guix-1.4.0

Illustration by Luis Felipe, published under CC-BY-SA 4.0.

Ce post présente les points forts de tout le travail qui a été effectué pour cette version - et oui, ce sont probablement les notes de version les plus longues de l'histoire de Guix, alors installez-vous confortablement, détendez-vous et profitez-en.

Bonus ! Voici un chiptune (par Trevor Lentz , sous CC-BY-SA 3.0) que notre illustrateur Luis Felipe vous recommande d'écouter avant d'aller plus loin.

Amélioration de la gestion de l'environnement logiciel

Un domaine où Guix brille est la gestion des environnements logiciels. La commande guix environment a été conçue pour cela mais elle souffrait d'une interface maladroite. Elle est maintenant remplacée par guix shell bien que nous nous soyons engagés à conserver guix environment au moins jusqu'au 1er mai 2023. guix shell est un outil intéressant pour les développeurs, mais c'est aussi un outil utile lorsque vous voulez essayer un logiciel sans l'enregistrer dans votre profil avec guix install. Disons que vous voulez jouer à SuperTuxKart mais que vous préférez ne pas l'avoir dans votre profil parce que, hé, c'est un ordinateur portable professionnel ; voici comment vous le lancerez, en le récupérant d'abord si nécessaire :

guix shell supertuxkart -- supertuxkart



En plus de fournir une interface plus simple, guix shell améliore considérablement les performances grâce à la mise en cache. Il simplifie également les flux de travail des développeurs en reconnaissant automatiquement les fichiers guix.scm et manifest.scm présents dans un répertoire : déposez l'un d'entre eux dans votre projet et les autres développeurs pourront commencer à hacker simplement en exécutant guix shell, sans arguments. En parlant de cela : --export-manifest vous permettra de commencer en "convertissant" les arguments de la ligne de commande en un manifeste. Lisez plus sur guix shell dans le manuel.

Une autre innovation de l'interpréteur de commandes guix est l'émulation optionnelle de la norme de hiérarchie du système de fichiers (FHS). Le FHS spécifie des emplacements pour différentes catégories de fichiers-/bin pour les binaires des commandes essentielles, /lib pour les bibliothèques, et ainsi de suite. Guix avec son store n'adhère pas au FHS, ce qui empêche les utilisateurs d'exécuter des programmes qui supposent l'adhésion au FHS. Le nouveau drapeau --emulate-fhs (ou -F) de l'interpréteur de commandes guix, combiné avec --container (-C), l'instruit de créer un environnement de conteneur qui suit le FHS. Ceci est parfaitement illustré par cet exemple, où la commande ls du paquet coreutils apparaît juste sous /bin, comme si nous étions sur un système FHS comme Debian :


$ guix shell -CF coreutils -- /bin/ls -1p /
bin/
dev/
etc/
gnu/
home/
lib/
lib64
proc/
sbin/
sys/
tmp/
usr/
 



Une autre grande nouveauté est Guix Home. En un mot, Home apporte la nature déclarative du Guix System à votre environnement domestique : il vous permet de déclarer tous les aspects de vos environnements domestiques - "dot files", services, et packages - et peut instancier cet environnement, dans votre $HOME actuel ou dans un container.

Si vous maintenez déjà vos fichiers dot sous contrôle de version, ou si vous souhaitez garder les choses sous contrôle pour ne pas avoir à passer des jours ou des semaines à les configurer à nouveau chaque fois que vous changez d'ordinateur portable, c'est l'outil qu'il vous faut. Regardez cette excellente introduction que David Wilson a donné lors de la célébration du Ten Years, et lisez plus sur Guix Home dans le manuel.

Les options de transformation de paquet donnent aux utilisateurs un contrôle fin sur la façon dont les paquets sont construits. La nouvelle option --tune permet de régler les paquets pour une micro-architecture CPU spécifique ; cela permet d'utiliser les instructions enables the use of the newest single-instruction multiple-data (SIMD) instructions, SIMD (single-instruction multiple-data) les plus récentes, comme AVX-512 sur les CPU AMD/Intel récents, ce qui peut faire une différence significative pour certaines charges de travail comme les calculs d'algèbre linéaire.

Depuis la version 1.3.0, le projet a commencé à maintenir une ferme de compilation alternative à https://bordeaux.guix.gnu.org. Elle est indépendante de la ferme de compilation de ci.guix.gnu.org (donnée et hébergée par le Max Delbrück Center for Molecular Medicine à Berlin, Allemagne), ce qui a deux avantages : cela nous permet de tester les substituts produits par chaque système, et cela fournit une redondance si l'une de ces deux fermes de compilation tombe en panne. Guix est maintenant configuré par défaut pour récupérer les substituts de n'importe laquelle de ces deux fermes de construction. De plus, un bug a été corrigé, assurant que Guix bascule gracieusement vers un autre fournisseur de substituts quand l'un d'eux tombe en panne.

Celles et ceux qui ont apprécié le déploiement déclaratif de flottes entières de machines apprécieront probablement la nouvelle option --execute de guix deploy.

Une distribution plus solide

La distribution elle-même a vu beaucoup de changements. Tout d'abord, l'installateur du système Guix a reçu un certain nombre de corrections de bogues et il inclut maintenant un nouveau mécanisme qui permet aux utilisateurs de rapporter automatiquement des informations de débogage utiles en cas de crash. Cela aidera les développeurs à résoudre les bogues qui se produisent avec des configurations inhabituelles.

Le démarrage des applications a été réduit grâce à un nouveau cache de linker dynamique par application qui réduit drastiquement le nombre de stat et d'appels ouverts dus à la recherche de la bibliothèque partagée (nous sommes heureux que cela en ait inspiré d'autres).

Guix System utilise maintenant la version 0.9 du GNU Shepherd, qui corrige des défauts, améliore la journalisation, et ajoute des fonctionnalités telles que l'activation de services de type systemd et le démarrage de services de type inetd. En parlant de services, la nouvelle sous-commande guix system edit  fournit aux utilisateurs un moyen supplémentaire d'inspecter les services, en complétant guix system search et guix system extension-graph.

Il existe 15 nouveaux services système parmi lesquels choisir, dont Jami, Samba, fail2ban et Gitile, pour n'en citer que quelques-uns.

Une nouvelle interface est disponible pour déclarer l'espace de swap dans les configurations de systèmes d'exploitation. Cette interface est plus expressive et plus flexible que ce qui était disponible auparavant.

De même, l'interface permettant de déclarer une configuration réseau statique  a été remaniée. Sous GNU/Linux, elle vous permet de faire à peu près la même chose que la commande ip, mais de manière déclarative et avec des contrôles statiques pour vous empêcher de déployer des configurations manifestement défectueuses.

Ecran gnome-42

Plus de 5 300 paquets ont été ajoutés pour un total de près de 22 000 paquets, ce qui fait de Guix l'une des dix plus grandes distros selon Repology.  Parmi les nombreuses mises à jour et ajouts de paquets notables, GNOME 42 est maintenant disponible. KDE n'est pas encore là mais des dizaines de paquets KDE ont été ajoutés donc nous nous en rapprochons ; Qt 6 est également disponible. La distribution est également fournie avec GCC 12.2.0, GNU libc 2.33, Xfce 4.16, Linux-libre 6.0.10, LibreOffice 7.4.3.2 et Emacs 28.2 (avec le support de la compilation juste à temps !)

Dans d'autres nouvelles, motivées par le fait que Python 2 a officiellement atteint la "fin de vie" en 2020, plus de 500 paquets Python 2 ont été supprimés - ceux dont le nom commence par python2-. Cela inclut les "gros" paquets comme python2-numpy et python2-scipy. Celles et ceux qui ont encore besoin de ces paquets ont deux options : utiliser guix time-machine pour passer à un ancien commit qui contient les paquets dont ils ont besoin, ou utiliser le canal Guix-Past pour construire certains de ces anciens paquets dans les environnements d'aujourd'hui - l'informatique scientifique est un domaine où cela peut être utile.

En plus de cela, le site Web propose un nouveau navigateur de paquets - enfin ! Entre autres choses, le navigateur de paquets fournit des URLs de paquets stables comme https://packages.guix.gnu.org/packages/PACKAGE.

Le fichier NEWS liste d'autres modifications et corrections de bogues dignes d'intérêt qui pourraient vous intéresser.

Plus de documentation

Comme pour les versions précédentes, nous avons travaillé sur la documentation pour rendre Guix plus accessible. Des sections de type "Comment faire" ont été écrites ou améliorées, telles que :

    "Ecrire des Manifests"
    "Répliquer Guix"
    "Utiliser TeX et LaTeX"
    "Conseils pour le dépannage du système"
    "Architectures étrangères"
    "Utilisation interactive de Guix"
   
Le livre de cuisine continue également à recevoir des entrées "comment faire", consultez-le !

Le manuel de référence de Guix est entièrement traduit en français et en allemand ; 70% est disponible en espagnol, et il y a des traductions préliminaires en russe, chinois, et autres langues. Guix lui-même est entièrement traduit en français, avec des traductions presque complètes en portugais brésilien, allemand, slovaque et espagnol, et des traductions partielles dans presque vingt autres langues. Consultez le manuel sur la façon d'aider ou cette visite guidée par le traducteur en chef Julien Lepiller !

Favoriser la reproductibilité à long terme

Une caractéristique saillante de Guix est son support pour le déploiement reproductible de logiciels. Il y a plusieurs aspects à cela, l'un d'entre eux est la possibilité de récupérer le code source de l'archive Software Heritage. Alors que Guix était déjà capable de récupérer le code source des paquets à partir de Software Heritage comme solution de repli, avec la version 1.4.0 le code source des canaux Guix est automatiquement récupéré à partir de Software Heritage si son URL d'origine est devenue inaccessible.

De plus, Guix est maintenant capable de récupérer et de restaurer les tarballs de code source tels que les fichiers tar.gz. Software Heritage archive le contenu des tarballs, mais pas les tarballs eux-mêmes. Cela a créé un décalage d'impédance pour Guix, où la majorité des définitions de paquets font référence aux tarballs et s'attendent à pouvoir vérifier le hachage du contenu du tarball lui-même. Pour combler cette lacune, Timothy Sample a développé Disarchive , un outil qui peut (1) extraire les métadonnées des tarballs, et (2) assembler les métadonnées précédemment extraites et les fichiers réels pour reconstruire un tarball, comme le montre le schéma ci-dessous.

Diagramme disarchive swh

Le projet Guix a mis en place une tâche d'intégration continue pour construire une base de données Disarchive, qui est disponible à disarchive.guix.gnu.org. La base de données comprend des métadonnées pour tous les tarballs auxquels les paquets font référence. Lorsqu'un tarball de code source disparaît, Guix récupère de manière transparente les métadonnées du tarball à partir de la base de données Disarchive, récupère le contenu des fichiers à partir de Software Heritage, et reconstruit le tarball original. Depuis le "Preservation of Guix Report" publié en janvier 2022, presque 75% des fichiers .tar.gz auxquels les paquets font référence sont maintenant entièrement archivés avec Disarchive et Software Heritage. L'exécution de guix lint -c archival PKG vous renseignera sur le statut d'archivage de PKG. Vous pouvez en lire plus dans le rapport annuel de Guix-HPC.

C'est un pas en avant significatif pour fournir, pour la première fois, un outil qui peut redéployer les anciens environnements logiciels tout en maintenant la connexion entre le code source et les binaires.

Paquets d'applications et images système

La commande guix pack pour créer des " paquets d'applications " - des images d'applications autonomes - a été étendue : guix pack -f deb crée un paquet .deb autonome qui peut être installé sur Debian et les distributions dérivées ; le nouveau drapeau --symlink lui permet de créer des liens symboliques dans l'image.

Au niveau du système, la nouvelle commande system image remplace les sous-commandes guix system existantes, fournissant un point d'entrée unique pour construire des images de tous types : images de disques bruts, images de machines virtuelles QCOW2, images de CD/DVD ISO8660, images Docker, et même des images pour le sous-système Windows pour Linux (WSL2) de Microsoft. Il est doté d'une interface de haut niveau qui vous permet de déclarer le type d'image que vous souhaitez : le format de stockage, les partitions et, bien sûr, le système d'exploitation de cette image. Pour faciliter son utilisation, des types d'images prédéfinis sont fournis :

$ guix system image --list-image-types
        The available image types are:

    - rock64-raw
    - pinebook-pro-raw
    - pine64-raw
    - novena-raw
    - hurd-qcow2
    - hurd-raw
    - raw-with-offset
    - iso9660
    - efi32-raw
    - wsl2
    - uncompressed-iso9660
    - efi-raw
    - docker
    - qcow2
    - tarball



       
Cela inclut par exemple https://guix.gnu.org/manual/en/html_nod … dules.html un type d'image pour les machines Pine64 et pour le système d'exploitation GNU/Hurd. Par exemple, voici comment créer une image de machine virtuelle QCOW2 adaptée à QEMU :

       

guix system image -t qcow2 my-operating-system.scm



   
... où my-operating-system.scm contient une déclaration de système d'exploitation.

De même, voici comment créer, sur votre machine x86_64, une image pour votre carte Pine64, prête à être transférée sur une carte SD ou un périphérique de stockage similaire à partir duquel la carte démarrera :

   

guix system image -t pine64-raw my-operating-system.scm



   
Le type d'image pine64-raw spécifie que le logiciel dans l'image est en fait une compilation croisée vers aarch64-linux-gnu, c'est-à-dire GNU/Linux sur un CPU AArch64, avec la variante U-Boot appropriée comme chargeur de démarrage. Le ciel est la limite !

Nicer packaging experience

La nouvelle commande guix style peut automatiquement convertir de l'"ancien" style au "nouveau" style d'entrées de paquets. Elle peut également reformater des fichiers Scheme entiers en suivant les canons stylistiques du jour, ce qui est particulièrement pratique lorsqu'on débute avec le langage.

Ce n'est que la partie émergée de l'iceberg : la nouvelle macro modify-inputs rend la manipulation des entrées de paquets plus facile et plus claire, et on peut utiliser des G expressions par exemple dans les phases de paquets. Lisez notre annonce précédente pour plus d'informations. En plus de cela, le nouveau mécanisme d'assainissement des champs est utilisé pour valider certains champs ; par exemple, le champ licence est maintenant vérifié au niveau du type et la syntaxe Texinfo de la description et du synopsis est validée, le tout sans aucune surcharge d'exécution dans les cas courants. Nous espérons que ces changements faciliteront la prise en main de l'empaquetage.

La commande guix build a de nouvelles options, --list-systems et --list-targets, pour lister les types de systèmes supportés (qui peuvent être passés à --system) et les triplets de cibles de compilation croisée (à utiliser avec --target). Sous le capot, le nouveau module (guix platform) permet aux développeurs de définir des "plates-formes" - une combinaison de l'architecture du processeur et du système d'exploitation - de manière abstraite, en unifiant divers éléments d'information auparavant éparpillés.

De plus, les empaqueteurs peuvent désormais marquer comme "tunables" les paquets qui bénéficieraient d'optimisations de la micro-architecture du CPU, activées avec --tune.

L'empaquetage de Python a connu des changements importants. Tout d'abord, le paquet python respecte désormais la variable d'environnement GUIX_PYTHONPATH plutôt que PYTHONPATH. Cela garantit que Python ne prendra pas involontairement des paquets non fournis par Guix. Deuxièmement, le nouveau pyproject-build-system implémente le PEP 517. Il complète le système existant python-build-system, et les deux peuvent éventuellement être fusionnés ensemble.

Ce qui est génial avec l'empaquetage, c'est quand il est gratuit. La commande guix import a gagné le support de plusieurs dépôts de paquets en amont : minetest (extensions du jeu Minetest), elm (le langage de programmation Elm), egg (pour CHICKEN Scheme), et hexpm (pour les paquets Erlang et Elixir). Les importateurs existants ont connu diverses améliorations. La commande guix refresh pour mettre à jour automatiquement les définitions de paquets a un nouvel outil de mise à jour generic-git.

Essayez-le !

Il y a plusieurs façons de commencer à utiliser Guix :

Le script d'installation vous permet d'installer rapidement Guix au dessus d'une autre distribution GNU/Linux.

L'image de la machine virtuelle Guix System peut être utilisée avec QEMU et est un moyen simple de découvrir le Guix System sans toucher à votre système.

Vous pouvez installer Guix System comme une distribution autonome. L'installateur vous guidera à travers les étapes de la configuration initiale.

Pour passer en revue toutes les options d'installation à votre disposition, consultez la page de téléchargement et n'hésitez pas à nous contacter.


Bonne lecture !

Dernière modification par gonzoleri (20-12-2022 13:34:28)


Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert

Hors ligne

Pied de page des forums