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

FreeBSD Manual Pages

  
 
  

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

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

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

DESCRIPTION
       This  command  makes  a ready-to-export package tree, and fills it with
       binary 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
       ALLOW_MAKE_JOBS_PACKAGES,   unless   ALLOW_MAKE_JOBS    is    set    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	frame-
       work allows.

SUBCOMMANDS
       -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.

OPTIONS
       -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 branch
		Fetch binary packages from a binary package repository instead
		of building them.  The branch argument can be one of the  fol-
		lowing:	 latest,  quarterly,  release_X	 (where	X is the minor
		version	of a release, e.g., "0"), or url.

		With this option poudriere will	first try to  fetch  a	binary
		package	from the specified binary package repository.

		poudriere will only use	packages that:
		   come from a	repository having the same or older version of
		    pkg.
		   do not have	a locally fetched package already.
		   are	not IGNORED.
		   match the expected local version.
		   match the expected ABI.
		   match the expected runtime and library dependencies.
		   match  the	expected OPTIONS when CHECK_CHANGED_OPTIONS is
		    enabled (default: on).
		   is NOT listed in PACKAGE_FETCH_BLACKLIST.
		   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.

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

		See	     PACKAGE_FETCH_BRANCH,	    PACKAGE_FETCH_URL,
		PACKAGE_FETCH_BLACKLIST,   and	 PACKAGE_FETCH_WHITELIST    in
		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-
		rors.

       -H	Create a repository where the package  filenames  contain  the
		short hash of the contents.

       -I	Advanced interactive mode.

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

		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 de-
		fault 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, or publish, the	package	 repository  when  the
		build  is completed.  This can be used to do a full test build
		but have the opportunity to delete it all rather than  publish
		it.  The packages will be stored in a .building	directory that
		can  be	removed	manually, otherwise the	next build will	resume
		from that directory.  Depends on ATOMIC_PACKAGE_REPOSITORY be-
		ing 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 poudriere-ports(8) tree to use	as an overlay.
		Multiple -O overlay arguments may be specified to stack	them.

       -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
		packages  if the ones they depend on are updated, are not ABI-
		compatible, 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	recur-
		sively	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 ${POUDRIERE_DATA}/wrkdirs.

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

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

       TERM				 Passed	through	for interactive	modes.

EXAMPLES
       Example 1: Starting a Bulk Build

	 The following example starts a	bulk build of two ports.

	   # poudriere bulk accessibility/sct www/firefox

SEE ALSO
       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-repo(8),      poudriere-status(8),	poudriere-testport(8),
       poudriere-version(8)

AUTHORS
       Baptiste	Daroussin <bapt@FreeBSD.org>
       Bryan Drewery <bdrewery@FreeBSD.org>

FreeBSD	ports 15.quarterly     November	10, 2025	     POUDRIERE-BULK(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=poudriere-bulk&sektion=8&manpath=FreeBSD+Ports+15.0.quarterly>

home | help