Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
PORTSHAKER.CONF(5)	  FreeBSD File Formats Manual	    PORTSHAKER.CONF(5)

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

     The file portshaker.conf contains descriptive information about which
     source ports trees	portshaker(8) has to be	merged into which target ports

     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 mu-
		      tually exclusive.

		      If the source ports tree name contains colons, they are
		      replaced by spaces and portshaker(8) will	pass these ex-
		      tra 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	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

		      (bool) Fail if a merge conflict is encountered.

		      (string) The ZFS filesystem poudriere(8) is configured
		      to use.

		      (string) The directory where poudriere(8)	ports direc-
		      tory are mounted,	usually	/usr/local/poudriere/ports.

		      (string) ZFS compression to use when creating a source
		      ports tree (require use_zfs to be	set).  Defaults	to

		      (string) ZFS compression to use when creating a target
		      ports tree (require use_zfs to be	set).  Defaults	to

     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 be-
		      fore 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.

     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.

     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

     ports_trees="tb_official tb_bsd_sharp tb_gnome tb_bsd_sharp_gnome"


     tb_bsd_sharp_merge_from="ports bsd_sharp"

     tb_gnome_merge_from="ports	gnomedevel"

     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)

     Romain Tartiere <>

FreeBSD	13.0		      September	30, 2008		  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help