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

FreeBSD Manual Pages


home | help
POUDRIERE-BULK(8)	FreeBSD	System Manager's Manual	     POUDRIERE-BULK(8)

     poudriere bulk -- build a ready-to-export package tree

     poudriere bulk -a -j name [-CcFIikNnRrSTtvw] [-b name] [-B	name]
	       [-J maxjobs[:prebuildmaxjobs]] [-O overlay [[-O overlay2] ...]]
	       [-p tree] [-z set]
     poudriere bulk -f file [[-f file2]	...] -j	name [-CcFIikNnRrSTtvw]
	       [-b name] [-B name] [-J maxjobs[:prebuildmaxjobs]]
	       [-O overlay [[-O	overlay2] ...]]	[-p tree] [-z set]
     poudriere bulk -j name [-CcFIikNnRrSTtvw] [-b name] [-B name]
	       [-J maxjobs[:prebuildmaxjobs]] [-O overlay [[-O overlay2] ...]]
	       [-p tree] [-z set] origin [origin2 ...]

     This command makes	a ready-to-export package tree,	and fills it with bi-
     nary packages built from a	given list of ports.  During the build,	hit ^T
     to	send SIGINFO and show stats and	progress about the build.

     See the FLAVORS section in	poudriere(8) for supported flavors syntax.

     See the CUSTOMIZATION section in poudriere(8) to learn how	to build bi-
     nary packages with	options	that differ from defaults.

     poudriere will disable make jobs for packages not listed in
     poudriere.conf.  The number of jobs can be	controlled in make.conf	with
     the ports(7) flags	MAKE_JOBS_NUMBER and MAKE_JOBS_NUMBER_LIMIT.  Beware
     that there	is no global job control so each builder created from -J (or
     the default PARALLEL_JOBS)	will spawn as many jobs	as the ports framework

     -a	      Build all	ports in the tree with all flavors.

     -f	file  Build ports listed in the	file.

	      The path to the file has to be absolute.	Ports must be speci-
	      fied in the form of "category/port" and sh(1)-style comments are
	      allowed.	Multiple -f file arguments may be specified at once.

     -B	name  Specify which buildname to use.  By default YYYY-MM-DD_HH:MM:SS
	      will be used.  This can be used to resume	a previous build and
	      use the same log and URL paths.  Resuming	a build	will not retry
	      built/failed/skipped/ignored packages.

     -b	name  Specify the name of the binary package branch to use to prefetch
	      packages.	 Should	be "latest", "quarterly", "release_*", or url.
	      With this	option poudriere will first try	to fetch from the bi-
	      nary package repository specified	the binary package prior to do
	      the sanity check if the package does not already exist.

	      poudriere	will only use packages that:
	      +o	  come from a repository having	the same or older version of
	      +o	  do not have a	locally	fetched	package	already.
	      +o	  are not IGNORED.
	      +o	  match	the expected local version.
	      +o	  match	the expected ABI.
	      +o	  match	the expected runtime and library dependencies.
	      +o	  match	the expected OPTIONS when CHECK_CHANGED_OPTIONS	is en-
		  abled	(default: on).
	      +o	  The package is NOT listed in PACKAGE_FETCH_BLACKLIST
	      +o	  The package is NOT listed with -C, or	-c, when -t is used.
	      The -v flag can be used to show these decisions during build.
	      Specifing	twice will show	more details on	why some are skipped.


	      poudriere	has no way of determining differences outside of the
	      above list.  That	is, if the local ports framework, or port, has
	      custom patches or	special	WITH_FOO knobs (not OPTIONS) then it
	      is required to add its name into PACKAGE_FETCH_BLACKLIST.	 Oth-
	      erwise a package may be fetched and used that lacks the custom
	      patch or knob.


	      poudriere.conf.sample.  The entries in the lists will be matched
	      against package names without versions.

     -C	      Clean only the packages specified	on the command line or in the
	      file given by -f file.  Implies -c for -a.

     -c	      Clean all	previously built packages and logs.

     -F	      Fetch only from the original MASTER_SITES.  Skip FreeBSD mir-

     -I	      Advanced interactive mode.

	      Leave the	jail running with ports	installed after	building and
	      testing.	It is a	convenient way to do some additional testing.
	      See poudriere-jail(8) to learn how to stop a running poudriere

	      Similarly	to -i, the -I flag will	cause pkg.conf(5) to be	in-
	      stalled in the jail.

     -i	      Interactive mode.

	      Open an interactive shell	session	in the jail after the build is
	      done and before the clean-up.  It	is a convenient	way to do some
	      additional testing.

	      A	local pkg.conf(5) repository configuration will	be installed
	      to ${LOCALBASE}/etc/pkg/repos/local.conf so that pkg(8) can be
	      used with	any existing packages built for	the jail.  The default
	      FreeBSD repository will be disabled by default.

     -J	maxjobs[:prebuildmaxjobs]
	      Specify the number of jobs that will run in parallel for a bulk
	      build.  The optional second parameter, prebuildmaxjobs, is the
	      number of	jobs used for the steps	before the build, they are
	      more IO bound than CPU bound, so you may want to use a different
	      number.  The default pre-build value is 1.25 times the value of
	      the build	value.

     -j	name  Run the bulk build on the	jail named name.

     -k	      Do not consider failures to be fatal when	using -t.  Do not skip
	      dependent	ports on findings.  This flag is automatically set
	      when using -at.

     -N	      Do not build a package repository	when the build is completed.

     -NN      Do not commit the	package	repository when	the build is com-
	      pleted.  This can	be used	to do a	full test build	but have the
	      opportunity to delete it all rather than publish it.  The	pack-
	      ages will	be stored in a .building directory that	can be removed
	      manually,	otherwise the next build will resume from that direc-
	      tory.  Depends on	ATOMIC_PACKAGE_REPOSITORY being	set to yes.

     -n	      Dry run.	Show what would	be done, but do	not actually build or
	      delete any packages.

     -O	overlay
	      Specify an extra ports tree to use as an overlay.	 Multiple -O
	      overlay arguments	may be specified to stack them.

	      These overlays should be setup with poudriere-ports(8).

     -p	tree  Specify on which ports tree the bulk build will be done.
	      (Default:	"default")

     -R	      Clean RESTRICTED packages	after building.

     -r	      Recursively test all dependencies	as well.  This flag is auto-
	      matically	set when using -at.

     -S	      Do not recursively rebuild packages affected by other packages
	      requiring	incremental rebuild.  This may result in broken	pack-
	      ages if the ones they depend on are updated, are not ABI-compat-
	      ible, and	were not properly PORTREVISION bumped.

     -T	      Try building BROKEN ports	by defining TRYBROKEN for the build.

     -t	      Add some testing to the specified	ports.	Add -r to recursively
	      test all port dependencies as well.  When	used with -a then -rk
	      are implied.

     -v	      Enable additional	information to be shown	during the build.
	      Specify twice to enable debug output.

     -w	      Save WRKDIR on build failure.  The WRKDIR	will be	tarred up into

     -z	set   This specifies which SET to use for the build.  See the
	      CUSTOMIZATION section in poudriere(8) for	examples of how	this
	      is used.

     POUDRIERE_INTERACTIVE_NO_INSTALL  If specified, the package is not	in-
				       stalled in interactive mode.

     TERM			       Passed through for interactive modes.

     Example 1:	Starting a Bulk	Build

       The following example starts a bulk build of two	ports.

	 # poudriere bulk accessibility/sct www/firefox

     poudriere(8), poudriere-distclean(8), poudriere-image(8),
     poudriere-jail(8),	poudriere-logclean(8), poudriere-options(8),
     poudriere-pkgclean(8), poudriere-ports(8),	poudriere-queue(8),
     poudriere-status(8), poudriere-testport(8), poudriere-version(8)

     Baptiste Daroussin	<>
     Bryan Drewery <>

FreeBSD	13.0		       September 9, 2021		  FreeBSD 13.0


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

home | help