summaryrefslogtreecommitdiff
path: root/Software/TinderboxWiki.mdwn
diff options
context:
space:
mode:
authorJoe Rayhawk <jrayhawk@freedesktop.org>2013-05-18 00:50:35 -0700
committerJoe Rayhawk <jrayhawk@freedesktop.org>2013-05-18 00:50:35 -0700
commit21564963c940b95d7f4838a856027166cc6b43f4 (patch)
tree18b0d95fb456bbf049328412c5d29332fb2fdc4f /Software/TinderboxWiki.mdwn
parent1f8c50b5c7798083684782f7f40e7b1b8b38b6bf (diff)
Giant markdown cleanup, notably fixing preformatted text
Diffstat (limited to 'Software/TinderboxWiki.mdwn')
-rw-r--r--Software/TinderboxWiki.mdwn90
1 files changed, 43 insertions, 47 deletions
diff --git a/Software/TinderboxWiki.mdwn b/Software/TinderboxWiki.mdwn
index 16e1e462..ecf45473 100644
--- a/Software/TinderboxWiki.mdwn
+++ b/Software/TinderboxWiki.mdwn
@@ -1,5 +1,3 @@
-
-
## Tinderbox
The concept of a tinderbox originated with the [[Mozilla|http://www.mozilla.org]] project, where it is extensively used to continually monitor the state of the development tree on [[many platforms|http://tinderbox.mozilla.org/showbuilds.cgi?tree=SeaMonkey]] simultaneously.
@@ -8,9 +6,10 @@ It consists of a server and one or more clients. The server maintains the uploa
The tinderbox allows a developer to quickly:
- * see if checked in changes break a build on some platform.
- * examine the log of the build for errors; logs are uploaded to the server about every 30 seconds during a build.
- * attach explanitory comments to a build.
+* see if checked in changes break a build on some platform.
+* examine the log of the build for errors; logs are uploaded to the server about every 30 seconds during a build.
+* attach explanitory comments to a build.
+
If the tree did not build on a client, you'll see by the red of its box for a build, and if it's most recently completed build failed, the column will be "flaming": the tree is on fire.
Tinderbox is a set of perl scripts, and runs on Linux, Unix, !OS/X, and Microsoft Windows.
@@ -27,26 +26,25 @@ Please perform significant check-ins early in the day whenever possible, and wat
New tinderboxes are easy to establish via [[the admin interface|http://tinderbox.anholt.net/tinderbox3/admin.pl]] and [[tinderbox.anholt.net|http://tinderbox.anholt.net]] is the current tinderbox being used by the monolithic Xorg distribution testing. The trees currently supported are
- * [[xorg|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=xorg]] - the Xorg modular code base
- * [[XMonolithic|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=XMonolithic]] - the Xorg monolithic code base
- * [[cairo|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=cairo]] - the [[cairo|http://www.cairographics.org/]] cairo vector graphics library
- * [[liboil|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=liboil]] - the [[liboil|http://liboil/freedesktop.org/]] liboil optimized inner loops library.
- * [[kaffe|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=kaffe]] - the [[kaffe|http://www.kaffe.org/]] Java VM
- * [[psas|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=psas]] - [[Portland State Aerospace Society|http://psas.pdx.edu/]]'s open-source rocket flight computer
-Let [[EricAnholt|EricAnholt]] know if you think a tinderbox would be useful for your project.
+* [[xorg|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=xorg]] - the Xorg modular code base
+* [[XMonolithic|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=XMonolithic]] - the Xorg monolithic code base
+* [[cairo|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=cairo]] - the [[cairo|http://www.cairographics.org/]] cairo vector graphics library
+* [[liboil|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=liboil]] - the [[liboil|http://liboil/freedesktop.org/]] liboil optimized inner loops library.
+* [[kaffe|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=kaffe]] - the [[kaffe|http://www.kaffe.org/]] Java VM
+* [[psas|http://tinderbox.anholt.net/tinderbox3/showbuilds.pl?tree=psas]] - [[Portland State Aerospace Society|http://psas.pdx.edu/]]'s open-source rocket flight computer
+
+Let [[EricAnholt]] know if you think a tinderbox would be useful for your project.
### CVS access to the tinderclient
You can either use your freedesktop.org account and SSH or use anonymous CVS with:
+ $ cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/sysadmin login
+ CVS password: <hit return>
+ $ cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/sysadmin co tinderclient
-[[!format txt """
-$ cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/sysadmin login
-CVS password: <hit return>
-$ cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/sysadmin co tinderclient
-"""]]
-Browse CVS with [[View CVS|http://cvs.freedesktop.org/sysadmin/]].
+Browse CVS with [[View CVS|http://cvs.freedesktop.org/sysadmin/]].
### Required software: xorg
@@ -143,36 +141,33 @@ Browse CVS with [[View CVS|http://cvs.freedesktop.org/sysadmin/]].
Installing a client is very easy.
- * find some machine you don't mind keeping busy with sufficient disk space.
- * download the current tinderclient scripts from CVS. I make no guarantees about whether CVS is necessarily sane, though if you are going to work on the scripts themselves, you should work from the CVS version of the scripts.
- * If using kaffe, comment the XMonolithic command line in run-client.sh and uncomment the kaffe one.
- * choose a short machine id for the build (so you don't use too much column space) which is useful to identify the machine/OS version you are running it on. Please use the format name-architecture (for example, anholt-i386 --[[EricAnholt|EricAnholt]]).
- * run "run-client.sh machine-id >& /dev/null". By default, the tinderclient tee's its output to a tinderclient.log file and standard output, so once you are up and running, you probably don't want to have it blathering on the screen constantly.
- * If you'd like to have your build use ccache or jikes if you have them installed, get [[EricAnholt|EricAnholt]] to fix up your machine configuration. ccache cuts build times in approximately half. jikes cuts kaffe builds down even more.
- * add an option to do a lndir'ed tree, to shorten the log of all the synthesized files.
- * if installing on OS X/Darwin you will need to create a link from gnumake to gmake 'ln -s /usr/bin/gnumake /usr/bin/gmake'
- * if tindering the xorg modular tree, you must copy xorg-macros.m4 from util/macros/ to /usr/share/aclocal, or your builds will all fail really really miserably.
+* find some machine you don't mind keeping busy with sufficient disk space.
+* download the current tinderclient scripts from CVS. I make no guarantees about whether CVS is necessarily sane, though if you are going to work on the scripts themselves, you should work from the CVS version of the scripts.
+* If using kaffe, comment the XMonolithic command line in run-client.sh and uncomment the kaffe one.
+* choose a short machine id for the build (so you don't use too much column space) which is useful to identify the machine/OS version you are running it on. Please use the format name-architecture (for example, anholt-i386 --[[EricAnholt]]).
+* run "run-client.sh machine-id >& /dev/null". By default, the tinderclient tee's its output to a tinderclient.log file and standard output, so once you are up and running, you probably don't want to have it blathering on the screen constantly.
+* If you'd like to have your build use ccache or jikes if you have them installed, get [[EricAnholt]] to fix up your machine configuration. ccache cuts build times in approximately half. jikes cuts kaffe builds down even more.
+* add an option to do a lndir'ed tree, to shorten the log of all the synthesized files.
+* if installing on OS X/Darwin you will need to create a link from gnumake to gmake 'ln -s /usr/bin/gnumake /usr/bin/gmake'
+* if tindering the xorg modular tree, you must copy xorg-macros.m4 from util/macros/ to /usr/share/aclocal, or your builds will all fail really really miserably.
+
The script will create a directory of the tree's name in whatever directory you are in when you run "run-client", and do a CVS checkout and build of the module specified in the tinderbox itself in a subdirectory of that. Once a day, it is supposed to do a "clobber" build, where the entire directory is deleted and the files checked out fresh, and performs a "make World". Once the initial build is complete, the script we use (confusingly also called !XMonolithic) will do just do a cvs update and another make, rather than a "make -k World".
-Since CVS is so broken, the xorg and probably XMonolith trees now always clobber, and never cvs up. You probably want to keep a mirror: start keeping one with rsync, and bug [[EricAnholt|EricAnholt]] to change your config; especially if you're running multiple clients.
+Since CVS is so broken, the xorg and probably XMonolith trees now always clobber, and never cvs up. You probably want to keep a mirror: start keeping one with rsync, and bug [[EricAnholt]] to change your config; especially if you're running multiple clients.
One way to run this is to place them in a detached screen:
+ # screen -d -m ./run-client.sh somebody-i386
-[[!format txt """
- # screen -d -m ./run-client.sh somebody-i386
-"""]]
You can then review and re-attach to them as follows:
+ # screen -list
+ There is a screen on:
+ 20464.pts-5.cl012 (Detached)
+ 1 Socket in /var/run/screen/S-root.
+
+ # screen -r 20464.pts-5.cl012
-[[!format txt """
- # screen -list
- There is a screen on:
- 20464.pts-5.cl012 (Detached)
- 1 Socket in /var/run/screen/S-root.
-
- # screen -r 20464.pts-5.cl012
-"""]]
Please update your tinderclient scripts regularly when there are changes.
If the build succeeds (it did not detect any lines with "***" in them in the logs), then you get a "green" on that client's timeline.
@@ -182,14 +177,15 @@ If the build succeeds (it did not detect any lines with "***" in them in the log
There are a number of features not yet implemented in freedesktop's tinderbox:
- * logins
- * Regression tests of XMonolithic
- * by use of bonsai (not yet operational on freedesktop.org) you can quickly see what changes have recently been checked in.
- * the blame column lets you quickly identify who likely broke the build by its identification of who recently checked in code.
- * be used to do binary builds that may be uploaded for distribution.
- * patches can be applied for testing.
- * other tinderboxes also need establishment: e.g. for the modular build.
- * the tinderbox client script can (potentially) be automatically updated to clients.
+* logins
+* Regression tests of XMonolithic
+* by use of bonsai (not yet operational on freedesktop.org) you can quickly see what changes have recently been checked in.
+* the blame column lets you quickly identify who likely broke the build by its identification of who recently checked in code.
+* be used to do binary builds that may be uploaded for distribution.
+* patches can be applied for testing.
+* other tinderboxes also need establishment: e.g. for the modular build.
+* the tinderbox client script can (potentially) be automatically updated to clients.
+
People interested in helping set up all of this would be greatly appreciated; I've filed bugs in bugzilla against tinderbox on these topics to keep track of them. If you want to work on one of them, assign the bug to yourself so we know who is working on them.