Ce guide n'a pas pour prétention de servir de manuel d'utilisation à CVS. Pour cela, vous pouvez aller lire la page d'information de CVS (info cvs) ou encore le tutoriel CVS de Gentoo. Ce guide s'intéresse plus spécifiquement à l'utilisation de CVS et Repoman dans l'arbre des ebuilds de Gentoo.
En général vous aurez les lignes suivantes dans votre fichier ~/.cvsrc :
Exemple de code 1.1 : ~/.cvsrc |
cvs -q -z0 diff -u -B checkout -P update -d -P |
Pour être sûr que les « digests » sont corrects, mettez cvs dans les paramètres de la variable FEATURES.
Enfin, plusieurs personnes utilisant CVS aiment utiliser la compression (-z#). Nous demandons aux développeurs qui n'ont pas un accès Internet avec une bande passante limitée d'utiliser -z0 (pour le contenu du dépôt CVS, et la charge de serveur CVS, vous aurez probablement une augmentation de la vitesse de transfert si vous n'utilisez pas de compression).
Récupération des modules par CVS/SVN
Plusieurs modules sont utilisés dans le dépôt CVS de Gentoo. Les ebuilds sont gardés dans le module gentoo-x86. gentoo contient les pages XML du site Internet, la documentation, les répertoires des développeurs, les images de développeurs, etc. gentoo-projects contient différents projets et remplace généralement le module gentoo-src. gentoo-src est conservé pour des raisons historiques, aussi veuillez envisager un autre module si vous l'utilisez encore.
Exemple de code 1.1 : Récupérer le module gentoo-x86 |
# cvs -d nom_utilisateur@cvs.gentoo.org:/var/cvsroot co gentoo-x86 |
Avant de travailler sur l'arbre, c'est toujours une bonne idée de faire une mise à jour pour vérifier les modifications et pour prévenir les conflits. Vous pouvez mettre à jour n'importe quel sous-répertoire de l'arbre, si vous ne souhaitez pas mettre à jour l'arbre complet. Mais il est parfois bon de mettre la totalité de l'arbre à jour :
Exemple de code 1.1 : Mise à jour de gentoo-x86 |
# cd gentoo-x86 # cvs update |
Gentoo offre également des services subversion pour ceux qui préferent SVN à CVS. Beaucoup de projets principaux comme portage et baselayout sont désormais hébergés sur subversion.
Exemple de code 1.1 : Récupération du module portage |
# svn co svn+ssh://username@cvs.gentoo.org/var/svnroot/portage |
Si vous voulez utiliser CVS en tant qu'arbre de Portage primaire, vous pouvez ajouter les lignes suivantes dans votre fichier de configuration /etc/make.conf, en remplaçant moi par votre nom d'utilisateur :
Exemple de code 1.1 : Modifier /etc/make.conf pour utiliser CVS |
SYNC="cvs://moi@cvs.gentoo.org:/var/cvsroot" CVSROOT=":ext:moi@cvs.gentoo.org:/var/cvsroot" |
Que vous vouliez utiliser les sources CVS (CVS checkout) pour votre arbre de Portage primaire ou non, vous devez vous assurer que cvs est dans votre variable FEATURES dans le fichier /etc/make.conf. Cela assure que Portage téléchargera tous les fichiers référencés par un ebuild dans sa variable SRC_URI lors du digest.
Vous pouvez ajouter digest à votre variable FEATURES, pour que Portage crée automatiquement les nouveaux digests. Vous pouvez aussi ajouter autoaddcvs pour que repoman, l'outil que vous utiliserez pour soumettre des ebuilds, ajoute automatiquement les digests manquants à votre place dans le CVS.
Sur les architectures le permettant, vous pouvez également utiliser sandbox dans votre variable FEATURES pour vous assurer que les ebuilds ne modifient pas le système de fichiers racine directement.
Admettons que vous avez déjà ajouté un nouveau paquet foo dans app-misc.
Exemple de code 1.1 : Ajout d'un paquet |
(Remplacez CVSROOT par le répertoire de votre arbre CVS racine.) # cd $CVSROOT/app-misc (Toujours faire une mise à jour avant de travailler sur une partie de l'arbre CVS !) # cvs update # mkdir foo (Nous ajoutons maintenant le répertoire du paquet foo dans le dépôt CVS.) # cvs add foo # cd foo (C'est mieux de garder les ebuilds en travaux dans un overlay hors de l'arbre CVS.) # cp /repertoire/pour/foo-1.0.ebuild ./ (N'oubliez pas de créer un ChangeLog - lire la page de manuel d'echangelog.) (Assurez-vous que PORTDIR_OVERLAY est activé dans votre répertoire CVS quand vous créez les digests.) # ebuild foo-1.0.ebuild digest # cvs add foo-1.0.ebuild ChangeLog files (FEATURES=autoaddcvs le fera pour vous.) # cvs add files/digest-foo-1.0 |
Souvenez-vous que vous devez également ajouter un fichier metadata.xml contenant des informations sur le mainteneur. Lire la section (Metadata Gentoo) pour plus d'informations.
À ce moment-là de votre travail, vous êtes prêt à soumettre votre travail (lire la section sur la soumission plus bas). Mais que se passe-t-il si vous voulez supprimer foo-1.0 quand foo-1.1 est sorti ?
Exemple de code 1.1 : Suppression d'un paquet |
# cd CVSROOT/app-misc/foo # cvs update # cvs remove foo-1.0.ebuild files/digest-foo-1.0 |
Nous sommes fin prêt à faire des soumissions. Vous pouvez passer au chapitre suivant.
Utilisez toujours repoman commit au lieu de cvs commit. Repoman est un outil d'assurance qualité (QA) qui réalise un certain nombre de vérifications de base et crée les fichiers Manifests. Si une partie des messages de sortie de repoman ne vous semble pas claire, lisez la page de manuel (man repoman). Il est possible que vous ayez besoin de taper un certain nombre de fois votre mot de passe. keychain vous sera alors d'un grand secours.
Exemple de code 1.1 : Utilisation de repoman |
(Assurez-vous qu'il n'y a aucun fichier appartenant à l'utilisateur root avant d'utiliser repoman ! "scan" recherche dans le répertoire courant des données QA. "full" est plus complet.) # repoman scan ("commit" effectue une recherche, puis se charge de faire la soumission et met les digests à jour. Assurez-vous d'avoir fourni un message de ChangeLog au contenu complet et utile...) # repoman commit |
Mettre des fichiers sur les miroirs
La procédure pour déposer un nouveau fichier dans distfiles sur les miroirs Gentoo est très simple : il suffit de le copier dans le répertoire /space/distfiles-local sur le serveur dev.gentoo.org.
Notre infrastructure permet aux développeurs de gérer leur propre courrier. La documentation sur le courrier électronique Gentoo contient les instructions nécessaires pour configurer au mieux votre adresse courrier gentoo.org.
Nous avons mis en place Planet Gentoo qui est un service permettant de regrouper les articles écrits par les développeurs contribuant au projet. C'est optionnel mais nous vous encourageons à y participer, il aide la communication entre les développeurs, et les utilisateurs peuvent le trouver intéressant à lire.
Pour pouvoir poster du contenu sur Planet, vous devez avoir votre propre weblog (ou « blog »). De nombreux sites proposent ce service gratuitiement. Vous pouvez également en héberger un vous-même si vous en avez les ressources. Nous pouvons aussi en héberger un pour vous.
Nous souhaitons que le contenu de Planet Gentoo reste lié à Gentoo et/ou au développement et aux événements liés à Gentoo.
Si nous hébergeons le blog pour vous demandons que vous gardiez son contenu dans le cadre du sujet (articles sur ou liés à Gentoo). Vous devez aussi comprendre que si vous perdez ou laissez tomber votre statut de développeur, vous ne pourrez plus écrire d'articles sur votre blog.
Si vous disposez d'un blog externe, vous devez alors être en mesure de proposer un flux XML de contenu (flux RSS par exemple). Si votre blog est divisé en catégories, vous devez pouvoir fournir un flux qui ne couvre que la catégorie « gentoo » et pas les autres. Ce ne devrait pas être un problème dans la mesure où presque tous les blogs proposent des flux standardisés.
Pour une question de bon sens, faites attention à ce que vous écrivez. Vos points de vue pourraient être interprétés de manière erronée. Faites attention à ne pas entacher notre image.
SI vous souhaitez contribuer à Planet Gentoo, envoyez un courrier électronique à user-relations@gentoo.org, soit en demandant qu'on vous héberge un weblog, soit en donnant des détails concernant votre blog actuel. Nous nous occuperons ensuite des détails et laisserons alors votre plume parler.