build2 package dependency manager

This package contains the build2 package dependency manager.

build2 is an open source, cross-platform toolchain for building and packaging
C++ code. Its aim is a modern build system and dependency manager for the C++
language that provide a consistent, out of the box interface across multiple
platforms and compilers. For more information see:


See the NEWS file for the user-visible changes from the previous release.

See the LICENSE file for the distribution conditions.

See... More
version 0.13.0-a.0.20200210111932.e222926ad474
license MIT
repository pkg:stage.build2.org
location https://stage.build2.org/1
download bpkg-0.13.0-a.0.20200210111932.e222926ad474.tar.gz
sha256 80bfaef18c5d726e69922df3bfe52525631f63642d14f281ad48ef27eca01065
project build2
url build2.org
doc-url build2.org/doc.xhtml
src-url git.build2.org/cgit/bpkg/tree/
topics package dependency managementbuild toolchain

Depends (4)

libodb [2.5.0-b.18.1 2.5.0-b.19)
libodb-sqlite [2.5.0-b.18.1 2.5.0-b.19)
libbutl [0.13.0-a.0.1 0.13.0-a.1)
libbpkg [0.13.0-a.0.1 0.13.0-a.1)

Requires (2)

? cliOnly required if changing .cli files



Version 0.12.0

  * Ability to specify the full package version constraint in the pkg-build

    For example:

    $ bpkg build "bar < 2.0.0"

    See bpkg-pkg-build(1) for details.

  * Support for default options files (aka tool config files).

    See the bpkg-default-options-files(1) help topic for background and the
    DEFAULT OPTIONS FILES section in each command's man pages for specifics.

  * Support for tests, examples, and benchmarks as separate packages.

    See the "tests, examples, benchmarks" section in the manual for details.

Version 0.11.0

  * The 'tags' package manifest value has been deprecated and replaced with
    'keywords' (list of space-separated words) and 'topics' (list of comma-
    separated, potentially multi-word concepts). For example:

    topics: xml parser, xml serializer
    keywords: sax dom

  * New 'description-type' package manifest value allows specifying the
    content type of the 'description' or 'description-file' value. Currently
    recognized values are:


  * New 'upstream-version' package manifest value allows preserving the
    original version for information.

  * The pkg-build command can now "build" a system package that doesn't have a
    stub provided its version is specified explicitly. For example:

    $ bpkg build ... ?sys:libsqlite3/* ?sys:libcurl/7.47.0

  * New cfg-create --existing|-e option allows initializing a bpkg
    configuration based on an existing build system configuration instead of
    creating a new one from scratch. For example:

    $ b create: build-clang/,cc config.cxx=clang++
    $ bpkg create -d build-clang --existing

  * New rep-info --deep option triggers the replacement of '*-file' package
    manifest values with the contents of the referenced files.

Version 0.10.0

  * Only minor improvements and bug fixes.

Version 0.9.0

  * Support for the ssh:// protocol in the git repository URLs.

  * The repository type can now be specified in the repository URL's scheme
    component. For example:

    $ bpkg build git+https://example.org/project

  * New 'builds' package manifest value for specifying the build configuration
    classes the package should or should not be built for. For example:

    builds: -windows

    Note also that the 'build-include' and 'build-exclude' pattern matching
    semantics has been adjusted to distinguish between single-component ('*')
    and multi-component ('**') matches. See the manual for details.

  * Support for the '$' dependent package's version special value in the
    package manifest dependency constraints.

    This mechanism is primarily useful when developing related packages that
    should track each other's versions exactly or closely. For example:

    name: sqlite3
    version: 3.18.2
    depends: libsqlite3 == $

    See the 'depends' package manifest value in the manual for details.

  * Support for passing configuration variables in the bpkg-pkg-build command.

  * New 'build-warning-email' and 'build-error-email' package manifest values
    for specifying alternative emails for different diagnostics levels. See
    the manual for details.

  * New --jobs|-j option for specifying the number of jobs to perform in

  * New --no-progress option for suppressing progress indicators.

  * New --deep option for the bpkg-pkg-verify command. See the command's man
    pages for details.

  * Values to the --openssl* options can now be qualified with the command
    they should apply to.

Version 0.8.0

  * New optional 'project' manifest value that specifies the project the
    package belongs to. See the manual for details.

  * Make package manifest 'url' and 'email' values optional.

  * Make default versioning epoch 1 instead of 0 (0 is now reserved for
    "foreign" packages).

  * New --manifest option for the pkg-verify command that allows extracting
    package's manifest file.

  * New --{repositories|packages}-file options for the rep-info command.

    This allows saving both manifests with a single invocation (which is the
    only way to guarantee they are consistent).

Version 0.7.0

  * Support for using git repositories as package repositories. See the
    bpkg-repository-types(1) help topic for details (structure, URL format).

  * Support for ~ and ^ version constraint operators. See the 'depends'
    package manifest value documentation in the manual for details.

  * The pkg-build command has been significantly reworked. In particular, it
    allows "building" repositories in addition to packages (primarily useful
    with version control-based repositories) and upgrading (--upgrade|-u) or
    patching (--patch|-p) immediate (--immediate|-i) or all (--recursive|-r)
    dependencies of a package. See bpkg-pkg-build(1) for details.

  * The pkg-status has been significantly reworked. In particular, it allows
    querying the status of immediate... More