Supported Feathercoin client versions: Current production Version: 0.9.6.2.

Info: If you have problems to post, create one post in the ‘newbies’ category and try again. If you have further problems, Find Support under Guides or use the shoutbox

[Guide] Build FeathercoinD & Feathercoin-QT v0.9.6.1 on Ubuntu


  • Moderators

    Hi All,

    This guide is for anyone who wants to build Feathercoind and Feathercoin-QT on Ubuntu and some Ubuntu based distros…

    The following guide has been tested on:

    • Ubtunu 16.04 LTS
    • Ubuntu 14.04
    • LinuxMint 17.3

    1. Intro + Initial Setup


    First we start by updating our OS a little… I used a VMware images from OsBoxes.org for the three above Distros I used for testing.

    Note: For this guide, you can find/replace my home directory “/home/acid” to your “/home/YourUser” directory and all the commands should work…I recommend reading each command…but also copy and paste was invented for a reason ;-)

    We start by updating the build system OS and then showing the current working directory

    sudo apt-get update
    sudo apt-get upgrade 
    
    pwd
    

    We then make a new directory to work in and move into it.

    [email protected] ~ $ pwd
     /home/acid
    mkdir FeathercoinBuild && cd FeathercoinBuild
    

    2. Dependencies

    Some of these you might already have installed, but I recommend running each line.

    sudo apt-get install build-essential
    sudo apt-get install libboost-all-dev
    sudo apt-get install automake
    sudo apt-get install libtool
    sudo apt-get install autoconf
    sudo apt-get install libdb5.3++-dev
    sudo apt-get install libdb++-dev
    sudo apt-get install libprotobuf-dev
    sudo apt-get install protobuf-compiler
    sudo apt-get install libqrencode-dev
    sudo apt-get install qtbase5-dev
    sudo apt-get install libqt5opengl5-dev
    sudo apt-get install qttools5-dev-tools
    sudo apt-get install libminiupnpc-dev
    sudo apt-get install pkg-config
    

    Build Berkeley DB v4.8

    Note: you are free to use any version you wish, if you are importing an old wallet.dat then it should be the same BDB version as the client you used that wallet.dat file on.

    pwd should show /home/$username/FeathercoinBuild

    wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz
    tar -xvf db-4.8.30.NC.tar.gz
    cd db-4.8.30.NC/build_unix
    mkdir -p build
    BDB_PREFIX=$(pwd)/build
    ../dist/configure -disable-shared -enable-cxx -with-pic -prefix=$BDB_PREFIX
    make install
    cd ../..
    

    Build OpenSSL

    pwd should show /home/$username/FeathercoinBuild

    mkdir openSSL && cd openSSL
    wget https://www.openssl.org/source/openssl-1.0.1l.tar.gz
    tar zxvf openssl-1.0.1l.tar.gz
    cd openssl-1.0.1l
    export CFLAGS="-fPIC"
    ./config --prefix=/home/acid/FeathercoinBuild/openSSL/build shared enable-ec enable-ecdh enable-ecdsa -lanl -ldl
    sudo make
    sudo make install
    cd ../..
    

    Build ZXING

    pwd should show /home/$username/FeathercoinBuild

    sudo apt-get install cmake 
    mkdir zxing && cd zxing 
    git clone https://github.com/glassechidna/zxing-cpp.git && cd zxing-cpp
    mkdir build && cd build/
    export CXXFLAGS="-fPIC"
    cmake -G "Unix Makefiles" -DCMAKE_CXX_FLAGS="-fPIC -D_GLIBCXX_USE_CXX11_ABI=1" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_STANDARD_REQUIRED=ON ..
    make && sudo make install
    cd ../../..
    

    Edit a bug in zxing

    sudo vi /usr/local/include/zxing/LuminanceSource.h
    

    Edit line 30 from “private:” to “public:” and save

    GIT was not installed by default soo…

    sudo apt-get install git
    

    3. Feathercoin !

    Grab the FTC source

    pwd should show /home/$username/FeathercoinBuild

    git clone https://github.com/FeatherCoin/Feathercoin.git FTC0961 && cd FTC0961
    

    Note: see where I’ve used the BDB_PREFIX which in the ftc configure command which is the same prefix we used when we compiled berkeleyDB earlier

    ./autogen.sh
    ./configure --prefix=/home/acid/FeathercoinBuild/FTCbuild CPPFLAGS="-I${BDB_PREFIX}/include/ -O2" LDFLAGS="-L${BDB_PREFIX}/lib/" PKG_CONFIG_PATH=/home/acid/FeathercoinBuild/openSSL/build/lib/pkgconfig LIBS=-Wl,-rpath=/home/acid/FeathercoinBuild/openSSL/build/lib SSL_LIBS="/home/acid/FeathercoinBuild/openSSL/build/lib/libssl.a /home/acid/FeathercoinBuild/openSSL/build/lib/libcrypto.a -ldl" --with-gui
    make -j 2
    make install
    

    You can run Feathercoin-QT like this

    cd /home/acid/FeathercoinBuild/FTCbuild/bin
    ./feathercoin-qt
    
    Note: Your /bin/ directory will contain the following binaries
    [email protected] ~/FeathercoinBuild/FTCbuild/bin $ ls -lrth
    total 398M
    -rwxr-xr-x 1 acid acid  77M May 31 19:34 feathercoind
    -rwxr-xr-x 1 acid acid  17M May 31 19:34 feathercoin-cli
    -rwxr-xr-x 1 acid acid 123M May 31 19:34 feathercoin-qt
    -rwxr-xr-x 1 acid acid  79M May 31 19:34 test_feathercoin-qt
    -rwxr-xr-x 1 acid acid 104M May 31 19:34 test_feathercoin
    [email protected] ~/FeathercoinBuild/FTCbuild/bin $
    
    


    I hope this helps someone. ;-)


    Change Log:

    July-2017 Updated for Feathercoin 0.9.6.1
    May-2017 Removed old bugs/bug fixes
    May-2017 Updated Guide for Feathercoin 0.9.6
    May-2017 Updated Commands
    Updated dependency version libdb5.1++-dev is now libdb5.3++-dev
    Updated title to match title convention of other guides I’ve written
    Added command sudo apt-get install pkg-config - Thank you @looarn


  • Moderators

    @Aciddude great guide, I’ll test using Wellenreiter’s zxing deb for getting 0.9.3.1 to install on 15.10.


  • Moderators

    @aciddude : Great work :)

    It helped me already. I will implement the change in rpcrawtransaction.cpp and build the binary install package, so users can use their package manager to install/update the feathercoin software.

    Thanks a lot :)

    One remark: did you try to use Berkeley db 5.1, too?
    The configure script should search for 5.1,5.0,4.8 in that order.


  • Moderators

    @Wellenreiter said:

    @aciddude : Great work :)

    It helped me already. I will implement the change in rpcrawtransaction.cpp and build the binary install package, so users can use their package manager to install/update the feathercoin software.

    Thanks a lot :)

    One remark: did you try to use Berkeley db 5.1, too?
    The configure script should search for 5.1,5.0,4.8 in that order.

    On my first try I installed Berkeley DB 5.0 but then the configure script complained about “this build wont be portable because of incompatible bdb…so then I went down to 4.8”

    This needs a bit of QA though…I don’t think BitMessage worked…everytime I clicked it, nothing happened…or does that have to wait for a full blockchain sync ?


  • Moderators

    The warning about the Berkeley db means, that you can’t copy the block and wallet database to another system, unless it is Berkeley db 5.0 also, but this is true for every version of Berkeley db, so the warning is useless.

    In order to use Bitmessage you need to install Bitmessage on your system, preferably using a packet manager. The program simply checks if there is a bitmessage binary in your path and starts Bitmessage as external program. Bitmessage is not integrated in the code.
    See bitcoingui.cpp lines 704 - 716


  • Moderators

    Another remark
    As far as I know, --disable-shared forced a static build, where all libraries are complied into the binary, what increases the size of the binary and overall memory usage.
    For me the compile works without that parameter,too


  • Moderators

    @wrapper - Did you manage to get 15.10 working ? I’m wondering if I should give this a shot and write another guide or maybe you guys can give me something else to do that’s a better use of my time ?

    let me know!


  • Moderators

    @aciddude said:
    @wrapper - Did you manage to get 15.10 working ? I’m wondering if I should give this a shot and write another guide or maybe you guys can give me something else to do that’s a better use of my time ?

    let me know!

    If you want to see if you can get the 15.10 compile / test finished, please go ahead.

    Unfortunately, I didn’t use a Virtual box and sort of went bit exotic on the dependency checking and crashed out my 15.10 system.

    Basically, don’t ever install libqt5-gles-dev, as when you remove it, Kubuntu does not reinstall the kde dependency, libqt5-gles it removed and deleted all the kde dependencies for my desktop.

    I’ve ended installing 16.04, which didn’t upgrade well, possibly due to multiple sources in software sources list, so I ended up reinstalling / upgrading. It didn’t update lots of programs, so a bit more work to get my home system back up to speed.

    As that happened, also had the cooling backing plate failed on my NSGminer R9 290 test computer. I’ve had to search the house for a spare I know I’ve kept for 5 years. So I’ve had to reinstall that, luckily had some thermal paste to re-seat the CPU.


  • Moderators

    @aciddude said:

    This needs a bit of QA though…I don’t think BitMessage worked…everytime I clicked it, nothing happened…or does that have to wait for a full blockchain sync ?

    @Lizhi added Bitmessage feature

    With regard to Bitmessage, I’m just researching some of that, to fix my install with 16.04.

    Note : I’ve just tried Bitmessage and failed : so it might be python 2 not installed by default in 16.04 -

    Your system may be attempting to run PyBitmessage with python 3. In this case, run python2 ~/PyBitmessage/src/bitmessagemain.py

    Bitmessage requires PyQt and openssl to run

    Bitmessage dependancies :
    sudo apt-get install python openssl git python-qt4

    Additionally on 16.04 :
    sudo apt install libmessaging-menu-dev

    Pull latest Bitmessage updates from :
    https://github.com/Bitmessage/PyBitmessage

    Bitmessage has been updated quite a bit if anyone wants to test it :

    BM-Gu7Bm8cUYCW1vrnjcgrte5dLnAc6spmx

    Note : Bitmessage upgrade - User interface for Bitcoin payments issue #841
    https://github.com/Bitmessage/PyBitmessage/issues/841


  • Moderators

    @aciddude
    @wrapper

    I’ve managed to compile for 15.10 and 16.04.
    The binary packages are just build and will be available this evening at
    https://software.opensuse.org/package/feathercoin

    Remark: 0.9.3.x gui does not compile with qt4. You need to specify configure --with-gui=qt5


  • Regular Member

    Good information. Thanks everyone!

    • UnklAdM

  • Moderators

    Forgot to mention: I also patched rpcrawtransaction.cpp to detect boost 1.58, so no modification of the code is needed to compile for Ubuntu 15.10 and 16.04


  • Moderators

    Re : Fixing rcprawtransaction.cpp transaction bug squared .

    @Wellenreiter I want to give you more kudos +1000 :)


  • Moderators

    It’s currently on 0.9.3.1 only, as this is the latest release version.



  • Hey,

    Just to say thanks a bunch @aciddude !

    I got a node running on a debian.

    I just need to add this dependency : apt-get install -y pkg-config

    Actually syncing. ^^


  • Moderators

    Hi All,

    Ubuntu has recently changed a few things.

    building Feathercoin 0.9.6 - you might come across this error:

    libbitcoinqt.a(libbitcoinqt_a-snapwidget.o): In function SnapWidget::on_snapButton_clicked()': [ 743s] /usr/src/packages/BUILD/src/qt/snapwidget.cpp:72: undefined reference tozxing::String::getTextabi:cxx11 const’
    

    To fix, you need to rebuild zxing like this:

    mkdir zxing && cd zxing 
    git clone https://github.com/glassechidna/zxing-cpp.git
    cd zxing-cpp/
    mkdir build
    cd build/
    export CXXFLAGS="-fPIC"
    cmake -G "Unix Makefiles" -DCMAKE_CXX_FLAGS="-fPIC -D_GLIBCXX_USE_CXX11_ABI=1" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_STANDARD_REQUIRED=ON ..
    make && sudo make install
    

  • Moderators

    That’s the solution to one of the little problems I have while creating the Linux installation packages :)

    Many thanks
    @aciddude



Looks like your connection to Feathercoin Forum was lost, please wait while we try to reconnect.