summaryrefslogtreecommitdiff
path: root/README
blob: 8f0f56553084c8824072ddac93ccf1dd2668abf0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102

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.