The farbot configuration file is composed of five different section types:
The configuration uses an Apache-style syntax.
The Releases section defines
at least one Release within a farbot
configuration file.
Release
section must be named. ex: <Release
6.0>/dist/local.An optional list of options to pass to every package build for this release. BuildOptions for a given package override this global setting.. ex:
<PackageBuildOptions>
WITHOUT_X11 true
</PackageBuildOptions>The Partitions section
defines at least one PartitionMap
with at least one Partition within a
farbot configuration file.
PartitionMap
section must be named. ex: <PartitionMap
Standard>The PackageSets section
defines at least one PackageSets
within a farbot configuration file.
PackageSet
section must be named. ex: <PackageSet
Base>An optional list of options to pass to the package build. ex:
<BuildOptions>
WITH_COLLATION latin1_general_ci
WITH_OPTION true
</BuildOptions>The Installations section
defines at least one Installation
within a farbot configuration file.
Installation
section must be named. ex: <Installation
Database>Release name
defined in the Releases
section above. There may only be one release per
installation.PackageSet
names as defined in the
PackageSets
section.PartitionMap. ex:
ad0PartitionMap
name as defined in the
Partitions section above.
Only list one PartitionMap
per disk.An example configuration follows. The same configuration file
is included with the distribution as
farbot.conf.
#
# Releases
#
<Releases>
# Release Build Working Directory
BuildRoot /export/freebsd/build
# Install/NFS Directory
# Clients will load installation data from this directory
InstallRoot /export/freebsd/netinstall
# NFS/TFTP Server Host/IP
# The host exporting the installation data.
# Should probably be the local machine
NFSHost jumpstart.example.org
<Release 6.1>
# FreeBSD CVS Repository Mirror
CVSRoot /home/ncvs
# Release Tag
CVSTag RELENG_6_1
# LocalData will be copied into the release
# distribution. These files will be available at
# install time via the NFS mount, in the path /dist/local
LocalData /export/freebsd/postinst
# Enable creation of ISO install images
# Requires cdrtools
InstallCDs True
</Release>
<Release 6-STABLE>
# FreeBSD CVS Repository Mirror
CVSRoot /home/ncvs
# Release Tag
CVSTag RELENG_6
</Release>
</Releases>
#
# Partition Maps
#
<Partitions>
<PartitionMap Standard>
<Partition 1>
Mount /
Size 512MB
Type ufs
SoftUpdates no
</Partition>
<Partition 2>
Size 4GB
Type swap
</Partition>
<Partition 3>
Mount /var
Size 10GB
Type ufs
</Partition>
<Partition 4>
Mount /tmp
Size 1GB
Type ufs
</Partition>
<Partition 5>
# All remaining space
Mount /usr
Size 0GB
Type ufs
</Partition>
</PartitionMap>
</Partitions>
#
# Package Sets
#
<PackageSets>
<PackageSet Base>
<Package>
Port security/sudo
</Package>
</PackageSet>
<PackageSet Database>
<Package>
Port databases/mysql50-server
# If your build options modify the name
# of the resulting package, use the Package
# option to define the correct name.
#Package mysql50-server
<BuildOptions>
WITH_COLLATION latin1_general_ci
</BuildOptions>
</Package>
</PackageSet>
</PackageSets>
#
# Installation Types
#
<Installations>
<Installation Standard>
# Human-readable Description.
# Used in the installation-selection boot menu
Description Standard Installation
Release 6.0
PackageSet Base
PackageSet Database
NetworkDevice em0
<Disk ad0>
PartitionMap Standard
</Disk>
<PostInstall>
Command /dist/local/postinst/local.sh database
Command /dist/local/postinst/cleanup.sh everything
</PostInstall>
</Installation>
</Installations>