dash/doc/dependencies.md
fanquake 49fcd4ab64
Merge bitcoin/bitcoin#29066: Bump minimum required Boost version due to migration to C++20
49a90915aa3ee8e3a7e163f23a55de931faf8523 build: Bump minimum required Boost to 1.73.0 to support C++20 (Hennadii Stepanov)

Pull request description:

  Boost versions <1.73 have C++20-specific bugs that were fixed in the following commits:
  - 15fcf21356
  - 495c095dc0

  I tested [`libboost1.71-dev`](https://packages.ubuntu.com/focal/libboost1.71-dev) in Ubuntu 20.04 and Boost 1.71, 1.72, 1.73 in our depends build system.

  Closes https://github.com/bitcoin/bitcoin/issues/29063.

ACKs for top commit:
  fanquake:
    ACK 49a90915aa3ee8e3a7e163f23a55de931faf8523

Tree-SHA512: b8ebc08af85abfa3fda70961bd1136ee9e5149dd76a3f901e43acba624d231971873cba5cbf30837f9e5ab58790b8330f241a76cb76d8cf5dce5ad0cca33fba8
2024-10-07 15:13:14 -05:00

3.8 KiB

Dependencies

These are the dependencies currently used by Dash Core. You can find instructions for installing them in the build-*.md file for your platform.

Dependency Version used Minimum required CVEs Shared Bundled Qt library
Berkeley DB 4.8.30 4.8.x No
Boost 1.81.0 1.73.0 No
Clang * 5.0+ (C++17 support)
fontconfig 2.12.1 No Yes
FreeType 2.11.0 No Yes (Android only)
GCC 7+ (C++17 support)
glibc 2.28
HarfBuzz-NG Yes
libevent 2.1.12-stable 2.0.21 No
libnatpmp git commit 4536032... No
libpng Yes
Linux Kernel N/A 3.2.0
MiniUPnPc 2.2.2 No
PCRE Yes
Python (tests) 3.8
qrencode 3.4.4 No
Qt 5.15.11 5.11.3 No
SQLite 3.32.1 3.7.17
XCB Yes (Linux only)
systemtap (tracing) 4.8
xkbcommon Yes (Linux only)
ZeroMQ 4.3.1 4.0.0 No
zlib Yes

Note * : When compiling with -stdlib=libc++, the minimum supported libc++ version is 7.0.

Controlling dependencies

Some dependencies are not needed in all configurations. The following are some factors that affect the dependency list.

Options passed to ./configure

  • MiniUPnPc is not needed with --without-miniupnpc.
  • Berkeley DB is not needed with --disable-wallet or --without-bdb.
  • SQLite is not needed with --disable-wallet or --without-sqlite.
  • libnatpmp is not needed with --without-natpmp.
  • Qt is not needed with --without-gui.
  • If the qrencode dependency is absent, QR support won't be added. To force an error when that happens, pass --with-qrencode.
  • If the systemtap dependency is absent, USDT support won't compiled in.
  • ZeroMQ is needed only with the --with-zmq option.

Other

  • Not-Qt-bundled zlib is required to build the DMG tool from the libdmg-hfsplus project.