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 s'intéresse plus spécifiquement à l'utilisation de CVS et Repoman dans l'arbre des ebuilds de Gentoo.

Configuration

En général vous aurez les lignes suivantes dans votre fichier ~/.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 du CVS

Il y a quelques modules utilisés 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 des développeurs, 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 la totalité de l'arbre à jour :

# 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 vous assurer que les ebuilds ne modifient pas le système de fichiers racine directement.

Ajouter/Supprimer

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

(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 tout seul 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 ?

# cd CVSROOT/app-misc/foo
# cvs update
# rm foo-1.0.ebuild files/digest-foo-1.0
(Les fichiers doivent être supprimés avant...)
# 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.

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 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.

[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 à
 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 le répertoire /space/distfiles-local sur le serveur dev.gentoo.org.

Courrier électronique

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.