Chapter 7 Troubleshooting

If you encounter problems with Tinderbox, it helps to see what is going on inside a Build. Tinderbox operational logs can be found under ${pb}/builds/{BUILD} (where {BUILD} is the Build name). This is where tinderbuild output should be redirected (see Chapter 5). The make.0 and make.1 logs contain the initial buildsetup for each port. The reason there are two logs is that tinderbuild runs in two phases. The second build phase is identical to the first, and is run to catch any transient problems that may have occurred in the first phase.

The full build log of each port will be copied to ${pb}/logs/{BUILD} (where {BUILD} is the Build name). If the port failed to build successfully, the log will also be copied to ${pb}/errors/{BUILD} (where {BUILD} is the Build name).

Sometimes, the log alone is not sufficient for figuring out why a port failed to build. In such cases, one must also see the port's work directory. To have Tinderbox save this, create an empty file called .keep in the port's directory, and the work directory will be tarred, compressed, and copied to ${pb}/wrkdirs/{BUILD} (where {BUILD} is the Build name).

When it becomes too difficult to figure out the problem based on the wrkdir, it may become necessary to access the Build itself. To do this, touch a file called .sleepme in the port's directory. The moment the .sleepme file is detected by the build system, the port build will suspend just before executing make build. You can access the Build with the command:

# ./tc enterBuild -b {BUILD} -d {PORT_DIRECTORY}

When you have finished, remove the .sleepme file, and the port build will continue.