<?xml version="1.0" encoding="iso-8859-1"?>
<!--
     The FreeBSD Documentation Project

     $FreeBSD$
-->

<appendix id="mirrors">
  <title>Obtaining &os;</title>

  <sect1 id="mirrors-cdrom">
    <title>CDROM and DVD Publishers</title>

    <sect2>
      <title>CD and DVD Sets</title>

      <para>&os; CD and DVD sets are available from many online
	retailers:</para>

      <itemizedlist>
	<listitem>
	  <address>
	    <otheraddr>&os; Mall, Inc.</otheraddr>
	    <street>2420 Sand Creek Rd C-1 #347</street>
	    <city>Brentwood</city>,
	    <state>CA</state>
	    <postcode>94513</postcode>
	    <country>USA</country>
	    Phone: <phone>+1 925 240-6652</phone>
	    Fax: <fax>+1 925 674-0821</fax>
	    Email: <email>info@freebsdmall.com</email>
	    WWW: <otheraddr><ulink
		url="http://www.freebsdmall.com/"></ulink></otheraddr>
	  </address>
	</listitem>

	<listitem>
	  <address>
	    <otheraddr>Dr. Hinner EDV</otheraddr>
	    <street>Kochelseestr. 11</street>
	    <postcode>D-81371</postcode> <city>M&uuml;nchen</city>
	    <country>Germany</country>
	    Phone: <phone>(0177) 428 419 0</phone>
	    WWW: <otheraddr><ulink
		url="http://www.hinner.de/linux/freebsd.html"></ulink></otheraddr>
	  </address>
	</listitem>

	<listitem>
	  <address>
	    <otheraddr>Linux Distro UK</otheraddr>
	    <street>42 Wharfedale Road</street>
	    <city>Margate</city>
	    <postcode>CT9 2TB</postcode>
	    <country>United Kingdom</country>
	    WWW: <otheraddr><ulink
		url="https://linux-distro.co.uk/"></ulink></otheraddr>
	  </address>
	</listitem>

	<listitem>
	  <address>
	    <otheraddr>The Linux Emporium</otheraddr>
	    <street>The Techno Centre, Puma Way</street>
	    <city>Parkside</city>
	    <postcode>CV1 2TT</postcode>
	    <country>United Kingdom</country>
	    Phone: <phone>+44 (0)247 615 8121</phone>
	    Fax: <fax>+44 1491 837016</fax>
	    WWW: <otheraddr><ulink
		url="http://www.linuxemporium.co.uk/products/bsd/"></ulink></otheraddr>
	  </address>
	</listitem>

	<listitem>
	  <address>
	    <otheraddr>LinuxCenter.Ru</otheraddr>
	    <street>Galernaya Street, 55</street>
	    <city>Saint-Petersburg</city>
	    <postcode>190000</postcode>
	    <country>Russia</country>
	    Phone: <phone>+7-812-3125208</phone>
	    Email: <email>info@linuxcenter.ru</email>
	    WWW: <otheraddr><ulink
		url="http://linuxcenter.ru/shop/freebsd"></ulink></otheraddr>
	  </address>
	</listitem>
      </itemizedlist>
    </sect2>
  </sect1>

  <sect1 id="mirrors-ftp">
    <title>FTP Sites</title>

    <para>The official sources for &os; are available via anonymous
      FTP from a worldwide set of mirror sites.  The site
      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/"></ulink> is well
      connected and allows a large number of connections to it, but
      you are probably better off finding a <quote>closer</quote>
      mirror site (especially if you decide to set up some sort of
      mirror site).</para>

    <para>Additionally, &os; is available via anonymous FTP from the
      following mirror sites.  If you choose to obtain &os; via
      anonymous FTP, please try to use a site near you.  The mirror
      sites listed as <quote>Primary Mirror Sites</quote> typically
      have the entire &os; archive (all the currently available
      versions for each of the architectures) but you will probably
      have faster download times from a site that is in your country
      or region.  The regional sites carry the most recent versions
      for the most popular architecture(s) but might not carry the
      entire &os; archive.  All sites provide access via anonymous FTP
      but some sites also provide access via other methods.  The
      access methods available for each site are provided in
      parentheses after the hostname.</para>

    &chap.mirrors.ftp.index.inc;

    &chap.mirrors.lastmod.inc;

    &chap.mirrors.ftp.inc;
  </sect1>

  <sect1 id="anoncvs">
    <title>Anonymous CVS (Deprecated)</title>

    <sect2>
      <title>Warning</title>

      <warning>
	<para>CVS has been deprecated by the project, and its use is
	  not recommended.  
	  <ulink url="&url.books.handbook;/svn.html">Subversion</ulink>
	  should be used instead.</para>
      </warning>
    </sect2>
  </sect1>

  <sect1 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 has been
      developed for usage with &os;'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 contact the
      &a.ctm-users.name; mailing list for more information and if you
      wish to use <application>CTM</application> for other
      things.</para>

    <sect2>
      <title>Why Should I Use <application>CTM</application>?</title>

      <para><application>CTM</application> will give you a local copy
	of the &os; source trees.  There are a number of
	<quote>flavors</quote> of the tree available.  Whether you
	wish to track the entire CVS tree or just one of the branches,
	<application>CTM</application> can provide you the
	information.  If you are an active developer on &os;, but have
	lousy or non-existent TCP/IP connectivity, or simply wish to
	have the changes automatically sent to you,
	<application>CTM</application> was made for you.  You will
	need to obtain up to three deltas per day for the most active
	branches.  However, you should consider having them sent by
	automatic email.  The sizes of the updates are always kept as
	small as possible.  This is typically less than 5K, with an
	occasional (one in ten) being 10-50K and every now and then a
	large 100K+ or more coming around.</para>

      <para>You will also need to make yourself aware of the various
	caveats related to working directly from the development
	sources rather than a pre-packaged release.  This is
	particularly true if you choose the <quote>current</quote>
	sources.  It is recommended that you read <link
	  linkend="current">Staying current with &os;</link>.</para>
    </sect2>

    <sect2>
      <title>What Do I Need to Use
	<application>CTM</application>?</title>

      <para>You will need two things: The
	<application>CTM</application> program, and the initial deltas
	to feed it (to get up to <quote>current</quote>
	levels).</para>

      <para>The <application>CTM</application> program has been part
	of &os; ever since version 2.0 was released, and lives in
	<filename>/usr/src/usr.sbin/ctm</filename> if you have a copy
	of the source available.</para>

      <para>The <quote>deltas</quote> you feed
	<application>CTM</application> can be had two ways, FTP or
	email.  If you have general FTP access to the Internet then
	the following FTP sites support access to
	<application>CTM</application>:</para>

      <para><ulink
	  url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/"></ulink></para>

      <para>or see section <link
	  linkend="mirrors-ctm">mirrors</link>.</para>

      <para>FTP the relevant directory and fetch the
	<filename>README</filename> file, starting from there.</para>

      <para>If you wish to get your deltas via email:</para>

      <para>Subscribe to one of the
	<application>CTM</application> distribution lists.
	&a.ctm-src-cur.name; supports the entire Subversion tree.
	&a.ctm-src-cur.name; supports the head of the development
	branch.  &a.ctm-src-9.name; supports the 9.X release branch,
	etc..  (If you do not know how to subscribe yourself to a
	list, click on the list name above or go to
	&a.mailman.lists.link; and click on the list that you wish to
	subscribe to.  The list page should contain all of the
	necessary subscription instructions.)</para>

      <para>When you begin receiving your
	<application>CTM</application> updates in the mail, you may
	use the <command>ctm_rmail</command> program to unpack and
	apply them.  You can actually use the
	<command>ctm_rmail</command> program directly from a entry in
	<filename>/etc/aliases</filename> if you want to have the
	process run in a fully automated fashion.  Check the
	<command>ctm_rmail</command> manual page for more
	details.</para>

      <note>
	<para>No matter what method you use to get the
	  <application>CTM</application> deltas, you should subscribe
	  to the &a.ctm-announce.name; mailing list.  In the future,
	  this will be the only place where announcements concerning
	  the operations of the <application>CTM</application> system
	  will be posted.  Click on the list name above and follow the
	  instructions to subscribe to the list.</para>
      </note>
    </sect2>

    <sect2>
      <title>Using <application>CTM</application> for the First
	Time</title>

      <para>Before you can start using <application>CTM</application>
	deltas, you will need to get to a starting point for the
	deltas produced subsequently to it.</para>

      <para>First you should determine what you already have.
	Everyone can start from an <quote>empty</quote> directory.
	You must use an initial <quote>Empty</quote> delta to start
	off your <application>CTM</application> supported tree.  At
	some point it is intended that one of these
	<quote>started</quote> deltas be distributed on the CD for
	your convenience, however, this does not currently
	happen.</para>

      <para>Since the trees are many tens of megabytes, you should
	prefer to start from something already at hand.  If you have a
	-RELEASE CD, you can copy or extract an initial source from
	it.  This will save a significant transfer of data.</para>

      <para>You can recognize these <quote>starter</quote> deltas by
	the <literal>X</literal> appended to the number
	(<filename>src-cur.3210XEmpty.gz</filename> for instance).
	The designation following the <literal>X</literal> corresponds
	to the origin of your initial <quote>seed</quote>.
	<filename>Empty</filename> is an empty directory.  As a rule a
	base transition from <literal>Empty</literal> is produced
	every 100 deltas.  By the way, they are large! 70 to 80
	Megabytes of <command>gzip</command>'d data is common for the
	<filename>XEmpty</filename> deltas.</para>

      <para>Once you have picked a base delta to start from, you will
	also need all deltas with higher numbers following it.</para>
    </sect2>

    <sect2>
      <title>Using <application>CTM</application> in Your Daily
	Life</title>

      <para>To apply the deltas, simply say:</para>

      <screen>&prompt.root; <userinput>cd /where/ever/you/want/the/stuff</userinput>
&prompt.root; <userinput>ctm -v -v /where/you/store/your/deltas/src-xxx.*</userinput></screen>

      <para><application>CTM</application> understands deltas which
	have been put through <command>gzip</command>, so you do not
	need to <command>gunzip</command> them first, this saves disk
	space.</para>

      <para>Unless it feels very secure about the entire process,
	<application>CTM</application> will not touch your tree.  To
	verify a delta you can also use the <option>-c</option> flag
	and <application>CTM</application> 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.</para>

      <para>There are other options to <application>CTM</application>
	as well, see the manual pages or look in the sources for more
	information.</para>

      <para>That is really all there is to it.  Every time you get a
	new delta, just run it through <application>CTM</application>
	to keep your sources up to date.</para>

      <para>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 <command>fdwrite</command> to make a
	copy.</para>
    </sect2>

    <sect2>
      <title>Keeping Your Local Changes</title>

      <para>As a developer one would like to experiment with and
	change files in the source tree.
	<application>CTM</application> supports local modifications in
	a limited way: before checking for the presence of a file
	<filename>foo</filename>, it first looks for
	<filename>foo.ctm</filename>.  If this file exists,
	<application>CTM</application> will operate on it instead of
	<filename>foo</filename>.</para>

      <para>This behavior gives us a simple way to maintain local
	changes: simply copy the files you plan to modify to the
	corresponding file names with a <filename>.ctm</filename>
	suffix.  Then you can freely hack the code, while
	<application>CTM</application> keeps the
	<filename>.ctm</filename> file up-to-date.</para>
    </sect2>

    <sect2>
      <title>Other Interesting <application>CTM</application>
	Options</title>

      <sect3>
	<title>Finding Out Exactly What Would Be Touched by an
	  Update</title>

	<para>You can determine the list of changes that
	  <application>CTM</application> will make on your source
	  repository using the <option>-l</option> option to
	  <application>CTM</application>.</para>

	<para>This is useful if you would like to keep logs of the
	  changes, pre- or post- process the modified files in any
	  manner, or just are feeling a tad paranoid.</para>
      </sect3>

      <sect3>
	<title>Making Backups Before Updating</title>

	<para>Sometimes you may want to backup all the files that
	  would be changed by a <application>CTM</application>
	  update.</para>

	<para>Specifying the <option>-B backup-file</option> option
	  causes <application>CTM</application> to backup all files
	  that would be touched by a given
	  <application>CTM</application> delta to
	  <filename>backup-file</filename>.</para>
      </sect3>

      <sect3>
	<title>Restricting the Files Touched by an Update</title>

	<para>Sometimes you would be interested in restricting the
	  scope of a given <application>CTM</application> update, or
	  may be interested in extracting just a few files from a
	  sequence of deltas.</para>

	<para>You can control the list of files that
	  <application>CTM</application> would operate on by
	  specifying filtering regular expressions using the
	  <option>-e</option> and <option>-x</option> options.</para>

	<para>For example, to extract an up-to-date copy of
	  <filename>lib/libc/Makefile</filename> from your collection
	  of saved <application>CTM</application> deltas, run the
	  commands:</para>

	<screen>&prompt.root; <userinput>cd /where/ever/you/want/to/extract/it/</userinput>
&prompt.root; <userinput>ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*</userinput></screen>

	<para>For every file specified in a
	  <application>CTM</application> delta, the
	  <option>-e</option> and <option>-x</option> options are
	  applied in the order given on the command line.  The file is
	  processed by <application>CTM</application> only if it is
	  marked as eligible after all the <option>-e</option> and
	  <option>-x</option> options are applied to it.</para>
      </sect3>
    </sect2>

    <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>
    </sect2>

    <sect2>
      <title>Miscellaneous Stuff</title>

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

    <sect2 id="mirrors-ctm">
      <title>CTM Mirrors</title>

      <para><link linkend="ctm">CTM</link>/&os; is available via
	anonymous FTP from the following mirror sites.  If you choose
	to obtain <application>CTM</application> via anonymous FTP,
	please try to use a site near you.</para>

      <para>In case of problems, please contact the &a.ctm-users.name;
	mailing list.</para>

      <variablelist>
	<varlistentry>
	  <term>California, Bay Area, official source</term>

	  <listitem>
	    <itemizedlist>
	      <listitem>
		<para><ulink
		    url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
	      </listitem>
	    </itemizedlist>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>South Africa, backup server for old deltas</term>

	  <listitem>
	    <itemizedlist>
	      <listitem>
		<para><ulink
		    url="ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/"></ulink></para>
	      </listitem>
	    </itemizedlist>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Taiwan/R.O.C.</term>

	  <listitem>
	    <itemizedlist>
	      <listitem>
		<para><ulink
		    url="ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
	      </listitem>

	      <listitem>
		<para><ulink
		    url="ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
	      </listitem>

	      <listitem>
		<para><ulink
		    url="ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
	      </listitem>
	    </itemizedlist>
	  </listitem>
	</varlistentry>
      </variablelist>

      <para>If you did not find a mirror near to you or the mirror is
	incomplete, try to use a search engine such as <ulink
	  url="http://www.alltheweb.com/">alltheweb</ulink>.</para>
    </sect2>
  </sect1>

  <sect1 id="svn">
    <title>Using <application>Subversion</application></title>

    <indexterm>
      <primary>Subversion</primary>
    </indexterm>

    <sect2 id="svn-intro">
      <title>Introduction</title>

      <para>As of July 2012, &os; uses <ulink
	  url="http://subversion.apache.org/">Subversion</ulink>
	(<emphasis>svn</emphasis>) as the primary version control
	system for storing all of &os;'s source code, documentation,
	and the Ports Collection.</para>

      <note>
	<para>Subversion is generally a developer tool.  Most users
	  should use <link
	  linkend="updating-upgrading-freebsdupdate">FreeBSD
	    Update</link> to update the &os; base system, and <link
	  linkend="updating-upgrading-portsnap">Portsnap</link> to
	  update the &os; Ports Collection.</para>
      </note>

      <para>In <application>Subversion</application>, URLs are used to
	designate a repository, taking the form of
	<replaceable>protocol://hostname/path</replaceable>.  Mirrors
	may support different protocols as specified below.  The first
	component of the path is the &os; repository to access.  There
	are three different repositories, <literal>base</literal> for
	the &os; base system source code, <literal>ports</literal> for
	the Ports Collection, and <literal>doc</literal> for
	documentation.  For example, the URL
	<literal>svn://svn0.us-east.FreeBSD.org/ports/head/</literal>
	specifies the main branch of the ports repository on the
	<hostid role="fqdn">svn0.us-east.FreeBSD.org</hostid> mirror,
	using the <literal>svn</literal> protocol.</para>
    </sect2>

    <sect2 id="svn-install">
      <title>Installation</title>

      <para><application>Subversion</application> must be installed
	before it can be used to check out the contents of any of the
	repositories.  If a copy of the ports tree is already present,
	one can install <application>Subversion</application> like
	this:</para>

      <screen>&prompt.root; <userinput>cd /usr/ports/devel/subversion</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

      <para>If the ports tree is not available,
	<application>Subversion</application> can be installed as a
	package:</para>

      <screen>&prompt.root; <userinput>pkg_add -r subversion</userinput></screen>

      <para>If <application>pkgng</application> is being used to
	manage packages, <application>Subversion</application> can be
	installed with it instead:</para>

      <screen>&prompt.root; <userinput>pkg install devel/subversion</userinput></screen>
    </sect2>

    <sect2 id="svn-usage">
      <title>Running <application>Subversion</application></title>

      <para>The <command>svn</command> command is used to fetch a
	clean copy of the sources into a local directory.  The files
	in this directory are called a <emphasis>local working
	  copy</emphasis>.</para>

      <warning>
	<para>If the local directory already exists but was not
	  created by <command>svn</command>, rename or delete it
	  before the checkout.  Checkout over an existing
	  non-<command>svn</command> directory can cause conflicts
	  between the existing files and those brought in from the
	  repository.</para>
      </warning>

      <para>A checkout from a given repository is performed with a
	command like this:</para>

      <screen>&prompt.root; <userinput>svn checkout <replaceable>svn-mirror</replaceable>/<replaceable>repository</replaceable>/<replaceable>branch</replaceable> <replaceable>lwcdir</replaceable></userinput></screen>

      <para>where:</para>

      <itemizedlist>
	<listitem>
	  <para><replaceable>svn-mirror</replaceable> is a URL for one
	    of the <link linkend="svn-mirrors">Subversion mirror
	      sites</link>.</para>
	</listitem>

	<listitem>
	  <para><replaceable>repository</replaceable> is one of the
	    Project repositories, i.e., <literal>base</literal>,
	    <literal>ports</literal>, or
	    <literal>doc</literal>.</para>
	</listitem>

	<listitem>
	  <para><replaceable>branch</replaceable> depends on the
	    repository used.  <literal>ports</literal> and
	    <literal>doc</literal> are mostly updated in the
	    <literal>head</literal> branch, while
	    <literal>base</literal> maintains the latest version of
	    -CURRENT under <literal>head</literal> and the respective
	    latest versions of the -STABLE branches under
	    <literal>stable/8</literal> (for
	    8.<replaceable>x</replaceable>) and
	    <literal>stable/9</literal>
	    (9.<replaceable>x</replaceable>).</para>
	</listitem>

	<listitem>
	  <para><replaceable>lwcdir</replaceable> is the target
	    directory where the contents of the specified branch
	    should be placed.  This is usually
	    <filename class="directory">/usr/ports</filename> for
	    <literal>ports</literal>,
	    <filename class="directory">/usr/src</filename> for
	    <literal>base</literal>, and
	    <filename class="directory">/usr/doc</filename> for
	    <literal>doc</literal>.</para>
	</listitem>
      </itemizedlist>

      <para>This example checks out the Ports Collection from the
	western US repository using the <acronym>HTTPS</acronym>
	protocol, placing the local working copy in
	<filename class="directory">/usr/ports</filename>.  If
	<filename class="directory">/usr/ports</filename> is already
	present but was not created by <command>svn</command>,
	remember to rename or delete it before the checkout.</para>

      <screen>&prompt.root; <userinput>svn checkout <replaceable>https://svn0.us-west.FreeBSD.org</replaceable>/ports/head /usr/ports</userinput></screen>

      <para>Because the initial checkout has to download the full
	branch of the remote repository, it can take a while.  Please
	be patient.</para>

      <para>After the initial checkout, the local working copy can be
	updated by running:</para>

      <screen>&prompt.root; <userinput>svn update <replaceable>lwcdir</replaceable></userinput></screen>

      <para>To update
	<filename class="directory">/usr/ports</filename> created in
	the example above, use:</para>

      <screen>&prompt.root; <userinput>svn update /usr/ports</userinput></screen>

      <para>The update is much quicker than a checkout, only
	transferring files that have changed.</para>

      <para>An alternate way of updating the local working copy after
	checkout is provided by the <filename>Makefile</filename> in
	the <filename class="directory">/usr/ports</filename>,
	<filename class="directory">/usr/src</filename>, and
	<filename class="directory">/usr/doc</filename> directories.
	Set <makevar>SVN_UPDATE</makevar> and use the
	<maketarget>update</maketarget> target.  For example, to
	update <filename class="directory">/usr/src</filename>:</para>

      <screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make update SVN_UPDATE=yes</userinput></screen>
    </sect2>

    <sect2>
      <title>For More Information</title>

      <para>For other information about using
	<application>Subversion</application>, please see the
	<quote>Subversion Book</quote>, titled
	<ulink url="http://svnbook.red-bean.com/">Version Control with
	  Subversion</ulink>, or the
	<ulink url="http://subversion.apache.org/docs/">Subversion
	  Documentation</ulink>.</para>
    </sect2>
  </sect1>

  <sect1 id="svn-mirrors">
    <title><application>Subversion</application> Mirror Sites</title>

    <indexterm>
      <primary>Subversion Repository</primary>
      <secondary>Mirror Sites</secondary>
    </indexterm>

    <para>All mirrors carry all repositories.</para>

    <para>The master &os; <application>Subversion</application>
      server, <hostid role="fqdn">svn.FreeBSD.org</hostid>, is
      publicly accessible, read-only.  That may change in the future,
      so users are encouraged to use one of the official mirrors.  To
      view the &os; <application>Subversion</application> repositories
      through a browser, use <ulink
	url="http://svnweb.FreeBSD.org/">http://svnweb.FreeBSD.org/</ulink>.</para>

    <note>
      <para>The &os; svn mirror network is still in its early days,
	and will likely change.  Do not count on this list of mirrors
	being static.  In particular, the SSL certificates of the
	servers will likely change at some point.</para>
    </note>

    <informaltable>
      <tgroup cols="4">
	<colspec colwidth="3*"/>
	<colspec colwidth="1*"/>
	<colspec colwidth="2*"/>
	<colspec colwidth="10*"/>
	<thead>
	  <row>
	    <entry>Name</entry>

	    <entry>Protocols</entry>

	    <entry>Location</entry>

	    <entry>SSL fingerprint</entry>
	  </row>
	</thead>

	<tbody>
	  <row>
	    <entry><hostid
		role="fqdn">svn0.us-west.FreeBSD.org</hostid></entry>

	    <entry>svn, <ulink
		url="http://svn0.us-west.FreeBSD.org/">http</ulink>,
	      <ulink
		url="https://svn0.us-west.FreeBSD.org/">https</ulink></entry>

	    <entry>USA, California</entry>

	    <entry>SHA1
	      <literal>79:35:8F:CA:6D:34:D9:30:44:D1:00:AF:33:4D:E6:11:44:4D:15:EC</literal></entry>
	  </row>

	  <row>
	    <entry><hostid
		role="fqdn">svn0.us-east.FreeBSD.org</hostid></entry>

	    <entry>svn, <ulink
		url="http://svn0.us-east.FreeBSD.org/">http</ulink>,
	      <ulink
		url="https://svn0.us-east.FreeBSD.org/">https</ulink></entry>

	    <entry>USA, New Jersey</entry>

	    <entry>SHA1
	      <literal>06:D1:23:DE:5E:7A:F7:2B:7A:7E:74:95:5F:54:8D:5C:B0:D6:2E:8F</literal></entry>
	  </row>
	</tbody>
      </tgroup>
    </informaltable>

    <para><acronym>HTTPS</acronym> is the preferred protocol,
      providing protection against another computer pretending to be
      the &os; mirror (commonly known as a <quote>man in the
	middle</quote> attack) or otherwise trying to send bad content
      to the end user.</para>

    <para>On the first connection to an <acronym>HTTPS</acronym>
      mirror, the user will be asked to verify the server
      <emphasis>fingerprint</emphasis>:</para>

    <screen>Error validating server certificate for 'https://svn0.us-west.freebsd.org:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: svnmir.ysv.FreeBSD.org
 - Valid: from Fri, 24 Aug 2012 22:04:04 GMT until Sat, 24 Aug 2013 22:04:04 GMT
 - Issuer: clusteradm, FreeBSD.org, CA, US
 - Fingerprint: 79:35:8f:ca:6d:34:d9:30:44:d1:00:af:33:4d:e6:11:44:4d:15:ec
(R)eject, accept (t)emporarily or accept (p)ermanently?</screen>

    <para>Compare the fingerprint shown to those listed in the table
      above.  If the fingerprint matches, the server security
      certificate can be accepted temporarily or permanently.  A
      temporary certificate will expire after a single session with
      the server, and the verification step will be repeated on the
      next connection.  Accepting the certificate permanently will
      store the authentication credentials in
      <filename class="directory">~/.subversion/auth/</filename> and
      the user will not be asked to verify the fingerprint again until
      the certificate expires.</para>

    <para>If <acronym>HTTPS</acronym> cannot be used due to firewall
      or other problems, <literal>SVN</literal> is the next choice,
      with slightly faster transfers.  When neither can be used, use
      <acronym>HTTP</acronym>.</para>
  </sect1>

  <sect1 id="cvsup">
    <title>Using CVSup (Deprecated)</title>

    <sect2 id="cvsup-intro">
      <title>Introduction</title>

      <warning>
	<para><command>cvsup</command> has been deprecated by the
	  project, and its use is not recommended.
	  <application>Subversion</application> should be used
	  instead.</para>
      </warning>

      <para><application>CVSup</application> is a software package for
	distributing and updating source trees from a master CVS
	repository on a remote server host.  The &os; sources are
	maintained in a CVS repository on a central development
	machine in California.  With <application>CVSup</application>,
	&os; users can easily keep their own source trees up to
	date.</para>

      <para><application>CVSup</application> uses the so-called
	<emphasis>pull</emphasis> model of updating.  Under the pull
	model, each client asks the server for updates, if and when
	they are wanted.  The server waits passively for update
	requests from its clients.  Thus all updates are instigated by
	the client.  The server never sends unsolicited updates.
	Users must either run the <application>CVSup</application>
	client manually to get an update, or they must set up a
	<command>cron</command> job to run it automatically on a
	regular basis.</para>

      <para>The term <application>CVSup</application>, capitalized
	just so, refers to the entire software package.  Its main
	components are the client <command>cvsup</command> which runs
	on each user's machine, and the server
	<command>cvsupd</command> which runs at each of the &os;
	mirror sites.</para>

      <note>
	<para>The <application>csup</application> utility is a rewrite
	  of the <application>CVSup</application> software in C.  Its
	  biggest advantage is, that it is faster and does not depend
	  on the Modula-3 language, thus you do not need to install it
	  as a requirement.  Moreover you can use it out-of-the-box,
	  since it is included in the base system.  If you decided to
	  use <application>csup</application>, just skip the steps on
	  the installation of <application>CVSup</application> and
	  substitute the references of
	  <application>CVSup</application> with
	  <application>csup</application> while following the
	  remainder of this article.</para>
      </note>
    </sect2>

    <sect2 id="cvsup-install">
      <title>Installation</title>

      <para>The easiest way to install
	<application>CVSup</application> is to use the precompiled
	<filename role="package">net/cvsup</filename> package from the
	&os; <link linkend="ports">packages collection</link>. If you
	prefer to build <application>CVSup</application> from source,
	you can use the <filename role="package">net/cvsup</filename>
	port instead.  But be forewarned: the <filename
	  role="package">net/cvsup</filename> port depends on the
	Modula-3 system, which takes a substantial amount of time and
	disk space to download and build.</para>

      <note>
	<para>If you are going to be using
	  <application>CVSup</application> on a machine which will not
	  have <application>&xorg;</application> installed, such as a
	  server, be sure to use the port which does not include the
	  <application>CVSup</application> <acronym>GUI</acronym>,
	  <filename
	    role="package">net/cvsup-without-gui</filename>.</para>
      </note>
    </sect2>

    <sect2 id="cvsup-config">
      <title>CVSup Configuration</title>

      <para><application>CVSup</application>'s operation is controlled
	by a configuration file called the
	<filename>supfile</filename>.  There are some sample
	<filename>supfiles</filename> in the directory <ulink
	  url="file://localhost/usr/share/examples/cvsup/"><filename>/usr/share/examples/cvsup/</filename></ulink>.</para>

      <para>The information in a <filename>supfile</filename> answers
	the following questions for
	<application>CVSup</application>:</para>

      <itemizedlist>
	<listitem>
	  <para><link linkend="cvsup-config-files">Which files do you
	      want to receive?</link></para>
	</listitem>

	<listitem>
	  <para><link linkend="cvsup-config-vers">Which versions of
	      them do you want?</link></para>
	</listitem>

	<listitem>
	  <para><link linkend="cvsup-config-where">Where do you want
	      to get them from?</link></para>
	</listitem>

	<listitem>
	  <para><link linkend="cvsup-config-dest">Where do you want to
	      put them on your own machine?</link></para>
	</listitem>

	<listitem>
	  <para><link linkend="cvsup-config-status">Where do you want
	      to put your status files?</link></para>
	</listitem>
      </itemizedlist>

      <para>In the following sections, we will construct a typical
	<filename>supfile</filename> by answering each of these
	questions in turn.  First, we describe the overall structure
	of a <filename>supfile</filename>.</para>

      <para>A <filename>supfile</filename> is a text file.  Comments
	begin with <literal>#</literal> and extend to the end of the
	line.  Lines that are blank and lines that contain only
	comments are ignored.</para>

      <para>Each remaining line describes a set of files that the user
	wishes to receive.  The line begins with the name of a
	<quote>collection</quote>, a logical grouping of files defined
	by the server.  The name of the collection tells the server
	which files you want.  After the collection name come zero or
	more fields, separated by white space.  These fields answer
	the questions listed above.  There are two types of fields:
	flag fields and value fields.  A flag field consists of a
	keyword standing alone, e.g., <literal>delete</literal> or
	<literal>compress</literal>.  A value field also begins with a
	keyword, but the keyword is followed without intervening white
	space by <literal>=</literal> and a second word.  For example,
	<literal>release=cvs</literal> is a value field.</para>

      <para>A <filename>supfile</filename> typically specifies more
	than one collection to receive.  One way to structure a
	<filename>supfile</filename> is to specify all of the relevant
	fields explicitly for each collection.  However, that tends to
	make the <filename>supfile</filename> lines quite long, and it
	is inconvenient because most fields are the same for all of
	the collections in a <filename>supfile</filename>.
	<application>CVSup</application> provides a defaulting
	mechanism to avoid these problems.  Lines beginning with the
	special pseudo-collection name <literal>*default</literal> can
	be used to set flags and values which will be used as defaults
	for the subsequent collections in the
	<filename>supfile</filename>.  A default value can be
	overridden for an individual collection, by specifying a
	different value with the collection itself.  Defaults can also
	be changed or augmented in mid-supfile by additional
	<literal>*default</literal> lines.</para>

      <para>With this background, we will now proceed to construct a
	<filename>supfile</filename> for receiving and updating the
	main source tree of
	<link linkend="current">&os;-CURRENT</link>.</para>

      <itemizedlist>
	<listitem>
	  <para><anchor id="cvsup-config-files"/>Which files do you
	    want to receive?</para>

	  <para>The files available via
	    <application>CVSup</application> are organized into named
	    groups called <quote>collections</quote>.  The collections
	    that are available are described in the
	    <link linkend="cvsup-collec">following section</link>.  In
	    this example, we wish to receive the entire main source
	    tree for the &os; system.  There is a single large
	    collection <literal>src-all</literal> which will give us
	    all of that.  As a first step toward constructing our
	    <filename>supfile</filename>, we simply list the
	    collections, one per line (in this case, only one
	    line):</para>

	  <programlisting>src-all</programlisting>
	</listitem>

	<listitem>
	  <para><anchor id="cvsup-config-vers"/>Which version(s) of
	    them do you want?</para>

	  <para>With <application>CVSup</application>, you can receive
	    virtually any version of the sources that ever existed.
	    That is possible because the
	    <application>cvsupd</application> server works directly
	    from the CVS repository, which contains all of the
	    versions.  You specify which one of them you want using
	    the <literal>tag=</literal> and <option>date=</option>
	    value fields.</para>

	  <warning>
	    <para>Be very careful to specify any
	      <literal>tag=</literal> fields correctly.  Some tags are
	      valid only for certain collections of files.  If you
	      specify an incorrect or misspelled tag,
	      <application>CVSup</application> will delete files which
	      you probably do not want deleted.  In particular, use
	      <emphasis>only </emphasis> <literal>tag=.</literal> for
	      the <literal>ports-*</literal> collections.</para>
	  </warning>

	  <para>The <literal>tag=</literal> field names a symbolic tag
	    in the repository.  There are two kinds of tags, revision
	    tags and branch tags.  A revision tag refers to a specific
	    revision.  Its meaning stays the same from day to day.  A
	    branch tag, on the other hand, refers to the latest
	    revision on a given line of development, at any given
	    time.  Because a branch tag does not refer to a specific
	    revision, it may mean something different tomorrow than it
	    means today.</para>

	  <para><xref linkend="cvs-tags"/> contains branch tags that
	    users might be interested in.  When specifying a tag in
	    <application>CVSup</application>'s configuration file, it
	    must be preceded with <literal>tag=</literal>
	    (<literal>RELENG_8</literal> will become
	    <literal>tag=RELENG_8</literal>).
	    Keep in mind that only the <literal>tag=.</literal> is
	    relevant for the Ports Collection.</para>

	  <warning>
	    <para>Be very careful to type the tag name exactly as
	      shown.  <application>CVSup</application> cannot
	      distinguish between valid and invalid tags.  If you
	      misspell the tag, <application>CVSup</application> will
	      behave as though you had specified a valid tag which
	      happens to refer to no files at all.  It will delete
	      your existing sources in that case.</para>
	  </warning>

	  <para>When you specify a branch tag, you normally receive
	    the latest versions of the files on that line of
	    development.  If you wish to receive some past version,
	    you can do so by specifying a date with the
	    <option>date=</option> value field.  The &man.cvsup.1;
	    manual page explains how to do that.</para>

	  <para>For our example, we wish to receive &os;-CURRENT.  We
	    add this line at the beginning of our
	    <filename>supfile</filename>:</para>

	  <programlisting>*default tag=.</programlisting>

	  <para>There is an important special case that comes into
	    play if you specify neither a <literal>tag=</literal>
	    field nor a <literal>date=</literal> field.  In that case,
	    you receive the actual RCS files directly from the
	    server's CVS repository, rather than receiving a
	    particular version.  Developers generally prefer this mode
	    of operation.  By maintaining a copy of the repository
	    itself on their systems, they gain the ability to browse
	    the revision histories and examine past versions of files.
	    This gain is achieved at a large cost in terms of disk
	    space, however.</para>
	</listitem>

	<listitem>
	  <para><anchor id="cvsup-config-where"/>Where do you want to
	    get them from?</para>

	  <para>We use the <literal>host=</literal> field to tell
	    <command>cvsup</command> where to obtain its updates.  Any
	    of the
	    <link linkend="cvsup-mirrors">CVSup mirror sites</link>
	    will do, though you should try to select one that is close
	    to you in cyberspace.  In this example we will use a
	    fictional &os; distribution site,
	    <hostid role="fqdn">cvsup99.FreeBSD.org</hostid>:</para>

	  <programlisting>*default host=cvsup99.FreeBSD.org</programlisting>

	  <para>You will need to change the host to one that actually
	    exists before running <application>CVSup</application>.
	    On any particular run of <command>cvsup</command>, you can
	    override the host setting on the command line, with
	    <option>-h
	      <replaceable>hostname</replaceable></option>.</para>
	</listitem>

	<listitem>
	  <para><anchor id="cvsup-config-dest"/>Where do you want to
	    put them on your own machine?</para>

	  <para>The <literal>prefix=</literal> field tells
	    <command>cvsup</command> where to put the files it
	    receives.  In this example, we will put the source files
	    directly into our main source tree,
	    <filename>/usr/src</filename>.  The
	    <filename>src</filename> directory is already implicit in
	    the collections we have chosen to receive, so this is the
	    correct specification:</para>

	  <programlisting>*default prefix=/usr</programlisting>
	</listitem>

	<listitem>
	  <para><anchor id="cvsup-config-status"/>Where should
	    <command>cvsup</command> maintain its status files?</para>

	  <para>The <application>CVSup</application> client maintains
	    certain status files in what is called the
	    <quote>base</quote> directory.  These files help
	    <application>CVSup</application> to work more efficiently,
	    by keeping track of which updates you have already
	    received.  We will use the standard base directory,
	    <filename>/var/db</filename>:</para>

	  <programlisting>*default base=/var/db</programlisting>

	  <para>If your base directory does not already exist, now
	    would be a good time to create it.  The
	    <command>cvsup</command> client will refuse to run if the
	    base directory does not exist.</para>
	</listitem>

	<listitem>
	  <para>Miscellaneous <filename>supfile</filename>
	    settings:</para>

	  <para>There is one more line of boiler plate that normally
	    needs to be present in the
	    <filename>supfile</filename>:</para>

	  <programlisting>*default release=cvs delete use-rel-suffix compress</programlisting>

	  <para><literal>release=cvs</literal> indicates that the
	    server should get its information out of the main &os; CVS
	    repository.  This is virtually always the case, but there
	    are other possibilities which are beyond the scope of this
	    discussion.</para>

	  <para><literal>delete</literal> gives
	    <application>CVSup</application> permission to delete
	    files.  You should always specify this, so that
	    <application>CVSup</application> can keep your source tree
	    fully up-to-date.  <application>CVSup</application> is
	    careful to delete only those files for which it is
	    responsible.  Any extra files you happen to have will be
	    left strictly alone.</para>

	  <para><literal>use-rel-suffix</literal> is ... arcane.  If
	    you really want to know about it, see the &man.cvsup.1;
	    manual page.  Otherwise, just specify it and do not worry
	    about it.</para>

	  <para><literal>compress</literal> enables the use of
	    gzip-style compression on the communication channel.  If
	    your network link is T1 speed or faster, you probably
	    should not use compression.  Otherwise, it helps
	    substantially.</para>
	</listitem>

	<listitem>
	  <para>Putting it all together:</para>

	  <para>Here is the entire <filename>supfile</filename> for
	    our example:</para>

	  <programlisting>*default tag=.
*default host=cvsup99.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*default release=cvs delete use-rel-suffix compress

src-all</programlisting>
	</listitem>
      </itemizedlist>

      <sect3 id="cvsup-refuse-file">
	<title>The <filename>refuse</filename> File</title>

	<para>As mentioned above, <application>CVSup</application>
	  uses a <emphasis>pull method</emphasis>.  Basically, this
	  means that you connect to the
	  <application>CVSup</application> server, and it says,
	  <quote>Here is what you can download from me...</quote>, and
	  your client responds
	  <quote>OK, I will take this, this, this, and this.</quote>
	  In the default configuration, the
	  <application>CVSup</application> client will take every file
	  associated with the collection and tag you chose in the
	  configuration file.  In order to download a partial tree,
	  use the <filename>refuse</filename> file.</para>

	<para>The <filename>refuse</filename> file tells
	  <application>CVSup</application> that it should not take
	  every single file from a collection; in other words, it
	  tells the client to <emphasis>refuse</emphasis> certain
	  files from the server.  The <filename>refuse</filename> file
	  can be found (or, if you do not yet have one, should be
	  placed) in
	  <filename><replaceable>base</replaceable>/sup/</filename>.
	  <replaceable>base</replaceable> is defined in your
	  <filename>supfile</filename>; our defined
	  <replaceable>base</replaceable> is
	  <filename>/var/db</filename>, which means that by default
	  the <filename>refuse</filename> file is
	  <filename>/var/db/sup/refuse</filename>.</para>

	<para>The <filename>refuse</filename> file has a very simple
	  format; it simply contains the names of files or directories
	  that you do not wish to download.  For example:</para>

	<programlisting>bin/
usr.bin/</programlisting>

	<para>Users who are on
	  slow links or pay by the minute for their Internet
	  connection will be able to save time as they will
	  no longer need to download files that they will never use.
	  For more information on <filename>refuse</filename> files
	  and other neat features of <application>CVSup</application>,
	  please view its manual page.</para>
      </sect3>
    </sect2>

    <sect2>
      <title>Running <application>CVSup</application></title>

      <para>You are now ready to try an update.  The command line for
	doing this is quite simple:</para>

      <screen>&prompt.root; <userinput>cvsup <replaceable>supfile</replaceable></userinput></screen>

      <para>where
	<filename><replaceable>supfile</replaceable></filename> is of
	course the name of the <filename>supfile</filename> you have
	just created.  Assuming you are running under X11,
	<command>cvsup</command> will display a GUI window with some
	buttons to do the usual things.  Press the
	<guibutton>go</guibutton> button, and watch it run.</para>

      <para>Since you are updating your actual
	<filename>/usr/src</filename> tree in this example, you will
	need to run the program as <username>root</username> so that
	<command>cvsup</command> has the permissions it needs to
	update your files.  Having just created your configuration
	file, and having never used this program before, that might
	understandably make you nervous.  There is an easy way to do a
	trial run without touching your precious files.  Just create
	an empty directory somewhere convenient, and name it as an
	extra argument on the command line:</para>

      <screen>&prompt.root; <userinput>mkdir /var/tmp/dest</userinput>
&prompt.root; <userinput>cvsup supfile /var/tmp/dest</userinput></screen>

      <para>The directory you specify will be used as the destination
	directory for all file updates.
	<application>CVSup</application> will examine your usual files
	in <filename>/usr/src</filename>, but it will not modify or
	delete any of them.  Any file updates will instead land in
	<filename>/var/tmp/dest/usr/src</filename>.
	<application>CVSup</application> will also leave its base
	directory status files untouched when run this way.  The new
	versions of those files will be written into the specified
	directory.  As long as you have read access to
	<filename>/usr/src</filename>, you do not even need to be
	<username>root</username> to perform this kind of trial
	run.</para>

      <para>If you are not running X11 or if you just do not like
	GUIs, you should add a couple of options to the command line
	when you run <command>cvsup</command>:</para>

      <screen>&prompt.root; <userinput>cvsup -g -L 2 <replaceable>supfile</replaceable></userinput></screen>

      <para>The <option>-g</option> tells
	<application>CVSup</application> not to use its GUI.  This is
	automatic if you are not running X11, but otherwise you have
	to specify it.</para>

      <para>The <option>-L 2</option> tells
	<application>CVSup</application> to print out the
	details of all the file updates it is doing.  There are three
	levels of verbosity, from <option>-L 0</option> to
	<option>-L 2</option>.  The default is 0, which means total
	silence except for error messages.</para>

      <para>There are plenty of other options available.  For a brief
	list of them, type <command>cvsup -H</command>.  For more
	detailed descriptions, see the manual page.</para>

      <para>Once you are satisfied with the way updates are working,
	you can arrange for regular runs of
	<application>CVSup</application> using &man.cron.8;.
	Obviously, you should not let <application>CVSup</application>
	use its GUI when running it from &man.cron.8;.</para>
    </sect2>

    <sect2 id="cvsup-collec">
      <title><application>CVSup</application> File Collections</title>

      <para>The file collections available via
	<application>CVSup</application> are organized hierarchically.
	There are a few large collections, and they are divided into
	smaller sub-collections.  Receiving a large collection is
	equivalent to receiving each of its sub-collections.  The
	hierarchical relationships among collections are reflected by
	the use of indentation in the list below.</para>

      <para>The most commonly used collection is
	<literal>src-all</literal>. </para>

      <variablelist>
	<varlistentry>
	  <term><literal>cvs-all release=cvs</literal></term>

	  <listitem>
	    <para>The main &os; CVS repository, including the
	      cryptography code.</para>

	    <variablelist>
	      <varlistentry>
		<term><literal>distrib release=cvs</literal></term>

		<listitem>
		  <para>Files related to the distribution and
		    mirroring of &os;.</para>
		</listitem>
	      </varlistentry>

	      <varlistentry>
		<term>
		  <literal>projects-all release=cvs</literal>
		</term>

		<listitem>
		  <para>Sources for the &os; projects
		    repository.</para>
		</listitem>
	      </varlistentry>

	      <varlistentry>
		<term><literal>src-all release=cvs</literal></term>

		<listitem>
		  <para>The main &os; sources, including the
		    cryptography code.</para>

		  <variablelist>
		    <varlistentry>
		      <term><literal>src-base
			  release=cvs</literal></term>

		      <listitem>
			<para>Miscellaneous files at the top of
			  <filename>/usr/src</filename>.</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-bin
			  release=cvs</literal></term>

		      <listitem>
			<para>User utilities that may be needed in
			  single-user mode
			  (<filename>/usr/src/bin</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-cddl
			  release=cvs</literal></term>

		      <listitem>
			<para>Utilities and libraries covered by the
			  CDDL license
			  (<filename>/usr/src/cddl</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-contrib
			  release=cvs</literal></term>

		      <listitem>
			<para>Utilities and libraries from outside the
			  &os; project, used relatively unmodified
			  (<filename>/usr/src/contrib</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term>
			<literal>src-crypto release=cvs</literal>
		      </term>

		      <listitem>
			<para>Cryptography utilities and libraries
			  from outside the &os; project, used
			  relatively unmodified

			  (<filename>/usr/src/crypto</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term>
			<literal>src-eBones release=cvs</literal>
		      </term>

		      <listitem>
			<para>Kerberos and DES
			  (<filename>/usr/src/eBones</filename>).  Not
			  used in current releases of &os;.</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-etc
			  release=cvs</literal></term>

		      <listitem>
			<para>System configuration files
			  (<filename>/usr/src/etc</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-games
			  release=cvs</literal></term>

		      <listitem>
			<para>Games
			  (<filename>/usr/src/games</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-gnu
			  release=cvs</literal></term>

		      <listitem>
			<para>Utilities covered by the GNU Public
			  License
			  (<filename>/usr/src/gnu</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-include
			  release=cvs</literal></term>

		      <listitem>
			<para>Header files
			  (<filename>/usr/src/include</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-kerberos5
			  release=cvs</literal></term>

		      <listitem>
			<para>Kerberos5 security package
			  (<filename>/usr/src/kerberos5</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-kerberosIV
			  release=cvs</literal></term>

		      <listitem>
			<para>KerberosIV security package
			  (<filename>/usr/src/kerberosIV</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-lib
			  release=cvs</literal></term>

		      <listitem>
			<para>Libraries
			  (<filename>/usr/src/lib</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-libexec
			  release=cvs</literal></term>

		      <listitem>
			<para>System programs normally executed by
			  other programs
			  (<filename>/usr/src/libexec</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-release
			  release=cvs</literal></term>

		      <listitem>
			<para>Files required to produce a &os;
			  release
			  (<filename>/usr/src/release</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-rescue
			  release=cvs</literal></term>

		      <listitem>
			<para>Statically linked programs for emergency
			  recovery; see &man.rescue.8;
			  (<filename>/usr/src/rescue</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term>
			<literal>src-sbin release=cvs</literal>
		      </term>

		      <listitem>
			<para>System utilities for single-user mode
			  (<filename>/usr/src/sbin</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-secure
			  release=cvs</literal></term>

		      <listitem>
			<para>Cryptographic libraries and commands
			  (<filename>/usr/src/secure</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-share
			  release=cvs</literal></term>

		      <listitem>
			<para>Files that can be shared across multiple
			  systems
			  (<filename>/usr/src/share</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-sys
			  release=cvs</literal></term>

		      <listitem>
			<para>The kernel
			  (<filename>/usr/src/sys</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-sys-crypto
			release=cvs</literal></term>

		      <listitem>
			<para>Kernel cryptography code
			  (<filename>/usr/src/sys/crypto</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-tools
			  release=cvs</literal></term>

		      <listitem>
			<para>Various tools for the maintenance of
			  &os;
			  (<filename>/usr/src/tools</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-usrbin
			  release=cvs</literal></term>

		      <listitem>
			<para>User utilities
			  (<filename>/usr/src/usr.bin</filename>).</para>
		      </listitem>
		    </varlistentry>

		    <varlistentry>
		      <term><literal>src-usrsbin
			  release=cvs</literal></term>

		      <listitem>
			<para>System utilities
			  (<filename>/usr/src/usr.sbin</filename>).</para>
		      </listitem>
		    </varlistentry>
		  </variablelist>
		</listitem>
	      </varlistentry>
	    </variablelist>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><literal>distrib release=self</literal></term>

	  <listitem>
	    <para>The <application>CVSup</application> server's own
	      configuration files.  Used by
	      <application>CVSup</application> mirror sites.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><literal>gnats release=current</literal></term>

	  <listitem>
	    <para>The GNATS bug-tracking database.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><literal>mail-archive release=current</literal></term>

	  <listitem>
	    <para>&os; mailing list archive.</para>
	  </listitem>
	</varlistentry>
      </variablelist>
    </sect2>

    <sect2>
      <title>For More Information</title>

      <para>For the <application>CVSup</application> FAQ and other
	information about <application>CVSup</application>, see
	<ulink url="http://www.cvsup.org">The
	  CVSup Home Page</ulink>.</para>

      <para>Most &os;-related discussion of
	<application>CVSup</application> takes place on the
	&a.hackers;.  New versions of the software are announced
	there, as well as on the &a.announce;.</para>

      <para>For questions or bug reports about
	<application>CVSup</application> take a look at the
	<ulink url="http://www.cvsup.org/faq.html#bugreports">
	  CVSup FAQ</ulink>.</para>
    </sect2>

    <sect2 id="cvsup-mirrors">
      <title>CVSup Sites</title>

      <para><link linkend="cvsup">CVSup</link> servers for &os; are
	running at the following sites:</para>

      &chap.mirrors.cvsup.index.inc;

      &chap.mirrors.lastmod.inc;

      &chap.mirrors.cvsup.inc;

    </sect2>
  </sect1>

  <sect1 id="cvs-tags">
    <title>CVS Tags</title>

    <warning>
      <para>CVS has been deprecated by the project, and its use is not
	recommended.  <application>Subversion</application> should be
	used instead.</para>
    </warning>

    <para>When obtaining or updating sources using
      <application>cvs</application> or
      <application>CVSup</application>, a revision tag must be
      specified.  A revision tag refers to either a particular line of
      &os; development, or a specific point in time.  The first type
      are called <quote>branch tags</quote>, and the second type are
      called <quote>release tags</quote>.</para>

    <sect2>
      <title>Branch Tags</title>

      <para>All of these, with the exception of
	<literal>HEAD</literal> (which is always a valid tag), only
	apply to the <filename>src/</filename> tree.  The
	<filename>ports/</filename>, <filename>doc/</filename>, and
	<filename>www/</filename> trees are not branched.</para>

      <variablelist>
	<varlistentry>
	  <term>HEAD</term>

	  <listitem>
	    <para>Symbolic name for the main line, or &os;-CURRENT.
	      Also the default when no revision is specified.</para>

	    <para>In <application>CVSup</application>, this tag is
	      represented by a <literal>.</literal> (not punctuation,
	      but a literal <literal>.</literal> character).</para>

	    <note>
	      <para>In CVS, this is the default when no revision tag
		is specified.  It is usually <emphasis>not</emphasis>
		a good idea to checkout or update to CURRENT sources
		on a STABLE machine, unless that is your
		intent.</para>
	    </note>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_9</term>

	  <listitem>
	    <para>The line of development for &os;-9.X, also known
	      as &os; 9-STABLE</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_9_1</term>

	  <listitem>
	    <para>The release branch for &os;-9.1, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_9_0</term>

	  <listitem>
	    <para>The release branch for &os;-9.0, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_8</term>

	  <listitem>
	    <para>The line of development for &os;-8.X, also known
	      as &os; 8-STABLE</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_8_3</term>

	  <listitem>
	    <para>The release branch for &os;-8.3, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_8_2</term>

	  <listitem>
	    <para>The release branch for &os;-8.2, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_8_1</term>

	  <listitem>
	    <para>The release branch for &os;-8.1, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_8_0</term>

	  <listitem>
	    <para>The release branch for &os;-8.0, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_7</term>

	  <listitem>
	    <para>The line of development for &os;-7.X, also known
	      as &os; 7-STABLE</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_7_4</term>

	  <listitem>
	    <para>The release branch for &os;-7.4, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_7_3</term>

	  <listitem>
	    <para>The release branch for &os;-7.3, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_7_2</term>

	  <listitem>
	    <para>The release branch for &os;-7.2, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_7_1</term>

	  <listitem>
	    <para>The release branch for &os;-7.1, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_7_0</term>

	  <listitem>
	    <para>The release branch for &os;-7.0, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_6</term>

	  <listitem>
	    <para>The line of development for &os;-6.X, also known
	      as &os; 6-STABLE</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_6_4</term>

	  <listitem>
	    <para>The release branch for &os;-6.4, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_6_3</term>

	  <listitem>
	    <para>The release branch for &os;-6.3, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_6_2</term>

	  <listitem>
	    <para>The release branch for &os;-6.2, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_6_1</term>

	  <listitem>
	    <para>The release branch for &os;-6.1, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_6_0</term>

	  <listitem>
	    <para>The release branch for &os;-6.0, used only for
	      security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5</term>

	  <listitem>
	    <para>The line of development for &os;-5.X, also known
	      as &os; 5-STABLE.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_5</term>

	  <listitem>
	    <para>The release branch for &os;-5.5, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_4</term>

	  <listitem>
	    <para>The release branch for &os;-5.4, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_3</term>

	  <listitem>
	    <para>The release branch for &os;-5.3, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_2</term>

	  <listitem>
	    <para>The release branch for &os;-5.2 and
	      &os;-5.2.1, used only for security advisories and other
	      critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_1</term>

	  <listitem>
	    <para>The release branch for &os;-5.1, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_0</term>

	  <listitem>
	    <para>The release branch for &os;-5.0, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4</term>

	  <listitem>
	    <para>The line of development for &os;-4.X, also known
	      as &os; 4-STABLE.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_11</term>

	  <listitem>
	    <para>The release branch for &os;-4.11, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_10</term>

	  <listitem>
	    <para>The release branch for &os;-4.10, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_9</term>

	  <listitem>
	    <para>The release branch for &os;-4.9, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_8</term>

	  <listitem>
	    <para>The release branch for &os;-4.8, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_7</term>

	  <listitem>
	    <para>The release branch for &os;-4.7, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_6</term>

	  <listitem>
	    <para>The release branch for &os;-4.6 and &os;-4.6.2,
	      used only for security advisories and other
	      critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_5</term>

	  <listitem>
	    <para>The release branch for &os;-4.5, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_4</term>

	  <listitem>
	    <para>The release branch for &os;-4.4, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_3</term>

	  <listitem>
	    <para>The release branch for &os;-4.3, used only
	      for security advisories and other critical fixes.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_3</term>

	  <listitem>
	    <para>The line of development for &os;-3.X, also known
	      as 3.X-STABLE.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_2_2</term>

	  <listitem>
	    <para>The line of development for &os;-2.2.X, also known
	      as 2.2-STABLE.  This branch is mostly obsolete.</para>
	  </listitem>
	</varlistentry>
      </variablelist>
    </sect2>

    <sect2>
      <title>Release Tags</title>

      <para>These tags refer to a specific point in time when a
	particular version of &os; was released.  The release
	engineering process is documented in more detail by the
	<ulink url="&url.base;/releng/">Release Engineering
	  Information</ulink> and
	<ulink url="&url.articles.releng;/release-proc.html">Release
	  Process</ulink> documents.  The
	<filename class="directory">src</filename> tree uses tag names
	that start with <literal>RELENG_</literal> tags.  The
	<filename class="directory">ports</filename> and
	<filename class="directory">doc</filename> trees use tags
	whose names begin with <literal>RELEASE</literal> tags.
	Finally, the <filename class="directory">www</filename> tree
	is not tagged with any special name for releases.</para>

      <variablelist>
	<varlistentry>
	  <term>RELENG_9_1_0_RELEASE</term>

	  <listitem>
	    <para>&os; 9.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_9_0_0_RELEASE</term>

	  <listitem>
	    <para>&os; 9.0</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_8_3_0_RELEASE</term>

	  <listitem>
	    <para>&os; 8.3</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_8_2_0_RELEASE</term>

	  <listitem>
	    <para>&os; 8.2</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_8_1_0_RELEASE</term>

	  <listitem>
	    <para>&os; 8.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_8_0_0_RELEASE</term>

	  <listitem>
	    <para>&os; 8.0</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_7_4_0_RELEASE</term>

	  <listitem>
	    <para>&os; 7.4</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_7_3_0_RELEASE</term>

	  <listitem>
	    <para>&os; 7.3</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_7_2_0_RELEASE</term>

	  <listitem>
	    <para>&os; 7.2</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_7_1_0_RELEASE</term>

	  <listitem>
	    <para>&os; 7.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_7_0_0_RELEASE</term>

	  <listitem>
	    <para>&os; 7.0</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_6_4_0_RELEASE</term>

	  <listitem>
	    <para>&os; 6.4</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_6_3_0_RELEASE</term>

	  <listitem>
	    <para>&os; 6.3</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_6_2_0_RELEASE</term>

	  <listitem>
	    <para>&os; 6.2</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_6_1_0_RELEASE</term>

	  <listitem>
	    <para>&os; 6.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_6_0_0_RELEASE</term>

	  <listitem>
	    <para>&os; 6.0</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_5_0_RELEASE</term>

	  <listitem>
	    <para>&os; 5.5</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_4_0_RELEASE</term>

	  <listitem>
	    <para>&os; 5.4</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_11_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.11</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_3_0_RELEASE</term>

	  <listitem>
	    <para>&os; 5.3</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_10_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.10</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_2_1_RELEASE</term>

	  <listitem>
	    <para>&os; 5.2.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_2_0_RELEASE</term>

	  <listitem>
	    <para>&os; 5.2</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_9_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.9</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_1_0_RELEASE</term>

	  <listitem>
	    <para>&os; 5.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_8_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.8</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_5_0_0_RELEASE</term>

	  <listitem>
	    <para>&os; 5.0</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_7_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.7</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_6_2_RELEASE</term>

	  <listitem>
	    <para>&os; 4.6.2</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_6_1_RELEASE</term>

	  <listitem>
	    <para>&os; 4.6.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_6_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.6</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_5_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.5</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_4_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.4</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_3_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.3</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_2_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.2</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_1_1_RELEASE</term>

	  <listitem>
	    <para>&os; 4.1.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_1_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_4_0_0_RELEASE</term>

	  <listitem>
	    <para>&os; 4.0</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_3_5_0_RELEASE</term>

	  <listitem>
	    <para>&os;-3.5</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_3_4_0_RELEASE</term>

	  <listitem>
	    <para>&os;-3.4</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_3_3_0_RELEASE</term>

	  <listitem>
	    <para>&os;-3.3</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_3_2_0_RELEASE</term>

	  <listitem>
	    <para>&os;-3.2</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_3_1_0_RELEASE</term>

	  <listitem>
	    <para>&os;-3.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_3_0_0_RELEASE</term>

	  <listitem>
	    <para>&os;-3.0</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_2_2_8_RELEASE</term>

	  <listitem>
	    <para>&os;-2.2.8</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_2_2_7_RELEASE</term>

	  <listitem>
	    <para>&os;-2.2.7</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_2_2_6_RELEASE</term>

	  <listitem>
	    <para>&os;-2.2.6</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_2_2_5_RELEASE</term>

	  <listitem>
	    <para>&os;-2.2.5</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_2_2_2_RELEASE</term>

	  <listitem>
	    <para>&os;-2.2.2</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_2_2_1_RELEASE</term>

	  <listitem>
	    <para>&os;-2.2.1</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>RELENG_2_2_0_RELEASE</term>

	  <listitem>
	    <para>&os;-2.2.0</para>
	  </listitem>
	</varlistentry>
      </variablelist>
    </sect2>
  </sect1>

  <sect1 id="mirrors-rsync">
    <title><application>rsync</application> Sites</title>

    <para>The following sites make &os; available through the rsync
      protocol.  The <application>rsync</application> utility works in
      much the same way as the &man.rcp.1; command,
      but has more options and uses the rsync remote-update protocol
      which transfers only the differences between two sets of files,
      thus greatly speeding up the synchronization over the network.
      This is most useful if you are a mirror site for the
      &os; FTP server, or the CVS repository.  The
      <application>rsync</application> suite is available for many
      operating systems, on &os;, see the
      <filename role="package">net/rsync</filename>
      port or use the package.</para>

    <variablelist>
      <varlistentry>
	<term>Czech Republic</term>

	<listitem>
	  <para>rsync://ftp.cz.FreeBSD.org/</para>

	  <para>Available collections:</para>
	  <itemizedlist>
	    <listitem>
	      <para>ftp: A partial mirror of the &os; FTP
		server.</para>
	    </listitem>

	    <listitem>
	      <para>&os;: A full mirror of the &os; FTP server.</para>
	    </listitem>
	  </itemizedlist>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>Netherlands</term>

	<listitem>
	  <para>rsync://ftp.nl.FreeBSD.org/</para>

	  <para>Available collections:</para>
	  <itemizedlist>
	    <listitem>
	      <para>&os;: A full mirror of the &os; FTP server.</para>
	    </listitem>
	  </itemizedlist>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>Russia</term>

	<listitem>
	  <para>rsync://ftp.mtu.ru/</para>

	  <para>Available collections:</para>

	  <itemizedlist>
	    <listitem>
	      <para>&os;: A full mirror of the &os; FTP server.</para>
	    </listitem>

	    <listitem>
	      <para>&os;-gnats: The GNATS bug-tracking
		database.</para>
	    </listitem>

	    <listitem>
	      <para>&os;-Archive: The mirror of &os; Archive
		FTP server.</para>
	    </listitem>
	  </itemizedlist>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>Sweden</term>

	<listitem>
	  <para>rsync://ftp4.se.freebsd.org/</para>

	  <para>Available collections:</para>
	  <itemizedlist>
	    <listitem>
	      <para>&os;: A full mirror of the &os; FTP server.</para>
	    </listitem>
	  </itemizedlist>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>Taiwan</term>

	<listitem>
	  <para>rsync://ftp.tw.FreeBSD.org/</para>

	  <para>rsync://ftp2.tw.FreeBSD.org/</para>

	  <para>rsync://ftp6.tw.FreeBSD.org/</para>

	  <para>Available collections:</para>
	  <itemizedlist>
	    <listitem>
	      <para>&os;: A full mirror of the &os; FTP server.</para>
	    </listitem>
	  </itemizedlist>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>United Kingdom</term>

	<listitem>
	  <para>rsync://rsync.mirrorservice.org/</para>

	  <para>Available collections:</para>
	  <itemizedlist>
	    <listitem>
	      <para>ftp.freebsd.org: A full mirror of the &os;
		FTP server.</para>
	    </listitem>
	  </itemizedlist>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>United States of America</term>

	<listitem>
	  <para>rsync://ftp-master.FreeBSD.org/</para>

	  <para>This server may only be used by &os; primary mirror
	    sites.</para>
	  <para>Available collections:</para>
	  <itemizedlist>
	    <listitem>
	      <para>&os;: The master archive of the &os; FTP
		server.</para>
	    </listitem>

	    <listitem>
	      <para>acl: The &os; master ACL list.</para>
	    </listitem>
	  </itemizedlist>

	  <para>rsync://ftp13.FreeBSD.org/</para>

	  <para>Available collections:</para>

	  <itemizedlist>
	    <listitem>
	      <para>&os;: A full mirror of the &os; FTP server.</para>
	    </listitem>
	  </itemizedlist>
	</listitem>
      </varlistentry>
    </variablelist>
  </sect1>
</appendix>