mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-15 22:32:37 -03:00
86bf3ae3b5
d52f502b1e
Fix mock SQLiteDatabases (Andrew Chow)99309ab3e9
Allow disabling BDB in configure with --without-bdb (Andrew Chow)ee47f11f73
GUI: Force descriptor wallets when BDB is not compiled (Andrew Chow)71e40b33bd
RPC: Require descriptors=True for createwallet when BDB is not compiled (Andrew Chow)6ebc41bf9c
Enforce salvage is only for BDB wallets (Andrew Chow)a58b719cf7
Do not compile BDB things when USE_BDB is defined (Andrew Chow)b33af48210
Include wallet/bdb.h where it is actually being used (Andrew Chow) Pull request description: Adds a `--without-bdb` option to `configure` which disables the compilation of the BDB stuff. Legacy wallets will not be created when BDB is not compiled. A legacy-sqlite wallet can be loaded, but we will not create them. Based on #20156 to resolve the situation where both `--without-sqlite` and `--without-bdb` are provided. In that case, the wallet is disabled and `--disable-wallet` is effectively set. ACKs for top commit: laanwj: Code review ACKd52f502b1e
Tree-SHA512: 5a92ba7a542acc2e27003e9d4e5940e0d02d5c1f110db06cdcab831372bfd83e8d89c269caff31dd5bff062c1cf5f04683becff12bd23a33be731676f346553d
43 lines
3.1 KiB
Markdown
43 lines
3.1 KiB
Markdown
Dependencies
|
|
============
|
|
|
|
These are the dependencies currently used by Bitcoin 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](https://doc.qt.io/qt-5/configure-options.html#third-party-libraries) |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| Berkeley DB | [4.8.30](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) | 4.8.x | No | | |
|
|
| Boost | [1.70.0](https://www.boost.org/users/download/) | [1.58.0](https://github.com/bitcoin/bitcoin/pull/19667) | No | | |
|
|
| Clang | | [5.0+](https://releases.llvm.org/download.html) (C++17 support) | | | |
|
|
| Expat | [2.2.7](https://libexpat.github.io/) | | No | Yes | |
|
|
| fontconfig | [2.12.1](https://www.freedesktop.org/software/fontconfig/release/) | | No | Yes | |
|
|
| FreeType | [2.7.1](https://download.savannah.gnu.org/releases/freetype) | | No | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) (Android only) |
|
|
| GCC | | [7+](https://gcc.gnu.org/) (C++17 support) | | | |
|
|
| HarfBuzz-NG | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) |
|
|
| libevent | [2.1.11-stable](https://github.com/libevent/libevent/releases) | [2.0.21](https://github.com/bitcoin/bitcoin/pull/18676) | No | | |
|
|
| libpng | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) |
|
|
| librsvg | | | | | |
|
|
| MiniUPnPc | [2.0.20180203](https://miniupnp.tuxfamily.org/files) | | No | | |
|
|
| PCRE | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) |
|
|
| Python (tests) | | [3.6](https://www.python.org/downloads) | | | |
|
|
| qrencode | [3.4.4](https://fukuchi.org/works/qrencode) | | No | | |
|
|
| Qt | [5.9.8](https://download.qt.io/official_releases/qt/) | [5.5.1](https://github.com/bitcoin/bitcoin/issues/13478) | No | | |
|
|
| SQLite | [3.32.1](https://sqlite.org/download.html) | [3.7.17](https://github.com/bitcoin/bitcoin/pull/19077) | | | |
|
|
| XCB | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) (Linux only) |
|
|
| xkbcommon | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) (Linux only) |
|
|
| ZeroMQ | [4.3.1](https://github.com/zeromq/libzmq/releases) | 4.0.0 | No | | |
|
|
| zlib | [1.2.11](https://zlib.net/) | | | | No |
|
|
|
|
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 `--with-miniupnpc=no`.
|
|
* Berkeley DB is not needed with `--disable-wallet` or `--without-bdb`.
|
|
* SQLite is not needed with `--disable-wallet` or `--without-sqlite`.
|
|
* 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.
|