This document describes briefly how to setup a tinderbox build slave to do a looped build of OO.o. A good way to ensure that OO.o releases will build cleanly on your system / platform is to implement a tinderbox slave such that people can fix build problems on your system faster.
In essence tinderbox is a perl script that processes mail, and turns it into HTML. It expects to be mailed build logs from separate and de-coupled build machines. Tinderbox has a few elaborations over the most simple 'status' web-page, inasmuch that it integrates with bonsai - to correlate builds against commits, and it has some nice built in error-parsers to allow huge build logs to be condensed to just a few (possible) tricky sections.
To do this, you need to be able to build OO.o already; if you can't do this see the hackers guide. Assuming that you have a script that can build OO.o [NB. see this], called 'build-ooo' that dumps a log to stdout, you're ready to go.
Ensure that you have done a cvs login to the anoncvs server, and that you have a valid ~/.cvspass such that the cvs update will not try to be interactive.
If your log files are too large they won't get through the Ximian firewall if you send them as plain text. (The exact limit is unknown (to me), but the 16MB logfile of a Windows build is too large.) You need to get the tinder-compress script and the Sender.pm Perl module from CPAN. See our CPAN link for details about getting this module. Then edit the following:
@BUILD_TAGS = ( 'OOO_STABLE_1', 'OO643C', 'OOO_STABLE_1' );
This is the list of CVS tags to build; the tag name is passed to the build-ooo script which is expected to be able to update and build the tree from there. NB. different tags may require different external packages (such as the jdk etc. beware).
$BUILDNAME = 'My BuildName';
This needs to be something that identifies your machine, nicely - preferably with an architectural flavour
$FROMADDRESS = 'myaddress@here.com';
Enter your email address.
If your smtpserver doesn't need authentification just enter the server name:
$SMTPAUTH = ''; $SMTPSERVER = 'smtpserver.without_pw.org'; $SMTPAUTHID = ''; $SMTPAUTHPW = '';
If it needs authentification also set $SMTPAUTH to 'LOGIN' and your username and password:
#$SMTPAUTH = 'LOGIN'; # Don't change this! #$SMTPSERVER = 'smtpserver.with_pw.com'; #$SMTPAUTHID = 'userid'; #$SMTPAUTHPW = 'password';
Check your build script, it is called via:
"system ("./build-ooo $tree 2> $buildlog 2>&1")"This script needs to:
|| exit 1;'s to lots of commands.
Finally of course, you need to find a terminal, run screen and then run tinder-compress.
If you have problems with the tinder-compress script you can still try to use the former, not compressing version. Get the tinder-build script and edit the following:
@BUILD_TAGS = ( 'OOO_STABLE_1', 'OO643C', 'OOO_STABLE_1' );
See above for comments.
$BUILDNAME = 'My BuildName';
See above for comments.
Check your build script, it is called via:
"./build-ooo $tree --checkout 2>&1 |"
There are two issues that may cause this. First, the tinderbox web-pages are re-built every 5 minutes using a cron job; so wait for 6 before getting to concerned.
The second thing is more crucial, since the tinderbox organises the logs chronologically, it is vital to ensure that your system time is not ahead of the tinderbox's, and that it is in the same decade, week, hour, minute etc.
Finally, it's possible that someone else has sent in corrupt logs that are stopping the script completing, see here for any potential error messages, if any.
Correction / new tinderboxes / need help ? please do mail me, at michael.meeks@novell.com or Volker, at quetschke@scytek.de.