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  binary
     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 framework 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  specified
	      in  the  form  of "category/port" and sh(1)-style comments are al-
	      lowed.  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 following:
	      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 pack-
	      age 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 en-
		  abled (default: verbose).
	      *   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 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.
	      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 mirrors.

     -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	testing.
	      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 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 num-
	      ber.  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  re-
	      moved manually, otherwise the next build will resume from that di-
	      rectory.	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 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 automati-
	      cally set when using -at.

     -S       Do not recursively rebuild packages affected by other packages re-
	      quiring 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  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.  Spec-
	      ify 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-pkg-
     clean(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.1.quarterly>

home | help