Suivant: Lancer Guix avant qu'il ne soit installé, Monter: Contribuer [Table des matières][Index]
Si vous souhaitez travailler sur Guix lui-même, il est recommandé d’utiliser la dernière version du dépôt Git :
git clone https://git.savannah.gnu.org/git/guix.git
Comment vous assurer que vous avez obtenu une copie authentique du dépôt ?
Pour celà, exécutez guix git authenticate
, en lui transmettant le
commit et l’empreinte OpenPGP de l’canal introduction (voir Invoquer guix git authenticate) :
git fetch origin keyring:keyring guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
Cette commande se termine avec le code de sortie zéro en cas de succès ; elle affiche un message d’erreur et quitte avec un code non zéro dans le cas contraire.
Comme vous pouvez le voir, il y a un problème de poule et d’œuf : il faut d’abord avoir installé Guix. En général, vous installez Guix System (voir Installation du système) ou Guix sur une autre distribution (voir Installation binaire) ; dans les deux cas, vous vérifiez la signature OpenPGP sur le support d’installation. Cela "amorce" la chaîne de confiance.
La manière la plus simple de configurer un environnement de développement pour Guix est, bien sûr, d’utiliser Guix ! La commande suivante démarre un nouveau shell où toutes les dépendances et les variables d’environnements appropriées sont configurés pour travailler sur Guix :
guix environment guix --pure
Voir Invoquer guix environment, pour plus d’informations.
Si vous ne pouvez pas utiliser Guix pour la construction de Guix depuis un extrait, les paquets suivants sont requis en plus de ceux mentionnés dans les instructions d’installation (voir Prérequis).
Avec Guix, vous pouvez ajouter des dépendances supplémentaires en lançant
guix environment
avec --ad-hoc :
guix environment guix --pure --ad-hoc help2man git strace
Lancez ./bootstrap
pour générer l’infrastructure du système de
construction avec Autoconf et Automake. Si vous avez une erreur comme :
configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES
cela signifie probablement qu’Autoconf n’a pas pu trouver pkg.m4 qui est fournit par pkg-config. Assurez-vous que pkg.m4 est disponible. C’est aussi vrai pour l’ensemble de macros de guile.m4 fournies par Guile. Par exemple, si vous avez installé Automake dans /usr/local, il ne cherchera pas les fichiers .m4 dans /usr/share. Dans ce case vous devez invoquer la commande suivante :
export ACLOCAL_PATH=/usr/share/aclocal
Voir Macro Search Path dans The GNU Automake Manual, pour plus d’information.
Ensuite, lancez ./configure
comme d’habitude. Assurez-vous de
passer --localstatedir=directory
où directory est la
valeur localstatedir
utilisée par votre installation actuelle
(voir Le dépôt pour plus d’informations à ce propos), habituellement
/var. Remarquez que vous n’allez probablement pas lancer
make install
à la fin (vous n’avez pas besoin de la faire) mais il
est toujours important de passer le bon localstatedir
.
Finalement, vous devez invoquer make && make check
pour construire
Guix et lancer les tests (voir Lancer la suite de tests). Si quelque
chose échoue, jetez un œil aux instructions d’installation
(voir Installation) ou envoyez un message à la liste
guix-devel@gnu.org.
À partir de maintenant, vous pouvez authentifier tous les commits de votre extrait en lançant :
make authenticate
La première exécution prend quelques minutes, mais les exécutions suivantes seront plus rapides.
Ou bien, si la configuration de votre dépôt Git local ne correspond pas à la
configuration par défaut, vous pouvez fournir la référence pour la branche
keyring
dans la variable GUIX_GIT_KEYRING
. L’exemple suivant
suppose que vous avez un dépôt distant nommé ‘myremote’ qui pointe vers
le dépôt officiel :
make authenticate GUIX_GIT_KEYRING=myremote/keyring
Remarque : Nous vous conseillons d’exécuter
make authenticate
après chaque invocation degit pull
. Celà vous garantit de continuer à recevoir des modifications valables dans le dépôt.
Suivant: Lancer Guix avant qu'il ne soit installé, Monter: Contribuer [Table des matières][Index]