* [gentoo-commits] repo/gentoo:master commit in: dev-util/bitcoin-tx/files/, dev-util/bitcoin-tx/
@ 2019-01-13 3:18 Craig Andrews
0 siblings, 0 replies; 4+ messages in thread
From: Craig Andrews @ 2019-01-13 3:18 UTC (permalink / raw
To: gentoo-commits
commit: 4ccfcada730b9bb00f67968b7cf5d016800b6a6d
Author: Luke Dashjr <luke-jr+git <AT> utopios <DOT> org>
AuthorDate: Sat Jan 12 13:46:11 2019 +0000
Commit: Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Sun Jan 13 03:17:18 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4ccfcada
dev-util/bitcoin-tx-0.17.1: Fix build without libevent
Fixes: https://bugs.gentoo.org/675256
Signed-off-by: Luke Dashjr <luke-jr+git <AT> utopios.org>
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>
dev-util/bitcoin-tx/bitcoin-tx-0.17.1.ebuild | 2 ++
dev-util/bitcoin-tx/files/0.17.1-no-libevent.patch | 20 ++++++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/dev-util/bitcoin-tx/bitcoin-tx-0.17.1.ebuild b/dev-util/bitcoin-tx/bitcoin-tx-0.17.1.ebuild
index a431bbafab7..4346aa02591 100644
--- a/dev-util/bitcoin-tx/bitcoin-tx-0.17.1.ebuild
+++ b/dev-util/bitcoin-tx/bitcoin-tx-0.17.1.ebuild
@@ -63,6 +63,8 @@ src_prepare() {
mkdir -p src/obj || die
echo "#define BUILD_SUFFIX gentoo${PVR#${PV}}" >src/obj/build.h || die
+ eapply "${FILESDIR}/${PV}-no-libevent.patch"
+
eautoreconf
rm -r src/leveldb src/secp256k1 || die
}
diff --git a/dev-util/bitcoin-tx/files/0.17.1-no-libevent.patch b/dev-util/bitcoin-tx/files/0.17.1-no-libevent.patch
new file mode 100644
index 00000000000..b0e4a954875
--- /dev/null
+++ b/dev-util/bitcoin-tx/files/0.17.1-no-libevent.patch
@@ -0,0 +1,20 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -1101,7 +1101,7 @@ if test x$use_pkgconfig = xyes; then
+ if test x$use_qr != xno; then
+ BITCOIN_QT_CHECK([PKG_CHECK_MODULES([QR], [libqrencode], [have_qrencode=yes], [have_qrencode=no])])
+ fi
+- if test x$build_bitcoin_cli$build_bitcoin_tx$build_bitcoind$bitcoin_enable_qt$use_tests != xnonononono; then
++ if test x$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
+ PKG_CHECK_MODULES([EVENT], [libevent],, [AC_MSG_ERROR(libevent not found.)])
+ if test x$TARGET_OS != xwindows; then
+ PKG_CHECK_MODULES([EVENT_PTHREADS], [libevent_pthreads],, [AC_MSG_ERROR(libevent_pthreads not found.)])
+@@ -1126,7 +1126,7 @@ else
+ AC_CHECK_HEADER([openssl/ssl.h],, AC_MSG_ERROR(libssl headers missing),)
+ AC_CHECK_LIB([ssl], [main],SSL_LIBS=-lssl, AC_MSG_ERROR(libssl missing))
+
+- if test x$build_bitcoin_cli$build_bitcoin_tx$build_bitcoind$bitcoin_enable_qt$use_tests != xnonononono; then
++ if test x$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
+ AC_CHECK_HEADER([event2/event.h],, AC_MSG_ERROR(libevent headers missing),)
+ AC_CHECK_LIB([event],[main],EVENT_LIBS=-levent,AC_MSG_ERROR(libevent missing))
+ if test x$TARGET_OS != xwindows; then
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-util/bitcoin-tx/files/, dev-util/bitcoin-tx/
@ 2020-04-10 17:54 Craig Andrews
0 siblings, 0 replies; 4+ messages in thread
From: Craig Andrews @ 2020-04-10 17:54 UTC (permalink / raw
To: gentoo-commits
commit: a2b367de540c733ff6ed2fab485496153d9de524
Author: Luke Dashjr <luke-jr+git <AT> utopios <DOT> org>
AuthorDate: Fri Apr 10 17:33:36 2020 +0000
Commit: Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Fri Apr 10 17:54:04 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a2b367de
dev-util/bitcoin-tx-0.19.1: Fix build without libevent
Closes: https://bugs.gentoo.org/715268
Signed-off-by: Luke Dashjr <luke-jr+git <AT> utopios.org>
Closes: https://github.com/gentoo/gentoo/pull/15291
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>
dev-util/bitcoin-tx/bitcoin-tx-0.19.1.ebuild | 2 +
dev-util/bitcoin-tx/files/0.19.1-no-libevent.patch | 47 ++++++++++++++++++++++
2 files changed, 49 insertions(+)
diff --git a/dev-util/bitcoin-tx/bitcoin-tx-0.19.1.ebuild b/dev-util/bitcoin-tx/bitcoin-tx-0.19.1.ebuild
index be220733843..b19f22a49f5 100644
--- a/dev-util/bitcoin-tx/bitcoin-tx-0.19.1.ebuild
+++ b/dev-util/bitcoin-tx/bitcoin-tx-0.19.1.ebuild
@@ -60,6 +60,8 @@ src_prepare() {
eapply "${knots_patchdir}/${KNOTS_P}.ts.patch"
fi
+ eapply "${FILESDIR}/${PV}-no-libevent.patch"
+
eapply_user
echo '#!/bin/true' >share/genbuild.sh || die
diff --git a/dev-util/bitcoin-tx/files/0.19.1-no-libevent.patch b/dev-util/bitcoin-tx/files/0.19.1-no-libevent.patch
new file mode 100644
index 00000000000..fa29f8bbac9
--- /dev/null
+++ b/dev-util/bitcoin-tx/files/0.19.1-no-libevent.patch
@@ -0,0 +1,47 @@
+diff --git a/configure.ac b/configure.ac
+--- a/configure.ac
++++ b/configure.ac
+@@ -1271,7 +1271,7 @@ if test x$use_pkgconfig = xyes; then
+ BITCOIN_QT_CHECK([PKG_CHECK_MODULES([QR], [libqrencode], [have_qrencode=yes], [have_qrencode=no])])
+ fi
+ if test x$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
+- PKG_CHECK_MODULES([EVENT], [libevent],, [AC_MSG_ERROR(libevent not found.)])
++ PKG_CHECK_MODULES([EVENT], [libevent], [use_libevent=yes], [AC_MSG_ERROR(libevent not found.)])
+ if test x$TARGET_OS != xwindows; then
+ PKG_CHECK_MODULES([EVENT_PTHREADS], [libevent_pthreads],, [AC_MSG_ERROR(libevent_pthreads not found.)])
+ fi
+@@ -1291,7 +1291,7 @@ if test x$use_pkgconfig = xyes; then
+ else
+
+ if test x$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$use_tests != xnononono; then
+- AC_CHECK_HEADER([event2/event.h],, AC_MSG_ERROR(libevent headers missing),)
++ AC_CHECK_HEADER([event2/event.h], [use_libevent=yes], AC_MSG_ERROR(libevent headers missing),)
+ AC_CHECK_LIB([event],[main],EVENT_LIBS=-levent,AC_MSG_ERROR(libevent missing))
+ if test x$TARGET_OS != xwindows; then
+ AC_CHECK_LIB([event_pthreads],[main],EVENT_PTHREADS_LIBS=-levent_pthreads,AC_MSG_ERROR(libevent_pthreads missing))
+@@ -1545,6 +1545,7 @@ AM_CONDITIONAL([ENABLE_QT_TESTS],[test x$BUILD_TEST_QT = xyes])
+ AM_CONDITIONAL([ENABLE_BENCH],[test x$use_bench = xyes])
+ AM_CONDITIONAL([USE_QRCODE], [test x$use_qr = xyes])
+ AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes])
++AM_CONDITIONAL([USE_LIBEVENT],[test x$use_libevent = xyes])
+ AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes])
+ AM_CONDITIONAL([HARDEN],[test x$use_hardening = xyes])
+ AM_CONDITIONAL([ENABLE_SSE42],[test x$enable_sse42 = xyes])
+diff --git a/src/Makefile.am b/src/Makefile.am
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -523,10 +523,13 @@ libbitcoin_util_a_SOURCES = \
+ util/strencodings.cpp \
+ util/string.cpp \
+ util/time.cpp \
+- util/url.cpp \
+ util/validation.cpp \
+ $(BITCOIN_CORE_H)
+
++if USE_LIBEVENT
++libbitcoin_util_a_SOURCES += util/url.cpp
++endif
++
+ if GLIBC_BACK_COMPAT
+ libbitcoin_util_a_SOURCES += compat/glibc_compat.cpp
+ AM_LDFLAGS += $(COMPAT_LDFLAGS)
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-util/bitcoin-tx/files/, dev-util/bitcoin-tx/
@ 2021-12-19 8:36 Florian Schmaus
0 siblings, 0 replies; 4+ messages in thread
From: Florian Schmaus @ 2021-12-19 8:36 UTC (permalink / raw
To: gentoo-commits
commit: f4e315afe367101cc3e5d11dbab1f80ac44f078e
Author: Luke Dashjr <luke-jr+git <AT> utopios <DOT> org>
AuthorDate: Sat Dec 18 20:25:25 2021 +0000
Commit: Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Sun Dec 19 08:36:20 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f4e315af
dev-util/bitcoin-tx-22.0: Fix build without LevelDB
Closes: https://bugs.gentoo.org/829412
Signed-off-by: Luke Dashjr <luke-jr+git <AT> utopios.org>
Closes: https://github.com/gentoo/gentoo/pull/23410
Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>
dev-util/bitcoin-tx/bitcoin-tx-22.0.ebuild | 1 +
.../files/22.0-fix_build_without_leveldb.patch | 23 ++++++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git a/dev-util/bitcoin-tx/bitcoin-tx-22.0.ebuild b/dev-util/bitcoin-tx/bitcoin-tx-22.0.ebuild
index f09f17d20444..d450673bfec9 100644
--- a/dev-util/bitcoin-tx/bitcoin-tx-22.0.ebuild
+++ b/dev-util/bitcoin-tx/bitcoin-tx-22.0.ebuild
@@ -61,6 +61,7 @@ src_prepare() {
local knots_patchdir="${WORKDIR}/${KNOTS_P}.patches/"
eapply "${knots_patchdir}/${KNOTS_P}_p1-syslibs.patch"
+ eapply "${FILESDIR}/${PV}-fix_build_without_leveldb.patch"
if use knots; then
eapply "${knots_patchdir}/${KNOTS_P}_p2-fixes.patch"
diff --git a/dev-util/bitcoin-tx/files/22.0-fix_build_without_leveldb.patch b/dev-util/bitcoin-tx/files/22.0-fix_build_without_leveldb.patch
new file mode 100644
index 000000000000..e9dec14b9d43
--- /dev/null
+++ b/dev-util/bitcoin-tx/files/22.0-fix_build_without_leveldb.patch
@@ -0,0 +1,23 @@
+diff --git a/src/init/common.cpp b/src/init/common.cpp
+index b5b74cda78b..d01e0e73b4a 100644
+--- a/src/init/common.cpp
++++ b/src/init/common.cpp
+@@ -9,7 +9,6 @@
+ #include <clientversion.h>
+ #include <compat/sanity.h>
+ #include <crypto/sha256.h>
+-#include <dbwrapper.h>
+ #include <key.h>
+ #include <logging.h>
+ #include <node/ui_interface.h>
+@@ -41,10 +40,6 @@ void UnsetGlobals()
+
+ bool SanityChecks()
+ {
+- if (!dbwrapper_SanityCheck()) {
+- return InitError(Untranslated("Database sanity check failure. Aborting."));
+- }
+-
+ if (!ECC_InitSanityCheck()) {
+ return InitError(Untranslated("Elliptic curve cryptography sanity check failure. Aborting."));
+ }
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-util/bitcoin-tx/files/, dev-util/bitcoin-tx/
@ 2023-01-05 4:38 Sam James
0 siblings, 0 replies; 4+ messages in thread
From: Sam James @ 2023-01-05 4:38 UTC (permalink / raw
To: gentoo-commits
commit: 0592bc36a73107a479a55ad6aa0a3b3205191470
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 5 02:45:34 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jan 5 04:37:45 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0592bc36
dev-util/bitcoin-tx: add 24.0.1
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-util/bitcoin-tx/Manifest | 1 +
dev-util/bitcoin-tx/bitcoin-tx-24.0.1.ebuild | 79 +++++++
dev-util/bitcoin-tx/files/24.0.1-syslibs.patch | 281 +++++++++++++++++++++++++
3 files changed, 361 insertions(+)
diff --git a/dev-util/bitcoin-tx/Manifest b/dev-util/bitcoin-tx/Manifest
index 0408f94aa093..c33fa9abf302 100644
--- a/dev-util/bitcoin-tx/Manifest
+++ b/dev-util/bitcoin-tx/Manifest
@@ -1,4 +1,5 @@
DIST bitcoin-0.21.0.knots20210130.patches.tar.xz 505040 BLAKE2B c8999de4158b8781bba6ad014ae14859f1e0bab3080c59a18910cf7447eb56da4b17a0e1843fdd3669d22636df9e4ddcc4526e4293bfd86dc884983a29a5f76c SHA512 7ee27da3d26be0e93ecddff7bb21ef1746bcdb07f9a2b0ea48065367b4c44391e974e04a21e511c05fca8f55971ab8e3c3ac01a3775cc52a537d9e10966d9871
DIST bitcoin-22.0.knots20211108.patches.tar.xz 1318256 BLAKE2B d6e56bc0ca1d706e99e7f42d8f335f016335b6bf3637c733d993696872f0a4c655cc58fc0394dfdf9916e13f0d7fbdcebf25fbdc9a165227e3c59133033644c0 SHA512 daab5860b7c7e137b6bf350cdc153e6e19172e49935640d1f6fe1f1be1e4df805b1db7fd30b0f95a560106956adab70cc6282fe933ae9de153cb971dd280f83d
+DIST bitcoin-24.0.1.tar.gz 11412628 BLAKE2B 2a8c83aecd12d8d40305d78ede1f389884ee62cfe4af39a9b416b8887a595f3393d599ebe9ddeb576bba5896923feb7ee45ba32d7d4cb0ce9e6d0ef39ecf83c7 SHA512 de1ddb543429f70b0b55a46500e0bc4807cca1b1655a28f8ab186d6f6e620f8cf82420bbdf412976ffed9bc6d742926b19933429c734edaf7430a4f8c37e1685
DIST bitcoin-v0.21.0.tar.gz 7533957 BLAKE2B 01247cbb9fca2381a8c08ab1c88c479c640963caef22e4207aab46b05813dbf2a5286ac9e98132fb34db0e9ac6c18c79e45a89de166f5c6d480d8ac6e14ecca2 SHA512 c58187996932b0151432a65885b7e8a7b216fb1ab0576fb7d4b5e9620d957594b05e181153e2e0e50bcd5ce764861ec11019ffbb1095d3e704f441e61ac6a04f
DIST bitcoin-v22.0.tar.gz 7977783 BLAKE2B ba212037bc8efcfbbbf6340c48ed886c4a5aa93e4a34097eafea39734a6f4e25fa6b174f894655f63c504380d8761657771795bfcc641018bf1f1661deef9321 SHA512 1b4b17360e97f390ae678adb7a239c359d3a1288799710683e26f09fc53341b6fca3211465fa3e4fdee37324d85ec1a31ffd1a3714e969df13441f755fa4b7ad
diff --git a/dev-util/bitcoin-tx/bitcoin-tx-24.0.1.ebuild b/dev-util/bitcoin-tx/bitcoin-tx-24.0.1.ebuild
new file mode 100644
index 000000000000..ef71b0141e50
--- /dev/null
+++ b/dev-util/bitcoin-tx/bitcoin-tx-24.0.1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools bash-completion-r1
+
+DESCRIPTION="Command-line Bitcoin transaction tool"
+HOMEPAGE="https://bitcoincore.org/"
+SRC_URI="
+ https://bitcoincore.org/bin/bitcoin-core-${PV}/${P/-tx}.tar.gz
+"
+S="${WORKDIR}"/${P/-tx}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-libs/boost-1.64.0:=
+ >=dev-libs/libsecp256k1-0.2:=[recovery,schnorr]
+"
+DEPEND="${RDEPEND}"
+
+DOCS=(
+ doc/bips.md
+ doc/release-notes.md
+)
+
+PATCHES=(
+ "${FILESDIR}"/24.0.1-syslibs.patch
+)
+
+pkg_pretend() {
+ elog "You are building ${PN} from Bitcoin Core."
+ elog "For more information, see:"
+ elog "https://bitcoincore.org/en/releases/${PV}/"
+}
+
+src_prepare() {
+ default
+
+ eautoreconf
+ rm -r src/leveldb src/secp256k1 || die
+}
+
+src_configure() {
+ local myeconfargs=(
+ --disable-asm
+ --without-qtdbus
+ --disable-ebpf
+ --without-natpmp
+ --without-qrencode
+ --without-miniupnpc
+ --disable-tests
+ --disable-wallet
+ --disable-zmq
+ --enable-util-tx
+ --disable-util-util
+ --disable-util-cli
+ --disable-util-wallet
+ --disable-bench
+ --without-libs
+ --without-daemon
+ --without-gui
+ --disable-fuzz
+ --disable-fuzz-binary
+ --disable-ccache
+ --with-system-libsecp256k1
+ --with-system-univalue
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ newbashcomp contrib/${PN}.bash-completion ${PN}
+}
diff --git a/dev-util/bitcoin-tx/files/24.0.1-syslibs.patch b/dev-util/bitcoin-tx/files/24.0.1-syslibs.patch
new file mode 100644
index 000000000000..00404a2ff021
--- /dev/null
+++ b/dev-util/bitcoin-tx/files/24.0.1-syslibs.patch
@@ -0,0 +1,281 @@
+Originally based on 22.0-fix_build_without_leveldb.patch.
+
+- Allow system libsecp256k1
+- Allow system leveldb
+- Abort if runtime leveldb != compiled-against leveldb
+- Handle berkdb support being disabled better
+--- a/configure.ac
++++ b/configure.ac
+@@ -1362,6 +1362,23 @@ if test "$enable_fuzz_binary" = "yes"; then
+ CHECK_RUNTIME_LIB
+ fi
+
++dnl Check for libsecp256k1, only if explicitly requested
++AC_ARG_WITH([system-libsecp256k1],
++ [AS_HELP_STRING([--with-system-libsecp256k1],
++ [Build with system libsecp256k1 (default is no; DANGEROUS; NOT SUPPORTED)])],
++ [system_libsecp256k1=$withval],
++ [system_libsecp256k1=no]
++)
++if test x$system_libsecp256k1 != xno; then
++ PKG_CHECK_MODULES([libsecp256k1],[libsecp256k1],,[true])
++else
++ libsecp256k1_CFLAGS='-I$(srcdir)/secp256k1/include'
++ libsecp256k1_LIBS='secp256k1/libsecp256k1.la'
++fi
++AM_CONDITIONAL([EMBEDDED_LIBSECP256K1],[test x$system_libsecp256k1 = xno])
++AC_SUBST(libsecp256k1_CFLAGS)
++AC_SUBST(libsecp256k1_LIBS)
++
+ if test "$enable_wallet" != "no"; then
+ dnl Check for libdb_cxx only if wallet enabled
+ if test "$use_bdb" != "no"; then
+@@ -1413,11 +1430,76 @@ if test "$use_usdt" != "no"; then
+ fi
+ AM_CONDITIONAL([ENABLE_USDT_TRACEPOINTS], [test "$use_usdt" = "yes"])
+
++build_leveldb=yes
+ if test "$build_bitcoin_cli$build_bitcoin_tx$build_bitcoin_util$build_bitcoind$bitcoin_enable_qt$use_bench$use_tests" = "nonononononono"; then
+ use_upnp=no
+ use_natpmp=no
+ use_zmq=no
++ build_leveldb=no
++fi
++
++if test x$build_leveldb = xno; then
++ system_leveldb=no
++fi
++dnl Check for leveldb, only if explicitly requested
++if test x$system_leveldb != xno; then
++ build_leveldb=no
++ LEVELDB_CPPFLAGS=
++ AC_CHECK_LIB([leveldb],[main],[
++ LIBLEVELDB=-lleveldb
++ ],[
++ AC_MSG_ERROR([leveldb library not found; using --with-system-leveldb is not supported anyway])
++ ])
++ AC_CHECK_HEADER([leveldb/filter_policy.h],[],[
++ AC_MSG_ERROR([LevelDB headers not found; using --with-system-leveldb is not supported anyway])
++ ])
++ AC_CHECK_HEADER([leveldb/helpers/memenv.h],[
++ AC_MSG_CHECKING([for memenv.h path])
++ BITCOIN_SUBDIR_TO_INCLUDE([LEVELDB_CPPFLAGS],[leveldb/helpers/],[memenv])
++ ],[
++ AC_CHECK_HEADER([memenv.h],[],[
++ AC_MSG_ERROR([LevelDB headers not found; using --with-system-leveldb is not supported anyway])
++ ])
++ ])
++
++ AC_MSG_CHECKING([library containing leveldb::NewMemEnv])
++ TEMP_LIBS="$LIBS"
++ TEMP_CPPFLAGS="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS $LEVELDB_CPPFLAGS"
++ for searchlib in "" "-lmemenv" ERR; do
++ if test "x$searchlib" = "xERR"; then
++ AC_MSG_RESULT([no])
++ AC_MSG_ERROR([LevelDB's memenv helper not found; using --with-system-leveldb is not supported anyway])
++ fi
++ searchlib="$searchlib $LIBLEVELDB"
++ LIBS="$searchlib $TEMP_LIBS"
++ AC_LINK_IFELSE([AC_LANG_SOURCE([
++ #include <leveldb/env.h>
++ #include <leveldb/helpers/memenv.h>
++
++ int main() {
++ leveldb::Env *myenv = leveldb::NewMemEnv(leveldb::Env::Default());
++ delete myenv;
++ }
++ ])],[
++ AC_MSG_RESULT([$searchlib])
++ LIBMEMENV="$searchlib"
++ break
++ ])
++ done
++ LIBS="$TEMP_LIBS"
++ CPPFLAGS="$TEMP_CPPFLAGS"
+ fi
++AM_CONDITIONAL([EMBEDDED_LEVELDB],[test x$build_leveldb = xyes])
++AC_SUBST(LEVELDB_CPPFLAGS)
++AC_SUBST(LIBLEVELDB)
++AC_SUBST(LIBMEMENV)
++AC_ARG_WITH([system-leveldb],
++ [AS_HELP_STRING([--with-system-leveldb],
++ [Build with system LevelDB (default is no; DANGEROUS; NOT SUPPORTED)])],
++ [system_leveldb=$withval],
++ [system_leveldb=no]
++)
+
+ dnl Check for libminiupnpc (optional)
+ if test "$use_upnp" != "no"; then
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -23,7 +23,7 @@ noinst_PROGRAMS =
+ TESTS =
+ BENCHMARKS =
+
+-BITCOIN_INCLUDES=-I$(builddir) -I$(srcdir)/$(MINISKETCH_INCLUDE_DIR_INT) -I$(srcdir)/secp256k1/include -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT) $(LEVELDB_CPPFLAGS)
++BITCOIN_INCLUDES=-I$(builddir) -I$(srcdir)/$(MINISKETCH_INCLUDE_DIR_INT) $(libsecp256k1_CFLAGS) -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT) $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS)
+
+ LIBBITCOIN_NODE=libbitcoin_node.a
+ LIBBITCOIN_COMMON=libbitcoin_common.a
+@@ -32,7 +32,11 @@ LIBBITCOIN_CLI=libbitcoin_cli.a
+ LIBBITCOIN_UTIL=libbitcoin_util.a
+ LIBBITCOIN_CRYPTO_BASE=crypto/libbitcoin_crypto_base.la
+ LIBBITCOINQT=qt/libbitcoinqt.a
++if EMBEDDED_LIBSECP256K1
+ LIBSECP256K1=secp256k1/libsecp256k1.la
++else
++LIBSECP256K1=$(libsecp256k1_LIBS)
++endif
+
+ if ENABLE_ZMQ
+ LIBBITCOIN_ZMQ=libbitcoin_zmq.a
+@@ -67,8 +71,10 @@ LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_ARM_SHANI)
+ endif
+ noinst_LTLIBRARIES += $(LIBBITCOIN_CRYPTO)
+
++if EMBEDDED_LIBSECP256K1
+ $(LIBSECP256K1): $(wildcard secp256k1/src/*.h) $(wildcard secp256k1/src/*.c) $(wildcard secp256k1/include/*)
+ $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
++endif
+
+ # Make is not made aware of per-object dependencies to avoid limiting building parallelization
+ # But to build the less dependent modules first, we manually select their order here:
+@@ -1080,7 +1086,9 @@ endif
+ include Makefile.minisketch.include
+
+ include Makefile.crc32c.include
++if EMBEDDED_LEVELDB
+ include Makefile.leveldb.include
++endif
+
+ include Makefile.test_util.include
+ include Makefile.test_fuzz.include
+--- a/src/Makefile.test.include
++++ b/src/Makefile.test.include
+@@ -377,8 +377,9 @@ if ENABLE_BENCH
+ $(BENCH_BINARY) --sanity-check > /dev/null
+ endif
+ endif
++if EMBEDDED_LIBSECP256K1
+ $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C secp256k1 check
+-
++endif
+ if ENABLE_TESTS
+ UNIVALUE_TESTS = univalue/test/object univalue/test/unitester
+ noinst_PROGRAMS += $(UNIVALUE_TESTS)
+--- a/src/dbwrapper.cpp
++++ b/src/dbwrapper.cpp
+@@ -7,26 +7,45 @@
+ #include <fs.h>
+ #include <logging.h>
+ #include <random.h>
++#include <node/interface_ui.h>
+ #include <tinyformat.h>
+ #include <util/strencodings.h>
+ #include <util/system.h>
++#include <util/translation.h>
+
+ #include <algorithm>
+ #include <cassert>
+ #include <cstdarg>
+ #include <cstdint>
+ #include <cstdio>
++#include <leveldb/c.h>
+ #include <leveldb/cache.h>
+ #include <leveldb/db.h>
+ #include <leveldb/env.h>
+ #include <leveldb/filter_policy.h>
+-#include <leveldb/helpers/memenv/memenv.h>
++#include <leveldb/helpers/memenv.h>
+ #include <leveldb/iterator.h>
+ #include <leveldb/options.h>
+ #include <leveldb/status.h>
+ #include <memory>
+ #include <optional>
+
++bool dbwrapper_SanityCheck()
++{
++ unsigned long header_version = (leveldb::kMajorVersion << 16) | leveldb::kMinorVersion;
++ unsigned long library_version = (leveldb_major_version() << 16) | leveldb_minor_version();
++
++ if (header_version != library_version) {
++ InitError(Untranslated(strprintf("Compiled with LevelDB %d.%d, but linked with LevelDB %d.%d (incompatible).",
++ leveldb::kMajorVersion, leveldb::kMinorVersion,
++ leveldb_major_version(), leveldb_minor_version()
++ )));
++ return false;
++ }
++
++ return true;
++}
++
+ class CBitcoinLevelDBLogger : public leveldb::Logger {
+ public:
+ // This code is adapted from posix_logger.h, which is why it is using vsprintf.
+--- a/src/dbwrapper.h
++++ b/src/dbwrapper.h
+@@ -31,6 +31,8 @@ class Env;
+ static const size_t DBWRAPPER_PREALLOC_KEY_SIZE = 64;
+ static const size_t DBWRAPPER_PREALLOC_VALUE_SIZE = 1024;
+
++bool dbwrapper_SanityCheck();
++
+ class dbwrapper_error : public std::runtime_error
+ {
+ public:
+--- a/src/kernel/checks.cpp
++++ b/src/kernel/checks.cpp
+@@ -3,9 +3,10 @@
+ // file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+ #include <kernel/checks.h>
+-
++#include <dbwrapper.h>
+ #include <key.h>
+ #include <random.h>
++#include <node/interface_ui.h>
+ #include <util/time.h>
+ #include <util/translation.h>
+
+@@ -15,6 +16,10 @@ namespace kernel {
+
+ std::optional<bilingual_str> SanityChecks(const Context&)
+ {
++ if (!dbwrapper_SanityCheck()) {
++ return Untranslated("Database sanity check failure. Aborting.");
++ }
++
+ if (!ECC_InitSanityCheck()) {
+ return Untranslated("Elliptic curve cryptography sanity check failure. Aborting.");
+ }
+--- a/src/qt/createwalletdialog.cpp
++++ b/src/qt/createwalletdialog.cpp
+@@ -12,6 +12,7 @@
+
+ #include <qt/guiutil.h>
+
++#include <QMessageBox>
+ #include <QPushButton>
+
+ CreateWalletDialog::CreateWalletDialog(QWidget* parent) :
+@@ -94,9 +95,16 @@ CreateWalletDialog::CreateWalletDialog(QWidget* parent) :
+ ui->external_signer_checkbox->setChecked(false);
+ #endif
+
+-#ifndef USE_BDB
+- ui->descriptor_checkbox->setEnabled(false);
+- ui->descriptor_checkbox->setChecked(true);
++#ifdef USE_BDB
++ connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
++#else
++ connect(ui->buttonBox, &QDialogButtonBox::accepted, [this]() {
++ if (!this->isDescriptorWalletChecked()) {
++ QMessageBox::critical(this, tr("Cannot create wallet"), tr("This build was compiled without BDB support, so only experimental descriptor wallets are supported."));
++ return;
++ }
++ this->accept();
++ });
+ #endif
+
+ #ifndef ENABLE_EXTERNAL_SIGNER
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-01-05 4:38 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-13 3:18 [gentoo-commits] repo/gentoo:master commit in: dev-util/bitcoin-tx/files/, dev-util/bitcoin-tx/ Craig Andrews
-- strict thread matches above, loose matches on Subject: below --
2020-04-10 17:54 Craig Andrews
2021-12-19 8:36 Florian Schmaus
2023-01-05 4:38 Sam James
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox