<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../../general.ent"> %general-entities; <!ENTITY cvs-download-http "http://ftp.gnu.org/non-gnu/cvs/source/stable/&cvs-version;/cvs-&cvs-version;.tar.bz2"> <!ENTITY cvs-download-ftp "ftp://ftp.gnu.org/non-gnu/cvs/source/stable/&cvs-version;/cvs-&cvs-version;.tar.bz2"> <!ENTITY cvs-md5sum "0213ea514e231559d6ff8f80a34117f0"> <!ENTITY cvs-size "2.9 MB"> <!ENTITY cvs-buildsize "32.3 MB"> <!ENTITY cvs-time "0.3 SBU (additional ~20 SBU to run the test suite)"> ]> <sect1 id="cvs" xreflabel="CVS-&cvs-version;"> <?dbhtml filename="cvs.html"?> <sect1info> <othername>$LastChangedBy$</othername> <date>$Date$</date> </sect1info> <title>CVS-&cvs-version;</title> <indexterm zone="cvs"> <primary sortas="a-CVS">CVS</primary> </indexterm> <sect2 role="package"> <title>Introduction to CVS</title> <para><application>CVS</application> is the Concurrent Versions System. This is a version control system useful for projects using a central repository to hold files and then track all changes made to those files. These instructions install the client used to manipulate the repository, creation of a repository is covered at <xref linkend="cvsserver"/>.</para> <bridgehead renderas="sect3">Package Information</bridgehead> <itemizedlist spacing="compact"> <listitem> <para>Download (HTTP): <ulink url="&cvs-download-http;"/></para> </listitem> <listitem> <para>Download (FTP): <ulink url="&cvs-download-ftp;"/></para> </listitem> <listitem> <para>Download MD5 sum: &cvs-md5sum;</para> </listitem> <listitem> <para>Download size: &cvs-size;</para> </listitem> <listitem> <para>Estimated disk space required: &cvs-buildsize;</para> </listitem> <listitem> <para>Estimated build time: &cvs-time;</para> </listitem> </itemizedlist> <bridgehead renderas="sect3">Additional Downloads</bridgehead> <itemizedlist spacing='compact'> <listitem> <para>Recommended patch: <ulink url="&patch-root;/cvs-&cvs-version;-zlib-1.patch"/></para> </listitem> </itemizedlist> <bridgehead renderas="sect3">CVS Dependencies</bridgehead> <bridgehead renderas="sect4">Optional</bridgehead> <para role="optional"><xref linkend="gdbm"/>, <xref linkend="tcsh"/>, <xref linkend="openssh"/>, <ulink url="http://www.pdc.kth.se/kth-krb/">krb4</ulink>, <xref linkend="mitkrb"/> or <xref linkend="heimdal"/> (for the GSSAPI libraries), <xref linkend="gs"/> or <xref linkend="espgs"/>, and an <xref linkend="server-mail"/> (that provides a <command>sendmail</command> command)</para> <para><application>CVS</application> will invoke a default text editor to create a commit message if the <parameter>-m "Commit message"</parameter> parameter was not used when changes are committed to a respository. <application>CVS</application> looks for the following text editors, in the order shown below, during configuration to determine the default. This default can always be overridden by the <envar>CVSEDITOR</envar> or <envar>EDITOR</envar> environment variables and can be specified directly by passing the <option>--with-editor=<replaceable><desired text editor></replaceable></option> parameter to the <command>configure</command> script.</para> <itemizedlist spacing='compact'> <listitem> <para><xref linkend="vim"/></para> </listitem> <listitem> <para><xref linkend="emacs"/></para> </listitem> <listitem> <para><xref linkend="nano"/></para> </listitem> <listitem> <para><xref linkend="pine"/> (for Pico)</para> </listitem> </itemizedlist> <para condition="html" role="usernotes">User Notes: <ulink url="&blfs-wiki;/cvs"/></para> </sect2> <sect2 role="installation"> <title>Installation of CVS</title> <para>By default <application>CVS</application> is statically linked against the <application>Zlib</application> library included in its source tree. This makes it exposed to possible security vulnerabilities in that library. If you want to modify <application>CVS</application> to use the system shared <application>Zlib</application> library, apply the following patch:</para> <screen><userinput>patch -Np1 -i ../cvs-&cvs-version;-zlib-1.patch</userinput></screen> <para>Install <application>CVS</application> by running the following commands:</para> <screen><userinput>./configure --prefix=/usr && make</userinput></screen> <para>If you have <xref linkend="tetex"/> installed and wish to create DVI, Postscript, HTML or text docs from the documentation source files, issue the following command:</para> <screen><userinput>make -C doc html txt dvi ps</userinput></screen> <para>To test the results, issue: <command>make check</command>. This will take quite a while. If you don't have <command>rsh</command> configured for access to the host you are building on (or you didn't pass the <option>--with-rsh=</option> parameter to the <command>configure</command> script, some tests may fail. If you passed the <option>--with-rsh=ssh</option> parameter to enable <command>ssh</command> as the default remote shell program, you'll need to issue the following command so that the tests will complete without any failures:</para> <screen><userinput>sed -e 's/rsh};/ssh};/' \ -e 's/g=rw,o=r$/g=r,o=r/' \ -i src/sanity.sh</userinput></screen> <para>Now, as the <systemitem class="username">root</systemitem> user:</para> <screen role='root'><userinput>make install && install -v -m755 -d /usr/share/doc/cvs-&cvs-version; && install -v -m644 FAQ README /usr/share/doc/cvs-&cvs-version; && install -v -m644 doc/*.pdf /usr/share/doc/cvs-&cvs-version;</userinput></screen> <para>If you created any additional documentation, install it by issuing the following commands as the <systemitem class="username">root</systemitem> user:</para> <screen role='root'><userinput>install -v -m644 doc/*.{ps,dvi,txt} /usr/share/doc/cvs-&cvs-version; && install -v -m755 -d /usr/share/doc/cvs-&cvs-version;/html/cvs{,client} && install -v -m644 doc/cvs.html/* \ /usr/share/doc/cvs-&cvs-version;/html/cvs && install -v -m644 doc/cvsclient.html/* \ /usr/share/doc/cvs-&cvs-version;/html/cvsclient</userinput></screen> </sect2> <sect2 role="configuration"> <title>Configuring CVS</title> <sect3 id="cvs-config"> <title>Config Files</title> <para><filename>~/.cvsrc</filename>, <filename>~/.cvswrappers</filename>, and <filename>~/.cvspass</filename>.</para> <indexterm zone="cvs cvs-config"> <primary sortas="e-AA.cvsrc">~/.cvsrc</primary> </indexterm> <indexterm zone="cvs cvs-config"> <primary sortas="e-AA.cvswrappers">~/.cvswrappers</primary> </indexterm> <indexterm zone="cvs cvs-config"> <primary sortas="e-AA.cvspass">~/.cvspass</primary> </indexterm> </sect3> <sect3> <title>Configuration Information</title> <para><filename>~/.cvsrc</filename> is the main <application>CVS</application> configuration file. This file is used by users to specify defaults for different <command>cvs</command> commands. For example, to make all <command>cvs diff</command> commands run with <option>-u</option>, a user would add <option>diff -u</option> to their <filename>.cvsrc</filename> file.</para> <para><filename>~/.cvswrappers</filename> specifies wrappers to be used in addition to those specified in the <filename>CVSROOT/cvswrappers</filename> file in the repository.</para> <para><filename>~/.cvspass</filename> contains passwords used to complete logins to servers.</para> </sect3> </sect2> <sect2 role="content"> <title>Contents</title> <segmentedlist> <segtitle>Installed Programs</segtitle> <segtitle>Installed Libraries</segtitle> <segtitle>Installed Directories</segtitle> <seglistitem> <seg>cvs, cvsbug, and rcs2log</seg> <seg>None</seg> <seg>/usr/share/cvs and /usr/share/doc/cvs-&cvs-version;</seg> </seglistitem> </segmentedlist> <variablelist> <bridgehead renderas="sect3">Short Descriptions</bridgehead> <?dbfo list-presentation="list"?> <?dbhtml list-presentation="table"?> <varlistentry id="cvs-prog"> <term><command>cvs</command></term> <listitem> <para>is the main program file for the concurrent versions system.</para> <indexterm zone="cvs cvs-prog"> <primary sortas="b-cvs">cvs</primary> </indexterm> </listitem> </varlistentry> <varlistentry id="cvsbug"> <term><command>cvsbug</command></term> <listitem> <para>is used to send problem reports about <application>CVS</application> to a central support site.</para> <indexterm zone="cvs cvsbug"> <primary sortas="b-cvsbug">cvsbug</primary> </indexterm> </listitem> </varlistentry> <varlistentry id="rcs2log"> <term><command>rcs2log</command></term> <listitem> <para>is a symlink to the contributed RCS to Change Log generator.</para> <indexterm zone="cvs rcs2log"> <primary sortas="b-rcs2log">rcs2log</primary> </indexterm> </listitem> </varlistentry> </variablelist> </sect2> </sect1>