Contact the Octave Maintainers mailing list to let us know that you wish to provide a system to use as a build slave.

Install buildbot. Packages exist for most distributions. See the buildbot docs for other options. You should create a separate user account with no special privileges that will run buildbot.

Create a configuration file (see below).

Run buildbot on the slave system, preferably by starting it automatically when your system boots. It should be running with the buildbot user ID.

You may also want to set up ccache to work with buildbot (strongly recommended to speed up builds). If you create a directory ~/buildbot/bin, it will be added to the execution PATH when buildbot runs commands on the slave. This directory can have symbolic links like the following:

You must edit the settings for basedir, slavename, and password. The basedir should be the absolute and fully expanded name of the directory containing the configuration file. For example, if the home directory for the buildbot user is /var/lib/buildbot and your slavename is set to 'debian-x86_64' , then basedir might be '/var/lib/buildbot/slaves/debian-x86_64'. The password should not be anything valuable. You'll be asked to provide the slavename and password so that they may be added to the master configuration on buildbot.octave.org. Do not post the password to the octave-maintainers mailing list.

Building Octave takes a significant amount of disk space. With debugging symbols, you may need several GB for each build, plus room for ccache (possibly 50GB) if you use it. If you use a cache size that is larger than the default, you'll need to specify that in the .ccache/ccache.conf file using a line like

max_size = 50G

If the directory containing the build and ccache directories doesn't have sufficient space, then these directory names may point to a separate partition that does have enough space available.

There is a build server continuously building the latest tip of the development branch of Octave. The build server is running Hydra, which is based on the Nix functional package management system. This is the official continuous build system of the GNU Project. The Hydra build of Octave is currently maintained by User:Mtmiller.

A nice product of the Hydra continuous build of Octave is that there is always a source snapshot available for download. This source snapshot is always built from the current tip of the development branch in whatever state it is in. Therefore, it may not compile or run properly and should definitely not be used for anything other than evaluation. This can be useful to evaluate the current state of Octave's development branch without needing to clone the Mercurial repository.

Another product of the Hydra continuous build is the code coverage report. The latest coverage report is always built from the current tip of the development branch. This report gives an analysis of the code coverage of the current Octave test suite. This can be used to find unexercised code paths and help improve the coverage of Octave's test suite (see Projects#Tests).