Updated BuildConfigConf (markdown)
[buildfarm-client-wiki.git] / Installation.md
index 0b96b99c6550a4c8fd82d0d404a5e4fdc359c852..0a0cf1c205b0dcf799575af39f01bd1a13c0f21b 100644 (file)
@@ -1,9 +1,9 @@
 # Installing Exim BuildFarm Client
 So you want to give back to the Exim project but don't know how?  Being a member of the Exim BuildFarm is one way you can help.  If your distro and version is not on the list that is currently being built, or if your build configuration is drastically different than others with your distro and version, then please consider submitting a request to join the farm.  I would also like to point out that the Debian project has excellent Exim coverage on their Experimental [Build Farm](https://buildd.debian.org/status/package.php?p=exim4&suite=experimental).  We're not discouraging you from joining the Exim BuildFarm if you're Debian or Debian derivative, but merely want to acknowledge the excellent job the Debian project already does with it.
 
-This Installation page works on the assumption that you have already submitted your [Exim BuildFarm Application](http://eximbuild.mrball.net/cgi-bin/register-form.pl) and the BuildFarm administration has sent you an email with your machine alias (aka _animal_) and secret password, which you will enter in step 9 below.  If you just want to run the build farm client and never submit the results, you call simply run everything with the --test option and it will still work.  If you ever run it without --test, it will still work, but the server will reject the feedback because it's from an unknown _animal_.
+You will need to submit an [Exim BuildFarm Application](http://eximbuild.mrball.net/cgi-bin/register-form.pl) and the BuildFarm administration has sent you an email with your machine alias (aka _animal_) and secret password, which you will enter in step 9 below.  If you just want to run the build farm client and never submit the results, you call simply run everything with the --test option and it will go through all defined build/test steps without saving the state anywhere.  In that case, if you accidentally run it without --test, the build process will still work, but the build state will be locally recorded, and when the stated is submitted to the server, it will reject the feedback because it's from an unknown _animal_.
 
-If you want to run more than one instance of the build farm to test multiple different configurations, such as one with OpenSSL and one with GnuTLS, for each subsequent animal simply start at step 9.  More details on the extra configuration required to keep it separate from the main build are at the end of this page.
+If you want to run more than one instance of the build farm to test multiple different configurations, such as one with OpenSSL and one with GnuTLS, make a copy of the *build-farm.conf* template for each subsequent animal simply start at step 9.  More details on the extra configuration required to keep it separate from the main build are at the end of this page.
 
 ## Install Steps
 1. Make sure that all required packages for Exim to build successfully are installed. The minimal package requirements are the basic suite of compiler tools and basic libraries.  You will also need to install the ccache package.
@@ -28,7 +28,7 @@ This will create the repo checkout in the directory *~/code/*.
 13. Test the configure process by running `./run_build.pl --test --verbose=2 --only-steps=configure`. If there are errors, you'll need to correct them until the process succeeds (ends with OK).  You can repeat this as many times as necessary because test mode does not store the status of the git repo or the status of each stage of the build.
 14. Test the build process by running `./run_build.pl --test --verbose=2 --only-steps=configure,make`. If there are build errors, make adjustments, install additional packages, etc, and repeat the test.
 15. Test the test suite by running `./run_build.pl --test --verbose=2 --only-steps=configure,make,test --override range_num_tests='1 2'`.  If there are build errors when building the test suite, or runtime errors trying to run the test suite, you may need to install additional packages (you shouldn't though).
-16. If you enabled the documentation building process in the *build-farm.conf*, then you can try to build it with `./run_build.pl --test --verbose=2 --only-steps=configure,make-doc`.  For documentation generation to succeed, it will require extra packages to be installed to support xml, xslt, pdf, and a few other things. You will need to install packages named **xfpt** and **sdop**. Some prebuilt packages are available for [CentOS 6](http://www.blafasel.at/exim/doc_rpms/) and [CentOS 5](http://downloads.mrball.net/Linux/CentOS/5/RPMS/x86_64/). The packages are available directly on Debian and Ubuntu distros.
+16. If you enabled the documentation building process in the *build-farm.conf*, then you can try to build it with `./run_build.pl --test --verbose=2 --only-steps=configure,make-doc`.  For documentation generation to succeed, it will require extra packages to be installed to support xml, xslt, pdf, and a few other things. Please see the comments on the [Building Documentation](https://github.com/mrballcb/exim-build-farm-client/wiki/BuildingDocs) page.
 17. If you can get past each of these steps, then your build farm system meets the minimum requirements.
 18. The official process can be kicked off by running `/home/farm/code/run_cron.sh --run-all`.  This will run the default build configuration, keep track of the git repository status, and upload the build results to the server.
 19. Once that command runs with no complaints, add it to the **farm** user crontab.  You can run it at whatever frequency you choose, I suggest 1 hour.  If a previous instantiation is still running, the script will detect the lockfile and exit so as not to step on each other.
@@ -52,7 +52,7 @@ Once that works properly, then the cron command changes to:
 <pre><code>6 * * * * ssh -tt farm@localhost $HOME/bin/build_farm.sh</code></pre>
 
 ## Multiple build clients on one machine
-As mentioned above, you can start at step 9.  A second application must be filled out to put the appropriate data in the database because this is treated a separate BuildFarm client:
+As mentioned above, you can start at step 9 for each additional build you'll do on the same machine.  A second application must be filled out to put the appropriate data in the database because this is treated a separate BuildFarm client:
 
 1. Make a second copy of the *build-farm.conf* with a different name, such as *build-farm-alias2.conf*.
 2. Set the path for build_root and the CCACHE_DIR environment settings, each to a new subdirectory from the first configuration.