  <chapter id="cvs">
    <title>Using CVS</title>
    <!-- this part is sort of duplicated in the Wine User Guide's
    getting.sgml file (as a short intro to CVS). Please don't forget 
    to update both!
    -->

    <sect1>
      <title>What is CVS?</title>

      <para>
	<ulink url="http://www.cvshome.org/">CVS</ulink> (Concurrent
	Versions System) is the leading source code control system in
	the freeware community.  It manages source code of projects,
	keeps a history of changes to the source files and improves
	conflict management when two or more developers work on the same
	code part.  Another major benefit of CVS is that it's very easy
	to update a project to the latest version.  CVS features
	flexible branching, intelligent merging, high quality <ulink
	url="http://www.loria.fr/~molli/cvs/doc/cvs_toc.html">documentation</ulink>
	and client/server access with a wide choice of <ulink
	url="http://www.loria.fr/cgi-bin/molli/wilma.cgi/rel">clients</ulink>.
      </para>

      <para>
	Current Wine sources are available via anonymous client/server
	CVS.  You will need CVS 1.9 or above.  If you are coming from
	behind a firewall, you will either need a hole in the firewall
	for the CVS port (2401) or use <ulink
	url="http://www.cvshome.org/cyclic/cyclic-pages/unoff-socks.txt">SOCKS</ulink>.
      </para>
    </sect1>

    <sect1>
      <title>CVS installation check</title>
      <para>
        First you need to make sure that you have <command>cvs</command>
        installed.
        To check whether this is the case, please run:
      </para>
      <screen>
      <prompt>$ </><userinput>cvs</>
      </screen>
      <para>
	If this was successful, then you should have gotten a nice CVS
	"Usage" help output.  Otherwise (e.g. an error "cvs: command not
	found") you still need to install a CVS package for your
	particular operating system, similar to the instructions given
	in the Wine User Guide chapters for getting and installing a
	Wine package on various systems.
      </para>
    </sect1>

    <sect1>
      <title>Configuring Wine-specific CVS settings</title>

      <para>
        First, you should do a
      </para>
      <screen>
      <prompt>$ </><userinput>touch ~/.cvspass</>
      </screen>
      <para>
        to create or update the file <filename>.cvspass</filename> in
        your home directory, since CVS needs this file (for password
	and login management) and will complain loudly if it doesn't exist.
      </para>

      <para>
        Second, we need to create the file
        <filename>.cvsrc</filename> in your home directory
        containing the CVS configuration settings needed for a valid
        Wine CVS setup (use CVS compression, properly update file and
        directory information, ...).
        The content of this file should look like the following:
        <programlisting>
cvs -z 3
update -PAd
diff -u
checkout -P
        </programlisting>
        Create the file with an editor of your choice, either by running
        <screen>
        <prompt>$ </><userinput>&lt;editor&gt; ~/.cvsrc</>
        </screen>
        , where &lt;editor&gt; is the editor you want to use (e.g.
        <command>joe</command>, <command>ae</command>,
        <command>vi</command>),
        or by creating the file <filename>.cvsrc</filename> in your
        home directory with your favorite graphical editor like nedit, kedit,
        gedit or others.
      </para>
      <para>
	<command>-z</command> sets the compression level (Levels higher
	than 3 will probably not result in faster downloading unless you
	have a fast machine and a slow network connection).
	<command>-Pd</command> will delete empty directories and create
	newly added ones.  <command>-A</command> will reset any previous
	tag in order to get the latest version in the tree.
	<command>-u</command> will create the easiest to read
	patches.  Please do not submit patches with <command>diff -w</command>.
      </para>

    </sect1>

    <sect1>
      <title>Downloading the Wine CVS tree</title>

      <para>
        Once CVS is installed and the Wine specific CVS
        configuration is done, you can now do a login on our CVS
        server and checkout (download) the Wine source code.
        First, let's do the server login:
      </para>
      <screen>
      <prompt>$ </><userinput>cvs -d :pserver:cvs@cvs.winehq.com:/home/wine login</>
      </screen>
      <para>
        If <command>cvs</command> successfully connects to the CVS server,
        then you will get a "CVS password:" prompt.
        Simply enter "cvs" as the password (the password is
        <emphasis>case sensitive</emphasis>: no capital letters!).
	If you want to use one of the mirror servers for Wine CVS
	download, please refer to the section <link
	linkend="cvs-mirrors">Wine CVS mirror servers</link>.
      </para>

      <para>
        After login, we are able to download the Wine source code tree.
        Please make sure that you are in the directory that you want
        to have the Wine source code in (the Wine source code will
        use the subdirectory <filename>wine/</filename> in this
        directory, since the subdirectory is named after the CVS module
        that we want to check out). We assume that your current directory
        might be your user's home directory.
        To download the Wine tree into the subdirectory <filename>wine/</filename>, run:
      </para>
      <screen>
      <prompt>$ </><userinput>cvs -d :pserver:cvs@cvs.winehq.com:/home/wine checkout wine</>
      </screen>
      <para>
        Downloading the CVS tree might take a while (some minutes
        to few hours), depending on your connection speed.
        Once the download is finished, you should keep a note of
        which directory the newly downloaded
        <filename>wine/</filename> directory is in, by running
        <command>pwd</command> (Print Working Directory):
      </para>
      <screen>
      <prompt>$ </><userinput>pwd</>
      </screen>
      <para>
        Later, you will be able to change to this directory by
        running:
      </para>
      <screen>
      <prompt>$ </><userinput>cd <replaceable>&lt;some_dir&gt;</></>
      </screen>
      <para>
        , where &lt;some_dir&gt; is the directory that
        <command>pwd</command> gave you.
        By running
      </para>
      <screen>
      <prompt>$ </><userinput>cd wine</>
      </screen>
      <para>
        , you can now change to the directory of the Wine CVS tree
        you just downloaded.
      </para>
    </sect1>

    <sect1 id="cvs-mirrors">
      <title>Wine CVS mirror servers</title>

      <para>
	Wine's CVS tree is mirrored at several places around the world
	to make sure that the source is easily accessible. Note that not
	all servers have all repositories available, but all have at
	least the Wine source.
      </para>
      <para>
        CVS access is granted through CVS' "pserver"
        authentication. You should set
        your <command>CVSROOT</command> environment variable to point to one of
        the servers using this format:
      </para>
      <screen>
CVSROOT=:pserver:&lt;Username&gt;@&lt;CVS Server&gt;:&lt;Server root&gt;
      </screen>
      <para>
        Alternatively, you can use the -d parameter of
        <command>cvs</command> instead.
        Substitute the applicable fields from the table below.
      </para>
      <para>
        Just do a traceroute and a ping on all servers below to find out
	which are
	closest to you.
      </para>
      <para>
        <table><title>Wine CVS servers</title>
	  <tgroup cols=3 align="center">
	    <thead>
	      <row>
	        <entry>CVS Server</entry>
		<entry>Username</entry>
		<entry>Password</entry>
	      </row>
	    </thead>
	    <tbody>
	      <row>
	        <entry>cvs.winehq.com; Minnesota, USA (CodeWeavers)</entry>
		<entry>cvs</entry>
		<entry>cvs</entry>
	      </row>
	    </tbody>
	  </tgroup>
	</table>
      </para>
    </sect1>

    <sect1>
      <title>Other modules available via CVS from WineHQ</title>

      <para>
	The WineHQ CVS server makes a couple of other things available as well.
	To get these, log in anonymously as above and do:
      </para>
      <screen>
      <prompt>$ </><userinput>cvs co <replaceable>&lt;modulename&gt;</></>
      </screen>
      <para>
        where &lt;modulename&gt; is one of:
      </para>
      <itemizedlist>
        <listitem>
	  <para>
            <emphasis>Winehq_com</emphasis> -- source for the WineHQ web site
	  </para>
        </listitem>
        <listitem>
	  <para>
	    <emphasis>c2man</emphasis> -- automatic documentation system, specially modified for Wine
	  </para>
        </listitem>
      </itemizedlist>
    </sect1>

    <sect1>
      <title>Converting a Wine FTP download to a CVS tree</title>

      <para>
        Getting the entire Wine source tree via 
        CVS is pretty slow, especially compared to getting Wine from an
        FTP mirror near you. It's possible to convert a Wine tarball to a CVS
        sandbox, just like you would get by checking out the entire source
        via CVS. Here's how to do it:
      </para>
      <itemizedlist>
        <listitem>
	  <para>
            Get the latest Wine snapshot: Wine-<replaceable>YYMMDD</replaceable>.tar.gz
	  </para>
        </listitem>
        <listitem>
	  <para>
            Get wine-cvsdirs-<replaceable>YYMMDD</replaceable>.tar.gz from <ulink url="ftp://ftp.winehq.com/pub/wine/">ftp://ftp.winehq.com/pub/wine</ulink>
	  </para>
	  <para>
            Use an FTP client rather than a web browser, and be sure to turn off passive mode, otherwise the fetch will hang.
	  </para>
	  <para>
             e.g.:
	  </para>
          <screen>
ftp ftp.winehq.com
cd pub/wine
passive off
ls
          </screen>
        </listitem>
        <listitem>
	  <para>
            Untar them on top of each other:
          </para>
          <screen>
tar xzf Wine-<replaceable>YYYYMMDD</replaceable>.tar.gz
mv wine-<replaceable>YYYYMMDD</replaceable> wine
tar xzf wine-cvsdirs-<replaceable>YYYYMMDD</replaceable>.tar.gz
          </screen>
        </listitem>
        <listitem>
	  <para>
            Update from main tree: login as above, then do
	  </para>
          <screen>
cd wine
cvs update -PAd
          </screen>
        </listitem>
      </itemizedlist>
      <para>
        You will now be completely up to date.
      </para>
    </sect1>

    <sect1>
      <title>WineHQ cvsweb access</title>

      <para>
Direct access to the complete CVS tree is also possible, using Bill Fenner's
<ulink url="http://www.freebsd.org/~fenner/cvsweb/">cvsweb</ulink> package:
        <itemizedlist>
          <listitem>
	    <para>
              <ulink url="http://cvs.winehq.com/cvsweb">cvs.winehq.com/cvsweb</ulink>, on the primary CVS repository
	    </para>
          </listitem>
        </itemizedlist>
      </para>
    </sect1>

  </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-parent-document:("wine-devel.sgml" "set" "book" "part" "chapter" "")
End:
-->
