Remove CTM from the Handbook. Some time back, CTM became deprecated or
impractical or both. Cleared with clusteradm.
This commit is contained in:
		
							parent
							
								
									33b19512b8
								
							
						
					
					
						commit
						1fda3c5ac3
					
				
				
				Notes:
				
					svn2git
				
				2020-12-08 03:00:23 +00:00 
				
			
			svn path=/head/; revision=48637
					 2 changed files with 6 additions and 329 deletions
				
			
		|  | @ -73,9 +73,8 @@ | |||
|     <itemizedlist> | ||||
|       <listitem> | ||||
| 	<para>How to keep a &os; system up-to-date with | ||||
| 	  <application>freebsd-update</application>, | ||||
| 	  <application>Subversion</application>, or | ||||
| 	  <application>CTM</application>.</para> | ||||
| 	  <application>freebsd-update</application> or | ||||
| 	  <application>Subversion</application>.</para> | ||||
|       </listitem> | ||||
| 
 | ||||
|       <listitem> | ||||
|  | @ -1036,13 +1035,6 @@ before running "/usr/sbin/freebsd-update install"</screen> | |||
| 	    -CURRENT code from the <literal>head</literal> branch of | ||||
| 	    one of the Subversion mirror sites listed in | ||||
| 	    <xref linkend="svn-mirrors"/>.</para> | ||||
| 
 | ||||
| 	  <para>Users with very slow or limited Internet connectivity | ||||
| 	    can instead use CTM as described in <xref linkend="ctm"/>, | ||||
| 	    but it is not as reliable as | ||||
| 	    <application>svn</application> and | ||||
| 	    <application>svn</application> is the recommended method | ||||
| 	    for synchronizing source.</para> | ||||
| 	</listitem> | ||||
| 
 | ||||
| 	<listitem> | ||||
|  | @ -1150,9 +1142,7 @@ before running "/usr/sbin/freebsd-update install"</screen> | |||
| 	      </indexterm> to check out the source for the desired | ||||
| 	    branch.  Branch names, such as | ||||
| 	    <literal>stable/9</literal>, are listed at <link | ||||
| 	      xlink:href="&url.base;/releng/">www.freebsd.org/releng</link>. | ||||
| 	    CTM (<xref linkend="ctm"/>) can be used if a reliable | ||||
| 	    Internet connection is not available.</para> | ||||
| 	      xlink:href="&url.base;/releng/">www.freebsd.org/releng</link>.</para> | ||||
| 	</listitem> | ||||
| 
 | ||||
| 	<listitem> | ||||
|  | @ -1175,9 +1165,8 @@ before running "/usr/sbin/freebsd-update install"</screen> | |||
|     <title>Synchronizing Source</title> | ||||
| 
 | ||||
|     <para>There are various methods for staying up-to-date with the | ||||
|       &os; sources.  This section compares the primary services, | ||||
|       <application>Subversion</application> and | ||||
|       <application>CTM</application>.</para> | ||||
|       &os; sources.  This section describes the primary service, | ||||
|       <application>Subversion</application>.</para> | ||||
| 
 | ||||
|     <warning> | ||||
|       <para>While it is possible to update only parts of the source | ||||
|  | @ -1207,33 +1196,9 @@ before running "/usr/sbin/freebsd-update install"</screen> | |||
|       <application>Subversion</application> is described in <xref | ||||
| 	linkend="svn"/>.</para> | ||||
| 
 | ||||
|     <indexterm> | ||||
|       <primary><application>CTM</application></primary> | ||||
|     </indexterm> | ||||
|     <para><application>CTM</application> does not interactively | ||||
|       compare the local sources with those on the master archive or | ||||
|       otherwise pull them across.  Instead, a script which identifies | ||||
|       changes in files since its previous run is executed several | ||||
|       times a day on the master CTM machine.  Any detected changes are | ||||
|       compressed, stamped with a sequence-number, and encoded for | ||||
|       transmission over email in printable <acronym>ASCII</acronym> | ||||
|       only.  Once downloaded, these <firstterm>deltas</firstterm> can | ||||
|       be run through <command>ctm.rmail</command> which will | ||||
|       automatically decode, verify, and apply the changes to the | ||||
|       user's copy of the sources.  This process is more efficient than | ||||
|       <application>Subversion</application> and places less strain on | ||||
|       server resources since it is a <emphasis>push</emphasis>, rather | ||||
|       than a <emphasis>pull</emphasis>, model.  Instructions for using | ||||
|       <application>CTM</application> to synchronize source can be | ||||
|       found at <xref linkend="ctm"/>.</para> | ||||
| 
 | ||||
|     <para>If a user inadvertently wipes out portions of the local | ||||
|       archive, <application>Subversion</application> will detect and | ||||
|       rebuild the damaged portions.  <application>CTM</application> | ||||
|       will not, and if a user deletes some portion of the source tree | ||||
|       and does not have a backup, they will have to start from scratch | ||||
|       from the most recent <firstterm>base delta</firstterm> and | ||||
|       rebuild it all with <application>CTM</application>.</para> | ||||
|       rebuild the damaged portions during an update.</para> | ||||
|   </sect1> | ||||
| 
 | ||||
|   <sect1 xml:id="makeworld"> | ||||
|  |  | |||
|  | @ -133,294 +133,6 @@ This site doesn't have any products newer than 8.1 which is now EOL'd | |||
|     &chap.mirrors.ftp.inc; | ||||
|   </sect1> | ||||
| 
 | ||||
|   <sect1 xml:id="ctm"> | ||||
|     <title>Using CTM</title> | ||||
| 
 | ||||
|     <indexterm> | ||||
|       <primary>CTM</primary> | ||||
|     </indexterm> | ||||
| 
 | ||||
|     <para><application>CTM</application> is a method for keeping a | ||||
|       remote directory tree in sync with a central one.  It is built | ||||
|       into &os; and can be used to synchronize a system with &os;'s | ||||
|       source repositories.  It supports synchronization of an entire | ||||
|       repository or just a specified set of branches.</para> | ||||
| 
 | ||||
|     <para><application>CTM</application> is specifically designed for | ||||
|       use on lousy or non-existent TCP/IP connections and provides | ||||
|       the ability for changes to be automatically sent by email.  It | ||||
|       requires the user to obtain up to three deltas per day for the | ||||
|       most active branches.  Update sizes are always kept as small as | ||||
|       possible and are typically less than 5K.  About one in every ten | ||||
|       updates is 10-50K in size, and there will occasionally be an | ||||
|       update larger than 100K+.</para> | ||||
| 
 | ||||
|     <para>When using <application>CTM</application> to track &os; | ||||
|       development, refer to the caveats related to working directly | ||||
|       from the development sources rather than a pre-packaged release. | ||||
|       These are discussed in <link linkend="current-stable">Tracking | ||||
| 	a Development Branch</link>.</para> | ||||
| 
 | ||||
|     <para>Little documentation exists on the process of creating | ||||
|       deltas or using <application>CTM</application> for other | ||||
|       purposes.  Contact the &a.ctm-users.name; mailing list for | ||||
|       answers to questions on using | ||||
|       <application>CTM</application>.</para> | ||||
| 
 | ||||
|     <sect2 xml:id="mirrors-ctm"> | ||||
|       <title>Getting Deltas</title> | ||||
| 
 | ||||
|       <para>The <quote>deltas</quote> used by | ||||
| 	<application>CTM</application> can be obtained either through | ||||
| 	anonymous <acronym>FTP</acronym> or email.</para> | ||||
| 
 | ||||
|       <para><acronym>FTP</acronym> deltas can be obtained from the | ||||
| 	following mirror sites.  When using anonymous | ||||
| 	<acronym>FTP</acronym> to obtain | ||||
| 	<application>CTM</application> deltas, select a mirror that is | ||||
| 	geographically nearby.  In case of problems, contact the | ||||
| 	&a.ctm-users.name; mailing list.</para> | ||||
| 
 | ||||
|       <variablelist> | ||||
| 	<varlistentry> | ||||
| 	  <term>Global mirror</term> | ||||
| 
 | ||||
| 	  <listitem> | ||||
| 	    <itemizedlist> | ||||
| 	      <listitem> | ||||
| 		<para><uri | ||||
| 		    xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/</uri></para> | ||||
| 	      </listitem> | ||||
| 	    </itemizedlist> | ||||
| 	  </listitem> | ||||
| 	</varlistentry> | ||||
| 
 | ||||
| 	<varlistentry> | ||||
| 	  <term>South Africa, backup server for old deltas</term> | ||||
| 
 | ||||
| 	  <listitem> | ||||
| 	    <itemizedlist> | ||||
| 	      <listitem> | ||||
| 		<para><uri | ||||
| 		    xlink:href="ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/</uri></para> | ||||
| 	      </listitem> | ||||
| 	    </itemizedlist> | ||||
| 	  </listitem> | ||||
| 	</varlistentry> | ||||
| 
 | ||||
| 	<varlistentry> | ||||
| 	  <term>Taiwan/R.O.C.</term> | ||||
| 
 | ||||
| 	  <listitem> | ||||
| 	    <itemizedlist> | ||||
| 	      <listitem> | ||||
| 		<para><uri | ||||
| 		    xlink:href="ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/">ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/</uri></para> | ||||
| 	      </listitem> | ||||
| 
 | ||||
| 	      <listitem> | ||||
| 		<para><uri | ||||
| 		    xlink:href="ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/">ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/</uri></para> | ||||
| 	      </listitem> | ||||
| 
 | ||||
| 	      <listitem> | ||||
| 		<para><uri | ||||
| 		    xlink:href="ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/">ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/</uri></para> | ||||
| 	      </listitem> | ||||
| 	    </itemizedlist> | ||||
| 	  </listitem> | ||||
| 	</varlistentry> | ||||
|       </variablelist> | ||||
| 
 | ||||
|       <para>To instead receive deltas through email, subscribe to one | ||||
| 	of the <literal>ctm-src</literal> distribution lists available | ||||
| 	from <uri | ||||
| 	  xlink:href="http://lists.freebsd.org/mailman/listinfo">http://lists.freebsd.org/mailman/listinfo</uri>. | ||||
| 	For example, &a.ctm-src-cur.name; supports the head | ||||
| 	development branch and  &a.ctm-src-9.name; supports the 9.X | ||||
| 	release branch.</para> | ||||
| 
 | ||||
|       <para>As <application>CTM</application> updates arrive through | ||||
| 	email, use <command>ctm_rmail</command> to unpack and apply | ||||
| 	them.  This command can be run directly from an entry in | ||||
| 	<filename>/etc/aliases</filename> in order to automate this | ||||
| 	process.  Refer to &man.ctm.rmail.1; for more details.</para> | ||||
| 
 | ||||
|       <note> | ||||
| 	<para>Regardless of the method which is used to get deltas, | ||||
| 	  <application>CTM</application> users should subscribe | ||||
| 	  to the &a.ctm-announce.name; mailing list as this is the | ||||
| 	  only mechanism by which <application>CTM</application> | ||||
| 	  announcements are posted.</para> | ||||
|       </note> | ||||
|     </sect2> | ||||
| 
 | ||||
|     <sect2> | ||||
|       <title><application>CTM</application> Usage</title> | ||||
| 
 | ||||
|       <para>Before <application>CTM</application> deltas can be used | ||||
| 	for the first time, a starting point must be produced.</para> | ||||
| 
 | ||||
|       <para>One method is to apply a <quote>starter</quote> delta to | ||||
| 	an empty directory.  A  starter delta can be recognized by the | ||||
| 	<filename>XEmpty</filename> in its name, such as | ||||
| 	<filename>src-cur.3210XEmpty.gz</filename>.  The designation | ||||
| 	following the <literal>X</literal> corresponds to the origin | ||||
| 	of the initial <quote>seed</quote>, where | ||||
| 	<filename>Empty</filename> is an empty directory.  As a rule, | ||||
| 	a base transition from <literal>Empty</literal> is produced | ||||
| 	every 100 deltas.  Be aware that starter deltas are large and | ||||
| 	70 to 80 Megabytes of <command>gzip</command>'d data is common | ||||
| 	for the <filename>XEmpty</filename> deltas.</para> | ||||
| 
 | ||||
|       <para>Another method is to copy or extract an initial source | ||||
| 	from  a RELEASE media as this can  save a significant transfer | ||||
| 	of data from the Internet.</para> | ||||
| 
 | ||||
|       <para>Once a base delta has been created, apply all deltas with | ||||
| 	higher numbers.  To apply the deltas:</para> | ||||
| 
 | ||||
|       <screen>&prompt.root; <userinput>cd /directory/to/store/the/stuff</userinput> | ||||
| &prompt.root; <userinput>ctm -v -v /directory/which/stores/the/deltas/src-xxx.*</userinput></screen> | ||||
| 
 | ||||
|       <para>Multiple deltas can be applied with a single command as | ||||
| 	they will be processed one at a time and any deltas that are | ||||
| 	already applied will be ignored. | ||||
| 	<application>CTM</application> understands | ||||
| 	<command>gzip</command> compressed deltas, which saves disk | ||||
| 	space.</para> | ||||
| 
 | ||||
|       <para>To verify a delta without applying it, include | ||||
| 	<option>-c</option> in the command line. | ||||
| 	<application>CTM</application> will not actually modify the | ||||
| 	local tree but will instead verify the integrity of the delta | ||||
| 	to see if it would apply cleanly.  Refer to &man.ctm.1; for | ||||
| 	more information about available options and an overview of | ||||
| 	the process <application>CTM</application> uses when applying | ||||
| 	deltas.</para> | ||||
| 
 | ||||
|       <para>To keep the local source tree up-to-date, every time a | ||||
| 	new delta becomes available, apply it through | ||||
| 	<application>CTM</application>.</para> | ||||
| 
 | ||||
|       <para>Once applied, it is recommended to not delete the deltas | ||||
| 	if it is a burden to download them again.  This way, a local | ||||
| 	copy is available in case it is needed for future disaster | ||||
| 	recovery.</para> | ||||
|     </sect2> | ||||
| 
 | ||||
|     <sect2> | ||||
|       <title>Keeping Local Changes</title> | ||||
| 
 | ||||
|       <para>Developers often experiment with and | ||||
| 	change files in their local source tree. | ||||
| 	<application>CTM</application> supports local modifications in | ||||
| 	a limited way: before checking for the presence of a file, | ||||
| 	it first looks for a file with the same name and a | ||||
| 	<filename>.ctm</filename> extension.  If this file exists, | ||||
| 	<application>CTM</application> will operate on it instead of | ||||
| 	the original filename.</para> | ||||
| 
 | ||||
|       <para>This behavior provides a simple way to maintain local | ||||
| 	changes.  Before modifying a file, make a copy with a | ||||
| 	<filename>.ctm</filename> suffix.  Make any changes to the | ||||
| 	original filename, knowing that | ||||
| 	<application>CTM</application> will only apply updates to the | ||||
| 	file with the <filename>.ctm</filename> suffix.</para> | ||||
|     </sect2> | ||||
| 
 | ||||
|     <sect2> | ||||
|       <title>Other <application>CTM</application> Options</title> | ||||
| 
 | ||||
|       <variablelist> | ||||
| 	<varlistentry> | ||||
| 	  <term>Finding Out Exactly What Would Be Touched by an | ||||
| 	    Update</term> | ||||
| 
 | ||||
| 	  <listitem> | ||||
| 	    <para>To determine the list of changes that | ||||
| 	      <application>CTM</application> will make to the local | ||||
| 	      source repository, use <option>-l</option>.  This option | ||||
| 	      is useful for creating logs of the changes or when | ||||
| 	      performing pre- or post-processing on any of the | ||||
| 	      modified files.</para> | ||||
| 	  </listitem> | ||||
| 	</varlistentry> | ||||
| 
 | ||||
| 	<varlistentry> | ||||
| 	  <term>Making Backups Before Updating</term> | ||||
| 
 | ||||
| 	  <listitem> | ||||
| 	    <para>To backup all of the files that would be changed by | ||||
| 	      a <application>CTM</application> update, specify | ||||
| 	      <option>-B | ||||
| 		<replaceable>backup-file</replaceable></option>.  This | ||||
| 	      option tells <application>CTM</application> to backup | ||||
| 	      all files touched by the applied | ||||
| 	      <application>CTM</application> delta to | ||||
| 	      <filename>backup-file</filename>.</para> | ||||
| 	  </listitem> | ||||
| 	</varlistentry> | ||||
| 
 | ||||
| 	<varlistentry> | ||||
| 	  <term>Restricting the Files Touched by an Update</term> | ||||
| 
 | ||||
| 	  <listitem> | ||||
| 	    <para>To restrict the scope of a given | ||||
| 	      <application>CTM</application> update, or to extract | ||||
| 	      just a few files from a sequence of deltas, filtering | ||||
| 	      regular expressions can be specified using | ||||
| 	      <option>-e</option>, which specifies which files to | ||||
| 	      process, or <option>-x</option>, which specifies which | ||||
| 	      files to ignore.</para> | ||||
| 
 | ||||
| 	    <para>For example, to extract an up-to-date copy of | ||||
| 	      <filename>lib/libc/Makefile</filename> from a collection | ||||
| 	      of saved <application>CTM</application> deltas:</para> | ||||
| 
 | ||||
| 	    <screen>&prompt.root; <userinput>cd /directory/to/extract/to/</userinput> | ||||
| &prompt.root; <userinput>ctm -e '^lib/libc/Makefile' /directory/which/stores/the/deltas/src-xxx.*</userinput></screen> | ||||
| 
 | ||||
| 	    <para>For every file specified in a | ||||
| 	      <application>CTM</application> delta, | ||||
| 	      <option>-e</option> and <option>-x</option> are | ||||
| 	      applied in the order given on the command line.  A file | ||||
| 	      is processed by <application>CTM</application> only if | ||||
| 	      it is marked as eligible after all <option>-e</option> | ||||
| 	      and <option>-x</option> options are applied.</para> | ||||
| 	  </listitem> | ||||
| 	</varlistentry> | ||||
|       </variablelist> | ||||
|     </sect2> | ||||
| <!-- | ||||
| Comment out for now until these can be verified. | ||||
|     <sect2> | ||||
|       <title>Future Plans for <application>CTM</application></title> | ||||
| 
 | ||||
|       <para>Tons of them:</para> | ||||
| 
 | ||||
|       <itemizedlist> | ||||
| 	<listitem> | ||||
| 	  <para>Use some kind of authentication into the | ||||
| 	    <application>CTM</application> system, so as to allow | ||||
| 	    detection of spoofed <application>CTM</application> | ||||
| 	    updates.</para> | ||||
| 	</listitem> | ||||
| 
 | ||||
| 	<listitem> | ||||
| 	  <para>Clean up the options to | ||||
| 	    <application>CTM</application>, they became confusing and | ||||
| 	    counter intuitive.</para> | ||||
| 	</listitem> | ||||
|       </itemizedlist> | ||||
| 
 | ||||
|       <para>There is a sequence of deltas for the | ||||
| 	<literal>ports</literal> collection too, but interest has not | ||||
| 	been all that high yet.</para> | ||||
|     </sect2> | ||||
|     --> | ||||
|   </sect1> | ||||
| 
 | ||||
|   <sect1 xml:id="svn"> | ||||
|     <title>Using <application>Subversion</application></title> | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue