Crafting happiness with Free Software & Hardware

Empaqueter ac-geiser pour Guix (2)

#guix #package #français

Je documente ici la poursuite du travail de l'article précédent.

Pour démarrer la session, je me replace dans un environnement de développement isolé :

$ guix environment --pure guix

Ok donc j'en étais où ? Je reprends les commandes de la dernière étape :

[dev]$ echo '(use-modules (guix packages)) (define-public ac-geiser (package (name "") (version "") source build-system synopsis description license home-page))' > /tmp/emacs-ac-geiser.scm
[dev]$ ./pre-inst-env guix build -f /tmp/emacs-ac-geiser.scm 
/tmp/emacs-ac-geiser.scm:1:55: error: source: invalid field specifier

Ah oui, le champ source de l'objet package est mal spécifié. Comment ça se spécifie ? Aucune idée. Je fais un petit tour dans la documentation de Guix pour apprendre qu'il lui faut un objet origin. Essayons ça sans chercher plus loin.

[dev]$ echo '(use-modules (guix packages)) (define-public ac-geiser (package (name "") (version "") (source origin) build-system synopsis description license home-page))' > /tmp/emacs-ac-geiser.scm
[dev]$ ./pre-inst-env guix build -f /tmp/emacs-ac-geiser.scm 
/tmp/emacs-ac-geiser.scm:1:55: error: build-system: invalid field specifier

C'est cool, ça lui suffit. Maintenant, le champ build-system. Un petit tour dans la documentation, j'y apprends notamment qu'il existe plusieurs types de build-system pris en charge par Guix, par exemple : le gestionnaire de paquet du langage Rust ou Clojure ou Go, mais aussi un spécialisé pour les polices de caractères et, ohh! un pour Emacs... Ce dernier me semble approprié pour mon paquet donc je l'essaye (je n'oublie pas d'ajouter la dépendance (guix build-system emacs) comme précisé dans la documentation), on verra si ça bloque à cause de ça plus tard.

[dev]$ echo '(use-modules (guix packages) (guix build-system emacs)) (define-public ac-geiser (package (name "") (version "") (source origin) (build-system emacs-build-system) synopsis description license home-page))' > /tmp/emacs-ac-geiser.scm
[dev]$ ./pre-inst-env guix build -f /tmp/emacs-ac-geiser.scm 
/tmp/emacs-ac-geiser.scm:1:81: error: synopsis: invalid field specifier

Guix ne se plaint pas, donc je peux passer au champ suivant : synopsis. La documentation ne précise pas quel type de donnée est attendu mais vue le nom du champ, je parierai sur une chaîne de caractères.

[dev]$ echo '(use-modules (guix packages) (guix build-system emacs)) (define-public ac-geiser (package (name "") (version "") (source origin) (build-system emacs-build-system) (synopsis "") description license home-page))' > /tmp/emacs-ac-geiser.scm
[dev]$ ./pre-inst-env guix build -f /tmp/emacs-ac-geiser.scm 
/tmp/emacs-ac-geiser.scm:1:81: error: description: invalid field specifier

Même tarif pour description !

[dev]$ echo '(use-modules (guix packages) (guix build-system emacs)) (define-public ac-geiser (package (name "") (version "") (source origin) (build-system emacs-build-system) (synopsis "") (description "") license home-page))' > /tmp/emacs-ac-geiser.scm
[dev]$ ./pre-inst-env guix build -f /tmp/emacs-ac-geiser.scm 
/tmp/emacs-ac-geiser.scm:1:81: error: license: invalid field specifier

Pas de souci, Guix est toujours satisfait. La suite dans un prochain article !

Merci beaucoup d'avoir lu cet article !
N'hésites pas à me donner ton avis ou laisser un commentaire.
Abonnes-toi pour ne pas manquer les prochains articles :
via une plateforme fédérée (ex: mastodon) @jeko@write.as
via RSS https://write.as/jeko/feed/

Et encore plus important, partages le blog et dis à tes amis que c'est le meilleur blog de l'histoire du logiciel libre ! Sans dec'