Closed ghost closed 4 years ago
Just for your information, checking out a39991a before installing allows the install to finish without errors.
Looks like you are trying with some older JM release (pre-0.7.0)? What that commit does, it uses GNU make instead of FreeBSD make in case of FreeBSD.
The errors I get is when not checking out any particular commit (in other words the most recent commit) or if I check out v0.7.0, no difference. I only included the reference to the earlier commit to show at least one point in time where it was working
That kinda makes no sense.... That commit is three months old and is included in both current master and v0.7.0. I will try to get my hands on a FreeBSD VM to test.
Hmm, I think you might be misunderstanding me…
If I try to run install.sh either at the current commit, or the v0.7.0 tag, I get the errors I included above. However, if I check out a39991a, the script will finish without errors. In other words, something changed between a39991a and now that broke things.
I can try bisecting (never used the bisect command, but I'll figure it out) and try to pinpoint the exact commit where things broke. I just wanted to start things off by simply stating what happened since things got so confusing last time I commented.
Yes, but nothing has been changed in regard of make/gmake and install.sh in general since that commit.
Hmm, then that error is probably unrelated. It probably just ignores the "-j" flag and builds with a single core.
I'm going to venture a guess that the actual show stopping error is probably something related to secp256k library. (due to this part of the output)
…
config.status: error: in `/usr/local/bin/joinmarket/deps/secp256k1-0d9540b13ffcd7cd44cc361b8744b93d88aa76ba':
config.status: error: Something went wrong bootstrapping makefile fragments
for automatic dependency tracking. If GNU make was not used, consider
re-running the configure script with MAKE="gmake" (or whatever is
necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).
…
When I've attempted to install without using the install script I've been having issues due to secp256. Actually got it working a few hours ago, but in a hacky kind of a way. To get it to work I actually configure the venv before building and installing the secp256k library. Doing it that way allows me to install everything without errors (without using the install.sh script)
hmm, actually just remembered something… to get the secp256k library to build on FreeBSD I had to use the "--disable-dependency-tracking" flag, I completely forgot about that (added it to my script more than a month ago)
This is how I've been building it:
git clone https://github.com/bitcoin-core/secp256k1 /tmp/secp256k1
cd /tmp/secp256k1
./autogen.sh
./configure --disable-dependency-tracking \
--enable-module-recovery \
--disable-jni \
--enable-experimental \
--enable-module-ecdh \
--enable-benchmark=no
gmake
gmake check
gmake install
Your problem is that for some reason it uses make
, not gmake
, but current version of install.sh
should always force gmake on FreeBSD.
Looks like I was able to reproduce the issue and found where is the problem.
@bektar , could you test #700? It solved this issue in my tests.
Excellent, worked without errors. Thanks mate!
I'm having issues when attempting to install joinmarket on FreeBSD 12.1. The docs say that install.sh should only be used for installing on linux and macOS, but I was also told (in a separate issue) that I should still use it.
Steps to reproduce:
Output: (after answering "n" to installing qt dependencies)
To make the
errors go away something similar to the following should probably be used (I believe this is different from how it is done on linux, which would probably explain it)
However, I'm not quite sure where to put it. Also, I'm unclear whether this would solve it, or if it is an unrelated error.
Just for your information, checking out a39991a before installing allows the install to finish without errors.