Suivant: Style de code, Précédent: Source Tree Structure, Monter: Contribuer [Table des matières][Index]
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 en substance 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 serons ravis de vous aider aussi. Une fois que le correctif soumis est commité 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
bordeaux.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: Style de code, Précédent: Source Tree Structure, Monter: Contribuer [Table des matières][Index]