1
edit
Changes
Added building Cairo notes
Jan 19 2008 - Project Proposal from Vladimir Vukicevic.
== Notes ==
=== Build Cairo manually ===
* mkdir cairo & cd cairo
* git clone git://git.cairographics.org/git/pixman
* git clone git://git.cairographics.org/git/cairo
* cd pixman && ./autogen.sh
* ./configure
* make
* make install //I have a problem can I set up buildbot to use SUDO??
make[2]: Entering directory `/home/armen/sandbox/cairo2/pixman/pixman'
test -z "/usr/local/lib" || /bin/mkdir -p "/usr/local/lib"
/bin/bash ../libtool --mode=install /usr/bin/install -c 'libpixman-1.la' '/usr/local/lib/libpixman-1.la'
/usr/bin/install -c .libs/libpixman-1.so.0.9.6 /usr/local/lib/libpixman-1.so.0.9.6
/usr/bin/install: cannot remove `/usr/local/lib/libpixman-1.so.0.9.6': Permission denied
make[2]: *** [install-libLTLIBRARIES] Error 1
* sudo make install //I had to use SUDO
* whereis libpixman-1
* cd ../cairo && ./autogen.sh
* ./configure
* make
* make install //the same problem with SUDO
make[2]: Entering directory `/home/armen/sandbox/cairo2/cairo/src'
test -z "/usr/local/lib" || /bin/mkdir -p "/usr/local/lib"
/bin/bash ../libtool --mode=install /usr/bin/install -c 'libcairo.la' '/usr/local/lib/libcairo.la'
/usr/bin/install -c .libs/libcairo.so.2.14.0 /usr/local/lib/libcairo.so.2.14.0
/usr/bin/install: cannot create regular file `/usr/local/lib/libcairo.so.2.14.0': Permission denied
* sudo make install
Running the tests and getting an index.html file with them
* make test //takes long time
* cd test && make html
* firefox index.html
=== master.cfg draft ===
# -*- python -*-
# ex: set syntax=python:
# This master.cfg defines how to build Cairo and run the tests it has
from buildbot.scheduler import Scheduler, Periodic
from buildbot.process import step, factory
from buildbot.status import html
s = factory.s
c = BuildmasterConfig = {}
####### PROJECT IDENTITY
c['projectName'] = "Cairo"
c['projectURL'] = "http://www.cairographics.org/"
# changed buildbot's default port
c['buildbotURL'] = "http://localhost:8020/"
#modified from default's buildbot port
c['slavePortnum'] = 9876
####### BUILDSLAVES
c['bots'] = [("cairoslave", "cairoslavepassword")]
####### STATUS TARGETS
c['status'] = []
from buildbot.status import html
c['status'].append(html.Waterfall(http_port=8010))
####### CHANGESOURCES
c['sources'] = []
# Armen - Research GIT source changes
####### SCHEDULERS
## configure the Schedulers
from buildbot.scheduler import Scheduler
c['schedulers'] = []
c['schedulers'].append(Periodic(name="30 minutes build scheduler",
builderNames=["Linux Ubuntu7.1 dep unit test"],
periodicBuildTimer=30*60)))
####### BUILDERS
builders = []
ubuntuFactory = factory.BuildFactory()
ubuntuFactory.addStep(addStep(step.ShellCommand, name="checkout pixman",
command=["git","clone","git://git.cairographics.org/git/pixman"],
workdir="")
ubuntuFactory.addStep(addStep(step.ShellCommand, name="checkout cairo",
command=["git","clone","git://git.cairographics.org/git/cairo"],
workdir="")
ubuntuFactory.addStep(addStep(step.ShellCommand, name="autogen for pixman",
command=["./autogen.sh"],
workdir="pixman")
ubuntuFactory.addStep(addStep(step.ShellCommand, name="configure pixman",
command=["./configure"],
workdir="pixman")
ubuntuFactory.addStep(addStep(step.ShellCommand, name="make pixman",
command=["make"],
workdir="pixman")
ubuntuFactory.addStep(addStep(step.ShellCommand, name="make install pixman",
command=["sudo","make","install"],
workdir="pixman")
#let's prepare cairo
ubuntuFactory.addStep(addStep(step.ShellCommand, name="autogen for cairo",
command=["./autogen.sh"],
workdir="cairo")
ubuntuFactory.addStep(addStep(step.ShellCommand, name="configure cairo",
command=["./configure"],
workdir="cairo")
ubuntuFactory.addStep(addStep(step.ShellCommand, name="make cairo",
command=["make"],
workdir="cairo")
ubuntuFactory.addStep(addStep(step.ShellCommand, name="make install cairo",
command=["sudo","make","install"],
workdir="cairo")
cairo_trunk_ubuntu_builder = {
'name': "Linux Ubuntu7.1 dep unit test",
'slavenames': ['cairoslave'],
'builddir': "trunk_ubuntu",
'factory': ubuntuFactory}
builders.append(cairo_trunk_ubuntu_builder)
c['builders'] = builders
# c['builders'] = [cairo_trunk_ubuntu_builder]