IMPORTANT: tinbuild is an old version, please see README.tinbuild2 Howto setup a tinderbox ======================= LibreOffice tinderbox - a script that builds the project over and over again, and reports success or problems to http://tinderbox.libreoffice.org/MASTER/status.html or to a branch, like http://tinderbox.libreoffice.org/libreoffice-3-6/status.html Short version ------------- $ git clone git://anongit.freedesktop.org/libreoffice/core tinderbox $ cd tinderbox $ ./autogen.sh [params] [make sure that you fulfill all the configure needs] $ make [make sure that you get at least one successful build, for sanity check] $ cd .. $ git clone git://anongit.freedesktop.org/libreoffice/contrib/buildbot $ cd tinderbox $ screen ../buildbot/bin/tinbuild [params] [and now let that box do the work :-)] Longer version -------------- Prepare your build tree from git as described here: http://wiki.documentfoundation.org/Development/Native_Build Configure your build, *do* a build (if necessary, fix the build), tweak your setup to get optimal performance (play with --with-num-cpus, use ccache etc.) After a successful build, 'cd' into the source tree (the same dir that also has the autogen.sh and configure scripts), and run tinbuild. A typical call for a home box (without a working smtp relay) looks like this: tinbuild -m joe_hacker@gmail.com -s smtp.gmail.com -u joe_hacker -p SeCrEt -t "Linux gcc-4.4.1 (x86_64)" If you don't want the user or password to show up in the process list, simply edit the tinbuild script - rather at the top of it, there are SMTPUSER and SMTPPW variables, to be set. Please also note that for gmail, you may need to change the default smtp port to 587 (in the tinbuild script, too). This setup will then continuously build the tree (whenever there are new commits), and send results to the tinderbox master, as well as complaint mails to the committers that broke the build. To prevent excessive spam, you'll get a Bcc of those nag mails - so you'll notice. Random configure options to help speed up the build --------------------------------------------------- The following options speed up the build, sometimes at the cost of coverage, functionality, or robustness. YMMV. * --disable-dependency-tracking - avoids wasting time with determining header dependencies, with a one-off build This option is also essential for getting reliable build logs * --disable-mozilla --without-system-mozilla - don't build parts of mozilla. You'll miss breakages that use moz functionality * --disable-binfilter - don't build old legacy StarOffice binary formats. Highly deprecated code, may vanish soon * --disable-odk - do not pack office development kit - not considered core functionality * --with-num-cpus=2 --with-max-jobs=2 - for the typical dual core machine, with ccache, a rather good starting point to keep ~100% load. Tinderboxing more branches on one machine ----------------------------------------- The tinbuild script synchronizes the 'expensive' operations using the 'flock' command, when you are on a system that actually has flock. So on Linux, it is enough to have 2 trees, like ~/master and ~/libreoffice-3-6, switched to the respective branches, and run tinbuild from there, and it should work just fine, taking care of not building both at the same time. Example: $ cd ~/master $ screen -d -m ~/buildbot/bin/tinbuild -n -i ... etc. $ cd ~/libreoffice-3-6 $ ./g checkout -b libreoffice-3-6 origin/libreoffice-3-6 $ screen -d -m ~/buildbot/bin/tinbuild -n -i ... etc. will result in 2 screen sessions running the master and libreoffice-3-6 builds respectively, with the same load as if you were running just one; only the time to build will prolong.