Utiliser CVS Introduction

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 se focalise plus spécifiquement sur l'utilisation de CVS et Repoman dans l'arbre des ebuilds de Gentoo.

Configuration

En général vous aurez les lignes suivants dans votre fichier ~/.cvsrc  :

cvs -q -z0
diff -u -B
checkout -P
update -d -P

Pour être sur que les ``digests'' sont corrects, mettez cvs dans votre configuration 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 limite 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 du CVS

Il y a quelques modules utiles dans le dépôt CVS de Gentoo. Les ebuilds sont gardés dans le module gentoo-x86. gentoo-src contient différents projets (certains utiles, d'autres, inactifs). gentoo contient les pages XML du site Internet, la documentation, les répertoires de développeur, les images de développeurs, etc.

# 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 à jour l'arbre complet :

# cd gentoo-x86
# cvs update
Mettre à jour 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 :

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 s'assurer que les ebuilds ne modifient pas le système de fichier racine directement.

Ajouter/Supprimer

Admettons que vous avez déjà ajouté un nouveau paquet foo dans app-misc.

(remplacer CVSROOT par le répertoire de votre arbre CVS racine)

# cd $CVSROOT/app-misc
(toujours mettre à jour avant de travailler sur une partie de l'arbre
CVS !)
# cvs update
# mkdir foo
(ici nous ajoutons 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 tout seul pour vous)
# cvs add files/digest-foo-1.0

Souvenez-vous que vous devez également ajouter un fichier metadata.xml avec 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 (lire la section sur la soumission plus bas) votre travail. Mais que se passe-t-il si vous voulez supprimer foo-1.0 quand foo-1.1 est sorti ?

# cd CVSROOT/app-misc/foo
# cvs update
# rm foo-1.0.ebuild files/digest-foo-1.0
(Les fichiers devraient être supprimés avant...)
# cvs remove foo-1.0.ebuild files/digest-foo-1.0

Nous sommes fin prêt à faire des soumissions (lire la partie Soumettre plus bas).

Soumettre

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 basiques et crèe les 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. keychainvous sera d'un grand secours.

[Assurez-vous qu'il n'y a aucun fichier appartenant à l'utilisateur
root avant de lancer 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 à jour les digests. Assurez-vous d'avoir fourni un message de 
ChangeLog au contenu complet et utile...)
# repoman commit
Divers Mettre des fichiers sur des 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 /space/distfiles-local sur le serveur dev.gentoo.org.

Courrier électronique

Notre infrastructure permet aux développeurs de gérer leurs propres courrier. La documentation sur le courrier électronique Gentoo contient les instructions nécessaires pour configurer au mieux votre courrier gentoo.org.