bpkg/0.14.0

[full]

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:

https://build2.org/

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.14.0
license MIT
repository https://pkg.cppget.org/1/alpha
download bpkg-0.14.0.tar.gz
sha256 e164c59b435864eba3c50dcf47d3328d7109e2a978a99f4e33905e3ee1c82b53
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 (5)

libodb ^2.5.0-b.21
libodb-sqlite ^2.5.0-b.21
libsqlite3 ^3.21.0ATTACH in transaction
libbutl ^0.14.0
libbpkg ^0.14.0

Requires (2)

c++14
? cliOnly required if changing .cli files

Builds

toolchain public-0.14.0
config windows_10-clang_13.0_llvm_msvc_16.11-static_O2 / x86_64-microsoft-win32-msvc14.2
timestamp 2021-11-28 14:41:59 UTC (03:11:52 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-clang_13.0_llvm_msvc_16.11_lld / x86_64-microsoft-win32-msvc14.2
timestamp 2021-11-28 14:41:54 UTC (03:11:57 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-clang_13.0_llvm_msvc_16.11-O2 / x86_64-microsoft-win32-msvc14.2
timestamp 2021-11-28 14:41:01 UTC (03:12:50 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-clang_13.0_llvm_msvc_16.11 / x86_64-microsoft-win32-msvc14.2
timestamp 2021-11-28 14:40:36 UTC (03:13:15 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0_libc++-O3 / x86_64-linux-gnu
timestamp 2021-11-27 23:36:40 UTC (18:17:11 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0_libc++-static_O3 / x86_64-linux-gnu
timestamp 2021-11-27 23:36:06 UTC (18:17:45 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0-static_O3 / x86_64-linux-gnu
timestamp 2021-11-27 23:35:52 UTC (18:17:59 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0_libc++ / x86_64-linux-gnu
timestamp 2021-11-27 23:35:33 UTC (18:18:18 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0 / x86_64-linux-gnu
timestamp 2021-11-27 23:34:57 UTC (18:18:54 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0-O3 / x86_64-linux-gnu
timestamp 2021-11-27 23:34:43 UTC (18:19:08 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-gcc_10.2_mingw_w64 / x86_64-w64-mingw32
timestamp 2021-11-27 20:42:52 UTC (21:10:59 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-gcc_10.2_mingw_w64-static_O2 / x86_64-w64-mingw32
timestamp 2021-11-27 20:41:52 UTC (21:11:59 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-gcc_10.2_mingw_w64-O2 / x86_64-w64-mingw32
timestamp 2021-11-27 20:40:52 UTC (21:12:59 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-gcc_11.2_homebrew-static_O3 / x86_64-apple-darwin20.5.0
timestamp 2021-11-27 19:54:33 UTC (21:59:18 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-clang_13.0 / x86_64-apple-darwin20.5.0
timestamp 2021-11-27 19:52:22 UTC (22:01:29 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-gcc_11.2_homebrew-O3 / x86_64-apple-darwin20.5.0
timestamp 2021-11-27 19:51:35 UTC (22:02:16 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-gcc_11.2_homebrew / x86_64-apple-darwin20.5.0
timestamp 2021-11-27 19:51:13 UTC (22:02:38 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-clang_13.0-static_O3 / x86_64-apple-darwin20.5.0
timestamp 2021-11-27 19:50:33 UTC (22:03:18 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-clang_13.0-O3 / x86_64-apple-darwin20.5.0
timestamp 2021-11-27 19:50:10 UTC (22:03:41 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-clang_12.0 / x86_64-apple-darwin20.5.0
timestamp 2021-11-27 19:49:03 UTC (22:04:48 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_16.11-static_O2 / x86_64-microsoft-win32-msvc14.2
timestamp 2021-11-27 19:25:00 UTC (22:28:51 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_16.11-O2 / x86_64-microsoft-win32-msvc14.2
timestamp 2021-11-27 19:23:45 UTC (22:30:06 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_16.11 / x86_64-microsoft-win32-msvc14.2
timestamp 2021-11-27 19:23:07 UTC (22:30:44 hours ago)
result success | log | rebuild
toolchain public-0.14.0
config freebsd_13-clang_11.0-O3 / x86_64-freebsd13.0
timestamp 2021-11-27 17:04:58 UTC (01 00:48:52 days ago)
result success | log | rebuild
toolchain public-0.14.0
config freebsd_13-clang_11.0-static_O3 / x86_64-freebsd13.0
timestamp 2021-11-27 17:02:08 UTC (01 00:51:43 days ago)
result success | log | rebuild
toolchain public-0.14.0
config freebsd_13-clang_11.0 / x86_64-freebsd13.0
timestamp 2021-11-27 17:01:24 UTC (01 00:52:27 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_11.2-static_O3 / x86_64-linux-gnu
timestamp 2021-11-27 16:57:42 UTC (01 00:56:09 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_11.2-O3 / x86_64-linux-gnu
timestamp 2021-11-27 16:54:46 UTC (01 00:59:05 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-clang_12.0_msvc_msvc_16.11 / x86_64-microsoft-win32-msvc14.2
timestamp 2021-11-27 16:54:39 UTC (01 00:59:12 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_11.2 / x86_64-linux-gnu
timestamp 2021-11-27 16:54:24 UTC (01 00:59:27 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10_devmode-msvc_16.11 / x86_64-microsoft-win32-msvc14.2
timestamp 2021-11-27 16:52:29 UTC (01 01:01:22 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_16.9 / x86_64-microsoft-win32-msvc14.2
timestamp 2021-11-27 16:49:24 UTC (01 01:04:27 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_12.0 / x86_64-linux-gnu
timestamp 2021-11-27 16:47:34 UTC (01 01:06:17 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_12.0_libc++ / x86_64-linux-gnu
timestamp 2021-11-27 16:45:33 UTC (01 01:08:18 days ago)
result success | log | rebuild
toolchain public-0.14.0
config freebsd_12-clang_10.0 / x86_64-freebsd12.2
timestamp 2021-11-27 16:44:52 UTC (01 01:08:58 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_10.2 / x86_64-linux-gnu
timestamp 2021-11-27 16:40:18 UTC (01 01:13:33 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_11.0_libc++ / x86_64-linux-gnu
timestamp 2021-11-27 11:24:16 UTC (01 06:29:35 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_7.0_libc++ / x86_64-linux-gnu
timestamp 2021-11-27 11:24:12 UTC (01 06:29:39 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_11.0 / x86_64-linux-gnu
timestamp 2021-11-27 11:23:34 UTC (01 06:30:17 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_9.0_libc++ / x86_64-linux-gnu
timestamp 2021-11-27 11:22:54 UTC (01 06:30:57 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_6.0_libc++ / x86_64-linux-gnu
timestamp 2021-11-27 11:22:24 UTC (01 06:31:27 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_9.0 / x86_64-linux-gnu
timestamp 2021-11-27 11:22:15 UTC (01 06:31:36 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_7.0 / x86_64-linux-gnu
timestamp 2021-11-27 11:22:13 UTC (01 06:31:38 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_8.0_libc++ / x86_64-linux-gnu
timestamp 2021-11-27 11:22:13 UTC (01 06:31:38 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-gcc_7.4 / x86_64-linux-gnu
timestamp 2021-11-27 11:21:59 UTC (01 06:31:52 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_6.0 / x86_64-linux-gnu
timestamp 2021-11-27 11:21:47 UTC (01 06:32:04 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_8.0 / x86_64-linux-gnu
timestamp 2021-11-27 11:21:32 UTC (01 06:32:19 days ago)
result success | log | rebuild
toolchain public-0.14.0
config freebsd_11-clang_10.0 / x86_64-freebsd11.4
timestamp 2021-11-27 11:21:09 UTC (01 06:32:42 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_10.0_libc++ / x86_64-linux-gnu
timestamp 2021-11-27 11:20:38 UTC (01 06:33:13 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_10.0 / x86_64-linux-gnu
timestamp 2021-11-27 11:19:59 UTC (01 06:33:52 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-gcc_8.4 / x86_64-linux-gnu
timestamp 2021-11-27 11:18:56 UTC (01 06:34:55 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_8-gcc_4.9 / x86_64-linux-gnu
timestamp 2021-11-27 11:18:13 UTC (01 06:35:38 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_9.3 / x86_64-linux-gnu
timestamp 2021-11-27 11:16:52 UTC (01 06:36:59 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_ubuntu_16.04-clang_3.7_libc++ / x86_64-linux-gnu
timestamp 2021-11-27 11:16:45 UTC (01 06:37:06 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_14.3 / x86_64-microsoft-win32-msvc14.0
timestamp 2021-11-27 11:10:43 UTC (01 06:43:08 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_11.2-ndebug_O3 / x86_64-linux-gnu
timestamp 2021-11-27 10:37:00 UTC (01 07:16:51 days ago)
result warning (update) | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_15.9 / x86_64-microsoft-win32-msvc14.1
timestamp 2021-11-27 10:04:21 UTC (01 07:49:30 days ago)
result success | log | rebuild

Changes

Version 0.14.0

  * Support for configuration types, configuration linking, and build-time
    dependencies.

    Configurations can now be linked with each other to allow a package to be
    built in one configuration while its dependencies -- in one or more linked
    configurations. This can be used to create a "base" configuration with
    common dependencies that are shared between multiple configurations.

    Configurations now also have types with the three predefined types being
    `target` (the default) `host` (used for build-time dependencies), and
    `build2` (used for build system modules). This mechanism together with
    configuration linking is used to provide separate configurations for
    build-time dependencies, for example, tools that need to be executed or
    build system modules that need to be loaded during the build.

    If during dependency resolution a build-time dependency is encountered and
    there is no build configuration of a suitable type linked with the target
    configuration, then a private configuration of the needed type is
    automatically created and linked.

    New relevant commands: bpkg-cfg-{link,unlink,info}.

    Command with relevant changes (new options, etc): bpkg-cfg-create,
    bpkg-pkg-{build,status}.

    See bpkg-cfg-create(1) for details on this functionality.

  * Tests, examples, and benchmark packages can now also be run-time or build-
    time.

    See the `tests`, `examples`, and `benchmarks` package manifest values for
    details.

  * Two new pre-defined automated build bot requirements: `bootstrap` (package
    is a build system module that requires bootstrapping) and `host` (package
    is normally used as build-time dependency and should be built in a host
    configuration).

    See the `requires` package manifest value for details.

  * Configuration of an external package is now preserved between upgrades and
    downgrades.

    The same behavior for normal packages is still a TODO. The old behavior
    can be achieved with the new --disfigure bpkg-pkg-build option that forces
    a from-scratch reconfiguration.

  * New `min-bpkg-version` repositories manifest value that allows specifying
    the minimum supported bpkg version.

    See also the new --min-bpkg-version bpkg-rep-create option.

  * Change of the `build-email` package manifest value semantics.

    Now build result notifications are only sent if this value is explicitly
    specified (before we used to fallback to `email`).

  * New --immediate|-i and --recursive|-r bpkg-pkg-{update,clean} options.

    These options can be used to additionally update or clean immediate or all
    dependencies of a package, respectively.

  * New --all-pattern bpkg-pkg-{update,clean,test,install,uninstall} option.

    This option can be used to perform the command on all the held packages
    that match a wildcard pattern.

  * New --rebuild-checksum bpkg-pkg-build option.

    This option can be used to avoid rebuilds if the result of a dependency
    resolution for a package has not changed.

  * New --noop-exit bpkg-pkg-build option.

    This option can be used to request a distinct exit code if the build is
    a noop (performs no new package builds, upgrades, etc).

  * New --output-{root,purge} bpkg-pkg-checkout and --checkout-{root,purge}
    bpkg-pkg-build options.

  * New --keep-config bpkg-pkg-disfigure option.

  * New BPKG_DEF_OPT environment variable that can be used to suppress loading
    of default options files.

Version 0.13.0

  * The SPDX License Expression is now the default scheme for the 'license'
    package manifest value.

    See the "license" section in the manual for details.

  * New --pkg-proxy common option.

    This option specifies the proxy server to use when fetching package
    manifests and archives from remote pkg repositories. See the option
    documentation in bpkg-common-options(1) for details.

  * External test packages can now have their own build constraints.

Version 0.12.0

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

    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.... More