Forum Home
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular

    [DEV] MacOS - Build Feathercoind + Feathercoin-Qt v0.9.3.1 [COMPLETED]

    Technical Development
    9
    39
    29074
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • AcidD
      AcidD Moderators last edited by

      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.

      • FTC Block Explorer + API @ https://fsight.chain.tips
      • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
      • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
      • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

      1 Reply Last reply Reply Quote 1
      • ghostlander
        ghostlander Regular Member last edited by

        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.

        AcidD 1 Reply Last reply Reply Quote 4
        • AcidD
          AcidD Moderators @ghostlander last edited by

          @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 ?

          • FTC Block Explorer + API @ https://fsight.chain.tips
          • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
          • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
          • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

          1 Reply Last reply Reply Quote 2
          • AcidD
            AcidD Moderators last edited by

            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.

            • FTC Block Explorer + API @ https://fsight.chain.tips
            • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
            • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
            • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

            1 Reply Last reply Reply Quote 2
            • AcidD
              AcidD Moderators last edited by

              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.

              • FTC Block Explorer + API @ https://fsight.chain.tips
              • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
              • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
              • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

              1 Reply Last reply Reply Quote 1
              • AcidD
                AcidD Moderators last edited by AcidD

                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.

                • FTC Block Explorer + API @ https://fsight.chain.tips
                • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
                • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
                • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

                1 Reply Last reply Reply Quote 0
                • AcidD
                  AcidD Moderators last edited by

                  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.

                  • FTC Block Explorer + API @ https://fsight.chain.tips
                  • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
                  • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
                  • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

                  1 Reply Last reply Reply Quote 2
                  • wrapper
                    wrapper Moderators last edited by

                    Can we get away without the static build?

                    1 Reply Last reply Reply Quote 0
                    • AcidD
                      AcidD Moderators last edited by AcidD

                      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

                      • FTC Block Explorer + API @ https://fsight.chain.tips
                      • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
                      • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
                      • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

                      1 Reply Last reply Reply Quote 3
                      • AcidD
                        AcidD Moderators last edited by

                        Love a good screenshot!

                        https://i.snag.gy/wDoxJk.jpg

                        • FTC Block Explorer + API @ https://fsight.chain.tips
                        • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
                        • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
                        • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

                        1 Reply Last reply Reply Quote 0
                        • AcidD
                          AcidD Moderators last edited by

                          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!!

                          Image

                          I just downloaded GIMP so I can change the “To install Bitcoin…” Text

                          • FTC Block Explorer + API @ https://fsight.chain.tips
                          • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
                          • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
                          • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

                          1 Reply Last reply Reply Quote 0
                          • AcidD
                            AcidD Moderators last edited by

                            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/26924

                            Love a good screen shot:
                            Image

                            Anyone testing this, feel free to post back in this thread.

                            • FTC Block Explorer + API @ https://fsight.chain.tips
                            • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
                            • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
                            • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

                            S U 2 Replies Last reply Reply Quote 0
                            • AcidD
                              AcidD Moderators last edited by

                              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.

                              • FTC Block Explorer + API @ https://fsight.chain.tips
                              • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
                              • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
                              • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

                              1 Reply Last reply Reply Quote 0
                              • AcidD
                                AcidD Moderators last edited by

                                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/71gkB9EvzVJ2GMimcHQx4njntzX55ahPdW

                                I’d like to get a few more test machines running this before we push it to Feathercoin.com for downloading.

                                • FTC Block Explorer + API @ https://fsight.chain.tips
                                • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
                                • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
                                • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

                                1 Reply Last reply Reply Quote 3
                                • AmDD
                                  AmDD Regular Member last edited by

                                  Awesome! Im not on a mac but thanks for the effort put into this!!

                                  P2Pool Node: http://104.236.34.9:19327/ 0.5% fee

                                  1 Reply Last reply Reply Quote 3
                                  • S
                                    sradics @AcidD last edited by

                                    @aciddude said in [DEV] MacOS - Build Feathercoind + Feathercoin-Qt v0.9.3.1 [COMPLETED]:

                                    https://ufile.io/26924

                                    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 :-)

                                    1 Reply Last reply Reply Quote 4
                                    • wrapper
                                      wrapper Moderators last edited by wrapper

                                      @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.

                                      1 Reply Last reply Reply Quote 3
                                      • Wellenreiter
                                        Wellenreiter Moderators last edited by

                                        Actually it is 0.9.3.6

                                        We are planning the release for the second half of January, if all goes well

                                        Feathercoin development donation address: 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A
                                        Openpgp key: 0x385C34E77F0D74D7 (at keyserver.ubuntu.com)/fingerprint: C7B4 E9EA 17E1 3D12 07AB 1FDB 385C 34E7 7F0D 74D7

                                        1 Reply Last reply Reply Quote 4
                                        • wrapper
                                          wrapper Moderators last edited by wrapper

                                          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.

                                          Wellenreiter 1 Reply Last reply Reply Quote 2
                                          • Wellenreiter
                                            Wellenreiter Moderators @wrapper last edited by Wellenreiter

                                            @wrapper
                                            ok, branch number is 0.9.6 now

                                            Feathercoin development donation address: 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A
                                            Openpgp key: 0x385C34E77F0D74D7 (at keyserver.ubuntu.com)/fingerprint: C7B4 E9EA 17E1 3D12 07AB 1FDB 385C 34E7 7F0D 74D7

                                            1 Reply Last reply Reply Quote 3
                                            • First post
                                              Last post