<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml,v 1.150 2001/09/02 11:16:16 murray Exp $
-->
<appendix id="mirrors">
<title>Obtaining FreeBSD</title>
<sect1>
<title>CDROM Publishers</title>
<sect2>
<title>Retail Boxed Products</title>
<para>FreeBSD is available as a boxed product (FreeBSD CDs,
additional software, and printed documentation) from several
retailers:</para>
<itemizedlist>
<listitem>
<address>
<otheraddr>CompUSA</otheraddr>
WWW: <otheraddr><ulink url="http://www.compusa.com/">http://www.compusa.com/</ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Frys Electronics</otheraddr>
WWW: <otheraddr><ulink url="http://www.frys.com/">http://www.frys.com/</ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Micro Center</otheraddr>
WWW: <otheraddr><ulink url="http://www.microcenter.com/">http://www.microcenter.com/</ulink></otheraddr>
</address>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>CD Sets</title>
<para>FreeBSD CD sets are available from many online
retailers:</para>
<itemizedlist>
<listitem>
<address>
<otheraddr>Daemon News</otheraddr>
<street>2680 Bayshore Parkway, Suite 307</street>
<city>Mountain View</city>, <state>CA</state> <postcode>94043</postcode>
<country>USA</country>
Phone: <phone>+1 650 694-4949</phone>
Email: <email>sales@daemonnews.org</email>
WWW: <otheraddr><ulink url="http://www.bsdmall.com/">http://www.bsdmall.com/</ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Wind River Systems</otheraddr>
<street>500 Wind River Way</street>
<city>Alameda</city>, <state>CA</state> <postcode>94501</postcode>
<country>USA</country>
Phone: <phone>+1 510 749-2872</phone>
WWW: <otheraddr><ulink url="http://www.freebsdmall.com/">http://www.freebsdmall.com/</ulink></otheraddr>
</address>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Distributors</title>
<para>If you are a reseller and want to carry FreeBSD CDROM products,
please contact a distributor :</para>
<itemizedlist>
<listitem>
<address>
<otheraddr>Cylogistics</otheraddr>
<street>2680 Bayshore Parkway, Suite 307</street>
<city>Mountain View</city>, <state>CA</state> <postcode>94043</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/">http://www.cylogistics.com/</ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Ingram Micro</otheraddr>
WWW: <otheraddr>
<ulink url="http://www.ingrammicro.com/">http://www.ingrammicro.com/</ulink>
</otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Navarre</otheraddr>
WWW: <otheraddr>
<ulink url="http://www.navarre.com/">http://www.navarre.com/</ulink>
</otheraddr>
</address>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="mirrors-dvd">
<title>DVD Publishers</title>
<para>FreeBSD is available on DVD from:</para>
<address>
<otheraddr>FreeBSD Services Ltd</otheraddr>
<street>11 Lapwing Close</street>
<city>Bicester</city>
<postcode>OX26 6XR</postcode>
<country>United Kingdom</country>
WWW: <otheraddr><ulink url="http://www.freebsd-services.com/">http://www.freebsd-services.com/</ulink></otheraddr>
</address>
</sect1>
<sect1 id="mirrors-ftp">
<title>FTP Sites</title>
<para>The official sources for FreeBSD are available via anonymous FTP
from:
<blockquote>
<para><ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp://ftp.FreeBSD.org/pub/FreeBSD/</ulink>.</para>
</blockquote></para>
<para>The <ulink
url="http://www.freebsdmirrors.org/">FreeBSD mirror
sites database</ulink> is more accurate than the mirror listing in the
Handbook, as it gets its information from the DNS rather than relying on
static lists of hosts.</para>
<para>Additionally, FreeBSD is available via anonymous FTP from the
following mirror sites. If you choose to obtain FreeBSD via anonymous
FTP, please try to use a site near you.</para>
<para><link linkend="mirrors-ar">Argentina</link>,
<link linkend="mirrors-au">Australia</link>,
<link linkend="mirrors-br">Brazil</link>,
<link linkend="mirrors-ca">Canada</link>,
<link linkend="mirrors-cn">China</link>,
<link linkend="mirrors-cz">Czech Republic</link>,
<link linkend="mirrors-dk">Denmark</link>,
<link linkend="mirrors-ee">Estonia</link>,
<link linkend="mirrors-fi">Finland</link>,
<link linkend="mirrors-fr">France</link>,
<link linkend="mirrors-de">Germany</link>,
<link linkend="mirrors-hk">Hong Kong</link>,
<link linkend="mirrors-hu">Hungary</link>,
<link linkend="mirrors-ie">Ireland</link>,
<link linkend="mirrors-il">Israel</link>,
<link linkend="mirrors-jp">Japan</link>,
<link linkend="mirrors-kr">Korea</link>,
<link linkend="mirrors-lt">Lithuania</link>,
<link linkend="mirrors-nl">Netherlands</link>,
<link linkend="mirrors-nz">New Zealand</link>,
<link linkend="mirrors-pl">Poland</link>,
<link linkend="mirrors-pt">Portugal</link>,
<link linkend="mirrors-ro">Romania</link>,
<link linkend="mirrors-ru">Russia</link>,
<link linkend="mirrors-sa">Saudi Arabia</link>,
<link linkend="mirrors-za">South Africa</link>,
<link linkend="mirrors-es">Spain</link>,
<link linkend="mirrors-sk">Slovak Republic</link>,
<link linkend="mirrors-si">Slovenia</link>,
<link linkend="mirrors-se">Sweden</link>,
<link linkend="mirrors-tw">Taiwan</link>,
<link linkend="mirrors-th">Thailand</link>,
<link linkend="mirrors-uk">UK</link>,
<link linkend="mirrors-ua">Ukraine</link>,
<link linkend="mirrors-us">USA</link>.</para>
<variablelist>
<varlistentry>
<term><anchor id="mirrors-ar">Argentina</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@ar.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.ar.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ar.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-au">Australia</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@au.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.au.FreeBSD.org/pub/FreeBSD/">ftp://ftp.au.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.au.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.au.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.au.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.au.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp4.au.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.au.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-br">Brazil</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@br.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp4.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp5.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp6.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp7.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp7.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-ca">Canada</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@ca.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.ca.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ca.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-cn">China</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>phj@cn.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/">ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-cz">Czech Republic</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@cz.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/">ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/</ulink> Contact: <email>calda@dzungle.ms.mff.cuni.cz</email></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-dk">Denmark</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@dk.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.dk.FreeBSD.org/pub/FreeBSD/">ftp://ftp.dk.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.dk.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.dk.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.dk.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.dk.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-ee">Estonia</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@ee.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.ee.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ee.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-fi">Finland</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@fi.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.fi.FreeBSD.org/pub/FreeBSD/">ftp://ftp.fi.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-fr">France</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@fr.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp4.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp5.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp6.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-de">Germany</term>
<listitem>
<para>In case of problems, please contact the mirror admins
<email>de-bsd-hubs@de.FreeBSD.org </email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp4.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp6.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-hk">Hong Kong</term>
<listitem>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.hk.super.net/pub/FreeBSD/">ftp://ftp.hk.super.net/pub/FreeBSD/</ulink> Contact: <email>ftp-admin@HK.Super.NET</email>.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-hu">Hungary</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>mohacsi@ik.bme.hu</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.hu.FreeBSD.org/pub/FreeBSD/">ftp://ftp.hu.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-ie">Ireland</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@ie.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.ie.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ie.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-il">Israel</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@il.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.il.FreeBSD.org/pub/FreeBSD/">ftp://ftp.il.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.il.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.il.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-jp">Japan</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@jp.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp6.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-kr">Korea</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@kr.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink url="ftp://ftp3.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink url="ftp://ftp4.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink url="ftp://ftp5.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp6.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-lt">Lithuania</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@lt.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.lt.FreeBSD.org/pub/FreeBSD/">ftp://ftp.lt.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-nl">Netherlands</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@nl.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.nl.FreeBSD.org/pub/FreeBSD/">ftp://ftp.nl.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-nz">New Zealand</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@nz.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink url="ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/">ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-pl">Poland</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@pl.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.pl.FreeBSD.org/pub/FreeBSD/">ftp://ftp.pl.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-pt">Portugal</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@pt.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.pt.FreeBSD.org/pub/FreeBSD/">ftp://ftp.pt.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.pt.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.pt.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-ro">Romania</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@ro.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.ro.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ro.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-ru">Russia</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@ru.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.ru.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.ru.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.ru.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.ru.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink url="ftp://ftp4.ru.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.ru.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-sa">Saudi Arabia</term>
<listitem>
<para>In case of problems, please contact
<email>ftpadmin@isu.net.sa</email></para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.isu.net.sa/pub/mirrors/ftp.freebsd.org/">ftp://ftp.isu.net.sa/pub/mirrors/ftp.freebsd.org/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-za">South Africa</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@za.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.za.FreeBSD.org/pub/FreeBSD/">ftp://ftp.za.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.za.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.za.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.za.FreeBSD.org/FreeBSD/">ftp://ftp3.za.FreeBSD.org/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-sk">Slovak Republic</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@sk.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink url="ftp://ftp.sk.FreeBSD.org/pub/FreeBSD/">ftp://ftp.sk.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry><term><anchor id="mirrors-si">Slovenia</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@si.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.si.FreeBSD.org/pub/FreeBSD/">ftp://ftp.si.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-es">Spain</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@es.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink url="ftp://ftp.es.FreeBSD.org/pub/FreeBSD/">ftp://ftp.es.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-se">Sweden</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@se.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.se.FreeBSD.org/pub/FreeBSD/">ftp://ftp.se.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.se.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.se.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.se.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.se.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-tw">Taiwan</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@tw.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/">ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.tw.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.tw.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-th">Thailand</term>
<listitem>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.nectec.or.th/pub/FreeBSD/">ftp://ftp.nectec.or.th/pub/FreeBSD/</ulink> Contact: <email>ftpadmin@ftp.nectec.or.th</email>.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-ua">Ukraine</term>
<listitem>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.ua.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ua.FreeBSD.org/pub/FreeBSD/</ulink> Contact: <email>freebsd-mnt@lucky.net</email>.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-uk">UK</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@uk.FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp2.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><anchor id="mirrors-us">USA</term>
<listitem>
<para>In case of problems, please contact the hostmaster
<email>hostmaster@FreeBSD.org</email> for this domain.</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp2.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp3.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp4.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp5.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp6.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp7.FreeBSD.org/pub/FreeBSD/">ftp://ftp7.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp8.FreeBSD.org/pub/FreeBSD/">ftp://ftp8.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp9.FreeBSD.org/pub/os/FreeBSD/">ftp://ftp9.FreeBSD.org/pub/os/FreeBSD/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp10.FreeBSD.org/pub/FreeBSD/">ftp://ftp10.FreeBSD.org/pub/FreeBSD/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="anoncvs">
<title>Anonymous CVS</title>
<sect2>
<title><anchor id="anoncvs-intro">Introduction</title>
<para>Anonymous CVS (or, as it is otherwise known,
<emphasis>anoncvs</emphasis>) is a feature provided by the CVS
utilities bundled with FreeBSD for synchronizing with a remote
CVS repository. Among other things, it allows users of FreeBSD
to perform, with no special privileges, read-only CVS operations
against one of the FreeBSD 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>
<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 FreeBSD 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 FreeBSD project's
<emphasis>anoncvs</emphasis> servers. At the time of this
writing, the following servers are available:</para>
<itemizedlist>
<listitem>
<para><emphasis>USA</emphasis>:
:pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
(Use <command>cvs login</command> and enter the password
<quote>anoncvs</quote> when prompted.)</para>
</listitem>
</itemizedlist>
<para>Since CVS allows one to <quote>check out</quote> virtually
any version of the FreeBSD 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 FreeBSD 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>Here are the branch tags that users might be interested
in (keep in mind that the only tags valid for the <link
linkend="ports">ports collection</link> is
<literal>HEAD</literal>).</para>
<variablelist>
<varlistentry>
<term>HEAD</term>
<listitem>
<para>Symbolic name for the main line, or FreeBSD-CURRENT.
Also the default when no revision is specified.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4</term>
<listitem>
<para>The line of development for FreeBSD-4.X, also known
as FreeBSD-STABLE.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_3</term>
<listitem>
<para>The release branch for FreeBSD-4.3, used only
for security advisories and other seriously critical fixes.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3</term>
<listitem>
<para>The line of development for FreeBSD-3.X, also known
as 3.X-STABLE.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2</term>
<listitem>
<para>The line of development for FreeBSD-2.2.X, also known
as 2.2-STABLE. This branch is mostly obsolete.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Here are the 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
revisions.</para>
<variablelist>
<varlistentry>
<term>RELENG_4_3_0_RELEASE</term>
<listitem>
<para>FreeBSD 4.3.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_2_0_RELEASE</term>
<listitem>
<para>FreeBSD 4.2.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_1_1_RELEASE</term>
<listitem>
<para>FreeBSD 4.1.1.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_1_0_RELEASE</term>
<listitem>
<para>FreeBSD 4.1.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_0_0_RELEASE</term>
<listitem>
<para>FreeBSD 4.0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_5_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.5.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_4_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.4.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_3_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.3.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_2_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.2.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_1_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.1.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_0_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_8_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.8.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_7_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.7.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_6_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.6.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_5_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.5.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_2_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.2.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_1_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.1.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_0_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.0.</para>
</listitem>
</varlistentry>
</variablelist>
<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;) and
Deleting It Again:</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
&prompt.user; <userinput>cvs co ls</userinput>
&prompt.user; <userinput>cvs release -d ls</userinput>
&prompt.user; <userinput>cvs logout</userinput>
</screen>
</example>
<example>
<title>Checking Out the Version of &man.ls.1; in the 3.X-STABLE
Branch:</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
&prompt.user; <userinput>cvs co -rRELENG_3 ls</userinput>
&prompt.user; <userinput>cvs release -d ls</userinput>
&prompt.user; <userinput>cvs logout</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.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
&prompt.user; <userinput>cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls</userinput>
&prompt.user; <userinput>cvs logout</userinput>
</screen>
</example>
<example>
<title>Finding Out What Other Module Names Can Be Used:</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
&prompt.user; <userinput>cvs co modules</userinput>
&prompt.user; <userinput>more modules/modules</userinput>
&prompt.user; <userinput>cvs release -d modules</userinput>
&prompt.user; <userinput>cvs logout</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://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/">CVS Tutorial</ulink> from Cal Poly.</para>
</listitem>
<listitem>
<para><ulink url="http://www.cyclic.com/">Cyclic Software</ulink>,
commercial maintainers of CVS.</para>
</listitem>
<listitem>
<para><ulink
url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVSWeb</ulink> is
the FreeBSD Project web interface for CVS.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="ctm">
<title>Using CTM</title>
<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 FreeBSD's source trees, though other
people may find it useful for other purposes as time goes by.
Little, if any, documentation currently exists at this time on the
process of creating deltas, so talk to &a.phk; for more
information should you wish to use <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 FreeBSD source trees. There are a number of
“flavors” 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 FreeBSD, 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 “current” sources. It is
recommended that you read <link linkend="current">Staying
current with FreeBSD</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
“current” levels).</para>
<para>The <application>CTM</application> program has been part of
FreeBSD 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>If you are running a pre-2.0 version of FreeBSD, you can
fetch the current <application>CTM</application> sources
directly from:</para>
<para><ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm/">ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm/</ulink></para>
<para>The “deltas” 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/">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>Send email to &a.majordomo; to subscribe to one of the
<application>CTM</application> distribution lists.
“ctm-cvs-cur” supports the entire CVS tree.
“ctm-src-cur” supports the head of the development
branch. “ctm-src-2_2” supports the 2.2 release
branch, etc.. (If you do not know how to subscribe yourself
using majordomo, send a message first containing the word
<literal>help</literal> — it will send you back usage
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 <email>ctm-announce@FreeBSD.org</email> 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. Send an
email to &a.majordomo; with a single line of
<literal>subscribe ctm-announce</literal> to get added 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 “empty” directory. You must use
an initial “Empty” delta to start off your
<application>CTM</application> supported tree. At some point it
is intended that one of these “started” 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 “starter” deltas by the
<literal>X</literal> appended to the number
(<filename>src-cur.3210XEmpty.gz</filename> for instance). The
designation following the <filename>X</filename> corresponds to
the origin of your initial “seed”.
<filename>Empty</filename> is an empty directory. As a rule a
base transition from <filename>Empty</filename> is produced
every 100 deltas. By the way, they are large! 25 to 30
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,
CTM 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 CTM 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 CTM 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 CTM system, so
as to allow detection of spoofed CTM 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. Tell me if you want an email list for
that too and we will consider setting it up.</para>
</sect2>
<sect2 id="mirrors-ctm">
<title>CTM Mirrors</title>
<para><link linkend="ctm">CTM</link>/FreeBSD is available via anonymous
FTP from the following mirror sites. If you choose to obtain CTM via
anonymous FTP, please try to use a site near you.</para>
<para>In case of problems, please contact &a.phk;.</para>
<variablelist>
<varlistentry>
<term>California, Bay Area, official source</term>
<listitem>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Germany, Trier</term>
<listitem>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.uni-trier.de/pub/unix/systems/BSD/FreeBSD/CTM/">ftp://ftp.uni-trier.de/pub/unix/systems/BSD/FreeBSD/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/">ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/</ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Taiwan/R.O.C, Chiayi</term>
<listitem>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/CTM/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/CTM/</ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ctm3.tw.FreeBSD.org/pub/freebsd/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 <ulink url="http://ftpsearch.ntnu.no/">FTP
search</ulink> at <ulink
url="http://ftpsearch.ntnu.no/ftpsearch/">http://ftpsearch.ntnu.no/ftpsearch</ulink>.
FTP search is a great free archie server in Trondheim, Norway.</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 FreeBSD sources are
maintained in a CVS repository on a central development machine
in California. With <application>CVSup</application>, FreeBSD
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 FreeBSD mirror sites.</para>
<para>As you read the FreeBSD 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 in used in much 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 FreeBSD
project, because <application>CVSup</application> is both faster
and more flexible.</para>
</sect2>
<sect2 id="cvsup-install">
<title>Installation</title>
<para>The easiest way to install <application>CVSup</application>
is to use the precompiled <port>net/cvsup</port> package
from the FreeBSD <link linkend="ports">packages collection</link>.
If you prefer to build <application>CVSup</application> from
source, you can use the <port>net/cvsup</port>
port instead. But be forewarned: the
<port>net/cvsup</port> port depends on the Modula-3
system, which takes a substantial amount of time and
disk space to download and build.</para>
<para>If you do not know anything about
<application>CVSup</application> at all and want a
single package which will install it, set up the configuration
file and start the transfer via a pointy-clicky type of
interface, then get the <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz">cvsupit</ulink>
package. Just hand it to &man.pkg.add.1; and it will lead you
through the configuration process in a menu-oriented
fashion.</para>
</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/">/usr/share/examples/cvsup/</ulink>.</para>
<para>The information in a <filename>supfile</filename> answers
the following questions for cvsup:</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">FreeBSD-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 FreeBSD
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>Here are the branch tags that users might be interested
in. Keep in mind that only the <literal>tag=.</literal> is
relevant for the ports collection.</para>
<variablelist>
<varlistentry>
<term>tag=.</term>
<listitem>
<para>The main line of development, also known as
FreeBSD-CURRENT.</para>
<note>
<para>The <literal>.</literal> is not punctuation; it
is the name of the tag. Valid for all
collections.</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_4</term>
<listitem>
<para>The line of development for FreeBSD-4.X, also known as
FreeBSD-STABLE.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_4_3</term>
<listitem>
<para>The release branch for FreeBSD-4.3, used only
for security advisories and other seriously critical
fixes.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_3</term>
<listitem>
<para>The line of development for FreeBSD-3.X</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_2_2</term>
<listitem>
<para>The line of development for FreeBSD-2.2.X, also
known as 2.2-STABLE.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Here are the revision tags that users might be interested
in. Again, these are not valid for the ports
collection.</para>
<variablelist>
<varlistentry>
<term>tag=RELENG_4_3_0_RELEASE</term>
<listitem>
<para>FreeBSD 4.3.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_4_2_0_RELEASE</term>
<listitem>
<para>FreeBSD-4.2.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_4_1_1_RELEASE</term>
<listitem>
<para>FreeBSD-4.1.1.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_4_1_0_RELEASE</term>
<listitem>
<para>FreeBSD-4.1.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_4_0_0_RELEASE</term>
<listitem>
<para>FreeBSD-4.0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_3_5_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.5.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_3_4_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.4.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_3_3_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.3.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_3_2_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.2.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_3_1_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.1.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_3_0_0_RELEASE</term>
<listitem>
<para>FreeBSD-3.0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_2_2_8_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.8.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_2_2_7_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.7.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_2_2_6_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.6.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_2_2_5_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.5.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_2_2_2_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.2.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_2_2_1_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.1.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>tag=RELENG_2_2_0_RELEASE</term>
<listitem>
<para>FreeBSD-2.2.0.</para>
</listitem>
</varlistentry>
</variablelist>
<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 FreeBSD-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 FreeBSD distribution site,
<hostid role="fqdn">cvsup666.FreeBSD.org</hostid>:</para>
<programlisting>*default host=cvsup666.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>/usr/local/etc/cvsup</filename>:</para>
<programlisting>*default base=/usr/local/etc/cvsup</programlisting>
<para>This setting is used by default if it is not specified
in the <filename>supfile</filename>, so we actually do not
need the above line.</para>
<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 FreeBSD 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=cvsup666.FreeBSD.org
*default prefix=/usr
*default base=/usr/local/etc/cvsup
*default release=cvs delete use-rel-suffix compress
src-all</programlisting>
</listitem>
</itemizedlist>
<sect3>
<title>The refuse 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's what you can download from
me...</quote>, and your client responds <quote>OK, I'll 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 doc, ports, or
www trees — 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 doc
and www trees do not have language-specific collections, you
must use one of <application>CVSup</application>'s many nifty
features; the <emphasis>refuse file</emphasis>.</para>
<para>The <emphasis>refuse file</emphasis> 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 refuse file can be found (or, if you do not yet
have one, should be placed) in
<filename><replaceable>base</replaceable>/sup/refuse</filename>.
<replaceable>base</replaceable> is defined in your supfile; by
default, <replaceable>base</replaceable> is
<filename>/usr/local/etc/cvsup</filename>,
which means that by default the refuse file is in
<filename>/usr/local/etc/cvsup/sup/refuse</filename>.</para>
<para>The refuse 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 use
the German applications, you can put the following in your
<emphasis>refuse file</emphasis>:</para>
<screen>ports/chinese
ports/german
ports/japanese
ports/korean
ports/russian
ports/vietnamese
doc/es_ES.ISO8859-1
doc/ja_JP.eucJP</screen>
<para>and so forth for the other languages. Note that the name
of the repository is the first <quote>directory</quote> in the
<emphasis>refuse file</emphasis>.</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 <emphasis>refuse files</emphasis> 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 supfile 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 <quote>go</quote> 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 root
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 cvsup:</para>
<screen>&prompt.root; <userinput>cvsup -g -L 2 supfile</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 FreeBSD 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 FreeBSD.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>doc-all release=cvs</literal></term>
<listitem>
<para>Sources for the FreeBSD Handbook and other
documentation. This does not include files for
the FreeBSD web site.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-all release=cvs</literal></term>
<listitem>
<para>The FreeBSD Ports Collection.</para>
<variablelist>
<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>Miscellaneous files at the top of
/usr/ports.</para>
</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-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-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-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-mbone
release=cvs</literal></term>
<listitem>
<para>MBone applications.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-misc
release=cvs</literal></term>
<listitem>
<para>Miscellaneous utilities.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-net
release=cvs</literal></term>
<listitem>
<para>Networking software.</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 3Com Palm(tm)
series.</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-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-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-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</literal></term>
<listitem>
<para>X11 servers.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-wm</literal></term>
<listitem>
<para>X11 window managers.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-all release=cvs</literal></term>
<listitem>
<para>The main FreeBSD 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-contrib
release=cvs</literal></term>
<listitem>
<para>Utilities and libraries from outside the
FreeBSD 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 FreeBSD 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 FreeBSD.</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 FreeBSD
release
(<filename>/usr/src/release</filename>).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-secure release=cvs</literal></term>
<listitem>
<para>DES (<filename>/usr/src/secure</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-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
FreeBSD
(<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 FreeBSD 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>FreeBSD mailing list archive.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>www release=current</literal></term>
<listitem>
<para>The pre-processed FreeBSD 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.polstra.com/projects/freeware/CVSup/">The
CVSup Home Page</ulink>.</para>
<para>Most FreeBSD-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>Questions and bug reports should be addressed to the author
of the program at <email>cvsup-bugs@polstra.com</email>.</para>
</sect2>
<sect2 id="cvsup-mirrors">
<title>CVSup Sites</title>
<para><link linkend="cvsup">CVSup</link> servers for FreeBSD are running
at the following sites:</para>
<variablelist>
<varlistentry>
<term>Argentina</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.ar.FreeBSD.org (maintainer
<email>msagre@cactus.fi.uba.ar</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Australia</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.au.FreeBSD.org (maintainer
<email>dawes@xfree86.org</email>)</para>
</listitem>
<listitem>
<para>cvsup3.au.FreeBSD.org (maintainer
<email>FreeBSD@admin.gil.com.au</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Austria</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.at.FreeBSD.org (maintainer
<email>postmaster@wu-wien.ac.at</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Brazil</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.br.FreeBSD.org (maintainer
<email>cvsup@cvsup.br.FreeBSD.org</email>)</para>
</listitem>
<listitem>
<para>cvsup2.br.FreeBSD.org (maintainer
<email>tps@ti.sk</email>)</para>
</listitem>
<listitem>
<para>cvsup3.br.FreeBSD.org (maintainer
<email>camposr@matrix.com.br</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Canada</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.ca.FreeBSD.org (maintainer
<email>dan@jaded.net</email>)</para>
</listitem>
<listitem>
<para>cvsup2.ca.FreeBSD.org (maintainer
<email>hostmaster@ca.freebsd.org</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>China</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.cn.FreeBSD.org (maintainer
<email>phj@cn.FreeBSD.org</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Czech Republic</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.cz.FreeBSD.org (maintainer
<email>cejkar@dcse.fee.vutbr.cz</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Denmark</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.dk.FreeBSD.org (maintainer
<email>jesper@skriver.dk</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Estonia</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.ee.FreeBSD.org (maintainer
<email>taavi@uninet.ee</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Finland</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.fi.FreeBSD.org (maintainer
<email>count@key.sms.fi</email>)</para>
</listitem>
<listitem>
<para>cvsup2.fi.FreeBSD.org (maintainer
<email>count@key.sms.fi</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>France</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.fr.FreeBSD.org (maintainer
<email>hostmaster@fr.FreeBSD.org</email>)</para>
</listitem>
<listitem>
<para>cvsup2.fr.FreeBSD.org (maintainer
<email>ftpmaint@uvsq.fr</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Germany</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.de.FreeBSD.org (maintainer
<email>rse@freebsd.org</email>)</para>
</listitem>
<listitem>
<para>cvsup1.de.FreeBSD.org (maintainer
<email>wosch@FreeBSD.org</email>)</para>
</listitem>
<listitem>
<para>cvsup2.de.FreeBSD.org (maintainer
<email>cvsup@nikoma.de</email>)</para>
</listitem>
<listitem>
<para>cvsup3.de.FreeBSD.org (maintainer
<email>ag@leo.org</email>)</para>
</listitem>
<listitem>
<para>cvsup4.de.FreeBSD.org (maintainer
<email>cvsup@cosmo-project.de</email>)</para>
</listitem>
<listitem>
<para>cvsup5.de.FreeBSD.org (maintainer
<email>rse@freebsd.org</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Greece</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.gr.FreeBSD.org (maintainer
<email>ftpadm@duth.gr</email>)</para>
</listitem>
<listitem>
<para>cvsup2.gr.FreeBSD.org (maintainer
<email>paschos@cs.uoi.gr</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Iceland</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.is.FreeBSD.org (maintainer
<email>adam@veda.is</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Ireland</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.ie.FreeBSD.org (maintainer
<email>dwmalone@maths.tcd.ie</email>),
Trinity College, Dublin.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Japan</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.jp.FreeBSD.org (maintainer
<email>cvsupadm@jp.FreeBSD.org</email>)</para>
</listitem>
<listitem>
<para>cvsup2.jp.FreeBSD.org (maintainer
<email>max@FreeBSD.org</email>)</para>
</listitem>
<listitem>
<para>cvsup3.jp.FreeBSD.org (maintainer
<email>shige@cin.nihon-u.ac.jp</email>)</para>
</listitem>
<listitem>
<para>cvsup4.jp.FreeBSD.org (maintainer
<email>cvsup-admin@ftp.media.kyoto-u.ac.jp</email>)</para>
</listitem>
<listitem>
<para>cvsup5.jp.FreeBSD.org (maintainer
<email>cvsup@imasy.or.jp</email>)</para>
</listitem>
<listitem>
<para>cvsup6.jp.FreeBSD.org (maintainer
<email>cvsupadm@jp.FreeBSD.org</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Korea</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.kr.FreeBSD.org (maintainer
<email>cjh@kr.FreeBSD.org</email>)</para>
</listitem>
<listitem>
<para>cvsup2.kr.FreeBSD.org (maintainer
<email>holywar@mail.holywar.net</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Lithuania</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.lt.FreeBSD.org (maintainer
<email>domas.mituzas@delfi.lt</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Netherlands</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.nl.FreeBSD.org (maintainer
<email>xaa@xaa.iae.nl</email>)</para>
</listitem>
<listitem>
<para>cvsup2.nl.FreeBSD.org (maintainer
<email>cvsup@nl.uu.net</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Norway</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.no.FreeBSD.org (maintainer
<email>Per.Hove@math.ntnu.no</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Poland</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.pl.FreeBSD.org (maintainer
<email>Mariusz@kam.pl</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Portugal</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.pt.FreeBSD.org (maintainer
<email>jpedras@webvolution.net</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Russia</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.ru.FreeBSD.org (maintainer
<email>ache@nagual.pp.ru</email>)</para>
</listitem>
<listitem>
<para>cvsup2.ru.FreeBSD.org (maintainer
<email>dv@dv.ru</email>)</para>
</listitem>
<listitem>
<para>cvsup3.ru.FreeBSD.org (maintainer
<email>fjoe@iclub.nsu.ru</email>)</para>
</listitem>
<listitem>
<para>cvsup4.ru.FreeBSD.org (maintainer
<email>zhecka@klondike.ru</email>)</para>
</listitem>
<listitem>
<para>cvsup5.ru.FreeBSD.org (maintainer
<email>maxim@macomnet.ru</email>)</para>
</listitem>
<listitem>
<para>cvsup6.ru.FreeBSD.org (maintainer
<email>pvr@corbina.net</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Slovak Republic</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.sk.FreeBSD.org (maintainer
<email>tps@tps.sk</email>)</para>
</listitem>
<listitem>
<para>cvsup2.sk.FreeBSD.org (maintainer
<email>tps@tps.sk</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Slovenia</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.si.FreeBSD.org (maintainer
<email>blaz@si.FreeBSD.org</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>South Africa</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.za.FreeBSD.org (maintainer
<email>markm@FreeBSD.org</email>)</para>
</listitem>
<listitem>
<para>cvsup2.za.FreeBSD.org (maintainer
<email>markm@FreeBSD.org</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Spain</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.es.FreeBSD.org (maintainer
<email>jesusr@FreeBSD.org</email>)</para>
</listitem>
<listitem>
<para>cvsup2.es.FreeBSD.org (maintainer
<email>jesusr@FreeBSD.org</email>)</para>
</listitem>
<listitem>
<para>cvsup3.es.FreeBSD.org (maintainer
<email>jose@we.lc.ehu.es</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Sweden</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.se.FreeBSD.org (maintainer
<email>pantzer@ludd.luth.se</email>)</para>
</listitem>
<listitem>
<para>cvsup2.se.FreeBSD.org (maintainer
<email>cvsup@dataphone.net</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Taiwan</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.tw.FreeBSD.org (maintainer
<email>jdli@freebsd.csie.nctu.edu.tw</email>)</para>
</listitem>
<listitem>
<para>cvsup2.tw.FreeBSD.org (maintainer
<email>ycheng@sinica.edu.tw</email>)</para>
</listitem>
<listitem>
<para>cvsup3.tw.FreeBSD.org (maintainer
<email>foxfair@FreeBSD.org</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Ukraine</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup2.ua.FreeBSD.org (maintainer
<email>freebsd-mnt@lucky.net</email>)</para>
</listitem>
<listitem>
<para>cvsup3.ua.FreeBSD.org (maintainer
<email>ftpmaster@ukr.net</email>), Kiev</para>
</listitem>
<listitem>
<para>cvsup4.ua.FreeBSD.org (maintainer
<email>phantom@cris.net</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>United Kingdom</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup.uk.FreeBSD.org (maintainer
<email>ftp-admin@plig.net</email>)</para>
</listitem>
<listitem>
<para>cvsup2.uk.FreeBSD.org (maintainer
<email>brian@FreeBSD.org</email>)</para>
</listitem>
<listitem>
<para>cvsup3.uk.FreeBSD.org (maintainer
<email>ben.hughes@uk.easynet.net</email>)</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>USA</term>
<listitem>
<itemizedlist>
<listitem>
<para>cvsup1.FreeBSD.org (maintainer
<email>skynyrd@opus.cts.cwu.edu</email>), Washington
state</para>
</listitem>
<listitem>
<para>cvsup2.FreeBSD.org (maintainer
<email>jdp@FreeBSD.org</email>), California</para>
</listitem>
<listitem>
<para>cvsup3.FreeBSD.org (maintainer
<email>wollman@FreeBSD.org</email>), Massachusetts</para>
</listitem>
<listitem>
<para>cvsup4.FreeBSD.org (maintainer
<email>rgrimes@FreeBSD.org</email>), Oregon</para>
</listitem>
<listitem>
<para>cvsup5.FreeBSD.org (maintainer
<email>mjr@blackened.com</email>), Arizona</para>
</listitem>
<listitem>
<para>cvsup7.FreeBSD.org (maintainer
<email>jdp@FreeBSD.org</email>), Washington state</para>
</listitem>
<listitem>
<para>cvsup8.FreeBSD.org (maintainer
<email>hostmaster@bigmirror.com</email>), Washington
state</para>
</listitem>
<listitem>
<para>cvsup9.FreeBSD.org (maintainer
<email>qbsd@uswest.net</email>), Minnesota</para>
</listitem>
<listitem>
<para>cvsup10.FreeBSD.org (maintainer
<email>jdp@FreeBSD.org</email>), California</para>
</listitem>
<listitem>
<para>cvsup11.FreeBSD.org (maintainer
<email>cvsup@research.uu.net</email>), Virginia</para>
</listitem>
<listitem>
<para>cvsup12.FreeBSD.org (maintainer
<email>will@FreeBSD.org</email>), Indiana</para>
</listitem>
<listitem>
<para>cvsup13.FreeBSD.org (maintainer
<email>dima@valueclick.com</email>), California</para>
</listitem>
<listitem>
<para>cvsup14.FreeBSD.org (maintainer
<email>freebsd-cvsup@mfnx.net</email>), California</para>
</listitem>
<listitem>
<para>cvsup15.FreeBSD.org (maintainer
<email>cvsup@math.uic.edu</email>), Illinois</para>
</listitem>
<listitem>
<para>cvsup16.FreeBSD.org (maintainer
<email>pth3k@virginia.edu</email>), Virginia</para>
</listitem>
<listitem>
<para>cvsup17.FreeBSD.org (maintainer
<email>cvsup@mirrortree.com</email>), Washington state</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
<sect1 id="mirrors-afs">
<title>AFS Sites</title>
<para>AFS servers for FreeBSD 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>
</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:
-->