0

I'm trying to build libbitcoin libraries on Arch linux. First I tried to download AUR packages. I successfully installed libsecp256k1 and libbitcoin. But if I try to compile libbitcoin-system and libbitcoin-database, compilation fails. The problem is conflict between libsecp256k1 and secp256k1 packages. The first is dependency of system and second of libbitcoin. If I trick the checking of secp256k1/libsecp256k1 library presence, the compilation fails on unit-testing. I'm also quite confused when looking on AUR repository. There is always and -git (e.g. libbitcoin-database and libbitcoin-database-git). I tried every possible combination, but was never successful.

I also tried to download sources from github. First of all: I don't know whether to run standard ./autogen.sh && ./configure && make -j4 && sudo make install or rather sudo ./install.sh.
Again I successfully installed library secp256k1 and libbitcoin using the first approach, but when running ./configure in libbitcoin-database, i get error

configure: error: Package requirements (libbitcoin >= 4.0.0) were not met

Please has anybody successfully installed libbitcoin libraries on Arch linux?

1
  • Welcome to Bitcoin SE! You may want to try asking this question to an Arch community forum. I wouldn't say that this question is off topic here (so by all means, leave it), but since your problem seems Arch-specific you'll likely get better answers elsewhere. Also, when you find your answer, please post it here. It's perfectly acceptable to answer your own question, and helps out the whole community.
    – Jestin
    Commented Oct 20, 2017 at 21:11

1 Answer 1

2

Library modules provided by github/libbitcoin (incl. forked version of libsecp256k1) are by default installed using prefix /usr/local. configure script, that is run during build process, however, doesn't by default search for dependencies in /usr/local. So in order to make configure find other modules, one has to change the prefix for each module or tell the configure script where to look for the libraries - e. g. by setting variable PKG_CONFIG_PATH before running the script:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig.
pkgconfig directory contains configuration files with all needed information for those affected dependencies, so if the variable is set correctly, configure script will find them and compilation will be successful.

P. S. the compilation of libsecp256k1 needs to be done with flag --enable-module-recovery so as to be compatible with libbitcoin.

Not the answer you're looking for? Browse other questions tagged or ask your own question.