mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-08 10:31:50 -05:00
doc: rework dependencies.md
This commit is contained in:
parent
310ba92494
commit
893e18059f
4 changed files with 58 additions and 128 deletions
|
@ -4,35 +4,6 @@
|
||||||
|
|
||||||
This guide describes how to build bitcoind, command-line utilities, and GUI on FreeBSD.
|
This guide describes how to build bitcoind, command-line utilities, and GUI on FreeBSD.
|
||||||
|
|
||||||
## Dependencies
|
|
||||||
|
|
||||||
The following dependencies are **required**:
|
|
||||||
|
|
||||||
Library | Purpose | Description
|
|
||||||
----------------------------------------------------------------------|------------|----------------------
|
|
||||||
[autoconf](https://svnweb.freebsd.org/ports/head/devel/autoconf/) | Build | Automatically configure software source code
|
|
||||||
[automake](https://svnweb.freebsd.org/ports/head/devel/automake/) | Build | Generate makefile (requires autoconf)
|
|
||||||
[libtool](https://svnweb.freebsd.org/ports/head/devel/libtool/) | Build | Shared library support
|
|
||||||
[pkgconf](https://svnweb.freebsd.org/ports/head/devel/pkgconf/) | Build | Configure compiler and linker flags
|
|
||||||
[git](https://svnweb.freebsd.org/ports/head/devel/git/) | Clone | Version control system
|
|
||||||
[gmake](https://svnweb.freebsd.org/ports/head/devel/gmake/) | Compile | Generate executables
|
|
||||||
[boost-libs](https://svnweb.freebsd.org/ports/head/devel/boost-libs/) | Utility | Library for threading, data structures, etc
|
|
||||||
[libevent](https://svnweb.freebsd.org/ports/head/devel/libevent/) | Networking | OS independent asynchronous networking
|
|
||||||
|
|
||||||
|
|
||||||
The following dependencies are **optional**:
|
|
||||||
|
|
||||||
Library | Purpose | Description
|
|
||||||
---------------------------------------------------------------------------|------------------|----------------------
|
|
||||||
[db5](https://svnweb.freebsd.org/ports/head/databases/db5/) | Berkeley DB | Wallet storage (only needed when wallet enabled)
|
|
||||||
[qt5](https://svnweb.freebsd.org/ports/head/devel/qt5/) | GUI | GUI toolkit (only needed when GUI enabled)
|
|
||||||
[libqrencode](https://svnweb.freebsd.org/ports/head/graphics/libqrencode/) | QR codes in GUI | Generating QR codes (only needed when GUI enabled)
|
|
||||||
[libzmq4](https://svnweb.freebsd.org/ports/head/net/libzmq4/) | ZMQ notification | Allows generating ZMQ notifications (requires ZMQ version >= 4.0.0)
|
|
||||||
[sqlite3](https://svnweb.freebsd.org/ports/head/databases/sqlite3/) | SQLite DB | Wallet storage (only needed when wallet enabled)
|
|
||||||
[python3](https://svnweb.freebsd.org/ports/head/lang/python3/) | Testing | Python Interpreter (only needed when running the test suite)
|
|
||||||
|
|
||||||
See [dependencies.md](dependencies.md) for a complete overview.
|
|
||||||
|
|
||||||
## Preparation
|
## Preparation
|
||||||
|
|
||||||
### 1. Install Required Dependencies
|
### 1. Install Required Dependencies
|
||||||
|
@ -43,6 +14,8 @@ pkg install autoconf automake boost-libs git gmake libevent libtool pkgconf
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
See [dependencies.md](dependencies.md) for a complete overview.
|
||||||
|
|
||||||
### 2. Clone Bitcoin Repo
|
### 2. Clone Bitcoin Repo
|
||||||
Now that `git` and all the required dependencies are installed, let's clone the Bitcoin Core repository to a directory. All build scripts and commands will run from this directory.
|
Now that `git` and all the required dependencies are installed, let's clone the Bitcoin Core repository to a directory. All build scripts and commands will run from this directory.
|
||||||
``` bash
|
``` bash
|
||||||
|
@ -84,6 +57,14 @@ pkg install libqrencode
|
||||||
```
|
```
|
||||||
---
|
---
|
||||||
|
|
||||||
|
#### Notifications
|
||||||
|
###### ZeroMQ
|
||||||
|
|
||||||
|
Bitcoin Core can provide notifications via ZeroMQ. If the package is installed, support will be compiled in.
|
||||||
|
```bash
|
||||||
|
pkg install libzmq4
|
||||||
|
```
|
||||||
|
|
||||||
#### Test Suite Dependencies
|
#### Test Suite Dependencies
|
||||||
There is an included test suite that is useful for testing code changes when developing.
|
There is an included test suite that is useful for testing code changes when developing.
|
||||||
To run the test suite (recommended), you will need to have Python 3 installed:
|
To run the test suite (recommended), you will need to have Python 3 installed:
|
||||||
|
|
|
@ -6,40 +6,6 @@ This guide describes how to build bitcoind, command-line utilities, and GUI on m
|
||||||
|
|
||||||
**Note:** The following is for Intel Macs only!
|
**Note:** The following is for Intel Macs only!
|
||||||
|
|
||||||
## Dependencies
|
|
||||||
|
|
||||||
The following dependencies are **required**:
|
|
||||||
|
|
||||||
Library | Purpose | Description
|
|
||||||
-----------------------------------------------------------|------------|----------------------
|
|
||||||
[automake](https://formulae.brew.sh/formula/automake) | Build | Generate makefile
|
|
||||||
[libtool](https://formulae.brew.sh/formula/libtool) | Build | Shared library support
|
|
||||||
[pkg-config](https://formulae.brew.sh/formula/pkg-config) | Build | Configure compiler and linker flags
|
|
||||||
[boost](https://formulae.brew.sh/formula/boost) | Utility | Library for threading, data structures, etc
|
|
||||||
[libevent](https://formulae.brew.sh/formula/libevent) | Networking | OS independent asynchronous networking
|
|
||||||
|
|
||||||
The following dependencies are **optional**:
|
|
||||||
|
|
||||||
Library | Purpose | Description
|
|
||||||
--------------------------------------------------------------- |------------------|----------------------
|
|
||||||
[berkeley-db@4](https://formulae.brew.sh/formula/berkeley-db@4) | Berkeley DB | Wallet storage (only needed when wallet enabled)
|
|
||||||
[qt@5](https://formulae.brew.sh/formula/qt@5) | GUI | GUI toolkit (only needed when GUI enabled)
|
|
||||||
[qrencode](https://formulae.brew.sh/formula/qrencode) | QR codes in GUI | Generating QR codes (only needed when GUI enabled)
|
|
||||||
[zeromq](https://formulae.brew.sh/formula/zeromq) | ZMQ notification | Allows generating ZMQ notifications (requires ZMQ version >= 4.0.0)
|
|
||||||
[sqlite](https://formulae.brew.sh/formula/sqlite) | SQLite DB | Wallet storage (only needed when wallet enabled)
|
|
||||||
[miniupnpc](https://formulae.brew.sh/formula/miniupnpc) | UPnP Support | Firewall-jumping support (needed for port mapping support)
|
|
||||||
[libnatpmp](https://formulae.brew.sh/formula/libnatpmp) | NAT-PMP Support | Firewall-jumping support (needed for port mapping support)
|
|
||||||
[python3](https://formulae.brew.sh/formula/python@3.9) | Testing | Python Interpreter (only needed when running the test suite)
|
|
||||||
|
|
||||||
The following dependencies are **optional** packages required for deploying:
|
|
||||||
|
|
||||||
Library | Purpose | Description
|
|
||||||
----------------------------------------------------|------------------|----------------------
|
|
||||||
[ds_store](https://pypi.org/project/ds-store/) | Deploy Dependency| Examine and modify .DS_Store files
|
|
||||||
[mac_alias](https://pypi.org/project/mac-alias/) | Deploy Dependency| Generate/Read binary alias and bookmark records
|
|
||||||
|
|
||||||
See [dependencies.md](dependencies.md) for a complete overview.
|
|
||||||
|
|
||||||
## Preparation
|
## Preparation
|
||||||
|
|
||||||
The commands in this guide should be executed in a Terminal application.
|
The commands in this guide should be executed in a Terminal application.
|
||||||
|
@ -78,6 +44,9 @@ Note: If you run into issues while installing Homebrew or pulling packages, refe
|
||||||
|
|
||||||
The first step is to download the required dependencies.
|
The first step is to download the required dependencies.
|
||||||
These dependencies represent the packages required to get a barebones installation up and running.
|
These dependencies represent the packages required to get a barebones installation up and running.
|
||||||
|
|
||||||
|
See [dependencies.md](dependencies.md) for a complete overview.
|
||||||
|
|
||||||
To install, run the following from your terminal:
|
To install, run the following from your terminal:
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
|
|
|
@ -26,30 +26,7 @@ make install # optional
|
||||||
|
|
||||||
This will build bitcoin-qt as well, if the dependencies are met.
|
This will build bitcoin-qt as well, if the dependencies are met.
|
||||||
|
|
||||||
Dependencies
|
See [dependencies.md](dependencies.md) for a complete overview.
|
||||||
---------------------
|
|
||||||
|
|
||||||
These dependencies are required:
|
|
||||||
|
|
||||||
Library | Purpose | Description
|
|
||||||
------------|------------------|----------------------
|
|
||||||
libboost | Utility | Library for threading, data structures, etc
|
|
||||||
libevent | Networking | OS independent asynchronous networking
|
|
||||||
|
|
||||||
Optional dependencies:
|
|
||||||
|
|
||||||
Library | Purpose | Description
|
|
||||||
------------|------------------|----------------------
|
|
||||||
miniupnpc | UPnP Support | Firewall-jumping support
|
|
||||||
libnatpmp | NAT-PMP Support | Firewall-jumping support
|
|
||||||
libdb4.8 | Berkeley DB | Wallet storage (only needed when legacy wallet enabled)
|
|
||||||
qt | GUI | GUI toolkit (only needed when GUI enabled)
|
|
||||||
libqrencode | QR codes in GUI | QR code generation (only needed when GUI enabled)
|
|
||||||
libzmq3 | ZMQ notification | ZMQ notifications (requires ZMQ version >= 4.0.0)
|
|
||||||
sqlite3 | SQLite DB | Wallet storage (only needed when descriptor wallet enabled)
|
|
||||||
systemtap | Tracing (USDT) | Statically defined tracepoints
|
|
||||||
|
|
||||||
For the versions used, see [dependencies.md](dependencies.md)
|
|
||||||
|
|
||||||
Memory Requirements
|
Memory Requirements
|
||||||
--------------------
|
--------------------
|
||||||
|
|
|
@ -1,46 +1,49 @@
|
||||||
Dependencies
|
# 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.
|
These are the dependencies used by Bitcoin Core.
|
||||||
|
You can find installation instructions in the `build-*.md` file for your platform.
|
||||||
|
"Runtime" and "Version Used" are both in reference to the release binaries.
|
||||||
|
|
||||||
| Dependency | Version used | Minimum required | CVEs | Shared | [Bundled Qt library](https://doc.qt.io/qt-5/configure-options.html#third-party-libraries) |
|
| Compiler | Minimum required |
|
||||||
| --- | --- | --- | --- | --- | --- |
|
| --- | --- |
|
||||||
| Berkeley DB | [4.8.30](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) | 4.8.x | No | | |
|
| [Autoconf](https://www.gnu.org/software/autoconf/) | [2.69](https://github.com/bitcoin/bitcoin/pull/17769) |
|
||||||
| Boost | [1.77.0](https://www.boost.org/users/download/) | [1.64.0](https://github.com/bitcoin/bitcoin/pull/22320) | No | | |
|
| [Automake](https://www.gnu.org/software/automake/) | [1.13](https://github.com/bitcoin/bitcoin/pull/18290) |
|
||||||
| Clang | | [8.0](https://releases.llvm.org/download.html) (C++17 & std::filesystem support) | | | |
|
| [Clang](https://clang.llvm.org) | [8.0](https://github.com/bitcoin/bitcoin/pull/24164) |
|
||||||
| Fontconfig | [2.12.6](https://www.freedesktop.org/software/fontconfig/release/) | | No | Yes | |
|
| [GCC](https://gcc.gnu.org) | [8.1](https://github.com/bitcoin/bitcoin/pull/23060) |
|
||||||
| FreeType | [2.11.0](https://download.savannah.gnu.org/releases/freetype) | | No | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) (Android only) |
|
| [Python](https://www.python.org) (tests) | [3.6](https://github.com/bitcoin/bitcoin/pull/19504) |
|
||||||
| GCC | | [8.1](https://gcc.gnu.org/) (C++17 & std::filesystem support) | | | |
|
| [systemtap](https://sourceware.org/systemtap/) ([tracing](tracing.md))| N/A |
|
||||||
| glibc | | [2.18](https://www.gnu.org/software/libc/) | | | | |
|
|
||||||
| HarfBuzz-NG | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) |
|
|
||||||
| libevent | [2.1.12-stable](https://github.com/libevent/libevent/releases) | [2.0.21](https://github.com/bitcoin/bitcoin/pull/18676) | No | | |
|
|
||||||
| libnatpmp | git commit [4536032...](https://github.com/miniupnp/libnatpmp/tree/4536032ae32268a45c073a4d5e91bbab4534773a) | | No | | |
|
|
||||||
| libpng | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) |
|
|
||||||
| MiniUPnPc | [2.2.2](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.15.2](https://download.qt.io/official_releases/qt/) | [5.11.3](https://github.com/bitcoin/bitcoin/pull/24132) | 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) |
|
|
||||||
| systemtap ([tracing](tracing.md))| [4.5](https://sourceware.org/systemtap/ftp/releases/) | | | | |
|
|
||||||
| 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 | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) |
|
|
||||||
|
|
||||||
Controlling dependencies
|
## Required
|
||||||
------------------------
|
|
||||||
Some dependencies are not needed in all configurations. The following are some factors that affect the dependency list.
|
|
||||||
|
|
||||||
#### Options passed to `./configure`
|
| Dependency | Version used | Minimum required | Runtime |
|
||||||
* MiniUPnPc is not needed with `--without-miniupnpc`.
|
| --- | --- | --- | --- |
|
||||||
* libnatpmp is not needed with `--without-natpmp`.
|
| [Boost](https://www.boost.org/users/download/) | 1.77.0 | [1.64.0](https://github.com/bitcoin/bitcoin/pull/22320) | No |
|
||||||
* Berkeley DB is not needed with `--disable-wallet` or `--without-bdb`.
|
| [libevent](https://github.com/libevent/libevent/releases) | 2.1.12-stable | [2.0.21](https://github.com/bitcoin/bitcoin/pull/18676) | No |
|
||||||
* SQLite is not needed with `--disable-wallet` or `--without-sqlite`.
|
| [glibc](https://www.gnu.org/software/libc/) | N/A | [2.18](https://github.com/bitcoin/bitcoin/pull/23511) | Yes |
|
||||||
* 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
|
## Optional
|
||||||
* Not-Qt-bundled zlib is required to build the [DMG tool](../contrib/macdeploy/README.md#deterministic-macos-dmg-notes) from the libdmg-hfsplus project.
|
|
||||||
|
### GUI
|
||||||
|
| Dependency | Version used | Minimum required | Runtime |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| [Fontconfig](https://www.freedesktop.org/wiki/Software/fontconfig/) | 2.12.6 | 2.6 | Yes |
|
||||||
|
| [FreeType](https://freetype.org) | 2.11.0 | 2.3.0 | Yes |
|
||||||
|
| [qrencode](https://fukuchi.org/works/qrencode/) | [3.4.4](https://fukuchi.org/works/qrencode) | | No |
|
||||||
|
| [Qt](https://www.qt.io) | [5.15.2](https://download.qt.io/official_releases/qt/) | [5.11.3](https://github.com/bitcoin/bitcoin/pull/24132) | No |
|
||||||
|
|
||||||
|
### Networking
|
||||||
|
| Dependency | Version used | Minimum required | Runtime |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| [libnatpmp](https://github.com/miniupnp/libnatpmp/) | commit [4536032...](https://github.com/miniupnp/libnatpmp/tree/4536032ae32268a45c073a4d5e91bbab4534773a) | | No |
|
||||||
|
| [MiniUPnPc](https://miniupnp.tuxfamily.org/) | 2.2.2 | 1.9 | No |
|
||||||
|
|
||||||
|
### Notifications
|
||||||
|
| Dependency | Version used | Minimum required | Runtime |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| [ZeroMQ](https://zeromq.org) | 4.3.4 | 4.0.0 | No |
|
||||||
|
|
||||||
|
### Wallet
|
||||||
|
| Dependency | Version used | Minimum required | Runtime |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| [Berkeley DB](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) (legacy wallet) | 4.8.30 | 4.8.x | No |
|
||||||
|
| [SQLite](https://sqlite.org) | 3.32.1 | [3.7.17](https://github.com/bitcoin/bitcoin/pull/19077) | No |
|
||||||
|
|
Loading…
Add table
Reference in a new issue