[DEV] MacOS - Build Feathercoind + Feathercoin-Qt v0.9.3.1 [COMPLETED]
-
All my investigation is pointing to this:
in the newer versions of Xcode and MacOS, the compiler/command-line tools no longer include GCC. It has sym links or aliases for gcc and g++ that just map back to Apples clang or clang++ …and while Apple claim it is the same, it isnt.
So I believe to compile on the newer MacOS’ - some of the major dependencies need to be recompiled with Apples clang.
It seems that boost is the main culprit and possibily QT as well. The problem is a “catch 22” you cant use things that are built with gcc along side things built with clang…or so google tells me…it all has to be built with the same compiler. I also have no idea what compiler homebrew uses to do their builds/bottles but I believe it’s gcc.
so I reckon if I can get gcc installed without xcode and compile everything with that, it should work…I think.
Another issue is that with MacOS Sierra specifically, it barely supports QT 5.7.0 - QT 5.6.0 or lower isn’t an option…
So in my head:
1 - get GCC installed in a clean environment
2 - attempt to rebuild boost with 32 and 64 bit binaries
3 - try to build FTC and everything else with GCC. -
The last Apple GCC was v4.2.1. Newer releases directly from the GCC developers don’t support some Apple specific things which are required to compile Qt. It’s still possible to pull v4.2.1 from an old Xcode release and install it manually.
-
@ghostlander said in [DEV] MacOS - Build FeathercoinD v0.9.3.1:
The last Apple GCC was v4.2.1. Newer releases directly from the GCC developers don’t support some Apple specific things which are required to compile Qt. It’s still possible to pull v4.2.1 from an old Xcode release and install it manually.
Thanks @ghostlander - You being a developer…do you have any recommendations ?
-
Update:
I’ve gone as far back as OSX 10.9.5 inside Vmware.I followed Lizhi’s instructions for building Feathercoin-qt …
without installing xcode, I was able to build everything, the build log looked similar to when you do it on Ubuntu or Centos (minimal warnings, or the warnings I’m used to seeing)
Still though, QT crashes with a Segfault 11.
feathercoind runs perfectly, starts syncing the blockchain and all.
-
So I’ve managed to build the Wallet on MacOS 10.9.5
see screenshot here: https://i.snag.gy/ap6m4X.jpg
I’ve even managed to create a Feathercoin-qt.app (see the screenshot) - the APP is 61MB and I believe it has all the files needed for it to run…unfortunately running this on another mac, I get this error:
Dyld Error Message: Library not loaded: libboost_system-mt.dylib Referenced from: /Users/Apple2/Desktop/Feathercoin-Qt-0.9.3.1.app/Contents/Frameworks/libboost_filesystem-mt.dylib Reason: image not found
if I use otool on the qt binary it shows me what dylibs Feathercoin-QT is looking for.
Mac-Admin:~ admin$ otool -L Feathercoin-Qt-0.9.3.1.app/Contents/MacOs/feathercoin-qt Feathercoin-Qt-0.9.3.1.app/Contents/MacOs/feathercoin-qt: @loader_path/../Frameworks/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) @loader_path/../Frameworks/libboost_system-mt.dylib (compatibility version 0.0.0, current version 0.0.0) @loader_path/../Frameworks/libboost_filesystem-mt.dylib (compatibility version 0.0.0, current version 0.0.0) @loader_path/../Frameworks/libboost_program_options-mt.dylib (compatibility version 0.0.0, current version 0.0.0) @loader_path/../Frameworks/libboost_thread-mt.dylib (compatibility version 0.0.0, current version 0.0.0) @loader_path/../Frameworks/libboost_chrono-mt.dylib (compatibility version 0.0.0, current version 0.0.0) @loader_path/../Frameworks/QtNetwork (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtPrintSupport (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtWidgets (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtGui (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtCore (compatibility version 5.5.0, current version 5.5.1) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1056.16.0) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 48.0.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1265.21.0) @loader_path/../Frameworks/libprotobuf.11.dylib (compatibility version 12.0.0, current version 12.0.0) @loader_path/../Frameworks/libdb_cxx-4.8.dylib (compatibility version 0.0.0, current version 0.0.0) @loader_path/../Frameworks/libqrencode.3.dylib (compatibility version 8.0.0, current version 8.4.0) @loader_path/../Frameworks/libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0) @loader_path/../Frameworks/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.17.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 59.0.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
The @loader_path points to my Frameworks directory inside the app.
-
Fyi I had to build the Feathercoin-qt.App Manually as doing a “make deploy” shows the below
Mac-Admin:FTC0931 admin$ make deploy ./contrib/macdeploy/macdeployqtplus Feathercoin-Qt.app -add-qt-tr da,de,es,hu,ru,uk,zh_CN,zh_TW -dmg -fancy ./contrib/macdeploy/fancy.plist -verbose 2 + Removing old dist folder + + Copying source bundle + + Deploying frameworks + Processing libboost_system.dylib ... Error: No file at libboost_system.dylib Traceback (most recent call last): File "./contrib/macdeploy/macdeployqtplus", line 583, in <module> sys.exit(ret) NameError: name 'ret' is not defined make: *** [Feathercoin-Qt.dmg] Error 1
I swear I was able to create a static 160MB file on Centos for Feathercoin that included everything needed for it to run as “portable” or “standalone” I just cant remember the switches…
LDFLAGS=-static doesn’t seem to do anything.
-
Ok so I believe …as per this http://stackoverflow.com/questions/5259249/creating-static-mac-os-x-c-build
that we cannot use -static since OSX doesnt like/support it.
-
Can we get away without the static build?
-
Hi All,
Finally!! after many moons and sleepless nights, I’ve done it!!
I have a Static Binary that worked on a clean MacOS Sierra install…no other dependancies or software were installed on the test machine.
This was build with MacOS Sierra, Boost155, Protobuf260, QT 5.7.0.
Full 64-bit, none of this going back generations of OS’s just to get it to build…No nonsense from Acid!
EDIT========The below link is for the Feathercoin-Qt.app file only.
Download link here:
https://ufile.io/09c25 -
Love a good screenshot!
-
I’ve also managed to get the “Make Deploy” working.
You have to edit a few files since it’s looking for things “Bitcoin” related (eg. Bitcoin-qt becomes Feathercoin-qt…etc)
However…after some hackery I can now produce a DMG file with a working Feathercoin-Qt App. YAY!!
I just downloaded GIMP so I can change the “To install Bitcoin…” Text
-
Hi All,
This is ready for testing I believe.
Random (might be useful) points:
-
Built Feathercoin 0.9.3.1 from source here: https://github.com/FeatherCoin/Feathercoin/tree/0.9.3.1
major hackery with the Makefiles to get things like C++11 support for QT 5.7 -
Built it under MacOS Sierra 10.12.1
Yes I did go back to Mavricks 10.9 out of pure frustration at one point, I had 2 build stations (VMs) at work and 1 at home (MacBookPro) , each with different versions of OSX…trying different things…the final working build came from my OSX Sierra MacBookPro -
Hackery for “Make Deploy” - wasn’t much, I had a info.plist file ready to copy into the Feathercoin-Qt.app as the “Make deploy” is running …otherwise the .App file gets built and doesn’t work because it’s looking for the executable binary “Bitcoin-Qt”
-
Edited the background.png file in the contrib/macdeploy folder - just added the Feathercoin name instead of Bitcoin
-
on OSX Sierra 10.12 you’ll have to use QT 5.7.0 since previous versions are not supported. You’ll get an error “QT Requires C++11 Support” . - thats when the Makefile Hackery for /src/qt/Makefile comes in…while other Makefiles were left alone
You’ll also get the same error for macdockiconhandler and you have to go and add the same flags you did for QT CXXFLAGS on OBJCXXFLAGS
-std=c++11 <<< add that
-
LevelDB Makefile was edited to include that flag
-
Last ./configure command looked like this:
acids-MBP:FTC0931 acid$ ./configure --disable-upnp-default --disable-tests --without-miniupnpc LDFLAGS="-L/usr/local/opt/berkeley-db4/lib/ -L/usr/local/opt/qrencode/lib/" CPPFLAGS=" -I/usr/local/opt/berkeley-db4/include/ -I/usr/local/opt/qrencode/include/" --with-gui=qt5 --with-qrcode=yes --with-boost=/usr/local/Cellar/boost155/1.55.0_1
Anyways, I digress… Here’s the goods.
Link to DMG:
https://ufile.io/26924Love a good screen shot:
Anyone testing this, feel free to post back in this thread.
-
-
Full blockchain sync on test machine in 4 hours. Will pass some FTC back and fourth between my dev machine and the test machine.
Test Machine is a MacBook Pro with a Fresh Install of MacOS Sierra. No dependancies or libs were installed, the DMG opens and the app installs successfully. A complete static build.
-
Hi All,
Both the wallet on my dev machine and test machine synced correctly.
I sent some FTC to my dev machine here:
https://bchain.info/FTC/addr/71gkB9EvzVJ2GMimcHQx4njntzX55ahPdWI’d like to get a few more test machines running this before we push it to Feathercoin.com for downloading.
-
Awesome! Im not on a mac but thanks for the effort put into this!!
-
@aciddude said in [DEV] MacOS - Build Feathercoind + Feathercoin-Qt v0.9.3.1 [COMPLETED]:
Just did a test with https://ufile.io/26924 and it was working fine for me on Mac-OS Sierra - MacBook (Retina, 12-inch, Early 2015).
Installer worked without problems and Feathercoin-QT GUI started fast. Did 1 outgoing transaction and one incoming transaction and both worked well and fast.
So - now I’m running v0.9.3.1 - GREAT JOB :-)
-
@Wellenreiter has now created the release version 0.9.6. This should just compile the same as 0.3.1 and 0.9.3.2 - the differenced are documentation.
Once were happy that compiles and runs as version 0.9.3.2, the test look positive to produce the official build.
Version 0.9.6 contains a number of significant improvements, particularly in look and feel.
-
Actually it is 0.9.3.6
We are planning the release for the second half of January, if all goes well
-
Should have just edited it, i’m still rough.It needs to be 0.9.6 otherwise people will still use 0.9.5 because it is a bigger number !!!
Sorry didn’t notice, the slight difference, when i checked it.
-
@wrapper
ok, branch number is 0.9.6 now