poudriere bulk
—
build a ready-to-export package tree
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 ... |
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.
-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.
-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.
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
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 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.
-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 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.
- 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
⟨bapt@FreeBSD.org⟩
Bryan Drewery ⟨bdrewery@FreeBSD.org⟩