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

Prerequisites

# yum config-manager --set-enabled PowerTools;
# yum install gcc gcc-c++ make automake autoconf;
# yum install 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://dl.bintray.com/boostorg/release/1.73.0/source/boost_1_73_0.tar.gz;
# tar -xzf boost_1_73_*;
# cd boost_1_73_0;
# ./bootstrap.sh --prefix=/opt/boost-1.73;
# ./b2 install --prefix=/opt/boost-1.73 --with=all;
# echo "/opt/boost-1.73/lib" > /etc/ld.so.conf.d/boost-1.73.conf;
# ldconfig;

Gridcoin Research Daemon

Build and install the Gridcoin Research from source configured with "--with-boost".

# ./autogen.sh;
# ./configure --without-gui --without-miniupnpc --with-incompatible-bdb --with-boost=/opt/boost-1.72 --disable-tests --disable-bench --disable-dependency-tracking;
# make;

Print shared object dependencies.

# ldd ./src/gridcoinresearchd;
  linux-vdso.so.1 (0x00007ffc9a590000)
  libcurl.so.4 => /lib64/libcurl.so.4 (0x00007f99f6b51000)
  libboost_system.so.1.73.0 => /opt/boost-1.73/lib/libboost_system.so.1.73.0 (0x00007f99f694f000)
  libboost_filesystem.so.1.73.0 => /opt/boost-1.73/lib/libboost_filesystem.so.1.73.0 (0x00007f99f6733000)
  libboost_iostreams.so.1.73.0 => /opt/boost-1.73/lib/libboost_iostreams.so.1.73.0 (0x00007f99f6522000)
  libboost_program_options.so.1.73.0 => /opt/boost-1.73/lib/libboost_program_options.so.1.73.0 (0x00007f99f62ba000)
  libboost_thread.so.1.73.0 => /opt/boost-1.73/lib/libboost_thread.so.1.73.0 (0x00007f99f609b000)
  libboost_chrono.so.1.73.0 => /opt/boost-1.73/lib/libboost_chrono.so.1.73.0 (0x00007f99f5e92000)
  libdb_cxx-5.3.so => /lib64/libdb_cxx-5.3.so (0x00007f99f5aa5000)
  libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f99f5811000)
  libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f99f532e000)
  libzip.so.5 => /lib64/libzip.so.5 (0x00007f99f5114000)
  librt.so.1 => /lib64/librt.so.1 (0x00007f99f4f0b000)
  libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f99f4b76000)
  libm.so.6 => /lib64/libm.so.6 (0x00007f99f47f4000)
  libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f99f45dc000)
  libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f99f43bc000)
  libc.so.6 => /lib64/libc.so.6 (0x00007f99f3ffa000)
  libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007f99f3dd3000)
  libidn2.so.0 => /lib64/libidn2.so.0 (0x00007f99f3bb5000)
  libssh.so.4 => /lib64/libssh.so.4 (0x00007f99f392a000)
  libpsl.so.5 => /lib64/libpsl.so.5 (0x00007f99f3719000)
  libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f99f34c9000)
  libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f99f31d9000)
  libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f99f2fbd000)
  libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f99f2db9000)
  libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007f99f2b6c000)
  liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007f99f295c000)
  libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007f99f2750000)
  libz.so.1 => /lib64/libz.so.1 (0x00007f99f2539000)
  libdl.so.2 => /lib64/libdl.so.2 (0x00007f99f2335000)
  libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f99f2124000)
  /lib64/ld-linux-x86-64.so.2 (0x00007f99f74f4000)
  libunistring.so.2 => /lib64/libunistring.so.2 (0x00007f99f1da3000)
  libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f99f1b92000)
  libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f99f198e000)
  libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f99f1777000)
  libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f99f1559000)
  libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007f99f1339000)
  libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f99f110e000)
  libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f99f0ee5000)
  libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f99f0c61000)