Open main menu

CDOT Wiki β

Changes

Buildbot and Cairo

13,618 bytes added, 21:55, 7 March 2008
m
added prerequisites of project
== Project Name ==
Cairo on Buildbotis 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) ==[[User:Awdelyea| Adam Delyea]]<br />[[User:armenzg|Armen Zambrano]] == Contributor(s) == * [http://blog.vlad1.com/ Vladimir Vukicevic]* Ben Hearshum == 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 Description Proposal from Vladimir Vukicevic. == 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 # 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 testing suites on Buildbot.any browser </blockquote>
== Project LeaderTasks == <table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=3 cellspacing=0> <tr> <th style=" width: 30%;">'''''Task'''''<br /></th> <th style=" width: 35%;">'''''Details'''''<br /></th> <th style=" width: 5%;">'''''Priority'''''<br /></th> <th style=" width: 10%;">'''''Contrib.'''''<br /></th> <th style=" width: 5%;">'''''Status'''''<br /></th> <th style=" width: 5%;">'''''Target'''''<br /></th> <th style=" width: 10%;">'''''Link'''''(s) <br /></th> </tr> <tr style="height:42px;"> <td>Build Cairo manually</td> <td>Manually build Cairo</td> <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Med</td> <td style="text-align: center;">[[User:AwdelyeaArmenzg| Adam Delyeaarmenzg]]<br /td> <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td> <td style="text-align: center;">&nbsp;</td> <td>[http://armenzg.blogspot.com/2008/01/armenzg-sess7-build-cairo.html Blog: Building Cairo]</td> </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|Armenarmenzg]]</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 == 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) '''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) '''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
== Project Contributor(s) =='''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 ===* [httpmkdir cairo & cd cairo* git clone git://bloggit.vlad1cairographics.comorg/git/pixman* git clone git://git.cairographics.org/git/cairo* cd pixman && ./autogen.sh* ./configure* make* make install // Vladimir Vukicevic]I have a problem can I set up buildbot to use SUDO??
NOTE make[2]: only Project Leader(s) should add names hereEntering 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 You 'libpixman-1.la''can’t/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'' add your own name to the Contributor list.: Permission denied make[2]: *** [install-libLTLIBRARIES] Error 1
== Project Details ==* sudo make install //I had to use SUDO* whereis libpixman-1* cd ../cairo && ./autogen.sh* ./configure* make* make install //the same problem with SUDO
Automate Cairo builds with buildbot, and add in support for running make[2]: Entering directory `/home/armen/sandbox/cairo2/cairo/src' test suites with buildbot-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
== Project News ==* sudo make install
Jan 19 2008 - Project Proposal from Vladimir Vukicevic'''Running the tests and getting an index.html file with them'''* make test //takes long time* cd test && make html* firefox index.html</blockquote>
1
edit