I have recently set up a new machine on debian stretch:
$ uname -a
Linux front 4.8.0-1-amd64 #1 SMP Debian 4.8.7-1 (2016-11-13) x86_64 GNU/Linux
I am now attempting to install bitcoind
. I have already set up a directory db4
in my build directory for the Berkeley database version 4.8.30
. I have installed all the dependencies as per doc/build-unix
, including boost
from the distribution:
$ sudo apt-get install libboost-all-dev
$ apt-cache show libboost-all-dev
Package: libboost-all-dev
Source: boost-defaults
Version: 1.62.0.1
...
$ ./autogen.sh
...
$ ./configure LDFLAGS="-L..bitcoin/db4/lib/" CPPFLAGS="-I..bitcoin/db4/include/"
...
$ make
...
CXX wallet/test/test_test_bitcoin-wallet_tests.o
CXX wallet/test/test_test_bitcoin-crypto_tests.o
wallet/test/crypto_tests.cpp: In function ‘bool wallet_crypto::OldEncrypt(
const CKeyingMaterial&, std::vector<unsigned char>&, const unsigned
char*, const unsigned char*)’:
wallet/test/crypto_tests.cpp:45:20: error: aggregate ‘EVP_CIPHER_CTX ctx’
has incomplete type and cannot be defined
EVP_CIPHER_CTX ctx;
^~~
wallet/test/crypto_tests.cpp: In function ‘bool wallet_crypto::OldDecrypt(
const std::vector<unsigned char>&, CKeyingMaterial&, const unsigned
char*, const unsigned char*)’:
wallet/test/crypto_tests.cpp:69:20: error: aggregate ‘EVP_CIPHER_CTX ctx’
has incomplete type and cannot be defined
EVP_CIPHER_CTX ctx;
^~~
Makefile:8232: recipe for target 'wallet/test/test_test_bitcoin
crypto_tests.o' failed
make[2]: *** [wallet/test/test_test_bitcoin-crypto_tests.o] Error 1
make[2]: Leaving directory '/home/john/Libs/bitcoin/src'
Makefile:8370: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/john/Libs/bitcoin/src'
Makefile:680: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
Any suggestion is gratefully appreciated.
EDIT: adding the option --disable-wallet
to configure
leads to a successful build.
EDIT2: however, even with the --disable-wallet , the command make check
fails with:
make[4]: Entering directory '/home/john/Libs/bitcoin/src/secp256k1'
CC src/tests-tests.o
src/tests.c: In function ‘test_ecdsa_der_parse’:
src/tests.c:3561:52: error: dereferencing pointer to incomplete type
‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
valid_openssl = !BN_is_negative(sig_openssl->r) &&
!BN_is_negative(sig_openssl->s) && BN_num_bits(sig_openssl->r) > 0 &&
BN_num_bits(sig_openssl->r) <= 256 && BN_num_bits(sig_openssl->s) > 0 &&
BN_num_bits(sig_openssl->s) <= 256;
This error relating to the C library secp256k1
on debian stretch
has already been reported on this post and it seems to be related to some openssl
API change (a work around put forward by Andrew Poelstra is to configure secp256k1 with the option --enable-openssl-tests=no
. However, this is not an option available for bitcoind
configuration)