[Fusionforge-commits] r7930 - in trunk/gforge/docs/docbook/docbook: . administration_guide contribution_guide/include installation_guide introduction user_guide/project_functions

Alain Peyrat aljeux at libremir.placard.fr.eu.org
Thu Jul 9 20:58:43 CEST 2009


Author: aljeux
Date: 2009-07-09 20:58:42 +0200 (Thu, 09 Jul 2009)
New Revision: 7930

Modified:
   trunk/gforge/docs/docbook/docbook/administration_guide/administration_guide.xml
   trunk/gforge/docs/docbook/docbook/contribution_guide/include/coding_standards.xml
   trunk/gforge/docs/docbook/docbook/gforge_manual.xml
   trunk/gforge/docs/docbook/docbook/installation_guide/installation_guide.xml
   trunk/gforge/docs/docbook/docbook/introduction/introduction.xml
   trunk/gforge/docs/docbook/docbook/user_guide/project_functions/file_releases.xml
   trunk/gforge/docs/docbook/docbook/user_guide/project_functions/news.xml
   trunk/gforge/docs/docbook/docbook/user_guide/project_functions/task_manager.xml
Log:
Some small corrections in docbook for testing serna xml WYSIWYG editor

Modified: trunk/gforge/docs/docbook/docbook/administration_guide/administration_guide.xml
===================================================================
--- trunk/gforge/docs/docbook/docbook/administration_guide/administration_guide.xml	2009-07-09 10:00:33 UTC (rev 7929)
+++ trunk/gforge/docs/docbook/docbook/administration_guide/administration_guide.xml	2009-07-09 18:58:42 UTC (rev 7930)
@@ -1,153 +1,175 @@
-<?xml version="1.0" encoding="UTF-8" ?>
+<?xml version='1.0' encoding='UTF-8'?>
 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "../../../dtd/docbookx.dtd" [
-	<!ENTITY % authors SYSTEM "../entities/authors.ent">
-	%authors;
-]> 
-<article lang="en-US" id="administration_guide">
-	<articleinfo>
-		<title>FusionForge Administration Guide</title>
-		<authorgroup>
-			&ken_mccullagh;
-		</authorgroup>
-	</articleinfo>
-
-	<section>
-		<title>Introduction</title>
-		<para>
-			This document is intended to be a guide for administering projects on  FusionForge. It is not intended to describe how to administer the FusionForge site itself. It is assumed that the reader will have also read the FusionForge User's Guide before reading this document.
-		</para>
-	</section>
-	<section>
-		<title>What is FusionForge?</title>
-		<para>
-			FusionForge was developed by the Open Source community as an environment in which to host projects in a way that the code, documentation, binaries etc. were publicly accessible to all who wished to see them, and members of the public could use the software that was developed, and contribute feedback, bugs, ideas and suggestions, and even help to develop code/modules/documentation/resources for the software.
-		</para>
-		<para>
-			Traditionally it was used for software projects, although there is really no reason why it cannot be used to develop hardware or silicon projects also.
-		</para>
-		<para>
-			Generally, everyone needs to have read access to the data associated with a project, with (some of) the developers having write access to the data. Usually there is a maintainer of the code (the project leader or the person who registered the project) and contributers who email  any changes to the code that they developed - bug fixes, additional functionality - which the maintainer adds to the code in the CVS tree upon verification that it was correct/clean/maintainable/useful.
-		</para>
-	</section>
-	<section>
-		<title>What can FusionForge do for me?</title>
-		<para>
-			FusionForge can provide a centralized access point for several useful utilities and tools which could be used in a project. Some of these tools include:
-		</para>
-		<orderedlist>
-			<listitem><para>A version control repository (CVS)</para></listitem>
-			<listitem><para>Mailing lists</para></listitem>
-			<listitem><para>Discussion forums</para></listitem>
-			<listitem><para>Bug tracking</para></listitem>
-			<listitem><para>A web interface to CVS</para></listitem>
-			<listitem><para>Task lists</para></listitem>
-			<listitem><para>A website which provides some usage statistics, including the project members, the number of mailing lists, CVS statistics, the number of items in the discussion forums, etc.</para></listitem>
-		</orderedlist>
-	</section>
-	<section>
-		<title>Setting up a new project</title>
-		<para>
-			In order to get a project up and running, you must be registered as a user of FusionForge. This is described in the FusionForge Users Guide.
-		</para>
-	</section>
-	<section>
-		<title>Registering a new project</title>
-		<para>
-			It is quite straightforward to register a new project on FusionForge. The steps involved are:
-		</para>
-		<orderedlist>
-			<listitem><para>Login to FusionForge</para></listitem>
-			<listitem><para>Select Register New Project from the menu on the left hand side of the page.</para></listitem>
-			<listitem><para>Fill in the Full Name, Unix Name, Project Purpose and Summarization fields (paying attention to the restrictions listed on the page) and select a license type.</para></listitem>
-			<listitem><para>Click Proceed with this registration and assuming that all the details are correct, and that the name is unique, the project will be accepted pending approval. If there are details missing, or other errors, you will be informed of the problem.</para></listitem>
-			<listitem><para>Assuming that the project is approved, you will be sent back an email confirming that this is the case, and listing the website, cvsroot etc of the project you created. It will take some time for the cvsroot to be created - usually by an overnight cronjob.</para></listitem>
-		</orderedlist>
-		<para>
-			Once you have received the email confirming project acceptance, you will be able to find your project through the search box by enteringyour project's name or details. Clicking on the link provided will bring you to the project summary page which is the default starting point for all the project administration.
-		</para>
-	</section>
-	<section>
-		<title>Administering a new project</title>
-		<para>
-			This section provides an oversight on how to set up the FusionForge utilities so that they can be used by your project once it has been approved. Typically the cvs space will have been allocated by the morning after the confirmation email is sent to the project requester. In order to get the project into a useable state, the project administrator will need to perform some steps.
-		</para>
-	</section>
-	<section>
-		<title>CVS repository</title>
-		<para>
-			If the project does not already have a CVS repository in place (eg if an existing project is being added to FusionForge mid-life, rather than a brand new project being started) the CVS repository will need to be set up. There are plenty of resources on CVS around so this document will not attempt to describe how to use CVS, but will provide just enough information to get started.
-		</para>
-	</section>
-	<section>
-		<title>Setting up the CVSROOT</title>
-		<para>
-			Before any CVS operations can be carried out, the CVSROOT environment variable must be set in the command shell you are using, or in whatever CVS GUI you are using, such as WinCVS. 
-		</para>
-	</section>
-	<section>
-		<title>Setting your <filename>.rhosts</filename> file correctly</title>
-		<para>
-			In your UNIX home directory there exists a file called <filename>.rhosts</filename>. This file requires special permissions, namely :
-		</para>
-		<screen>-rw-r--r--   .rhosts</screen>
-		<para>
-			If this is not correct, you will encounter problems trying to access CVS. If this file is not present, it must be created.
-		</para>
-		<para>
-			Secondly, your <filename>.rhosts</filename> file must contain the name of the machine(s) from which you are accessing CVS. The format of the file is as follows:
-		</para>
-		<programlisting><![CDATA[
-	machine1 username
-	machine2 username
+ <!ENTITY % authors SYSTEM "../entities/authors.ent">
+ %authors;
+]>
+<article id="administration_guide" lang="en-US">
+  <articleinfo>
+    <title>FusionForge Administration Guide</title>
+    <authorgroup>
+&ken_mccullagh;    </authorgroup>
+  </articleinfo>
+  <section>
+    <title>Introduction</title>
+    <para>
+   This document is intended to be a guide for administering projects on  FusionForge. It is not intended to describe how to administer the FusionForge site itself. It is assumed that the reader will have also read the FusionForge User&apos;s Guide before reading this document.
+  </para>
+  </section>
+  <section>
+    <title>What is FusionForge?</title>
+    <para>
+   FusionForge was developed by the Open Source community as an environment in which to host projects in a way that the code, documentation, binaries etc. were publicly accessible to all who wished to see them, and members of the public could use the software that was developed, and contribute feedback, bugs, ideas and suggestions, and even help to develop code/modules/documentation/resources for the software.
+  </para>
+    <para>
+   Traditionally it was used for software projects, although there is really no reason why it cannot be used to develop hardware or silicon projects also.
+  </para>
+    <para>
+   Generally, everyone needs to have read access to the data associated with a project, with (some of) the developers having write access to the data. Usually there is a maintainer of the code (the project leader or the person who registered the project) and contributers who email  any changes to the code that they developed - bug fixes, additional functionality - which the maintainer adds to the code in the CVS tree upon verification that it was correct/clean/maintainable/useful.
+  </para>
+  </section>
+  <section>
+    <title>What can FusionForge do for me?</title>
+    <para>
+   FusionForge can provide a centralized access point for several useful utilities and tools which could be used in a project. Some of these tools include:
+  </para>
+    <orderedlist>
+      <listitem>
+        <para>A version control repository (CVS or Subversion)</para>
+      </listitem>
+      <listitem>
+        <para>Mailing lists</para>
+      </listitem>
+      <listitem>
+        <para>Discussion forums</para>
+      </listitem>
+      <listitem>
+        <para>Bug tracking</para>
+      </listitem>
+      <listitem>
+        <para>A web interface to CVS or Subversion</para>
+      </listitem>
+      <listitem>
+        <para>Task lists</para>
+      </listitem>
+      <listitem>
+        <para>A website which provides some usage statistics, including the project members, the number of mailing lists, source code statistics, the number of items in the discussion forums, etc.</para>
+      </listitem>
+    </orderedlist>
+  </section>
+  <section>
+    <title>Setting up a new project</title>
+    <para>
+   In order to get a project up and running, you must be registered as a user of FusionForge. This is described in the FusionForge Users Guide.
+  </para>
+  </section>
+  <section>
+    <title>Registering a new project</title>
+    <para>
+   It is quite straightforward to register a new project on FusionForge. The steps involved are:
+  </para>
+    <orderedlist>
+      <listitem>
+        <para>Login to FusionForge</para>
+      </listitem>
+      <listitem>
+        <para>Select Register New Project from the menu on the left hand side of the page.</para>
+      </listitem>
+      <listitem>
+        <para>Fill in the Full Name, Unix Name, Project Purpose and Summarization fields (paying attention to the restrictions listed on the page) and select a license type.</para>
+      </listitem>
+      <listitem>
+        <para>Click Proceed with this registration and assuming that all the details are correct, and that the name is unique, the project will be accepted pending approval. If there are details missing, or other errors, you will be informed of the problem.</para>
+      </listitem>
+      <listitem>
+        <para>Assuming that the project is approved, you will be sent back an email confirming that this is the case, and listing the website, cvsroot etc of the project you created. It will take some time for the cvsroot to be created - usually by an overnight cronjob.</para>
+      </listitem>
+    </orderedlist>
+    <para>
+   Once you have received the email confirming project acceptance, you will be able to find your project through the search box by enteringyour project&apos;s name or details. Clicking on the link provided will bring you to the project summary page which is the default starting point for all the project administration.
+  </para>
+  </section>
+  <section>
+    <title>Administering a new project</title>
+    <para>
+   This section provides an oversight on how to set up the FusionForge utilities so that they can be used by your project once it has been approved. Typically the cvs space will have been allocated by the morning after the confirmation email is sent to the project requester. In order to get the project into a useable state, the project administrator will need to perform some steps.
+  </para>
+  </section>
+  <section>
+    <title>CVS repository</title>
+    <para>
+   If the project does not already have a CVS repository in place (eg if an existing project is being added to FusionForge mid-life, rather than a brand new project being started) the CVS repository will need to be set up. There are plenty of resources on CVS around so this document will not attempt to describe how to use CVS, but will provide just enough information to get started.
+  </para>
+  </section>
+  <section>
+    <title>Setting up the CVSROOT</title>
+    <para>
+   Before any CVS operations can be carried out, the CVSROOT environment variable must be set in the command shell you are using, or in whatever CVS GUI you are using, such as WinCVS. 
+  </para>
+  </section>
+  <section>
+    <title>Setting your <filename>.rhosts</filename> file correctly</title>
+    <para>
+   In your UNIX home directory there exists a file called <filename>.rhosts</filename>. This file requires special permissions, namely :
+  </para>
+    <screen>-rw-r--r--   .rhosts</screen>
+    <para>
+   If this is not correct, you will encounter problems trying to access CVS. If this file is not present, it must be created.
+  </para>
+    <para>
+   Secondly, your <filename>.rhosts</filename> file must contain the name of the machine(s) from which you are accessing CVS. The format of the file is as follows:
+  </para>
+    <programlisting><![CDATA[
+ machine1 username
+ machine2 username
 ]]></programlisting>
-		<para>
-			It is recommended that fully qualified domain names are used, or IP addresses, as this seems to solve problems arising due to machines in different offices accessing each other. The last line of the file may optionally be
-		</para>
-<programlisting>
-	+ username 
+    <para>
+   It is recommended that fully qualified domain names are used, or IP addresses, as this seems to solve problems arising due to machines in different offices accessing each other. The last line of the file may optionally be
+  </para>
+    <programlisting>
+ + username 
 </programlisting>
-		<para>
-			to allow UNIX (not Linux) machines to use wildcard matching to allow access from all hosts on the network. This does NOT work on Linux, which is what the FusionForge server runs. Also, if the wildcard entry is before the machine you wish to use, then it will not work either.
-		</para>
-	</section>
-	<section>
-		<title>Creating the CVS repository</title>
-		<para>
-			Once CVSROOT has been set, the base entry for CVS can be added. This is the top level for the directory structure of the repository.
-		</para>
-		<para>
-			This is done using the cvs import command. The following steps show how it can be done.
-		</para>
-		<screen><![CDATA[
-	$ cd <top of tree>
-	$ cvs import <module-name> <vendor-tag> <release-tag>
+    <para>
+   to allow UNIX (not Linux) machines to use wildcard matching to allow access from all hosts on the network. This does NOT work on Linux, which is what the FusionForge server runs. Also, if the wildcard entry is before the machine you wish to use, then it will not work either.
+  </para>
+  </section>
+  <section>
+    <title>Creating the CVS repository</title>
+    <para>
+   Once CVSROOT has been set, the base entry for CVS can be added. This is the top level for the directory structure of the repository.
+  </para>
+    <para>
+   This is done using the cvs import command. The following steps show how it can be done.
+  </para>
+    <screen><![CDATA[
+ $ cd <top of tree>
+ $ cvs import <module-name> <vendor-tag> <release-tag>
 ]]></screen>
-		<para>
-			e.g. suppose we wish to import a directory structure called myproject, which was obtained from "customer" and is labelled "releaseone" we would do:
-		</para>
-		<screen><![CDATA[
-	$ cd path/to/myproject
-	$ cvs import myproject customer releaseone
+    <para>
+   e.g. suppose we wish to import a directory structure called myproject, which was obtained from &quot;customer&quot; and is labelled &quot;releaseone&quot; we would do:
+  </para>
+    <screen><![CDATA[
+ $ cd path/to/myproject
+ $ cvs import myproject customer releaseone
 ]]></screen>
-		<para>
-			If we wanted to create a clean, new directory structure called mynewproject we could do something like this.
-		</para>
-		<screen><![CDATA[
-	$ mkdir mynewproject
-	$ cd mynewproject
-	$ cvs import mynewproject mycompany start
+    <para>
+   If we wanted to create a clean, new directory structure called mynewproject we could do something like this.
+  </para>
+    <screen><![CDATA[
+ $ mkdir mynewproject
+ $ cd mynewproject
+ $ cvs import mynewproject mycompany start
 ]]></screen>
-		<para>
-			This is pretty much all that has to be done to start up the CVS repository - after this the repository can be used in the normal way. It is also possible to import several modules to the same CVS repository. e.g.
-		</para>
-		<screen><![CDATA[
-	$ cd path/to/src
-	$ cvs import src S3 src0
-	$ cd path/to/docs
-	$ cvs import docs S3 docs0
+    <para>
+   This is pretty much all that has to be done to start up the CVS repository - after this the repository can be used in the normal way. It is also possible to import several modules to the same CVS repository. e.g.
+  </para>
+    <screen><![CDATA[
+ $ cd path/to/src
+ $ cvs import src S3 src0
+ $ cd path/to/docs
+ $ cvs import docs S3 docs0
 ]]></screen>
-		<para>
-			But as was said earlier, this is not the place to provide a complete introduction to CVS.  Go out and find some of the abundant documentation that is available for it on the web and elsewhere. Most importantly, if you run into a problem with CVS, it is NOT the FusionForge administrator's fault so don't go running to them every time. Try to figure it out yourself or go looking for help on CVS related news groups.
-		</para>
-	</section>
+    <para>
+   But as was said earlier, this is not the place to provide a complete introduction to CVS.  Go out and find some of the abundant documentation that is available for it on the web and elsewhere. Most importantly, if you run into a problem with CVS, it is NOT the FusionForge administrator&apos;s fault so don&apos;t go running to them every time. Try to figure it out yourself or go looking for help on CVS related news groups.
+  </para>
+  </section>
 </article>

Modified: trunk/gforge/docs/docbook/docbook/contribution_guide/include/coding_standards.xml
===================================================================
--- trunk/gforge/docs/docbook/docbook/contribution_guide/include/coding_standards.xml	2009-07-09 10:00:33 UTC (rev 7929)
+++ trunk/gforge/docs/docbook/docbook/contribution_guide/include/coding_standards.xml	2009-07-09 18:58:42 UTC (rev 7930)
@@ -1,41 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
 <section id="cg_coding_standards">
-	<title>PHP Coding Standards</title>
-	<section>
-		<title>Introduction</title>
-		<para>
-			Coding Standards.  Live them, love them.
-		</para>
-		<para>
-			Then come up with a new introduction...
-		</para>
-	</section>
-	<section>
-		<title>Comments</title>
-		<section>
-			<title>Guidelines</title>
-			<para>
-				Non-documentation comments are strongly encouraged. A general rule of thumb is that if you look at a section of code and think &quot;Wow, I don't want to try and describe that&quot;, you need to comment it before you forget how it works.
-			</para>
-			<itemizedlist>
-				<listitem><para>C++ style comments (/* */) and standard C comments (//) are both acceptable.</para></listitem>
-				<listitem><para>Use of perl/shell style comments (#) is prohibited.</para></listitem>
-			</itemizedlist>
-		</section>
-		<section>
-			<title>PHPdoc Tags</title>
-			<para>
-				Inline documentation for classes should follow the PHPDoc convention, similar to Javadoc. More information about PHPDoc can be found here: <ulink url="http://www.phpdoc.de/">http://www.phpdoc.de/</ulink>
-			</para>
-		</section>
-		<section>
-			<title>File comments</title>
-			<para>
-				Every file should start with a comment block describing its purpose, version, author and a copyright message. The comment block should be a block comment in standard JavaDoc format along with a CVS Id tag. While all JavaDoc tags are allowed, only the tags in the examples below will be parsed by PHPdoc.
-			</para>
-			<para>
-				FusionForge contains a mixed copyright. For files that have been changed since the FusionForge fork, the following header should be used:
-			</para>
-<programlisting><![CDATA[
+  <title>PHP Coding Standards</title>
+  <section>
+    <title>Introduction</title>
+    <para>
+   Coding Standards.  Live them, love them.
+  </para>
+    <para>
+   Then come up with a new introduction...
+  </para>
+  </section>
+  <section>
+    <title>Comments</title>
+    <section>
+      <title>Guidelines</title>
+      <para>
+    Non-documentation comments are strongly encouraged. A general rule of thumb is that if you look at a section of code and think &quot;Wow, I don&apos;t want to try and describe that&quot;, you need to comment it before you forget how it works.
+   </para>
+      <itemizedlist>
+        <listitem>
+          <para>C++ style comments (/* */) and standard C comments (//) are both acceptable.</para>
+        </listitem>
+        <listitem>
+          <para>Use of perl/shell style comments (#) is prohibited.</para>
+        </listitem>
+      </itemizedlist>
+    </section>
+    <section>
+      <title>PHPdoc Tags</title>
+      <para>
+    Inline documentation for classes should follow the PHPDoc convention, similar to Javadoc. More information about PHPDoc can be found here: <ulink url="http://www.phpdoc.de/">http://www.phpdoc.de/</ulink>
+   </para>
+    </section>
+    <section>
+      <title>File comments</title>
+      <para>
+    Every file should start with a comment block describing its purpose, version, author and a copyright message. The comment block should be a block comment in standard JavaDoc format along with a CVS Id tag. While all JavaDoc tags are allowed, only the tags in the examples below will be parsed by PHPdoc.
+   </para>
+      <para>
+    FusionForge contains a mixed copyright. For files that have been changed since the FusionForge fork, the following header should be used:
+   </para>
+      <programlisting><![CDATA[
 /**
  *
  * brief description.
@@ -46,13 +51,13 @@
  *
  */
 ]]></programlisting>
-		</section>
-		<section>
-			<title>Function and Class Comments</title>
-			<para>
-				Similarly, every function should have a block comment specifying name, parameters, return values, and last change date.
-			</para>
-<programlisting><![CDATA[
+    </section>
+    <section>
+      <title>Function and Class Comments</title>
+      <para>
+    Similarly, every function should have a block comment specifying name, parameters, return values, and last change date.
+   </para>
+      <programlisting><![CDATA[
 /**
  * brief description.
  * long description.  more long description.
@@ -66,88 +71,88 @@
  *
  */
 ]]></programlisting>
-		</section>
-		<section>
-			<title>Note</title>
-			<para>
-				The placement of periods in the short and long descriptions is important to the PHPdoc parser. The first period always ends the short description. All future periods are part of the long description, ending with a blank comment line.  The long comment is optional.
-			</para>
-		</section>
-	</section>
-	<section>
-		<title>Formatting</title>
-		<section>
-			<title>Indenting</title>
-			<para>
-				All indenting is done with TABS. Before committing any file to CVS, make sure you first replace spaces with tabs and verify the formatting.
-			</para>
-		</section>
-		<section>
-			<title>PHP Tags</title>
-			<para>
-				The use of <markup>&lt;?php ?&gt;</markup> to delimit PHP code is required. Using <markup>&lt;? ?&gt;</markup> is not valid. This is the most portable way to include PHP code on differing operating systems and webserver setups.  Also, XML parsers are confused by the shorthand syntax.
-			</para>
-		</section>
-	</section>
-	<section>
-		<title>Templating</title>
-		<para>
-			In the FusionForge system, PHP itself is used as the template language.  To make the templating clearer, template files should be separated out and included once objects and database results are established. Detailed examples are in the docs repository and <link linkend="cg_templating">here</link>.
-		</para>
-		<para>
-			Variables in the templates are presented surrounded by <markup> &lt;?php ?&gt;</markup> tags instead of the {} tags that some other template libraries would use. The end result is the same, with less bloat and more efficient code.
-		</para>
-	</section>
-	<section>
-		<title>Expressions</title>
-		<itemizedlist>
-			<listitem>
-				<para>Use parentheses liberally to resolve ambiguity.</para>
-			</listitem>
-			<listitem>
-				<para>Using parentheses can force an order of evaluation. This saves the time a reader may spend remembering precedence of operators.</para>
-			</listitem> 
-			<listitem>
-				<para>Don't sacrifice clarity for cleverness.</para>
-			</listitem>
-			<listitem>
-				<para>Write conditional expressions so that they read naturally aloud.</para>
-			</listitem> 
-			<listitem>
-				<para>Sometimes eliminating a not operator (!) will make an expression more understandable.</para>
-			</listitem> 
-			<listitem>
-				<para>Keep each line simple.</para>
-			</listitem>
-			<listitem>
-				<para>The ternary operator (x ? 1 : 2) usually indicates too much code on one line. if... else if... else is usually more readable.</para>
-			</listitem>
-		</itemizedlist>
-	</section>
-	<section>
-		<title>Functions</title>
-		<section>
-			<title>Function Calls</title>
-			<para>
-				unctions shall be called with no spaces between the function name, the opening parenthesis, and the first parameter; spaces between commas and each parameter, and no space between the last parameter, the closing parenthesis, and the semicolon. Here's an example:
-			</para>
-<programlisting><![CDATA[
+    </section>
+    <section>
+      <title>Note</title>
+      <para>
+    The placement of periods in the short and long descriptions is important to the PHPdoc parser. The first period always ends the short description. All future periods are part of the long description, ending with a blank comment line.  The long comment is optional.
+   </para>
+    </section>
+  </section>
+  <section>
+    <title>Formatting</title>
+    <section>
+      <title>Indenting</title>
+      <para>
+    All indenting is done with TABS. Before committing any file to Subversion, make sure you first replace spaces with tabs and verify the formatting.
+   </para>
+    </section>
+    <section>
+      <title>PHP Tags</title>
+      <para>
+    The use of <markup>&lt;?php ?&gt;</markup> to delimit PHP code is required. Using <markup>&lt;? ?&gt;</markup> is not valid. This is the most portable way to include PHP code on differing operating systems and webserver setups.  Also, XML parsers are confused by the shorthand syntax.
+   </para>
+    </section>
+  </section>
+  <section>
+    <title>Templating</title>
+    <para>
+   In the FusionForge system, PHP itself is used as the template language.  To make the templating clearer, template files should be separated out and included once objects and database results are established. Detailed examples are in the docs repository and <link linkend="cg_templating">here</link>.
+  </para>
+    <para>
+   Variables in the templates are presented surrounded by <markup> &lt;?php ?&gt;</markup> tags instead of the {} tags that some other template libraries would use. The end result is the same, with less bloat and more efficient code.
+  </para>
+  </section>
+  <section>
+    <title>Expressions</title>
+    <itemizedlist>
+      <listitem>
+        <para>Use parentheses liberally to resolve ambiguity.</para>
+      </listitem>
+      <listitem>
+        <para>Using parentheses can force an order of evaluation. This saves the time a reader may spend remembering precedence of operators.</para>
+      </listitem>
+      <listitem>
+        <para>Don&apos;t sacrifice clarity for cleverness.</para>
+      </listitem>
+      <listitem>
+        <para>Write conditional expressions so that they read naturally aloud.</para>
+      </listitem>
+      <listitem>
+        <para>Sometimes eliminating a not operator (!) will make an expression more understandable.</para>
+      </listitem>
+      <listitem>
+        <para>Keep each line simple.</para>
+      </listitem>
+      <listitem>
+        <para>The ternary operator (x ? 1 : 2) usually indicates too much code on one line. if... else if... else is usually more readable.</para>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section>
+    <title>Functions</title>
+    <section>
+      <title>Function Calls</title>
+      <para>
+    unctions shall be called with no spaces between the function name, the opening parenthesis, and the first parameter; spaces between commas and each parameter, and no space between the last parameter, the closing parenthesis, and the semicolon. Here&apos;s an example:
+   </para>
+      <programlisting><![CDATA[
 $var = foo($bar, $baz, $quux);
 ]]></programlisting>
-			<para>
-				As displayed above, there should be one space on either side of an equals sign used to assign the return value of a function to a variable. In the case of a block of related assignments, more space may be inserted to promote readability:
-			</para>
-<programlisting><![CDATA[
-$short		= foo($bar);
-$long_variable	= foo($baz);
+      <para>
+    As displayed above, there should be one space on either side of an equals sign used to assign the return value of a function to a variable. In the case of a block of related assignments, more space may be inserted to promote readability:
+   </para>
+      <programlisting><![CDATA[
+$short  = foo($bar);
+$long_variable = foo($baz);
 ]]></programlisting>
-		</section>
-		<section>
-			<title>Function Definitions</title>
-			<para>
-				Function declarations follow the unix convention:
-			</para>
-<programlisting><![CDATA[
+    </section>
+    <section>
+      <title>Function Definitions</title>
+      <para>
+    Function declarations follow the unix convention:
+   </para>
+      <programlisting><![CDATA[
 function fooFunction($arg1, $arg2 = '') {
     if (condition) {
         statement;
@@ -156,10 +161,10 @@
 }
 
 ]]></programlisting>
-			<para>
-				Arguments with default values go at the end of the argument list. Always attempt to return a meaningful value from a function if one is appropriate. Here is a slightly longer example:
-			</para>
-<programlisting><![CDATA[
+      <para>
+    Arguments with default values go at the end of the argument list. Always attempt to return a meaningful value from a function if one is appropriate. Here is a slightly longer example:
+   </para>
+      <programlisting><![CDATA[
 function connect(&$dsn, $persistent = false) {
     if (is_array($dsn)) {
         $dsninfo = &$dsn;
@@ -174,79 +179,79 @@
     return true;
 }
 ]]></programlisting>
-		</section>
-	</section>
-	<section>
-		<title>Objects</title>
-		<para>
-			Objects should generally be normalized similar to a database so they contain only the attributes that make sense.
-		</para>
-		<para>
-			Each object should have <classname>Error</classname> as the abstract parent object unless the object or its subclasses will never produce errors.
-		</para>
-		<para>
-			Each object should also have a <methodname>create()</methodname> method which does the work of inserting a new row into the database table that this object represents.
-		</para>
-		<para>
-			An <methodname>update()</methodname> method is also required for any objects that can be changed.  Individual <methodname>set()</methodname> methods are generally not a good idea as doing separate updates to each field in the database is a performance bottleneck.
-		</para>
-		<para>
-			<methodname>fetchData()</methodname> and <methodname>getId()</methodname> are also standard in most objects. See the tracker codebase for specific examples.
-		</para>
-		<para>
-			Common sense about performance should be used when designing objects.
-		</para>
-	</section>
-	<section>
-		<title>Naming</title>
-		<itemizedlist>
-			<listitem>
-				<para>
-					Constants should always be uppercase, with underscores to separate words. Prefix constant names with the name of the class/package they are used in. For example, the constants used by the DB:: package all begin with <quote>DB_</quote>.</para>
-			</listitem>
-			<listitem>
-				<para>
-					True and false are built in to the php language and behave like constants, but should be written in lowercase to distinguish them from user-defined constants.
-				</para>
-			</listitem>
-			<listitem>
-				<para>
-					Function names should suggest an action or verb: <function>updateAddress</function>, <function>makeStateSelector</function>
-				</para>
-			</listitem>
-			<listitem>
-				<para>
-					Variable names should suggest a property or noun: <varname>UserName</varname>, <varname>Width</varname>
-				</para>
-			</listitem>
-			<listitem>
-				<para>
-					Use pronounceable names. Common abbreviations are acceptable as long as they are used the same way throughout the project.
-				</para>
-			</listitem>
-			<listitem>
-				<para>
-					Be consistent, use parallelism.  If you are abbreviating <quote>number</quote> as <quote>num</quote>, always use that abbreviation.  Don't switch to using <quote>no</quote> or <quote>nmbr</quote>.
-				</para>
-			</listitem>
-			<listitem>
-				<para>
-					Use descriptive names for variables used globally, use short names for variables used locally.
-				</para>
-<programlisting><![CDATA[
+    </section>
+  </section>
+  <section>
+    <title>Objects</title>
+    <para>
+   Objects should generally be normalized similar to a database so they contain only the attributes that make sense.
+  </para>
+    <para>
+   Each object should have <classname>Error</classname> as the abstract parent object unless the object or its subclasses will never produce errors.
+  </para>
+    <para>
+   Each object should also have a <methodname>create()</methodname> method which does the work of inserting a new row into the database table that this object represents.
+  </para>
+    <para>
+   An <methodname>update()</methodname> method is also required for any objects that can be changed.  Individual <methodname>set()</methodname> methods are generally not a good idea as doing separate updates to each field in the database is a performance bottleneck.
+  </para>
+    <para>
+   <methodname>fetchData()</methodname> and <methodname>getId()</methodname> are also standard in most objects. See the tracker codebase for specific examples.
+  </para>
+    <para>
+   Common sense about performance should be used when designing objects.
+  </para>
+  </section>
+  <section>
+    <title>Naming</title>
+    <itemizedlist>
+      <listitem>
+        <para>
+     Constants should always be uppercase, with underscores to separate words. Prefix constant names with the name of the class/package they are used in. For example, the constants used by the DB:: package all begin with <quote>DB_</quote>.</para>
+      </listitem>
+      <listitem>
+        <para>
+     True and false are built in to the php language and behave like constants, but should be written in lowercase to distinguish them from user-defined constants.
+    </para>
+      </listitem>
+      <listitem>
+        <para>
+     Function names should suggest an action or verb: <function>updateAddress</function>, <function>makeStateSelector</function>
+    </para>
+      </listitem>
+      <listitem>
+        <para>
+     Variable names should suggest a property or noun: <varname>UserName</varname>, <varname>Width</varname>
+    </para>
+      </listitem>
+      <listitem>
+        <para>
+     Use pronounceable names. Common abbreviations are acceptable as long as they are used the same way throughout the project.
+    </para>
+      </listitem>
+      <listitem>
+        <para>
+     Be consistent, use parallelism.  If you are abbreviating <quote>number</quote> as <quote>num</quote>, always use that abbreviation.  Don&apos;t switch to using <quote>no</quote> or <quote>nmbr</quote>.
+    </para>
+      </listitem>
+      <listitem>
+        <para>
+     Use descriptive names for variables used globally, use short names for variables used locally.
+    </para>
+        <programlisting><![CDATA[
 $AddressInfo = array(...);
 
 for($i=0; $i &lt; count($list); $i++)
 ]]></programlisting>
-			</listitem>
-		</itemizedlist>
-	</section>
-	<section>
-		<title>Control Structures</title>
-		<para>
-			These include if, for, while, switch, etc. Here is an example if statement, since it is the most complicated form:
-		</para>
-<programlisting><![CDATA[
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section>
+    <title>Control Structures</title>
+    <para>
+   These include if, for, while, switch, etc. Here is an example if statement, since it is the most complicated form:
+  </para>
+    <programlisting><![CDATA[
 if ((condition1) || (condition2)) {
     action1;
 } elseif ((condition3) && (condition4)) {
@@ -255,16 +260,16 @@
     defaultaction;
 }
 ]]></programlisting>
-		<para> 
-			Control statements shall have one space between the control keyword and opening parenthesis, to distinguish them from function calls.
-		</para>
-		<para>
-			You should use curly braces even in situations where they are technically optional. Having them increases readability and decreases the likelihood of logic errors being introduced when new lines are added.
-		</para>
-		<para>
-			For switch statements:
-		</para>
-<programlisting><![CDATA[
+    <para> 
+   Control statements shall have one space between the control keyword and opening parenthesis, to distinguish them from function calls.
+  </para>
+    <para>
+   You should use curly braces even in situations where they are technically optional. Having them increases readability and decreases the likelihood of logic errors being introduced when new lines are added.
+  </para>
+    <para>
+   For switch statements:
+  </para>
+    <programlisting><![CDATA[
 switch (condition) {
     case 1: {
         action1;
@@ -280,19 +285,19 @@
     }
 }
 ]]></programlisting>
-	</section>
-	<section>
-		<title>Including PHP Files</title>
-		<para>
-			Anywhere you are unconditionally including a class file, use require_once. Anywhere you are conditionally including a class file (for example, factory methods), use include_once. Either of these will ensure that class files are included only once. They share the same file list, so you don't need to worry about mixing them - a file included with require_once will not be included again by include_once.
-		</para>
-		<note>
-			<para>
-				Note: include_once and require_once are statements, not functions. You don't need parentheses around the filename to be included, however you should do it anyway and use ' (apostrophes) not &quot; (quotes):
-			</para>
-		</note>
-<programlisting><![CDATA[
+  </section>
+  <section>
+    <title>Including PHP Files</title>
+    <para>
+   Anywhere you are unconditionally including a class file, use require_once. Anywhere you are conditionally including a class file (for example, factory methods), use include_once. Either of these will ensure that class files are included only once. They share the same file list, so you don&apos;t need to worry about mixing them - a file included with require_once will not be included again by include_once.
+  </para>
+    <note>
+      <para>
+    Note: include_once and require_once are statements, not functions. You don&apos;t need parentheses around the filename to be included, however you should do it anyway and use &apos; (apostrophes) not &quot; (quotes):
+   </para>
+    </note>
+    <programlisting><![CDATA[
 include('pre.php');
 ]]></programlisting>
-	</section>
+  </section>
 </section>

Modified: trunk/gforge/docs/docbook/docbook/gforge_manual.xml
===================================================================
--- trunk/gforge/docs/docbook/docbook/gforge_manual.xml	2009-07-09 10:00:33 UTC (rev 7929)
+++ trunk/gforge/docs/docbook/docbook/gforge_manual.xml	2009-07-09 18:58:42 UTC (rev 7930)
@@ -1,34 +1,25 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "../../dtd/docbookx.dtd" [
-	<!ENTITY % authors SYSTEM "entities/authors.ent">
-	%authors;
-	<!ENTITY % xinclude SYSTEM "entities/xinclude.ent">
-	%xinclude;
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This document was created with Syntext Serna Free. --><!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "../../dtd/docbookx.dtd" [
+ <!ENTITY % authors SYSTEM "entities/authors.ent">
+ %authors;
+ <!ENTITY % xinclude SYSTEM "entities/xinclude.ent">
+ %xinclude;
 
-	<!ENTITY introduction "introduction/introduction.xml">
-	<!ENTITY installation_guide "installation_guide/installation_guide.xml">
-	<!ENTITY administration_guide "administration_guide/administration_guide.xml">
-	<!ENTITY user_guide "user_guide/user_guide.xml">
-	<!ENTITY contribution_guide "contribution_guide/contribution_guide.xml">
+ <!ENTITY introduction "introduction/introduction.xml">
+ <!ENTITY installation_guide "installation_guide/installation_guide.xml">
+ <!ENTITY administration_guide "administration_guide/administration_guide.xml">
+ <!ENTITY user_guide "user_guide/user_guide.xml">
+ <!ENTITY contribution_guide "contribution_guide/contribution_guide.xml">
 ]>
-
-<book lang="en-US" id="gforge_manual">
-	<bookinfo>
-		<title>FusionForge Manual</title>
-		<authorgroup>
-			&tom_copeland;
-			&roland_mas;
-			&ken_mccullagh;
-			&tim_perdue;
-			&guillaume_smet;
-			&reinhard_spisser;
-		</authorgroup>
-	</bookinfo>
-
-	<xi:include href="&introduction;" xmlns:xi="http://www.w3.org/2001/XInclude" />
-	<xi:include href="&installation_guide;" xmlns:xi="http://www.w3.org/2001/XInclude" />
-	<xi:include href="&administration_guide;" xmlns:xi="http://www.w3.org/2001/XInclude" />
-	<xi:include href="&user_guide;" xmlns:xi="http://www.w3.org/2001/XInclude" />
-	<xi:include href="&contribution_guide;" xmlns:xi="http://www.w3.org/2001/XInclude" />
-
+<book id="gforge_manual" lang="en-US">
+  <bookinfo>
+    <title>FusionForge Manual</title>
+    <authorgroup>
+&tom_copeland;&roland_mas;&ken_mccullagh;&tim_perdue;&guillaume_smet;&reinhard_spisser;    </authorgroup>
+  </bookinfo>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="&introduction;"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="&installation_guide;"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="&administration_guide;"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="&user_guide;"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="&contribution_guide;"/>
 </book>

Modified: trunk/gforge/docs/docbook/docbook/installation_guide/installation_guide.xml
===================================================================
--- trunk/gforge/docs/docbook/docbook/installation_guide/installation_guide.xml	2009-07-09 10:00:33 UTC (rev 7929)
+++ trunk/gforge/docs/docbook/docbook/installation_guide/installation_guide.xml	2009-07-09 18:58:42 UTC (rev 7930)
@@ -1,153 +1,177 @@
-<?xml version="1.0" encoding="UTF-8" ?>
+<?xml version='1.0' encoding='UTF-8'?>
 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "../../../dtd/docbookx.dtd" [
-	<!ENTITY % authors SYSTEM "../entities/authors.ent">
-	%authors;
+ <!ENTITY % authors SYSTEM "../entities/authors.ent">
+ %authors;
 ]>
-<article lang="en-US" id="installation_guide">
-	<articleinfo>
-		<title>FusionForge Installation Guide</title>
-		<authorgroup>
-			&reinhard_spisser;
-			&tom_copeland;
-			&ognyan_kulev;
-			&guillaume_smet;
-		</authorgroup>
-	</articleinfo>
-	<section>
-		<title>Hardware Requirements</title>
-		<para>
-			Hardware requirements are dependent on the number of users that will use the system and how active those users are.
-		</para>
-		<para>	
-			For instance, an installation of FusionForge hosts over 450 users and over 140 projects on a single CPU Pentium 2.4GHz machine with 512 MB of RAM.
-		</para>
-		<para>
-			You can find additionnal information about hardware used by several installations of FusionForge in the <ulink url="http://gforge.org/docman/view.php/1/52/gforge-sites.html">FusionForge sites list maintained by Tom Copeland</ulink>.
-		</para>
-	</section>
-	<section>
-		<title>Software Requirements</title>
-		<para>
-			FusionForge should work correctly on any system configured like this:
-		</para>
-		<orderedlist>
-			<listitem><para>Linux Operating System</para></listitem>
-			<listitem><para><ulink url="http://www.postgresql.org/">PostgreSQL</ulink> 8.3 or later (8.1, 8.2 should work)</para></listitem>
-			<listitem><para><ulink url="http://www.apache.org/">Apache</ulink> 2.2 or later</para></listitem>
-			<listitem><para><ulink url="http://www.openssl.org/">openssl</ulink> 0.9.4 or later</para></listitem>
-			<listitem><para><ulink url="http://www.openssl.org/">mod_ssl</ulink> 2.4.10 or later (included in Apache 2.0 and later)</para></listitem>
-			<listitem><para><ulink url="http://www.php.net/">PHP</ulink> 5.2 or later (php4 with the command line interface support and php5.1 should work)</para></listitem>
-			<listitem><para>php-pgsql (enable it with <literal>--with-pgsql</literal> when building PHP, or install it as package)</para></listitem>
-			<listitem><para>php-mbstring (enable it with <literal>--with-mbstring</literal> when building PHP, or install it as package)</para></listitem>
-		</orderedlist>
-		<para>
-			Optional software:
-		</para>
-		<orderedlist>
-			<listitem><para><ulink url="http://turck-mmcache.sourceforge.net">Turck MMCache</ulink> or <ulink url="http://www.php-accelerator.co.uk/">PHP Accelerator</ulink> or any other PHP accelerator (highly recommended)</para></listitem>
-			<listitem><para><ulink url="http://www.gnu.org/software/mailman/">GNU Mailman</ulink> and <ulink url="http://www.python.org/">Python</ulink> (Mailing list support)</para></listitem>
-			<listitem><para><ulink url="http://jabberd.jabberstudio.org/">Jabberd</ulink> (Jabber support)</para></listitem>
-			<listitem><para><ulink url="http://www.aditus.nu/jpgraph/">JPGraph</ulink> (Gantt Charting and Graphing Support)</para></listitem>
-			<listitem><para><ulink url="http://www.perl.org/">Perl</ulink>, <ulink url="http://dbi.perl.org/">DBI module</ulink> and associated <literal>DBD::Pg</literal>.</para></listitem>
-		</orderedlist>
-		<para>
-			Successful installations and operations have been done using the following systems:
-		</para>
-		<itemizedlist>
-			<listitem>
-				<para>Debian GNU/Linux 5.0 (Lenny)</para>
-			</listitem>
-			<listitem>
-				<para>CentOS 4 &amp; 5</para>
-			</listitem>
-			<listitem>
-				<para>RedHat Enterprise Linux 4 &amp; 5</para>
-			</listitem>
-		</itemizedlist>
-	</section>
-	<section>
-		<title>Installation</title>
-		<section>
-			<title>Overview</title>
-			<important>
-				<para>The <filename>INSTALL</filename> file in FusionForge package and <filename>README</filename> files in plugin directories are the authoritive sources for installation instructions and they should have more precedence over this guide.</para>
-			</important>
-			<note>
-				<para>This installation guide is for FusionForge 4.7.</para>
-			</note>
-			<para>FusionForge has a lot of different pieces touching a lot of different components in the system. Cronjobs are required to maintain the system, touching lots of files on a daily and hourly basis, including <filename>/etc/*</filename> system files.</para>
-			<para>The plugins that now manage the CVS and SVN functionality have made installation slightly harder because even more files have to be moved into place during installation.</para>
-			<para>The manual installation of FusionForge is documented below. Be sure to follow each step carefully, check the forums for frequently asked questions, and ask your Apache, Mailman, and PostgreSQL installation questions in the corresponding mailing lists rather than on the FusionForge forums where little help is available.</para>
-		</section>
-		<section>
-			<title>Installing FusionForge on Debian</title>
-			<para>
-				You can simply add lines found at <ulink url="http://debian.fusionforge.org/"/> to <filename>/etc/apt/sources.list</filename> and type <command>apt-get install fusionforge</command> to install a working FusionForge system, thanks to Christian Bayle and Roland Mas.
-			</para>
-			<para>
-				Note that FusionForge will soon be part of official Debian, and so you will find it in all debian mirrors all other the planet. Package versions of FusionForge may lag behind upstream versions. From scratch install snapshot are also available for a guided installation.
-			</para>
-		</section>
-		<section>
-			<title>Installing Gforge on RPM-based systems</title>
-			<para>RPM should be available soon, see <ulink url="http://fusionforge.org/"/> website for availability.</para>
-		</section>
-		<section>
-			<title>Installing FusionForge oneself on a linux distribution</title>
-			<para>To install FusionForge, follow these steps (as root):</para>
-			<section>
-				<title>Directory Layout</title>
-				<para>Instructions below assume that gforge is unpacked into <filename class="directory"><replaceable>/opt/gforge</replaceable></filename>.  There are some other directories where FusionForge stores files. In this installation guide, they are put in <filename class="directory">/var/www</filename> too.</para>
-				<note>
-					<para>If you want to be <ulink url="http://www.pathname.com/fhs/">FHS</ulink>-compliant, FusionForge should be unpacked into <filename class="directory">/usr/local/share/gforge</filename>, and directories for storing files should be in <filename class="directory">/var/lib/gforge</filename> or <filename class="directory">/var/local/gforge</filename>. You may use symbolic links to physically place files in FHS-compliant places and still use directory paths that are presented in this manual.</para>
-				</note>
-			</section>
-			<section>
-				<title>Getting the source</title>
-				<para>There is two ways to get the sources from FusionForge : </para>
-<screen>
-	# <userinput>tar -xjvf fusionforge-4.7.tar.bz2</userinput>
-	# <userinput>cd fusionforge-4.7</userinput>
-	# <userinput>mkdir -p /opt/gforge</userinput>
-	# <userinput>cp -r *<replaceable>/opt/gforge</replaceable></userinput>
+<article id="installation_guide" lang="en-US">
+  <articleinfo>
+    <title>FusionForge Installation Guide</title>
+    <authorgroup>
+&reinhard_spisser;&tom_copeland;&ognyan_kulev;&guillaume_smet;    </authorgroup>
+  </articleinfo>
+  <section>
+    <title>Hardware Requirements</title>
+    <para>
+   Hardware requirements are dependent on the number of users that will use the system and how active those users are.
+  </para>
+    <para> 
+   For instance, an installation of FusionForge hosts over 450 users and over 140 projects on a single CPU Pentium 2.4GHz machine with 512 MB of RAM.
+  </para>
+    <para>
+   You can find additionnal information about hardware used by several installations of FusionForge in the <ulink url="http://gforge.org/docman/view.php/1/52/gforge-sites.html">FusionForge sites list maintained by Tom Copeland</ulink>.
+  </para>
+  </section>
+  <section>
+    <title>Software Requirements</title>
+    <para>
+   FusionForge should work correctly on any system configured like this:
+  </para>
+    <orderedlist>
+      <listitem>
+        <para>Linux Operating System</para>
+      </listitem>
+      <listitem>
+        <para><ulink url="http://www.postgresql.org/">PostgreSQL</ulink> 8.3 or later (8.1, 8.2 should work)</para>
+      </listitem>
+      <listitem>
+        <para><ulink url="http://www.apache.org/">Apache</ulink> 2.2 or later</para>
+      </listitem>
+      <listitem>
+        <para><ulink url="http://www.openssl.org/">openssl</ulink> 0.9.4 or later</para>
+      </listitem>
+      <listitem>
+        <para><ulink url="http://www.openssl.org/">mod_ssl</ulink> 2.4.10 or later (included in Apache 2.0 and later)</para>
+      </listitem>
+      <listitem>
+        <para><ulink url="http://www.php.net/">PHP</ulink> 5.2 or later (php4 with the command line interface support and php5.1 should work)</para>
+      </listitem>
+      <listitem>
+        <para>php-pgsql (enable it with <literal>--with-pgsql</literal> when building PHP, or install it as package)</para>
+      </listitem>
+      <listitem>
+        <para>php-mbstring (enable it with <literal>--with-mbstring</literal> when building PHP, or install it as package)</para>
+      </listitem>
+    </orderedlist>
+    <para>
+   Optional software:
+  </para>
+    <orderedlist>
+      <listitem>
+        <para><ulink url="http://turck-mmcache.sourceforge.net">Turck MMCache</ulink> or <ulink url="http://www.php-accelerator.co.uk/">PHP Accelerator</ulink> or any other PHP accelerator (highly recommended)</para>
+      </listitem>
+      <listitem>
+        <para><ulink url="http://www.gnu.org/software/mailman/">GNU Mailman</ulink> and <ulink url="http://www.python.org/">Python</ulink> (Mailing list support)</para>
+      </listitem>
+      <listitem>
+        <para><ulink url="http://jabberd.jabberstudio.org/">Jabberd</ulink> (Jabber support)</para>
+      </listitem>
+      <listitem>
+        <para><ulink url="http://www.aditus.nu/jpgraph/">JPGraph</ulink> (Gantt Charting and Graphing Support)</para>
+      </listitem>
+      <listitem>
+        <para><ulink url="http://www.perl.org/">Perl</ulink>, <ulink url="http://dbi.perl.org/">DBI module</ulink> and associated <literal>DBD::Pg</literal>.</para>
+      </listitem>
+    </orderedlist>
+    <para>
+   Successful installations and operations have been done using the following systems:
+  </para>
+    <itemizedlist>
+      <listitem>
+        <para>Debian GNU/Linux 5.0 (Lenny)</para>
+      </listitem>
+      <listitem>
+        <para>CentOS 4 &amp; 5</para>
+      </listitem>
+      <listitem>
+        <para>RedHat Enterprise Linux 4 &amp; 5</para>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section>
+    <title>Installation</title>
+    <section>
+      <title>Overview</title>
+      <important>
+        <para>The <filename>INSTALL</filename> file in FusionForge package and <filename>README</filename> files in plugin directories are the authoritive sources for installation instructions and they should have more precedence over this guide.</para>
+      </important>
+      <note>
+        <para>This installation guide is for FusionForge 4.9.</para>
+      </note>
+      <para>FusionForge has a lot of different pieces touching a lot of different components in the system. Cronjobs are required to maintain the system, touching lots of files on a daily and hourly basis, including <filename>/etc/*</filename> system files.</para>
+      <para>The plugins that now manage the CVS and SVN functionality have made installation slightly harder because even more files have to be moved into place during installation.</para>
+      <para>The manual installation of FusionForge is documented below. Be sure to follow each step carefully, check the forums for frequently asked questions, and ask your Apache, Mailman, and PostgreSQL installation questions in the corresponding mailing lists rather than on the FusionForge forums where little help is available.</para>
+    </section>
+    <section>
+      <title>Installing FusionForge on Debian</title>
+      <para>
+    You can simply add lines found at <ulink url="http://debian.fusionforge.org/"/> to <filename>/etc/apt/sources.list</filename> and type <command>apt-get install fusionforge</command> to install a working FusionForge system, thanks to Christian Bayle and Roland Mas.
+   </para>
+      <para>
+    Note that FusionForge will soon be part of official Debian, and so you will find it in all debian mirrors all other the planet. Package versions of FusionForge may lag behind upstream versions. From scratch install snapshot are also available for a guided installation.
+   </para>
+    </section>
+    <section>
+      <title>Installing Gforge on RPM-based systems</title>
+      <para>RPM should be available soon, see <ulink url="http://fusionforge.org/"/> website for availability.</para>
+    </section>
+    <section>
+      <title>Installing FusionForge oneself on a linux distribution</title>
+      <para>To install FusionForge, follow these steps (as root):</para>
+      <section>
+        <title>Directory Layout</title>
+        <para>Instructions below assume that gforge is unpacked into <filename class="directory">
+            <replaceable>/opt/gforge</replaceable>
+          </filename>.  There are some other directories where FusionForge stores files. In this installation guide, they are put in <filename class="directory">/var/www</filename> too.</para>
+        <note>
+          <para>If you want to be <ulink url="http://www.pathname.com/fhs/">FHS</ulink>-compliant, FusionForge should be unpacked into <filename class="directory">/usr/local/share/gforge</filename>, and directories for storing files should be in <filename class="directory">/var/lib/gforge</filename> or <filename class="directory">/var/local/gforge</filename>. You may use symbolic links to physically place files in FHS-compliant places and still use directory paths that are presented in this manual.</para>
+        </note>
+      </section>
+      <section>
+        <title>Getting the source</title>
+        <para>There is two ways to get the sources from FusionForge : </para>
+        <screen>
+ # <userinput>tar -xjvf fusionforge-4.9.tar.bz2</userinput>
+ # <userinput>cd fusionforge-4.9</userinput>
+ # <userinput>mkdir -p /opt/gforge</userinput>
+ # <userinput>cp -r *<replaceable>/opt/gforge</replaceable></userinput>
 </screen>
-			</section>
-			<section>
-					<title>Checking out from the SVN repository with tag v4_7 </title>
-					<para>Alternative way to get FusionForge 4.7 is to check out with tag v4_7 from SVN. This gets latest fixes as well.</para>
-				<screen>
-	$ <userinput>svn checkout --username anonsvn https://svn.gforge.org/svn/gforge/tags/v4_7</userinput>
+      </section>
+      <section>
+        <title>Checking out from the SVN repository with tag v4_9 </title>
+        <para>Alternative way to get FusionForge 4.9 is to check out with tag v4_9 from SVN. This gets latest fixes as well.</para>
+        <screen>
+ $ <userinput>svn checkout --username anonsvn https://svn.gforge.org/svn/gforge/tags/v4_9</userinput>
 
-	$ <userinput>cd gforge/www/plugins</userinput>
+ $ <userinput>cd gforge/www/plugins</userinput>
 $ <userinput>ln -s ../../plugins/scmcvs/www scmcvs</userinput>
 $ <userinput>ln -s ../../plugins/scmsvn/www scmsvn</userinput>
 $ <userinput>ln -s ../../plugins/cvstracker/www cvstracker</userinput>
-				</screen>
-				<section>
-					<title>Updating checked out Branch_4_5</title>
-					<para>To get latest updates in <literal>Branch_4_5</literal>, run the following commands:</para>
-					<screen>
+    </screen>
+        <section>
+          <title>Updating checked out Branch_4_5</title>
+          <para>To get latest updates in <literal>Branch_4_5</literal>, run the following commands:</para>
+          <screen>
 $ <userinput>cd gforge</userinput>
-	$ <userinput>svn -q update</userinput>
-					</screen>
-						<para>To monitor latest changes in FusionForge, subscribe to <ulink url="http://lists.gforge.org/mailman/listinfo/gforge-commits">gforge-commits mailing list</ulink>.</para>
-				</section>
-				<section>
-					<title>Fixing access rights</title>
-					<para>You may want to make sure that permissions are correct (replace <replaceable>apache-group</replaceable> with the system group used by Apache server):</para>
-					<screen>
+ $ <userinput>svn -q update</userinput>
+     </screen>
+          <para>To monitor latest changes in FusionForge, subscribe to <ulink url="http://lists.gforge.org/mailman/listinfo/gforge-commits">gforge-commits mailing list</ulink>.</para>
+        </section>
+        <section>
+          <title>Fixing access rights</title>
+          <para>You may want to make sure that permissions are correct (replace <replaceable>apache-group</replaceable> with the system group used by Apache server):</para>
+          <screen>
 # <userinput>cd /opt/gforge</userinput>
 # <userinput>chown -R root:<replaceable>apache-group</replaceable> .</userinput>
 # <userinput>chmod -R 644 .</userinput>
 # <userinput>find -type d | xargs chmod 755</userinput>
 # <userinput>chmod -R 755 cronjobs</userinput>
-					</screen>
-				</section>
-			</section>
-			<section>
-				<title>FusionForge Config File</title>
-				<para>In the FusionForge distribution, you will find <filename>etc/local.inc.example</filename>. Copy it to <filename>/etc/gforge/local.inc</filename> and edit all of the settings.  In later sections, there is more information about specific configuration settings.  Usually, you will want to make it readable only by webserver user (see <xref linkend="web-server"/> for <replaceable>apache-user</replaceable> and <replaceable>apache-group</replaceable>):</para>
-<programlisting>
+     </screen>
+        </section>
+      </section>
+      <section>
+        <title>FusionForge Config File</title>
+        <para>In the FusionForge distribution, you will find <filename>etc/local.inc.example</filename>. Copy it to <filename>/etc/gforge/local.inc</filename> and edit all of the settings.  In later sections, there is more information about specific configuration settings.  Usually, you will want to make it readable only by webserver user (see <xref linkend="web-server"/> for <replaceable>apache-user</replaceable> and <replaceable>apache-group</replaceable>):</para>
+        <programlisting>
 # <userinput>mkdir /etc/gforge</userinput>
 # <userinput>chown root: /etc/gforge</userinput>
 # <userinput>chmod 755 /etc/gforge</userinput>
@@ -155,138 +179,137 @@
 # <userinput>chown <replaceable>apache-user</replaceable>:<replaceable>apache-group</replaceable> /etc/gforge/local.inc</userinput>
 # <userinput>chmod 600 /etc/gforge/local.inc</userinput>
 </programlisting>
-			</section>
-			<section>
-				<title>Configuring FusionForge</title>
-				<para>Open <filename>/etc/gforge/local.inc</filename>, configuring the following basic parameters:</para>
-				<orderedlist>
-					<listitem>
-						<para>Database configuration:</para>
-<programlisting>
-$sys_dbhost="localhost"
-$sys_dbname="gforge"
-$sys_dbuser="gforge"
-$sys_dbpasswd="<replaceable>gforge-password</replaceable>"
+      </section>
+      <section>
+        <title>Configuring FusionForge</title>
+        <para>Open <filename>/etc/gforge/local.inc</filename>, configuring the following basic parameters:</para>
+        <orderedlist>
+          <listitem>
+            <para>Database configuration:</para>
+            <programlisting>
+$sys_dbhost=&quot;localhost&quot;
+$sys_dbname=&quot;gforge&quot;
+$sys_dbuser=&quot;gforge&quot;
+$sys_dbpasswd=&quot;<replaceable>gforge-password</replaceable>&quot;
 </programlisting>
-					</listitem>
-					<!--<listitem>
-						<para>Change the following basic variables::</para>
+          </listitem>
+<!--<listitem>
+      <para>Change the following basic variables::</para>
 <programlisting>
 $sys_urlroot="<replaceable>/var/www/gforge</replaceable>/www/";
 $sys_themeroot="<replaceable>/var/www/gforge</replaceable>/www/themes/";
 $sys_plugins_path="<replaceable>/var/www/gforge</replaceable>/plugins/";
 </programlisting>
-					</listitem>-->
-					<listitem>
-						<para>The directive <varname>$sys_default_domain</varname> should contain the domain of your server, e.g. <literal>gforge.<replaceable>company.com</replaceable></literal>. You may want to replace all occurences of <replaceable>company.com</replaceable> with company's domain name.</para>
-					</listitem>
-				</orderedlist>
-			</section>
-		</section>
-		<section>
-			<title>Configuring the Database (PostgreSQL)</title>
-			<section>
-				<title>PostgreSQL Requirements</title>
-				<para>You to have installed the following packages for </para>
-				<orderedlist>
-					<listitem>
-							<para>a CentOS or Red Hat 5 or Fedora: postgresql, postgresql-libs, postgresql-server, postgresql-contrib</para>
-					</listitem>
-					<listitem>
-							<para>a Debian: postgresql, postgresql-contrib</para>
-					</listitem>
-					<listitem>
-							<para>a Red Hat 4 : postgresql, postgresql-contrib</para>
-					</listitem>
-				</orderedlist>
-			</section>
-			<section>
-				<title>Initialization of PostgreSQL</title>
-				<para>In some distributions, PostgreSQL database cluster is not initialised.  Consult distribution documentation for more information.  If database cluster is not created, you can do so by running:</para>
-<screen>
+     </listitem>-->          <listitem>
+            <para>The directive <varname>$sys_default_domain</varname> should contain the domain of your server, e.g. <literal>gforge.<replaceable>company.com</replaceable></literal>. You may want to replace all occurences of <replaceable>company.com</replaceable> with company&apos;s domain name.</para>
+          </listitem>
+        </orderedlist>
+      </section>
+    </section>
+    <section>
+      <title>Configuring the Database (PostgreSQL)</title>
+      <section>
+        <title>PostgreSQL Requirements</title>
+        <para>You to have installed the following packages for </para>
+        <orderedlist>
+          <listitem>
+            <para>a CentOS or Red Hat 5 or Fedora: postgresql, postgresql-libs, postgresql-server, postgresql-contrib</para>
+          </listitem>
+          <listitem>
+            <para>a Debian: postgresql, postgresql-contrib</para>
+          </listitem>
+          <listitem>
+            <para>a Red Hat 4 : postgresql, postgresql-contrib</para>
+          </listitem>
+        </orderedlist>
+      </section>
+      <section>
+        <title>Initialization of PostgreSQL</title>
+        <para>In some distributions, PostgreSQL database cluster is not initialised.  Consult distribution documentation for more information.  If database cluster is not created, you can do so by running:</para>
+        <screen>
 # <userinput>su - postgres</userinput>
 $ <userinput>initdb</userinput>
 </screen>
-				<caution>
-					<para>This will wipe out any existing PostgreSQL databases!</para>
-				</caution>
-			</section>
-
-			<section>
-				<title>PostgreSQL Authentication Configuration</title>
-				<para>The <literal>postgres</literal> PostgreSQL user is used only during installation.  Usually, it can connect via UNIX socket without password when invoked by <literal>postgresql</literal> system account.  Check by running this:</para>
-<screen>
+        <caution>
+          <para>This will wipe out any existing PostgreSQL databases!</para>
+        </caution>
+      </section>
+      <section>
+        <title>PostgreSQL Authentication Configuration</title>
+        <para>The <literal>postgres</literal> PostgreSQL user is used only during installation.  Usually, it can connect via UNIX socket without password when invoked by <literal>postgresql</literal> system account.  Check by running this:</para>
+        <screen>
 # <userinput>/etc/init.d/postgresql restart</userinput>
 # <userinput>su - postgres</userinput>
 $ <userinput>psql template1</userinput>
 </screen>
-				<para>If connection fails, add the following line to <filename>pg_hba.conf</filename>:</para>
-<screen>
+        <para>If connection fails, add the following line to <filename>pg_hba.conf</filename>:</para>
+        <screen>
 local all postgres ident sameuser
 </screen>
-				<para>FusionForge uses <literal>gforge</literal> PostgreSQL user to connect to <literal>gforge</literal> database by using password.  (You can change that name by editing <filename>local.inc</filename>.)  In order this to work, assure that you have the following line in your <filename>pg_hba.conf</filename> (before other <literal>host</literal> directives):</para>
-<screen>
+        <para>FusionForge uses <literal>gforge</literal> PostgreSQL user to connect to <literal>gforge</literal> database by using password.  (You can change that name by editing <filename>local.inc</filename>.)  In order this to work, assure that you have the following line in your <filename>pg_hba.conf</filename> (before other <literal>host</literal> directives):</para>
+        <screen>
 host gforge gforge 127.0.0.1 255.255.255.255 md5
 </screen>
-				<para>This line assumes that FusionForge will always use local PostgreSQL database (<literal>localhost</literal>).  If this is not the case, consult PostgreSQL manual for ways to allow connection.</para>
-				<!-- <para>The following option should be set in <filename>postgresql.conf</filename> because connection to <literal>localhost</literal> uses TCP/IP:</para>
+        <para>This line assumes that FusionForge will always use local PostgreSQL database (<literal>localhost</literal>).  If this is not the case, consult PostgreSQL manual for ways to allow connection.</para>
+<!-- <para>The following option should be set in <filename>postgresql.conf</filename> because connection to <literal>localhost</literal> uses TCP/IP:</para>
 <screen>
 tcpip_socket = true
-</screen>-->
-				<para>After all these changes to PostgreSQL configuration files are made, PostgreSQL should be restarted.  This depends on the distribution.  In Debian, it's like this:</para>
-<screen>
+</screen>-->        <para>After all these changes to PostgreSQL configuration files are made, PostgreSQL should be restarted.  This depends on the distribution.  In Debian, it&apos;s like this:</para>
+        <screen>
 # <userinput>/etc/init.d/postgresql restart</userinput>
 </screen>
-			</section>
-			<section>
-				<title>Importing Database</title>
-				<para>Create FusionForge database user:</para>
-<screen>
+      </section>
+      <section>
+        <title>Importing Database</title>
+        <para>Create FusionForge database user:</para>
+        <screen>
 # <userinput>su - postgres</userinput>
 $ <userinput>psql template1</userinput>
 template1=# <userinput>CREATE USER gforge NOCREATEUSER NOCREATEDB</userinput>
-template1-# <userinput>PASSWORD '<replaceable>gforge-password</replaceable>';</userinput>
+template1-# <userinput>PASSWORD &apos;<replaceable>gforge-password</replaceable>&apos;;</userinput>
 </screen>
-				<para>Create FusionForge database:</para>
-<screen>
-template1=# <userinput>CREATE DATABASE gforge OWNER gforge ENCODING 'UNICODE';</userinput>
+        <para>Create FusionForge database:</para>
+        <screen>
+template1=# <userinput>CREATE DATABASE gforge OWNER gforge ENCODING &apos;UNICODE&apos;;</userinput>
 template1=# <userinput>\q</userinput>
 </screen>
-				<para>Add PL/pgSQL support using the commands:</para>
-<screen>
+        <para>Add PL/pgSQL support using the commands:</para>
+        <screen>
 <!-- # <userinput>su - postgres</userinput> -->
 $ <userinput>createlang plpgsql gforge</userinput>
 </screen>
-				<para>Finally, install the database:</para>
-<screen>
+        <para>Finally, install the database:</para>
+        <screen>
 $ <userinput>cd <replaceable>/opt/gforge</replaceable>/db</userinput>
 $ <userinput>psql -a -U gforge -W -h localhost -f gforge.sql gforge &amp;&gt; /tmp/gforge.sql.log</userinput>
 </screen>
-				<note>
-					<para>You may experience the following errors.  They are harmless and you can safely ignore them:</para>
-<screen>
+        <note>
+          <para>You may experience the following errors.  They are harmless and you can safely ignore them:</para>
+          <screen>
 ERROR:  permission denied for language c
 ERROR:  must be superuser to create procedural language
 ERROR:  permission denied for schema public
 </screen>
-				</note>
-			</section>
-		</section>
-		<section>
-			<title>Configuring DNS Server (BIND)</title>
-			<para>FusionForge needs its own domain.  In example FusionForge configuration file, it's <literal>gforge.<replaceable>company.com</replaceable></literal>.  You should search for <replaceable>company.com</replaceable> in example FusionForge configuration file and replace it with your domain name.</para>
-			<para>Here some example configuration files for BIND are presented that can help you if you are not familiar with BIND but it's not meant to be complete. Don't ask BIND-related questions in FusionForge forums, consult documentation that come with your distribution and search in Internet.  Distributions put files in different places and so there are no file locations here.  The example configuration below is only quick start example and doesn't include reverse mapping.</para>
-			<para>For DNS, you need to have the bind package installed</para>
-			<para>New subdomain in <literal>gforge.<replaceable>company.com</replaceable></literal> should be created.  In <replaceable>company.com</replaceable> zone file, it may look like that:</para>
-<screen>
+        </note>
+      </section>
+    </section>
+    <section>
+      <title>Configuring DNS Server (BIND)</title>
+      <para>FusionForge needs its own domain.  In example FusionForge configuration file, it&apos;s <literal>gforge.<replaceable>company.com</replaceable></literal>.  You should search for <replaceable>company.com</replaceable> in example FusionForge configuration file and replace it with your domain name.</para>
+      <para>Here some example configuration files for BIND are presented that can help you if you are not familiar with BIND but it&apos;s not meant to be complete. Don&apos;t ask BIND-related questions in FusionForge forums, consult documentation that come with your distribution and search in Internet.  Distributions put files in different places and so there are no file locations here.  The example configuration below is only quick start example and doesn&apos;t include reverse mapping.</para>
+      <para>For DNS, you need to have the bind package installed</para>
+      <para>New subdomain in <literal>gforge.<replaceable>company.com</replaceable></literal> should be created.  In <replaceable>company.com</replaceable> zone file, it may look like that:</para>
+      <screen>
 gforge          IN      NS      ns.gforge.<replaceable>company.com</replaceable>.
 ns.gforge       IN      A       <replaceable>1.2.3.4</replaceable>
 </screen>
-			<note>
-				<para>Do not add the latter resource record (<literal>ns.gforge</literal>) if this DNS server serves both <literal><replaceable>company.com</replaceable></literal> and <literal>gforge.<replaceable>company.com</replaceable></literal> zones.</para>
-			</note>
-			<para>New zone file for <literal>gforge.<replaceable>company.com</replaceable></literal> may look like this:</para>
-<screen>
+      <note>
+        <para>Do not add the latter resource record (<literal>ns.gforge</literal>) if this DNS server serves both <literal>
+            <replaceable>company.com</replaceable>
+          </literal> and <literal>gforge.<replaceable>company.com</replaceable></literal> zones.</para>
+      </note>
+      <para>New zone file for <literal>gforge.<replaceable>company.com</replaceable></literal> may look like this:</para>
+      <screen>
 $TTL    2d
 @       IN      SOA     gforge.<replaceable>company.com</replaceable>. hostmaster.gforge.<replaceable>company.com</replaceable>. (
                               1         ; Serial
@@ -309,22 +332,22 @@
 ldap            IN      A       <replaceable>1.2.3.4</replaceable>
 jabber          IN      A       <replaceable>1.2.3.4</replaceable>
 </screen>
-			<para>The new zone must be added in main BIND configuration file:</para>
-<screen>
-zone "gforge.<replaceable>company.com</replaceable>" {
+      <para>The new zone must be added in main BIND configuration file:</para>
+      <screen>
+zone &quot;gforge.<replaceable>company.com</replaceable>&quot; {
         type master;
-        file "<replaceable>/dist-specific/path/to/zone-file</replaceable>";
+        file &quot;<replaceable>/dist-specific/path/to/zone-file</replaceable>&quot;;
 };
 </screen>
-			<para>Of course, changes will take effect after reloading BIND.</para>
-			<para>It is required that the dns service is up on each reboot.</para>
-			<screen>
+      <para>Of course, changes will take effect after reloading BIND.</para>
+      <para>It is required that the dns service is up on each reboot.</para>
+      <screen>
 $ <userinput>chkconfig named on</userinput>
-			</screen>
-			<!-- <section>
-				<title>Basic but concrete DNS cofiguration on CentOS, Fedora or Red Hat</title>
-				<para>Create the file <filename>/etc/named.conf</filename> and add in :</para>
-				<screen>
+   </screen>
+<!-- <section>
+    <title>Basic but concrete DNS cofiguration on CentOS, Fedora or Red Hat</title>
+    <para>Create the file <filename>/etc/named.conf</filename> and add in :</para>
+    <screen>
 options {
         directory "/var/named";
         dump-file "/var/named/data/cache_dump.db";
@@ -340,49 +363,48 @@
         type master;
         file "/var/named/gforge.db";
 };
-				</screen>
-				<para>Create the file <filename>/var/named/named.root</filename>and add in :</para>
-				<screen>
+    </screen>
+    <para>Create the file <filename>/var/named/named.root</filename>and add in :</para>
+    <screen>
 
-				</screen>
-				<para></para>
-			</section>-->
-		</section>
-		<section>
-			<title>Configuring PHP</title>
-			<para>Make sure you have installed <literal>pgsql</literal> and <literal>mbstring</literal> modules.</para>
-			<para>PHP is used in two ways:</para>
-			<orderedlist>
-				<listitem>
-					<para><emphasis>Serving Web pages</emphasis>.  In this case, PHP is usually used as module and its configuration is in virtual host configuration, as shown later in the document.  If you prefer to configure <filename>php.ini</filename>, the following directives are required by FusionForge:</para>
-<programlisting>
+    </screen>
+    <para></para>
+   </section>-->    </section>
+    <section>
+      <title>Configuring PHP</title>
+      <para>Make sure you have installed <literal>pgsql</literal> and <literal>mbstring</literal> modules.</para>
+      <para>PHP is used in two ways:</para>
+      <orderedlist>
+        <listitem>
+          <para><emphasis>Serving Web pages</emphasis>.  In this case, PHP is usually used as module and its configuration is in virtual host configuration, as shown later in the document.  If you prefer to configure <filename>php.ini</filename>, the following directives are required by FusionForge:</para>
+          <programlisting>
 <!-- register_globals = Off-->
 magic_quotes_gpc = On
 file_uploads = On
-include_path=".:<replaceable>/opt/gforge</replaceable>:<replaceable>/opt/gforge</replaceable>/www/include:/etc/gforge"
+include_path=&quot;.:<replaceable>/opt/gforge</replaceable>:<replaceable>/opt/gforge</replaceable>/www/include:/etc/gforge&quot;
 </programlisting>
-				</listitem>
-				<listitem>
-					<para><emphasis>Cron jobs and some scripts</emphasis> require PHP Command-Line Interface (CLI). Scripts are usually invoked with command like this:</para>
-<screen>
+        </listitem>
+        <listitem>
+          <para><emphasis>Cron jobs and some scripts</emphasis> require PHP Command-Line Interface (CLI). Scripts are usually invoked with command like this:</para>
+          <screen>
 $ <userinput>php5 -f cronjobs/mail/mailing_lists_create.php</userinput>
 </screen>
-					<note>
-						<para>The <literal>-f</literal> is optional when using PHP CLI but it's required when PHP CGI executable is used.</para>
-					</note>
-					<para>You must set <varname>include_path</varname> in PHP CLI <filename>php.ini</filename>, like already shown above. Increase <varname>memory_limit</varname> configuration parameter to at least 32M. To find where <filename>php.ini</filename> is located, use the following command:</para>
-<screen>
+          <note>
+            <para>The <literal>-f</literal> is optional when using PHP CLI but it&apos;s required when PHP CGI executable is used.</para>
+          </note>
+          <para>You must set <varname>include_path</varname> in PHP CLI <filename>php.ini</filename>, like already shown above. Increase <varname>memory_limit</varname> configuration parameter to at least 32M. To find where <filename>php.ini</filename> is located, use the following command:</para>
+          <screen>
 $ <userinput>php5 -i | fgrep php.ini</userinput>
 </screen>
-				</listitem>
-			</orderedlist>
-		</section>
-		<section id="web-server">
-			<title>Configuring the Web Server (Apache)</title>
-			<para>Find what system user and group are used by Apache server and change <varname>$sys_apache_user</varname> and <varname>$sys_apache_group</varname> (in FusionForge configuration) respectively in /etc/gforge/local.inc.</para>
-			<para>You should decide where to put FusionForge configuration of Apache.  It's best if own configuration file that is included by main Apache configuration is used.  Consult documentation of your distribution on recommended ways for doing this.</para>
-			<para>You may use <filename>etc/gforge-httpd.conf.example</filename> as template for your configuration.  The rest of the section is guide to making FusionForge virtual host configuration for Apache from scratch.  All is inside the following template:</para>
-<programlisting>
+        </listitem>
+      </orderedlist>
+    </section>
+    <section id="web-server">
+      <title>Configuring the Web Server (Apache)</title>
+      <para>Find what system user and group are used by Apache server and change <varname>$sys_apache_user</varname> and <varname>$sys_apache_group</varname> (in FusionForge configuration) respectively in /etc/gforge/local.inc.</para>
+      <para>You should decide where to put FusionForge configuration of Apache.  It&apos;s best if own configuration file that is included by main Apache configuration is used.  Consult documentation of your distribution on recommended ways for doing this.</para>
+      <para>You may use <filename>etc/gforge-httpd.conf.example</filename> as template for your configuration.  The rest of the section is guide to making FusionForge virtual host configuration for Apache from scratch.  All is inside the following template:</para>
+      <programlisting>
 NameVirtualHost <replaceable>1.2.3.4</replaceable>
 &lt;VirtualHost <replaceable>1.2.3.4</replaceable>&gt;
 
@@ -390,37 +412,37 @@
 
 &lt;/VirtualHost&gt;
 </programlisting>
-			<note>
-				<para>Configuring for SSL is not discussed in this guide.</para>
-			</note>
-			<orderedlist>
-				<listitem>
-					<para>Set basic virtual host settings:</para>
-<programlisting>
+      <note>
+        <para>Configuring for SSL is not discussed in this guide.</para>
+      </note>
+      <orderedlist>
+        <listitem>
+          <para>Set basic virtual host settings:</para>
+          <programlisting>
 ServerName  gforge.<replaceable>company.com</replaceable>
 ServerAdmin webmaster at gforge.<replaceable>company.com</replaceable>
 </programlisting>
-				</listitem>
-				<listitem>
-					<para>Define log files:</para>
-<programlisting>
-CustomLog "<replaceable>/var/log/gforge</replaceable>/gforge/access.log" combined
-ErrorLog  "<replaceable>/var/log/gforge</replaceable>/gforge/error.log"
+        </listitem>
+        <listitem>
+          <para>Define log files:</para>
+          <programlisting>
+CustomLog &quot;<replaceable>/var/log/gforge</replaceable>/gforge/access.log&quot; combined
+ErrorLog  &quot;<replaceable>/var/log/gforge</replaceable>/gforge/error.log&quot;
 </programlisting>
-					<para>Usual practice is to use <command>logrotate</command> on these files.  Alternative is to pipe logs to <command>cronolog</command> which will automatically make directory with <filename>access.log</filename> and <filename>error.log</filename> for each day:</para>
-<programlisting>
-CustomLog "|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/gforge/%Y/%m/%d/access.log" combined
-ErrorLog  "|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/gforge/%Y/%m/%d/error.log"
+          <para>Usual practice is to use <command>logrotate</command> on these files.  Alternative is to pipe logs to <command>cronolog</command> which will automatically make directory with <filename>access.log</filename> and <filename>error.log</filename> for each day:</para>
+          <programlisting>
+CustomLog &quot;|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/gforge/%Y/%m/%d/access.log&quot; combined
+ErrorLog  &quot;|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/gforge/%Y/%m/%d/error.log&quot;
 </programlisting>
-					<note>
-						<para>In FHS-compliant install, you may want to use <filename class="directory">/var/local/gforge/log</filename> instead of <filename class="directory">/var/log/gforge</filename>. In any cases, the relevant directories should be created with appropriate permissions.</para>
-					</note>
-				</listitem>
-				<listitem>
-					<para>Set up document root:</para>
-<programlisting>
-DocumentRoot "<replaceable>/opt/gforge</replaceable>/www"
-&lt;Directory "<replaceable>/opt/gforge</replaceable>/www"&gt;
+          <note>
+            <para>In FHS-compliant install, you may want to use <filename class="directory">/var/local/gforge/log</filename> instead of <filename class="directory">/var/log/gforge</filename>. In any cases, the relevant directories should be created with appropriate permissions.</para>
+          </note>
+        </listitem>
+        <listitem>
+          <para>Set up document root:</para>
+          <programlisting>
+DocumentRoot &quot;<replaceable>/opt/gforge</replaceable>/www&quot;
+&lt;Directory &quot;<replaceable>/opt/gforge</replaceable>/www&quot;&gt;
     Options        FollowSymLinks
     AllowOverride  None
     Order          allow,deny
@@ -428,18 +450,18 @@
     ErrorDocument  404 /404.php
 &lt;/Directory&gt;
 </programlisting>
-				</listitem>
-				<listitem>
-					<para>Configuring PHP for Apache</para>
-					<para>Ensure that PHP module is loaded (this is automaticaly made when you install php with rpm or deb).  You may need to consult your distribution manual. Typical lines that load and configure PHP module are like this:</para>
-<programlisting>
-LoadModule php_module	modules/libphp.so
+        </listitem>
+        <listitem>
+          <para>Configuring PHP for Apache</para>
+          <para>Ensure that PHP module is loaded (this is automaticaly made when you install php with rpm or deb).  You may need to consult your distribution manual. Typical lines that load and configure PHP module are like this:</para>
+          <programlisting>
+LoadModule php_module modules/libphp.so
 AddModule mod_php.c
 
 AddType application/x-httpd-php .php
 </programlisting>
-					<para>Insert the following instructions after the <literal>DocumentRoot</literal> directive:</para>
-<programlisting>
+          <para>Insert the following instructions after the <literal>DocumentRoot</literal> directive:</para>
+          <programlisting>
 &lt;Location /projects&gt;
   ForceType application/x-httpd-php
 &lt;/Location&gt;
@@ -447,10 +469,10 @@
   ForceType application/x-httpd-php
 &lt;/Location&gt;
 </programlisting>
-					<note>
-						<para>If you use Apache 2, you may need to use a different configuration. Usually, this is not needed.  If you receive a <computeroutput>Page Not Found</computeroutput> summary pages, you better try this different style of configuring.</para>
-						<para>Change the existing <literal>Files</literal> directive to:</para>
-<programlisting>
+          <note>
+            <para>If you use Apache 2, you may need to use a different configuration. Usually, this is not needed.  If you receive a <computeroutput>Page Not Found</computeroutput> summary pages, you better try this different style of configuring.</para>
+            <para>Change the existing <literal>Files</literal> directive to:</para>
+            <programlisting>
 &lt;Files *.php&gt;
     SetOutputFilter PHP
     SetInputFilter PHP
@@ -458,9 +480,9 @@
     LimitRequestBody 2097152
 &lt;/Files&gt;
 </programlisting>
-						<para>The <literal>LimitRequestBody</literal> directive allows you to limit the maximum number of bytes of a request (including uploads). The default is 524288 (512Kb). This means that you cannot upload files with a size greater than 512Kb. With this directive, we set it to 2MB. If you wish to set this value higher than 2MB, you must also edit the <literal>upload_max_filesize</literal> directive in PHP configuration file.</para>
-						<para>Add the following lines:</para>
-<programlisting>
+            <para>The <literal>LimitRequestBody</literal> directive allows you to limit the maximum number of bytes of a request (including uploads). The default is 524288 (512Kb). This means that you cannot upload files with a size greater than 512Kb. With this directive, we set it to 2MB. If you wish to set this value higher than 2MB, you must also edit the <literal>upload_max_filesize</literal> directive in PHP configuration file.</para>
+            <para>Add the following lines:</para>
+            <programlisting>
 &lt;Files projects&gt;
 SetOutputFilter PHP
 SetInputFilter PHP
@@ -473,118 +495,118 @@
 AcceptPathInfo on
 &lt;/Files&gt;
 </programlisting>
-					</note>
-				</listitem>
-				<listitem>
-					<para>Set up PHP module:</para>
-					<para>If the register_globals variable is set to On in your php.ini, add this line in your conf apache :</para>
-<programlisting>
+          </note>
+        </listitem>
+        <listitem>
+          <para>Set up PHP module:</para>
+          <para>If the register_globals variable is set to On in your php.ini, add this line in your conf apache :</para>
+          <programlisting>
 php_flag   register_globals Off
 </programlisting>
-<para>If the files_uploads variable is not set to On in your php.ini, add this line in your conf apache :</para>
-<programlisting>
+          <para>If the files_uploads variable is not set to On in your php.ini, add this line in your conf apache :</para>
+          <programlisting>
 php_flag   files_uploads    On
 </programlisting>
-<para>If the AddDefaultCharset variable is not set to UTF-8 in your httpd.conf, add this line in your conf apache :</para>
-<programlisting>
-php_value  default_charset  "UTF-8"
+          <para>If the AddDefaultCharset variable is not set to UTF-8 in your httpd.conf, add this line in your conf apache :</para>
+          <programlisting>
+php_value  default_charset  &quot;UTF-8&quot;
 </programlisting>
-<para>Add these lines in your conf apache </para>
-<programlisting>
+          <para>Add these lines in your conf apache </para>
+          <programlisting>
 php_flag   magic_quotes_gpc On
-php_value  include_path     ".:/etc/gforge:<replaceable>/opt/gforge</replaceable>:<replaceable>/opt/gforge</replaceable>/www/include"
+php_value  include_path     &quot;.:/etc/gforge:<replaceable>/opt/gforge</replaceable>:<replaceable>/opt/gforge</replaceable>/www/include&quot;
 </programlisting>
-				</listitem>
-				<listitem>
-					<para>Set up directory index script name (this is automaticaly made when you install php with rpm or deb) :</para>
-<programlisting>
+        </listitem>
+        <listitem>
+          <para>Set up directory index script name (this is automaticaly made when you install php with rpm or deb) :</para>
+          <programlisting>
 DirectoryIndex index.php
 </programlisting>
-				</listitem>
-			</orderedlist>
-			<para>Of course, all changes will take effect only after reloading or restarting Apache.</para>
-		</section>
-		<section>
-			<title>Configuring Mail Transport Agent (Any)</title>
-			<para>Add the following line to <filename>/etc/aliases</filename> and run <command>newaliases</command>:</para>
-<programlisting>
+        </listitem>
+      </orderedlist>
+      <para>Of course, all changes will take effect only after reloading or restarting Apache.</para>
+    </section>
+    <section>
+      <title>Configuring Mail Transport Agent (Any)</title>
+      <para>Add the following line to <filename>/etc/aliases</filename> and run <command>newaliases</command>:</para>
+      <programlisting>
 noreply: /dev/null
 </programlisting>
-			<para>Make sure that the following domain names are accepted as local destinations by mail transport agent:</para>
-			<itemizedlist>
-				<listitem>
-					<para><literal>gforge.<replaceable>company.com</replaceable></literal></para>
-				</listitem>
-				<listitem>
-					<para><literal>lists.gforge.<replaceable>company.com</replaceable></literal></para>
-				</listitem>
-				<listitem>
-					<para><literal>users.gforge.<replaceable>company.com</replaceable></literal></para>
-				</listitem>
-			</itemizedlist>
-			<para>You may want to consider adding <literal>MX</literal> (mail exchanger) resource records for the above domain names.  This is meaningful only if you want fallback mail routes or if firewall doesn't allow incoming port 25 for the server.</para>
-			<section>
-				<title>Mail gateways to forum and tracker</title>
-				<para>When forum or tracker is monitored, replying to monitor mails are processed by mail gateways.  These gateways use FusionForge configuration file <filename>/etc/gforge/local.inc</filename> so that they can access database but the problem is that they run with different user than that of Apache.  So if you want to use these gateways, you'll have to change access mode of <filename>local.inc</filename>.</para>
-			</section>
-		</section>
-		<section>
-			<title>File Release System (FRS)</title>
-			<para>Create a directory (e.g. <filename class="directory"><replaceable>/var/lib/gforge</replaceable>/download</filename>) and make it owned by the webserver user.  This directory will be referenced in the FusionForge Config File <filename>/etc/gforge/local.inc</filename> as <varname>$sys_upload_dir</varname>.</para>
-<screen>
+      <para>Make sure that the following domain names are accepted as local destinations by mail transport agent:</para>
+      <itemizedlist>
+        <listitem>
+          <para><literal>gforge.<replaceable>company.com</replaceable></literal></para>
+        </listitem>
+        <listitem>
+          <para><literal>lists.gforge.<replaceable>company.com</replaceable></literal></para>
+        </listitem>
+        <listitem>
+          <para><literal>users.gforge.<replaceable>company.com</replaceable></literal></para>
+        </listitem>
+      </itemizedlist>
+      <para>You may want to consider adding <literal>MX</literal> (mail exchanger) resource records for the above domain names.  This is meaningful only if you want fallback mail routes or if firewall doesn&apos;t allow incoming port 25 for the server.</para>
+      <section>
+        <title>Mail gateways to forum and tracker</title>
+        <para>When forum or tracker is monitored, replying to monitor mails are processed by mail gateways.  These gateways use FusionForge configuration file <filename>/etc/gforge/local.inc</filename> so that they can access database but the problem is that they run with different user than that of Apache.  So if you want to use these gateways, you&apos;ll have to change access mode of <filename>local.inc</filename>.</para>
+      </section>
+    </section>
+    <section>
+      <title>File Release System (FRS)</title>
+      <para>Create a directory (e.g. <filename class="directory"><replaceable>/var/lib/gforge</replaceable>/download</filename>) and make it owned by the webserver user.  This directory will be referenced in the FusionForge Config File <filename>/etc/gforge/local.inc</filename> as <varname>$sys_upload_dir</varname>.</para>
+      <screen>
 # <userinput>mkdir <replaceable>/var/lib/gforge</replaceable>/download</userinput>
-# <userinput>chown -R <replaceable>apache-user</replaceable> <replaceable>/var/lib/gforge</replaceable>/download</userinput>
+# <userinput>chown -R <replaceable>apache-user</replaceable><replaceable>/var/lib/gforge</replaceable>/download</userinput>
 </screen>
-			<note>
-				<para>For FHS-compliance, use <filename class="directory">/var/local/gforge/download</filename>.</para>
-			</note>
-		</section>
-		<section>
-			<title>Configuring GNU Mailman</title>
-			<para>GNU Mailman is used to help manage the FusionForge mailing lists.  Mailman is frequently installed in <filename class="directory">/usr/lib/mailman</filename> but sometimes it can be found in <filename class="directory">/var/mailman</filename>.  You should change FusionForge configuration variable <varname>$sys_path_to_mailman</varname> to that Mailman directory.</para>
-			<para>Cronjobs for Mailman are located in <filename>cronjobs/mail/*</filename>.  <filename>cronjobs/mail/mailing_lists_create.php</filename> is used obviously to create new mailing lists.</para>
-			<para>For all problems with Mailman installation and use, contact the Mailman mailing lists for help.</para>
-			<para>To install it:</para>
-			<orderedlist>
-				<listitem>
-					<para>Install a GNU Mailman package or compile it</para>
-				</listitem>
-				<listitem>
-					<para>Don't integrate Mailman with Postfix (or other MTA) by delegating it generation of alias-style file.  FusionForge generates such file.  But you'll need to put mail aliases in <filename>/etc/aliases</filename> for the required standard <literal>mailman</literal> mailing list.  Create it with:</para>
-<screen>
+      <note>
+        <para>For FHS-compliance, use <filename class="directory">/var/local/gforge/download</filename>.</para>
+      </note>
+    </section>
+    <section>
+      <title>Configuring GNU Mailman</title>
+      <para>GNU Mailman is used to help manage the FusionForge mailing lists.  Mailman is frequently installed in <filename class="directory">/usr/lib/mailman</filename> but sometimes it can be found in <filename class="directory">/var/mailman</filename>.  You should change FusionForge configuration variable <varname>$sys_path_to_mailman</varname> to that Mailman directory.</para>
+      <para>Cronjobs for Mailman are located in <filename>cronjobs/mail/*</filename>.  <filename>cronjobs/mail/mailing_lists_create.php</filename> is used obviously to create new mailing lists.</para>
+      <para>For all problems with Mailman installation and use, contact the Mailman mailing lists for help.</para>
+      <para>To install it:</para>
+      <orderedlist>
+        <listitem>
+          <para>Install a GNU Mailman package or compile it</para>
+        </listitem>
+        <listitem>
+          <para>Don&apos;t integrate Mailman with Postfix (or other MTA) by delegating it generation of alias-style file.  FusionForge generates such file.  But you&apos;ll need to put mail aliases in <filename>/etc/aliases</filename> for the required standard <literal>mailman</literal> mailing list.  Create it with:</para>
+          <screen>
 # <userinput><replaceable>/usr/lib/mailman/bin</replaceable>/newlist mailman</userinput>
 </screen>
-				</listitem>
-				<listitem>
-					<para>Configure <filename>mm_cfg.py</filename>:</para>
-					<itemizedlist>
-						<listitem>
-							<para><varname>DEFAULT_HOST_NAME</varname> and <varname>DEFAULT_URL</varname> should point to <literal>lists.gforge.<replaceable>company.com</replaceable></literal>. These variable names may vary depending on Mailman distribution.</para>
-						</listitem>
-						<listitem>
-							<para>Strip ugly <literal>cgi-bin</literal> from URLs in configuration parameters.</para>
-						</listitem>
-					</itemizedlist>
-				</listitem>
-				<listitem>
-					<para><command>su</command> to <literal>root</literal> and set the Mailman password by using the <command>mmsitepass</command> command</para>
-				</listitem>
-				<listitem>
-					<para>Create directory <filename class="directory"><replaceable>/var/www/mailman</replaceable>/</filename>.  It will be document root for <literal>lists.gforge.<replaceable>company.com</replaceable>.</literal></para>
-				</listitem>
-				<listitem>
-					<para>In Web server configuraton, create virtual host for Mailman, adjusting <literal>ScriptAlias</literal> and <literal>Alias</literal> directives:</para>
-<programlisting>
+        </listitem>
+        <listitem>
+          <para>Configure <filename>mm_cfg.py</filename>:</para>
+          <itemizedlist>
+            <listitem>
+              <para><varname>DEFAULT_HOST_NAME</varname> and <varname>DEFAULT_URL</varname> should point to <literal>lists.gforge.<replaceable>company.com</replaceable></literal>. These variable names may vary depending on Mailman distribution.</para>
+            </listitem>
+            <listitem>
+              <para>Strip ugly <literal>cgi-bin</literal> from URLs in configuration parameters.</para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+        <listitem>
+          <para><command>su</command> to <literal>root</literal> and set the Mailman password by using the <command>mmsitepass</command> command</para>
+        </listitem>
+        <listitem>
+          <para>Create directory <filename class="directory"><replaceable>/var/www/mailman</replaceable>/</filename>.  It will be document root for <literal>lists.gforge.<replaceable>company.com</replaceable>.</literal></para>
+        </listitem>
+        <listitem>
+          <para>In Web server configuraton, create virtual host for Mailman, adjusting <literal>ScriptAlias</literal> and <literal>Alias</literal> directives:</para>
+          <programlisting>
 &lt;VirtualHost <replaceable>1.2.3.4</replaceable>&gt;
   ServerName    lists.gforge.<replaceable>company.com</replaceable>
   ServerAdmin   webmaster at gforge.<replaceable>company.com</replaceable>
 
 # You may want to add these files to logrotate, or just use cronolog as shown below
-  CustomLog "<replaceable>/var/log/gforge</replaceable>/lists/access.log" combined
-  ErrorLog  "<replaceable>/var/log/gforge</replaceable>/lists/error.log"
+  CustomLog &quot;<replaceable>/var/log/gforge</replaceable>/lists/access.log&quot; combined
+  ErrorLog  &quot;<replaceable>/var/log/gforge</replaceable>/lists/error.log&quot;
 
-#  CustomLog "|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/lists/%Y/%m/%d/access.log" combined
-#  ErrorLog  "|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/lists/%Y/%m/%d/error.log"
+#  CustomLog &quot;|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/lists/%Y/%m/%d/access.log&quot; combined
+#  ErrorLog  &quot;|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/lists/%Y/%m/%d/error.log&quot;
 
   DocumentRoot  <replaceable>/var/www/mailman</replaceable>
   DirectoryIndex index.html
@@ -593,140 +615,146 @@
   Alias         /images/ <replaceable>/usr/share/images/</replaceable>
 &lt;/VirtualHost&gt;
 </programlisting>
-					<note>
-						<para>Check that <literal>ScriptAlias</literal> and <literal>Alias</literal> directories are correct.  The example values are for Debian 3.1 (Sarge).</para>
-					</note>
-				</listitem>
-			</orderedlist>
-			<section>
-				<title>Mailing list for commits</title>
-				<para>When repositories are created, mailing list <literal><replaceable>project</replaceable>-commits at lists.gforge.<replaceable>company.com</replaceable></literal> is created too. Note that project administrators should manually set Privacy Options... / Sender filters / accept_these_nonmembers to something like <literal>^.*@<replaceable>servername\.company\.com</replaceable></literal> where <replaceable>servername.company.com</replaceable> is name of the host where Mailman is installed (<literal>lists.gforge.<replaceable>company.com</replaceable></literal>).</para>
-			</section>
-		</section>
-		<section>
-			<title>Source Code Management (SCM)</title>
-			<para>CVS and Subversion (SVN) are popular SCM systems that may be installed as plugins, as shown later.  You'll have to make their needed directories:</para>
-<screen>
+          <note>
+            <para>Check that <literal>ScriptAlias</literal> and <literal>Alias</literal> directories are correct.  The example values are for Debian 3.1 (Sarge).</para>
+          </note>
+        </listitem>
+      </orderedlist>
+      <section>
+        <title>Mailing list for commits</title>
+        <para>When repositories are created, mailing list <literal><replaceable>project</replaceable>-commits at lists.gforge.<replaceable>company.com</replaceable></literal> is created too. Note that project administrators should manually set Privacy Options... / Sender filters / accept_these_nonmembers to something like <literal>^.*@<replaceable>servername\.company\.com</replaceable></literal> where <replaceable>servername.company.com</replaceable> is name of the host where Mailman is installed (<literal>lists.gforge.<replaceable>company.com</replaceable></literal>).</para>
+      </section>
+    </section>
+    <section>
+      <title>Source Code Management (SCM)</title>
+      <para>CVS and Subversion (SVN) are popular SCM systems that may be installed as plugins, as shown later.  You&apos;ll have to make their needed directories:</para>
+      <screen>
 # <userinput>mkdir <replaceable>/var/www</replaceable>/scmtarballs</userinput>
 # <userinput>mkdir <replaceable>/var/www</replaceable>/scmsnapshots</userinput>
 </screen>
-			<para>These directories correspond to FusionForge configuration variables <varname>$sys_scm_tarballs_path</varname> and <varname>$sys_scm_snapshots_path</varname>.</para>
-			<note>
-				<para>For FHS-compliance, use <filename class="directory">/var/local/gforge/scmtarballs</filename> and <filename class="directory">/var/local/gforge/scmsnapshots</filename>.</para>
-			</note>
-		</section>
-		<section>
-			<title>Cron Jobs</title>
-			<para>
-				Cron jobs are in the <filename class="directory">cronjobs/</filename> directory and the <filename>crontab.in</filename> file contains a sample crontab. This gives you the basic cronjobs for updating certain statistics and data on the site.
-			</para>
-			<para>
-				<filename class="directory">cronjobs/cvs-cron/</filename> contains scripts useful for creating blank cvs trees and managing the <filename>/etc/groups</filename>, <filename>/etc/passwd</filename> and <filename>/etc/shadow</filename> files. See <filename>cronjobs/README.root</filename> and CVS plugins section for more info.
-			</para>
-			<para>
-				<filename class="directory">cronjobs/mail/</filename> contains files useful for the creation of new mailing lists in mailman and creating the <filename>/etc/aliases</filename> file.
-			</para>
-			<para>Prepare for <filename>cronjobs/cvs-cron/usergroup.php</filename> and <filename>cronjobs/mail/mailaliases.php</filename>.</para>
-			<screen>
+      <para>These directories correspond to FusionForge configuration variables <varname>$sys_scm_tarballs_path</varname> and <varname>$sys_scm_snapshots_path</varname>.</para>
+      <note>
+        <para>For FHS-compliance, use <filename class="directory">/var/local/gforge/scmtarballs</filename> and <filename class="directory">/var/local/gforge/scmsnapshots</filename>.</para>
+      </note>
+    </section>
+    <section>
+      <title>Cron Jobs</title>
+      <para>
+    Cron jobs are in the <filename class="directory">cronjobs/</filename> directory and the <filename>crontab.in</filename> file contains a sample crontab. This gives you the basic cronjobs for updating certain statistics and data on the site.
+   </para>
+      <para>
+    <filename class="directory">cronjobs/cvs-cron/</filename> contains scripts useful for creating blank cvs trees and managing the <filename>/etc/groups</filename>, <filename>/etc/passwd</filename> and <filename>/etc/shadow</filename> files. See <filename>cronjobs/README.root</filename> and CVS plugins section for more info.
+   </para>
+      <para>
+    <filename class="directory">cronjobs/mail/</filename> contains files useful for the creation of new mailing lists in mailman and creating the <filename>/etc/aliases</filename> file.
+   </para>
+      <para>Prepare for <filename>cronjobs/cvs-cron/usergroup.php</filename> and <filename>cronjobs/mail/mailaliases.php</filename>.</para>
+      <screen>
 # <userinput>adduser anonymous</userinput>
 # <userinput>cp /etc/aliases /etc/aliases.org</userinput>
 # <userinput>cp /etc/shadow /etc/shadow.org</userinput>
 # <userinput>cp /etc/passwd /etc/passwd.org</userinput>
 # <userinput>cp /etc/group /etc/group.org</userinput>
 </screen>
-			<note>
-				<para>There are two other ways to authenticate FusionForge users: LDAP and NSS with PostgreSQL backend.  They are not discussed in this guide.</para>
-			</note>
-			<caution>
-				<para>The <filename>cronjobs/cvs-cron/usergroup.php</filename> cron script will meddle with your <filename>/etc/passwd</filename>, <filename>/etc/group</filename>, and <filename>/etc/shadow</filename> files. By default, this cron will save these files with a <literal>.new</literal> extension. You will have to edit the cron script to remove the <literal>.new</literal> extension, but you must make sure that it is properly generating your files or your server could be unusable.</para>
-			</caution>
-			<warning>
-				<para>
-					The following command will blow away any existing root crontab:
-				</para>
-			</warning>
-<screen>
+      <note>
+        <para>There are two other ways to authenticate FusionForge users: LDAP and NSS with PostgreSQL backend.  They are not discussed in this guide.</para>
+      </note>
+      <caution>
+        <para>The <filename>cronjobs/cvs-cron/usergroup.php</filename> cron script will meddle with your <filename>/etc/passwd</filename>, <filename>/etc/group</filename>, and <filename>/etc/shadow</filename> files. By default, this cron will save these files with a <literal>.new</literal> extension. You will have to edit the cron script to remove the <literal>.new</literal> extension, but you must make sure that it is properly generating your files or your server could be unusable.</para>
+      </caution>
+      <warning>
+        <para>
+     The following command will blow away any existing root crontab:
+    </para>
+      </warning>
+      <screen>
 # <userinput>crontab cronjobs/crontab.in</userinput>
 </screen>
-			<para>Now edit the paths to the cron scripts by setting the value of <varname>GFORGE</varname> and <varname>PHP</varname> variables:</para>
-			<screen>
+      <para>Now edit the paths to the cron scripts by setting the value of <varname>GFORGE</varname> and <varname>PHP</varname> variables:</para>
+      <screen>
 # <userinput>crontab -e</userinput>
 </screen>
-			<para>Uncomment entries for <filename>cronjobs/cvs-cron/usergroup.php</filename>, <filename>cronjobs/mail/mailing_lists_create.php</filename>, and <filename>cronjobs/mail/mailaliases.php</filename> but not before understanding the consequences.</para>
-		</section>
-		<section>
-			<title>Verifying the Installation</title>
-			<para>To verify if everything was installed correctly, use the browser and connect to FusionForge. You should see the FusionForge homepage. You will need to either disable CVS and SVN plugins in some way, or configure them before making the first test.</para>
-			<note>
-				<para>If you get an <computeroutput>Error: Could Not Connect to Database</computeroutput>, check if you have followed all installation instructions for the database.  Also, you can experiment with making the settings in <filename>pg_hba.conf</filename> a bit more trusting - for example, change the last work of the second line from <literal>md5</literal> to <literal>trust</literal>.</para>
-			</note>
-		</section>
-		<section>
-			<title>Creating the Admin User</title>
-			<para>Site admins are anyone who is an admin of <literal>group_id</literal>=1.</para>
-			<orderedlist>
-				<listitem><para>Connect to FusionForge and register a new account.</para></listitem>
-				<listitem><para>Insert a valid email address; this will be used for the account confirmation.</para></listitem>
-				<listitem><para>Open your e-mail client, wait for the email from FusionForge site and follow the link that appears on the message.</para></listitem>
-				<listitem>
-					<para>Verify in Account Maintenance the user id of the user registered.</para>
-					<para>Usually this is 102, but you can verify this by running the following SQL query via the PostgreSQL <command>psql</command> utility:</para>
-<screen>
+      <para>Uncomment entries for <filename>cronjobs/cvs-cron/usergroup.php</filename>, <filename>cronjobs/mail/mailing_lists_create.php</filename>, and <filename>cronjobs/mail/mailaliases.php</filename> but not before understanding the consequences.</para>
+    </section>
+    <section>
+      <title>Verifying the Installation</title>
+      <para>To verify if everything was installed correctly, use the browser and connect to FusionForge. You should see the FusionForge homepage. You will need to either disable CVS and SVN plugins in some way, or configure them before making the first test.</para>
+      <note>
+        <para>If you get an <computeroutput>Error: Could Not Connect to Database</computeroutput>, check if you have followed all installation instructions for the database.  Also, you can experiment with making the settings in <filename>pg_hba.conf</filename> a bit more trusting - for example, change the last work of the second line from <literal>md5</literal> to <literal>trust</literal>.</para>
+      </note>
+    </section>
+    <section>
+      <title>Creating the Admin User</title>
+      <para>Site admins are anyone who is an admin of <literal>group_id</literal>=1.</para>
+      <orderedlist>
+        <listitem>
+          <para>Connect to FusionForge and register a new account.</para>
+        </listitem>
+        <listitem>
+          <para>Insert a valid email address; this will be used for the account confirmation.</para>
+        </listitem>
+        <listitem>
+          <para>Open your e-mail client, wait for the email from FusionForge site and follow the link that appears on the message.</para>
+        </listitem>
+        <listitem>
+          <para>Verify in Account Maintenance the user id of the user registered.</para>
+          <para>Usually this is 102, but you can verify this by running the following SQL query via the PostgreSQL <command>psql</command> utility:</para>
+          <screen>
 $ <userinput>psql -U gforge -W -h localhost gforge</userinput>
-gforge=> <userinput>SELECT user_id FROM users WHERE user_name='<replaceable>YOUR USER NAME</replaceable>'</userinput>;
+gforge=&gt; <userinput>SELECT user_id FROM users WHERE user_name=&apos;<replaceable>YOUR USER NAME</replaceable>&apos;</userinput>;
 </screen>
-				</listitem>
-				<listitem>
-					<para>Now set up the newly added user to be a FusionForge administrator:</para>
-<screen>
-gforge=> <userinput>INSERT INTO user_group (user_id,group_id,admin_flags)</userinput>
-gforge-> <userinput>VALUES (<replaceable>102</replaceable>,1,'A');</userinput>
+        </listitem>
+        <listitem>
+          <para>Now set up the newly added user to be a FusionForge administrator:</para>
+          <screen>
+gforge=&gt; <userinput>INSERT INTO user_group (user_id,group_id,admin_flags)</userinput>
+gforge-&gt; <userinput>VALUES (<replaceable>102</replaceable>,1,&apos;A&apos;);</userinput>
 </screen>
-				</listitem>
-			</orderedlist>
-			<para>One of the first string as FusionForge administrator is to initialize once the reporting tables from Reporting tab.</para>
-			<note>
-				<para>Once you have set up this user as an administrator, you can use FusionForge web interface to add more administrators.</para>
-			</note>
-		</section>
-		<section>
-			<title>Customizing Front Page</title>
-			<para>If you want to customize front page, you'll have to provide new <filename>index_std.php</filename>:</para>
-			<orderedlist>
-				<listitem>
-					<para>Create <filename class="directory">/etc/gforge/custom</filename> directory.</para>
-				</listitem>
-				<listitem>
-					<para>Set <varname>$sys_custom_path</varname> configuration variable to <filename class="directory">/etc/gforge/custom</filename>.</para>
-				</listitem>
-				<listitem>
-					<para>Copy <filename><replaceable>/var/www/gforge</replaceable>/www/index_std.php</filename> to <filename>/etc/gforge/custom/index_std.php</filename> and edit it as you like.</para>
-				</listitem>
-			</orderedlist>
-		</section>
-		<section>
-			<title>Optional Features</title>
-			<section>
-				<title>Project webs</title>
-				<para>Each project can have its own virtual host <literal><replaceable>projectname</replaceable>.projects.gforge.<replaceable>company.com</replaceable></literal>.  Location of project files is configured with <varname>$groupdir_prefix</varname> variable in FusionForge configuration file.  Each project has directory with project's name and contains <filename class="directory">htdocs</filename> subdirectory where Web files are placed.  Project directories are created by <filename>cronjobs/cvs-cron/usergroup.php</filename>.</para>
-				<section>
-					<title>DNS Server Configuration (BIND)</title>
-					<para>Project virtual hosts require new DNS zone.  Making this new zone is similar to making DNS zone for FusionForge itself.</para>
-					<orderedlist>
-						<listitem>
-							<para>Declare new zone in <literal>gforge.<replaceable>company.com</replaceable></literal> zone:</para>
-<programlisting>
+        </listitem>
+      </orderedlist>
+      <para>One of the first string as FusionForge administrator is to initialize once the reporting tables from Reporting tab.</para>
+      <note>
+        <para>Once you have set up this user as an administrator, you can use FusionForge web interface to add more administrators.</para>
+      </note>
+    </section>
+    <section>
+      <title>Customizing Front Page</title>
+      <para>If you want to customize front page, you&apos;ll have to provide new <filename>index_std.php</filename>:</para>
+      <orderedlist>
+        <listitem>
+          <para>Create <filename class="directory">/etc/gforge/custom</filename> directory.</para>
+        </listitem>
+        <listitem>
+          <para>Set <varname>$sys_custom_path</varname> configuration variable to <filename class="directory">/etc/gforge/custom</filename>.</para>
+        </listitem>
+        <listitem>
+          <para>Copy <filename><replaceable>/var/www/gforge</replaceable>/www/index_std.php</filename> to <filename>/etc/gforge/custom/index_std.php</filename> and edit it as you like.</para>
+        </listitem>
+      </orderedlist>
+    </section>
+    <section>
+      <title>Optional Features</title>
+      <section>
+        <title>Project webs</title>
+        <para>Each project can have its own virtual host <literal><replaceable>projectname</replaceable>.projects.gforge.<replaceable>company.com</replaceable></literal>.  Location of project files is configured with <varname>$groupdir_prefix</varname> variable in FusionForge configuration file.  Each project has directory with project&apos;s name and contains <filename class="directory">htdocs</filename> subdirectory where Web files are placed.  Project directories are created by <filename>cronjobs/cvs-cron/usergroup.php</filename>.</para>
+        <section>
+          <title>DNS Server Configuration (BIND)</title>
+          <para>Project virtual hosts require new DNS zone.  Making this new zone is similar to making DNS zone for FusionForge itself.</para>
+          <orderedlist>
+            <listitem>
+              <para>Declare new zone in <literal>gforge.<replaceable>company.com</replaceable></literal> zone:</para>
+              <programlisting>
 projects        IN      NS      ns.projects.gforge.<replaceable>company.com</replaceable>
 </programlisting>
-							<para>If DNS server <emphasis>doesn't</emphasis> serve the new <literal>projects.gforge.<replaceable>company.com</replaceable></literal> zone, add the following line too:</para>
-<programlisting>
+              <para>If DNS server <emphasis>doesn&apos;t</emphasis> serve the new <literal>projects.gforge.<replaceable>company.com</replaceable></literal> zone, add the following line too:</para>
+              <programlisting>
 ns.projects     IN      A       <replaceable>1.2.3.4</replaceable>
 </programlisting>
-							<para>Don't forget to change serial number of <literal>gforge.<replaceable>company.com</replaceable></literal> zone!</para>
-						</listitem>
-						<listitem>
-							<para>Create new zone file with following content:</para>
-<programlisting>
+              <para>Don&apos;t forget to change serial number of <literal>gforge.<replaceable>company.com</replaceable></literal> zone!</para>
+            </listitem>
+            <listitem>
+              <para>Create new zone file with following content:</para>
+              <programlisting>
 $TTL    2d
 @       IN      SOA     projects.gforge.<replaceable>company.com</replaceable>. hostmaster.gforge.<replaceable>company.com</replaceable>. (
                               1         ; Serial
@@ -741,35 +769,35 @@
 
 *               IN      A       <replaceable>1.2.3.4</replaceable>
 </programlisting>
-						</listitem>
-						<listitem>
-							<para>The new zone must be added in main BIND configuration file:</para>
-<programlisting>
-zone "projects.gforge.<replaceable>company.com</replaceable>" {
+            </listitem>
+            <listitem>
+              <para>The new zone must be added in main BIND configuration file:</para>
+              <programlisting>
+zone &quot;projects.gforge.<replaceable>company.com</replaceable>&quot; {
         type master;
-        file "<replaceable>/dist-specific/path/to/zone-file</replaceable>";
+        file &quot;<replaceable>/dist-specific/path/to/zone-file</replaceable>&quot;;
 };
 </programlisting>
-						</listitem>
-						<listitem>
-							<para>Reload BIND and test if all works:</para>
-<screen>
+            </listitem>
+            <listitem>
+              <para>Reload BIND and test if all works:</para>
+              <screen>
 $ <userinput>host test.projects.gforge.<replaceable>company.com</replaceable></userinput>
 test.projects.gforge.<replaceable>company.com</replaceable> has address <replaceable>1.2.3.4</replaceable>
 </screen>
-						</listitem>
-					</orderedlist>
-				</section>
-				<section>
-					<title>Web Server Configuration (Apache)</title>
-					<para>Module <literal>vhost_alias</literal> should be enabled and the following directives should be added to <filename>httpd.conf</filename> (if <filename class="directory"><replaceable>/var/www/homedirs</replaceable>/groups</filename> is what you have chosen in <varname>$groupdir_prefix</varname>):</para>
-					<note>
-						<para>If you want to be FHS-compliant, you may use <filename>/var/local/gforge/log</filename> and <filename>/var/local/gforge/homedirs</filename>. </para>
-					</note>
-<programlisting>
+            </listitem>
+          </orderedlist>
+        </section>
+        <section>
+          <title>Web Server Configuration (Apache)</title>
+          <para>Module <literal>vhost_alias</literal> should be enabled and the following directives should be added to <filename>httpd.conf</filename> (if <filename class="directory"><replaceable>/var/www/homedirs</replaceable>/groups</filename> is what you have chosen in <varname>$groupdir_prefix</varname>):</para>
+          <note>
+            <para>If you want to be FHS-compliant, you may use <filename>/var/local/gforge/log</filename> and <filename>/var/local/gforge/homedirs</filename>. </para>
+          </note>
+          <programlisting>
 #
-#	WARNING - security is degraded by having this
-#	on the same machine as the primary FusionForge
+# WARNING - security is degraded by having this
+# on the same machine as the primary FusionForge
 #
 NameVirtualHost <replaceable>1.2.3.4</replaceable>
 &lt;VirtualHost <replaceable>1.2.3.4</replaceable>&gt;
@@ -779,21 +807,21 @@
   UseCanonicalName  Off
 
 # You may want to add these files to logrotate, or just use cronolog as shown below
-  CustomLog "<replaceable>/var/log/gforge</replaceable>/projects/access.log" combined
-  ErrorLog  "<replaceable>/var/log/gforge</replaceable>/projects/error.log"
+  CustomLog &quot;<replaceable>/var/log/gforge</replaceable>/projects/access.log&quot; combined
+  ErrorLog  &quot;<replaceable>/var/log/gforge</replaceable>/projects/error.log&quot;
 
-#  CustomLog "|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/projects/%Y/%m/%d/access.log" combined
-#  ErrorLog  "|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/projects/%Y/%m/%d/error.log"
+#  CustomLog &quot;|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/projects/%Y/%m/%d/access.log&quot; combined
+#  ErrorLog  &quot;|/usr/bin/cronolog <replaceable>/var/log/gforge</replaceable>/projects/%Y/%m/%d/error.log&quot;
 
   DocumentRoot        <replaceable>/var/www/homedirs</replaceable>/groups
   VirtualDocumentRoot <replaceable>/var/www/homedirs</replaceable>/groups/%1/htdocs
   &lt;Directory <replaceable>/var/www/homedirs</replaceable>/groups&gt;
     Options Indexes
 #
-#	WARNING - turning on php will allow any user
-#	to upload a php file to your server, and include 
-#	the gforge local.inc file and get your password to 
-#	connect to the database and have total control.
+# WARNING - turning on php will allow any user
+# to upload a php file to your server, and include 
+# the gforge local.inc file and get your password to 
+# connect to the database and have total control.
 #
     php_flag engine off
     AllowOverride None
@@ -803,23 +831,23 @@
   DirectoryIndex index.html index.htm
 &lt;/VirtualHost&gt;
 </programlisting>
-					<note>
-						<para><filename>cronjobs/cvs-cron/usergroup.php</filename> copies from <filename>cronjobs/cvs-cron/default_page.php</filename> to <filename><replaceable>/var/www/homedirs</replaceable>/groups/<replaceable>projectname</replaceable>/htdocs/index.php</filename> but the above configuration disables PHP.</para>
-					</note>
-				</section>
-			</section>
-			<section>
-				<title>Full Text Indexing</title>
-				<para>If you want to enable full text indexing, follow these steps:</para>
-				<itemizedlist>
-					<listitem>
-						<para>Find <filename>tsearch2.sql</filename> in your distribution of PostgreSQL and run it:</para>
-<screen>
+          <note>
+            <para><filename>cronjobs/cvs-cron/usergroup.php</filename> copies from <filename>cronjobs/cvs-cron/default_page.php</filename> to <filename><replaceable>/var/www/homedirs</replaceable>/groups/<replaceable>projectname</replaceable>/htdocs/index.php</filename> but the above configuration disables PHP.</para>
+          </note>
+        </section>
+      </section>
+      <section>
+        <title>Full Text Indexing</title>
+        <para>If you want to enable full text indexing, follow these steps:</para>
+        <itemizedlist>
+          <listitem>
+            <para>Find <filename>tsearch2.sql</filename> in your distribution of PostgreSQL and run it:</para>
+            <screen>
 # <userinput>su - postgres</userinput>
 $ <userinput>psql -f <replaceable>/path/to/</replaceable>tsearch2.sql gforge</userinput>
 </screen>
-<para>Since <literal>gforge</literal> PostgreSQL user is not superuser, access to some Tsearch2 tables should be additionally granted:</para>
-<screen>
+            <para>Since <literal>gforge</literal> PostgreSQL user is not superuser, access to some Tsearch2 tables should be additionally granted:</para>
+            <screen>
 # <userinput>su - postgres</userinput>
 $ <userinput>psql gforge</userinput>
 gforge=# <userinput>GRANT SELECT ON pg_ts_dict TO gforge;</userinput>
@@ -827,241 +855,240 @@
 gforge=# <userinput>GRANT SELECT ON pg_ts_cfg TO gforge;</userinput>
 gforge=# <userinput>GRANT SELECT ON pg_ts_cfgmap TO gforge;</userinput>
 </screen>
-					</listitem>
-					<listitem>
-						<para>Import data definitions:</para>
-<screen>
+          </listitem>
+          <listitem>
+            <para>Import data definitions:</para>
+            <screen>
 $ <userinput>cd <replaceable>/var/www/gforge</replaceable>/db</userinput>
 $ <userinput>psql -U gforge -W -h localhost -f FTI.sql gforge</userinput>
 $ <userinput>psql -U gforge -W -h localhost -f FTI-20050315.sql gforge</userinput>
 $ <userinput>psql -U gforge -W -h localhost -f FTI-20050401.sql gforge</userinput>
 $ <userinput>psql -U gforge -W -h localhost -f FTI-20050530.sql gforge</userinput>
 </screen>
-					</listitem>
-					<listitem>
-						<para>Enable Full Text Indexing by setting <varname>$sys_use_fti</varname> in FusionForge Configuration File <filename>local.inc</filename>.</para>
-					</listitem>
-				</itemizedlist>
-			</section>
-			<section>
-				<title>JPGraph</title>
-				<para>PHP must be compiled with <literal>--with-gd</literal>, or appropriate package must be installed.  Extra fonts for JPGraph are not necessary.  Be sure your <filename>/etc/gforge/local.inc</filename> file contains the proper path to the <filename class="directory">jpgraph/src/</filename> directory.</para>
-				<para>Manual installation can be done like this:</para>
-<screen>
+          </listitem>
+          <listitem>
+            <para>Enable Full Text Indexing by setting <varname>$sys_use_fti</varname> in FusionForge Configuration File <filename>local.inc</filename>.</para>
+          </listitem>
+        </itemizedlist>
+      </section>
+      <section>
+        <title>JPGraph</title>
+        <para>PHP must be compiled with <literal>--with-gd</literal>, or appropriate package must be installed.  Extra fonts for JPGraph are not necessary.  Be sure your <filename>/etc/gforge/local.inc</filename> file contains the proper path to the <filename class="directory">jpgraph/src/</filename> directory.</para>
+        <para>Manual installation can be done like this:</para>
+        <screen>
 # tar -xzf jpgraph-1.19.tar.gz
 # mkdir <replaceable>/var/www</replaceable>/jpgraph
 # cp -R jpgraph-1.19/src/* <replaceable>/var/www</replaceable>/jpgraph
 </screen>
-				<note>
-					<para>If you want FHS-compliance, <filename class="directory">/usr/local/share/jpgraph</filename></para>
-				</note>
-				<para>When you get your preferred version of JPGraph installed, you will have to edit one setting in <filename>jpgraph.php</filename> (or <filename>jpg-config.php</filename>, depending on JPGraph version):</para>
-<programlisting>
-DEFINE("USE_CACHE", false);
+        <note>
+          <para>If you want FHS-compliance, <filename class="directory">/usr/local/share/jpgraph</filename></para>
+        </note>
+        <para>When you get your preferred version of JPGraph installed, you will have to edit one setting in <filename>jpgraph.php</filename> (or <filename>jpg-config.php</filename>, depending on JPGraph version):</para>
+        <programlisting>
+DEFINE(&quot;USE_CACHE&quot;, false);
 </programlisting>
-				<warning>
-					<para>Be careful with JPGraph license: versions &gt; 1.5.2 are not free (as in free speech).  You must check license before use.</para>
-				</warning>
-			</section>
-			<section>
-				<title>Perl</title>
-				<para>If you want to use some of the Perl scripts that access the database, you'll need the <literal>DBI</literal> and <literal>DBD::Pg</literal> Perl modules.  On Red Hat systems (and variants), you can get them by installing the <literal>libdbi</literal> and <literal>libdbd-pgsql</literal> packages.  On Debian systems (and variants), the packages are called <literal>libdbi-perl</literal> and <literal>libdbd-pg-perl</literal>.</para>
-				<para>You'll also need to install <filename>utils/include.pl</filename> to <filename class="directory">/usr/share/gforge/lib/</filename>, and put some configuration variables into <filename class="directory">/etc/gforge/local.pl</filename>.  In particular, you'll need something like the following in <filename>local.pl</filename>:</para>
-<programlisting>
-$sys_default_domain = 'gforge.company.com' ;
-$sys_dbhost = '192.168.12.34' ;
-$sys_dbname = 'gforge' ;
-$sys_dbuser = 'gforge' ;
-$sys_dbpasswd = 'p455w0rd' ;
+        <warning>
+          <para>Be careful with JPGraph license: versions &gt; 1.5.2 are not free (as in free speech).  You must check license before use.</para>
+        </warning>
+      </section>
+      <section>
+        <title>Perl</title>
+        <para>If you want to use some of the Perl scripts that access the database, you&apos;ll need the <literal>DBI</literal> and <literal>DBD::Pg</literal> Perl modules.  On Red Hat systems (and variants), you can get them by installing the <literal>libdbi</literal> and <literal>libdbd-pgsql</literal> packages.  On Debian systems (and variants), the packages are called <literal>libdbi-perl</literal> and <literal>libdbd-pg-perl</literal>.</para>
+        <para>You&apos;ll also need to install <filename>utils/include.pl</filename> to <filename class="directory">/usr/share/gforge/lib/</filename>, and put some configuration variables into <filename class="directory">/etc/gforge/local.pl</filename>.  In particular, you&apos;ll need something like the following in <filename>local.pl</filename>:</para>
+        <programlisting>
+$sys_default_domain = &apos;gforge.company.com&apos; ;
+$sys_dbhost = &apos;192.168.12.34&apos; ;
+$sys_dbname = &apos;gforge&apos; ;
+$sys_dbuser = &apos;gforge&apos; ;
+$sys_dbpasswd = &apos;p455w0rd&apos; ;
 </programlisting>
-			</section>
-			<section>
-				<title>Jabber Support</title>
-				<para>FusionForge supports the sending of messages to jabber accounts. To accomplish this, you must have a user account setup on the jabber server that gforge can connect to and send messages.</para>
-				<para>Once you have that user account, server, and password set up, just edit <filename>/etc/gforge/local.inc</filename> and add the information to the jabber section.</para>
-			</section>
-			<section>
-				<title>Peer Ratings</title>
-				<para>Add yourself, and any others you wish, to the <quote>Peer Ratings</quote> project, which should be at <literal>/projects/peerrating/</literal> on the website. Make yourself an admininistrator of the project, and then proceed to <quote>rate</quote> other users on the website.</para>
-				<para>Members of the <quote>Peer Ratings</quote> project, who are administrator of the project, become the first trusted users. This is the only way to prime the pump for the peer ratings system.</para>
-			</section>
-		</section>
-	</section>
-	<section>
-		<title>Plugins</title>
-		<note>
-			<para>Since FusionForge 4.0, plugins are necessary as source code management is now provided by plugins (SCM* plugins).</para>
-		</note>
-		<para>For each plugin, you can find an <filename>INSTALL</filename> file in the plugin tarball.</para>
-		<section>
-			<title>CVS</title>
-			<section>
-				<title>Overview</title>
-				<para>CVS is now managed via the scmcvs plugin which is included in the <filename class="directory">plugins/</filename> directory in the tarball downloaded from gforge.org. Most of the files in scmcvs are intended for auto-installation on Debian systems and <emphasis role="strong">do not apply</emphasis> to the majority of users. The scmcvs plugin is activated by default in the <filename>gforge.sql</filename> database and all that you have to do is copy the <filename>plugins/scmcvs/etc/*</filename> directories to <filename class="directory">/etc/gforge</filename> directory and possibly modify the files slightly.</para>
-			</section>
-			<section>
-				<title>Cronjobs</title>
-				<para>Cronjobs for CVS are included in <filename>cronjobs/crontab.in</filename>, but are commented out by default for your security. The CVS cronjobs are in <filename><replaceable>/var/www/gforge</replaceable>/cronjobs/cvs-cron</filename> and consist of:</para>
-				<itemizedlist>
-					<listitem>
-						<para><filename>usergroup.php</filename> creates user and groups in <filename>/etc/passwd</filename>, <filename>/etc/shadow</filename>, and <filename>/etc/group</filename>.</para>
-					</listitem>
-					<listitem>
-						<para><filename>cvs.php</filename> creates repositories.</para>
-					</listitem>
-					<listitem>
-						<para><filename>ssh_create.php</filename> copies SSH keys to user directories.</para>
-					</listitem>
-					<listitem>
-						<para><filename>history_parse.php</filename> collects statistics.</para>
-					</listitem>
-				</itemizedlist>
-				<para>There are other cronjobs that can be activated too:</para>
-				<itemizedlist>
-					<listitem>
-						<para><filename>plugins/scmcvs/cronjobs/tarballs.php</filename> creates tarballs</para>
-					</listitem>
-					<listitem>
-						<para><filename>plugins/scmcvs/bin/snapshots.sh</filename> creates tarballs.  <varname>CVSROOT</varname> and <varname>SCMSNAPSHOTSDIR</varname> variables are hard-coded in the script, so you'll have to edit the script if necessary.</para>
-					</listitem>
-				</itemizedlist>
-				<para>Make sure these files are executed as root, and have proper execution bits set.  Each of these cronjobs has configuration parameters which you may have to edit manually for your specific system. Here is a list of CVS cronjobs:</para>
-				<para>If you are using CVS 1.12, replace <filename>syncmail</filename> with updated version.</para>
-<screen>
+      </section>
+      <section>
+        <title>Jabber Support</title>
+        <para>FusionForge supports the sending of messages to jabber accounts. To accomplish this, you must have a user account setup on the jabber server that gforge can connect to and send messages.</para>
+        <para>Once you have that user account, server, and password set up, just edit <filename>/etc/gforge/local.inc</filename> and add the information to the jabber section.</para>
+      </section>
+      <section>
+        <title>Peer Ratings</title>
+        <para>Add yourself, and any others you wish, to the <quote>Peer Ratings</quote> project, which should be at <literal>/projects/peerrating/</literal> on the website. Make yourself an admininistrator of the project, and then proceed to <quote>rate</quote> other users on the website.</para>
+        <para>Members of the <quote>Peer Ratings</quote> project, who are administrator of the project, become the first trusted users. This is the only way to prime the pump for the peer ratings system.</para>
+      </section>
+    </section>
+  </section>
+  <section>
+    <title>Plugins</title>
+    <note>
+      <para>Since FusionForge 4.0, plugins are necessary as source code management is now provided by plugins (SCM* plugins).</para>
+    </note>
+    <para>For each plugin, you can find an <filename>INSTALL</filename> file in the plugin tarball.</para>
+    <section>
+      <title>CVS</title>
+      <section>
+        <title>Overview</title>
+        <para>CVS is now managed via the scmcvs plugin which is included in the <filename class="directory">plugins/</filename> directory in the tarball downloaded from gforge.org. Most of the files in scmcvs are intended for auto-installation on Debian systems and <emphasis role="strong">do not apply</emphasis> to the majority of users. The scmcvs plugin is activated by default in the <filename>gforge.sql</filename> database and all that you have to do is copy the <filename>plugins/scmcvs/etc/*</filename> directories to <filename class="directory">/etc/gforge</filename> directory and possibly modify the files slightly.</para>
+      </section>
+      <section>
+        <title>Cronjobs</title>
+        <para>Cronjobs for CVS are included in <filename>cronjobs/crontab.in</filename>, but are commented out by default for your security. The CVS cronjobs are in <filename><replaceable>/var/www/gforge</replaceable>/cronjobs/cvs-cron</filename> and consist of:</para>
+        <itemizedlist>
+          <listitem>
+            <para><filename>usergroup.php</filename> creates user and groups in <filename>/etc/passwd</filename>, <filename>/etc/shadow</filename>, and <filename>/etc/group</filename>.</para>
+          </listitem>
+          <listitem>
+            <para><filename>cvs.php</filename> creates repositories.</para>
+          </listitem>
+          <listitem>
+            <para><filename>ssh_create.php</filename> copies SSH keys to user directories.</para>
+          </listitem>
+          <listitem>
+            <para><filename>history_parse.php</filename> collects statistics.</para>
+          </listitem>
+        </itemizedlist>
+        <para>There are other cronjobs that can be activated too:</para>
+        <itemizedlist>
+          <listitem>
+            <para><filename>plugins/scmcvs/cronjobs/tarballs.php</filename> creates tarballs</para>
+          </listitem>
+          <listitem>
+            <para><filename>plugins/scmcvs/bin/snapshots.sh</filename> creates tarballs.  <varname>CVSROOT</varname> and <varname>SCMSNAPSHOTSDIR</varname> variables are hard-coded in the script, so you&apos;ll have to edit the script if necessary.</para>
+          </listitem>
+        </itemizedlist>
+        <para>Make sure these files are executed as root, and have proper execution bits set.  Each of these cronjobs has configuration parameters which you may have to edit manually for your specific system. Here is a list of CVS cronjobs:</para>
+        <para>If you are using CVS 1.12, replace <filename>syncmail</filename> with updated version.</para>
+        <screen>
 # <userinput>cd <replaceable>/var/www/gforge</replaceable></userinput>
 # <userinput>cp plugins/scmcvs/bin/syncmail-cvs-1.12 cronjobs/cvs-cron/syncmail</userinput>
 </screen>
-				<para>Replace <literal>%1{sVv}</literal> in <filename><replaceable>/var/www/gforge</replaceable>/cronjobs/cvs-cron/cvs.php</filename> with <literal>%p %{sVv}</literal>.  Search for <literal>LockDir=</literal> in <filename>cronjobs/cvs-cron/cvscreate.sh</filename> and add the following line after it:</para>
-				<programlisting>
-echo "UseNewInfoFmtStrings=yes" >> $repositorypath/CVSROOT/config
-				</programlisting>
-			</section>
-			<section>
-				<title>Installation</title>
-				<warning>
-					<para>This guide doesn't cover chrooted CVS repositories which are always recommended.</para>
-				</warning>
-				<orderedlist>
-					<listitem>
-						<para>Create default location for CVS repositories (<varname>$cvsdir_prefix</varname> in FusionForge configuration file):</para>
-<screen>
+        <para>Replace <literal>%1{sVv}</literal> in <filename><replaceable>/var/www/gforge</replaceable>/cronjobs/cvs-cron/cvs.php</filename> with <literal>%p %{sVv}</literal>.  Search for <literal>LockDir=</literal> in <filename>cronjobs/cvs-cron/cvscreate.sh</filename> and add the following line after it:</para>
+        <programlisting>
+echo &quot;UseNewInfoFmtStrings=yes&quot; &gt;&gt; $repositorypath/CVSROOT/config
+    </programlisting>
+      </section>
+      <section>
+        <title>Installation</title>
+        <warning>
+          <para>This guide doesn&apos;t cover chrooted CVS repositories which are always recommended.</para>
+        </warning>
+        <orderedlist>
+          <listitem>
+            <para>Create default location for CVS repositories (<varname>$cvsdir_prefix</varname> in FusionForge configuration file):</para>
+            <screen>
 # <userinput>mkdir <replaceable>/cvsroot</replaceable></userinput>
 </screen>
-					</listitem>
-					<listitem>
-						<para><emphasis>Optional:</emphasis> Set up basic index.php file for CVS virtual host if desired.  This guide has not further instructions on enabling CVS virtual host.</para>
-<screen>
+          </listitem>
+          <listitem>
+            <para><emphasis>Optional:</emphasis> Set up basic index.php file for CVS virtual host if desired.  This guide has not further instructions on enabling CVS virtual host.</para>
+            <screen>
 # <userinput>mkdir <replaceable>/var/www/cvs</replaceable></userinput>
 # <userinput>cp <replaceable>/var/www/gforge</replaceable>/cronjobs/cvs-cron/www/* <replaceable>/var/www/cvs</replaceable></userinput>
 </screen>
-					</listitem>
-					<listitem>
-						<para>Copy the scmcvs plugin config to <filename class="directory">/etc/gforge</filename>:</para>
-<screen>
+          </listitem>
+          <listitem>
+            <para>Copy the scmcvs plugin config to <filename class="directory">/etc/gforge</filename>:</para>
+            <screen>
 # <userinput>cp -R <replaceable>/var/www/gforge</replaceable>/plugins/scmcvs/etc/* /etc/gforge</userinput>
 </screen>
-					</listitem>
-					<listitem>
-						<para>Make sure the cvs crons are executable:</para>
-<screen>
+          </listitem>
+          <listitem>
+            <para>Make sure the cvs crons are executable:</para>
+            <screen>
 # <userinput>cd <replaceable>/var/www/gforge</replaceable>/cronjobs/cvs-cron/</userinput>
 # <userinput>chmod 755 *.php *.sh</userinput>
 </screen>
-					</listitem>
-					<listitem>
-						<para>Copy CVS restricted shell:</para>
-<screen>
+          </listitem>
+          <listitem>
+            <para>Copy CVS restricted shell:</para>
+            <screen>
 # <userinput>cp <replaceable>/var/www/gforge</replaceable>/cronjobs/cvs-cron/cvssh.pl /bin</userinput>
 </screen>
-					</listitem>
-					<listitem>
-						<para>Edit FusionForge Config File <filename>/etc/gforge/local.inc</filename> and change <varname>$sys_path_to_scmweb</varname> to be <filename class="directory"><replaceable>/var/www/gforge</replaceable>/plugins/scmcvs/cgi-bin</filename>.</para>
-					</listitem>
-					<listitem>
-						<para>You may have to edit <filename>/etc/gforge/plugins/scmcvs/cvsweb.conf</filename> to change the cvsroot location:</para>
-<screen>
-'gforge'  => ['FusionForge-CVS', '<replaceable>/cvsroot/</replaceable>'],
+          </listitem>
+          <listitem>
+            <para>Edit FusionForge Config File <filename>/etc/gforge/local.inc</filename> and change <varname>$sys_path_to_scmweb</varname> to be <filename class="directory"><replaceable>/var/www/gforge</replaceable>/plugins/scmcvs/cgi-bin</filename>.</para>
+          </listitem>
+          <listitem>
+            <para>You may have to edit <filename>/etc/gforge/plugins/scmcvs/cvsweb.conf</filename> to change the cvsroot location:</para>
+            <screen>
+&apos;gforge&apos;  =&gt; [&apos;FusionForge-CVS&apos;, &apos;<replaceable>/cvsroot/</replaceable>&apos;],
 </screen>
-					</listitem>
-					<listitem>
-						<para>Install the following non-core Perl modules:</para>
-						<itemizedlist>
-							<listitem>
-								<para>IPC::Run</para>
-							</listitem>
-							<listitem>
-								<para>URI::Escape</para>
-							</listitem>
-						</itemizedlist>
-					</listitem>
-					<listitem>
-						<para>You may want to user CVS pserver.  First, assure that cvspserver service is defined in <filename>/etc/services</filename>.  It will look like this:</para>
-<programlisting>
+          </listitem>
+          <listitem>
+            <para>Install the following non-core Perl modules:</para>
+            <itemizedlist>
+              <listitem>
+                <para>IPC::Run</para>
+              </listitem>
+              <listitem>
+                <para>URI::Escape</para>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+          <listitem>
+            <para>You may want to user CVS pserver.  First, assure that cvspserver service is defined in <filename>/etc/services</filename>.  It will look like this:</para>
+            <programlisting>
 cvspserver      2401/tcp
 cvspserver      2401/udp
 </programlisting>
-						<para>Add entry for pserver in <filename>/etc/inetd.conf</filename>:</para>
-<para><literal>cvspserver stream tcp nowait root <replaceable>/var/www/gforge</replaceable>/plugins/scmcvs/bin/cvs-pserver cvs-pserver</literal></para>
-
-						<para>Make sure that the wrapper script is executable:</para>
-<screen>
+            <para>Add entry for pserver in <filename>/etc/inetd.conf</filename>:</para>
+            <para><literal>cvspserver stream tcp nowait root <replaceable>/var/www/gforge</replaceable>/plugins/scmcvs/bin/cvs-pserver cvs-pserver</literal></para>
+            <para>Make sure that the wrapper script is executable:</para>
+            <screen>
 # <userinput>chmod +x <replaceable>/var/www/gforge</replaceable>/plugins/scmcvs/bin/cvs-pserver</userinput>
 </screen>
-						<para>The used wrapper script <filename><replaceable>/var/www/gforge</replaceable>/plugins/scmcvs/bin/cvs-pserver</filename> assumes that CVS repositories are in chroot environment and you may want to edit the script and change <varname>CHROOTDIR</varname> and <varname>CVSROOT</varname> variables.</para>
-						<warning>
-							<para>CVS pserver has long history of vulnerabilities and its use is highly discouraged.</para>
-						</warning>
-					</listitem>
-				</orderedlist>
-			</section>
-		</section>
-		<section>
-			<title>CVSTracker</title>
-			<section>
-				<title>Overview</title>
-				<para>The cvstracker plugin allows for some integration between CVS commits and the bug tracker and task manager. So, for example, when you commit, you can reference bug and task IDs in your commit message and have the commit linked to the corresponding bug and task.</para>
-				<para>See the <filename>plugins/cvstracker/README</filename> file for details. This plugin is enabled by default in the <filename>gforge.sql</filename> database file. As with the other plugins, you may manually place the config files in <filename class="directory">/etc/gforge/plugins/cvstracker/</filename> and uncomment the cronjob in <filename>crontab.in</filename>.</para>
-				<para>You will also have to copy the <filename>newcommit.php</filename> file to your gforge <filename class="directory">www/plugins/cvstracker/</filename> dir</para>
-			</section>
-			<section>
-				<title>Installation</title>
-				<screen>
+            <para>The used wrapper script <filename><replaceable>/var/www/gforge</replaceable>/plugins/scmcvs/bin/cvs-pserver</filename> assumes that CVS repositories are in chroot environment and you may want to edit the script and change <varname>CHROOTDIR</varname> and <varname>CVSROOT</varname> variables.</para>
+            <warning>
+              <para>CVS pserver has long history of vulnerabilities and its use is highly discouraged.</para>
+            </warning>
+          </listitem>
+        </orderedlist>
+      </section>
+    </section>
+    <section>
+      <title>CVSTracker</title>
+      <section>
+        <title>Overview</title>
+        <para>The cvstracker plugin allows for some integration between CVS commits and the bug tracker and task manager. So, for example, when you commit, you can reference bug and task IDs in your commit message and have the commit linked to the corresponding bug and task.</para>
+        <para>See the <filename>plugins/cvstracker/README</filename> file for details. This plugin is enabled by default in the <filename>gforge.sql</filename> database file. As with the other plugins, you may manually place the config files in <filename class="directory">/etc/gforge/plugins/cvstracker/</filename> and uncomment the cronjob in <filename>crontab.in</filename>.</para>
+        <para>You will also have to copy the <filename>newcommit.php</filename> file to your gforge <filename class="directory">www/plugins/cvstracker/</filename> dir</para>
+      </section>
+      <section>
+        <title>Installation</title>
+        <screen>
 # <userinput>cd <replaceable>/var/www/gforge</replaceable>/plugins/cvstracker/</userinput>
 # <userinput>cp -R etc/plugins/cvstracker/ /etc/gforge/plugins/</userinput>
-				</screen>
-				<para>Edit <filename>/etc/gforge/plugins/cvstracker/config.php</filename> and change parameters.</para>
-				<para>Uncomment <filename>update_loginfo.php</filename> in crontab.</para>
-				<note>
-					<para>CVS Tracker is not enabled by default for project.  You'll have to manually enable it.</para>
-				</note>
-			</section>
-		</section>
-		<section>
-			<title>SVN</title>
-			<section>
-				<title>Overview</title>
-				<para>SVN is also managed via plugin. The scmsvn plugin is included and activated by default in FusionForge. As with scmcvs, you have to move the <filename>scmcvs/etc/plugins/*</filename> files to <filename>/etc/gforge/plugins/*</filename> and may have to make minor modifications for your specific setup.</para>
-				<para>There are two ways to manage SVN. One is to have SVN over DAV and the other is to have SVN over SSH just as you do with CVS. If you choose to use DAV, you will need the <filename class="libraryfile">mod_auth_gforge</filename> library compiled and installed in your apache and the appropriate virtual host settings in your <filename>httpd.conf</filename>. <filename class="libraryfile">mod_auth_gforge</filename> is available from gforge.org. The cronjobs to manage SVN are in <filename class="directory">cronjobs/dav-svn/</filename> and so are sample <filename>httpd.conf</filename> virtual host settings. Each of these cronjobs has configuration parameters which you may have to edit manually for your specific system.</para>
-				<para>Configuring svnserv for svn-over-ssh:
-					<itemizedlist>
-						<listitem>
-							<para><ulink url="http://svnbook.red-bean.com/en/1.0/ch06s03.html" /></para>
-						</listitem>
-						<listitem>
-							<para><ulink url="http://www.logemann.org/day/archives/000099.html" /></para>
-						</listitem>
-						<listitem>
-							<para><ulink url="http://bitworking.org/news/Getting_subversion_svn_ssh____to_work_with_PuTTY" /></para>
-						</listitem>
-					</itemizedlist>
-				</para>
-			</section>
-			<section>
-				<title>Installation</title>
-				<note>
-					<para><emphasis>Instructions here are far from complete.</emphasis></para>
-				</note>
-<programlisting>
+    </screen>
+        <para>Edit <filename>/etc/gforge/plugins/cvstracker/config.php</filename> and change parameters.</para>
+        <para>Uncomment <filename>update_loginfo.php</filename> in crontab.</para>
+        <note>
+          <para>CVS Tracker is not enabled by default for project.  You&apos;ll have to manually enable it.</para>
+        </note>
+      </section>
+    </section>
+    <section>
+      <title>SVN</title>
+      <section>
+        <title>Overview</title>
+        <para>SVN is also managed via plugin. The scmsvn plugin is included and activated by default in FusionForge. As with scmcvs, you have to move the <filename>scmcvs/etc/plugins/*</filename> files to <filename>/etc/gforge/plugins/*</filename> and may have to make minor modifications for your specific setup.</para>
+        <para>There are two ways to manage SVN. One is to have SVN over DAV and the other is to have SVN over SSH just as you do with CVS. If you choose to use DAV, you will need the <filename class="libraryfile">mod_auth_gforge</filename> library compiled and installed in your apache and the appropriate virtual host settings in your <filename>httpd.conf</filename>. <filename class="libraryfile">mod_auth_gforge</filename> is available from gforge.org. The cronjobs to manage SVN are in <filename class="directory">cronjobs/dav-svn/</filename> and so are sample <filename>httpd.conf</filename> virtual host settings. Each of these cronjobs has configuration parameters which you may have to edit manually for your specific system.</para>
+        <para>Configuring svnserv for svn-over-ssh:
+     <itemizedlist>
+            <listitem>
+              <para><ulink url="http://svnbook.red-bean.com/en/1.0/ch06s03.html"/></para>
+            </listitem>
+            <listitem>
+              <para><ulink url="http://www.logemann.org/day/archives/000099.html"/></para>
+            </listitem>
+            <listitem>
+              <para><ulink url="http://bitworking.org/news/Getting_subversion_svn_ssh____to_work_with_PuTTY"/></para>
+            </listitem>
+          </itemizedlist>
+    </para>
+      </section>
+      <section>
+        <title>Installation</title>
+        <note>
+          <para><emphasis>Instructions here are far from complete.</emphasis></para>
+        </note>
+        <programlisting>
 #Create default location for SVN repositories
 mkdir /svnroot
 
@@ -1072,61 +1099,48 @@
 #copy the scmsvn config files to /etc/gforge/
 cp -R gforge/plugins/scmsvn/etc/plugins/scmsvn/ /etc/gforge/plugins/
 </programlisting>
-			</section>
-		</section>
-	</section>
-	<section>
-		<title>Upgrading Existing Install</title>
-		<para>You will upgrade your database from a prior version by applying each database schema change, in order, and applying it only once.  Only apply the schema changes in the <filename class="directory">db/</filename> folder that are dated <emphasis>after</emphasis> your existing installation.</para>
-		<para>There may also be migration scripts that have to be run.  In the <filename class="directory">db/</filename> folder, look for php scripts and run them.</para>
-		<warning>
-			<para>You have to apply database schema changes and to run migration scripts in the right order.</para>
-		</warning>
-	</section>
-	<section>
-		<title>Most Common Problems</title>
-		<para>Q: I get a blank page when I visit http://gforge.company.com/</para>
-		<para>A: Most often you are missing the php-pgsql library that lets PHP talk to the postgres database. Find a php-pgsql RPM or recompile php to have pgql support.</para>
-		<para>If you're sure you have php-pgsql support, you can edit common/include/database.php and remove the @ symbol from this line:</para>
-<programlisting>
+      </section>
+    </section>
+  </section>
+  <section>
+    <title>Upgrading Existing Install</title>
+    <para>You will upgrade your database from a prior version by applying each database schema change, in order, and applying it only once.  Only apply the schema changes in the <filename class="directory">db/</filename> folder that are dated <emphasis>after</emphasis> your existing installation.</para>
+    <para>There may also be migration scripts that have to be run.  In the <filename class="directory">db/</filename> folder, look for php scripts and run them.</para>
+    <warning>
+      <para>You have to apply database schema changes and to run migration scripts in the right order.</para>
+    </warning>
+  </section>
+  <section>
+    <title>Most Common Problems</title>
+    <para>Q: I get a blank page when I visit http://gforge.company.com/</para>
+    <para>A: Most often you are missing the php-pgsql library that lets PHP talk to the postgres database. Find a php-pgsql RPM or recompile php to have pgql support.</para>
+    <para>If you&apos;re sure you have php-pgsql support, you can edit common/include/database.php and remove the @ symbol from this line:</para>
+    <programlisting>
 $conn = @pg_connect( 
 </programlisting>
-		<para>So that it looks like:</para>
-<programlisting>
+    <para>So that it looks like:</para>
+    <programlisting>
 $conn = pg_connect(
 </programlisting>
-		<para>This will let debug output dump to the screen and may let you find the problem. Search the forums for more solutions.</para>
-
-		<para>Q: <quote>Error Occurred In the Logger</quote> or other database permission problems</para>
-		<para>A: As stated in the installation instructions, the database must be created, owned, and accessed by the gforge user. This user is the only one who will have total acess to all the tables. Any other user would have to be specifically granted permissions with the GRANT commands in postgres.</para>
-
-		<para>Q: Reporting or time tracking doesn't work</para>
-
-		<para>A: Go to the reporting tab and scroll down so you can choose <quote>Initialize/Rebuild Reporting Tables</quote></para>
-
-		<para>You may also be missing GD support or be missing JPGraph or have it installed improperly. The <filename class="directory">jpgraph/src/</filename> directory should be specified accurately in your <filename class="directory">local.inc</filename> file, and you should include a <filename>/</filename> at the end of the path specified. In addition, you should modify <filename>jpgraph.php</filename> to set <literal>USE_CACHE=false</literal>.</para>
-
-		<para>Q: How do I upgrade my database?</para>
-		<para>A: As stated above, you must apply the changes that are listed in date order in the <filename class="directory">db/</filename> directory to your database. Only the changes that are not already in your old <filename class="directory">db/</filename> directory should be applied, and they should be applied and checked <emphasis>in order</emphasis>.</para>
-
-		<para>Q: I'm getting an error about BaseLanguage.class.php not being found.</para>
-		<para>A: Make sure your localization path is correctly specified in the local.inc file and that it is readable <emphasis>and</emphasis> writable by the apache user.</para>
-
-		<para>Q: When I click on <quote>/projects/</quote> or <quote>/users/</quote> links, I get the source code instead of the page I expected.</para>
-		<para>A: As shown in the example <filename>httpd.conf</filename> files above, you may have to switch to using the <literal>&lt;Files&gt;</literal> or <literal>&lt;Location&gt;</literal> directives depending on your server version.</para>
-
-		<para>Q: How do I backup FusionForge?</para>
-		<para>A: The only proper way to backup the gforge database is with <command>pg_dump</command>.  Any attempt to backup the filesystem while pgsql is running will result in a useless and corrupt backup. You can backup CVS trees using <command>tar</command> as long as they are not actively and heavily used during the backup. Mailman and the FRS uploads dir can also be backed up with <command>tar</command>.</para>
-
-		<para>Q: Any time i enter an apostrophe in a text box, i get a parse error</para>
-		<para>A: As stated in the instructions above, you should have <literal>magic_quotes_gpc=On</literal> in your <filename>php.ini</filename> file.</para>
-
-		<para>Q: Large uploads into FRS or the doc manager fail.</para>
-		<para>A: Apache and the <filename>php.ini</filename> file need to have upload limits and possibly memory limits increased.</para>
-
-		<para>Q: When I click on <filename>/projects/</filename> or <filename>/users/</filename> links, I get a <computeroutput>Page Not Found</computeroutput> error instead of the page I expected.</para>
-		<para>A: Switch to/from the &lt;Files projects&gt; from/to the &lt;Location /projects&gt; directives in your <filename>httpd.conf</filename>. (Q&amp;A provided by David Morsberger)</para>
-
-	</section>
-
+    <para>This will let debug output dump to the screen and may let you find the problem. Search the forums for more solutions.</para>
+    <para>Q: <quote>Error Occurred In the Logger</quote> or other database permission problems</para>
+    <para>A: As stated in the installation instructions, the database must be created, owned, and accessed by the gforge user. This user is the only one who will have total acess to all the tables. Any other user would have to be specifically granted permissions with the GRANT commands in postgres.</para>
+    <para>Q: Reporting or time tracking doesn&apos;t work</para>
+    <para>A: Go to the reporting tab and scroll down so you can choose <quote>Initialize/Rebuild Reporting Tables</quote></para>
+    <para>You may also be missing GD support or be missing JPGraph or have it installed improperly. The <filename class="directory">jpgraph/src/</filename> directory should be specified accurately in your <filename class="directory">local.inc</filename> file, and you should include a <filename>/</filename> at the end of the path specified. In addition, you should modify <filename>jpgraph.php</filename> to set <literal>USE_CACHE=false</literal>.</para>
+    <para>Q: How do I upgrade my database?</para>
+    <para>A: As stated above, you must apply the changes that are listed in date order in the <filename class="directory">db/</filename> directory to your database. Only the changes that are not already in your old <filename class="directory">db/</filename> directory should be applied, and they should be applied and checked <emphasis>in order</emphasis>.</para>
+    <para>Q: I&apos;m getting an error about BaseLanguage.class.php not being found.</para>
+    <para>A: Make sure your localization path is correctly specified in the local.inc file and that it is readable <emphasis>and</emphasis> writable by the apache user.</para>
+    <para>Q: When I click on <quote>/projects/</quote> or <quote>/users/</quote> links, I get the source code instead of the page I expected.</para>
+    <para>A: As shown in the example <filename>httpd.conf</filename> files above, you may have to switch to using the <literal>&lt;Files&gt;</literal> or <literal>&lt;Location&gt;</literal> directives depending on your server version.</para>
+    <para>Q: How do I backup FusionForge?</para>
+    <para>A: The only proper way to backup the gforge database is with <command>pg_dump</command>.  Any attempt to backup the filesystem while pgsql is running will result in a useless and corrupt backup. You can backup CVS trees using <command>tar</command> as long as they are not actively and heavily used during the backup. Mailman and the FRS uploads dir can also be backed up with <command>tar</command>.</para>
+    <para>Q: Any time i enter an apostrophe in a text box, i get a parse error</para>
+    <para>A: As stated in the instructions above, you should have <literal>magic_quotes_gpc=On</literal> in your <filename>php.ini</filename> file.</para>
+    <para>Q: Large uploads into FRS or the doc manager fail.</para>
+    <para>A: Apache and the <filename>php.ini</filename> file need to have upload limits and possibly memory limits increased.</para>
+    <para>Q: When I click on <filename>/projects/</filename> or <filename>/users/</filename> links, I get a <computeroutput>Page Not Found</computeroutput> error instead of the page I expected.</para>
+    <para>A: Switch to/from the &lt;Files projects&gt; from/to the &lt;Location /projects&gt; directives in your <filename>httpd.conf</filename>. (Q&amp;A provided by David Morsberger)</para>
+  </section>
 </article>

Modified: trunk/gforge/docs/docbook/docbook/introduction/introduction.xml
===================================================================
--- trunk/gforge/docs/docbook/docbook/introduction/introduction.xml	2009-07-09 10:00:33 UTC (rev 7929)
+++ trunk/gforge/docs/docbook/docbook/introduction/introduction.xml	2009-07-09 18:58:42 UTC (rev 7930)
@@ -1,57 +1,92 @@
+<?xml version='1.0' encoding='UTF-8'?>
 <chapter id="gm_introduction">
-	<title>Introduction</title>
-	<section>
-		<title>About FusionForge</title>
-		<para>
-			FusionForge is a software for collaborative development for the software community. It provides a full configured development system with versioning, a project web site and tools for communication between members of a development team.  The tools provided by FusionForge allows team members to communicate and organize their work; this allows the creation of a knowledgebase.
-		</para>
-		<para>
-			A complete configurated FusionForge system will give you the following features:
-		</para>
-		<orderedlist>
-			<listitem><para>A Web site for every project</para></listitem>
-			<listitem><para>Versioning via CVS</para></listitem>
-			<listitem><para>Shell access to the server for the developers</para></listitem>
-			<listitem>
-				<para>A web site for project coordination and comunication between team members:</para>
-				<orderedlist>
-					<listitem><para>Discussion Forums - For discussions between team members</para></listitem>
-					<listitem><para>Bug tracking - Allow registration and administration of bugs</para></listitem>
-					<listitem><para>Support requests, patch submissions, and enhancement requests</para></listitem>
-					<listitem><para>Comunication between project members using mailing lists</para></listitem>
-					<listitem><para>Sharing of documentation</para></listitem>
-					<listitem><para>Handling of todo lists, tasks, etc</para></listitem>
-					<listitem><para>File uploads/releases</para></listitem>
-					<listitem><para>Posting of news - Every project can have its own news items.</para></listitem>
-					<listitem><para>Code Snippets - Provides of a basic knowledgebase that can contain code fragments, HOWTOs, etc.</para></listitem>
-				</orderedlist>
-			</listitem>
-		</orderedlist>
-		<para>
-			The tasks and the tracker items (to track bugs, patches, support requests, enhancement requests) can be classified using status, priority, category.
-		</para>
-		<para>
-			The system provides also a classification system of the projects, a user profile, and a user rating system.
-		</para>
-	</section>
-	<section>
-		<title>FusionForge History</title>
-		<para>
-			FusionForge is a fork of the 2.61 SourceForge code, which was only available via anonymous CVS from VA (Research|Linux|Software). <ulink url="http://gforge.org">gforge.org</ulink> is not a project hosting platform, it is merely an implementation of the FusionForge code. We believe that the FusionForge functionality is important not only to the Open Source community, but to the wider business community.
-		</para>
-		<para>
-			Since VA has not released the source in over one year, despite their promises to the contrary, a fork was necessary to ensure a viable open source version of the codebase.
-		</para>
-		<para>
-			The FusionForge project was formed and is maintained by Tim Perdue, the original author of much of the original SourceForge web code.
-		</para>
-		<para>Major changes are present in the current FusionForge codebase:</para>
-		<itemizedlist>
-			<listitem><para>Jabber Support - System events, such as bug submissions, are optionally sent via jabber and email</para></listitem>
-			<listitem><para>Radically easier to install - By removing SF.net-specific code, like caching and image servers, many install dependencies have been eliminated.</para></listitem>
-			<listitem><para>New interface - The interface makes it easier to navigate as well as know your present location.</para></listitem>
-			<listitem><para>Code cleanup - Since FusionForge does not need to scale to 500,000+ users, many hacks and optimizations have been removed</para></listitem>
-			<listitem><para>Foundries and related nonsense have been removed</para></listitem>
-		</itemizedlist>
-	</section>
-</chapter>
\ No newline at end of file
+  <title>Introduction</title>
+  <section>
+    <title>About FusionForge</title>
+    <para>
+   FusionForge is a software for collaborative development for the software community. It provides a full configured development system with versioning, a project web site and tools for communication between members of a development team.  The tools provided by FusionForge allows team members to communicate and organize their work; this allows the creation of a knowledgebase.
+  </para>
+    <para>
+   A complete configurated FusionForge system will give you the following features:
+  </para>
+    <orderedlist>
+      <listitem>
+        <para>A Web site for every project</para>
+      </listitem>
+      <listitem>
+        <para>Versioning via CVS or Subversion</para>
+      </listitem>
+      <listitem>
+        <para>Shell access to the server for the developers</para>
+      </listitem>
+      <listitem>
+        <para>A web site for project coordination and comunication between team members:</para>
+        <orderedlist>
+          <listitem>
+            <para>Discussion Forums - For discussions between team members</para>
+          </listitem>
+          <listitem>
+            <para>Bug tracking - Allow registration and administration of bugs</para>
+          </listitem>
+          <listitem>
+            <para>Support requests, patch submissions, and enhancement requests</para>
+          </listitem>
+          <listitem>
+            <para>Comunication between project members using mailing lists</para>
+          </listitem>
+          <listitem>
+            <para>Sharing of documentation</para>
+          </listitem>
+          <listitem>
+            <para>Handling of todo lists, tasks, etc</para>
+          </listitem>
+          <listitem>
+            <para>File uploads/releases</para>
+          </listitem>
+          <listitem>
+            <para>Posting of news - Every project can have its own news items.</para>
+          </listitem>
+          <listitem>
+            <para>Code Snippets - Provides of a basic knowledgebase that can contain code fragments, HOWTOs, etc.</para>
+          </listitem>
+        </orderedlist>
+      </listitem>
+    </orderedlist>
+    <para>
+   The tasks and the tracker items (to track bugs, patches, support requests, enhancement requests) can be classified using status, priority, category.
+  </para>
+    <para>
+   The system provides also a classification system of the projects, a user profile, and a user rating system.
+  </para>
+  </section>
+  <section>
+    <title>FusionForge History</title>
+    <para>
+   FusionForge is a fork of the 2.61 SourceForge code, which was only available via anonymous CVS from VA (Research|Linux|Software). <ulink url="http://gforge.org">gforge.org</ulink> is not a project hosting platform, it is merely an implementation of the FusionForge code. We believe that the FusionForge functionality is important not only to the Open Source community, but to the wider business community.
+  </para>
+    <para>
+   Since VA has not released the source in over one year, despite their promises to the contrary, a fork was necessary to ensure a viable open source version of the codebase.
+  </para>
+    <para>
+   The FusionForge project was formed and is maintained by Tim Perdue, the original author of much of the original SourceForge web code.
+  </para>
+    <para>Major changes are present in the current FusionForge codebase:</para>
+    <itemizedlist>
+      <listitem>
+        <para>Jabber Support - System events, such as bug submissions, are optionally sent via jabber and email</para>
+      </listitem>
+      <listitem>
+        <para>Radically easier to install - By removing SF.net-specific code, like caching and image servers, many install dependencies have been eliminated.</para>
+      </listitem>
+      <listitem>
+        <para>New interface - The interface makes it easier to navigate as well as know your present location.</para>
+      </listitem>
+      <listitem>
+        <para>Code cleanup - Since FusionForge does not need to scale to 500,000+ users, many hacks and optimizations have been removed</para>
+      </listitem>
+      <listitem>
+        <para>Foundries and related nonsense have been removed</para>
+      </listitem>
+    </itemizedlist>
+  </section>
+</chapter>

Modified: trunk/gforge/docs/docbook/docbook/user_guide/project_functions/file_releases.xml
===================================================================
--- trunk/gforge/docs/docbook/docbook/user_guide/project_functions/file_releases.xml	2009-07-09 10:00:33 UTC (rev 7929)
+++ trunk/gforge/docs/docbook/docbook/user_guide/project_functions/file_releases.xml	2009-07-09 18:58:42 UTC (rev 7930)
@@ -1,148 +1,135 @@
-<?xml version="1.0"?>
+<?xml version='1.0' encoding='UTF-8'?>
 <section id="ug_project_file_releases">
-	<title>File Releases</title>
-	<section id="ug_project_file_releases_introduction">
-		<title>Introduction</title>
-		<para>
-			The File Releases System (FRS) is used to upload files to the FusionForge site and to make these files available to the users in an easy and efficient way.
-		</para>
-		<para>
-			Files can be divided in different packages, and every single package can be monitored by the users; these users will receive an email every time a new file has been added to the package.
-		</para>
-	</section>
-	<section id="ug_project_file_releases_administration">
-		<title>Administration</title>
-		<para>
-			The FRS system allows you to upload file to FusionForge and make this file available to the public.
-		</para>
-		<para>
-			You have to define a package before you can release a file. A package should have a descriptive name for the project, e.g. gforge3.
-		</para>
-		<para>
-			To add a new package, insert a package name in the textbox at the bottom of the page and click Create this Package.
-		</para>
-		<para>
-			You can use the radio buttons to make the package publicly viewable or not. Default is public.
-		</para>
-		<para>
-			You can use the menu buttons to make the package active or hidden. Hidden packages will not be listed in the Files section.
-		</para>
-		<para>
-			Your package will appear in the Releases list at the bottom of the page.
-		</para>
-		<para>
-			Click Add release. The form has the following fields:
-		</para>
-		<variablelist>
-			<varlistentry>
-				<term>Package ID</term>
-				<listitem>
-					<para>You can select here the package.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Release Name</term>
-				<listitem>
-					<para>Insert here the name of your release. The name should be indicative for the version of your file, e.g. pre-8.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Release Date</term>
-				<listitem>
-					<para>The Release Date.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>File Name</term>
-				<listitem>
-					<para>Click the <emphasis>Browse</emphasis> button to select the file to upload. In some browsers you must select the file in the file-upload dialog and click OK. Double-clicking doesn't register the file.</para>
-					<note>
-						<para>You can't upload file that exceed the UploadFile Limit in php.ini.</para>
-					</note>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>File Type</term>
-				<listitem>
-					<para>You can select here the file type (.zip, .html, .exe, .tar.gz, etc).</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Processor Type</term>
-				<listitem>
-					<para>You can select here the processor required to run the application.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Release Notes</term>
-				<listitem>
-					<para>The release notes.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Changelog</term>
-				<listitem>
-					<para>The changelog.</para>
-				</listitem>
-			</varlistentry>
-		</variablelist>
-		<para>
-			Click the <emphasis>Release File</emphasis> button. Your file will now appear in the list of files in the File section.
-		</para>
-	</section>
-	<section id="ug_project_file_releases_cli">
-		<title>Managing packages and releases via CLI (Command-Line Interface)</title>
-
- 
-                <para>We give here some basic examples of CLI commands. For more information,
+  <title>File Releases</title>
+  <section id="ug_project_file_releases_introduction">
+    <title>Introduction</title>
+    <para>
+   The File Releases System (FRS) is used to upload files to the FusionForge site and to make these files available to the users in an easy and efficient way.
+  </para>
+    <para>
+   Files can be divided in different packages, and every single package can be monitored by the users; these users will receive an email every time a new file has been added to the package.
+  </para>
+  </section>
+  <section id="ug_project_file_releases_administration">
+    <title>Administration</title>
+    <para>
+   The FRS system allows you to upload file to FusionForge and make this file available to the public.
+  </para>
+    <para>
+   You have to define a package before you can release a file. A package should have a descriptive name for the project, e.g. gforge3.
+  </para>
+    <para>
+   To add a new package, insert a package name in the textbox at the bottom of the page and click Create this Package.
+  </para>
+    <para>
+   You can use the radio buttons to make the package publicly viewable or not. Default is public.
+  </para>
+    <para>
+   You can use the menu buttons to make the package active or hidden. Hidden packages will not be listed in the Files section.
+  </para>
+    <para>
+   Your package will appear in the Releases list at the bottom of the page.
+  </para>
+    <para>
+   Click Add release. The form has the following fields:
+  </para>
+    <variablelist>
+      <varlistentry>
+        <term>Package ID</term>
+        <listitem>
+          <para>You can select here the package.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Release Name</term>
+        <listitem>
+          <para>Insert here the name of your release. The name should be indicative for the version of your file, e.g. pre-8.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Release Date</term>
+        <listitem>
+          <para>The Release Date.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>File Name</term>
+        <listitem>
+          <para>Click the <emphasis>Browse</emphasis> button to select the file to upload. In some browsers you must select the file in the file-upload dialog and click OK. Double-clicking doesn&apos;t register the file.</para>
+          <note>
+            <para>You can&apos;t upload file that exceed the UploadFile Limit in php.ini.</para>
+          </note>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>File Type</term>
+        <listitem>
+          <para>You can select here the file type (.zip, .html, .exe, .tar.gz, etc).</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Processor Type</term>
+        <listitem>
+          <para>You can select here the processor required to run the application.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Release Notes</term>
+        <listitem>
+          <para>The release notes.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Changelog</term>
+        <listitem>
+          <para>The changelog.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+    <para>
+   Click the <emphasis>Release File</emphasis> button. Your file will now appear in the list of files in the File section.
+  </para>
+  </section>
+  <section id="ug_project_file_releases_cli">
+    <title>Managing packages and releases via CLI (Command-Line Interface)</title>
+    <para>We give here some basic examples of CLI commands. For more information,
                       please consult the FusionForge Command-line interface (CLI) documentation.</para>
-
-                <section id="ug_project_file_releases_cli_login">
-                <title>Logging in with CLI</title>
-                <para><screen>gforge.php -v login --username="user" --project=myproject</screen></para>
-                </section>
-
-                <section id="ug_project_file_releases_cli_get_list">
-                <title>Getting a list of releases</title>
-                <para>Get the package id</para>
-                <para><screen>gforge.php frs packages</screen></para>
-                <para>Get the list of releases of a given package</para>
-                <para><screen>gforge.php frs releases --package=xxx</screen></para>
-                </section>
-
-                <section id="ug_project_file_releases_cli_add_release">
-                <title>Add a release of a given package</title>
-                <para><screen>gforge.php frs addrelease --package=xxx --name="My new release"</screen></para>
-                </section>
-
-                <section id="ug_project_file_releases_cli_edit_release">
-                <title>Edit a release</title>
-                <para>Add a text file to a release of a given package.</para>
-                <para><screen>gforge.php frs addfile --package=xxx --release=yyy --file=zzz</screen></para>
-                <para>Retrieve file on the standard output</para>
-                <para><screen>gforge.php frs getfile --package=xxx --release=yyy -id=www</screen></para>
-                <para>Retrieve file in a file</para>
-                <para><screen>gforge.php frs getfile --package=xxx --release=yyy -id=www 
+    <section id="ug_project_file_releases_cli_login">
+      <title>Logging in with CLI</title>
+      <para><screen>gforge.php -v login --username=&quot;user&quot; --project=myproject</screen></para>
+    </section>
+    <section id="ug_project_file_releases_cli_get_list">
+      <title>Getting a list of releases</title>
+      <para>Get the package id</para>
+      <para><screen>gforge.php frs packages</screen></para>
+      <para>Get the list of releases of a given package</para>
+      <para><screen>gforge.php frs releases --package=xxx</screen></para>
+    </section>
+    <section id="ug_project_file_releases_cli_add_release">
+      <title>Add a release of a given package</title>
+      <para><screen>gforge.php frs addrelease --package=xxx --name=&quot;My new release&quot;</screen></para>
+    </section>
+    <section id="ug_project_file_releases_cli_edit_release">
+      <title>Edit a release</title>
+      <para>Add a text file to a release of a given package.</para>
+      <para><screen>gforge.php frs addfile --package=xxx --release=yyy --file=zzz</screen></para>
+      <para>Retrieve file on the standard output</para>
+      <para><screen>gforge.php frs getfile --package=xxx --release=yyy -id=www</screen></para>
+      <para>Retrieve file in a file</para>
+      <para><screen>gforge.php frs getfile --package=xxx --release=yyy -id=www 
                        --output=newfile</screen></para>
-                </section>
- 
-	</section>
-
-        <section id="ug_project_file_releases_monitor_packages">
-                <title>Monitoring packages</title>
-
-                <para>You can monitor a package by clicking on the envelope next to the package name.
+    </section>
+  </section>
+  <section id="ug_project_file_releases_monitor_packages">
+    <title>Monitoring packages</title>
+    <para>You can monitor a package by clicking on the envelope next to the package name.
                       The envelope now bears a red symbol.</para>
-
-                <para>You can unmonitor the package by clicking again on the envelope.</para>
-	</section>
-
-        <section id="ug_project_file_releases_subscribe_rss">
-                <title>Subscribing RSS feed for a package</title>
-
-                <para>You can subscribe a RSS feed for a package on the summary page of the project, 
-                by clicking on the RSS icon and select Alcatel-Lucent Forge Developer New Project Releases.
+    <para>You can unmonitor the package by clicking again on the envelope.</para>
+  </section>
+  <section id="ug_project_file_releases_subscribe_rss">
+    <title>Subscribing RSS feed for a package</title>
+    <para>You can subscribe a RSS feed for a package on the summary page of the project, 
+                by clicking on the RSS icon and select Developer New Project Releases.
                 </para>
-	</section>
-       
+  </section>
 </section>

Modified: trunk/gforge/docs/docbook/docbook/user_guide/project_functions/news.xml
===================================================================
--- trunk/gforge/docs/docbook/docbook/user_guide/project_functions/news.xml	2009-07-09 10:00:33 UTC (rev 7929)
+++ trunk/gforge/docs/docbook/docbook/user_guide/project_functions/news.xml	2009-07-09 18:58:42 UTC (rev 7930)
@@ -1,28 +1,28 @@
+<?xml version='1.0' encoding='UTF-8'?>
 <section id="ug_project_news">
-	<title>News</title>
-	<para>
-		The news section allows you to insert news relative to your project. A news can be monitored similar to tracker items, forums. News will be displayed on the project homepage and also on the site homepage, if the site administrators approve the news.
-	</para>
-	<para>
-		News are generally used to announce software releases, milestones, or significant changes in the software.
-	</para>
-	<section id="ug_project_news_insert">
-		<title>Inserting a news item</title>
-		<para>You can insert a news item by clicking on the <emphasis>Submit</emphasis> link.</para>
-		<para>You can post news about your project if you are an admin on your project.</para>
-		<para>All posts for your project will appear instantly on your project summary page. Posts that are of special interest to the community will have to be approved by a member of the ACOS team before they will appear on the FusionForge home page.</para>
-		<para>You may include URLs in your submissions. URLs that start with http:// are made clickable.</para>
-                <para>HTML is allowed in your submissions but filtered.</para>
-		<para>The news item will go to the <emphasis>News Admin</emphasis> for approval for publication.</para>
-	</section>
-	<section id="ug_project_news_approving">
-		<title>Modifying/Approving a news item</title>
-		<para>You can modify or/and approve a news by clicking on the <emphasis>Admin</emphasis> link.</para>
-		<para>You can select the status of the news: Displayed or Deleted (the news will be deleted), you can insert the Subject (title) and the details.</para>
-	</section>
-        <section id="ug_project_news_rss">
-                <title>Subscribing RSS feed for project news</title>
-                <para>You can subscribe a RSS feed for project news by clicking on the RSS icon on the <emphasis>Summary</emphasis> page of the project.</para>
-        </section>
-
+  <title>News</title>
+  <para>
+  The news section allows you to insert news relative to your project. A news can be monitored similar to tracker items, forums. News will be displayed on the project homepage and also on the site homepage, if the site administrators approve the news.
+ </para>
+  <para>
+  News are generally used to announce software releases, milestones, or significant changes in the software.
+ </para>
+  <section id="ug_project_news_insert">
+    <title>Inserting a news item</title>
+    <para>You can insert a news item by clicking on the <emphasis>Submit</emphasis> link.</para>
+    <para>You can post news about your project if you are an admin on your project.</para>
+    <para>All posts for your project will appear instantly on your project summary page. Posts that are of special interest to the community will have to be approved by a member of the administration team before they will appear on the FusionForge home page.</para>
+    <para>You may include URLs in your submissions. URLs that start with http:// are made clickable.</para>
+    <para>HTML is allowed in your submissions but filtered.</para>
+    <para>The news item will go to the <emphasis>News Admin</emphasis> for approval for publication.</para>
+  </section>
+  <section id="ug_project_news_approving">
+    <title>Modifying/Approving a news item</title>
+    <para>You can modify or/and approve a news by clicking on the <emphasis>Admin</emphasis> link.</para>
+    <para>You can select the status of the news: Displayed or Deleted (the news will be deleted), you can insert the Subject (title) and the details.</para>
+  </section>
+  <section id="ug_project_news_rss">
+    <title>Subscribing RSS feed for project news</title>
+    <para>You can subscribe a RSS feed for project news by clicking on the RSS icon on the <emphasis>Summary</emphasis> page of the project.</para>
+  </section>
 </section>

Modified: trunk/gforge/docs/docbook/docbook/user_guide/project_functions/task_manager.xml
===================================================================
--- trunk/gforge/docs/docbook/docbook/user_guide/project_functions/task_manager.xml	2009-07-09 10:00:33 UTC (rev 7929)
+++ trunk/gforge/docs/docbook/docbook/user_guide/project_functions/task_manager.xml	2009-07-09 18:58:42 UTC (rev 7930)
@@ -1,130 +1,141 @@
+<?xml version='1.0' encoding='UTF-8'?>
 <section id="ug_project_task_manager">
-	<title>Task Manager</title>
-	<para>
-		The Task Manager is similar to the tracker, with the following differences:
-	</para>
-	<itemizedlist>
-		<listitem><para>you can insert the start date of the item</para></listitem>
-		<listitem><para>you can insert the end date of the item</para></listitem>
-		<listitem><para>you can insert the number of hours for the item</para></listitem>
-		<listitem><para>you can have multiple assignees for the item</para></listitem>
-		<listitem><para>you can handle dependencies between tasks</para></listitem>
-	</itemizedlist> 
-	<para>
-		Tasks are organized in subprojects. Before inserting a new task, you must first create a subproject. You can use the <guimenuitem>Admin</guimenuitem> link to create new subprojects.
-	</para>
-	<para>
-		Tasks allows you to create and manage tasks, or blocks of work, similar to the way projects are broken down in e.g. Microsoft Project.
-	</para>
-	<section id="ug_project_task_manager_insert_new">
-		<title>Inserting a new Task</title>
-		<para>
-			This allows you to add tasks to the sub projects - e.g. Write Design Doc, Review Doc, Update Doc, Write Code, Review Code, Update Code, Test, Log Test Results, etc. They can be assigned to members of the team, and start and end dates set up for them, dependencies on other tasks set, percentage completion etc.
-		</para>
-		<para>
-			You need to select first a subproject from the subproject list and then select the <guimenuitem>Add Task</guimenuitem> link.
-		</para>
-		<para>
-			A form appears, where you are requested to insert the following data:
-		</para>
-		<variablelist>
-			<varlistentry>
-				<term>Percent Complete</term>
-				<listitem>
-					<para>You can select here the Percentage of the completion of the work.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Priority</term>
-				<listitem>
-					<para>You can select here the priority of the task.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Task Summary</term>
-				<listitem>
-					<para>You should insert a brief description of the task.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Task Details</term>
-				<listitem>
-					<para>You should insert here the most detailed description possible of the task.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Start Date</term>
-				<listitem>
-					<para>You can insert here the start date.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>End Date</term>
-				<listitem>
-					<para>You can insert here the end date of the task.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Assigned To</term>
-				<listitem>
-					<para>You can select one or more assignees of the task. Only users which are defined as <quote>Technicians</quote> are listed here.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Dependent on task</term>
-				<listitem>
-					<para>You can select here one ore more task upon which this task depends.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Hours</term>
-				<listitem>
-					<para>It is the estimated duration of this task in hours.</para>
-				</listitem>
-			</varlistentry>
-		</variablelist>
-		<para>
-			Only Administrators can add new items on the Task Manager; only Administrators can make changes to the task; only administrators can close the task.
-		</para>
-	</section>
-	<section id="ug_project_task_manager_my_tasks">
-		<title>My Tasks</title>
-		<para>It lists the tasks assigned to the user.</para>
-	</section>
-	<section id="ug_project_task_manager_open_tasks">
-		<title>Browse Open Tasks</title>
-		<para>It lists all tasks in the open state.</para>
-	</section>
-	<section id="ug_project_task_manager_reporting">
-		<title>Reporting</title>
-		<para>The Reporting is similar to the reporting section of the Tracker.</para>
-	</section>
-	<section id="ug_project_task_manager_task_admin">
-		<title>Task Admin</title>
-		<para>
-			The Admin section allows you to:
-		</para>
-		<variablelist>
-			<varlistentry>
-				<term>Add a project</term>
-				<listitem>
-					<para>You can select if the subproject is public (visibile to everyone) or not (visibile only to project members).</para>
-					<para>This allows you to add a subproject to a project, such as modules, documentation, etc.</para>
-					<para>Required arguments are Project Name and description.</para>
-				</listitem>
-			</varlistentry>
-			<varlistentry>
-				<term>Update information</term>
-				<listitem>
-					<para>Here you can select if the project is public, private or deleted (visible to nobody) and update the name and description of the subproject.</para>
-				</listitem>
-			</varlistentry>
-                        <varlistentry>
-                                <term>Register an e-mail address for notification of tasks</term>
-                                <listitem>
-                                        <para>Fill the 'Send All Updates To:' box with an e-mail address.</para>
-                                </listitem>
-                        </varlistentry>
-		</variablelist>
-	</section>
+  <title>Task Manager</title>
+  <para>
+  The Task Manager is similar to the tracker, with the following differences:
+ </para>
+  <itemizedlist>
+    <listitem>
+      <para>you can insert the start date of the item</para>
+    </listitem>
+    <listitem>
+      <para>you can insert the end date of the item</para>
+    </listitem>
+    <listitem>
+      <para>you can insert the number of hours for the item</para>
+    </listitem>
+    <listitem>
+      <para>you can have multiple assignees for the item</para>
+    </listitem>
+    <listitem>
+      <para>you can handle dependencies between tasks</para>
+    </listitem>
+  </itemizedlist>
+  <para>
+  Tasks are organized in subprojects. Before inserting a new task, you must first create a subproject. You can use the <guimenuitem>Admin</guimenuitem> link to create new subprojects.
+ </para>
+  <para>
+  Tasks allows you to create and manage tasks, or blocks of work, similar to the way projects are broken down in e.g. Microsoft Project.
+ </para>
+  <section id="ug_project_task_manager_insert_new">
+    <title>Inserting a new Task</title>
+    <para>
+   This allows you to add tasks to the sub projects - e.g. Write Design Doc, Review Doc, Update Doc, Write Code, Review Code, Update Code, Test, Log Test Results, etc. They can be assigned to members of the team, and start and end dates set up for them, dependencies on other tasks set, percentage completion etc.
+  </para>
+    <para>
+   You need to select first a subproject from the subproject list and then select the <guimenuitem>Add Task</guimenuitem> link.
+  </para>
+    <para>
+   A form appears, where you are requested to insert the following data:
+  </para>
+    <variablelist>
+      <varlistentry>
+        <term>Percent Complete</term>
+        <listitem>
+          <para>You can select here the Percentage of the completion of the work.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Priority</term>
+        <listitem>
+          <para>You can select here the priority of the task.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Task Summary</term>
+        <listitem>
+          <para>You should insert a brief description of the task.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Task Details</term>
+        <listitem>
+          <para>You should insert here the most detailed description possible of the task.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Start Date</term>
+        <listitem>
+          <para>You can insert here the start date.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>End Date</term>
+        <listitem>
+          <para>You can insert here the end date of the task.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Assigned To</term>
+        <listitem>
+          <para>You can select one or more assignees of the task. Only users which are defined as <quote>Technicians</quote> are listed here.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Dependent on task</term>
+        <listitem>
+          <para>You can select here one ore more task upon which this task depends.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Hours</term>
+        <listitem>
+          <para>It is the estimated duration of this task in hours.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+    <para>
+   Only Administrators can add new items on the Task Manager; only Administrators can make changes to the task; only administrators can close the task.
+  </para>
+  </section>
+  <section id="ug_project_task_manager_my_tasks">
+    <title>My Tasks</title>
+    <para>It lists the tasks assigned to the user.</para>
+  </section>
+  <section id="ug_project_task_manager_open_tasks">
+    <title>Browse Open Tasks</title>
+    <para>It lists all tasks in the open state.</para>
+  </section>
+  <section id="ug_project_task_manager_reporting">
+    <title>Reporting</title>
+    <para>The Reporting is similar to the reporting section of the Tracker.</para>
+  </section>
+  <section id="ug_project_task_manager_task_admin">
+    <title>Task Admin</title>
+    <para>
+   The Admin section allows you to:
+  </para>
+    <variablelist>
+      <varlistentry>
+        <term>Add a project</term>
+        <listitem>
+          <para>You can select if the subproject is public (visible to everyone) or not (visible only to project members).</para>
+          <para>This allows you to add a subproject to a project, such as modules, documentation, etc.</para>
+          <para>Required arguments are Project Name and description.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Update information</term>
+        <listitem>
+          <para>Here you can select if the project is public, private or deleted (visible to nobody) and update the name and description of the subproject.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Register an e-mail address for notification of tasks</term>
+        <listitem>
+          <para>Fill the &apos;Send All Updates To:&apos; box with an e-mail address.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
 </section>




More information about the Fusionforge-commits mailing list