Skip to content

Commit 170e268

Browse files
committed
Merge bitcoin/bitcoin#23446: doc: Mention that BerkeleyDB is for legacy wallet in build-unix
7eb5b25 doc: Mention that BerkeleyDB is for legacy wallet in build-unix (W. J. van der Laan) Pull request description: 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. ACKs for top commit: lsilva01: ACK 7eb5b25 hebasto: ACK 7eb5b25, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: 8a0859bfaf170a1c5a8b3e8f873d6b788f3b1cebd8d006569348c5b415d5ebbdfd56a5a294c509114975addb599da8a50c4be618b0545ff402065e948f692ba1
2 parents f21ce0b + 7eb5b25 commit 170e268

File tree

1 file changed

+17
-21
lines changed

1 file changed

+17
-21
lines changed

doc/build-unix.md

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ Optional dependencies:
4242
------------|------------------|----------------------
4343
miniupnpc | UPnP Support | Firewall-jumping support
4444
libnatpmp | NAT-PMP Support | Firewall-jumping support
45-
libdb4.8 | Berkeley DB | Optional, wallet storage (only needed when wallet enabled)
45+
libdb4.8 | Berkeley DB | Optional, wallet storage (only needed when legacy wallet enabled)
4646
qt | GUI | GUI toolkit (only needed when GUI enabled)
4747
libqrencode | QR codes in GUI | Optional for generating QR codes (only needed when GUI enabled)
4848
univalue | Utility | JSON parsing and encoding (bundled version will be used unless --with-system-univalue passed to configure)
4949
libzmq3 | ZMQ notification | Optional, allows generating ZMQ notifications (requires ZMQ version >= 4.0.0)
50-
sqlite3 | SQLite DB | Optional, wallet storage (only needed when wallet enabled)
50+
sqlite3 | SQLite DB | Optional, wallet storage (only needed when descriptor wallet enabled)
5151
systemtap | Tracing (USDT) | Optional, statically defined tracepoints
5252

5353
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
8585

8686
sudo apt-get install libevent-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-test-dev
8787

88-
Berkeley DB is required for the wallet.
89-
90-
Ubuntu and Debian have their own `libdb-dev` and `libdb++-dev` packages, but these will install
91-
Berkeley DB 5.1 or later. This will break binary wallet compatibility with the distributed executables, which
92-
are based on BerkeleyDB 4.8. If you do not care about wallet compatibility,
93-
pass `--with-incompatible-bdb` to configure.
94-
95-
Otherwise, you can build Berkeley DB [yourself](#berkeley-db).
96-
9788
SQLite is required for the descriptor wallet:
9889

9990
sudo apt install libsqlite3-dev
10091

92+
Berkeley DB is required for the legacy wallet. Ubuntu and Debian have their own `libdb-dev` and `libdb++-dev` packages,
93+
but these will install Berkeley DB 5.1 or later. This will break binary wallet compatibility with the distributed
94+
executables, which are based on BerkeleyDB 4.8. If you do not care about wallet compatibility, pass
95+
`--with-incompatible-bdb` to configure. Otherwise, you can build Berkeley DB [yourself](#berkeley-db).
96+
10197
To build Bitcoin Core without wallet, see [*Disable-wallet mode*](#disable-wallet-mode)
10298

10399
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
146142

147143
sudo dnf install libevent-devel boost-devel
148144

149-
Berkeley DB is required for the wallet:
145+
SQLite is required for the descriptor wallet:
146+
147+
sudo dnf install sqlite-devel
148+
149+
Berkeley DB is required for the legacy wallet:
150150

151151
sudo dnf install libdb4-devel libdb4-cxx-devel
152152

153153
Newer Fedora releases, since Fedora 33, have only `libdb-devel` and `libdb-cxx-devel` packages, but these will install
154154
Berkeley DB 5.3 or later. This will break binary wallet compatibility with the distributed executables, which
155155
are based on Berkeley DB 4.8. If you do not care about wallet compatibility,
156-
pass `--with-incompatible-bdb` to configure.
157-
158-
Otherwise, you can build Berkeley DB [yourself](#berkeley-db).
159-
160-
SQLite is required for the descriptor wallet:
161-
162-
sudo dnf install sqlite-devel
156+
pass `--with-incompatible-bdb` to configure. Otherwise, you can build Berkeley DB [yourself](#berkeley-db).
163157

164158
To build Bitcoin Core without wallet, see [*Disable-wallet mode*](#disable-wallet-mode)
165159

@@ -225,8 +219,10 @@ turned off by default. See the configure options for NAT-PMP behavior desired:
225219

226220
Berkeley DB
227221
-----------
228-
It is recommended to use Berkeley DB 4.8. If you have to build it yourself,
229-
you can use [the installation script included in contrib/](/contrib/install_db4.sh)
222+
223+
The legacy wallet uses Berkeley DB. To ensure backwards compatibility it is
224+
recommended to use Berkeley DB 4.8. If you have to build it yourself, you can
225+
use [the installation script included in contrib/](/contrib/install_db4.sh)
230226
like so:
231227

232228
```shell

0 commit comments

Comments
 (0)