[OpenBSD]

Le CVS anonyme


Qu'est ce que le CVS anonyme ?

Le CVS anonyme est une méthode qui permet de garder à jour votre copie locale des sources d'OpenBSD. En plus de suivre les dernières nouveautés du développement, il est aussi possible de suivre les correctifs et les errata d'une version.

L'avantage majeur du CVS anonyme sur les autres techniques de mise à jour est que cela fonctionne directement à partir d'un serveur central où réside le code source ou d'un miroir. Cela vous permet d'avoir accès à toutes les commandes de CVS pour intégrer et mettre à jour vos changements avec d'autres changements dans les sources, d'effectuer des diffs, de voir l'historique des changements et plein d'autres types de requêtes.

Le projet OpenBSD a actuellement trois branches principales :

Pour résumer, la force du CVS anonyme est que c'est un système de contrôle du code source "tolérant". Il respecte les changements que vous avez effectués dans vos sources et fait les "meilleurs efforts" pour mettre à jour votre arborescence des sources, plutôt que de vous faire une liste de problèmes ésotériques à résoudre avant de pouvoir continuer.

Qu'est ce que CVS ?

CVS est le système de contrôle du code source utilisé pour gérer les sources d'OpenBSD. Il met en oeuvre un "dépôt" central pour tout le source officiellement disponible tout en permettant aux développeurs de maintenir des copies locales du code source avec leurs changements personnels. Les développeurs avec un "accès en écriture" peuvent soumettre des changements directement dans les sources d'OpenBSD, tandis que les utilisateurs du CVS anonyme ont un "accès en lecture" et peuvent garder leurs copies des sources à jour et émettre des requêtes vers le serveur.

La grande force de CVS est sa capacité à effectuer une intégration intelligente des changements venant du serveur central contenant les sources avec les changements que vous avez effectués dans votre copie locale. Cela signifie que si vous faites des changements à un module et que vous effectuez une mise à jour, vos changements ne seront pas détruits. CVS fait en sorte d'intégrer les changements dans les sources avec les changements que vous avez effectués.

Au cas où les changements ne peuvent pas être complètement intégrés, CVS fournit une "chute en douceur", dans le sens qu'il vous fournit des changements annotés à votre copie locale en préservant celle-ci et continue de mettre à jour les autres sources comme demandé.

Débuter avec le CVS anonyme.

La dernière version de CVS est disponible chez Cyclic. Les versions plus anciennes que 1.6 ne sont pas recommandées et pourraient ne pas fonctionner. Si vous avez déjà OpenBSD d'installé, CVS est inclus.

Les personnes qui possèdent un CD d'OpenBSD y ont sans doute vu des répertoires CVS/. La raison est que sur le CD se trouve une version du module src d'OpenBSD utilisable pour faire des mises à jour depuis un serveur CVS anonyme. Utiliser cette arborescence est beaucoup plus rapide que de récupérer complètement les sources d'OpenBSD. Il y a deux manières d'utiliser le CD :

Pour ceux qui n'ont pas de CD sous la main, vous pouvez utiliser cvs(1) pour récupérer les sources. C'est décrit dans la section suivante.

Après ça, /usr/src sera un répertoire où les commandes cvs(1) fonctionneront correctement.

Utiliser CVS(1) pour obtenir et mettre à jour les sources.

CVS a été mis au point dans le but d'être un moyen simple de récupérer et de mettre à jour vos sources. Vous devez tout d'abord décider si vous voulez suivre la branche current ou une branche de correctifs (patch). L'arborescence current possède tous les derniers changements et la branche correctifs contient une version d'OpenBSD avec tous les correctifs de l'errata appliqués.

Une fois que vous avez décidé quelle est la branche que vous voulez suivre, vous devez sélectionner le serveur de CVS anonyme que vous allez utiliser. Une liste de ces serveurs est disponible ci-dessous. Remarquez tout de même qu'il existe trois possibilités pour accéder à ces serveurs.

REMARQUE : - Pour les utilisateurs qui souhaitent utiliser ssh, il faut d'abord définir la variable CVS_RSH à ssh.

Une fois que vous avez choisi le serveur de CVS anonyme que vous allez utiliser, et quelle méthode vous allez utiliser, vous pouvez démarrer. Pour ceux qui aurait le CD, vous pouvez démarrer avec la version du CVS qui se trouve sur le CD avec les méthodes décrites ci-dessus pour installer les sources sur votre système. Si vous n'avez pas le CD sous la main, utilisez la méthode ci-dessous pour récupérer les sources. Cette méthode place l'arborescence des sources d'OpenBSD dans /usr/src.

La méthode ci-dessus va récupérer (checkout) l'arborescence current des sources. Beaucoup d'entre vous désirerons sûrement une branche correctifs (patch) des sources. Pour récupérer une branche patch, vous devez le spécifier avec votre commande (tag). Exemple :

Ou OPENBSD_2_6 pour 2.6, etc...

Actuellement, seul le tag OPENBSD_2_8 contient les sources et les erratas sur les sources déjà appliqués.

Serveurs CVS anonymes disponibles.

Il existe deux niveaux d'accès à l'arborescence des sources :

Accès en lecture-écriture pour les développeurs :
Les développeurs qui ont besoin de soumettre des changements à l'arborescence des sources doivent avoir un compte sur les machines OpenBSD. Obtenir cet accès sera le résultat tout naturel du travail effectué sur les sources avec d'autres développeurs OpenBSD. Si quelqu'un fait du bon travail et montre qu'il peut travailler avec l'équipe, il obtiendra un compte.
Accès en lecture seule pour tout le monde :
N'importe qui peut accéder au CVS en lecture seule. Ces copies du CVS en lecture-écriture sont réalisées relativement souvent. Pour en utiliser un, il vous faudra définir votre variable d'environnement CVSROOT avec l'une des valeurs suivantes :

Voyez la remarque ci-dessous en ce qui concerne l'utilisation de ssh contre rsh !

Remarque :, Si votre serveur est listé ici avec des informations inexactes, veuillez contacter beck@openbsd.org

Vous pouvez utiliser traceroute(8) pour trouver le serveur le plus proche de vous. Les problèmes avec un serveur doivent être adressés directement au mainteneur du serveur en question.

Obtenir les sources de la crypto par CVS(1).

REMARQUE IMPORTANTE : Il existe quelques remarques au sujet des logiciels cryptographiques que tout le monde doit connaître :

Exemples d'usages de CVS(1).

Un exemple d'utilisation d'un serveur anoncvs pourrait être :

Pour pouvoir utiliser cvs avec ``pserver'' (une connexion directe plutôt que l'utilisation de ssh ou rsh) vous devez vous connecter :

Voici comment quelqu'un qui utilise anoncvs met à jour son arborescence des sources :

Pour utiliser les ports, il faut procéder de la même façon qu'avec src :

Dans l'exemple précédent, -q est optionnel, et n'est là que pour minimiser la sortie cvs. Pour ceux qui aime avoir des écrans bien pleins, il peut être enlevé.

ou pour faire un diff sur un module corrigé en local (ici cd.c) à inclure avec un rapport de bug :

La page du manuel CVS(1) (inclue avec les sources de CVS) a beaucoup plus d'informations sur la manière d'utiliser CVS.

Arborescence des sources X11
Les miroirs anoncvs comportent aussi l'arborescence des sources X11. Vous pouvez adapter les recettes ci-dessus pour mettre à jour votre arborescence des source X11 depuis le deuxième CD. Vous pouvez soit copier soit utiliser un union mount pour obtenir les sources de X11 dans /usr/X11 :

Après ça, /usr/X11 sera près à être utilisé par cvs. Vous pouvez par exemple le mettre à jour avec les sources -current (en supposant que vous avez déjà prédéfinit la variable d'environnement CVSROOT) :

Avertissement : Quand vous utilisez cvs il vous faudra prendre garde que votre répertoire courant est soit la racine de l'arborescence des ports ou une autre place telle que /tmp. Quelques commandes telles que "get" peuvent créer une sous-arborescence arbitrairement dans le répertoire courant, et chaque mise à jour successive ira mettre à jour cette sous-arborescence.

Le serveur anoncvs donne une chance aux apprentis développeurs d'apprendre les opérations cvs et de devenir ainsi impliqué dans le développement des sources avant d'obtenir un accès "commit". De plus, les gens fournissant des correctifs peuvent les créer avec des diffs relatifs à l'arborescence CVS, ce qui facilitera l'intégration.

Utiliser rsh(1) ou ssh(1) ?

Anoncvs : rsh contre ssh
Par défaut, le client CVS utilise rsh pour communiquer avec un serveur CVS. De nombreux sites CVS ne supportent plus rsh pour des raisons de sécurité ou à cause d'un pare feu ou d'un mauvais relais protocolaire. L'alternative est d'utiliser une connexion avec "secure shell" en utilisant soit : OpenSSH (*GRATUIT ET LIBRE*) or ssh (non commercial et commercial).

Les serveurs anoncvs OpenBSD supporte le protocole SSH1 mais pas le protocole SSH2 à cause d'une "politique de licence strictement non commerciale".

Une fois que ssh est installé, il faut définir la variable d'environnement CVS_RSH pour pointer sur ssh (typiquement /usr/bin/ssh). Si votre site vous empêche les connexions vers le port 22 (ce que ssh utilise par défaut) utilisez le port 2022.

Il n'est pas nécessaire d'activer la compression étant donné que CVS compresse déjà. Utilisez quelque chose de semblable à la ligne suivante dans votre fichier $HOME/.ssh/config. Remarquez que tous les serveurs anoncvs n'autorise pas l'accès par le port 2022 et que la plupart des serveurs n'accèpte plus l'algorithme de chiffrement none étant donné qu'il est désactivé dans les versions récentes de ssh pour des raisons de sécurité.

	Host anoncvs.ca.openbsd.org
	    Port 2022

CVS est un peu "bruyant" au démarrage, pour éviter ceci, il peut être utile de définir ceci :

Si vous souhaitez changer de serveur CVS pour un autre (votre serveur habituel est tombé, ou pour d'autres raisons), la variable d'environnement suivante doit être définie :

Remarquez que vous aurez aussi besoin de l'option -d comme spécifié auparavant.

Faire un miroir du CVS avec sup(1).

Les utilisateurs qui veulent faire un miroir de l'arborescence CVS d'OpenBSD peuvent le faire depuis anoncvs.usa.openbsd.org. Remarquez qu'il s'agit de l'arborescence cvs, et pas de l'arborescence des sources. C'est utile uniquement si vous voulez faire des opérations cvs de façon rapide (diff, annotation, etc...) ou si vous avez de multiples arborescences de sources et que vous voulez ne transférer les données qu'une seule fois (vous pouvez ensuite récupérer une arborescence des sources à partir de votre miroir cvs local).

Un exemple de fichier sup pourrait être :

	cvs host=anoncvs.usa.openbsd.org hostbase=/ base=/home delete

qui va créer un miroir de l'arborescence des ports dans /home/cvs avec les fichiers de données sup dans /home/cvs. L'arborescence du CVS OpenBSD est juste en dessous de 1 Go.

Mettre en place un miroir anoncvs.

Si vous souhaitez être un site miroir anoncvs, contacter le mainteneur anoncvs. Les miroirs Anoncvs nécessite 1 Go de disque et peuvent utiliser jusqu'à 4 Mo de swap par utilisateur anoncvs (en supposant que l'utilisateur fasse une opération d'envergure, de plus petites opérations nécessiteront moins de ressources, mais dans tous les cas, anoncvs utilise beaucoup plus de ressources que sup ou ftp). De telles machines anoncvs se doivent d'avoir une excellente connexion réseau pour la zone qu'elles ont l'intention de servir. Un document qui décrit comment mettre en place les serveurs anoncvs est disponible.

Remarques finales :

Après avoir mis à jour l'arborescence des sources, vous pouvez lire les commentaire en haut de /usr/src/Makefile avant d'essayer de compiler. De plus vous devez construire un nouveau noyau avant de faire un make build si possible. Dans certains cas, il est indispensable de reconstruire et installer l'utilitaire config avant de reconstruire le noyau. Si config GENERIC ne fonctionne pas, c'en est probablement la cause.

Il est important de noter que mettre à jour d'une version d'OpenBSD vers une arborescence courante (current) est difficile à cause des dépendances qui ne sont pas toujours évidentes. Il est donc conseillé d'installer tout d'abord le dernier snapshot avant de tenter de recompiler les sources.


OpenBSD www@openbsd.org
Originally [OpenBSD: anoncvs.html,v 1.129 2000/12/05 17:39:56 millert Exp ]
$Translation: anoncvs.html,v 1.20 2000/12/12 10:37:24 jjbg Exp $
$OpenBSD: anoncvs.html,v 1.11 2000/12/12 18:26:01 jufi Exp $