Difference between revisions of "Buildbot and Cairo"

From CDOT Wiki
Jump to: navigation, search
(Project Tasks)
(Added building Cairo notes)
Line 60: Line 60:
  
 
Jan 19 2008 - Project Proposal from Vladimir Vukicevic.
 
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]

Revision as of 20:03, 5 February 2008

Project Name

Cairo on Buildbot

Project Description

Automate Cairo builds with testing suites on Buildbot.

Project Leader(s)

Adam Delyea
Armen Zambrano

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

         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]