bpkg/0.15.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.15.0
license MIT
repository https://pkg.cppget.org/1/alpha
download bpkg-0.15.0.tar.gz
sha256 dc5e0fbfc617fbe70d6ba68a84f33aee6aedff9a04d487a86544a69631ea05f2
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 (6)

libodb ^2.5.0-b.23
libodb-sqlite ^2.5.0-b.23
libsqlite3 ^3.21.0ATTACH in transaction
libbutl ^0.15.0
libbpkg ^0.15.0
build2 ^0.15.0

Requires (1)

c++14

Builds

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

Changes

Version 0.15.0

  * New dependency declaration features:

    - Dependency groups, for example:

      depends: { libboost-any libboost-log libboost-uuid } ~1.77.0


    - Conditional dependencies, for example:

      depends: libposix-getopt ^1.0.0 ? ($cxx.target.class == 'windows')


    - Dependency alternatives, for example:

      depends: libmysqlclient >= 5.0.3 | libmariadb ^10.2.2


    - Reflected configuration variables, for example:

      depends: libposix-getopt ^1.0.0             \
               ? ($cxx.target.class == 'windows') \
	       config.hello.external_regex=true

      Or:

      depends: libmysqlclient >= 5.0.3 config.hello.db='mysql' | \
               libmariadb      ^10.2.2 config.hello.db='mariadb'


    - Dependency configuration, for example:

      depends:
      \
      libmariadb ^10.2.2
      {
        require
        {
          config.libmariadb.cache = true

          if ($cxx.target.class != 'windows')
            config.libmariadb.tls = true
        }
      }
      \

      Or:

      depends:
      \
      libmariadb ^10.2.2
      {
        prefer
        {
          config.libmariadb.cache = true

          config.libmariadb.buffer = ($config.libmariadb.buffer < 4096 \
                                      ? 4096                           \
                                      : $config.libmariadb.buffer)
        }

        accept ($config.libmariadb.buffer >= 4096)
      }
      \

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

    The implementation of these features led to bpkg becoming a special build
    system driver with repository metadata now containing the minimal subset
    of build system files for each package (called the package build system
    skeleton). See "Package Build System Skeleton" in the manual for details.

  * Support for JSON output in the bpkg-pkg-status command.

    See the --stdout-format option in bpkg-pkg-status(1) for details.

  * New --all, --all-pattern bpkg-pkg-drop options.

    These options can be used to drop all the held packages (in case of
    --all-pattern, limited to those that match a wildcard pattern).

  * New --keep-tmp common option.

    This option instructs bpkg not to remove its temporary directory at the
    end of the command execution and print its path if the verbosity level is
    2 or higher. This option is primarily useful for troubleshooting.

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