1

I am trying to install libwally on my debian machine. I followed the installation guide but running ./configure I got the warning

=== configuring in src/secp256k1 (/home/standup/libwally-core/src/secp256k1)
configure: WARNING: no configuration information is in src/secp256k1

so when I run make I get the error

Making all in src
make[1]: Entering directory '/home/standup/libwally-core/src'
make  all-recursive
make[2]: Entering directory '/home/standup/libwally-core/src'
Making all in secp256k1
make[3]: Entering directory '/home/standup/libwally-core/src/secp256k1'
make[3]: *** No rule to make target 'all'.  Stop.
make[3]: Leaving directory '/home/standup/libwally-core/src/secp256k1'
make[2]: *** [Makefile:1715: all-recursive] Error 1
make[2]: Leaving directory '/home/standup/libwally-core/src'
make[1]: *** [Makefile:927: all] Error 2
make[1]: Leaving directory '/home/standup/libwally-core/src'
make: *** [Makefile:436: all-recursive] Error 1

I see that it's an issue with the secp256k1 so I did some research and found this suggestion to install secp256k1 seperately in the /src directory (I simply cloned the repo and built it within /src). This brought me a bit further (no warning while running ./configure) but I still get this error after running make:

Making all in src
make[1]: Entering directory '/home/standup/libwally-core/src'
make  all-recursive
make[2]: Entering directory '/home/standup/libwally-core/src'
Making all in secp256k1
make[3]: Entering directory '/home/standup/libwally-core/src/secp256k1'
make  all-am
make[4]: Entering directory '/home/standup/libwally-core/src/secp256k1'
make[4]: Nothing to be done for 'all-am'.
make[4]: Leaving directory '/home/standup/libwally-core/src/secp256k1'
make[3]: Leaving directory '/home/standup/libwally-core/src/secp256k1'
make[3]: Entering directory '/home/standup/libwally-core/src'
  CC       ctest/test_bech32-test_bech32.o
  CC       libwallycore_la-address.lo
In file included from address.c:1:
internal.h:8:10: fatal error: secp256k1/include/secp256k1_ecdsa_s2c.h: No such file or directory
    8 | #include "secp256k1/include/secp256k1_ecdsa_s2c.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [Makefile:1324: libwallycore_la-address.lo] Error 1
make[3]: Leaving directory '/home/standup/libwally-core/src'
make[2]: *** [Makefile:1715: all-recursive] Error 1
make[2]: Leaving directory '/home/standup/libwally-core/src'
make[1]: *** [Makefile:927: all] Error 2
make[1]: Leaving directory '/home/standup/libwally-core/src'
make: *** [Makefile:436: all-recursive] Error 1

There is no secp256k1/include/secp256k1_ecdsa_s2c.h file ...

How can I fix this? It already seemed strange to me that I had to install the secp256k1 manually...

zerotobtc
  • 323
  • 1
  • 9

2 Answers2

2

I think you need to use ElementsProject/secp256k1-zkp rather than bitcoin-core/secp256k1. The Elements fork has a lot of extra modules used by libwally, including that missing s2c file (sign-to-contract).

meshcollider
  • 11,695
  • 4
  • 24
  • 52
  • Thanks, I actually figured that out, too! However shouldn't that be installed automatically? At least, it's part of the repository .. – zerotobtc Jan 04 '22 at 06:12
0

libsecp is installed as a submodule in the wally source tree. As per README, you need to run the following before building:

# Initialise the libsecp sources (Needs to be run only once)
$ git submodule init
$ git submodule sync --recursive
$ git submodule update --init --recursive
Jon
  • 1