Difference between revisions of "Buildbot and Cairo"
m (added prerequisites of project) |
|||
(13 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | == | + | == 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 | + | == 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 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]) | ||
− | + | # 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> | ||
− | == | + | == Tasks == |
− | [[User: | + | |
− | [[User:armenzg| | + | <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:Armenzg|armenzg]]</td> | ||
+ | <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td> | ||
+ | <td style="text-align: center;"> </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|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"> </td> | ||
+ | <!-- Target --> <td style="text-align: center;">7 Mar</td> | ||
+ | <!-- Link --> <td> </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"> </td> | ||
+ | <!-- Target --> <td style="text-align: center;">7 Mar</td> | ||
+ | <!-- Link --> <td> </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"> </td> | ||
+ | <!-- Target --> <td style="text-align: center;"> </td> | ||
+ | <!-- Link --> <td> </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> </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"> </td> | ||
+ | <!-- Target --> <td style="text-align: center;"> </td> | ||
+ | <!-- Link --> <td> </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"> </td> | ||
+ | <!-- Target --> <td style="text-align: center;"> </td> | ||
+ | <!-- Link --> <td> </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"> </td> | ||
+ | <!-- Target --> <td style="text-align: center;"> </td> | ||
+ | <!-- Link --> <td> </td> | ||
+ | </tr> | ||
+ | <tr style="height:42px;"> | ||
+ | <!-- Task --> <td>Write a CSS file for the waterfall view</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"> </td> | ||
+ | <!-- Target --> <td style="text-align: center;"> </td> | ||
+ | <!-- Link --> <td> </td> | ||
+ | </tr> | ||
+ | <tr style="height:42px;"> | ||
+ | <!-- Task --> <td>Email notifications? IRC notifications?</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"> </td> | ||
+ | <!-- Target --> <td style="text-align: center;"> </td> | ||
+ | <!-- Link --> <td> </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 | ||
− | + | '''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 === | ||
+ | * 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 | ||
+ | </blockquote> |
Latest revision as of 20:55, 7 March 2008
Contents
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)
Contributor(s)
- 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 Proposal from Vladimir Vukicevic.
Release
Requirements
Mar. 7th
- The steps to build on Mac have been added to Seneca Hera Try Server Setup/buildbot-configs/
and the blog post explaining a lot of details about how much has been done is here: (Sess14-Buildbot on Cairo)
- 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
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?
- 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/ - Archived files
- http://matrix.senecac.on.ca/%7Eazambran/mozilla/screenshots/ - Screenshots (look for "cairo" in the filenames)
What has been released this week:
- master.cfg - It builds Cairo and runs automated tests on one linux machine
- buildbot-status-cairo.jpg - After build #8 (no tests at this point)
- 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
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
- 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