-
Notifications
You must be signed in to change notification settings - Fork 36.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: no-longer fail default configure if BDB isn't available #23168
build: no-longer fail default configure if BDB isn't available #23168
Conversation
strong concept ack |
Strong Strong Concept ACK This will greatly improve the first time Bitcoin Core build experience by allowing the expected and familiar |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concept ACK
What about
Thanks 😄 |
Very nice! |
Concept ACK. |
Maybe also replace an error with a warning and disabling BDB support for the following case:
? |
On second thought, we probably could make this into a warning, and not build when the incompatible flag is missing. Still forcing builders to opt into using incompatible versions but no-longer failing if some bdb is installed. |
Guix builds
|
Inline with moving to descriptor (sqlite) wallets by default for 0.23, this adapts the build system so that a default `./configure` invocation no-longer fails if BDB isn't present. Currently, if configure is run with no options, and no BDB is present, we'll fail with: ```bash checking for Berkeley DB C++ headers... no configure: error: libdb_cxx headers missing, Bitcoin Core requires this library for BDB wallet support (--without-bdb to disable BDB wallet support) ``` If descriptor wallets are to be the default, this behaviour no longer makes sense, as a builder should be able to configure and build, to use a wallet, without BDB installed, and without passing additional arguments, i.e `--without-bdb` or `--with-incompatible-bdb`, to configure. With this change, running configure will no-longer fail, and will instead print: ```bash checking for Berkeley DB C++ headers... no configure: WARNING: libdb_cxx headers missing configure: WARNING: Bitcoin Core requires this library for BDB (legacy) wallet support configure: WARNING: Passing --without-bdb will suppress this warning checking for sqlite3 >= 3.7.17... yes checking whether to build wallet with support for sqlite... yes ```
d9841d6
to
747cd17
Compare
I've done this now. |
],[ | ||
AC_MSG_ERROR([Found Berkeley DB other than 4.8, required for portable BDB wallets (--with-incompatible-bdb to ignore or --without-bdb to disable BDB wallet support)]) | ||
AC_MSG_WARN([Found Berkeley DB other than 4.8]) | ||
AC_MSG_WARN([BDB (legacy) wallets opened by this build would not be portable!]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this case the build won't support BDB wallets at all (use_bdb=no
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that's intended. We don't want to fail in the case --with-incompatible-bdb isn't passed.
Isn't that exactly what you asked for: #23168 (comment)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't that exactly what you asked for: #23168 (comment)?
Yes, it is.
My concerns are about message text, not about logic.
I mean "BDB (legacy) wallets" cannot be "opened by this build", no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the messaging is fine as is. We are just warning that there is an incompatible BDB present. Lack of BDB wallet support is also part of the configure summary.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 747cd17, tested on Linux Mint 20.2 (x86_64) with the (un)installed system packages libdb-dev
and libdb++-dev
.
Once decided BDB is going out, |
…sn't available 747cd17 build: no-longer fail default configure if BDB isn't available (fanquake) Pull request description: Inline with moving to descriptor (sqlite) wallets by default for 0.23, this adapts the build system so that a default `./configure` invocation no-longer fails if BDB isn't present. Currently, if configure is run with no options, and no BDB is present, we'll fail with: ```bash checking for Berkeley DB C++ headers... no configure: error: libdb_cxx headers missing, Bitcoin Core requires this library for BDB wallet support (--without-bdb to disable BDB wallet support) ``` If descriptor wallets are to be the default, this behaviour no longer makes sense, as a builder should be able to configure and build, to use a wallet, without BDB installed, and without passing additional arguments, i.e `--without-bdb` or `--with-incompatible-bdb`, to configure. With this change, running configure will no-longer fail, but will instead print: ```bash checking for Berkeley DB C++ headers... no configure: WARNING: libdb_cxx headers missing configure: WARNING: Bitcoin Core requires this library for BDB (legacy) wallet support configure: WARNING: Passing --without-bdb will suppress this warning checking for sqlite3 >= 3.7.17... yes checking whether to build wallet with support for sqlite... yes ``` ACKs for top commit: hebasto: ACK 747cd17, tested on Linux Mint 20.2 (x86_64) with the (un)installed system packages `libdb-dev` and `libdb++-dev`. Tree-SHA512: ae316d71ad0803c9d4b02a5fedcade08242650d987cc047840493ba4a881e71ff48b099075bb7c325307d44744fcdeccb57f7fa8db4135c81a5835841f562afa
Inline with moving to descriptor (sqlite) wallets by default for 0.23,
this adapts the build system so that a default
./configure
invocationno-longer fails if BDB isn't present. Currently, if configure is run
with no options, and no BDB is present, we'll fail with:
If descriptor wallets are to be the default, this behaviour no longer
makes sense, as a builder should be able to configure and build, to use
a wallet, without BDB installed, and without passing additional
arguments, i.e
--without-bdb
or--with-incompatible-bdb
, toconfigure.
With this change, running configure will no-longer fail, but will
instead print: