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]



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


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


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/.