Suivant: , Précédent: , Monter: Contribuer   [Table des matières][Index]


14.4 Consignes d’empaquetage

La distribution GNU est jeune et vos paquets préférés peuvent manquer. Cette section décrit comment vous pouvez aider à agrandir la distribution.

Les paquets de logiciels libres sont habituellement distribués sous forme d’archives de sources — typiquement des fichiers .tar.gz contenant tous les fichiers sources. Ajouter un paquet à la distribution signifie essentiellement deux choses : ajouter une recette qui décrit comment construire le paquet, avec une liste d’autres paquets requis pour le construire, et ajouter des métadonnées de paquet avec la recette, comme une description et une licence.

Dans Guix, toutes ces informations sont incorporées dans les définitions de paquets. Les définitions de paquets fournissent une vue de haut-niveau du paquet. Elles sont écrites avec la syntaxe du langage de programmation Scheme ; en fait, pour chaque paquet nous définissons une variable liée à la définition et exportons cette variable à partir d’un module (voir Modules de paquets). Cependant, il n’est pas nécessaire d’avoir une connaissance approfondie du Scheme pour créer des paquets. Pour plus d’informations sur les définitions des paquets, voir Définition des paquets.

Une fois une définition de paquet en place, stocké dans un fichier de l’arborescence des sources de Guix, il peut être testé avec la commande guix build (voir Invoquer guix build). Par exemple, en supposant que le nouveau paquet s’appelle gnew, vous pouvez lancer cette commande depuis l’arborescence de construction de Guix (voir Lancer Guix avant qu'il ne soit installé) :

./pre-inst-env guix build gnew --keep-failed

Utiliser --keep-failed rend facile le débogage des échecs car il fournit l’accès à l’arborescence de construction qui a échouée. Une autre sous-commande utile pour le débogage est --log-file, pour accéder au journal de construction.

Si le paquet n’est pas connu de la commande guix, il se peut que le fichier source ait une erreur de syntaxe, ou qu’il manque une clause define-public pour exporter la variable du paquet. Pour comprendre cela, vous pouvez charger le module depuis Guile pour avoir plus d’informations sur la véritable erreur :

./pre-inst-env guile -c '(use-modules (gnu packages gnew))'

Une fois que votre paquet est correctement construit, envoyez-nous un correctif (voir Contribuer). Enfin, si vous avez besoin d’aide, nous serrons ravis de vous aider. Une fois que le correctif soumis est committé dans le dépôt Guix, le nouveau paquet est automatiquement construit sur les plate-formes supportées par notre système d’intégration continue.

On peut obtenir la nouvelle définition du paquet simplement en lançant guix pull (voir Invoquer guix pull). Lorsque ci.guix.gnu.org a fini de construire le paquet, l’installation du paquet y télécharge automatiquement les binaires (voir Substituts). La seule intervention humaine requise est pendant la revue et l’application du correctif.


Suivant: , Précédent: , Monter: Contribuer   [Table des matières][Index]