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)