2 <h2>Adding a machine to the build farm</h2>
5 If you have a machine that you wish to add to our build farm then please follow the following instructions:
10 <li>Decide if your machine is suitable for the task:
12 <li>Is it a production machine?</li>
13 <li>Is it security-sensitive?</li>
14 <li>Look at the output from the existing machines - would publishing
15 file-system locations and IPs be a concern?</li>
16 <li>The nature of the task is that executable code is downloaded from
17 (a site claiming to be) samba.org, and run on your machine by cron.
18 Does this bother you?</li>
19 <li>Is this somebody else's machine?</li>
21 If you answer yes to <em>any</em> of these these questions, then we probably
22 should not include it on the build farm.</li>
24 <li>See if it is an OS/architecture combination that we already
25 have. If it is then we won't need it unless the current machine we
26 have covering that combination goes away for some reason. </li>
28 <li><p>Make sure your machine is able to open an outgoing TCP connection
29 to build.samba.org on port 873 (the rsync port). Test this by running
31 rsync build.samba.org::
33 and seeing if you get back the list of rsync modules.</p>
35 Note: there has been reports that rsync will work via http proxy. A simple
37 export RSYNC_PROXY=cache:3128
39 before running rsync should be all that is needed.</p></li>
41 <li>If all is OK then create an account called "build" on the
42 machine. If you can't create accounts then you can use an existing
43 account, no special privileges are needed, just change ~build to your
44 home directory in the instructions below.</li>
46 <li>Make sure a recent version of <a href="https://rsync.samba.org/">rsync</a>
47 is installed on the machine</li>
49 <li>Create a directory ~build/build_farm/. You will need about 120MB of
50 free space for this directory.</li>
52 <li>(optional) Install <a href="https://ccache.samba.org">ccache</a>
53 and set a reasonable cache size (300MB would be plenty). This
54 massively reduces the compilation times and system load for certain
57 <li>Grab the script build_test from cvs or from <a
58 href="https://www.samba.org/ftp/unpacked/build_farm/build_test">https://www.samba.org/ftp/unpacked/build_farm/build_test</a>
59 and put it in ~build/build_farm/ .</li>
61 <li>Edit the script if necessary to update the location of the build_farm
64 <li>Tell <a href="mailto:build@samba.org">The build farm
65 maintainers</a> the name of your machine (as given by the hostname
66 command) and its OS and architecture plus what C compilers are
67 installed. One of the team will send you a password. Put that in a
68 file called ".password" in the build_farm directory.</li>
70 <li>Run the script build_test once manually and make sure the build ran OK.
71 Look in build.log for errors.</li>
73 <li>Setup a cron job to run build_test regularly. You may wish to use
74 "nice" to reduce its priority, for example I use the following cron
77 0,30 * * * * /bin/nice /home/build/build_farm/build_test 2> /home/build/cron.err
80 <li>Check that <a href="https://build.samba.org/">build.samba.org</a>
81 is showing your new host and that it is being updated regularly. </li>
85 Note that only a very small amount of bandwidth is used.
86 Andrew Bartlett reports having seen 6 of the boxes in the farm from behind a
87 modem, and it only used a tiny proportion of that modems bandwidth.
88 He also reports having had 2 of the machines behind a modem - dial-up links