Friday, February 18, 2011

LibreOffice Tinderbox

You probably know what is LibreOffice, but might be in doubt, what is a tinderbox. It is easy - it is a script that builds a software project over and over again, and reports success or problems to a central place.

Until recently, we had the first part, a script that builds LibreOffice several times a day, and when a build problem appears, it mails the error to all the committers since the last successful build. We also had the second part, the central place for reporting the problems, Christian Lohmaier's great tinderbox on go-oo. But what we were missing was the connection of those two. I fixed that just recently by extending the nagging script to send the build logs there too.

The interesting outcome is that setting up your own tinderbox is incredibly easy now :-) What to do:

 $ git clone git://anongit.freedesktop.org/libreoffice/bootstrap 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] $ screen bin/tinbuild [params] [and now let that box do the work :-)] 

Should you have trouble with the autogen.sh and make part, consult the great documentation here. If you want to learn more about the bin/tinbuild, have a look at tinbuild --help. The setup I am using is:

 screen bin/tinbuild -n -i -m kendy@suse.cz -w $((15*60)) -s relayhost -t "SLED11 (x86-64)" 

You of course want to change the -m parameter (email address of the tinderbox owner), -s parameter (SMTP host), and -t (description of the host, ideally in the form "Operating system (arch)"). Please also note:

  • The box should run 24/7.
  • It is a good practice to have a separate user account for the tinderbox, that does nothing else than the building.
  • You need --disable-dependency-tracking among the ./autogen.sh parameters so that the build stops immediately after the error.
  • It is also preferable to force --with-num-cpus=1, from the same reason.

I believe with the recent updates, tinbuild is reasonably cross-platform (it uses Bash and Perl's Net::SMTP and MIME::Lite modules to send mails), so you should be able to deploy it on your favorite platform pretty easily. Actually - do so! :-) That way you can be sure that LibreOffice will be buildable on your platform most of the time. Drop a note to our development mailing list if you are interested.

And future plans? Extend tinbuild even more, to be able to upload the resulting binaries to Norbert Thiebaud's daily builds :-)

No comments:

Post a Comment