FreeBSD manual
download PDF document: poudriere-bulk.8.pdf
POUDRIERE-BULK(8) FreeBSD System Manager's Manual POUDRIERE-BULK(8)
NAME
poudriere bulk - build a ready-to-export package tree
SYNOPSIS
poudriere bulk -a -j name [-CcFIikNnRrSTtvw] [-B name] [-b branch]
[-J maxjobs[:prebuildmaxjobs]]
[-O overlay [-O overlay2 ...]] [-p tree] [-z set]
poudriere bulk -f file [-f file2 ...] -j name [-CcFIikNnRrSTtvw]
[-B name] [-b branch] [-J maxjobs[:prebuildmaxjobs]]
[-O overlay [-O overlay2 ...]] [-p tree] [-z set]
poudriere bulk -j name [-CcFIikNnRrSTtvw] [-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 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
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
package from the specified binary package repository.
o match the expected ABI.
o match the expected runtime and library dependencies.
o match the expected OPTIONS when CHECK_CHANGED_OPTIONS is
enabled (default: on).
o is NOT listed in PACKAGE_FETCH_BLACKLIST.
o 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.
-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
installed 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.
-NN Do not commit 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 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
automatically 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 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
${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
installed 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),
FreeBSD 14.2-RELEASE July 5, 2022 FreeBSD 14.2-RELEASE