I'm facing the following error while trying to install joinmarket on my Raspibolt (based on a RockPi 4C 4GB with a Kingston A2000 SSD):
Building wheels for collected packages: coincurve
Building wheel for coincurve (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /home/bitcoin/joinmarket-clientserver-0.7.0/jmvenv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-p5pvucgr/coincurve/setup.py'"'"'; __file__='"'"'/tmp/pip-install-p5pvucgr/coincurve/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-oxeb1nef
cwd: /tmp/pip-install-p5pvucgr/coincurve/
Complete output (26 lines):
Warning: 'keywords' should be a list, got type 'tuple'
running bdist_wheel
The [wheel] section is deprecated. Use [bdist_wheel] instead.
running build
running build_py
creating build
creating build/lib.linux-aarch64-3.7
creating build/lib.linux-aarch64-3.7/coincurve
copying coincurve/__init__.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/keys.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/utils.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/ecdsa.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/context.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/flags.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/_windows_libsecp256k1.py -> build/lib.linux-aarch64-3.7/coincurve
running build_ext
generating cffi module 'build/temp.linux-aarch64-3.7/_libsecp256k1.c'
creating build/temp.linux-aarch64-3.7
building '_libsecp256k1' extension
creating build/temp.linux-aarch64-3.7/build
creating build/temp.linux-aarch64-3.7/build/temp.linux-aarch64-3.7
aarch64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.7m -I/home/bitcoin/joinmarket-clientserver-0.7.0/jmvenv/include/python3.7m -c build/temp.linux-aarch64-3.7/_libsecp256k1.c -o build/temp.linux-aarch64-3.7/build/temp.linux-aarch64-3.7/_libsecp256k1.o
aarch64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-aarch64-3.7/build/temp.linux-aarch64-3.7/_libsecp256k1.o -lsecp256k1 -o build/lib.linux-aarch64-3.7/coincurve/_libsecp256k1.cpython-37m-aarch64-linux-gnu.so
/usr/bin/ld: cannot find -lsecp256k1
collect2: error: ld returned 1 exit status
error: command 'aarch64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for coincurve
Running setup.py clean for coincurve
Failed to build coincurve
DEPRECATION: Could not build wheels for coincurve which do not use PEP 517. pip will fall back to legacy 'setup.py install' for these. pip 21.0 will remove support for this functionality. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368.
Installing collected packages: constantly, attrs, six, Automat, idna, hyperlink, zope.interface, incremental, PyHamcrest, twisted, pyasn1, pycparser, cffi, cryptography, pyasn1-modules, service-identity, colorama, future, chromalog, joinmarketbase, asn1crypto, coincurve, python-bitcointx, pyaes, urldecode, joinmarketbitcoin, mnemonic, argon2-cffi, bencoder.pyx, joinmarketclient, txtorcon, pyopenssl, libnacl, joinmarketdaemon
Running setup.py develop for joinmarketbase
Running setup.py install for coincurve ... error
ERROR: Command errored out with exit status 1:
command: /home/bitcoin/joinmarket-clientserver-0.7.0/jmvenv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-p5pvucgr/coincurve/setup.py'"'"'; __file__='"'"'/tmp/pip-install-p5pvucgr/coincurve/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-0_lq0cei/install-record.txt --single-version-externally-managed --compile --install-headers /home/bitcoin/joinmarket-clientserver-0.7.0/jmvenv/include/site/python3.7/coincurve
cwd: /tmp/pip-install-p5pvucgr/coincurve/
Complete output (25 lines):
Warning: 'keywords' should be a list, got type 'tuple'
running install
running build
running build_py
creating build
creating build/lib.linux-aarch64-3.7
creating build/lib.linux-aarch64-3.7/coincurve
copying coincurve/__init__.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/keys.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/utils.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/ecdsa.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/context.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/flags.py -> build/lib.linux-aarch64-3.7/coincurve
copying coincurve/_windows_libsecp256k1.py -> build/lib.linux-aarch64-3.7/coincurve
running build_ext
generating cffi module 'build/temp.linux-aarch64-3.7/_libsecp256k1.c'
creating build/temp.linux-aarch64-3.7
building '_libsecp256k1' extension
creating build/temp.linux-aarch64-3.7/build
creating build/temp.linux-aarch64-3.7/build/temp.linux-aarch64-3.7
aarch64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.7m -I/home/bitcoin/joinmarket-clientserver-0.7.0/jmvenv/include/python3.7m -c build/temp.linux-aarch64-3.7/_libsecp256k1.c -o build/temp.linux-aarch64-3.7/build/temp.linux-aarch64-3.7/_libsecp256k1.o
aarch64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-aarch64-3.7/build/temp.linux-aarch64-3.7/_libsecp256k1.o -lsecp256k1 -o build/lib.linux-aarch64-3.7/coincurve/_libsecp256k1.cpython-37m-aarch64-linux-gnu.so
/usr/bin/ld: cannot find -lsecp256k1
collect2: error: ld returned 1 exit status
error: command 'aarch64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /home/bitcoin/joinmarket-clientserver-0.7.0/jmvenv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-p5pvucgr/coincurve/setup.py'"'"'; __file__='"'"'/tmp/pip-install-p5pvucgr/coincurve/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-0_lq0cei/install-record.txt --single-version-externally-managed --compile --install-headers /home/bitcoin/joinmarket-clientserver-0.7.0/jmvenv/include/site/python3.7/coincurve Check the logs for full command output.
Joinmarket was not installed. Exiting.
I looked at the coincurve repo and noticed a missing dependency (libffi-dev), but installing that didn't help.