Building Gridcoin on CentOS 8
Disclaimer
Use this guide as a reference as it might be incomplete. Be familiar with the build process while following it.
Consider joining the Gricoin Community Slack channels "#development" and "#packaging" for clarifications.
Think before you run!
The CentOS Linux is a stable, predictable, manageable and reproducible platform derived from the sources of Red Hat Enterprise Linux (RHEL). Latest CentOS 8.x release is coming by default with GCC 8.x and Boost C++ Libraries 1.66.
Release v4.0.6.0 of Gridcoin Research should be built using GCC 8.x and Boost C++ Libraries 1.81.
Prerequisites
# yum config-manager --set-enabled PowerTools;
# yum install gcc gcc-c++ make automake autoconf;
# yum install git wget libtool libzip-devel libdb-devel libdb-cxx-devel openssl-devel libcurl-devel;
Boost C++ Libraries
Install the C++ source libraries, cross platform build system for C++ projects and the Boost C++ headers and shared development libraries.
# wget https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.gz;
# tar -xzf boost_1_81_*;
# cd boost_1_81_0;
# ./bootstrap.sh --prefix=/opt/boost-1.81;
# ./b2 install --prefix=/opt/boost-1.81 --with=all;
# echo "/opt/boost-1.81/lib" > /etc/ld.so.conf.d/boost-1.81.conf;
# ldconfig;
Gridcoin Research Daemon
Build and install the Gridcoin Research from source configured with "--with-boost".
# git clone https://github.com/gridcoin-community/Gridcoin-Research.git;
# cd Gridcoin-Research/;
# git pull; git checkout master;
# ./autogen.sh;
# ./configure --without-gui --without-miniupnpc --with-incompatible-bdb --with-boost=/opt/boost-1.81 --disable-tests --disable-bench --disable-dependency-tracking;
# make;
Print shared object dependencies.
# ldd ./src/gridcoinresearchd;
linux-vdso64.so.1 (0x00007fff7f3e0000)
libcurl.so.4 => /lib64/libcurl.so.4 (0x00007fff7ead0000)
libboost_system.so.1.81.0 => /opt/boost-1.81/lib/libboost_system.so.1.81.0 (0x00007fff7eaa0000)
libboost_filesystem.so.1.81.0 => /opt/boost-1.81/lib/libboost_filesystem.so.1.81.0 (0x00007fff7ea50000)
libboost_iostreams.so.1.81.0 => /opt/boost-1.81/lib/libboost_iostreams.so.1.81.0 (0x00007fff7ea10000)
libboost_thread.so.1.81.0 => /opt/boost-1.81/lib/libboost_thread.so.1.81.0 (0x00007fff7e9d0000)
libpthread.so.0 => /lib64/glibc-hwcaps/power9/libpthread-2.28.so (0x00007fff7e980000)
libdb_cxx-5.3.so => /lib64/libdb_cxx-5.3.so (0x00007fff7e710000)
libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007fff7e640000)
libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007fff7e2c0000)
libzip.so.5 => /lib64/libzip.so.5 (0x00007fff7e270000)
librt.so.1 => /lib64/glibc-hwcaps/power9/librt-2.28.so (0x00007fff7e240000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fff7e010000)
libm.so.6 => /lib64/glibc-hwcaps/power9/libm-2.28.so (0x00007fff7dee0000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fff7dea0000)
libc.so.6 => /lib64/glibc-hwcaps/power9/libc-2.28.so (0x00007fff7dc90000)
libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007fff7dc40000)
libidn2.so.0 => /lib64/libidn2.so.0 (0x00007fff7dc00000)
libssh.so.4 => /lib64/libssh.so.4 (0x00007fff7db40000)
libpsl.so.5 => /lib64/libpsl.so.5 (0x00007fff7db00000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fff7da70000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fff7d930000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fff7d8f0000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fff7d8c0000)
libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007fff7d830000)
liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007fff7d7f0000)
libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007fff7d7c0000)
libz.so.1 => /lib64/libz.so.1 (0x00007fff7d780000)
libboost_atomic.so.1.81.0 => /opt/boost-1.81/lib/libboost_atomic.so.1.81.0 (0x00007fff7d750000)
/lib64/ld64.so.2 (0x00007fff7f400000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fff7d720000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fff7d6e0000)
libunistring.so.2 => /lib64/libunistring.so.2 (0x00007fff7d530000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fff7d4f0000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fff7d4c0000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fff7d480000)
libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007fff7d430000)
libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007fff7d3f0000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fff7d390000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fff7d340000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fff7d290000)