NAME

bpkg-pkg-build – build package

SYNOPSIS

bpkg pkg-build|build [options] ([scheme:]pkg[/ver] | file | dir/)...

DESCRIPTION

The pkg-build command builds one or more packages including all their prerequisites. Besides building new packages, this command is also used to upgrade or downgrade packages that already exists in the configuration.

Each package can be specified as just the name (pkg) with optional package version (ver) in which case the source code for the package will be automatically fetched from one of the repositories. See the bpkg-rep-add(1) and bpkg-rep-fetch(1) commands for more information on package repositories. If ver is not specified, then the latest available version will be fetched. To downgrade, the desired version must be specified explicitly.

A package name (pkg) can also be prefixed with a package scheme (scheme:). Currently the only recognized scheme is sys: which instructs pkg-build to configure the package as available from the system rather than building it from source. If the system package version (ver) is not specified, then it is considered to be unknown but satisfying any dependency constraint. Such a version is displayed as *. In certain cases you may want to indicate that a certain package is available from the system but only add it to the configuration if it is required by other packages being built. In this case you can use the ?sys: system scheme variant.

Alternatively, a package can be specified as either the path to the package archive (file) or to the package directory (dir/; note that it must end with a directory separator). See the bpkg-pkg-fetch(1) and bpkg-pkg-unpack(1) commands for more information on the semantics of specifying the package as an archive or a directory.

Packages that are specified explicitly on the command line will be held, that is, they will not be considered for automatic removal if they no longer have any dependents. Packages that are specified with the explicit package version (ver) or as an archive or directory, will, in addition, have their versions held, that is, they will not be automatically upgraded.

The pkg-build command also supports several options (described below) that allow you to control the amount of work that will be done.

PKG-BUILD OPTIONS

--yes|-y
Assume the answer to all prompts is yes.
--drop-prerequisite|-D
Drop without confirmation prerequsite packages that were automatically built and will no longer be necessary.
--keep-prerequisite|-K
Don't offer to drop prerequsite packages that were automatically built and will no longer be necessary.
--update-dependent|-U
Update without confirmation dependent packages that are reconfigured due to their prerequisites being upgraded or downgraded.
--leave-dependent|-L
Don't offer to update dependent packages that are reconfigured due to their prerequisites being upgraded or downgraded.
--print-only|-p
Print to STDOUT what would be done without actually doing anything.
--configure-only|-c
Configure all the packages but don't update.
--directory|-d dir
Assume configuration is in dir rather than in the current working directory.

COMMON OPTIONS

The common options are summarized below with a more detailed description available in bpkg-common-options(1).

-v
Print essential underlying commands being executed.
-V
Print all underlying commands being executed.
--quiet|-q
Run quietly, only printing error messages.
--verbose level
Set the diagnostics verbosity to level between 0 and 6.
--build path
The build program to be used to build packages.
--build-option opt
Additional option to be passed to the build program.
--fetch path
The fetch program to be used to download resources.
--fetch-option opt
Additional option to be passed to the fetch program.
--sha256 path
The sha256 program to be used to calculate SHA256 sums.
--sha256-option opt
Additional option to be passed to the sha256 program.
--tar path
The tar program to be used to extract package archives.
--tar-option opt
Additional option to be passed to the tar program.
--openssl path
The openssl program to be used for crypto operations.
--openssl-option opt
Additional option to be passed to the openssl program.
--auth type
Types of repositories to authenticate.
--trust fingerprint
Trust repository certificate with a SHA256 fingerprint.
--trust-yes
Assume the answer to all authentication prompts is yes.
--trust-no
Assume the answer to all authentication prompts is no.
--pager path
The pager program to be used to show long text.
--pager-option opt
Additional option to be passed to the pager program.
--options-file file
Read additional options from file.

BUGS

Send bug reports to the users@build2.org mailing list.