| 1 |
<!-- |
|---|
| 2 |
$Header: /var/lib/cvs/pgsql-fr/sgml/cvs.sgml,v 1.6 2005/03/25 21:49:17 guillaume Exp $ |
|---|
| 3 |
--> |
|---|
| 4 |
|
|---|
| 5 |
<appendix id="cvs"> |
|---|
| 6 |
<appendixinfo> |
|---|
| 7 |
<authorgroup> |
|---|
| 8 |
<author> |
|---|
| 9 |
<firstname>Marc</firstname> |
|---|
| 10 |
<surname>Fournier</surname> |
|---|
| 11 |
</author> |
|---|
| 12 |
<author> |
|---|
| 13 |
<firstname>Tom</firstname> |
|---|
| 14 |
<surname>Lane</surname> |
|---|
| 15 |
</author> |
|---|
| 16 |
<author> |
|---|
| 17 |
<firstname>Thomas</firstname> |
|---|
| 18 |
<surname>Lockhart</surname> |
|---|
| 19 |
</author> |
|---|
| 20 |
</authorgroup> |
|---|
| 21 |
<date>1999-05-20</date> |
|---|
| 22 |
</appendixinfo> |
|---|
| 23 |
|
|---|
| 24 |
<title>Dépôt <productname>CVS</productname></title> |
|---|
| 25 |
|
|---|
| 26 |
<para> |
|---|
| 27 |
Le code source de <productname>PostgreSQL</productname> est stocké et géré en |
|---|
| 28 |
utilisant le système de gestion de codes <productname>CVS</productname>. |
|---|
| 29 |
</para> |
|---|
| 30 |
|
|---|
| 31 |
<para> |
|---|
| 32 |
Au moins deux méthodes, |
|---|
| 33 |
CVS anonyme et <productname>CVSup</productname>, |
|---|
| 34 |
permettent d'extraire de <productname>CVS</productname> l'arborescence du |
|---|
| 35 |
code source du serveur <productname>PostgreSQL</productname> vers votre |
|---|
| 36 |
serveur local. |
|---|
| 37 |
</para> |
|---|
| 38 |
|
|---|
| 39 |
<sect1 id="anoncvs"> |
|---|
| 40 |
<title>Obtenir les sources via <productname>CVS</productname> anonyme</title> |
|---|
| 41 |
|
|---|
| 42 |
<para> |
|---|
| 43 |
Si vous voulez mettre régulièrement à jour vos sources, vous pouvez les |
|---|
| 44 |
prendre de notre serveur <productname>CVS</productname>, puis utiliser |
|---|
| 45 |
<productname>CVS</productname> pour récupérer les mises à jour de temps |
|---|
| 46 |
en temps. |
|---|
| 47 |
</para> |
|---|
| 48 |
|
|---|
| 49 |
<procedure> |
|---|
| 50 |
<title>CVS anonyme</title> |
|---|
| 51 |
|
|---|
| 52 |
<step> |
|---|
| 53 |
<para> |
|---|
| 54 |
Vous aurez besoin d'une copie locale de <productname>CVS</productname> |
|---|
| 55 |
(Concurrent Version Control System), que vous pouvez obtenir depuis |
|---|
| 56 |
<ulink url="http://www.nongnu.org/cvs/">http://www.nongnu.org/cvs/</ulink> |
|---|
| 57 |
(le site officiel avec la dernière version) ou depuis n'importe quel site |
|---|
| 58 |
d'archive GNU (souvent peu à jour). Nous recommandons la version 1.10 ou |
|---|
| 59 |
la version la plus récente. Beaucoup de systèmes ont une version |
|---|
| 60 |
récente de <application>cvs</application> installé par défaut. |
|---|
| 61 |
</para> |
|---|
| 62 |
</step> |
|---|
| 63 |
|
|---|
| 64 |
<step> |
|---|
| 65 |
<para> |
|---|
| 66 |
Connectez-vous une première fois au serveur |
|---|
| 67 |
<productname>CVS</productname> : |
|---|
| 68 |
|
|---|
| 69 |
<programlisting> |
|---|
| 70 |
cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot login |
|---|
| 71 |
</programlisting> |
|---|
| 72 |
|
|---|
| 73 |
Un mot de passe vous est demandé. Vous pouvez entrer ce que vous voulez, |
|---|
| 74 |
sauf une chaîne vide. |
|---|
| 75 |
</para> |
|---|
| 76 |
|
|---|
| 77 |
<para> |
|---|
| 78 |
Vous n'avez besoin de faire ceci qu'une seule fois car le mot de passe |
|---|
| 79 |
est sauvegardé dans le fichier <literal>.cvspass</literal> de votre répertoire |
|---|
| 80 |
personnel. |
|---|
| 81 |
</para> |
|---|
| 82 |
</step> |
|---|
| 83 |
|
|---|
| 84 |
<step> |
|---|
| 85 |
<para> |
|---|
| 86 |
Récupérez les sources de <productname>PostgreSQL</productname> : |
|---|
| 87 |
<programlisting> |
|---|
| 88 |
cvs -z3 -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot co -P pgsql |
|---|
| 89 |
</programlisting> |
|---|
| 90 |
|
|---|
| 91 |
Ceci installe les sources de <productname>PostgreSQL</productname> dans un |
|---|
| 92 |
sous-répertoire <filename>pgsql</filename> de votre répertoire courant. |
|---|
| 93 |
|
|---|
| 94 |
<note> |
|---|
| 95 |
<para> |
|---|
| 96 |
Si vous avez une connexion rapide à Internet, vous n'avez peut-être pas |
|---|
| 97 |
besoin de l'option <option>-z3</option>, qui demande à |
|---|
| 98 |
<productname>CVS</productname> de compresser les données à transférer avec gzip. |
|---|
| 99 |
À la vitesse d'un modem, cela permet un gain de temps substantiel. |
|---|
| 100 |
</para> |
|---|
| 101 |
</note> |
|---|
| 102 |
</para> |
|---|
| 103 |
|
|---|
| 104 |
<para> |
|---|
| 105 |
Cette extraction initiale est un peu plus lente que de simplement télécharger |
|---|
| 106 |
un fichier <filename>tar.gz</filename>; attendez vous à ce qu'elle prenne |
|---|
| 107 |
40 minutes environ si vous avez un modem à 28,8 Kbps. L'avantage de |
|---|
| 108 |
<productname>CVS</productname> n'apparaîtra que plus tard, lorsque vous voudrez |
|---|
| 109 |
mettre à jour les fichiers. |
|---|
| 110 |
</para> |
|---|
| 111 |
</step> |
|---|
| 112 |
|
|---|
| 113 |
<step> |
|---|
| 114 |
<para> |
|---|
| 115 |
Lorsque vous voulez mettre à jour vos sources <productname>CVS</productname> |
|---|
| 116 |
avec la dernière version, faites <command>cd</command> dans le sous-répertoire |
|---|
| 117 |
<filename>pgsql</filename> et lancez la commande |
|---|
| 118 |
<programlisting> |
|---|
| 119 |
$ cvs -z3 update -d -P |
|---|
| 120 |
</programlisting> |
|---|
| 121 |
|
|---|
| 122 |
Ceci ne récupère que les modifications qui ont eu lieu depuis la dernière |
|---|
| 123 |
fois que vous avez fait une mise à jour. La mise à jour ne dure généralement |
|---|
| 124 |
que quelques minutes, même avec un simple modem. |
|---|
| 125 |
</para> |
|---|
| 126 |
</step> |
|---|
| 127 |
|
|---|
| 128 |
<step> |
|---|
| 129 |
<para> |
|---|
| 130 |
Vous pouvez économiser quelques saisies en vous faisant un fichier |
|---|
| 131 |
<filename>.cvsrc</filename> dans votre répertoire personnel ($HOME) en lui |
|---|
| 132 |
ajoutant : |
|---|
| 133 |
<programlisting> |
|---|
| 134 |
cvs -z3 |
|---|
| 135 |
update -d -P |
|---|
| 136 |
</programlisting> |
|---|
| 137 |
|
|---|
| 138 |
Ceci ajoute l'option <option>-z3</option> à toutes les commandes cvs, et les options |
|---|
| 139 |
<option>-d</option> et <option>-P</option> aux mises à jour par cvs. Vous n'avez plus |
|---|
| 140 |
qu'à lancer |
|---|
| 141 |
<programlisting> |
|---|
| 142 |
$ cvs update |
|---|
| 143 |
</programlisting> |
|---|
| 144 |
|
|---|
| 145 |
pour mettre à jour vos fichiers. |
|---|
| 146 |
</para> |
|---|
| 147 |
</step> |
|---|
| 148 |
</procedure> |
|---|
| 149 |
|
|---|
| 150 |
<caution> |
|---|
| 151 |
<para> |
|---|
| 152 |
Certaines versions anciennes de <productname>CVS</productname> ont un |
|---|
| 153 |
problème qui fait que tous les fichiers extraits ont des droits en |
|---|
| 154 |
écriture pour tout le monde. Si vous vous apercevez que cela vous |
|---|
| 155 |
arrive, vous pouvez faire quelque chose comme : |
|---|
| 156 |
<programlisting> |
|---|
| 157 |
$ chmod -R go-w pgsql |
|---|
| 158 |
</programlisting> |
|---|
| 159 |
pour remettre les droits d'aplomb. |
|---|
| 160 |
Ce problème a été corrigé dans la version 1.9.28 de |
|---|
| 161 |
<productname>CVS</productname>. |
|---|
| 162 |
</para> |
|---|
| 163 |
</caution> |
|---|
| 164 |
|
|---|
| 165 |
<para> |
|---|
| 166 |
<productname>CVS</productname> peut faire de nombreuses autres |
|---|
| 167 |
choses, comme retrouver des versions antérieures des sources de |
|---|
| 168 |
<productname>PostgreSQL</productname> plutôt que les dernières |
|---|
| 169 |
versions de développement. |
|---|
| 170 |
Pour plus d'informations, consultez le manuel de |
|---|
| 171 |
<productname>CVS</productname> ou bien lisez la documentation en |
|---|
| 172 |
ligne à |
|---|
| 173 |
<ulink url="http://www.nongnu.org/cvs/">http://www.nongnu.org/cvs/</ulink>. |
|---|
| 174 |
</para> |
|---|
| 175 |
</sect1> |
|---|
| 176 |
|
|---|
| 177 |
<sect1 id="cvs-tree"> |
|---|
| 178 |
<title>Organisation de l'arbre <productname>CVS</productname></title> |
|---|
| 179 |
|
|---|
| 180 |
<para> |
|---|
| 181 |
<note> |
|---|
| 182 |
<title>Auteur</title> |
|---|
| 183 |
<para> |
|---|
| 184 |
Écrit par Marc G. Fournier (<email>scrappy@hub.org</email>) |
|---|
| 185 |
le 05/11/1998. |
|---|
| 186 |
</para> |
|---|
| 187 |
</note> |
|---|
| 188 |
</para> |
|---|
| 189 |
|
|---|
| 190 |
<para> |
|---|
| 191 |
La commande <command>cvs checkout</command> a un paramètre, <option>-r</option>, |
|---|
| 192 |
qui permet d'obtenir une révision particulière d'un module. Ce |
|---|
| 193 |
paramètre permet par exemple de retrouver les fichiers source de la |
|---|
| 194 |
version 6_4 du module 'tc' à tout moment dans le futur. |
|---|
| 195 |
|
|---|
| 196 |
<programlisting> |
|---|
| 197 |
$ cvs checkout -r REL6_4 tc |
|---|
| 198 |
</programlisting> |
|---|
| 199 |
C'est en particulier utile si quelqu'un pense qu'il y a un problème |
|---|
| 200 |
dans cette version, mais que vous ne trouvez pas d'erreur dans |
|---|
| 201 |
la version courante. |
|---|
| 202 |
|
|---|
| 203 |
<tip> |
|---|
| 204 |
<para> |
|---|
| 205 |
Vous pouvez aussi extraire un module tel qu'il était à une date |
|---|
| 206 |
donnée en utilisant l'option <option>-D</option>. |
|---|
| 207 |
</para> |
|---|
| 208 |
</tip> |
|---|
| 209 |
</para> |
|---|
| 210 |
|
|---|
| 211 |
<para> |
|---|
| 212 |
Lorsque vous marquez plus d'un fichier avec une marque |
|---|
| 213 |
particulière, vous pouvez vous représenter la marque comme |
|---|
| 214 |
<quote>une courbe tracée dans la matrice des noms de fichiers et |
|---|
| 215 |
des numéros de révision</quote>. Supposons que nous ayons 5 fichiers avec |
|---|
| 216 |
les révisions suivantes : |
|---|
| 217 |
|
|---|
| 218 |
<programlisting> |
|---|
| 219 |
fichier1 fichier2 fichier3 fichier4 fichier5 |
|---|
| 220 |
|
|---|
| 221 |
1.1 1.1 1.1 1.1 /---1.1* <-*- MARQUE |
|---|
| 222 |
1.2*- 1.2 1.2 --1.2*- |
|---|
| 223 |
1.3 \-- 1.3*- 1.3 / 1.3 |
|---|
| 224 |
1.4 \ 1.4 / 1.4 |
|---|
| 225 |
\--1.5*- 1.5 |
|---|
| 226 |
1.6 |
|---|
| 227 |
</programlisting> |
|---|
| 228 |
|
|---|
| 229 |
alors la marque <literal>MARQUE</literal> référence |
|---|
| 230 |
fichier1-1.2, fichier2-1.3, etc. |
|---|
| 231 |
|
|---|
| 232 |
<note> |
|---|
| 233 |
<para> |
|---|
| 234 |
Pour créer une branche de version, à part l'option <literal>-b</literal> |
|---|
| 235 |
ajoutée sur la ligne de commande, c'est la même chose.</para> |
|---|
| 236 |
</note> |
|---|
| 237 |
</para> |
|---|
| 238 |
|
|---|
| 239 |
<para> |
|---|
| 240 |
Ainsi, pour créer la version 6.4, j'ai fait : |
|---|
| 241 |
|
|---|
| 242 |
<programlisting> |
|---|
| 243 |
$ cd pgsql |
|---|
| 244 |
$ cvs tag -b REL6_4 |
|---|
| 245 |
</programlisting> |
|---|
| 246 |
ce qui créera la marque et la branche pour l'arbre de la version. |
|---|
| 247 |
</para> |
|---|
| 248 |
|
|---|
| 249 |
<para> |
|---|
| 250 |
Pour ceux qui ont un accès <productname>CVS</productname>, il est |
|---|
| 251 |
simple de créer des répertoires séparés pour chaque version. |
|---|
| 252 |
D'abord, créez deux répertoires, VERSION et COURANT, afin de ne |
|---|
| 253 |
pas les mélanger. Puis : |
|---|
| 254 |
|
|---|
| 255 |
<programlisting> |
|---|
| 256 |
cd RELEASE |
|---|
| 257 |
cvs checkout -P -r REL6_4 pgsql |
|---|
| 258 |
cd ../CURRENT |
|---|
| 259 |
cvs checkout -P pgsql |
|---|
| 260 |
</programlisting> |
|---|
| 261 |
|
|---|
| 262 |
Cela crée deux arbres de répertoires, <filename>VERSION/pgsql</filename> et |
|---|
| 263 |
<filename>COURANT/pgsql</filename>. À partir de ce moment, |
|---|
| 264 |
<productname>CVS</productname> gardera trace de quel arbre de |
|---|
| 265 |
référence est dans quel répertoire, et permettra des mises à jour |
|---|
| 266 |
indépendantes de chaque arbre. |
|---|
| 267 |
</para> |
|---|
| 268 |
|
|---|
| 269 |
<para> |
|---|
| 270 |
Si vous ne travaillez <emphasis>que</emphasis> sur l'arbre |
|---|
| 271 |
<literal>CURRENT</literal>, faites tout ce qui est indiqué jusqu'à |
|---|
| 272 |
ce que nous ayons commencé à marquer les branches de versions. |
|---|
| 273 |
</para> |
|---|
| 274 |
|
|---|
| 275 |
<para> |
|---|
| 276 |
Après avoir fait l'extraction initiale d'une branche |
|---|
| 277 |
|
|---|
| 278 |
<programlisting> |
|---|
| 279 |
$ cvs checkout -r REL6_4 |
|---|
| 280 |
</programlisting> |
|---|
| 281 |
|
|---|
| 282 |
tout ce que vous faites dans ce répertoire est limité à cette branche. |
|---|
| 283 |
Si vous appliquez une correction à cette structure de répertoires |
|---|
| 284 |
et faites un |
|---|
| 285 |
|
|---|
| 286 |
<programlisting> |
|---|
| 287 |
cvs commit |
|---|
| 288 |
</programlisting> |
|---|
| 289 |
|
|---|
| 290 |
dans ce répertoire, la correction est appliquée à cette branche et |
|---|
| 291 |
<emphasis>seulement</emphasis> à cette branche. |
|---|
| 292 |
</para> |
|---|
| 293 |
</sect1> |
|---|
| 294 |
|
|---|
| 295 |
<sect1 id="cvsup"> |
|---|
| 296 |
<title>Obtenir les sources via <productname>CVSup</productname></title> |
|---|
| 297 |
|
|---|
| 298 |
<para> |
|---|
| 299 |
Une alternative au CVS anonyme pour obtenir l'arbre source de |
|---|
| 300 |
<productname>PostgreSQL</productname> est |
|---|
| 301 |
<productname>CVSup</productname>. |
|---|
| 302 |
<productname>CVSup</productname> a été développé par John Polstra |
|---|
| 303 |
(<email>jdp@polstra.com</email>) pour distribuer des arbres de |
|---|
| 304 |
référence CVS et d'autres arborescences de fichiers pour le |
|---|
| 305 |
<ulink url="http://www.freebsd.org">projet FreeBSD</ulink>. |
|---|
| 306 |
</para> |
|---|
| 307 |
|
|---|
| 308 |
<para> |
|---|
| 309 |
Un des avantages majeurs de <productname>CVSup</productname> est |
|---|
| 310 |
qu'il peut répliquer fiablement la <emphasis>totalité</emphasis> |
|---|
| 311 |
du référentiel CVS sur votre système local, ce qui permet un accès |
|---|
| 312 |
rapide aux opérations CVS comme <option>log</option> ou |
|---|
| 313 |
<option>diff</option>. |
|---|
| 314 |
Autre avantage, la synchronisation efficace avec le serveur |
|---|
| 315 |
<productname>PostgreSQL</productname> grâce à un protocole de flux |
|---|
| 316 |
de transfert qui ne transmet que les différences depuis la |
|---|
| 317 |
dernière mise à jour. |
|---|
| 318 |
</para> |
|---|
| 319 |
|
|---|
| 320 |
<sect2> |
|---|
| 321 |
<title>Préparer un système client <productname>CVSup</productname></title> |
|---|
| 322 |
|
|---|
| 323 |
<para> |
|---|
| 324 |
Deux groupes de répertoires sont nécessaires à |
|---|
| 325 |
<productname>CVSup</productname> : un répertoire contenant le |
|---|
| 326 |
référentiel <productname>CVS</productname> local (ou simplement |
|---|
| 327 |
un groupe de répertoires si vous ne récupérez qu'un extrait plutôt |
|---|
| 328 |
que le référentiel complet ; voir plus loin) et une zone dans |
|---|
| 329 |
laquelle <productname>CVSup</productname> enregistre ses propres |
|---|
| 330 |
données. Ces deux groupes de répertoires peuvent coexister dans la |
|---|
| 331 |
même arborescence. |
|---|
| 332 |
</para> |
|---|
| 333 |
|
|---|
| 334 |
<para> |
|---|
| 335 |
Décidez où vous souhaitez garder votre copie locale du référentiel |
|---|
| 336 |
<productname>CVS</productname>. Sur un de nos systèmes, nous |
|---|
| 337 |
avons récemment créé un référentiel dans |
|---|
| 338 |
<filename>/home/cvs/</filename>, mais nous avions jusque là utilisé |
|---|
| 339 |
<filename>/opt/postgres/cvs/</filename> comme arbre de développement |
|---|
| 340 |
pour <productname>PostgreSQL</productname>. Si vous souhaitez |
|---|
| 341 |
placer votre référentiel dans <filename>/home/cvs/</filename>, |
|---|
| 342 |
alors ajoutez |
|---|
| 343 |
|
|---|
| 344 |
<programlisting> |
|---|
| 345 |
setenv CVSROOT /home/cvs |
|---|
| 346 |
</programlisting> |
|---|
| 347 |
|
|---|
| 348 |
dans votre fichier <filename>.cshrc</filename>, ou une ligne |
|---|
| 349 |
similaire dans votre <filename>.bashrc</filename> ou dans votre |
|---|
| 350 |
<filename>.profile</filename>, en fonction de votre interpréteur |
|---|
| 351 |
de commandes (shell). |
|---|
| 352 |
</para> |
|---|
| 353 |
|
|---|
| 354 |
<para> |
|---|
| 355 |
La zone de référentiel de <application>cvs</application> doit |
|---|
| 356 |
être initialisée. Une fois que <envar>CVSROOT</envar> est |
|---|
| 357 |
initialisée, il suffit de faire : |
|---|
| 358 |
|
|---|
| 359 |
<programlisting> |
|---|
| 360 |
$ cvs init |
|---|
| 361 |
</programlisting> |
|---|
| 362 |
|
|---|
| 363 |
après quoi vous devriez au moins voir un répertoire |
|---|
| 364 |
<filename>CVSROOT</filename> en listant le répertoire |
|---|
| 365 |
<envar>CVSROOT</envar> : |
|---|
| 366 |
|
|---|
| 367 |
<programlisting> |
|---|
| 368 |
$ ls $CVSROOT |
|---|
| 369 |
CVSROOT/ |
|---|
| 370 |
</programlisting> |
|---|
| 371 |
</para> |
|---|
| 372 |
</sect2> |
|---|
| 373 |
|
|---|
| 374 |
<sect2> |
|---|
| 375 |
<title>Utiliser un client <productname>CVSup</productname></title> |
|---|
| 376 |
|
|---|
| 377 |
<para> |
|---|
| 378 |
Vérifiez que <application>cvsup</application> est dans votre |
|---|
| 379 |
chemin. Sur la plupart des systèmes, cela se fait en tapant |
|---|
| 380 |
|
|---|
| 381 |
<programlisting> |
|---|
| 382 |
which cvsup |
|---|
| 383 |
</programlisting> |
|---|
| 384 |
|
|---|
| 385 |
Puis, lancez simplement |
|---|
| 386 |
<application>cvsup</application> en faisant : |
|---|
| 387 |
|
|---|
| 388 |
<programlisting> |
|---|
| 389 |
$ cvsup -L 2 <replaceable class="parameter">postgres.cvsup</replaceable> |
|---|
| 390 |
</programlisting> |
|---|
| 391 |
|
|---|
| 392 |
où <option>-L 2</option> active certains messages de statut pour |
|---|
| 393 |
vous permettre de suivre le progrès pour la mise à jour et |
|---|
| 394 |
<replaceable class="parameter">postgres.cvsup</replaceable> est |
|---|
| 395 |
la chemin et le nom que vous avez donné à votre fichier de |
|---|
| 396 |
configuration <productname>CVSup</productname>. |
|---|
| 397 |
</para> |
|---|
| 398 |
|
|---|
| 399 |
<para> |
|---|
| 400 |
Voici un fichier de configuration <productname>CVSup</productname> |
|---|
| 401 |
modifié pour une installation spécifique, et maintient un |
|---|
| 402 |
référentiel <productname>CVS</productname> local complet. |
|---|
| 403 |
|
|---|
| 404 |
<programlisting> |
|---|
| 405 |
# Ce fichier représente le fichier de distribution CVSup standard |
|---|
| 406 |
# pour le projet de SGBDRO <productname>PostgreSQL</> |
|---|
| 407 |
# Modifié par lockart@fourpalms.org 1997-08-28 |
|---|
| 408 |
# - Pointe vers mon arborescence de référence locale |
|---|
| 409 |
# - Extrait le référentiel CVS complet, pas seulement la |
|---|
| 410 |
# dernière version |
|---|
| 411 |
# |
|---|
| 412 |
#Valeurs par défaut qui s'appliquent à toutes les collections |
|---|
| 413 |
*default host=cvsup.postgresql.org |
|---|
| 414 |
*default compress |
|---|
| 415 |
*default release=cvs |
|---|
| 416 |
*default delete use-rel-suffix |
|---|
| 417 |
# Activez la ligne suivante pour récupérer la dernière version |
|---|
| 418 |
#*default tag=. |
|---|
| 419 |
# Activez la ligne suivante récupérer ce qui est précisé en dessus ou |
|---|
| 420 |
# par défaut à la date précisée en dessous |
|---|
| 421 |
#*default date=97.08.29.00.00.00 |
|---|
| 422 |
|
|---|
| 423 |
# répertoire de base où CVSup stocke ses fichiers 'marque page' |
|---|
| 424 |
# créera un sous répertoire sup/ |
|---|
| 425 |
#*default base=/opt/postgres # /usr/local/pgsql |
|---|
| 426 |
*default base=/home/cvs |
|---|
| 427 |
|
|---|
| 428 |
# répertoire préfixe où CVSup stocke les distributions. |
|---|
| 429 |
*default prefix=/home/cvs |
|---|
| 430 |
|
|---|
| 431 |
# Distribution complète, avec tout ce qui est en dessous |
|---|
| 432 |
pgsql |
|---|
| 433 |
|
|---|
| 434 |
# distributions partielles |
|---|
| 435 |
# pgsql-doc |
|---|
| 436 |
# pgsql-perl5 |
|---|
| 437 |
# pgsql-src |
|---|
| 438 |
|
|---|
| 439 |
</programlisting> |
|---|
| 440 |
</para> |
|---|
| 441 |
|
|---|
| 442 |
<para> |
|---|
| 443 |
Si vous indiquez <option>repository</> au lieu de <option>pgsql</> dans la |
|---|
| 444 |
configuration précédente, vous obtiendrez une copie complète du dépôt sur |
|---|
| 445 |
cvsup.postgresql.org, incluant son répertoire <filename>CVSROOT</filename>. |
|---|
| 446 |
Si vous faites cela, vous voudrez probablement exclure ces fichiers du |
|---|
| 447 |
répertoire que vous voulez modifier localement, en utilisant un fichier |
|---|
| 448 |
nommé refuse. Par exemple, pour la configuration précédente, vous auriez |
|---|
| 449 |
pu placer ceci dans <filename>/home/cvs/sup/repository/refuse</> : |
|---|
| 450 |
<programlisting> |
|---|
| 451 |
CVSROOT/config* |
|---|
| 452 |
CVSROOT/commitinfo* |
|---|
| 453 |
CVSROOT/loginfo* |
|---|
| 454 |
</programlisting> |
|---|
| 455 |
Voir les pages man de <productname>CVSup</> pour savoir comment utiliser |
|---|
| 456 |
les fichiers refuse. |
|---|
| 457 |
</para> |
|---|
| 458 |
|
|---|
| 459 |
<para> |
|---|
| 460 |
Ce qui suit est une suggestion de fichier de configuration |
|---|
| 461 |
<productname>CVSup</productname> issu du |
|---|
| 462 |
<ulink url="ftp://ftp.postgresql.org/pub/CVSup/README.cvsup"> |
|---|
| 463 |
site ftp de <productname>PostgreSQL</></ulink>, qui |
|---|
| 464 |
ne récupère que la version courante : |
|---|
| 465 |
|
|---|
| 466 |
<programlisting> |
|---|
| 467 |
# Ce fichier représente la distribution CVSup standard pour le |
|---|
| 468 |
# projet de SGBDRO <productname>PostgreSQL</>. |
|---|
| 469 |
# |
|---|
| 470 |
# Valeurs par défaut qui d'appliquent à toutes les collections. |
|---|
| 471 |
*default host=cvsup.postgresql.org |
|---|
| 472 |
*default compress |
|---|
| 473 |
*default release=cvs |
|---|
| 474 |
*default delete use-rel-suffix |
|---|
| 475 |
*default tag=. |
|---|
| 476 |
|
|---|
| 477 |
# répertoire de base où CVSup stocke ses fichiers 'marque page' |
|---|
| 478 |
*default base=<replaceable class="parameter">/usr/local/pgsql</replaceable> |
|---|
| 479 |
|
|---|
| 480 |
# répertoire préfixe où CVSup stocke les distributions. |
|---|
| 481 |
*default prefix=<replaceable class="parameter">/usr/local/pgsql</replaceable> |
|---|
| 482 |
|
|---|
| 483 |
# Distribution complète, avec tout ce qui est en dessous |
|---|
| 484 |
pgsql |
|---|
| 485 |
|
|---|
| 486 |
# distributions partielles |
|---|
| 487 |
# pgsql-doc |
|---|
| 488 |
# pgsql-perl5 |
|---|
| 489 |
# pgsql-src |
|---|
| 490 |
|
|---|
| 491 |
</programlisting> |
|---|
| 492 |
</para> |
|---|
| 493 |
</sect2> |
|---|
| 494 |
|
|---|
| 495 |
<sect2> |
|---|
| 496 |
<title>Installer <productname>CVSup</productname></title> |
|---|
| 497 |
|
|---|
| 498 |
<para> |
|---|
| 499 |
<productname>CVSup</productname> est disponible sous forme de |
|---|
| 500 |
fichiers source, de binaires pré-compilés ou de RPM Linux. |
|---|
| 501 |
Il est beaucoup plus simple d'utiliser les binaires plutôt que de |
|---|
| 502 |
compiler les sources, principalement parce que cela nécessite |
|---|
| 503 |
le compilateur Modula-3, qui est très puissant mais volumineux. |
|---|
| 504 |
</para> |
|---|
| 505 |
|
|---|
| 506 |
<procedure> |
|---|
| 507 |
<title>Installation de <productname>CVSup</productname> à partir des fichier binaires</title> |
|---|
| 508 |
|
|---|
| 509 |
<para> |
|---|
| 510 |
Vous pouvez utiliser les binaires pré-compilés si vous avez une |
|---|
| 511 |
plate-forme pour laquelle les binaires sont postés sur le |
|---|
| 512 |
<ulink url="ftp://ftp.postgresql.org/pub">site ftp de <productname>PostgreSQL</productname></ulink>, |
|---|
| 513 |
vous pouvez ou si avez FreeBSD, pour lequel |
|---|
| 514 |
<productname>CVSup</productname> est disponible comme |
|---|
| 515 |
<quote>portage</quote>. |
|---|
| 516 |
|
|---|
| 517 |
<note> |
|---|
| 518 |
<para> |
|---|
| 519 |
<productname>CVSup</productname> a été initialement développé |
|---|
| 520 |
pour distribuer l'arbre des sources de |
|---|
| 521 |
<productname>FreeBSD</productname>. Il est disponible comme |
|---|
| 522 |
<quote>portage</quote>, et pour ceux qui ont FreeBSD, si cela |
|---|
| 523 |
n'explique pas suffisamment comment obtenir et installer CVSup, |
|---|
| 524 |
merci d'ajouter une procédure ici. |
|---|
| 525 |
</para> |
|---|
| 526 |
</note> |
|---|
| 527 |
</para> |
|---|
| 528 |
|
|---|
| 529 |
<para> |
|---|
| 530 |
Au moment de l'écriture de ce chapitre, des binaires sont |
|---|
| 531 |
disponibles pour : |
|---|
| 532 |
Alpha/Tru64, ix86/xBSD, |
|---|
| 533 |
HPPA/HP-UX 10.20, MIPS/IRIX, |
|---|
| 534 |
ix86/linux-libc5, ix86/linux-glibc, |
|---|
| 535 |
Sparc/Solaris et Sparc/SunOS. |
|---|
| 536 |
</para> |
|---|
| 537 |
|
|---|
| 538 |
<step> |
|---|
| 539 |
<para> |
|---|
| 540 |
Récupérez l'archive tar des binaires |
|---|
| 541 |
<application>cvsup</application> |
|---|
| 542 |
(<application>cvsupd</application> n'est pas nécessaire pour |
|---|
| 543 |
être un client) approprié pour votre plate-forme. |
|---|
| 544 |
</para> |
|---|
| 545 |
|
|---|
| 546 |
<substeps> |
|---|
| 547 |
<step performance="optional"> |
|---|
| 548 |
<para> |
|---|
| 549 |
Si vous avez FreeBSD, installez le portage |
|---|
| 550 |
<productname>CVSup</productname>. |
|---|
| 551 |
</para> |
|---|
| 552 |
</step> |
|---|
| 553 |
|
|---|
| 554 |
<step performance="optional"> |
|---|
| 555 |
<para> |
|---|
| 556 |
Si vous avez une autre plate-forme, vérifiez et télécharger le |
|---|
| 557 |
binaire approprié |
|---|
| 558 |
<ulink url="ftp://ftp.postgresql.org/pub">du site ftp <productname>PostgreSQL</productname></ulink>. |
|---|
| 559 |
</para> |
|---|
| 560 |
</step> |
|---|
| 561 |
</substeps> |
|---|
| 562 |
</step> |
|---|
| 563 |
|
|---|
| 564 |
<step> |
|---|
| 565 |
<para> |
|---|
| 566 |
Vérifiez dans l'archive tar les contenus et la structure |
|---|
| 567 |
de répertoires. Pour le tar Linux au moins, le binaire statique |
|---|
| 568 |
et la page de manuel sont inclues sans répertoires. |
|---|
| 569 |
</para> |
|---|
| 570 |
|
|---|
| 571 |
<substeps> |
|---|
| 572 |
<step> |
|---|
| 573 |
<para> |
|---|
| 574 |
Si le binaire est au plus haut niveau du fichier tar, alors |
|---|
| 575 |
il suffit d'extraire le fichier tar dans le répertoire cible : |
|---|
| 576 |
|
|---|
| 577 |
<programlisting> |
|---|
| 578 |
$ cd /usr/local/bin |
|---|
| 579 |
$ tar zxvf /usr/local/src/cvsup-16.0-linux-i386.tar.gz |
|---|
| 580 |
$ mv cvsup.1 ../doc/man/man1/ |
|---|
| 581 |
</programlisting> |
|---|
| 582 |
</para> |
|---|
| 583 |
</step> |
|---|
| 584 |
|
|---|
| 585 |
<step> |
|---|
| 586 |
<para> |
|---|
| 587 |
S'il y a une structure de répertoires dans le fichier tar, |
|---|
| 588 |
alors extrayez le dans /usr/local/src et déplacez les binaires |
|---|
| 589 |
dans le répertoire approprié, comme indiqué ci-dessus. |
|---|
| 590 |
</para> |
|---|
| 591 |
</step> |
|---|
| 592 |
</substeps> |
|---|
| 593 |
</step> |
|---|
| 594 |
|
|---|
| 595 |
<step> |
|---|
| 596 |
<para> |
|---|
| 597 |
Assurez-vous que les nouveaux binaires sont dans votre chemin. |
|---|
| 598 |
|
|---|
| 599 |
<programlisting> |
|---|
| 600 |
$ rehash |
|---|
| 601 |
$ which cvsup |
|---|
| 602 |
$ set path=(<replaceable>chemin de cvsup</replaceable> $path) |
|---|
| 603 |
$ which cvsup |
|---|
| 604 |
/usr/local/bin/cvsup |
|---|
| 605 |
</programlisting> |
|---|
| 606 |
</para> |
|---|
| 607 |
</step> |
|---|
| 608 |
</procedure> |
|---|
| 609 |
</sect2> |
|---|
| 610 |
|
|---|
| 611 |
<sect2> |
|---|
| 612 |
<title>Installation à partir des sources</title> |
|---|
| 613 |
|
|---|
| 614 |
<para> |
|---|
| 615 |
Installer <productname>CVSup</productname> n'est pas entièrement |
|---|
| 616 |
trivial, principalement parce que la plupart des systèmes auront |
|---|
| 617 |
besoin du compilateur Modula-3. |
|---|
| 618 |
|
|---|
| 619 |
Ce compilateur est disponible sous forme de |
|---|
| 620 |
<productname>RPM</productname> Linux, de paquetage FreeBSD ou de |
|---|
| 621 |
code source. |
|---|
| 622 |
|
|---|
| 623 |
<note> |
|---|
| 624 |
<para> |
|---|
| 625 |
Une installation de Modula-3 avec les sources prend environ |
|---|
| 626 |
200 Mo d'espace disque, qui redescendent ensuite à environ 50 Mo |
|---|
| 627 |
lorsque les sources sont supprimées.</para> |
|---|
| 628 |
</note> |
|---|
| 629 |
</para> |
|---|
| 630 |
|
|---|
| 631 |
<procedure> |
|---|
| 632 |
<title>Installation sur Linux</title> |
|---|
| 633 |
|
|---|
| 634 |
<step> |
|---|
| 635 |
<para> |
|---|
| 636 |
Installer Modula-3. |
|---|
| 637 |
</para> |
|---|
| 638 |
|
|---|
| 639 |
<substeps> |
|---|
| 640 |
<step> |
|---|
| 641 |
<para> |
|---|
| 642 |
Récupérer la distribution de <productname>Modula-3</productname> |
|---|
| 643 |
à <ulink url="http://m3.polymtl.ca/m3">Polytechnique Montréal</ulink>, |
|---|
| 644 |
qui maintient activement le code initialement développé par le |
|---|
| 645 |
<ulink |
|---|
| 646 |
url="http://www.research.digital.com/SRC/modula-3/html/home.html">centre |
|---|
| 647 |
de recherches système de DEC</ulink>. |
|---|
| 648 |
La distribution <productname>PM3</productname> sous forme de |
|---|
| 649 |
<productname>RPM</productname> fait environ 30 Mo compressée. |
|---|
| 650 |
Au moment de l'écriture de ce document, la version 1.1.10-1 |
|---|
| 651 |
s'installe sans problème sur RH-5.2, alors que la version |
|---|
| 652 |
1.1.11-1 est apparemment prévue pour une autre version |
|---|
| 653 |
(RH-6.0?) et ne fonctionne pas sous RH-5.2. |
|---|
| 654 |
|
|---|
| 655 |
<tip> |
|---|
| 656 |
<para> |
|---|
| 657 |
Cette distribution rpm spécifique a de <emphasis>nombreux</emphasis> |
|---|
| 658 |
fichiers <productname>RPM</productname>, si bien que vous |
|---|
| 659 |
voudrez sans doute les mettre dans un répertoire séparé. |
|---|
| 660 |
</para> |
|---|
| 661 |
</tip> |
|---|
| 662 |
</para> |
|---|
| 663 |
</step> |
|---|
| 664 |
|
|---|
| 665 |
<step> |
|---|
| 666 |
<para> |
|---|
| 667 |
Installer les rpms Modula-3 : |
|---|
| 668 |
|
|---|
| 669 |
<programlisting> |
|---|
| 670 |
# rpm -Uvh pm3*.rpm |
|---|
| 671 |
</programlisting> |
|---|
| 672 |
</para> |
|---|
| 673 |
</step> |
|---|
| 674 |
</substeps> |
|---|
| 675 |
</step> |
|---|
| 676 |
|
|---|
| 677 |
<step> |
|---|
| 678 |
<para> |
|---|
| 679 |
Décompresser la distribution CVSup : |
|---|
| 680 |
|
|---|
| 681 |
<programlisting> |
|---|
| 682 |
# cd /usr/local/src |
|---|
| 683 |
# tar zxf cvsup-16.0.tar.gz |
|---|
| 684 |
</programlisting> |
|---|
| 685 |
</para> |
|---|
| 686 |
</step> |
|---|
| 687 |
|
|---|
| 688 |
<step> |
|---|
| 689 |
<para> |
|---|
| 690 |
Compiler la distribution cvsup, en supprimant l'interface |
|---|
| 691 |
graphique pour éviter d'utiliser les bibliothèques X11. |
|---|
| 692 |
|
|---|
| 693 |
<programlisting> |
|---|
| 694 |
# make M3FLAGS="-DNOGUI" |
|---|
| 695 |
</programlisting> |
|---|
| 696 |
|
|---|
| 697 |
et si vous voulez construire un binaire statique pour l'utiliser |
|---|
| 698 |
sur des systèmes qui n'ont pas Modula-3 installé, essayez : |
|---|
| 699 |
|
|---|
| 700 |
<programlisting> |
|---|
| 701 |
# make M3FLAGS="-DNOGUI -DSTATIC" |
|---|
| 702 |
</programlisting> |
|---|
| 703 |
</para> |
|---|
| 704 |
</step> |
|---|
| 705 |
|
|---|
| 706 |
<step> |
|---|
| 707 |
<para> |
|---|
| 708 |
Installer la librairie construite précédemment : |
|---|
| 709 |
|
|---|
| 710 |
<programlisting> |
|---|
| 711 |
# make M3FLAGS="-DNOGUI -DSTATIC" install |
|---|
| 712 |
</programlisting> |
|---|
| 713 |
</para> |
|---|
| 714 |
</step> |
|---|
| 715 |
</procedure> |
|---|
| 716 |
</sect2> |
|---|
| 717 |
</sect1> |
|---|
| 718 |
</appendix> |
|---|
| 719 |
|
|---|
| 720 |
<!-- |
|---|
| 721 |
> It became clear that I had a problem with my m3 installation; some |
|---|
| 722 |
> X11 libraries were not being found correctly. |
|---|
| 723 |
|
|---|
| 724 |
By the way, you can build the client without the GUI by doing this |
|---|
| 725 |
in the "client" subdirectory: |
|---|
| 726 |
|
|---|
| 727 |
m3build -DNOGUI |
|---|
| 728 |
|
|---|
| 729 |
If you build it that way, then it doesn't need the X11 libraries and |
|---|
| 730 |
it's quite a bit smaller. The GUI is fun to watch, but it's not |
|---|
| 731 |
very useful. I originally implemented it because it made debogueging |
|---|
| 732 |
the multi-threaded client program much easier. |
|---|
| 733 |
|
|---|
| 734 |
To build a statically-linked client, edit <filename>client/src/m3makefile</filename> |
|---|
| 735 |
to add <literal>build_standalone()</literal> |
|---|
| 736 |
just before the <literal>program()</literal> entry near |
|---|
| 737 |
the end of the file: |
|---|
| 738 |
|
|---|
| 739 |
<programlisting> |
|---|
| 740 |
build_standalone() |
|---|
| 741 |
program(cvsup) |
|---|
| 742 |
</programlisting> |
|---|
| 743 |
|
|---|
| 744 |
Then, if cvsup has already been built, remove the machine-specific build directory |
|---|
| 745 |
(e.g. <filename>LINUXELF/</filename>) and rebuild: |
|---|
| 746 |
|
|---|
| 747 |
<programlisting> |
|---|
| 748 |
rm -rf LINUXELF |
|---|
| 749 |
m3build -DNOGUI -v |
|---|
| 750 |
cp -p LINUXELF/cvsup /usr/local/bin |
|---|
| 751 |
</programlisting> |
|---|
| 752 |
|
|---|
| 753 |
> Anyway, with the reinstall and the two-line patch above (and that |
|---|
| 754 |
> one include-file _POSIX_SOURCE workaround from the previous try), |
|---|
| 755 |
> things built cleanly. |
|---|
| 756 |
|
|---|
| 757 |
Good! |
|---|
| 758 |
|
|---|
| 759 |
> Now I just need a server somewhere to test. |
|---|
| 760 |
|
|---|
| 761 |
If you want to try it out, there are public servers for the FreeBSD |
|---|
| 762 |
source repository at cvsup.freebsd.org and cvsup2.freebsd.org. |
|---|
| 763 |
Here's a suggested supfile: |
|---|
| 764 |
|
|---|
| 765 |
*default host=cvsup.freebsd.org compress |
|---|
| 766 |
*default release=cvs |
|---|
| 767 |
*default base=/home/jdp/cvsup-test # FIX THIS |
|---|
| 768 |
*default delete use-rel-suffix |
|---|
| 769 |
# *default tag=. |
|---|
| 770 |
src-bin |
|---|
| 771 |
|
|---|
| 772 |
This will fetch you the source repository for the programs that get |
|---|
| 773 |
installed into "/bin". I chose it because it's one of the smaller |
|---|
| 774 |
pieces of the system. Make an empty directory someplace for |
|---|
| 775 |
testing, and change the "FIX THIS" line to specify that directory |
|---|
| 776 |
after the "base=". |
|---|
| 777 |
|
|---|
| 778 |
If you are on a T1 or better, you should probably delete the |
|---|
| 779 |
"compress" keyword in the first line. |
|---|
| 780 |
|
|---|
| 781 |
As shown, it will get the repository (RCS) files. If you uncomment |
|---|
| 782 |
the line containing "tag=." then it will instead check out the |
|---|
| 783 |
latest version of each file. There's a bunch more information about |
|---|
| 784 |
what you can do in |
|---|
| 785 |
<ulink url="http://www.freebsd.org/handbook/cvsup.html">the CVSup Handbook</ulink>. |
|---|
| 786 |
|
|---|
| 787 |
There is one other thing I want to send you, but not tonight. I |
|---|
| 788 |
discovered the hard way that you need a malloc package that is |
|---|
| 789 |
thread-safe with respect to the Modula-3 threads package. The |
|---|
| 790 |
Modula-3 runtime takes care to do the proper mutual exclusion around |
|---|
| 791 |
all calls it makes to malloc. But if you call certain functions in |
|---|
| 792 |
the native C library which in turn call malloc, then the mutual |
|---|
| 793 |
exclusion gets bypassed. This can lead to rare but baffling core |
|---|
| 794 |
dumps. |
|---|
| 795 |
|
|---|
| 796 |
For FreeBSD, I solved this by adding a thread-safe malloc package |
|---|
| 797 |
into the Modula-3 runtime. The package is quite portable, and I'm |
|---|
| 798 |
sure it will work well for Linux with very few changes (probably |
|---|
| 799 |
none at all). I want to send it to you along with instructions |
|---|
| 800 |
for making it a part of the "libm3core" library. It's very simple, |
|---|
| 801 |
but I've run out of steam for tonight. :-) Once you have this |
|---|
| 802 |
malloc in place, the CVSup system should be rock solid. We have |
|---|
| 803 |
servers that have been up for weeks and have served many thousands |
|---|
| 804 |
of clients without any observed problems. |
|---|
| 805 |
|
|---|
| 806 |
> We hope to have the PostgreSQL tree using CVSup within a month or |
|---|
| 807 |
> so, and hope to retire sup in September... |
|---|
| 808 |
|
|---|
| 809 |
Great! I'll do my best to help make sure you don't regret it. |
|---|
| 810 |
|
|---|
| 811 |
John |
|---|
| 812 |
|
|---|
| 813 |
Tom, |
|---|
| 814 |
|
|---|
| 815 |
I'm appending the sources for the thread safe version of malloc that |
|---|
| 816 |
I told you about. I believe that it will simply compile and work |
|---|
| 817 |
under Linux, but I've never had an opportunity to test it there. |
|---|
| 818 |
I urge you to put it into your Modula-3 system; otherwise, you |
|---|
| 819 |
are guaranteed to get occasional mysterious core dumps from cvsupd. |
|---|
| 820 |
|
|---|
| 821 |
As a first step, I'd suggest simply trying to compile it under |
|---|
| 822 |
Linux, like this: |
|---|
| 823 |
|
|---|
| 824 |
cc -O -c malloc.c |
|---|
| 825 |
|
|---|
| 826 |
You shouldn't get any errors or warnings. If you do, contact me |
|---|
| 827 |
before you waste any more time on it. |
|---|
| 828 |
|
|---|
| 829 |
Assuming it compiles OK, copy malloc.c into this directory of your |
|---|
| 830 |
Modula-3 source tree: |
|---|
| 831 |
|
|---|
| 832 |
m3/m3core/src/runtime/LINUXELF |
|---|
| 833 |
|
|---|
| 834 |
In that same directory, edit "m3makefile" and add this line to the |
|---|
| 835 |
end of the file: |
|---|
| 836 |
|
|---|
| 837 |
c_source ("malloc") |
|---|
| 838 |
|
|---|
| 839 |
Then chdir up into "m3/m3core" of the Modula-3 tree and type |
|---|
| 840 |
"m3build". (I'm assuming you already have a working Modula-3 |
|---|
| 841 |
installation.) After that finishes, become root and type "m3ship" |
|---|
| 842 |
to install it. |
|---|
| 843 |
|
|---|
| 844 |
That's all there is to it. If you built cvsup and cvsupd to use |
|---|
| 845 |
shared libraries, you don't even need to re-link them. They'll pick |
|---|
| 846 |
up the change automatically from the updated shared library. |
|---|
| 847 |
|
|---|
| 848 |
Let me know if you run into any problems with it. |
|---|
| 849 |
|
|---|
| 850 |
By the way, this is a very good malloc in its own right. It's worth |
|---|
| 851 |
using even aside from the thread safety of it. |
|---|
| 852 |
|
|---|
| 853 |
Regards, |
|---|
| 854 |
John |
|---|
| 855 |
|
|---|
| 856 |
I've deposited a statically built cvsup client executable (and man pages |
|---|
| 857 |
and test configuration) in |
|---|
| 858 |
|
|---|
| 859 |
/pub/incoming/cvsup-15.1-client-linux.tar.gz |
|---|
| 860 |
|
|---|
| 861 |
This was built and linked on Linux/v2.0.30, RH/v4.2, gnulib/v5.3.12 and |
|---|
| 862 |
includes the thread-safe malloc provided by John Polstra. I'll forward |
|---|
| 863 |
to you the malloc code and an additional installation e-mail from John. |
|---|
| 864 |
|
|---|
| 865 |
The Modula-3 installation takes a good bit of room (~50MB?) and the |
|---|
| 866 |
build environment is unique to Modula-3, but suprisingly enough it |
|---|
| 867 |
pretty much works. |
|---|
| 868 |
|
|---|
| 869 |
The cvsup Makefiles do not work on my machine (they are not portable |
|---|
| 870 |
yet) but each major package (there are 4) can be built without needing |
|---|
| 871 |
the makefiles with two commands each. Not difficult at all. John gives |
|---|
| 872 |
some hints in his e-mail on how to build a static executable, and on how |
|---|
| 873 |
to shrink the size of the executable by leaving out the GUI support. |
|---|
| 874 |
Again, easy to do. |
|---|
| 875 |
|
|---|
| 876 |
My client test case, picking up a sub-tree of the FreeBSD distribution, |
|---|
| 877 |
worked flawlessly. I haven't tried running a server. |
|---|
| 878 |
|
|---|
| 879 |
Thanks to John for getting me going. |
|---|
| 880 |
|
|---|
| 881 |
- Tom |
|---|
| 882 |
|
|---|
| 883 |
|
|---|
| 884 |
For the thread-safe malloc, do the following: |
|---|
| 885 |
1) install Modula-3 |
|---|
| 886 |
2) add the enclosed file "malloc.c" to m3/m3core/src/runtime/LINUXELF |
|---|
| 887 |
3) edit the last line of m3makefile in the same directory to add |
|---|
| 888 |
c_source ("malloc") |
|---|
| 889 |
4) do an "m3build" and an m3ship from the appropriate directory. |
|---|
| 890 |
|
|---|
| 891 |
>From what John said, the malloc problem can be noticable for the |
|---|
| 892 |
server-side running cvsupd. Clients may not need it. |
|---|
| 893 |
|
|---|
| 894 |
Unfortunately I seem to have lost John's original good instructions for |
|---|
| 895 |
this, so am doing this from memory. May need to ask John to give |
|---|
| 896 |
instructions again... |
|---|
| 897 |
|
|---|
| 898 |
- Tom |
|---|
| 899 |
|
|---|
| 900 |
--> |
|---|
| 901 |
|
|---|
| 902 |
|
|---|
| 903 |
<!-- Keep this comment at the end of the file |
|---|
| 904 |
Local variables: |
|---|
| 905 |
mode:sgml |
|---|
| 906 |
sgml-omittag:nil |
|---|
| 907 |
sgml-shorttag:t |
|---|
| 908 |
sgml-minimize-attributes:nil |
|---|
| 909 |
sgml-always-quote-attributes:t |
|---|
| 910 |
sgml-indent-step:1 |
|---|
| 911 |
sgml-indent-data:t |
|---|
| 912 |
sgml-parent-document:nil |
|---|
| 913 |
sgml-default-dtd-file:"./reference.ced" |
|---|
| 914 |
sgml-exposed-tags:nil |
|---|
| 915 |
sgml-local-catalogs:("/usr/lib/sgml/catalog") |
|---|
| 916 |
sgml-local-ecat-files:nil |
|---|
| 917 |
End: |
|---|
| 918 |
--> |
|---|