dash/doc/dependencies.md
Wladimir J. van der Laan 4459e60acc Merge #16352: build: prune dbus from depends
e8fabd9253400a7c3fe45b34bc572eb00ff5522d build: prune dbus from depends (fanquake)

Pull request description:

  Since #8210 (59d063d076), we've been passing `-dbus-runtime` when configuring Qt.

  ```
  qtbase-opensource-src-5.9.7 $ ./configure -h | grep -i dbus
    -no-dbus ............. Do not build the Qt D-Bus module
    -dbus-linked ......... Build Qt D-Bus and link to libdbus-1 [auto]
    -dbus-runtime ........ Build Qt D-Bus and dynamically load libdbus-1 [no]
  ```

  This means we don't actually seem to be using the `D-Bus` we build in depends. This was pointed out by theuni at the time, [here](https://github.com/bitcoin/bitcoin/pull/7993#issuecomment-223114395) and [here](https://github.com/bitcoin/bitcoin/pull/8210#issuecomment-226930545), but was never followed up. dongcarl also bought it up as part of #16150.

  I've tested building and running `bitcoin-qt` using depends on Debian. Needs further testing.

ACKs for top commit:
  laanwj:
    code review ACK e8fabd9253400a7c3fe45b34bc572eb00ff5522d

Tree-SHA512: 164e6e52b6f97c04aef42bd185e2a157bc1a42103840f9404c5a795749f45a8c2c35f35873395a3a56398b3cd5955496b90d9c885d929b434c9bc871695abe20
2023-03-29 21:01:56 +03:00

3.7 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.73.0 1.64.0 No
Clang * 5.0+ (C++17 support)
Expat 2.2.7 No Yes
fontconfig 2.12.1 No Yes
FreeType 2.7.1 No Yes (Android only)
GCC 7+ (C++17 support)
glibc 2.18
HarfBuzz-NG Yes
libevent 2.1.11-stable 2.0.21 No
libnatpmp git commit 4536032... No
libpng Yes
librsvg
MiniUPnPc 2.2.2 No
PCRE Yes
Python (tests) 3.5
qrencode 3.4.4 No
Qt 5.12.11 5.5.1 No
SQLite 3.32.1 3.7.17
XCB Yes (Linux only)
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.
  • ZeroMQ is needed only with the --with-zmq option.

Other

  • librsvg is only needed if you need to run make deploy on (cross-compilation to) macOS.
  • Not-Qt-bundled zlib is required to build the DMG tool from the libdmg-hfsplus project.