CTM est un système conçu par Poul-Henning Kamp pour distribuer, de façon régulière et par courrier électronique, les changements effectués sur une arborescence de sources. C'est un bon moyen de rester à jour avec les sources actuelles ou l'arbre CVS si vous avez une mauvaise connexion Internet (par exemple un modem).
Le CTM d'OpenBSD distribue tous les modules du dépôt CVS OpenBSD ainsi que des versions extraites de plusieurs de ces modules. CTM utilise très peu de bande passante pour distribuer les changements dans les sources et les compresse en utilisant gzip -9. En comparaison avec CVSup, CTM est écrit en langage C et est donc dispnible pour toutes les plates- formes supportées par OpenBSD.
Pour tous problèmes, suggestions et questions ayant un rapport avec CTM, veuillez contacter le mainteneur de CTM Hans Günter Weigand. (Veuillez ne pas demander à d'autres personnes du projet OpenBSD une aide sur CTM, elles sont occupées à d'autres choses. Merci).
L'idée de CTM est que vous vous inscrivez à une liste de discussion spécifique à un module CVS ou à une arborescence donnée. Chaque jour, vous recevez un message électronique contenant les changements sur l'arbre pendant cette période. Une série de différences est appelé un delta. Le serveur de CTM génère des deltas toutes les douzes heures.
Vous commencer avec une série de base sur laquelle vous appliquerez les deltas ultérieurs. Pour commencer avec CTM vous devez télécharger la dernière série de base ainsi que tous les deltas générés après elle. Une fois que vous avez traité tout ça, vous pouvez appliquer les deltas ultérieurs au fur et à mesure de leur réception. La série de base est découpée en morceaux de 1400k chacun pour permettre un téléchargement aisé au travers des mauvaises connexions.
Les séries de base sont générées environ tous les 50 deltas, ce qui fait que vous n'avez jamais plus de 50 deltas à récupérer.
Il y a pour l'instant deux types de fichiers de base. Pendant un certain temps, nous avons fait des fichiers tar.gz à la main, mais nous sommes maintenant revenus à de vrais deltas CTM de base. Ceux- ci contiennent une somme md5(1) et sont générés automatiquement, les rendants donc plus sûrs. Vous pouvez distinguer les deux types de sets de base grâce à leurs noms. Un example pour un fichier tar.gz est OpenBSD-cvs.1450.tar.gz alors qu'un delta CTM de base serait nommé OpenBSD- cvs.1500A.gz. Voir ci-dessous pour des instructions détaillées.
Vous obtenez la série de base ainsi que tous les deltas par ftp depuis les sites donnés ci-dessous. Les tailles sont :
Il y a plusieurs listes de diffusion pour CTM. Il y a une liste pour les mises à jour des mises à jour de l'arborescence cvs, une liste pour l'arborescence des sources, deux pour X11 (sources et cvs), une pour les ports et une pour les messages du générateur de delta ctm.
Les commandes suivantes vous inscrirons aux listes appropriées :
Pour l'arborescence CVS (les modules CVSROOT, ports, src et www, mais sans les modules X11 et XF4) :
echo subscribe OpenBSD-cvs | mail majordomo@OpenBSD.org
Pour le module X11 de l'arborescence CVS :
echo subscribe OpenBSD-cvs-x11 | mail majordomo@OpenBSD.org
Pour le module XF4 du dépôt CVS :
echo subscribe OpenBSD-cvs-xf4 | mail majordomo@OpenBSD.org
Pour une copie du module src :
echo subscribe-OpenBSD-src | mail majordomo@OpenBSD.org
Pour une copie du module X11 :
echo subscribe OpenBSD-src-x11 | mail majordomo@OpenBSD.org
Pour une copie du module des ports :
echo subscribe OpenBSD-ports-ctm | mail majordomo@OpenBSD.org
Pour les journaux CTM :
echo subscribe ctm-log | mail majordomo@OpenBSD.org
cat split/OpenBSD-cvs.1500A.gz.* > OpenBSD-cvs.1500A.gz
cd cible
ctm -v -v -v .../OpenBSD-cvs.1500A.gz
ou
cat split/OpenBSD-cvs.1500.tar.gz.* > OpenBSD-cvs.1500.tar.gz
cd cible
tar -xzvf .../OpenBSD-cvs.1500.tar.gz
où split est le répertoire dans lequel vous aurez placé les fichiers téléchargés et cible est l'endroit choisit pour décompresser les sources.
Il n'est pas nécessaire de garder ces fichiers, si vous êtes sur d'avoir une arborescence complète. Mais vous pouvez garder les fichiers de base pour des besoins de sauvegarde. Cependant, assurez vous de noter le numéro de la base avant de continuer.
cd cible
ctm -v -v -v deltas/OpenBSD-cvs.*
où cible est le répertoire où se trouvent vos sources, et deltas l'endroit où vous avez placé vos deltas.
ctm_rmail -p /tmp -d deltas -b target folder
où folder est le répertoire de mails contenant les messages de delta. Ceci va décoder les deltas CTM et les sauvegardera dans le répertoire deltas. Un delta ser aun fichier de la forme OpenBSD-cvs.XXXX.gz, où XXXX est le numéro du delta. Ensuite le delta sera apppliqué dans l'arbre local situé dans target, l'endroit où vous avez décompressé le set de base.
Répetez cette opération à chaque fois que vous recevez un delta de la liste. Si vous voulez, vous pouvez automatiser cette tâche à l'aide de procmail, maildrop où tout autre programme similaire de la collection des ports.
Voici la liste des serveurs FTP contenant les deltas CTM :
ftp://togetic.kd85.com:/pub/OpenBSD-ctm/ .
Ce serveur est automatiquement mis à jour par le processus de génération des deltas. Les sets de base sont disponibles en tant que gros fichiers dans le répertoire base. Les fichiers éclatés sont dans base-split.
Ce serveur est mis à jour par les deltas CTM reçus par la liste de discussion. De plus, il possède les deltas de base dans le sous- répertoire base, dupliqué à partir de ftp://togetic.kd85.com:/pub/OpenBSD-ctm/.
est identique à
et est un miroir de ftp://ctm.se.OpenBSD.org .
REMARQUE Je suis très interessé pour trouver d'autres sites à travers le monde qui voudraient faire un miroir de ces deltas.
Cela dépend de votre place disque entre autre. Étant donné que CTM n'agit pas sur des fichiers qui ont été modifié en dehors du processus ctm, le meilleur choix est sans doute l'arborescence CVS. De cette façon, vous pouvez récupérer une arborescence src depuis votre arborescence CVS, suivre une branche stable et conserver vos modifications locales dans votre arborescence des sources. CVS est assez "intelligent" pour intégrer vos changements locaux. Vous pouvez aussi utiliser toutes les commandes CVS à l'exception des commandes telles que cvs commit et cvs tag.
Le désavantage par contre, est la quantité de place disque que cela prend. Une arborescence des sources est d'environ 370Mo, mais si vous avez une arborescence CVS, vous aurez besoin de 1Go pour celle- ci, en plus des 370Mo pour les sources. Ceci ne compte pas les 100Mo pour les fichiers gérérés lors d'une compilation (cela dépend de l'architecture).
Si vous avez l'arborescence CVS, vous pouvez utiliser la commande cvs checkout pour en récupérer une arborescence des sources, et à chaque fois que vous mettez à jour avec CTM, vous pouvez utiliser cvs update pour mettre à jour votre arborescence des sources.
Pour obtenir votre arborescence src originelle :
cd /usr
cvs -qd VOTRE_DEPOT_CVS checkout -P src
après chaque mise à jour CTM :
cd /usr/src
cvs -q update -Pd
Les annonces et remarques importantes à propos de CTM seront postées sur la liste de diffusion announce@OpenBSD.org.
Le logo OpenBSD/CTM a été dessiné pour le projet OpenBSD par Phillip F Knaack.