PORTSHAKER.CONF(5) BSD File Formats Manual PORTSHAKER.CONF(5)NAMEportshaker.conf — format of the portshaker(8) configuration file
DESCRIPTION
The file portshaker.conf contains descriptive information about which
source ports trees portshaker(8) has to be merged into which target ports
trees.
Options are set with “name=value” assignments that use sh(1) syntax. The
following list provides a name and short description for each variable
that can be set in the portshaker.conf file:
mirror_base_dir (str) Base directory where portshaker(8) will fetch
source ports trees.
ports_trees (str) Set to the list of target ports trees to maintain.
A ⟨target⟩_ports_tree or a ⟨target⟩_poudriere_tree vari‐
able must be set to tell portshaker(8) where the ports
trees has to be merged to and a ⟨target⟩_merge_from
variable must be set to the list of source ports trees
to merge from.
When specifying a ⟨target⟩_ports_tree, it should be set
to the full path of the directory where the target ports
tree is located.
When specifying a ⟨target⟩_poudriere_tree, it should be
set to the name of the ports tree that will be later-on
used with poudriere(8).
⟨target⟩_ports_tree and ⟨target⟩_poudriere_tree are
mutually exclusive.
If the source ports tree name contains colons, they are
replaced by spaces and portshaker(8) will pass these
extra argument to the script named by the first compo‐
nent. This allowing some kind of factorisation for mul‐
tiple sources in a single repository.
If a source ports tree is known to provide ports that
are already provided in another ports tree, and while
both ports provide the same version of a software pack‐
age they do not contain the same files, portshaker(8)
can be told to automatically install the updated ports
without prompting the user by appending an exclamation
mark after the source ports tree name.
Alternatively, appending a plus sign after the source
ports tree name will, regardless of version, install or
replace matching files in the target port tree whilst
preserving any pre-existing non matching port files.
This is useful when the source ports tree contains an
incomplete subset of files for instance only local
patches.
poudriere_dataset
(string) The ZFS filesystem poudriere(8) is configured
to use.
poudriere_ports_mountpoint
(string) The directory where poudriere(8) ports direc‐
tory are mounted, usually /usr/local/poudriere/ports.
use_zfs (bool) Whether to use ZFS for cloning the first source
ports tree to the target ports tree.
When set, the mirror_base_dir directory should be a ZFS
filesystem for portshaker(8) to create new ZFS filesys‐
tems automatically (one per source ports tree); other‐
wise the ZFS filesystem shall be created by the user
before running portshaker(8) for the first time.
A ⟨target⟩_zfs_dataset variable can be used to control
the ZFS dataset used for the filesystem. By default, a
dataset with the name of the target ports tree is cre‐
ated as a child of the dataset of the target ports
tree's parent directory's dataset (i.e. if the /usr
filesystem's dataset is data/foo, then the dataset for
the /usr/ports directory will be data/foo/ports). This
requires the target ports tree's parent directory to be
a ZFS filesystem.
When using this option, you may want to set DISTDIR and
PACKAGES in /etc/make.conf in order to avoid lossing
distfiles and packages each time you merge your target
ports tree.
verbose (int) Default verbosity level, 0 if unspecified.
Hooking
Hooks for portshaker(8) can be defined in portshaker.conf as functions
named ⟨port_tree⟩_pre⟨action⟩() and ⟨port_tree⟩_post⟨action⟩() where
action is one of update or merge.
EXAMPLES
To maintain a single ports tree with BSD# ports:
ports_trees="main"
main_ports_tree="/usr/ports"
main_merge_from="ports bsd_sharp"
To configure a tinderbox with official ports tree (tb_official), a second
one with BSD# ports tree (tb_bsd_sharp), a third one with GNOME-devel
ports tree (tb_gnome) and a last one with both upcomming BSD# and GNOME
(tb_bsd_sharp_gnome):
ports_trees="tb_official tb_bsd_sharp tb_gnome tb_bsd_sharp_gnome"
tb="/usr/local/tinderbox/"
tb_official_ports_tree="${tb}/portstrees/FreeBSD/ports"
tb_official_merge_from="ports"
tb_bsd_sharp_ports_tree="${tb}/portstrees/BSD-sharp/ports"
tb_bsd_sharp_merge_from="ports bsd_sharp"
tb_gnome_ports_tree="${tb}/portstrees/GNOME/ports"
tb_gnome_merge_from="ports gnomedevel"
tb_bsd_sharp_gnome_ports_tree="${tb}/portstrees/BSD-sharp-gnome/ports"
tb_bsd_sharp_gnome_merge_from="ports bsd_sharp gnomedevel"
To merge multiples redports sources in a single target ports tree:
ports_trees="main"
main_ports_tree="/usr/ports"
main_merge_from="ports redports:foo redports:bar"
SEE ALSOmake.conf(5), portshaker.d(5), portshaker(8), poudriere(8)AUTHORS
Romain Tarti�re ⟨romain@blogreen.org⟩
BSD September 30, 2008 BSD