0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-02 09:46:52 -05:00

doc: Mention that BerkeleyDB is for legacy wallet in build-unix

This updates build-unix for the descriptor wallet, and prepares for
eventual legacy wallet deprecation.

- Move 'descriptor wallet' dependencies above legacy wallet deps both
for Debian and Fedora.
- Explicitly mention 'legacy wallet' where referring to the BerkeleyDB
wallet. Shorten BerkeleyDB instruction to a single paragraph.
This commit is contained in:
W. J. van der Laan 2021-11-05 18:22:43 +01:00
parent 77a2f5d30c
commit 7eb5b25e6e

View file

@ -42,12 +42,12 @@ Optional dependencies:
------------|------------------|---------------------- ------------|------------------|----------------------
miniupnpc | UPnP Support | Firewall-jumping support miniupnpc | UPnP Support | Firewall-jumping support
libnatpmp | NAT-PMP Support | Firewall-jumping support libnatpmp | NAT-PMP Support | Firewall-jumping support
libdb4.8 | Berkeley DB | Optional, wallet storage (only needed when wallet enabled) libdb4.8 | Berkeley DB | Optional, wallet storage (only needed when legacy wallet enabled)
qt | GUI | GUI toolkit (only needed when GUI enabled) qt | GUI | GUI toolkit (only needed when GUI enabled)
libqrencode | QR codes in GUI | Optional for generating QR codes (only needed when GUI enabled) libqrencode | QR codes in GUI | Optional for generating QR codes (only needed when GUI enabled)
univalue | Utility | JSON parsing and encoding (bundled version will be used unless --with-system-univalue passed to configure) univalue | Utility | JSON parsing and encoding (bundled version will be used unless --with-system-univalue passed to configure)
libzmq3 | ZMQ notification | Optional, allows generating ZMQ notifications (requires ZMQ version >= 4.0.0) libzmq3 | ZMQ notification | Optional, allows generating ZMQ notifications (requires ZMQ version >= 4.0.0)
sqlite3 | SQLite DB | Optional, wallet storage (only needed when wallet enabled) sqlite3 | SQLite DB | Optional, wallet storage (only needed when descriptor wallet enabled)
systemtap | Tracing (USDT) | Optional, statically defined tracepoints systemtap | Tracing (USDT) | Optional, statically defined tracepoints
For the versions used, see [dependencies.md](dependencies.md) For the versions used, see [dependencies.md](dependencies.md)
@ -85,19 +85,15 @@ Now, you can either build from self-compiled [depends](/depends/README.md) or in
sudo apt-get install libevent-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-test-dev sudo apt-get install libevent-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-test-dev
Berkeley DB is required for the wallet.
Ubuntu and Debian have their own `libdb-dev` and `libdb++-dev` packages, but these will install
Berkeley DB 5.1 or later. This will break binary wallet compatibility with the distributed executables, which
are based on BerkeleyDB 4.8. If you do not care about wallet compatibility,
pass `--with-incompatible-bdb` to configure.
Otherwise, you can build Berkeley DB [yourself](#berkeley-db).
SQLite is required for the descriptor wallet: SQLite is required for the descriptor wallet:
sudo apt install libsqlite3-dev sudo apt install libsqlite3-dev
Berkeley DB is required for the legacy wallet. Ubuntu and Debian have their own `libdb-dev` and `libdb++-dev` packages,
but these will install Berkeley DB 5.1 or later. This will break binary wallet compatibility with the distributed
executables, which are based on BerkeleyDB 4.8. If you do not care about wallet compatibility, pass
`--with-incompatible-bdb` to configure. Otherwise, you can build Berkeley DB [yourself](#berkeley-db).
To build Bitcoin Core without wallet, see [*Disable-wallet mode*](#disable-wallet-mode) To build Bitcoin Core without wallet, see [*Disable-wallet mode*](#disable-wallet-mode)
Optional port mapping libraries (see: `--with-miniupnpc`, `--enable-upnp-default`, and `--with-natpmp`, `--enable-natpmp-default`): Optional port mapping libraries (see: `--with-miniupnpc`, `--enable-upnp-default`, and `--with-natpmp`, `--enable-natpmp-default`):
@ -146,20 +142,18 @@ Now, you can either build from self-compiled [depends](/depends/README.md) or in
sudo dnf install libevent-devel boost-devel sudo dnf install libevent-devel boost-devel
Berkeley DB is required for the wallet: SQLite is required for the descriptor wallet:
sudo dnf install sqlite-devel
Berkeley DB is required for the legacy wallet:
sudo dnf install libdb4-devel libdb4-cxx-devel sudo dnf install libdb4-devel libdb4-cxx-devel
Newer Fedora releases, since Fedora 33, have only `libdb-devel` and `libdb-cxx-devel` packages, but these will install Newer Fedora releases, since Fedora 33, have only `libdb-devel` and `libdb-cxx-devel` packages, but these will install
Berkeley DB 5.3 or later. This will break binary wallet compatibility with the distributed executables, which Berkeley DB 5.3 or later. This will break binary wallet compatibility with the distributed executables, which
are based on Berkeley DB 4.8. If you do not care about wallet compatibility, are based on Berkeley DB 4.8. If you do not care about wallet compatibility,
pass `--with-incompatible-bdb` to configure. pass `--with-incompatible-bdb` to configure. Otherwise, you can build Berkeley DB [yourself](#berkeley-db).
Otherwise, you can build Berkeley DB [yourself](#berkeley-db).
SQLite is required for the descriptor wallet:
sudo dnf install sqlite-devel
To build Bitcoin Core without wallet, see [*Disable-wallet mode*](#disable-wallet-mode) To build Bitcoin Core without wallet, see [*Disable-wallet mode*](#disable-wallet-mode)
@ -225,8 +219,10 @@ turned off by default. See the configure options for NAT-PMP behavior desired:
Berkeley DB Berkeley DB
----------- -----------
It is recommended to use Berkeley DB 4.8. If you have to build it yourself,
you can use [the installation script included in contrib/](/contrib/install_db4.sh) The legacy wallet uses Berkeley DB. To ensure backwards compatibility it is
recommended to use Berkeley DB 4.8. If you have to build it yourself, you can
use [the installation script included in contrib/](/contrib/install_db4.sh)
like so: like so:
```shell ```shell