<?xml version="1.0" encoding="iso-8859-1"?>
<!--
The FreeBSD Documentation Project
$FreeBSD$
-->
<appendix xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="mirrors">
<title>Obtaining &os;</title>
<sect1 xml:id="mirrors-cdrom">
<title><acronym>CD</acronym> and
<acronym>DVD</acronym> Sets</title>
<para>&os; <acronym>CD</acronym> and <acronym>DVD</acronym> sets
are available from several online retailers:</para>
<itemizedlist>
<listitem>
<address>&os; Mall, Inc.
<street>2420 Sand Creek Rd C-1 #347</street>
<city>Brentwood</city>, <state>CA</state>
<postcode>94513</postcode>
<country>USA</country>
Phone: <phone>+1 925 240-6652</phone>
Fax: <fax>+1 925 674-0821</fax>
Email: <email>info@freebsdmall.com</email>
WWW: <otheraddr
xlink:href="http://www.freebsdmall.com/">http://www.freebsdmall.com/</otheraddr>
</address>
</listitem>
<listitem>
<address>Getlinux
<street>78 Rue de la Croix Rochopt</street>
<city>Épinay-sous-Sénart</city>
<postcode>91860</postcode>
<country>France</country>
Email: <email>contact@getlinux.fr</email>
WWW: <otheraddr
xlink:href="http://www.getlinux.fr">http://www.getlinux.fr/</otheraddr>
</address>
</listitem>
<listitem>
<address>Dr. Hinner EDV
<street>Kochelseestr. 11</street>
<postcode>D-81371</postcode> <city>München</city>
<country>Germany</country>
Phone: <phone>(0177) 428 419 0</phone>
Email: <email>infow@hinner.de</email>
WWW: <otheraddr
xlink:href="http://www.hinner.de/linux/freebsd.html">http://www.hinner.de/linux/freebsd.html</otheraddr>
</address>
</listitem>
<!--
This site is just showing the Apache test page.
<listitem>
<address>
Linux Distro UK
<street>42 Wharfedale Road</street>
<city>Margate</city>
<postcode>CT9 2TB</postcode>
<country>United Kingdom</country>
WWW: <otheraddr
xlink:href="https://linux-distro.co.uk/">https://linux-distro.co.uk/</otheraddr>
</address>
</listitem>
This site doesn't have any products newer than 8.1 which is now EOL'd
<listitem>
<address>The Linux Emporium
<street>The Techno Centre, Puma Way</street>
<city>Parkside</city>
<postcode>CV1 2TT</postcode>
<country>United Kingdom</country>
Phone: <phone>+44 (0)247 615 8121</phone>
Fax: <fax>+44 1491 837016</fax>
WWW: <otheraddr
xlink:href="http://www.linuxemporium.co.uk/products/bsd/">http://www.linuxemporium.co.uk/products/bsd/</otheraddr>
</address>
</listitem>
-->
<listitem>
<address>Linux Center
<street>Galernaya Street, 55</street>
<city>Saint-Petersburg</city>
<postcode>190000</postcode>
<country>Russia</country>
Phone: <phone>+7-812-309-06-86</phone>
Email: <email>info@linuxcenter.ru</email>
WWW: <otheraddr
xlink:href="http://linuxcenter.ru/shop/freebsd">http://linuxcenter.ru/shop/freebsd</otheraddr>
</address>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="mirrors-ftp">
<title><acronym>FTP</acronym> Sites</title>
<para>The official sources for &os; are available via anonymous
<acronym>FTP</acronym> from a worldwide set of mirror sites.
The site <uri
xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp://ftp.FreeBSD.org/pub/FreeBSD/</uri>
is available via <acronym>HTTP</acronym> and
<acronym>FTP</acronym>. It is made up of many machines operated
by the project cluster administrators and behind GeoDNS to
direct users to the closest available mirror.</para>
<para>Additionally, &os; is available via anonymous
<acronym>FTP</acronym> from the following mirror sites. When
obtaining &os; via anonymous <acronym>FTP</acronym>,
please try to use a nearby site. The mirror sites listed as
<quote>Primary Mirror Sites</quote> typically have the entire
&os; archive (all the currently available versions for each of
the architectures) but faster download speeds are probably
available from a site that is in your country or region. The
regional sites carry the most recent versions for the most
popular architecture(s) but might not carry the entire &os;
archive. All sites provide access via anonymous
<acronym>FTP</acronym> but some sites also provide access via
other methods. The access methods available for each site are
provided in parentheses after the hostname.</para>
&chap.mirrors.ftp.index.inc;
&chap.mirrors.lastmod.inc;
&chap.mirrors.ftp.inc;
</sect1>
<sect1 xml:id="svn">
<title>Using <application>Subversion</application></title>
<indexterm>
<primary>Subversion</primary>
</indexterm>
<sect2 xml:id="svn-intro">
<title>Introduction</title>
<para>As of July 2012, &os; uses
<application>Subversion</application> as the only version
control system for storing all of &os;'s source code,
documentation, and the Ports Collection.</para>
<note>
<para><application>Subversion</application> is generally a
developer tool. Users may prefer to use
<command>freebsd-update</command> (<xref
linkend="updating-upgrading-freebsdupdate"/>) to update
the &os; base system, and <command>portsnap</command> (<xref
linkend="ports-using"/>) to update the &os; Ports
Collection.</para>
</note>
<para>This section demonstrates how to install
<application>Subversion</application> on a &os; system and
use it to create a local copy of a &os; repository.
Additional information on the use of
<application>Subversion</application> is included.</para>
</sect2>
<sect2 xml:id="svn-ssl-certificates">
<title>Root <acronym>SSL</acronym> Certificates</title>
<para>Installing
<package role="port">security/ca_root_nss</package> allows
<application>Subversion</application> to verify the identity
of <acronym>HTTPS</acronym> repository servers. The root
<acronym>SSL</acronym> certificates can be installed from a
port:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/security/ca_root_nss</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>or as a package:</para>
<screen>&prompt.root; <userinput>pkg install ca_root_nss</userinput></screen>
</sect2>
<sect2 xml:id="svn-svnlite">
<title><application>Svnlite</application></title>
<para>A lightweight version of
<application>Subversion</application> is already installed
on &os; as <command>svnlite</command>. The port or package
version of <application>Subversion</application> is only
needed if the Python or Perl <acronym>API</acronym> is needed,
or if a later version of Subversion is desired.</para>
<para>The only difference from normal
<application>Subversion</application> use is that the command
name is <literal>svnlite</literal>.</para>
</sect2>
<sect2 xml:id="svn-install">
<title>Installation</title>
<para>If <command>svnlite</command> is unavailable or the full
version of <application>Subversion</application> is needed,
then it must be installed.</para>
<para><application>Subversion</application> can be installed
from the Ports Collection:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/devel/subversion</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para><application>Subversion</application> can also be
installed as a package:</para>
<screen>&prompt.root; <userinput>pkg install subversion</userinput></screen>
</sect2>
<sect2 xml:id="svn-usage">
<title>Running <application>Subversion</application></title>
<para>To fetch a clean copy of the sources into a local
directory, use <command>svn</command>. The files in this
directory are called a <emphasis>local working
copy</emphasis>.</para>
<warning>
<para>Move or delete an existing destination directory before
using <command>checkout</command> for the first time.</para>
<para>Checkout over an existing
non-<command>svn</command> directory can cause conflicts
between the existing files and those brought in from the
repository.</para>
</warning>
<para><application>Subversion</application> uses
<acronym>URL</acronym>s to designate a repository, taking the
form of <replaceable>protocol://hostname/path</replaceable>.
The first component of the path is the &os; repository to
access. There are three different repositories,
<literal>base</literal> for the &os; base system source code,
<literal>ports</literal> for the Ports Collection, and
<literal>doc</literal> for documentation. For example, the
URL
<literal>https://svn.FreeBSD.org/ports/head/</literal>
specifies the main branch of the ports repository,
using the <literal>https</literal> protocol.</para>
<para>A checkout from a given repository is performed with a
command like this:</para>
<screen>&prompt.root; <userinput>svn checkout https://svn.FreeBSD.org/<replaceable>repository</replaceable>/<replaceable>branch</replaceable> <replaceable>lwcdir</replaceable></userinput></screen>
<para>where:</para>
<itemizedlist>
<listitem>
<para><replaceable>repository</replaceable> is one of the
Project repositories: <literal>base</literal>,
<literal>ports</literal>, or
<literal>doc</literal>.</para>
</listitem>
<listitem>
<para><replaceable>branch</replaceable> depends on the
repository used. <literal>ports</literal> and
<literal>doc</literal> are mostly updated in the
<literal>head</literal> branch, while
<literal>base</literal> maintains the latest version of
-CURRENT under <literal>head</literal> and the respective
latest versions of the -STABLE branches under
<literal>stable/9</literal>
(9.<replaceable>x</replaceable>) and
<literal>stable/10</literal>
(10.<replaceable>x</replaceable>).</para>
</listitem>
<listitem>
<para><replaceable>lwcdir</replaceable> is the target
directory where the contents of the specified branch
should be placed. This is usually
<filename>/usr/ports</filename> for
<literal>ports</literal>,
<filename>/usr/src</filename> for
<literal>base</literal>, and
<filename>/usr/doc</filename> for
<literal>doc</literal>.</para>
</listitem>
</itemizedlist>
<para>This example checks out the Ports Collection from the
&os; repository using the <acronym>HTTPS</acronym>
protocol, placing the local working copy in
<filename>/usr/ports</filename>. If
<filename>/usr/ports</filename> is already
present but was not created by <command>svn</command>,
remember to rename or delete it before the checkout.</para>
<screen>&prompt.root; <userinput>svn checkout https://svn.FreeBSD.org/ports/head /usr/ports</userinput></screen>
<para>Because the initial checkout must download the full
branch of the remote repository, it can take a while. Please
be patient.</para>
<para>After the initial checkout, the local working copy can be
updated by running:</para>
<screen>&prompt.root; <userinput>svn update <replaceable>lwcdir</replaceable></userinput></screen>
<para>To update
<filename>/usr/ports</filename> created in
the example above, use:</para>
<screen>&prompt.root; <userinput>svn update /usr/ports</userinput></screen>
<para>The update is much quicker than a checkout, only
transferring files that have changed.</para>
<para>An alternate way of updating the local working copy after
checkout is provided by the <filename>Makefile</filename> in
the <filename>/usr/ports</filename>,
<filename>/usr/src</filename>, and
<filename>/usr/doc</filename> directories.
Set <varname>SVN_UPDATE</varname> and use the
<buildtarget>update</buildtarget> target. For example, to
update <filename>/usr/src</filename>:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make update SVN_UPDATE=yes</userinput></screen>
</sect2>
<sect2 xml:id="svn-mirrors">
<title><application>Subversion</application> Mirror
Sites</title>
<indexterm>
<primary>Subversion Repository</primary>
<secondary>Mirror Sites</secondary>
</indexterm>
<para>The &os; <application>Subversion</application>
repository is:</para>
<programlisting>svn.FreeBSD.org</programlisting>
<para>This is
a publicly accessible mirror network that uses GeoDNS to
select an appropriate back end server. To view the &os;
<application>Subversion</application> repositories through a
browser, use <link
xlink:href="https://svnweb.FreeBSD.org/">https://svnweb.FreeBSD.org/</link>.</para>
<para>HTTPS is the preferred protocol, but the
<filename role="package">security/ca_root_nss</filename>
package will need to be installed in order to automatically
validate certificates.</para>
</sect2>
<sect2>
<title>For More Information</title>
<para>For other information about using
<application>Subversion</application>, please see the
<quote>Subversion Book</quote>, titled
<link xlink:href="http://svnbook.red-bean.com/">Version
Control with Subversion</link>, or the <link
xlink:href="http://subversion.apache.org/docs/">Subversion
Documentation</link>.</para>
</sect2>
</sect1>
<sect1 xml:id="mirrors-rsync">
<title>Using <application>rsync</application></title>
<para>These sites make &os; available through the rsync
protocol. The <application>rsync</application> utility works in
much the same way as the &man.rcp.1; command, but has more
options and uses the rsync remote-update protocol which
transfers only the differences between two sets of files, thus
greatly speeding up the synchronization over the network. This
is most useful for mirror sites of the &os;
<acronym>FTP</acronym> server. The
<application>rsync</application> suite is available for many
operating systems, on &os;, see the <package>net/rsync</package>
port or use the package.</para>
<variablelist>
<varlistentry>
<term>Czech Republic</term>
<listitem>
<para>rsync://ftp.cz.FreeBSD.org/</para>
<para>Available collections:</para>
<itemizedlist>
<listitem>
<para>ftp: A partial mirror of the &os;
<acronym>FTP</acronym> server.</para>
</listitem>
<listitem>
<para>&os;: A full mirror of the &os;
<acronym>FTP</acronym> server.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Netherlands</term>
<listitem>
<para>rsync://ftp.nl.FreeBSD.org/</para>
<para>Available collections:</para>
<itemizedlist>
<listitem>
<para>&os;: A full mirror of the &os;
<acronym>FTP</acronym> server.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Russia</term>
<listitem>
<para>rsync://ftp.mtu.ru/</para>
<para>Available collections:</para>
<itemizedlist>
<listitem>
<para>&os;: A full mirror of the &os;
<acronym>FTP</acronym> server.</para>
</listitem>
<listitem>
<para>&os;-Archive: The mirror of &os; Archive
<acronym>FTP</acronym> server.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Sweden</term>
<listitem>
<para>rsync://ftp4.se.freebsd.org/</para>
<para>Available collections:</para>
<itemizedlist>
<listitem>
<para>&os;: A full mirror of the &os;
<acronym>FTP</acronym> server.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Taiwan</term>
<listitem>
<para>rsync://ftp.tw.FreeBSD.org/</para>
<para>rsync://ftp2.tw.FreeBSD.org/</para>
<para>rsync://ftp6.tw.FreeBSD.org/</para>
<para>Available collections:</para>
<itemizedlist>
<listitem>
<para>&os;: A full mirror of the &os;
<acronym>FTP</acronym> server.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>United Kingdom</term>
<listitem>
<para>rsync://rsync.mirrorservice.org/</para>
<para>Available collections:</para>
<itemizedlist>
<listitem>
<para>ftp.freebsd.org: A full mirror of the &os;
<acronym>FTP</acronym> server.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>United States of America</term>
<listitem>
<para>rsync://ftp-master.FreeBSD.org/</para>
<para>This server may only be used by &os; primary mirror
sites.</para>
<para>Available collections:</para>
<itemizedlist>
<listitem>
<para>&os;: The master archive of the &os;
<acronym>FTP</acronym> server.</para>
</listitem>
<listitem>
<para>acl: The &os; master ACL list.</para>
</listitem>
</itemizedlist>
<para>rsync://ftp13.FreeBSD.org/</para>
<para>Available collections:</para>
<itemizedlist>
<listitem>
<para>&os;: A full mirror of the &os;
<acronym>FTP</acronym> server.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</sect1>
</appendix>