Add section on multiple clients on the same machine
authorTodd Lyons <tlyons@ivenue.com>
Mon, 28 Oct 2013 19:53:05 +0000 (12:53 -0700)
committerTodd Lyons <tlyons@ivenue.com>
Mon, 28 Oct 2013 19:53:05 +0000 (12:53 -0700)
Installation.md

index 7a1b504b1df800a3b504c34e6fc49c01f7f3d4c1..f14687ab5b1710e65e715ee398ce6bbc15c3c55b 100644 (file)
@@ -3,6 +3,8 @@ So you want to give back to the Exim project but don't know how?  Being a member
 
 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_.
 
 
 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_.
 
+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, 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.
 2. Create the master exim user (i.e. the user that Exim changes uid to when it runs in normal operation).  I suggest the user **exim**.  If you already have the Exim package provided by your distro installed, chances are good that you already have a user named **exim** or **exim4**.  That user is fine.  This howto also assumes you use the groupname **exim**.
 ## 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.
 2. Create the master exim user (i.e. the user that Exim changes uid to when it runs in normal operation).  I suggest the user **exim**.  If you already have the Exim package provided by your distro installed, chances are good that you already have a user named **exim** or **exim4**.  That user is fine.  This howto also assumes you use the groupname **exim**.
@@ -30,6 +32,15 @@ This will create the repo checkout in the directory *~/code/*.
 17. 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.
 18. 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.
 
 17. 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.
 18. 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.
 
+## 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:
+
+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.
+3. Create the new build_root directory.
+4. When testing, pass this additional parameter to any build script you run: `--config /path/to/build-farm-machine2.conf`.
+5. Add a new cron job for this second build farm client in the same way you chose to do the first one, just make sure to specify the --config option with it.
+
 ## Further documentation
 * Details of options in [build-farm.conf](https://github.com/mrballcb/exim-build-farm-client/wiki/BuildConfigConf)
 * Details of [potential testing commandlines](https://github.com/mrballcb/exim-build-farm-client/wiki/TestingBuilds)
 ## Further documentation
 * Details of options in [build-farm.conf](https://github.com/mrballcb/exim-build-farm-client/wiki/BuildConfigConf)
 * Details of [potential testing commandlines](https://github.com/mrballcb/exim-build-farm-client/wiki/TestingBuilds)