summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Mair-Keimberger (asterix) <m.mairkeimberger@gmail.com>2017-01-07 18:12:20 +0100
committerAnthony G. Basile <blueness@gentoo.org>2017-01-07 17:27:49 -0500
commit314ecb567ccb785baac512771afb056d4b1a0adc (patch)
tree34fe6d37fa42918f64295cbf53a98e7b720d6e03
parentnet-p2p/bitcoind: remove unused patches/files (diff)
downloadgentoo-314ecb567ccb785baac512771afb056d4b1a0adc.tar.gz
gentoo-314ecb567ccb785baac512771afb056d4b1a0adc.tar.bz2
gentoo-314ecb567ccb785baac512771afb056d4b1a0adc.zip
net-p2p/bitcoin-qt: remove unused patches
-rw-r--r--net-p2p/bitcoin-qt/files/0.8-openssl-101k.patch31
-rw-r--r--net-p2p/bitcoin-qt/files/0.8.2-sys_leveldb.patch183
-rw-r--r--net-p2p/bitcoin-qt/files/0.9-openssl-101k.patch31
-rw-r--r--net-p2p/bitcoin-qt/files/0.9.0-sys_leveldb.patch34
-rw-r--r--net-p2p/bitcoin-qt/files/0.9.x-ljr_noblacklist.patch12
-rw-r--r--net-p2p/bitcoin-qt/files/9999-sys_libsecp256k1.patch80
-rw-r--r--net-p2p/bitcoin-qt/files/9999-syslibs.patch253
7 files changed, 0 insertions, 624 deletions
diff --git a/net-p2p/bitcoin-qt/files/0.8-openssl-101k.patch b/net-p2p/bitcoin-qt/files/0.8-openssl-101k.patch
deleted file mode 100644
index 5eaaba9a5788..000000000000
--- a/net-p2p/bitcoin-qt/files/0.8-openssl-101k.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/src/key.cpp b/src/key.cpp
-index 75114c6..7fcb17d 100644
---- a/src/key.cpp
-+++ b/src/key.cpp
-@@ -376,11 +376,23 @@ bool CKey::SetCompactSignature(uint256 hash, const std::vector<unsigned char>& v
-
- bool CKey::Verify(uint256 hash, const std::vector<unsigned char>& vchSig)
- {
-- // -1 = error, 0 = bad sig, 1 = good
-- if (ECDSA_verify(0, (unsigned char*)&hash, sizeof(hash), &vchSig[0], vchSig.size(), pkey) != 1)
-+ if (vchSig.empty())
- return false;
-
-- return true;
-+ // New versions of OpenSSL will reject non-canonical DER signatures. de/re-serialize first.
-+ unsigned char *norm_der = NULL;
-+ ECDSA_SIG *norm_sig = ECDSA_SIG_new();
-+ const unsigned char* sigptr = &vchSig[0];
-+ d2i_ECDSA_SIG(&norm_sig, &sigptr, vchSig.size());
-+ int derlen = i2d_ECDSA_SIG(norm_sig, &norm_der);
-+ ECDSA_SIG_free(norm_sig);
-+ if (derlen <= 0)
-+ return false;
-+
-+ // -1 = error, 0 = bad sig, 1 = good
-+ bool ret = ECDSA_verify(0, (unsigned char*)&hash, sizeof(hash), norm_der, derlen, pkey) == 1;
-+ OPENSSL_free(norm_der);
-+ return ret;
- }
-
- bool CKey::VerifyCompact(uint256 hash, const std::vector<unsigned char>& vchSig)
diff --git a/net-p2p/bitcoin-qt/files/0.8.2-sys_leveldb.patch b/net-p2p/bitcoin-qt/files/0.8.2-sys_leveldb.patch
deleted file mode 100644
index 92f803f4e4f1..000000000000
--- a/net-p2p/bitcoin-qt/files/0.8.2-sys_leveldb.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-diff --git a/bitcoin-qt.pro b/bitcoin-qt.pro
-index cf80986..520b5df 100644
---- a/bitcoin-qt.pro
-+++ b/bitcoin-qt.pro
-@@ -4,7 +4,7 @@ macx:TARGET = "Bitcoin-Qt"
- VERSION = 0.8.0
- INCLUDEPATH += src src/json src/qt
- QT += network
--DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE
-+DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE LEVELDB_WITHOUT_MEMENV
- CONFIG += no_include_pwd
- CONFIG += thread
-
-@@ -98,25 +98,29 @@ contains(BITCOIN_NEED_QT_PLUGINS, 1) {
- QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
- }
-
-+contains(USE_SYSTEM_LEVELDB, 1) {
-+ LIBS += -lleveldb
-+} else {
- INCLUDEPATH += src/leveldb/include src/leveldb/helpers
--LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a
-+LIBS += $$PWD/src/leveldb/libleveldb.a
- !win32 {
- # we use QMAKE_CXXFLAGS_RELEASE even without RELEASE=1 because we use RELEASE to indicate linking preferences not -O preferences
-- genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a
-+ genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a
- } else {
- # make an educated guess about what the ranlib command is called
- isEmpty(QMAKE_RANLIB) {
- QMAKE_RANLIB = $$replace(QMAKE_STRIP, strip, ranlib)
- }
- LIBS += -lshlwapi
-- genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a
-+ genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a
- }
- genleveldb.target = $$PWD/src/leveldb/libleveldb.a
- genleveldb.depends = FORCE
- PRE_TARGETDEPS += $$PWD/src/leveldb/libleveldb.a
- QMAKE_EXTRA_TARGETS += genleveldb
-+}
- # Gross ugly hack that depends on qmake internals, unfortunately there is no other way to do it.
--QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb ; $(MAKE) clean
-+QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb && $(MAKE) clean || true
-
- # regenerate src/build.h
- !win32|contains(USE_BUILD_INFO, 1) {
-diff --git a/src/leveldb.cpp b/src/leveldb.cpp
-index b41764f..f71e801 100644
---- a/src/leveldb.cpp
-+++ b/src/leveldb.cpp
-@@ -8,7 +8,9 @@
- #include <leveldb/env.h>
- #include <leveldb/cache.h>
- #include <leveldb/filter_policy.h>
-+#ifndef LEVELDB_WITHOUT_MEMENV
- #include <memenv/memenv.h>
-+#endif
-
- #include <boost/filesystem.hpp>
-
-@@ -42,8 +44,12 @@ CLevelDB::CLevelDB(const boost::filesystem::path &path, size_t nCacheSize, bool
- options = GetOptions(nCacheSize);
- options.create_if_missing = true;
- if (fMemory) {
-+#ifndef LEVELDB_WITHOUT_MEMENV
- penv = leveldb::NewMemEnv(leveldb::Env::Default());
- options.env = penv;
-+#else
-+ throw std::runtime_error("CLevelDB(): compiled without memenv support");
-+#endif
- } else {
- if (fWipe) {
- printf("Wiping LevelDB in %s\n", path.string().c_str());
-diff --git a/src/makefile.unix b/src/makefile.unix
-index 081edaf..1735b89 100644
---- a/src/makefile.unix
-+++ b/src/makefile.unix
-@@ -104,8 +104,7 @@ xCXXFLAGS=-O2 -pthread -Wall -Wextra -Wformat -Wformat-security -Wno-unused-para
- # adds some defaults in front. Unfortunately, LDFLAGS=... $(LDFLAGS) does not work.
- xLDFLAGS=$(LDHARDENING) $(LDFLAGS)
-
--OBJS= \
-- leveldb/libleveldb.a \
-+BASEOBJS := \
- obj/alert.o \
- obj/version.o \
- obj/checkpoints.o \
-@@ -114,7 +113,6 @@ OBJS= \
- obj/crypter.o \
- obj/key.o \
- obj/db.o \
-- obj/init.o \
- obj/keystore.o \
- obj/main.o \
- obj/net.o \
-@@ -134,24 +132,43 @@ OBJS= \
- obj/hash.o \
- obj/bloom.o \
- obj/noui.o \
-- obj/leveldb.o \
- obj/txdb.o
-
-+OBJS := \
-+ obj/leveldb.o \
-+ obj/init.o \
-+ $(BASEOBJS)
-+
-+TESTOBJS := \
-+ obj-test/leveldb.o \
-+ $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) \
-+ $(BASEOBJS)
-+
-
- all: bitcoind
-
- test check: test_bitcoin FORCE
- ./test_bitcoin
-
-+ifdef USE_SYSTEM_LEVELDB
-+ LIBS += -lleveldb
-+ TESTLIBS += -lmemenv
-+else
- #
- # LevelDB support
- #
- MAKEOVERRIDES =
--LIBS += $(CURDIR)/leveldb/libleveldb.a $(CURDIR)/leveldb/libmemenv.a
-+LIBS += $(CURDIR)/leveldb/libleveldb.a
-+TESTLIBS += $(CURDIR)/leveldb/libmemenv.a
- DEFS += $(addprefix -I,$(CURDIR)/leveldb/include)
- DEFS += $(addprefix -I,$(CURDIR)/leveldb/helpers)
- leveldb/libleveldb.a:
-- @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a libmemenv.a && cd ..
-+ @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a && cd ..
-+leveldb/libmemenv.a:
-+ @echo "Building LevelDB memenv ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libmemenv.a && cd ..
-+OBJS += leveldb/libleveldb.a
-+TESTOBJS += leveldb/libmemenv.a
-+endif
-
- # auto-generated dependencies:
- -include obj/*.P
-@@ -162,26 +179,28 @@ obj/build.h: FORCE
- version.cpp: obj/build.h
- DEFS += -DHAVE_BUILD_INFO
-
--obj/%.o: %.cpp
-- $(CXX) -c $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $<
-+P_TO_D = \
- @cp $(@:%.o=%.d) $(@:%.o=%.P); \
-- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
-+ sed -e 's/\#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
- -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
- rm -f $(@:%.o=%.d)
-
--bitcoind: $(OBJS:obj/%=obj/%)
-- $(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS)
-+obj/%.o: %.cpp
-+ $(CXX) -c $(xCXXFLAGS) -DLEVELDB_WITHOUT_MEMENV -MMD -MF $(@:%.o=%.d) -o $@ $<
-+ $(P_TO_D)
-
--TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
-+bitcoind: $(OBJS)
-+ $(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS)
-
- obj-test/%.o: test/%.cpp
- $(CXX) -c $(TESTDEFS) $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $<
-- @cp $(@:%.o=%.d) $(@:%.o=%.P); \
-- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
-- -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
-- rm -f $(@:%.o=%.d)
-+ $(P_TO_D)
-+
-+obj-test/leveldb.o: leveldb.cpp
-+ $(CXX) -c $(TESTDEFS) $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $<
-+ $(P_TO_D)
-
--test_bitcoin: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
-+test_bitcoin: $(TESTOBJS)
- $(LINK) $(xCXXFLAGS) -o $@ $(LIBPATHS) $^ $(TESTLIBS) $(xLDFLAGS) $(LIBS)
-
- clean:
diff --git a/net-p2p/bitcoin-qt/files/0.9-openssl-101k.patch b/net-p2p/bitcoin-qt/files/0.9-openssl-101k.patch
deleted file mode 100644
index 80f64887425b..000000000000
--- a/net-p2p/bitcoin-qt/files/0.9-openssl-101k.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/src/key.cpp b/src/key.cpp
-index 5b261bb..a845ba1 100644
---- a/src/key.cpp
-+++ b/src/key.cpp
-@@ -227,10 +227,23 @@ public:
- }
-
- bool Verify(const uint256 &hash, const std::vector<unsigned char>& vchSig) {
-- // -1 = error, 0 = bad sig, 1 = good
-- if (ECDSA_verify(0, (unsigned char*)&hash, sizeof(hash), &vchSig[0], vchSig.size(), pkey) != 1)
-+ if (vchSig.empty())
- return false;
-- return true;
-+
-+ // New versions of OpenSSL will reject non-canonical DER signatures. de/re-serialize first.
-+ unsigned char *norm_der = NULL;
-+ ECDSA_SIG *norm_sig = ECDSA_SIG_new();
-+ const unsigned char* sigptr = &vchSig[0];
-+ d2i_ECDSA_SIG(&norm_sig, &sigptr, vchSig.size());
-+ int derlen = i2d_ECDSA_SIG(norm_sig, &norm_der);
-+ ECDSA_SIG_free(norm_sig);
-+ if (derlen <= 0)
-+ return false;
-+
-+ // -1 = error, 0 = bad sig, 1 = good
-+ bool ret = ECDSA_verify(0, (unsigned char*)&hash, sizeof(hash), norm_der, derlen, pkey) == 1;
-+ OPENSSL_free(norm_der);
-+ return ret;
- }
-
- bool SignCompact(const uint256 &hash, unsigned char *p64, int &rec) {
diff --git a/net-p2p/bitcoin-qt/files/0.9.0-sys_leveldb.patch b/net-p2p/bitcoin-qt/files/0.9.0-sys_leveldb.patch
deleted file mode 100644
index 60e9f2b20941..000000000000
--- a/net-p2p/bitcoin-qt/files/0.9.0-sys_leveldb.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-commit c38e0af3e021eb0b2aba846c77b06ca71de06b11 (personal-github/sys_leveldb, sys_leveldb)
-Author: Luke Dashjr <luke-jr+git@utopios.org>
-Date: Mon Sep 9 03:06:17 2013 +0000
-
- configure: Add unsupported --with-system-leveldb configure flag
-
-diff --git a/configure.ac b/configure.ac
-index 3ed4549..5a5852d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -332,10 +332,22 @@ AC_TRY_COMPILE([#include <sys/socket.h>],
- [ AC_MSG_RESULT(no)]
- )
-
-+dnl Check for leveldb, only if explicitly requested
- LEVELDB_CPPFLAGS=
- LIBLEVELDB=
- LIBMEMENV=
--AM_CONDITIONAL([EMBEDDED_LEVELDB],[true])
-+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]
-+)
-+if test x$system_leveldb != xno; then
-+ LEVELDB_CPPFLAGS=
-+ LIBLEVELDB=-lleveldb
-+ LIBMEMENV=-lmemenv
-+fi
-+AM_CONDITIONAL([EMBEDDED_LEVELDB],[test x$system_leveldb = xno])
- AC_SUBST(LEVELDB_CPPFLAGS)
- AC_SUBST(LIBLEVELDB)
- AC_SUBST(LIBMEMENV)
diff --git a/net-p2p/bitcoin-qt/files/0.9.x-ljr_noblacklist.patch b/net-p2p/bitcoin-qt/files/0.9.x-ljr_noblacklist.patch
deleted file mode 100644
index 35194662ecd2..000000000000
--- a/net-p2p/bitcoin-qt/files/0.9.x-ljr_noblacklist.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/script.cpp b/src/script.cpp
-index 24bbbad..a60d8b6 100644
---- a/src/script.cpp
-+++ b/src/script.cpp
-@@ -1870,6 +1870,7 @@ bool fIsBareMultisigStd = false;
-
- const char *CScript::IsBlacklisted() const
- {
-+ return false;
- if (this->size() >= 7 && this->at(0) == OP_DUP)
- {
- // pay-to-pubkeyhash
diff --git a/net-p2p/bitcoin-qt/files/9999-sys_libsecp256k1.patch b/net-p2p/bitcoin-qt/files/9999-sys_libsecp256k1.patch
deleted file mode 100644
index 77ed10675e30..000000000000
--- a/net-p2p/bitcoin-qt/files/9999-sys_libsecp256k1.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 6784521..3598bab 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -634,6 +634,12 @@ AC_ARG_WITH([daemon],
-
- BITCOIN_QT_INIT
-
-+PKG_CHECK_MODULES([libsecp256k1],[libsecp256k1],,[true])
-+AC_ARG_WITH([libsecp256k1-verify],[],[use_libsecp256k1=$withval],[use_libsecp256k1=yes])
-+if test "x$use_libsecp256k1" = "xyes"; then
-+ AC_DEFINE(USE_SECP256K1,1,[USE_SECP256K1])
-+fi
-+
- if test x$use_pkgconfig = xyes; then
-
- if test x"$PKG_CONFIG" = "x"; then
-@@ -869,9 +875,6 @@ PKGCONFIG_LIBDIR_TEMP="$PKG_CONFIG_LIBDIR"
- unset PKG_CONFIG_LIBDIR
- PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
-
--ac_configure_args="${ac_configure_args} --disable-shared --with-pic"
--AC_CONFIG_SUBDIRS([src/secp256k1])
--
- AC_OUTPUT
-
- dnl Taken from https://wiki.debian.org/RpathIssue
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 0d45203..3a44a16 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -1,4 +1,3 @@
--DIST_SUBDIRS = secp256k1
- AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS)
-
-
-@@ -20,7 +19,7 @@ endif
- BITCOIN_CONFIG_INCLUDES=-I$(builddir)/config
- BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS)
-
--BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include
-+BITCOIN_INCLUDES += $(libsecp256k1_CFLAGS)
-
- LIBBITCOIN_SERVER=libbitcoin_server.a
- LIBBITCOIN_WALLET=libbitcoin_wallet.a
-@@ -30,10 +29,7 @@ LIBBITCOIN_UTIL=libbitcoin_util.a
- LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
- LIBBITCOIN_UNIVALUE=univalue/libbitcoin_univalue.a
- LIBBITCOINQT=qt/libbitcoinqt.a
--LIBSECP256K1=secp256k1/libsecp256k1.la
--
--$(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
-- $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
-+LIBSECP256K1=$(libsecp256k1_LIBS)
-
- # 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:
-@@ -364,7 +360,7 @@ libbitcoinconsensus_la_LDFLAGS = -no-undefined $(RELDFLAGS)
- libbitcoinconsensus_la_LIBADD = $(CRYPTO_LIBS)
- libbitcoinconsensus_la_CPPFLAGS = $(CRYPTO_CFLAGS) -I$(builddir)/obj -DBUILD_BITCOIN_INTERNAL
- if USE_LIBSECP256K1
--libbitcoinconsensus_la_LIBADD += secp256k1/libsecp256k1.la
-+libbitcoinconsensus_la_LIBADD += $(LIBSECP256K1)
- endif
- endif
-
-diff --git a/src/Makefile.test.include b/src/Makefile.test.include
-index 5fd2afe..014092a 100644
---- a/src/Makefile.test.include
-+++ b/src/Makefile.test.include
-@@ -104,9 +104,6 @@ bitcoin_test_check: $(TEST_BINARY) FORCE
- bitcoin_test_clean : FORCE
- rm -f $(CLEAN_BITCOIN_TEST) $(test_test_bitcoin_OBJECTS) $(TEST_BINARY)
-
--check-local:
-- $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C secp256k1 check
--
- %.json.h: %.json
- @$(MKDIR_P) $(@D)
- @echo "namespace json_tests{" > $@
diff --git a/net-p2p/bitcoin-qt/files/9999-syslibs.patch b/net-p2p/bitcoin-qt/files/9999-syslibs.patch
deleted file mode 100644
index c594c54634ed..000000000000
--- a/net-p2p/bitcoin-qt/files/9999-syslibs.patch
+++ /dev/null
@@ -1,253 +0,0 @@
-diff --git a/build-aux/m4/bitcoin_subdir_to_include.m4 b/build-aux/m4/bitcoin_subdir_to_include.m4
-index 66f106c..5f0a3b1 100644
---- a/build-aux/m4/bitcoin_subdir_to_include.m4
-+++ b/build-aux/m4/bitcoin_subdir_to_include.m4
-@@ -5,7 +5,7 @@ AC_DEFUN([BITCOIN_SUBDIR_TO_INCLUDE],[
- AC_MSG_RESULT([default])
- else
- echo "#include <$2$3.h>" >conftest.cpp
-- newinclpath=`${CXXCPP} ${CPPFLAGS} -M conftest.cpp 2>/dev/null | [ tr -d '\\n\\r\\\\' | sed -e 's/^.*[[:space:]:]\(\/[^[:space:]]*\)]$3[\.h[[:space:]].*$/\1/' -e t -e d`]
-+ newinclpath=$(${CXXCPP} ${CPPFLAGS} -M conftest.cpp 2>/dev/null | sed [-E -e ':a' -e '/\\$/!b b' -e N -e 's/\\\n/ /' -e 't a' -e ':b' -e 's/^[^:]*:[[:space:]]*(([^[:space:]\]|\\.)*[[:space:]])*(([^[:space:]\]|\\.)*)]$3\.h[([[:space:]].*)?$/\3/' -e 't' -e d])
- AC_MSG_RESULT([${newinclpath}])
- if test "x${newinclpath}" != "x"; then
- eval "$1=\"\$$1\"' -I${newinclpath}'"
-diff --git a/configure.ac b/configure.ac
-index 939dfea..6c9acb3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -200,6 +200,18 @@ AC_ARG_WITH([utils],
- [build_bitcoin_utils=$withval],
- [build_bitcoin_utils=yes])
-
-+AC_ARG_ENABLE([util-cli],
-+ [AS_HELP_STRING([--enable-util-cli],
-+ [build bitcoin-cli])],
-+ [build_bitcoin_cli=$enableval],
-+ [build_bitcoin_cli=$build_bitcoin_utils])
-+
-+AC_ARG_ENABLE([util-tx],
-+ [AS_HELP_STRING([--enable-util-tx],
-+ [build bitcoin-tx])],
-+ [build_bitcoin_tx=$enableval],
-+ [build_bitcoin_tx=$build_bitcoin_utils])
-+
- AC_ARG_WITH([libs],
- [AS_HELP_STRING([--with-libs],
- [build libraries (default=yes)])],
-@@ -531,14 +543,65 @@ if test x$use_reduce_exports = xyes; then
- [AC_MSG_ERROR([Cannot set default symbol visibility. Use --disable-reduce-exports.])])
- fi
-
-+dnl Check for leveldb, only if explicitly requested
- LEVELDB_CPPFLAGS=
- LIBLEVELDB=
- LIBMEMENV=
--AM_CONDITIONAL([EMBEDDED_LEVELDB],[true])
-+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]
-+)
-+if test x$system_leveldb != xno; then
-+ LEVELDB_CPPFLAGS=
-+ AC_CHECK_LIB([leveldb],[main],[
-+ LIBLEVELDB=-lleveldb
-+ ],[
-+ AC_MSG_ERROR([leveldb library not found; using --with-system-leveldb is not supported anyway])
-+ ])
-+ TEMP_LIBS="$LIBS"
-+ LIBS="$LIBS $LIBLEVELDB"
-+ AC_CHECK_LIB([memenv],[main],[
-+ LIBMEMENV=-lmemenv
-+ ],[
-+ AC_MSG_ERROR([LevelDB's memenv library not found; using --with-system-leveldb is not supported anyway])
-+ ])
-+ LIBS="$TEMP_LIBS"
-+ 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])
-+ ])
-+ ])
-+fi
-+AM_CONDITIONAL([EMBEDDED_LEVELDB],[test x$system_leveldb = xno])
- AC_SUBST(LEVELDB_CPPFLAGS)
- AC_SUBST(LIBLEVELDB)
- AC_SUBST(LIBMEMENV)
-
-+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 x$enable_wallet != xno; then
- dnl Check for libdb_cxx only if wallet enabled
- BITCOIN_FIND_BDB48
-@@ -558,7 +621,7 @@ BITCOIN_QT_INIT
- dnl sets $bitcoin_enable_qt, $bitcoin_enable_qt_test, $bitcoin_enable_qt_dbus
- BITCOIN_QT_CONFIGURE([$use_pkgconfig], [qt5])
-
--if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests = xnononono; then
-+if test x$build_bitcoin_cli$build_bitcoin_tx$build_bitcoind$bitcoin_enable_qt$use_tests = xnonononono; then
- use_boost=no
- else
- use_boost=yes
-@@ -848,9 +911,13 @@ AC_MSG_CHECKING([whether to build bitcoind])
- AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
- AC_MSG_RESULT($build_bitcoind)
-
--AC_MSG_CHECKING([whether to build utils (bitcoin-cli bitcoin-tx)])
--AM_CONDITIONAL([BUILD_BITCOIN_UTILS], [test x$build_bitcoin_utils = xyes])
--AC_MSG_RESULT($build_bitcoin_utils)
-+AC_MSG_CHECKING([whether to build bitcoin-cli])
-+AM_CONDITIONAL([BUILD_BITCOIN_CLI], [test x$build_bitcoin_cli = xyes])
-+AC_MSG_RESULT($build_bitcoin_cli)
-+
-+AC_MSG_CHECKING([whether to build bitcoin-tx])
-+AM_CONDITIONAL([BUILD_BITCOIN_TX], [test x$build_bitcoin_tx = xyes])
-+AC_MSG_RESULT($build_bitcoin_tx)
-
- AC_MSG_CHECKING([whether to build libraries])
- AM_CONDITIONAL([BUILD_BITCOIN_LIBS], [test x$build_bitcoin_libs = xyes])
-@@ -975,7 +1042,7 @@ else
- AC_MSG_RESULT([no])
- fi
-
--if test x$build_bitcoin_utils$build_bitcoin_libs$build_bitcoind$bitcoin_enable_qt$use_tests = xnonononono; then
-+if test x$build_bitcoin_cli$build_bitcoin_tx$build_bitcoin_libs$build_bitcoind$bitcoin_enable_qt$use_tests = xnononononono; then
- AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon --with-gui or --enable-tests])
- fi
-
-@@ -1062,8 +1129,10 @@ if test x$system_univalue = xno; then
- AC_CONFIG_SUBDIRS([src/univalue])
- fi
-
-+if test x$system_libsecp256k1 = xno; then
- ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery"
- AC_CONFIG_SUBDIRS([src/secp256k1])
-+fi
-
- AC_OUTPUT
-
-diff --git a/qa/pull-tester/rpc-tests.py b/qa/pull-tester/rpc-tests.py
-index 7649c11..978419b 100755
---- a/qa/pull-tester/rpc-tests.py
-+++ b/qa/pull-tester/rpc-tests.py
-@@ -36,8 +36,8 @@ if not vars().has_key('ENABLE_WALLET'):
- ENABLE_WALLET=0
- if not vars().has_key('ENABLE_BITCOIND'):
- ENABLE_BITCOIND=0
--if not vars().has_key('ENABLE_UTILS'):
-- ENABLE_UTILS=0
-+if not vars().has_key('ENABLE_CLI'):
-+ ENABLE_CLI=0
- if not vars().has_key('ENABLE_ZMQ'):
- ENABLE_ZMQ=0
-
-@@ -141,7 +141,7 @@ def runtests():
- coverage = RPCCoverage()
- print("Initializing coverage directory at %s\n" % coverage.dir)
-
-- if(ENABLE_WALLET == 1 and ENABLE_UTILS == 1 and ENABLE_BITCOIND == 1):
-+ if(ENABLE_WALLET == 1 and ENABLE_CLI == 1 and ENABLE_BITCOIND == 1):
- rpcTestDir = buildDir + '/qa/rpc-tests/'
- run_extended = '-extended' in opts
- cov_flag = coverage.flag if coverage else ''
-@@ -187,7 +187,7 @@ def runtests():
- coverage.cleanup()
-
- else:
-- print "No rpc tests to run. Wallet, utils, and bitcoind must all be enabled"
-+ print "No rpc tests to run. Wallet, cli, and bitcoind must all be enabled"
-
-
- class RPCCoverage(object):
-diff --git a/qa/pull-tester/tests_config.py.in b/qa/pull-tester/tests_config.py.in
-index 937b423..71a917c 100644
---- a/qa/pull-tester/tests_config.py.in
-+++ b/qa/pull-tester/tests_config.py.in
-@@ -8,7 +8,7 @@ EXEEXT="@EXEEXT@"
-
- # These will turn into comments if they were disabled when configuring.
- @ENABLE_WALLET_TRUE@ENABLE_WALLET=1
--@BUILD_BITCOIN_UTILS_TRUE@ENABLE_UTILS=1
-+@BUILD_BITCOIN_CLI_TRUE@ENABLE_CLI=1
- @BUILD_BITCOIND_TRUE@ENABLE_BITCOIND=1
- @ENABLE_ZMQ_TRUE@ENABLE_ZMQ=1
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index fa7a78f..cc2f2ca 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -31,7 +31,7 @@ endif
- BITCOIN_CONFIG_INCLUDES=-I$(builddir)/config
- BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS)
-
--BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include
-+BITCOIN_INCLUDES += $(libsecp256k1_CFLAGS)
- BITCOIN_INCLUDES += $(UNIVALUE_CFLAGS)
-
- LIBBITCOIN_SERVER=libbitcoin_server.a
-@@ -42,10 +42,16 @@ LIBBITCOIN_CLI=libbitcoin_cli.a
- LIBBITCOIN_UTIL=libbitcoin_util.a
- LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
- LIBBITCOINQT=qt/libbitcoinqt.a
-+if EMBEDDED_LIBSECP256K1
- LIBSECP256K1=secp256k1/libsecp256k1.la
-+else
-+LIBSECP256K1=$(libsecp256k1_LIBS)
-+endif
-
-+if EMBEDDED_LIBSECP256K1
- $(LIBSECP256K1): $(wildcard secp256k1/src/*) $(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:
-@@ -79,8 +85,11 @@ if BUILD_BITCOIND
- bin_PROGRAMS += bitcoind
- endif
-
--if BUILD_BITCOIN_UTILS
-- bin_PROGRAMS += bitcoin-cli bitcoin-tx
-+if BUILD_BITCOIN_CLI
-+ bin_PROGRAMS += bitcoin-cli
-+endif
-+if BUILD_BITCOIN_TX
-+ bin_PROGRAMS += bitcoin-tx
- endif
-
- .PHONY: FORCE check-symbols check-security
-diff --git a/src/Makefile.test.include b/src/Makefile.test.include
-index 6ef6a69..1b6e759 100644
---- a/src/Makefile.test.include
-+++ b/src/Makefile.test.include
-@@ -127,7 +127,9 @@ bitcoin_test_clean : FORCE
- check-local:
- @echo "Running test/bitcoin-util-test.py..."
- $(AM_V_at)srcdir=$(srcdir) PYTHONPATH=$(builddir)/test $(srcdir)/test/bitcoin-util-test.py
-+if EMBEDDED_LIBSECP256K1
- $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C secp256k1 check
-+endif
- if EMBEDDED_UNIVALUE
- $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C univalue check
- endif