<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [

  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
  <!ENTITY dhfirstname "<firstname>Iustin</firstname>">
  <!ENTITY dhsurname   "<surname>Pop</surname>">
  <!-- Please adjust the date whenever revising the manpage. -->
  <!ENTITY dhdate      "<date>October 30, 2005</date>">
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
       allowed: see man(7), man(1). -->
  <!ENTITY dhsection   "<manvolnum>5</manvolnum>">
  <!ENTITY dhemail     "<email>iusty@k1024.org</email>">
  <!ENTITY dhusername  "Iustin Pop">
  <!ENTITY dhucpackage "<refentrytitle>CFVERSD.CONF</refentrytitle>">
  <!ENTITY conf         "cfversd.conf">

  <!ENTITY cfvers      "<productname>cfvers</productname>">
  <!ENTITY gnu         "<acronym>GNU</acronym>">
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">

  <!ENTITY server-sqlite SYSTEM "examples/server-sqlite.sample">
  <!ENTITY server-postgresql SYSTEM "examples/server-postgresql.sample">
  <!ENTITY server-combined SYSTEM "examples/server-combined.sample">

]>

<refentry>
  <refentryinfo>
    <address>
      &dhemail;
    </address>
    <author>
      &dhfirstname;
      &dhsurname;
    </author>
    <copyright>
      <year>2003</year>
      <year>2004</year>
      <year>2005</year>
      <holder>&dhusername;</holder>
    </copyright>
    &dhdate;
  </refentryinfo>
  <refmeta>
    &dhucpackage;

    &dhsection;
  </refmeta>
  <refnamediv>
    <refname>&conf;</refname>

    <refpurpose>&conf; configuration file for the cfversd daemon</refpurpose>
  </refnamediv>
  <refsect1>
    <title>DESCRIPTION</title>

    <para>This manual page documents the <filename>/etc/cfvers/cfversd.conf</filename> configuration file for the &cfvers; system version 0.5.4.</para>

    <para>&cfvers; is a version control system designed for the management of configuration files in Unix-like operating systems..</para>
    <para><filename>&conf;</filename> is the configuration file for the server <command>cfversd</command>.</para>

    <para>The filename structure is that of an .ini file (it's parsed by Python's ConfigParser module):
      <screen>[section1]
key1=value1
key2=value2
[section2]
</screen>
    </para>
    <refsect2>
      <title>Available sections</title>
      <para>The available sections are <command>server</command>, <command>repository</command>, <command>auth</command> and the per-user <command>user-NAME</command>, where NAME is the user's name.</para>
    </refsect2>
    <refsect2>
      <title>server section</title>
      <para>The <option>port</option> key selects the port number to listen on.</para>
      <para>The <option>pidfile</option> key selects the filename into which to write the pid of the server.</para>
    </refsect2>
    <refsect2>
      <title>repository section</title>
      <para>The <option>method</option> key selects the driver for the repository. Currently defined are postgresql and sqlite.</para>
      <para>The <option>connect</option> key selects the driver-specific connection string. For example, for sqlite it is the filename into which to store the database.</para>
    </refsect2>
    <refsect2>
      <title>auth section</title>
      <para>The <option>users</option> key is the only one valid and it contains a comma separated list of valid users. For each user, a separate <command>user-NAME</command> section must exist, with NAME being the user's name in this list.</para>
    </refsect2>
    <refsect2>
      <title>user-NAME section</title>
      <para>The user-NAME sections each define a valid user togheter with its rights.</para>
      <para>The <option>valid_from</option> option contains the comma separated list of valid IP addresses. The list must contain only host ip addresses, without netmasks.</para>
      <para>The <option>areas</option> option contains the comma separated list of valid areas for this user, if the user hasn't the <option>admin</option> flag true.</para>
      <para>The <option>admin</option> boolean option specifies if this user is a regular user or an admin user. Only an admin user can create areas, and the admin users can access all areas.</para>
      <para>The <option>client_password</option> and <option>server_password</option> key contain the client-to-server and server-to-client password. They can be the same thing or not.</para>
    </refsect2>
    <refsect2>
      <title>Postgresql driver</title>
      <para>For postgresql, the connect information to the database, is in the following format: <computeroutput>dbname=<replaceable>mydb</replaceable> user=<replaceable>myuser</replaceable> password=<replaceable>mypassword</replaceable></computeroutput>. The available keys/value pairs are:
	<variablelist>
	  <varlistentry>
	    <term>dbname</term>
	    <listitem>
	      <para>the name of the database to connect to (required);</para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term>user</term>
	    <listitem>
	      <para>the username to use when connecting to the database; not required (in which case the connection will use your login name);</para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term>password</term>
	    <listitem>
	      <para>the password for the database; not required if you use the <option>trust</option> authentication method;</para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term>host</term>
	    <listitem>
	      <para>the IP address or name of the database server; if not given, the connection will be on localhost through UNIX sockets;</para>
	    </listitem>
	  </varlistentry>
	</variablelist>
	For more options possible, please consult the Postgresql documentation.
      </para>
    </refsect2>

    <refsect2>
      <title>Sqlite driver</title>
      <para>For sqlite, the connection data is simply a string containing a filename. In it the database will be written.
      </para>
    </refsect2>
    
  </refsect1>

  <refsect1>
    <title>EXAMPLES</title>
    <refsect2>
      <title>server with sqlite</title>
      <screen>&server-sqlite;</screen>
    </refsect2>
    <refsect2>
      <title>server with postgresql</title>
      <screen>&server-postgresql;</screen>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>SEE ALSO</title>
    <para>
      <citerefentry>
	<refentrytitle>cfv</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>cfvadmin</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>cfversd</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>cfversd.conf</refentrytitle>
	<manvolnum>5</manvolnum>
      </citerefentry>,
      <citetitle>cfvers user manual</citetitle>
    </para>
    <para>
      <citerefentry>
	<refentrytitle>cvs</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>svn</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry>
    </para>

  </refsect1>
  <refsect1>
    <title>AUTHOR</title>

    <para>This manual page was written by &dhusername; &dhemail; </para>

    <para>The manual pages <citerefentry>
	<refentrytitle>cvs</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry> and <citerefentry>
	<refentrytitle>svn</refentrytitle>
	<manvolnum>1</manvolnum>
      </citerefentry> were used as sources of inspiration (and copy-paste in some cases), since these are real versioning programs :-), with proper man pages.
    </para>

  </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
