202 lines
9.0 KiB
Plaintext
202 lines
9.0 KiB
Plaintext
<!--
|
|
# This is the sgml version of the ctm.FAQ file.
|
|
#
|
|
# Converted by Ollivier Robert <roberto@FreeBSD.ORG>
|
|
#
|
|
# $Id$
|
|
#
|
|
# ----------------------------------------------------------------------------
|
|
# "THE BEER-WARE LICENSE" (Revision 42):
|
|
# <phk@login.dknet.dk> wrote this file. As long as you retain this notice you
|
|
# can do whatever you want with this stuff. If we meet some day, and you think
|
|
# this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
|
# ----------------------------------------------------------------------------
|
|
#
|
|
-->
|
|
|
|
<sect><heading>CTM<label id="ctm"></heading>
|
|
|
|
<p><em>Contributed by &a.phk;. Updated 16-Mar-1995.</em>
|
|
|
|
<tt/CTM/ is a method for keeping a remote directory tree in sync with a
|
|
central one. It has been developed for usage with FreeBSD's source
|
|
trees, though other people may find it useful for other purposes as
|
|
time goes by. Little, if any, documentation currently exists at
|
|
this time on the process of creating deltas, so talk to &a.phk;
|
|
for more information should you wish to use <tt/CTM/ for other things.
|
|
|
|
<sect1><heading>Why should I use <tt/CTM/?</heading>
|
|
<p><tt/CTM/ will give you a local copy of the ``FreeBSD-current''
|
|
sources. If you are an active developer on FreeBSD, but have lousy
|
|
or non-existent TCP/IP connectivity, <tt/CTM/ was made for you.
|
|
You will need to transfer up to four deltas per day (or you can
|
|
have them arrive in email automatically), the sizes for which are
|
|
always kept as small as possible. This is typically less than 5K,
|
|
with the occasional (one in ten) being 10-50K and every now and
|
|
then a biggie of 100K+ or more coming around.
|
|
|
|
You will also need to make yourself aware of the various caveats in
|
|
running ``current'' sources, and for this it is recommended that
|
|
you read <ref id="current" name="Staying current with FreeBSD">.
|
|
|
|
<sect1><heading>What do I need to use <tt/CTM/?</heading>
|
|
|
|
<p>You will need two things: The ``<tt/CTM/'' program and the initial
|
|
deltas to feed it (to get up to ``current'' levels).
|
|
|
|
The <tt/CTM/ program has been part of FreeBSD ever since version 2.0
|
|
was released, and lives in <tt>/usr/src/usr.sbin/<tt/CTM/</tt> if you
|
|
have a copy of the source online.
|
|
|
|
If you are running a pre-2.0 version of FreeBSD, you can fetch the
|
|
current <tt/CTM/ sources directly from:
|
|
|
|
<url
|
|
url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm">
|
|
|
|
The ``deltas'' you feed <tt/CTM/ can be had two ways, FTP or e-mail.
|
|
If you have general FTP access to the Internet then the following
|
|
FTP sites support access to <tt/CTM/:
|
|
|
|
<url url="ftp://freefall.cdrom.com/pub/CTM">
|
|
|
|
or see section <ref id="mirrors-ctm" name="mirrors">.
|
|
|
|
FTP the relevant directory and fetch the <tt/README/ file,
|
|
starting from there.
|
|
|
|
If you only have access to electronic mail or are otherwise blocked
|
|
from using FTP then you may wish to get your deltas via email:
|
|
|
|
Send email to &a.majordomo to subscribe to
|
|
the list ``ctm-src-cur''. (If you do not know how to subscribe
|
|
yourself using majordomo, send a message first containing the
|
|
word ``help'' - it will send you back usage instructions.)
|
|
|
|
When you begin receiving your <tt/CTM/ updates in the mail, you may
|
|
use the <tt/ctm_rmail/ program to unpack and apply them. You
|
|
can actually use the <tt/ctm_rmail/ program directly from a entry
|
|
in <tt>/etc/aliases</tt> if you want to have the process run in a
|
|
fully automated fashion. Check the <tt/ctm_rmail/ man page for more
|
|
details.
|
|
|
|
<bf/NOTE/: No matter what method you use to get the <tt/CTM/
|
|
deltas, you should subscribe to the <tt/ctm-announce@FreeBSD.ORG/
|
|
mailing list. In the future, this will be the only place where
|
|
announcements concerning the operations of the <tt/CTM/ system will be
|
|
posted. Send an email to &a.majordomo with a single
|
|
line of ``<tt/subscribe ctm-announce/'' to get added to the list.
|
|
|
|
<sect1><heading>Starting off with <tt/CTM/ for the first time</heading>
|
|
<p>Before you can start using <tt/CTM/ deltas, you will need to get a
|
|
special ``base'' delta that provides the starting point for all
|
|
deltas produced subsequently to it.
|
|
|
|
You can recognize a base delta by the ``<tt/A/'' appended to the
|
|
number (<tt/src-cur.0341A.gz/ for instance). As a rule a base
|
|
delta is produced every 100 deltas, the next one will be
|
|
<tt/src-cur.0400A.gz/. By the way, they are large! 25 to 30
|
|
Megabytes of <tt/gzip/'ed data is common for a base delta.
|
|
|
|
If you do have the 2.0-RELEASE <tt/srcdist/, you can instead
|
|
retrieve the <tt/src-cur.0372R20.gz/ file, it is only 4Mb and it
|
|
will take you to current from the 2.0-RELEASE sources.
|
|
|
|
Once you've picked a base delta to start from, you will also need
|
|
all deltas with higher numbers following it.
|
|
|
|
<sect1><heading>Using <tt/CTM/ in your daily life</heading>
|
|
<p>To apply the deltas, simply say
|
|
<verb>
|
|
cd /where/ever/you/want/the/stuff
|
|
ctm -v -v /where/you/store/your/deltas/src-cur.*
|
|
</verb>
|
|
<tt/CTM/ understands deltas which have been put through <tt/gzip/,
|
|
so you do not need to gunzip them first, this saves disk space.
|
|
|
|
Unless it feels very secure about the entire process, <tt/CTM/ will
|
|
not touch your tree. To verify a delta you can also use the
|
|
``<tt/-c/'' flag and <tt/CTM/ will not actually touch your tree; it will
|
|
merely verify the integrity of the delta and see if it would apply
|
|
cleanly to your current tree.
|
|
|
|
There are other options to <tt/CTM/ as well, look in the sources
|
|
for more details.
|
|
|
|
I would also be very happy if somebody could help with the ``user
|
|
interface'' portions, as I have realized that I cannot make up my
|
|
mind on what options should do what, how and when...
|
|
|
|
That's really all there is to it. Every time you get a new delta,
|
|
just run it through <tt/CTM/ to keep your sources up to date.
|
|
|
|
Do not remove the deltas if they are hard to download again. You
|
|
just might want to keep them around in case something bad happens.
|
|
Even if you only have floppy disks, consider using <tt/fdwrite/ to
|
|
make a copy.
|
|
|
|
|
|
<sect1><heading>Future plans for <tt/CTM/</heading>
|
|
<p>
|
|
Tons of them:
|
|
<itemize>
|
|
<item>
|
|
Make local modifications to the tree possible. One way to do
|
|
it could be this:<p> When <tt/CTM/ wants to edit the file
|
|
``<tt>foo/bar.c</tt>'', it would first check for the existence
|
|
of <tt>foo/bar.c#CTM</tt> If this file exists, the delta is
|
|
applied to it instead. This way the <tt>foo/bar.c</tt> file
|
|
can be edited to suit local needs.
|
|
<item>
|
|
Make a ``restore file(s)'' option to <tt/CTM/, something like:
|
|
<verb>
|
|
ctm -r src/sys/i386/wd.c /here/are/my/deltas/src-cur.*
|
|
</verb>
|
|
would restore <tt/wd.c/ to the current status from the files.
|
|
<item>
|
|
Clean up the options to <tt/CTM/, they became confusing and
|
|
counter intuitive.
|
|
</itemize>
|
|
|
|
The bad news is that I am very busy, so any help in doing this will
|
|
be most welcome. And do not forget to tell me what you want also...
|
|
|
|
<sect1><heading>Miscellaneous stuff</heading>
|
|
<p>
|
|
All the ``DES infected'' (e.g. export controlled) source is not
|
|
included. You will get the ``international'' version only. If
|
|
sufficient interest appears, we will set up a ``<tt/sec-cur/''
|
|
sequence too.
|
|
|
|
If you are a frequent or valuable contributor to FreeBSD, I will be
|
|
willing to arrange special services, one option is delivery via
|
|
<tt/ftp/ or <tt/rcp/ to a machine closer to you. You need to have
|
|
earned this, since it takes time to do, but I will be all the more
|
|
happy to do it for you then.
|
|
|
|
There is a sequence of deltas for the <tt/ports/ collection too,
|
|
but interest has not been all that high yet. Tell me if you want
|
|
an email list for that too and we will consider setting it up.
|
|
|
|
If you have commit privileges or are similarly authorized by the
|
|
FreeBSD core team, you can also get access to the CVS repository
|
|
tree by the same means. Contact &a.phk;
|
|
for details.
|
|
|
|
|
|
<sect1><heading>Thanks!</heading>
|
|
<p>
|
|
<descrip>
|
|
<tag/&a.bde;/
|
|
for his pointed pen and invaluable comments.
|
|
<tag/&a.sos;/
|
|
for patience.
|
|
<tag/Stephen McKay/
|
|
wrote <tt/ctm_[rs]mail/, much appreciated.
|
|
<tag/&a.jkh;/
|
|
for being so stubborn that I had to make it better.
|
|
<tag/All the users/
|
|
I hope you like it...
|
|
</descrip>
|
|
|