merge bitcoin#20527: Do not ignore Homebrew's SQLite on macOS

This commit is contained in:
Kittywhiskers Van Gogh 2024-01-10 18:09:02 +00:00 committed by pasta
parent 343e2724d2
commit 9084ede415
No known key found for this signature in database
GPG Key ID: 52527BEDABE87984
2 changed files with 32 additions and 11 deletions

View File

@ -716,16 +716,19 @@ case $host in
dnl It's safe to add these paths even if the functionality is disabled by dnl It's safe to add these paths even if the functionality is disabled by
dnl the user (--without-wallet or --without-gui for example). dnl the user (--without-wallet or --without-gui for example).
qt5_prefix=$($BREW --prefix qt5 2>/dev/null) if test "x$use_bdb" != xno && $BREW list --versions berkeley-db4 >/dev/null && test "x$BDB_CFLAGS" = "x" && test "x$BDB_LIBS" = "x"; then
if $BREW list --versions berkeley-db4 >/dev/null && test "x$BDB_CFLAGS" = "x" && test "x$BDB_LIBS" = "x" && test "$use_bdb" != "no"; then
bdb_prefix=$($BREW --prefix berkeley-db4 2>/dev/null) bdb_prefix=$($BREW --prefix berkeley-db4 2>/dev/null)
dnl This must precede the call to BITCOIN_FIND_BDB48 below. dnl This must precede the call to BITCOIN_FIND_BDB48 below.
BDB_CFLAGS="-I$bdb_prefix/include" BDB_CFLAGS="-I$bdb_prefix/include"
BDB_LIBS="-L$bdb_prefix/lib -ldb_cxx-4.8" BDB_LIBS="-L$bdb_prefix/lib -ldb_cxx-4.8"
fi fi
if test x$qt5_prefix != x; then
PKG_CONFIG_PATH="$qt5_prefix/lib/pkgconfig:$PKG_CONFIG_PATH" if test "x$use_sqlite" != xno && $BREW list --versions sqlite3 >/dev/null; then
export PKG_CONFIG_PATH export PKG_CONFIG_PATH="$($BREW --prefix sqlite3 2>/dev/null)/lib/pkgconfig:$PKG_CONFIG_PATH"
fi
if $BREW list --versions qt5 >/dev/null; then
export PKG_CONFIG_PATH="$($BREW --prefix qt5 2>/dev/null)/lib/pkgconfig:$PKG_CONFIG_PATH"
fi fi
gmp_prefix=$($BREW --prefix gmp 2>/dev/null) gmp_prefix=$($BREW --prefix gmp 2>/dev/null)

View File

@ -19,13 +19,27 @@ Then install [Homebrew](https://brew.sh).
## Dependencies ## Dependencies
```shell ```shell
brew install automake berkeley-db4 libtool boost gmp miniupnpc pkg-config python qt libevent libnatpmp qrencode sqlite brew install automake libtool boost gmp miniupnpc pkg-config python qt libevent libnatpmp qrencode
``` ```
If you run into issues, check [Homebrew's troubleshooting page](https://docs.brew.sh/Troubleshooting). If you run into issues, check [Homebrew's troubleshooting page](https://docs.brew.sh/Troubleshooting).
See [dependencies.md](dependencies.md) for a complete overview. See [dependencies.md](dependencies.md) for a complete overview.
## Berkeley DB The wallet support requires one or both of the dependencies ([*SQLite*](#sqlite) and [*Berkeley DB*](#berkeley-db)) in the sections below.
To build Dash Core without wallet, see [*Disable-wallet mode*](#disable-wallet-mode).
#### SQLite
Usually, macOS installation already has a suitable SQLite installation.
Also, the Homebrew package could be installed:
```shell
brew install sqlite
```
In that case the Homebrew package will prevail.
#### Berkeley DB
It is recommended to use Berkeley DB 4.8. If you have to build it yourself, 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) you can use [the installation script included in contrib/](contrib/install_db4.sh)
@ -37,7 +51,11 @@ like so:
from the root of the repository. from the root of the repository.
**Note**: You only need Berkeley DB if the wallet is enabled (see the section *Disable-Wallet mode* below). Also, the Homebrew package could be installed:
```shell
brew install berkeley-db4
```
## Build Dash Core ## Build Dash Core
@ -68,14 +86,14 @@ from the root of the repository.
make deploy make deploy
``` ```
## `disable-wallet` mode ## Disable-wallet mode
When the intention is to run only a P2P node without a wallet, Dash Core may be When the intention is to run only a P2P node without a wallet, Dash Core may be
compiled in `disable-wallet` mode with: compiled in disable-wallet mode with:
```shell ```shell
./configure --disable-wallet ./configure --disable-wallet
``` ```
In this case there is no dependency on Berkeley DB 4.8 and SQLite. In this case there is no dependency on [*Berkeley DB*](#berkeley-db) and [*SQLite*](#sqlite).
Mining is also possible in disable-wallet mode using the `getblocktemplate` RPC call. Mining is also possible in disable-wallet mode using the `getblocktemplate` RPC call.