Difference between revisions of "Buildbot and Cairo"

From CDOT Wiki
Jump to: navigation, search
(Added building Cairo notes)
m (added prerequisites of project)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Project Name ==
+
== Name ==
  
Cairo on Buildbot
+
Cairo on Buildbot is a project to build the Cairo graphics library in an automated manner with Buildbot and be able to run tests and performance tests
  
== Project Description ==
+
== Leader(s) ==
 
 
Automate Cairo builds with testing suites on Buildbot.
 
 
 
== Project Leader(s) ==
 
 
[[User:Awdelyea| Adam Delyea]]<br />
 
[[User:Awdelyea| Adam Delyea]]<br />
 
[[User:armenzg|Armen Zambrano]]
 
[[User:armenzg|Armen Zambrano]]
  
== Project Contributor(s) ==
+
== Contributor(s) ==
  
 
* [http://blog.vlad1.com/ Vladimir Vukicevic]
 
* [http://blog.vlad1.com/ Vladimir Vukicevic]
 +
* Ben Hearshum
  
NOTE: only Project Leader(s) should add names here. You '''can’t''' add your own name to the Contributor list.
+
== Project News ==
 +
* Mar 06 2008 - Started writing cairobuild.py grouping steps and CairoTests class which generates summary
 +
* Feb 29 2008 - '''Why does the TESTS take so long on MacOS X? It is ridiculous!!'''
 +
* Feb 29 2008 - Added steps to build on MacOS X
 +
* Feb 16 2008 - Updated Cairo project page and first proper release
 +
* Feb 11 2008 - Steps are written but some issues have to fixed
 +
* Jan 19 2008 - Project Proposal from Vladimir Vukicevic.
  
== Project Details ==
+
== Release ==
 +
<blockquote>
 +
=== Requirements ===
 +
* [http://buildbot.net/trac buildbot (I am using 0.7.5)]
 +
* [http://twistedmatrix.com/trac/ twisted (I am using 2.5.0)]
 +
* [http://git.or.cz/ Git (I am using 1.5.3.6)]
 +
=== Mar. 7th ===
 +
* The steps to build on Mac have been added to [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/ Seneca Hera Try Server Setup/buildbot-configs/]
 +
and the blog post explaining a lot of details about how much has been done is here: ([http://armenzg.blogspot.com/2008/02/armenzg-sess14-building-cairo-on-mac-no.html Sess14-Buildbot on Cairo])
  
Automate Cairo builds with buildbot, and add in support for running test suites with buildbot.
+
# svn co http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/cairomaster/
 +
# buildbot create-slave ./cairoslave localhost:9876 macslave slavepassword (change macslave for linuxslave when trying to run in Linux)
 +
# buildbot start cairomaster
 +
# buildbot start cairoslave
 +
# firefox http://localhost:8020 //OR open it with any browser
 +
</blockquote>
  
== Project Tasks ==
+
== Tasks ==
  
 
<table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=3 cellspacing=0>
 
<table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=3 cellspacing=0>
    <th style=" width: 17%;"><br />'''''Task'''''<br /><br /></th>
 
    <th style=" width: 30%;"><br />'''''Details'''''<br /><br /></th>
 
    <th style=" width: 5%;"><br />'''''Priority'''''<br /><br /></th>
 
    <th style=" width: 15%;"><br />'''''Contributors'''''<br /><br /></th>
 
    <th style=" width: 15%;"><br />'''''Status'''''<br /><br /></th>
 
    <th style=" width: 4%;"><br />'''''Target'''''<br /><br /></th>
 
    <th style=" width: 4%;"><br />'''''Completed'''''<br /><br /></th>
 
    <th style=" width: 10%;"><br />'''''Link'''''(s)<br /><br /></th>
 
 
 
     <tr>
 
     <tr>
        <td>Build Cairo /w Buildbot</td>
+
    <th style=" width: 30%;">'''''Task'''''<br /></th>
        <td>Edit master.cfg to automate Cairo build</td>
+
    <th style=" width: 35%;">'''''Details'''''<br /></th>
        <td  style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
+
    <th style=" width: 5%;">'''''Priority'''''<br /></th>
        <td>[[User:Armenzg|Armen Zambrano]]<br /> [[User:Awdelyea|Adam Delyea]]</td>
+
    <th style=" width: 10%;">'''''Contrib.'''''<br /></th>
        <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
+
    <th style=" width: 5%;">'''''Status'''''<br /></th>
        <td>&nbsp;</td>
+
    <th style=" width: 5%;">'''''Target'''''<br /></th>
        <td>&nbsp;</td>
+
    <th style=" width: 10%;">'''''Link'''''(s)<br /></th>
        <td>&nbsp;</td>
 
 
     </tr>
 
     </tr>
 
+
     <tr style="height:42px;">
     <tr>
+
         <td>Build Cairo manually</td>
         <td>Build Cairo</td>
 
 
         <td>Manually build Cairo</td>
 
         <td>Manually build Cairo</td>
         <td  style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Medium</td>
+
         <td  style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
         <td>[[User:Armenzg|Armen Zambrano]]</td>
+
         <td style="text-align: center;">[[User:Armenzg|armenzg]]</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
         <td>&nbsp;</td>
+
         <td style="text-align: center;">&nbsp;</td>
        <td>&nbsp;</td>
 
 
         <td>[http://armenzg.blogspot.com/2008/01/armenzg-sess7-build-cairo.html Blog: Building Cairo]</td>
 
         <td>[http://armenzg.blogspot.com/2008/01/armenzg-sess7-build-cairo.html Blog: Building Cairo]</td>
 
     </tr>
 
     </tr>
 +
    <tr style="height:42px;">
 +
<!-- Task --><td>Buildbot and Cairo on Linux</td>
 +
<!-- Details --><td>Build on my laptop Cairo and run tests; Missing perf tests</td>
 +
<!-- Priority --><td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
 +
<!-- Contributors --><td style="text-align: center;">[[User:Armenzg|armenzg]]</td>
 +
<!-- Status --><td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 +
<!-- Target --><td style="text-align: center;">15 Feb</td>
 +
<!-- Link --><td>[http://armenzg.blogspot.com/2008/02/armenzg-sess13-buildbot-with-cairo.html Blog: Buildbot with Cairo]</td>
 +
    </tr>
 +
    <tr style="height:42px;">
 +
        <td>Fix GIT and SUDO issue</td>
 +
        <td>'''* Fixed by delete checked out source code and ./configure --prefix'''</td>
 +
        <td  style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
 +
        <td style="text-align: center;">[[User:Armenzg|armenzg]]</td>
 +
        <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Fixed</td>
 +
        <td style="text-align: center;">15 Feb</td>
 +
        <td></td>
 +
    </tr>
 +
    <tr style="height:42px;">
 +
<!-- Task -->        <td>Write the steps for Mac</td>
 +
<!-- Details -->    <td></td>
 +
<!-- Priority -->    <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Contributors--> <td style="text-align: center;">cworth #cairo</td>
 +
<!-- Status -->      <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 +
<!-- Target -->      <td style="text-align: center;">29 Feb</td>
 +
<!-- Link -->        <td>[http://armenzg.blogspot.com/2008/02/armenzg-sess14-building-cairo-on-mac-no.html Sess14-Buildbot on Cairo]</td>
 +
    </tr>
 +
    <tr style="height:42px;">
 +
<!-- Task -->        <td>Write the steps for Windows</td>
 +
<!-- Details -->    <td></td>
 +
<!-- Priority -->    <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Contributors--> <td style="text-align: center;"></td>
 +
<!-- Status -->      <td style="background-color: white; text-align: center; font-weight: bold; font-size: bigger">&nbsp;</td>
 +
<!-- Target -->      <td style="text-align: center;">7 Mar</td>
 +
<!-- Link -->        <td>&nbsp;</td>
 +
    </tr>
 +
    <tr style="height:42px;">
 +
<!-- Task -->        <td>Write cairobuild.py file</td>
 +
<!-- Details -->    <td>This will centralize and group steps together as in [http://mxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/unittest/mozbuild.py mozbuild.py]</td>
 +
<!-- Priority -->    <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Contributors--> <td style="text-align: center;"></td>
 +
<!-- Status -->      <td style="background-color: white; text-align: center; font-weight: bold; font-size: bigger">&nbsp;</td>
 +
<!-- Target -->      <td style="text-align: center;">7 Mar</td>
 +
<!-- Link -->        <td>&nbsp;</td>
 +
    </tr>
 +
    <tr style="height:42px;">
 +
<!-- Task -->        <td>Run the "performance" steps</td>
 +
<!-- Details -->    <td></td>
 +
<!-- Priority -->    <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Contributors--> <td style="text-align: center;"></td>
 +
<!-- Status -->      <td style="background-color: white; text-align: center; font-weight: bold; font-size: bigger">&nbsp;</td>
 +
<!-- Target -->      <td style="text-align: center;">&nbsp;</td>
 +
<!-- Link -->        <td>&nbsp;</td>
 +
    </tr>
 +
    <tr style="height:42px;">
 +
<!-- Task -->        <td>Find out how to use PKG_CONFIG_PATH</td>
 +
<!-- Details -->    <td>* PKG_CONFIG_PATH=(the --prefix value)+"/lib/pkgconfig"(where the .pc file is)</td>
 +
<!-- Priority -->    <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Contributors--> <td style="text-align: center;"></td>
 +
<!-- Status -->      <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Fixed</td>
 +
<!-- Target -->      <td  style="text-align: center;">Feb 29</td>
 +
<!-- Link -->        <td>&nbsp;</td>
 +
    </tr>
 +
    <tr style="height:42px;">
 +
<!-- Task -->        <td>Build upon source changes in the GIT repository</td>
 +
<!-- Details -->    <td></td>
 +
<!-- Priority -->    <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Contributors--> <td style="text-align: center;"></td>
 +
<!-- Status -->      <td style="background-color: white; text-align: center; font-weight: bold; font-size: bigger">&nbsp;</td>
 +
<!-- Target -->      <td style="text-align: center;">&nbsp;</td>
 +
<!-- Link -->        <td>&nbsp;</td>
 +
    </tr>
 +
    <tr style="height:42px;">
 +
<!-- Task -->        <td>Try to use the GIT source class that buildbot has</td>
 +
<!-- Details -->    <td></td>
 +
<!-- Priority -->    <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Contributors--> <td style="text-align: center;"></td>
 +
<!-- Status -->      <td style="background-color: white; text-align: center; font-weight: bold; font-size: bigger">&nbsp;</td>
 +
<!-- Target -->      <td style="text-align: center;">&nbsp;</td>
 +
<!-- Link -->        <td>&nbsp;</td>
 +
    </tr>
 +
    <tr style="height:42px;">
 +
<!-- Task -->        <td>Package results and make them available</td>
 +
<!-- Details -->    <td>Pass the results of "make test" and "make html" to the master and allow to download them</td>
 +
<!-- Priority -->    <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Contributors--> <td style="text-align: center;"></td>
 +
<!-- Status -->      <td style="background-color: white; text-align: center; font-weight: bold; font-size: bigger">&nbsp;</td>
 +
<!-- Target -->      <td style="text-align: center;">&nbsp;</td>
 +
<!-- Link -->        <td>&nbsp;</td>
 +
    </tr>
 +
    <tr style="height:42px;">
 +
<!-- Task -->        <td>Write a CSS file for the waterfall view</td>
 +
<!-- Details -->    <td>&nbsp;</td>
 +
<!-- Priority -->    <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Contributors--> <td style="text-align: center;"></td>
 +
<!-- Status -->      <td style="background-color: white; text-align: center; font-weight: bold; font-size: bigger">&nbsp;</td>
 +
<!-- Target -->      <td style="text-align: center;">&nbsp;</td>
 +
<!-- Link -->        <td>&nbsp;</td>
 +
    </tr>
 +
    <tr style="height:42px;">
 +
<!-- Task -->        <td>Email notifications? IRC notifications?</td>
 +
<!-- Details -->    <td>&nbsp;</td>
 +
<!-- Priority -->    <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Contributors--> <td style="text-align: center;"></td>
 +
<!-- Status -->      <td style="background-color: white; text-align: center; font-weight: bold; font-size: bigger">&nbsp;</td>
 +
<!-- Target -->      <td style="text-align: center;">&nbsp;</td>
 +
<!-- Link -->        <td>&nbsp;</td>
 +
    </tr>
 +
</table>
 +
 +
== Problems ==
 +
* A lot of problems when trying to build on MacOS are mentioned here: [http://armenzg.blogspot.com/2008/02/armenzg-sess14-building-cairo-on-mac-no.html Sess14-Buildbot on Cairo]
 +
* <strike>The first time the command GIT CLONE works because there is nothing before that execution but the second run should be an update instead of a checkout. What could be the proper GIT command to have as the step?</strike>
 +
I have decided to remove the checked out code and checkout the trunk before each build
 +
* <strike>I need to do SUDO MAKE INSTALL, but this requires user's input which breaks the automated concept. What could be the right step?</strike>
 +
Used ./configure --prefix=/path/to/somewhere to avoid building somewhere where I require to have sudo privileges
  
</table>
+
== Notes ==
 +
'''These notes are for learning purposes and documentation'''
 +
<blockquote>
 +
=== Feb. 15th release===
 +
'''Where will I put code and screenshots?'''
 +
* [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/ http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/] - Buildbot configs (look for "cairo")
 +
* [http://matrix.senecac.on.ca/%7Eazambran/mozilla/cairo/ http://matrix.senecac.on.ca/%7Eazambran/mozilla/cairo/] - Archived files
 +
* [http://matrix.senecac.on.ca/%7Eazambran/mozilla/screenshots/ http://matrix.senecac.on.ca/%7Eazambran/mozilla/screenshots/] - Screenshots (look for "cairo" in the filenames)
  
== Project News ==
+
'''What has been released this week:'''
 +
* [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/cairo-one-ubuntu-slave/master.cfg master.cfg] - It builds Cairo and runs automated tests on one linux machine
 +
* [http://matrix.senecac.on.ca/%7Eazambran/mozilla/screenshots/buildbot-status-cairo.jpg buildbot-status-cairo.jpg] - After build #8 (no tests at this point)
 +
* [http://matrix.senecac.on.ca/%7Eazambran/mozilla/cairo/Buildbot:Cairo-results.tar.gz Buildbot:Cairo-results.tar.gz] - After build #11 (tests were run)
  
Jan 19 2008 - Project Proposal from Vladimir Vukicevic.
+
'''Steps to meet requirements'''
 +
* sudo apt-get install buildbot
 +
* sudo apt-get install git-core //This is to get the version control that cairo uses, it is called GIT
  
== Notes ==
+
'''Steps to make it happen'''
 +
* buildbot create-master ~/cairomaster
 +
* Put the [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/cairo-one-ubuntu-slave/master.cfg master.cfg] to the the created master
 +
* buildbot create-slave ~/cairoslave localhost:9876 cairoslave
 +
* buildbot start ~/cairomaster
 +
* buildbot start ~/cairoslave
 +
* firefox http://localhost:8020 //This is to be able to see the results of the build
 +
</blockquote>
  
 +
<blockquote>
 
=== Build Cairo manually ===
 
=== Build Cairo manually ===
 
* mkdir cairo & cd cairo
 
* mkdir cairo & cd cairo
Line 94: Line 234:
 
* sudo make install
 
* sudo make install
  
Running the tests and getting an index.html file with them
+
'''Running the tests and getting an index.html file with them'''
 
* make test //takes long time
 
* make test //takes long time
 
* cd test && make html
 
* cd test && make html
 
* firefox index.html
 
* firefox index.html
 
+
</blockquote>
=== 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]
 

Latest revision as of 21:55, 7 March 2008

Name

Cairo on Buildbot is a project to build the Cairo graphics library in an automated manner with Buildbot and be able to run tests and performance tests

Leader(s)

Adam Delyea
Armen Zambrano

Contributor(s)

Project News

  • Mar 06 2008 - Started writing cairobuild.py grouping steps and CairoTests class which generates summary
  • Feb 29 2008 - Why does the TESTS take so long on MacOS X? It is ridiculous!!
  • Feb 29 2008 - Added steps to build on MacOS X
  • Feb 16 2008 - Updated Cairo project page and first proper release
  • Feb 11 2008 - Steps are written but some issues have to fixed
  • Jan 19 2008 - Project Proposal from Vladimir Vukicevic.

Release

Requirements

Mar. 7th

and the blog post explaining a lot of details about how much has been done is here: (Sess14-Buildbot on Cairo)

  1. svn co http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/cairomaster/
  2. buildbot create-slave ./cairoslave localhost:9876 macslave slavepassword (change macslave for linuxslave when trying to run in Linux)
  3. buildbot start cairomaster
  4. buildbot start cairoslave
  5. firefox http://localhost:8020 //OR open it with any browser

Tasks

Task
Details
Priority
Contrib.
Status
Target
Link(s)
Build Cairo manually Manually build Cairo Med armenzg Done   Blog: Building Cairo
Buildbot and Cairo on Linux Build on my laptop Cairo and run tests; Missing perf tests High armenzg Done 15 Feb Blog: Buildbot with Cairo
Fix GIT and SUDO issue * Fixed by delete checked out source code and ./configure --prefix High armenzg Fixed 15 Feb
Write the steps for Mac Med cworth #cairo Done 29 Feb Sess14-Buildbot on Cairo
Write the steps for Windows Med   7 Mar  
Write cairobuild.py file This will centralize and group steps together as in mozbuild.py Med   7 Mar  
Run the "performance" steps Med      
Find out how to use PKG_CONFIG_PATH * PKG_CONFIG_PATH=(the --prefix value)+"/lib/pkgconfig"(where the .pc file is) Med Fixed Feb 29  
Build upon source changes in the GIT repository Med      
Try to use the GIT source class that buildbot has Med      
Package results and make them available Pass the results of "make test" and "make html" to the master and allow to download them Med      
Write a CSS file for the waterfall view   Med      
Email notifications? IRC notifications?   Med      

Problems

  • A lot of problems when trying to build on MacOS are mentioned here: Sess14-Buildbot on Cairo
  • The first time the command GIT CLONE works because there is nothing before that execution but the second run should be an update instead of a checkout. What could be the proper GIT command to have as the step?
I have decided to remove the checked out code and checkout the trunk before each build
  • I need to do SUDO MAKE INSTALL, but this requires user's input which breaks the automated concept. What could be the right step?
Used ./configure --prefix=/path/to/somewhere to avoid building somewhere where I require to have sudo privileges

Notes

These notes are for learning purposes and documentation

Feb. 15th release

Where will I put code and screenshots?

What has been released this week:

Steps to meet requirements

  • sudo apt-get install buildbot
  • sudo apt-get install git-core //This is to get the version control that cairo uses, it is called GIT

Steps to make it happen

  • buildbot create-master ~/cairomaster
  • Put the master.cfg to the the created master
  • buildbot create-slave ~/cairoslave localhost:9876 cairoslave
  • buildbot start ~/cairomaster
  • buildbot start ~/cairoslave
  • firefox http://localhost:8020 //This is to be able to see the results of the build

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