=================================================================== RCS file: /cvsrepo/anoncvs/cvs/www/Attic/ctm.html,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- www/Attic/ctm.html 2000/11/17 19:11:33 1.12 +++ www/Attic/ctm.html 2001/01/01 22:01:21 1.13 @@ -6,7 +6,7 @@
-Ctm uses very low bandwidth for distributing the changes to the -tree, and compresses them using gzip -9. +Ctm uses very low bandwidth for distributing the changes to the tree, +and compresses them using gzip -9. In contrast to CVSup, ctm is written in plain C and therefore +available for every platform supported by OpenBSD.
-You begin with a base set against which later deltas are patched. -To begin using ctm you must grab the latest base set and all deltas -after that; once you have processed those you can process later -deltas you receive on the mailing list. The base sets are split -into pieces of 1400k each for easier downloading over bad lines -and you can even put them onto floppies this way. +You begin with a base set, against which later deltas are patched. To +begin using ctm you download the latest base set and all deltas +generated after that. Once you have processed those you can process +later deltas you receive from the mailing list. The base sets are split +into pieces of 1400kB each for easier downloading over bad lines, and +you can even put them onto floppies this way.
-Bases are generated approximately once every 100 relative deltas, so you never -have to grab more than 100 deltas to catch up. +Base sets are generated once every 50 relative deltas, so you never +have to grab more than 50 deltas to catch up. +
+There are currently two kinds of base delta. For quite a while we +were making tar.gz files manually, but we are +switching back to real ctm base deltas. The latter contain md5 +checksums and are generated automatically, thus are a bit safer. You +can distinguish these two kinds of base delta by their filename. An +example for a tar.gz file is +OpenBSD-cvs.1450.tar.gz, whereas a ctm base delta +would be named OpenBSD-cvs.1500A.gz. See below for +detailed instructions. +
-As mentioned above, the base set contains a full source tree in TAR format, -and is thus quite large. You must obtain the base set and all relative -deltas up to present via ftp from the site listed below. Sizes are: +You obtain the base set and all relative deltas up to the recent one +via ftp from the sites listed below. Sizes are:
Larger ctm updates are rare, though, usually occurring only after a major -import of something like binutils, perl, etc. +import of something like binutils, perl, gcc, etc.
There are several mailing lists related to ctm. There is a list for - updates to the updates to cvs tree, a list for the source tree, a list - for the X11 part of both and one for the ports tree plus - a list for seeing log messages from the ctm delta generator runs. + updates to the CVS tree, a list for the source tree, a list + for the X11 part of both, and one for the ports tree, plus + a list for log messages from the ctm delta generation runs.
The following commands will subscribe you to the appropriate lists:
-
-For the cvs tree (without the X11 part):
- echo subscribe OpenBSD-cvs | mail majordomo@OpenBSD.org
-For the X11 part of the cvs tree:
- echo subscribe OpenBSD-cvs-x11 | mail majordomo@OpenBSD.org
-For the source tree (without the X11 part):
- echo subscribe OpenBSD-src | mail majordomo@OpenBSD.org
-For the X11 part of the source tree:
- echo subscribe OpenBSD-src-x11 | mail majordomo@OpenBSD.org
-For the ports tree:
- echo subscribe OpenBSD-ports-ctm | mail majordomo@OpenBSD.org
-For the ctm log list:
- echo subscribe ctm-log | mail majordomo@OpenBSD.org
-
+
+For the CVS tree (without the X11 part): +
+ echo subscribe OpenBSD-cvs | mail majordomo@OpenBSD.org ++For the X11 part of the CVS tree: +
+ echo subscribe OpenBSD-cvs-x11 | mail majordomo@OpenBSD.org ++For the source tree (without the X11 part): +
+ echo subscribe OpenBSD-src | mail majordomo@OpenBSD.org ++For the X11 part of the source tree: +
+ echo subscribe OpenBSD-src-x11 | mail majordomo@OpenBSD.org ++For the ports tree: +
+ echo subscribe OpenBSD-ports-ctm | mail majordomo@OpenBSD.org ++For the ctm log list: +
+ echo subscribe ctm-log | mail majordomo@OpenBSD.org +-
+
+ cat split/OpenBSD-cvs.1500A.gz.* > OpenBSD-cvs.1500A.gz + cd target + ctm -v -v -v .../OpenBSD-cvs.1500A.gz +
+or -
+ cat split/OpenBSD-cvs.1500.tar.gz.* > OpenBSD-cvs.1500.tar.gz + cd target + tar -xzvf .../OpenBSD-cvs.1500.tar.gz +-
+where split is the directory in which you have +placed the files you downloaded and target is the +place you have chosen for the source set. -where split is the directory in which you placed the files you -grabbed. +
+It is not necessary to keep these files around, if you're sure you've +got a complete tree. But you can keep the base set file(s) for backup +purposes. However, be sure to note the number of the base set before +continuing.
-It is no longer necessary to keep these files around, if you're sure -you've got a complete tree. However, be sure to note the number of the -base, before continuing. +
+ cd target + ctm -v -v -v deltas/OpenBSD-cvs.* ++
-You now need to grab the deltas which have been generated since the base
-was generated. Go to the ftp site below in the subdirectory
-OpenBSD-cvs or OpenBSD-src for instance and grab
-every file whose number is
-The addresses for the base and deltas are: +
+
+
+ ctm_rmail -p /tmp -d deltas -b target folder ++ +
+where folder is the mail folder containing the delta +mail. This will decode the ctm delta and save it in the +deltas directory. The delta will be a file of the +form OpenBSD-cvs.XXXX.gz, where XXXX +is the number of the delta. Then the delta will be applied to the +directory tree located at target, the place where you +unpacked the base delta. + +
+Repeat this last step every time you receive a delta from the +mailing list. If you like you can automate this step using procmail +or any similar program. +
+The addresses for the deltas are: +
-
-
-It will take some time to run all of the deltas, but the daily invocations -of ctm_rmail and ctm will not take nearly as long. - +
-This depends on your diskspace, among other factors. Since ctm doesn't -yet deal with files which have been modified outside of the ctm process, -the "better" choice is probably the cvs-tree. Then you can check out -your working source tree from your cvs-tree, and keep your local mods -in your source tree, leaving only ctm to touch your cvs tree. +This depends on your diskspace, among other factors. Since ctm +doesn't deal with files which have been modified locally, the "better" +choice is probably the CVS tree. You then can check out your working +source tree from your CVS tree, and keep your local modifications in +your source tree, because cvs is smart enough to merge in your local +changes.
The drawback, however, is the amount of diskspace it takes. A checked-out -source tree takes about 300Mb or so, but if you have your own cvs tree you -need 400Mb or so for it, plus another 300Mb for the checked out tree. +source tree takes about 350MB or so, but if you have your own cvs tree you +need about 1Gb for it, plus another 350MB for the checked out tree.
-This doesn't count the 100Mb or more you will need to do a build (depending -on the architecture). +This doesn't count the 100MB or more (depending on the architecture) +you will need to do a build, i.e. compile the sources.
If you just get the source tree, you will need to deal with local @@ -201,15 +255,17 @@ you should have no problems. A sample of this is as follows:
-Suppose your ctm-updated tree is in /usr/src-ctm, and your real
-source tree, the one you make your modifications to and do your builds from,
-is in /usr/src. /usr/src should be initially an empty
-directory. The following command will set up the union mount:
-
-
- mount -t union -o -b /usr/src-ctm /usr/src
-
-
+Suppose your ctm-updated tree is in /usr/src-ctm, and
+your real source tree, the one you make your modifications to and do
+your builds from, is in /usr/src.
+/usr/src should be initially an empty directory. The
+following command will set up the union mount:
+
+
+ mount -t union -o -b /usr/src-ctm /usr/src ++ +
Modifications made to files in /usr/src will become a file contained within /usr/src, hiding the one in src-ctm. If changes are made via ctm to the underlying src-ctm tree, those changes will not be seen if there is @@ -218,41 +274,45 @@
You should periodically unmount the
union and search for files which are local to the union filesystem.
-
-
- umount /usr/src
- find /usr/src -type f
-
-
-The commands ls -W and rm -W will be useful too, as objects
-named "whiteouts" in /usr/src will also hide files in src-ctm.
+
+ umount /usr/src + find /usr/src -type f ++
-If you get the cvs-tree, you can use the "cvs checkout" command to check
-out a source tree from it, and each time you update with ctm you can use
-the "cvs update" command to update your source tree.
+The commands ls -W and rm -W will be
+useful too, as objects named "whiteouts" in /usr/src will also hide
+files in src-ctm.
-
-To get an initial src tree:
-
- cd /usr
- cvs -qd YOUR_CVS_TREE checkout src
-
-and after each ctm update:
-
- cd /usr/src
- cvs -q update -PAd
-
+
+If you get the CVS tree, you can use the cvs checkout +command to check out a source tree from it, and each time you update +with ctm you can use the cvs update command to +update your source tree. +
+To get an initial src tree: +
+ cd /usr + cvs -qd YOUR_CVS_TREE checkout -A src ++
+and after each ctm update: +
+ cd /usr/src + cvs -q update -PAd ++
-You can also contact the OpenBSD mailing lists or myself if you have -difficulties with ctm, although my free time tends to be rather limited. - -
Summary:
@@ -278,49 +331,44 @@
-I will make any important notes and announcements about ctm in: +Important notes and announcements about ctm will be posted to:
-NOTE: If you use ctm for OpenBSD, please send me email so I -know how many people are using it!
-Good luck! +
-t +
+For any problems, suggestions, reports and questions regarding ctm +contact the ctm maintainer +Hans Günter Weigand. +
OpenBSD/CTM logo designed for the OpenBSD Project by Phillip F Knaack.