=================================================================== RCS file: /cvsrepo/anoncvs/cvs/www/Attic/ctm.html,v retrieving revision 1.12 retrieving revision 1.13 diff -c -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,12 ****
! CTM for OpenBSD

What is ctm?

--- 6,12 ----
! CTM for OpenBSD

What is ctm?

*************** *** 15,25 **** Ctm is a system which was designed by Poul-Henning Kamp for making changes to a source tree available on a daily basis by email. This is a good way to stay up to date with the current source- or ! cvs-tree if you have a bad internet connection - for instance via modem.

! Ctm uses very low bandwidth for distributing the changes to the ! tree, and compresses them using gzip -9.

How does it work?

--- 15,27 ---- Ctm is a system which was designed by Poul-Henning Kamp for making changes to a source tree available on a daily basis by email. This is a good way to stay up to date with the current source- or ! CVS tree if you have a bad Internet connection, for instance via modem.

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

How does it work?

*************** *** 27,69 **** The basic idea of ctm is that you subscribe to a special mailing list for a particular source tree. Each day you receive an email message containing all the changes to that tree during that period. ! One set of differences is called a "delta".

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

! Bases are generated approximately once every 100 relative deltas, so you never ! have to grab more than 100 deltas to catch up.

How much bandwidth does ctm use?

! 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:

Larger ctm updates are rare, though, usually occurring only after a major ! import of something like binutils, perl, etc.

How do I use ctm?

--- 29,84 ---- The basic idea of ctm is that you subscribe to a special mailing list for a particular source tree. Each day you receive an email message containing all the changes to that tree during that period. ! One set of differences is called a "delta".

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

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

How much bandwidth does ctm use?

! 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, gcc, etc.

How do I use ctm?

*************** *** 71,141 ****
  • Subscribe to the ctm mailing list for the source set you want.

    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.

    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
    !

    !

  • Wait until you get your first delta. !
  • Unpack and assemble the ctm delta using ctm_rmail. !
    !
    ! ! ctm_rmail -p. -d. -b. folder ! !

    ! where folder is the mail folder containing the delta mail. !
    ! This will decode the ctm delta and place it in the working directory. ! The delta will be a file of the form OpenBSD-XXX.YYYY.gz, where XXX is ! either "src" or "cvs", and YYYY is the number of the delta.

    !

  • Grab the base set from the ftp site below, in the subdirectory ! base/OpenBSD-cvs (for OpenBSD-cvs) or base/OpenBSD-src ! (for OpenBSD-src). Grab all files in that directory, and once you have ! them all you can create the base source tree with the following command: !

    ! ! cd target
    ! cat /split/OpenBSD-* | tar zxf -
    !

    ! where split is the directory in which you placed the files you ! grabbed.

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

    ! 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 larger than the number of the ! base you used.

    ! The addresses for the base and deltas are:

    ! Note: The examples below just cover OpenBSD-cvs for clarity. The ! other source sets are handled in the same fashion. ! !

    + +

    + The addresses for the deltas are: +

    !

    !

  • Run ctm. !
    !
    ! ! cd target
    ! ctm -v -v /deltas/OpenBSD-cvs.*

    ! where target is the directory where you want your cvs tree to be, ! and deltas is where you have stored the deltas. !

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

    Should I choose the source or cvs tree?

    -

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

    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.

    ! This doesn't count the 100Mb or more you will need to do a build (depending ! on the architecture).

    If you just get the source tree, you will need to deal with local --- 223,250 ----

    ! NOTE: I'm very interested in finding other sites around the world ! that would like to mirror these deltas.

    !

    Should I choose the source or 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 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 (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,215 **** 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 ! !

    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 --- 255,271 ---- 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
    ! 
    ! !

    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,258 ****

    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.

    ! 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 src


    !
    ! and after each ctm update:
    ! ! cd /usr/src
    ! cvs -q update -PAd

    !

    How stable is ctm for OpenBSD?

    ! Ctm has been in use for over a year for OpenBSD, and for FreeBSD for a ! number of years. Ctm is quite reliable and stable.

    More information

    ! If you have problems with ctm, a good place to start is the FreeBSD ! handbook:
    ! There are also man pages for all of the ctm utilities.

    Summary:

    *************** *** 278,326 ****

  • Mailing lists: !
  • FTP (for base and relative deltas; and OpenBSD has ctm in the source ! tree, but if you don't have source or binaries, the source is here too):

    ! I will make any important notes and announcements about ctm in:

    - NOTE: If you use ctm for OpenBSD, please send me email so I - know how many people are using it!

    Acknowledgements

  • Poul-Henning Kamp (phk@FreeBSD.org) for making ctm possible and helping ! me getting the delta generation running.
  • Theo de Raadt (deraadt@theos.com) for making OpenBSD possible and ! initially giving me the resources i needed for creating the ctm ! deltas on cvs.OpenBSD.org (now they are generated elsewhere) and for the nameserver magic
  • Todd C. Miller (millert@OpenBSD.org) for setting up and --- 331,374 ----
  • Mailing lists: !
  • FTP (for base and relative deltas):

    ! Important notes and announcements about ctm will be posted to:

    Acknowledgements

    + !

    ! Good luck! !

    ! t -


    !
    Thomas Graichen
    !
    OpenBSD/CTM logo designed for the OpenBSD Project by Phillip F Knaack.


    OpenBSD www@openbsd.org !
    ! $OpenBSD: ctm.html,v 1.12 2000/11/17 19:11:33 jufi Exp $ - --- 379,406 ---- Wolfram Schneider (wosch@FreeBSD.org) for setting up the ftp space for the bases and deltas on ctm.*OpenBSD.org !
  • Thomas Graichen (graichen@OpenBSD.org) for starting ctm for ! OpenBSD and maintaining it all those years !
  • Wim Vandeputte (wvdeputte@OpenBSD.org) for hosting ctm now !
  • ... and all the others who contributed indirectly ! !

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


    OpenBSD www@openbsd.org !
    ! $OpenBSD: ctm.html,v 1.13 2001/01/01 22:01:21 naddy Exp $