summaryrefslogtreecommitdiff
path: root/Tinderbox.mdwn
blob: bbbfed335eb934b16c20cb6c16c8ec82b0285d82 (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
## Tinderbox status

[[tinderbox|http://tinderbox.x.org/]] 

## Adding a new machine

The steps for setting up a new machine are: 

* Read [[http://tinderbox.x.org/participate|http://tinderbox.x.org/participate]], get a username/pass
* Set up jhbuild; see [[http://wiki.x.org/wiki/JhBuildInstructions|http://wiki.x.org/wiki/JhBuildInstructions]]
* "jhbuild build"; check that the build completes and you have the appropriate dependencies
* Once you're ready to add the machine to the tinderbox front page, set up a crontab entry such as:

`0 */2 *   *   *    bin/jhbuild autobuild -a -c --report-url="http://USER:PASS@tinderbox.x.org/builds/rpc"`

(instructions from [[this email|http://lists.freedesktop.org/archives/xorg/2008-December/041211.html]]) 

## Using ccache and an autoconf cache file

Since many of these clean/configure/build runs will be identical, it's a big win to use [[ccache|http://ccache.samba.org/]] and an [[autoconf cache file|http://www.gnu.org/software/hello/manual/autoconf/Cache-Files.html]], e.g. add to jhbuildrc 

    os.environ['CC'] = 'ccache gcc'
    os.environ['CXX'] = 'ccache g++'
    autogenargs='--cache-file=os.path.join(os.environ['HOME'], 'configure-cache')

## Changing the moduleset

Locally modifying the jhbuild moduleset to add or remove modules isn't a good idea as this means that you don't automatically pick up changes to it. 

To avoid building modules (e.g. which aren't appropriate to your target), you can use the skip configuration variable in the jhbuildrc file, e.g. 

    skip = [ 'xdriinfo', 'libdrm', 'libpciaccess' ]

To add additional modules, you can use the technique of creating of local moduleset which includes the standard moduleset and your additions, e.g. 

    moduleset = os.path.join(os.environ['HOME'], 'myxorg.modules')

where the contents of myxorg.modules is something like 

    <?xml version="1.0" standalone="no"?> <!--*- mode: nxml -*-->
    <!DOCTYPE moduleset SYSTEM "moduleset.dtd">
    <?xml-stylesheet type="text/xsl" href="moduleset.xsl"?>
    
    <moduleset>
      <include href="http://cgit.freedesktop.org/xorg/util/modular/plain/xorg.modules" />
    
     <metamodule id="xquartz">
       <dependencies>
          <dep package="libAppleWM"/>
          <dep package="xorg"/>
       </dependencies>
     </metamodule>

    </moduleset>