Buildbot and Cairo
Contents
Project Name
Cairo on Buildbot
Project Description
Automate Cairo builds with testing suites on Buildbot.
Project Leader(s)
Project Contributor(s)
NOTE: only Project Leader(s) should add names here. You can’t add your own name to the Contributor list.
Project Details
Automate Cairo builds with buildbot, and add in support for running test suites with buildbot.
Project Tasks
Task |
Details |
Priority |
Contributors |
Status |
Target |
Completed |
Link(s) |
---|---|---|---|---|---|---|---|
Build Cairo /w Buildbot | Edit master.cfg to automate Cairo build | High | Armen Zambrano Adam Delyea |
Done | |||
Build Cairo | Manually build Cairo | Medium | Armen Zambrano | Done | Blog: Building Cairo |
Project News
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(step.ShellCommand, name="checkout pixman", command=["git","clone","git://git.cairographics.org/git/pixman"], workdir="") ubuntuFactory.addStep(step.ShellCommand, name="checkout cairo", command=["git","clone","git://git.cairographics.org/git/cairo"], workdir="") ubuntuFactory.addStep(step.ShellCommand, name="autogen for pixman", command=["./autogen.sh"], workdir="pixman") ubuntuFactory.addStep(step.ShellCommand, name="configure pixman", command=["./configure"], workdir="pixman") ubuntuFactory.addStep(step.ShellCommand, name="make pixman", command=["make"], workdir="pixman") ubuntuFactory.addStep(step.ShellCommand, name="make install pixman", command=["sudo","make","install"], workdir="pixman") #let's prepare cairo ubuntuFactory.addStep(step.ShellCommand, name="autogen for cairo", command=["./autogen.sh"], workdir="cairo") ubuntuFactory.addStep(step.ShellCommand, name="configure cairo", command=["./configure"], workdir="cairo") ubuntuFactory.addStep(step.ShellCommand, name="make cairo", command=["make"], workdir="cairo") ubuntuFactory.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]