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>