Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  PORTSHAKER.CONF (5)


portshaker.conf - format of the portshaker(8) configuration file


See Also


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:
  (Vt str) Base directory where portshaker(8) will fetch source ports trees.
ports_trees (Vt str) Set to the list of target ports trees to maintain.

A <target_ports_tree> or a <target_poudriere_tree> variable 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 component. This allowing some kind of factorisation for multiple 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 package 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.

  (Vt string) The ZFS filesystem poudriere(8) is configured to use.
  (string) The directory where poudriere(8) ports directory are mounted, usually /usr/local/poudriere/ports.
use_zfs (Vt 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 filesystems automatically (one per source ports tree); otherwise 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 created 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 (Vt int) Default verbosity level,
.Vt 0 if unspecified.


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
.Vt update or
.Vt merge .


To maintain a single ports tree with BSD# 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:

main_merge_from="ports redports:foo redports:bar"


make.conf(5), portshaker.d(5), portshaker(8), poudriere(8)


.An Romain Tarti�re Aq
Search for    or go to Top of page |  Section 5 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.