8.10 Automating/Queuing Port Builds

If you want to use Tinderbox to test many different ports one after the other you probably want tinderd. tinderd runs as a daemon and looks to see if something was added to the ports to build queue. You can add different ports for different builds with different priorities. tinderd will automatically pick up the port with the highest priority and starts building it. That repeats until the queue is empty. After the queue empties tinderd will sleep for a configurable amount of time (default: 120 seconds) thereafter it starts searching for new queue entries again. If you need tinderd to check the queue before the sleep timer has expired, send the tinderd process a SIGHUP:

# kill -HUP {PID of tinderd}

Where {PID of tinderd} is the process ID of the tinderd script as seen in the output of ps.

You can start tinderd (it will stay in foreground by default). If you want to run tinderd automatically when the system boots, copy the included ${pb}/etc/rc.d/tinderd script to /usr/local/etc/rc.d/. Be sure to check out the various rc.conf variables documented in this script before using it. If you installed Tinderbox using the port then the script will have been installed for you as tinderbox.

Note: The script used to be called tinderd.sh. If you have a /usr/local/etc/rc.d/tinderd.sh script, delete it, then copy the new tinderd script to the rc.d/ directory.

Now use:

# cd ${pb}/scripts && ./tc addBuildPortsQueueEntry -b {BUILD} \
  -d {PORT DIRECTORY}

To add a port to the queue for tinderd to automatically pick up, run a tinderbuild on it, and delete the entry after tinderbuild completion.

(Where {BUILD} is a Build name, and {PORT DIRECTORY} is a directory under {BUILDS}'s PortsTree (e.g. x11/gnome2).)

If the addBuildPortsQueueEntry command is run without the -d argument, then all ports for the specified {BUILD} will be added to the queue.