Closed kidddfu closed 6 years ago
Currently not possible because of some issues with newer Mac versions (High Sierra etc.).
Btw. the switch is at 460,000 not 450,000.
But you can build the binaries yourself. It's not hard as you basically install a few packages with brew and then let the scripts compile the binaries for you.
This is what you should do to get a fully working build:
Open a Terminal.
git clone --recursive https://github.com/deeponion/deeponion.git
cd deeponion
git checkout macos
Download and install Brew for Mac (https://brew.sh)
Install dependencies with Brew
brew install autoconf
brew install automake
brew install pkg-config
brew install protobuf
brew install boost@1.57 --cc=clang
brew link boost@1.57 --force
brew install berkeley-db@4
brew link berkeley-db@4 --force
brew install openssl
brew install miniupnpc
brew install libevent
brew install qt5 [only use if building the Wallet UI]
brew link qt5 --force
brew install qrencode [only use if building the Wallet UI]
cd deeponion
./autogen.sh
./configure --with-gui=qt5 --disable-tests [or use --without-gui if only building the daemon]
make
The daemon will be located under src/DeepOniond, the Wallet UI under src/qt/DeepOnion-qt.
You can now start them directly (either the daemon or the wallet but never both of them at the same time!), or you can first copy them somewhere else and then start them by typing in their respective names. The apps will automatically find your default DeepOnion directory (if you already have one).
I hope this will help you in the mean time.
./configure --with-gui=qt5 --disable-tests ... checking for LIBEVENT... yes checking for ZLIB... yes checking for SSL... yes checking for CRYPTO... yes checking for PROTOBUF... yes checking for QR... yes checking for protoc... /usr/local/bin/protoc checking whether to build DeepOniond... yes checking for QT... no configure: error: Qt dependencies not found
I had install all dependencies before configure, how to fix it?
Look at the tutorial above: brew install qt5 Then: ./autogen.sh Then: ./configure --disable-tests --with-gui=qt5
Maybe also: make clean, just to get rid of all the cruft.
If still problems with finding qt5 try brew link qt5 --force
brew link qt5 --force it works, think you! @brakmic
then I got a make error ...
./configure --disable-tests --with-gui=qt5 make ... CC src/or/scheduler.o CC src/or/scheduler_kist.o CC src/or/scheduler_vanilla.o CC src/or/statefile.o CC src/or/status.o CC src/or/torcert.o CC src/or/tor_api.o CC src/or/onion_ntor.o AR src/or/libtor.a /opt/local/bin/ranlib: file: src/or/libtor.a(protover_rust.o) has no symbols ranlib: file: src/or/libtor.a(protover_rust.o) has no symbols Making all in src CXX libbitcoin_server_a-bitcoinrpc.o bitcoinrpc.cpp:713:49: error: too many template arguments for class template 'basic_socket_acceptor' ...basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor, ^
~~~~~~ /opt/local/include/boost/asio/basic_socket_acceptor.hpp:73:7: note: template is declared here class basic_socket_acceptor ^ [snip] ... [/snip] ^ 5 errors generated. make[1]: [libbitcoin_server_a-bitcoinrpc.o] Error 1 make: [all-recursive] Error 1
This is due to some changes in boost library. I will provide you a link to a file called bitcoinrpc.cpp that you should use to replace the current one you have. Later, after we have tested it with Windows & Linux, we will provide the changes via GitHub, but for now, you will have to do this locally.
Just a second...will also update the tutorial.
Get the bitcoinrpc.cpp file from here and replace the old src/bitcoinrpc.cpp. Just copy/paste. Then try to compile again.
I download the bitcoinrpc.cpp and replace the old src/bitcoinrpc.cpp
make ... CC src/or/status.o CC src/or/torcert.o CC src/or/tor_api.o CC src/or/onion_ntor.o AR src/or/libtor.a /opt/local/bin/ranlib: file: src/or/libtor.a(protover_rust.o) has no symbols ranlib: file: src/or/libtor.a(protover_rust.o) has no symbols Making all in src CXX libbitcoin_server_a-bitcoinrpc.o [snip] ... [/snip] 7 errors generated. make[1]: [libbitcoin_server_a-bitcoinrpc.o] Error 1 make: [all-recursive] Error 1
Please refresh the link of mine. I had for a few seconds the variant for DeepVault. You just grabbed the other version. Sorry.
http://brakmic.com/download/txt/bitcoinrpc.cpp
Take the contents and replace the bitcoinrpc.cpp you already have.
continue make
make ... CC xxhash/libbitcoin_common_a-xxhash.o CC lz4/libbitcoin_common_a-lz4.o AR libbitcoin_common.a /opt/local/bin/ranlib: file: libbitcoin_common.a(libbitcoin_common_a-aes_helper.o) has no symbols /opt/local/bin/ranlib: file: libbitcoin_common.a(libbitcoin_common_a-hamsi_helper.o) has no symbols /opt/local/bin/ranlib: file: libbitcoin_common.a(libbitcoin_common_a-aes_helper.o) has no symbols /opt/local/bin/ranlib: file: libbitcoin_common.a(libbitcoin_common_a-hamsi_helper.o) has no symbols CXX libbitcoin_util_a-sync.o CXX libbitcoin_util_a-util.o util.cpp:526:30: warning: array subscript is of type 'char' [-Wchar-subscripts] ret = (ret << 4) | hextable[*hexString++]; ^
~~~~ 1 warning generated. AR libbitcoin_util.a CXX leveldb/db/libleveldb_a-builder.o clang: error: no such file or directory: 'TARGET_OS=Darwin' make[1]: [leveldb/db/libleveldb_a-builder.o] Error 1 make: [all-recursive] Error 1
Ah yes, it came back. It's not a problem on your side, but because we reverted a few things yesterday the latest patch fixing this issue was reverted too. Will update it right now and all you have to do is to pull in the changes with git pull, Ok?
Will come back and give you a signal.
I have committed the change. After you have pulled in the changes you will reenter the following commands:
./autogen.sh
./configure --disable-tests --with-gui=qt5
Then you can continue with make.
continue make
make ... CC src/or/tor_api.o CC src/or/onion_ntor.o AR src/or/libtor.a /opt/local/bin/ranlib: file: src/or/libtor.a(protover_rust.o) has no symbols ranlib: file: src/or/libtor.a(protover_rust.o) has no symbols Making all in src CXX leveldb/db/libleveldb_a-builder.o In file included from leveldb/db/builder.cc:7: In file included from ./leveldb/db/filename.h:14: In file included from ./leveldb/port/port.h:14: ./leveldb/port/port_posix.h:38:12: fatal error: 'endian.h' file not found
include
^
~~~~~ 1 error generated. make[1]: [leveldb/db/libleveldb_a-builder.o] Error 1 make: [all-recursive] Error 1
Pull again the latest changes. The current autogen.sh wasn't executing the leveldb.patch that is already there.
Then, after git pull, go again:
./autogen.sh ./configure --disable-tests --with-gui=qt5
continue make
make ... Making all in tor /Applications/Xcode.app/Contents/Developer/usr/bin/make all-am Making all in src CXXLD DeepOniond Undefined symbols for architecture x86_64: "boost::this_thread::hidden::sleep_until_realtime(timespec const&)", referenced from: AppInit2() in libbitcoin_server.a(libbitcoin_server_a-init.o) "boost::this_thread::hidden::sleep_for(timespec const&)", referenced from: Shutdown(void) in libbitcoin_server.a(libbitcoin_server_a-init.o) MilliSleep(long long) in libbitcoin_server.a(libbitcoin_server_a-init.o) AppInit2() in libbitcoin_server.a(libbitcoin_server_a-init.o) ThreadSocketHandler2(void) in libbitcoin_server.a(libbitcoin_server_a-net.o) ThreadDumpAddress(void) in libbitcoin_server.a(libbitcoin_server_a-net.o) ThreadOpenConnections2(void) in libbitcoin_server.a(libbitcoin_server_a-net.o) ThreadOpenAddedConnections2(void*) in libbitcoin_server.a(libbitcoin_server_a-net.o) ... ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: [DeepOniond] Error 1 make: [all-recursive] Error 1
This is a problem with boost paths. You have to take care of correctly setting the link. brew link boost@1.57 --force. If it doesnt't help, then do a make clean and start over. Sometimes I had to close the terminal and open a new one. Never could find a proper way out of this, but mostly it could be solved with make clean and reconfigure again.
This is basically the last step. If you overcome this, you'll get the wallet.
ok, I think I can overcome it soon, think you for your help
Howewer, there's also another way. Just download our zips from GitHub, unpack them and then start the binary DeepOnion-qt from the Terminal. As you have already installed all the libs it'll simply use them and start working.
Try it out :)
I get an error different from the one telnetor gets:
^
1 warning generated. CXX libbitcoin_wallet_a-wallet.o wallet.cpp:3017:52: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal] printf("Stealth send to generated pubkey %"PRIszu": %s\n", pkSendTo.size(), HexStr(p... ^
wallet.cpp:3019:32: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal] printf("ephem_pubkey %"PRIszu": %s\n", ephem_pubkey.size(), HexStr(ephem_pubkey).c_str()); ^
2 errors generated. make[1]: [libbitcoin_wallet_a-wallet.o] Error 1 make: [all-recursive] Error 1
I've tried pulling the newest from GitHub, making clean and restarting the whole proces. boost should be correctly linked as well. I've also tried replacing the existing bitcoinrpc.cpp. Do you have any suggestions? :)
This is a C++11 warning/error (it depends on how strict the compiler is).
Basically, go into this file an put a space between PRIszu and the preceding quote.
For example:
before: "PRIszu after: " PRIszu
Then recompile.
Meanwhile, I have updated wallet.cpp and commited changes. So you can also pull them and continue compiling.
Oh wow, I worked haha. That's the biggest reason why I'll never start any coding.. That a single space can do so much damage 😄
My deeponion directory is now gone and replaced with DeepOnion-qt and DeepOniond executables in my Applications folder (Folder named DeepOnionMac). If I run them, I get errors however: Oscar:~ oscarp$ /Applications/DeepOnionMac/DeepOnion-qt/DeepOnion-qt ; exit; dyld: Library not loaded: /opt/local/lib/db48/libdb_cxx-4.8.dylib Referenced from: /Applications/DeepOnionMac/DeepOnion-qt/DeepOnion-qt Reason: image not found Abort trap: 6 logout Saving session... ...copying shared history... ...saving history...truncating history files... ...completed.
[Process completed]
try to link berkeley-db@4 with: brew link berkeley-db@4 --force
I have a last problem. everything is setup (wallet, config file), I can see my balance and so on, but the wallets crashes after 30 seconds or so. I get this in the terminal:
QObject::~QObject: Timers cannot be stopped from another thread Assertion failed: (size>0), function median, file ./util.h, line 588. Abort trap: 6
brew install libevent
If you still encounter these problems, try to resync the chain without the Wallet UI. Just start the daemon with DeepOniond -daemon and let it get the whole chain. This is a well-known Qt problem.
The brew install lib event didn't do the trick, so I'll try starting DeepOniond -daemon and let it run. How will I know when it is done, if I don't have a GUI?
It will show every 48sec or so the new block height, and many other things, transactions etc. Just type:
tail -f /User/YOUR_USER/Library/Application Support/DeepOnion/debug.log
for a real time log.
but you can also try to open a new terminal and start DeepOnion-qt again.
But hey man, thank you so much. I guess that the last couple of days have been hectic and with a lot of questions from noobs like me. It's all working now, and if a noob like me can figure it out with your guide and help, everyone should be able to 😃
You're welcome. Glad I could help you.
And please, share this thread with other Mac users.
Spread the word and help your fellow $ONION-Hodlers!
Cheers,
Btw. I created a separate branch macos only for Mac users. So all changes we discussed previously are now there. I have also updated the tutorial above. So others don't have to copy/paste things we did previously.
Here's the link to the new branch. I created a separate tutorial based on our today's experience. It's linked at the top of repo's README. Please, spread the word (bitcointalk, twitter etc.). Thanks!
Please ! There's so many troubles with new Mac wallet .We need a DeepOnion-wallet.dmg