6 Anatomy of a Build

A full build without any -no options performs the following operations in the specified order:

  1. An update of the current ports tree from the ZFS snapshot[1]

  2. An update of the running branch's src tree from the ZFS snapshot[1]

  3. Checks which ports do not have a SUBDIR entry in their respective category's Makefile[1]

  4. Creates the duds file, which is a list of ports not to build[1][2]

  5. Generates a fresh INDEX file[1][2]

  6. Sets up the nodes that will be used in the build[1][2]

  7. Builds a list of restricted ports[1][2]

  8. Builds packages (phase 1)[3]

  9. Performs another node setup[1]

  10. Builds packages (phase 2)[3]

Notes

[1]

Status of these steps can be found in ${arch}/${branch}/build.log as well as on stderr of the tty running the dopackages command.

[2]

If any of these steps fail, the build will stop cold in its tracks.

[3]

Status of these steps can be found in ${arch}/${branch}/journal. Individual ports will write their build logs to ${arch}/${branch}/logs/ and their error logs to ${arch}/${branch}/errors/.