freebsd-doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml

3318 lines
98 KiB
Plaintext

<!--
The FreeBSD Documentation Project
$FreeBSD$
-->
<appendix id="mirrors">
<title>Obtaining &os;</title>
<sect1 id="mirrors-cdrom">
<title>CDROM and DVD Publishers</title>
<sect2>
<title>Retail Boxed Products</title>
<para>&os; is available as a boxed product (&os; CDs,
additional software, and printed documentation) from several
retailers:</para>
<itemizedlist>
<listitem>
<address>
<otheraddr>CompUSA</otheraddr>
WWW: <otheraddr><ulink url="http://www.compusa.com/"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Frys Electronics</otheraddr>
WWW: <otheraddr><ulink url="http://www.frys.com/"></ulink></otheraddr>
</address>
</listitem>
</itemizedlist>
</sect2>
<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>700 Harvest Park Ste F</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>St. Augustinus-Str. 10</street>
<postcode>D-81825</postcode> <city>M&uuml;nchen</city>
<country>Germany</country>
Phone: <phone>(089) 428 419</phone>
WWW: <otheraddr><ulink url="http://www.hinner.de/linux/freebsd.html"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Ikarios</otheraddr>
<street>22-24 rue Voltaire</street>
<postcode>92000</postcode> <city>Nanterre</city>
<country>France</country>
WWW: <otheraddr><ulink url="http://ikarios.com/form/#freebsd"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>JMC Software</otheraddr>
<country>Ireland</country>
Phone: <phone>353 1 6291282</phone>
WWW: <otheraddr><ulink url="http://www.thelinuxmall.com"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>The Linux Emporium</otheraddr>
<street>Hilliard House, Lester Way</street>
<city>Wallingford</city>
<postcode>OX10 9TA</postcode>
<country>United Kingdom</country>
Phone: <phone>+44 1491 837010</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>Linux+ DVD Magazine</otheraddr>
<street>Lewartowskiego 6</street>
<city>Warsaw</city>
<postcode>00-190</postcode>
<country>Poland</country>
Phone: <phone>+48 22 860 18 18</phone>
Email: <email>editors@lpmagazine.org</email>
WWW: <otheraddr><ulink url="http://www.lpmagazine.org/"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Linux System Labs Australia</otheraddr>
<street>21 Ray Drive</street>
<city>Balwyn North</city>
<postcode>VIC - 3104</postcode>
<country>Australia</country>
Phone: <phone>+61 3 9857 5918</phone>
Fax: <fax>+61 3 9857 8974</fax>
WWW: <otheraddr><ulink url="http://www.lsl.com.au"></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>
<sect2>
<title>Distributors</title>
<para>If you are a reseller and want to carry &os; CDROM products,
please contact a distributor:</para>
<itemizedlist>
<listitem>
<address>
<otheraddr>Cylogistics</otheraddr>
<street>809B Cuesta Dr., #2149</street>
<city>Mountain View</city>, <state>CA</state> <postcode>94040</postcode>
<country>USA</country>
Phone: <phone>+1 650 694-4949</phone>
Fax: <fax>+1 650 694-4953</fax>
Email: <email>sales@cylogistics.com</email>
WWW: <otheraddr><ulink url="http://www.cylogistics.com/"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Ingram Micro</otheraddr>
<street>1600 E. St. Andrew Place</street>
<city>Santa Ana</city>, <state>CA</state> <postcode>92705-4926</postcode>
<country>USA</country>
Phone: <phone>1 (800) 456-8000</phone>
WWW: <otheraddr><ulink url="http://www.ingrammicro.com/"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Kudzu, LLC</otheraddr>
<street>7375 Washington Ave. S.</street>
<city>Edina</city>, <state>MN</state> <postcode>55439</postcode>
<country>USA</country>
Phone: <phone>+1 952 947-0822</phone>
Fax: <fax>+1 952 947-0876</fax>
Email: <email>sales@kudzuenterprises.com</email>
</address>
</listitem>
<listitem>
<address>
<otheraddr>LinuxCenter.Kz</otheraddr>
<city>Ust-Kamenogorsk</city>
<country>Kazakhstan</country>
Phone: <phone>+7-705-501-6001</phone>
Email: <email>info@linuxcenter.kz</email>
WWW: <otheraddr><ulink url="http://linuxcenter.kz/page.php?page=fr"></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/freebsd"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Navarre Corp</otheraddr>
<street>7400 49th Ave South</street>
<city>New Hope</city>, <state>MN</state> <postcode>55428</postcode>
<country>USA</country>
Phone: <phone>+1 763 535-8333</phone>
Fax: <fax>+1 763 535-0341</fax>
WWW: <otheraddr><ulink url="http://www.navarre.com/"></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.inc;
</sect1>
<sect1 id="mirrors-bittorrent">
<title>BitTorrent</title>
<indexterm>
<primary>BitTorrent</primary>
</indexterm>
<para>The ISO images for the basic release CDs are available via
BitTorrent. A collection of torrent files to download the
images is available at <ulink
url="http://torrents.freebsd.org:8080/">http://torrents.freebsd.org:8080</ulink></para>
<para>The BitTorrent client software is available from the
<filename role="package">net-p2p/py-bittorrent</filename> port,
or a precompiled package.</para>
<para>After downloading the ISO image with BitTorrent, you may
burn it to CD or DVD media as described in <xref
linkend="burncd">, burncd.</para>
</sect1>
<sect1 id="anoncvs">
<title>Anonymous CVS</title>
<sect2>
<title><anchor id="anoncvs-intro">Introduction</title>
<indexterm>
<primary>CVS</primary>
<secondary>anonymous</secondary>
</indexterm>
<para>Anonymous CVS (or, as it is otherwise known,
<emphasis>anoncvs</emphasis>) is a feature provided by the CVS
utilities bundled with &os; for synchronizing with a remote
CVS repository. Among other things, it allows users of &os;
to perform, with no special privileges, read-only CVS operations
against one of the &os; project's official anoncvs servers.
To use it, one simply sets the <envar>CVSROOT</envar>
environment variable to point at the appropriate anoncvs server,
provides the well-known password <quote>anoncvs</quote> with the
<command>cvs login</command> command, and then uses the
&man.cvs.1; command to access it like any local
repository.</para>
<note>
<para>The <command>cvs login</command> command, stores the passwords
that are used for authenticating to the CVS server in a file
called <filename>.cvspass</filename> in your
<envar>HOME</envar> directory. If this file does not exist,
you might get an error when trying to use <command>cvs
login</command> for the first time. Just make an empty
<filename>.cvspass</filename> file, and retry to login.</para>
</note>
<para>While it can also be said that the <link
linkend="cvsup">CVSup</link> and <emphasis>anoncvs</emphasis>
services both perform essentially the same function, there are
various trade-offs which can influence the user's choice of
synchronization methods. In a nutshell,
<application>CVSup</application> is much more efficient in its
usage of network resources and is by far the most technically
sophisticated of the two, but at a price. To use
<application>CVSup</application>, a special client must first be
installed and configured before any bits can be grabbed, and
then only in the fairly large chunks which
<application>CVSup</application> calls
<emphasis>collections</emphasis>.</para>
<para><application>Anoncvs</application>, by contrast, can be used
to examine anything from an individual file to a specific
program (like <command>ls</command> or <command>grep</command>)
by referencing the CVS module name. Of course,
<application>anoncvs</application> is also only good for
read-only operations on the CVS repository, so if it is your
intention to support local development in one repository shared
with the &os; project bits then
<application>CVSup</application> is really your only
option.</para>
</sect2>
<sect2>
<title><anchor id="anoncvs-usage">Using Anonymous CVS</title>
<para>Configuring &man.cvs.1; to use an Anonymous CVS repository
is a simple matter of setting the <envar>CVSROOT</envar>
environment variable to point to one of the &os; project's
<emphasis>anoncvs</emphasis> servers. At the time of this
writing, the following servers are available:</para>
<itemizedlist>
<listitem>
<para><emphasis>France</emphasis>:
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
(For pserver mode, use <command>cvs login</command> and
enter the password <quote>anoncvs</quote> when prompted.
For ssh, no password is required.)</para>
</listitem>
<!--
<listitem>
<para><emphasis>Japan</emphasis>:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
(Use <command>cvs login</command> and enter the password
<quote>anoncvs</quote> when prompted.)</para>
</listitem>
-->
<listitem>
<para><emphasis>Taiwan</emphasis>:
:pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
(For pserver mode, use <command>cvs login</command> and
enter any password when prompted. For ssh, no password
is required.)</para>
<programlisting>SSH2 HostKey: 1024 02:ed:1b:17:d6:97:2b:58:5e:5c:e2:da:3b:89:88:26 /etc/ssh/ssh_host_rsa_key.pub
SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub</programlisting>
</listitem>
<listitem>
<para><emphasis>USA</emphasis>:
anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (For ssh, use ssh
version 2 and no password is required.)</para>
<programlisting>SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub</programlisting>
</listitem>
</itemizedlist>
<para>Since CVS allows one to <quote>check out</quote> virtually
any version of the &os; sources that ever existed (or, in
some cases, will exist), you need to be
familiar with the revision (<option>-r</option>) flag to
&man.cvs.1; and what some of the permissible values for it in
the &os; Project repository are.</para>
<para>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 revision tags that users
might be interested
in. Again, none of these are valid for the Ports Collection
since the Ports Collection does not have multiple
branches of development.</para>
<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>-D date</option> flag.
See the &man.cvs.1; manual page for more details.</para>
</sect2>
<sect2>
<title>Examples</title>
<para>While it really is recommended that you read the manual page
for &man.cvs.1; thoroughly before doing anything, here are some
quick examples which essentially show how to use Anonymous
CVS:</para>
<example>
<title>Checking Out Something from -CURRENT (&man.ls.1;):</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter any word for</emphasis> <quote>password</quote>.
&prompt.user; <userinput>cvs co ls</userinput>
</screen>
</example>
<example>
<title>Using SSH to check out the <filename>src/</filename>
tree:</title>
<screen>&prompt.user; <userinput>cvs -d anoncvs@anoncvs1.FreeBSD.org:/home/ncvs co src</userinput>
The authenticity of host 'anoncvs1.freebsd.org (216.87.78.137)' can't be established.
DSA key fingerprint is 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62.
Are you sure you want to continue connecting (yes/no)? <userinput>yes</userinput>
Warning: Permanently added 'anoncvs1.freebsd.org' (DSA) to the list of known hosts.</screen>
</example>
<example>
<title>Checking Out the Version of &man.ls.1; in the 8-STABLE
Branch:</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter any word for</emphasis> <quote>password</quote>.
&prompt.user; <userinput>cvs co -rRELENG_8 ls</userinput>
</screen>
</example>
<example>
<title>Creating a List of Changes (as Unified Diffs) to &man.ls.1;</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter any word for</emphasis> <quote>password</quote>.
&prompt.user; <userinput>cvs rdiff -u -rRELENG_8_0_0_RELEASE -rRELENG_8_1_0_RELEASE ls</userinput>
</screen>
</example>
<example>
<title>Finding Out What Other Module Names Can Be Used:</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter any word for</emphasis> <quote>password</quote>.
&prompt.user; <userinput>cvs co modules</userinput>
&prompt.user; <userinput>more modules/modules</userinput>
</screen>
</example>
</sect2>
<sect2>
<title>Other Resources</title>
<para>The following additional resources may be helpful in learning
CVS:</para>
<itemizedlist>
<listitem>
<para><ulink
url="http://users.csc.calpoly.edu/~gfisher/classes/308/handouts/cvs-basics.html">CVS Tutorial</ulink> from California
Polytechnic State University.</para>
</listitem>
<listitem>
<para><ulink url="http://ximbiot.com/cvs/wiki/">CVS Home</ulink>,
the CVS development and support community.</para>
</listitem>
<listitem>
<para><ulink
url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVSweb</ulink> is
the &os; Project web interface for CVS.</para>
</listitem>
</itemizedlist>
</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-cvs-cur.name; supports the entire CVS tree.
&a.ctm-src-cur.name; supports the head of the development
branch. &a.ctm-src-7.name; supports the 7.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="cvsup">
<title>Using CVSup</title>
<sect2 id="cvsup-intro">
<title>Introduction</title>
<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>
<para>As you read the &os; documentation and mailing lists, you
may see references to <application>sup</application>.
<application>Sup</application> was the predecessor of
<application>CVSup</application>, and it served a similar
purpose. <application>CVSup</application> is used much in the
same way as sup and, in fact, uses configuration files which are
backward-compatible with <command>sup</command>'s.
<application>Sup</application> is no longer used in the &os;
project, because <application>CVSup</application> is both faster
and more flexible.</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 type="html"
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. However, this is not always
what you want, especially if you are synching the <filename>doc</filename>, <filename>ports</filename>, or
<filename>www</filename> trees &mdash; most people cannot read four or five
languages, and therefore they do not need to download the
language-specific files. If you are
<application>CVSup</application>ing the Ports Collection, you
can get around this by specifying each collection individually
(e.g., <emphasis>ports-astrology</emphasis>,
<emphasis>ports-biology</emphasis>, etc instead of simply
saying <emphasis>ports-all</emphasis>). However, since the <filename>doc</filename>
and <filename>www</filename> trees do not have language-specific collections, you
must use one of <application>CVSup</application>'s many nifty
features: the <filename>refuse</filename> file.</para>
<para>The <filename>refuse</filename> file essentially 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, if you cannot speak any languages other
than English and some German, and you do not feel the need to read
the German translation of documentation, you can put the following in your
<filename>refuse</filename> file:</para>
<screen>doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/hu_*
doc/it_*
doc/ja_*
doc/mn_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*</screen>
<para>and so forth for the other languages (you can find the
full list by browsing the <ulink
url="http://www.FreeBSD.org/cgi/cvsweb.cgi/">&os;
CVS repository</ulink>).</para>
<para>With this very useful feature, those users who are on
slow links or pay by the minute for their Internet connection
will be able to save valuable 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 collections are
<literal>src-all</literal>, and
<literal>ports-all</literal>. The other collections are used
only by small groups of people for specialized purposes, and
some mirror sites may not carry all of them.</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>doc-all release=cvs</literal></term>
<listitem>
<para>Sources for the &os; Handbook and other
documentation. This does not include files for
the &os; web site.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-all release=cvs</literal></term>
<listitem>
<para>The &os; Ports Collection.</para>
<important id="cvsup-collec-pbase-warn">
<para>If you do not want to update the whole of
<literal>ports-all</literal> (the whole ports tree),
but use one of the subcollections listed below,
make sure that you <emphasis>always</emphasis> update
the <literal>ports-base</literal> subcollection!
Whenever something changes in the ports build
infrastructure represented by
<literal>ports-base</literal>, it is virtually certain
that those changes will be used by <quote>real</quote>
ports real soon. Thus, if you only update the
<quote>real</quote> ports and they use some of the new
features, there is a very high chance that their build
will fail with some mysterious error message. The
<emphasis>very first</emphasis> thing to do in this
case is to make sure that your
<literal>ports-base</literal> subcollection is up to
date.</para>
</important>
<important id="cvsup-collec-index-warn">
<para>If you are going to be building your own local
copy of <filename>ports/INDEX</filename>, you
<emphasis>must</emphasis> accept
<literal>ports-all</literal> (the whole ports tree).
Building <filename>ports/INDEX</filename> with
a partial tree is not supported. See the
<ulink url="&url.books.faq;/applications.html#MAKE-INDEX">
FAQ</ulink>.</para>
</important>
<variablelist>
<varlistentry>
<term><literal>ports-accessibility
release=cvs</literal></term>
<listitem>
<para>Software to help disabled users.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-arabic
release=cvs</literal></term>
<listitem>
<para>Arabic language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-archivers
release=cvs</literal></term>
<listitem>
<para>Archiving tools.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-astro
release=cvs</literal></term>
<listitem>
<para>Astronomical ports.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-audio
release=cvs</literal></term>
<listitem>
<para>Sound support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-base
release=cvs</literal></term>
<listitem>
<para>The Ports Collection build infrastructure -
various files located in the
<filename>Mk/</filename> and
<filename>Tools/</filename> subdirectories of
<filename>/usr/ports</filename>.</para>
<note>
<para>Please see the <link
linkend="cvsup-collec-pbase-warn">important
warning above</link>: you should
<emphasis>always</emphasis> update this
subcollection, whenever you update any part of
the &os; Ports Collection!</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-benchmarks
release=cvs</literal></term>
<listitem>
<para>Benchmarks.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-biology
release=cvs</literal></term>
<listitem>
<para>Biology.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-cad
release=cvs</literal></term>
<listitem>
<para>Computer aided design tools.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-chinese
release=cvs</literal></term>
<listitem>
<para>Chinese language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-comms
release=cvs</literal></term>
<listitem>
<para>Communication software.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-converters
release=cvs</literal></term>
<listitem>
<para>character code converters.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-databases
release=cvs</literal></term>
<listitem>
<para>Databases.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-deskutils
release=cvs</literal></term>
<listitem>
<para>Things that used to be on the desktop
before computers were invented.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-devel
release=cvs</literal></term>
<listitem>
<para>Development utilities.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-dns
release=cvs</literal></term>
<listitem>
<para>DNS related software.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-editors
release=cvs</literal></term>
<listitem>
<para>Editors.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-emulators
release=cvs</literal></term>
<listitem>
<para>Emulators for other operating
systems.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-finance
release=cvs</literal></term>
<listitem>
<para>Monetary, financial and related applications.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-ftp
release=cvs</literal></term>
<listitem>
<para>FTP client and server utilities.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-games
release=cvs</literal></term>
<listitem>
<para>Games.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-german
release=cvs</literal></term>
<listitem>
<para>German language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-graphics
release=cvs</literal></term>
<listitem>
<para>Graphics utilities.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-hebrew
release=cvs</literal></term>
<listitem>
<para>Hebrew language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-hungarian
release=cvs</literal></term>
<listitem>
<para>Hungarian language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-irc
release=cvs</literal></term>
<listitem>
<para>Internet Relay Chat utilities.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-japanese
release=cvs</literal></term>
<listitem>
<para>Japanese language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-java
release=cvs</literal></term>
<listitem>
<para>&java; utilities.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-korean
release=cvs</literal></term>
<listitem>
<para>Korean language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-lang
release=cvs</literal></term>
<listitem>
<para>Programming languages.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-mail
release=cvs</literal></term>
<listitem>
<para>Mail software.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-math
release=cvs</literal></term>
<listitem>
<para>Numerical computation software.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-misc
release=cvs</literal></term>
<listitem>
<para>Miscellaneous utilities.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-multimedia
release=cvs</literal></term>
<listitem>
<para>Multimedia software.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-net
release=cvs</literal></term>
<listitem>
<para>Networking software.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-net-im
release=cvs</literal></term>
<listitem>
<para>Instant messaging software.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-net-mgmt
release=cvs</literal></term>
<listitem>
<para>Network management software.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-net-p2p
release=cvs</literal></term>
<listitem>
<para>Peer to peer networking.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-news
release=cvs</literal></term>
<listitem>
<para>USENET news software.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-palm
release=cvs</literal></term>
<listitem>
<para>Software support for <trademark class="trade">Palm</trademark>
series.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-polish
release=cvs</literal></term>
<listitem>
<para>Polish language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-ports-mgmt
release=cvs</literal></term>
<listitem>
<para>Utilities to manage ports and packages.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-portuguese
release=cvs</literal></term>
<listitem>
<para>Portuguese language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-print
release=cvs</literal></term>
<listitem>
<para>Printing software.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-russian
release=cvs</literal></term>
<listitem>
<para>Russian language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-science
release=cvs</literal></term>
<listitem>
<para>Science.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-security
release=cvs</literal></term>
<listitem>
<para>Security utilities.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-shells
release=cvs</literal></term>
<listitem>
<para>Command line shells.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-sysutils
release=cvs</literal></term>
<listitem>
<para>System utilities.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-textproc
release=cvs</literal></term>
<listitem>
<para>text processing utilities (does not
include desktop publishing).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-ukrainian
release=cvs</literal></term>
<listitem>
<para>Ukrainian language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-vietnamese
release=cvs</literal></term>
<listitem>
<para>Vietnamese language support.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-www
release=cvs</literal></term>
<listitem>
<para>Software related to the World Wide
Web.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11
release=cvs</literal></term>
<listitem>
<para>Ports to support the X window
system.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-clocks
release=cvs</literal></term>
<listitem>
<para>X11 clocks.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-drivers
release=cvs</literal></term>
<listitem>
<para>X11 drivers.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-fm
release=cvs</literal></term>
<listitem>
<para>X11 file managers.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-fonts
release=cvs</literal></term>
<listitem>
<para>X11 fonts and font utilities.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-toolkits
release=cvs</literal></term>
<listitem>
<para>X11 toolkits.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-servers
release=cvs</literal></term>
<listitem>
<para>X11 servers.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-themes
release=cvs</literal></term>
<listitem>
<para>X11 themes.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-wm
release=cvs</literal></term>
<listitem>
<para>X11 window managers.</para>
</listitem>
</varlistentry>
</variablelist>
</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>
<varlistentry>
<term><literal>www release=cvs</literal></term>
<listitem>
<para>The sources for the &os; WWW site.</para>
</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>
<varlistentry>
<term><literal>www release=current</literal></term>
<listitem>
<para>The pre-processed &os; WWW site files (not the
source files). Used by WWW mirror sites.</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.inc;
</sect2>
</sect1>
<sect1 id="cvs-tags">
<title>CVS Tags</title>
<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_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_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_0_0_RELEASE</term>
<listitem>
<para>&os; 9.0</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-afs">
<title>AFS Sites</title>
<para>AFS servers for &os; are running at the following sites:</para>
<variablelist>
<varlistentry>
<term>Sweden</term>
<listitem>
<para>The path to the files are:
<filename>/afs/stacken.kth.se/ftp/pub/FreeBSD/</filename></para>
<programlisting>stacken.kth.se # Stacken Computer Club, KTH, Sweden
130.237.234.43 #hot.stacken.kth.se
130.237.237.230 #fishburger.stacken.kth.se
130.237.234.3 #milko.stacken.kth.se</programlisting>
<para>Maintainer <email>ftp@stacken.kth.se</email></para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="mirrors-rsync">
<title>rsync 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>sites/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>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../appendix.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "appendix")
End:
-->