Package Building Procedures
Prev |  | Next

# 5 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 [*]

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

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

4. Creates the `duds` file, which is a list of ports not to build [*] [+]

5. Generates a fresh `INDEX` file [*] [+]

6. Sets up the nodes that will be used in the build [*] [+]

7. Builds a list of restricted ports [*] [+]

8. Builds packages (phase 1) [++]

9. Performs another node setup [+]

10. Builds packages (phase 2) [++]

[*] 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}`/make` (old codebase) or ``${arch}`/`${branch}`/journal` (new codebase). Individual ports will write their build logs to ``${arch}`/`${branch}`/logs` and their error logs to ``${arch}`/`${branch}`/errors`.

Formerly the docs tree was also checked out, however, it has been found to be unnecessary.

Prev | Home | Next
Starting the Build |  | Build Maintenance