The goal is to detect build issues/conflicts of Gentoo Linux packages. For that about a dozen sandbox'ed Gentoo images are running in parallel. Each image is setup from a recent stage3 tarball as an arbitrary combination of ~amd64 + profile + USE flag set. Within each image all Gentoo packages are in a randomized order scheduled to be installed.
Setup of images is done by setup_img.sh. Then watch the status:
whatsup.sh -dcp
whatsup.sh -otl
The file ~tinderbox/tb/findings/ALREADY_CAUGHT holds reported findings. A new finding is send via email to the user specified by the variable MAILTO. The Gentoo bug tracker can be searched for related bugs using check_bgo.sh. If not reported a finding can be filed using bgo.sh.
Create the user tinderbox, which :
- must not be allowed to edit files under /opt/tb/
- needs to be granted to read/execute the scripts under /opt/tb/bin/
- must have read/write permissions for files under ~tinderbox/tb/
- must not be allowed to read the file under /opt/tb/sdata/.
Create in its HOME the directories: ./distfiles/, ./img/, ./logs/, ./run/ and ./tb/. Clone this Git repository or unpack a release artefact. Move ./conf, ./data and ./patches to ~tinderbox/tb/. Move ./bin and ./sdata to /opt/tb/ and set ownership to root.
Edit the credentials in ssmtp.conf.sample and strip away the suffix .sample from the file. Grant to the user tinderbox these sudo rights:
tinderbox ALL=(ALL) NOPASSWD: /opt/tb/bin/bwrap.sh,/opt/tb/bin/setup_img.sh,/opt/tb/bin/house_keeping.sh,/opt/tb/bin/kill_img.sh,/opt/tb/bin/retest.sh,/opt/tb/bin/collect_data.sh,/usr/sbin/emaint
I missed the point of no return to switch from bash script to Python when I started this project.