= !WebKit !BuildBot = The [http://build.webkit.org WebKit BuildBot] is a system to help automate the compile/test cycle. After every commit to WebKit's Subversion repository it will schedule compilation and tests on a variety of different computers, known as build slaves. == Running a Build Slave == Each build slave needs a unique username and password to be able to take part in the compile/test cycle. Please email [mailto:webkit-dev@lists.webkit.org webkit-dev] if you would like to contribute a build slave. Please ensure that you are familiar with [http://webkit.org/building/build.html building WebKit] from source so that problems getting the slave up and running can be easily troubleshooted. The machine will need to have: === General requirements === 1. Subversion installed and accessible on the `PATH`. 1. Set the computer to not go to sleep (under Energy Saver in System Preferences) 1. Install !BuildBot 1. In a shell, `sudo easy_install buildbot-slave` (sudo easy_install-2.6 buildbot-slave on Snow Leopard) === Mac requirements === 1. Everything in http://webkit.org/building/tools.html === Cygwin Win requirements === 1. Everything in http://webkit.org/building/tools.html (if creating a builder, use DirectX SDK December 2004, NOT the FEB 2010 version) 1. For the cygwin install, the actual minimal requirements are: apache, bc, bison, curl, diffutils, flex, gcc, gperf, make, patch, perl, python, readline, ruby, subversion, unzip, zip. 1. From the instructions, save the file WebKitSupportLibrary.zip in a directory (e.g. `c:\deps`) and `set WEBKITSUPPORTLIBRARIESZIPDIR=c:\deps` 1. [http://apple.com/safari/download Safari 4 and QuickTime] 1. [http://java.com/download Java] 1. Set the following registry key: {{{ [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug] "Auto"="0" }}} === Non-cygwin Win Requirements === 1. Install [http://strawberryperl.com/ Strawberry Perl]. Make sure to run `perl` from the command line at least once. This will set up the library variables. 1. Install [http://python.org/download/ Python] 1. Add Python directory on the system {{{PATH}}} variable (Control Panel -> System -> Advanced - > Environment Variables) 1. Add {{{.PY}}} to the system {{{PATHEXT}}} variable. 1. Install [http://pypi.python.org/packages/2.6/s/setuptools/ setuptools] (This makes it easy to install twisted). 1. Download [http://sourceforge.net/projects/pywin32/ pywin32], unzip it and run `setup install` in the unzipped folder. 1. Run `easy_install twisted`. 1. Download [http://code.google.com/p/buildbot/ buildbot-slave zip file], unzip it and run `setup install` in the unzipped folder. 1. Install [http://rubyinstaller.org/ Ruby]. === GTK requirements === 1. See BuildingGtk 1. Probably need to `sudo apt-get install geoclue libsoup`. (To be verified and moved to BuildingGtk). === QT requirements === 1. See QtWebKit === Chromium Requirements === 1. See [http://trac.webkit.org/wiki/Chromium Chromium] === Configuring a Build Slave === 1. Open a shell inside a directory suitable to keep the build slaves copy of the !WebKit repository. 1. Run `buildslave create-slave WebKit-BuildSlave build.webkit.org:17000 [username] [password]` 1. Change to the `WebKit-BuildSlave` directory 1. Edit `info/admin` and `info/host` to contain basic contact information and information about the build slave. 1. Edit `buildbot.tac`, changing the umask line to read {{{ umask = 022 }}} 1. Run `buildslave start` to start the build slave. === Troubleshooting === On Windows, if you get `perl (...) fatal error - unable to remap (...) to same address as parent`, you need to run {{{ c:\cygwin\bin\ash /bin/rebaseall -b 0x50000000 -o 0x80000 exit }}} or rebase individual files.