Chapter 8 Advanced Topics

Table of Contents
8.1 Alternative Means of Creating Jail Sources and PortsTrees
8.2 Alternative Mounting
8.3 Distfile Caching
8.4 Using Ccache
8.5 Customizing the Environment
8.6 Updating port properties
8.7 Configuring port OPTIONS
8.8 Using Hooks
8.9 Creating Users
8.10 Automating/Queuing Port Builds
8.11 Running Tinderbox in a Jail
8.12 Mounting ${pb} over NFS
8.13 Cross-compiling ports

8.1 Alternative Means of Creating Jail Sources and PortsTrees

By default, Jails and PortsTrees are updated using csup (/usr/bin/csup). Every time a new Jail or PortsTree is created, they will inherit the default update type. This update type is stored in ${pb}/scripts/etc/env/GLOBAL as defaultUpdateType. The allowed values are SVN, CVSUP, CSUP, LFTP, USER, and NONE. For CVSUP and CSUP there is also a defaultUpdateHost. This can also be changed in ${pb}/scripts/etc/env/GLOBAL.

A Jail or PortsTree's update type can also be set when creating the Jail or PortsTree. To do this, specify the -u option to the appropriate create command. If the value of the update type is CVSUP, then /usr/local/bin/cvsup will be used to update the Jail or PortsTree. If the value is NONE, then no updates can be performed once the Jail or PortsTree is created. Instead, it is assumed these trees already exist in the appropriate format.

If the value is USER, then an update.sh script must be created under the Jail or PortsTree's root directory. This script will be called when an update is required. For example, if you have a Jail called 9.2, an executable update.sh script must be placed under ${pb}/jails/9.2. If you have a PortsTree called FreeBSD, an executable update.sh script must be placed under ${pb}/portstrees/FreeBSD.