diff options
author | Michael Mair-Keimberger (asterix) <m.mairkeimberger@gmail.com> | 2017-01-07 18:12:20 +0100 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2017-01-07 17:27:49 -0500 |
commit | 314ecb567ccb785baac512771afb056d4b1a0adc (patch) | |
tree | 34fe6d37fa42918f64295cbf53a98e7b720d6e03 | |
parent | net-p2p/bitcoind: remove unused patches/files (diff) | |
download | gentoo-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.patch | 31 | ||||
-rw-r--r-- | net-p2p/bitcoin-qt/files/0.8.2-sys_leveldb.patch | 183 | ||||
-rw-r--r-- | net-p2p/bitcoin-qt/files/0.9-openssl-101k.patch | 31 | ||||
-rw-r--r-- | net-p2p/bitcoin-qt/files/0.9.0-sys_leveldb.patch | 34 | ||||
-rw-r--r-- | net-p2p/bitcoin-qt/files/0.9.x-ljr_noblacklist.patch | 12 | ||||
-rw-r--r-- | net-p2p/bitcoin-qt/files/9999-sys_libsecp256k1.patch | 80 | ||||
-rw-r--r-- | net-p2p/bitcoin-qt/files/9999-syslibs.patch | 253 |
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 |