Cannot compile gvmd

I have a problem compiling gvmd-21.4.2 for Centos 8 according to Full GVM-11 Build Guide for CentOS 8

The following items are included in the section below

gvmd
The centos default postgres-devel package puts include files in / usr / include, rather than / usr / include / postgresql, the latter which is where the code
expects them. We can either hack the code, or just add a soft link, which I prefer as it’s easier:

AS ROOT:
ln -s / usr / include / usr / include / postgresql
(code wants “postgresql / libpq-fe.h”)

AS GVM:
For centos, “libpq” is required but is unfortunately not included in the cmake setup. We need to add it:
(alternate: I think you can do this with an environment variable too…)

add -lpq in /opt/gvm/src/gvmd-9.0.1/CMakeLists.txt
change this:
set (CMAKE_C_FLAGS “$ {CMAKE_C_FLAGS} -Wall -D_BSD_SOURCE -D_ISOC99_SOURCE -D_SVID_SOURCE -D_DEFAULT_SOURCE -D_FILE_OFFSET_BITS = 64”)
to this:
set (CMAKE_C_FLAGS “$ {CMAKE_C_FLAGS} -Wall -lpq -D_BSD_SOURCE -D_ISOC99_SOURCE -D_SVID_SOURCE -D_DEFAULT_SOURCE -D_FILE_OFFSET_BITS = 64”)

(Note the complicated cmake below: we have to be very specific to educate cmake where all the postgres goodies are)

cd / opt / gvm / src
export PKG_CONFIG_PATH = / opt / gvm / lib / pkgconfig
cd gvmd
mkdir build
cd build
cmake … -DCMAKE_INSTALL_PREFIX = / opt / gvm / -DPostgreSQL_TYPE_INCLUDE_DIR = / usr / include / pgsql / server -DPostgreSQL_INCLUDE_DIR = / usr / include / pgsql / server -DPostgre64 = pgs_rIBR64 / pgs_rIBR64 = pgs_rIBR64
make

When executing cmake, I get the following information on the screen:
cmake … -DCMAKE_INSTALL_PREFIX = / opt / gvm / -DPostgreSQL_TYPE_INCLUDE_DIR = / usr / include / pgsql / server -DPostgreSQL_INCLUDE_DIR = / usr / include / pgsql / server -DPostgre64 = pgs_rIBR64 / pgs_rIBR64 = pgs_rIBR64

  • Configuring Greenbone Vulnerability Manager …
  • The C compiler identification is GNU 8.4.1
  • Check for working C compiler: / usr / bin / cc
  • Check for working C compiler: / usr / bin / cc - works
  • Detecting C compiler ABI info
  • Detecting C compiler ABI info - done
  • Detecting C compile features
  • Detecting C compile features - done
  • Found PkgConfig: / usr / bin / pkg-config (found version “1.4.2”)
  • Found Git: / usr / bin / git (found version “2.27.0”)
  • Install prefix: / opt / gvm
  • Looking for pthread.h
  • Looking for pthread.h - found
  • Performing Test CMAKE_HAVE_LIBC_PTHREAD
  • Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
  • Looking for pthread_create in pthreads
  • Looking for pthread_create in pthreads - not found
  • Looking for pthread_create in pthread
  • Looking for pthread_create in pthread - found
  • Found Threads: TRUE
  • Checking for module ‘libgvm_base> = 21.4.1’
  • Found libgvm_base, version 21.4.1
  • Checking for module ‘libgvm_util> = 21.4.1’
  • Found libgvm_util, version 21.4.1
  • Checking for module ‘libgvm_osp> = 21.4.1’
  • Found libgvm_osp, version 21.4.1
  • Checking for module ‘libgvm_gmp> = 21.4.1’
  • Found libgvm_gmp, version 21.4.1
  • Checking for module ‘gnutls> = 3.2.15’
  • Found gnutls, version 3.6.14
  • Checking for module ‘glib-2.0> = 2.42’
  • Found glib-2.0, version 2.56.4
  • Checking for module ‘libical> = 1.00’
  • Found libical, version 3.0.3
  • Looking for PostgreSQL …
  • Found PostgreSQL: / usr / lib64 / pgsql (found version “10.17”)
  • Looking for xml_split …
  • Looking for xml_split … / usr / bin / xml_split
  • Looking for xsltproc …
  • Looking for xsltproc … / usr / bin / xsltproc
  • Looking for gpgme …
  • Looking for gpgme … /usr/lib64/libgpgme.so
  • Looking for xmltoman …
  • Looking for xmltoman … / usr / bin / xmltoman
  • Looking for xmlmantohtml … / usr / bin / xmlmantohtml
  • Looking for xsltproc …
  • Looking for xsltproc … / usr / bin / xsltproc
  • Found Doxygen: / usr / bin / doxygen (found version “1.8.14”) found components: doxygen dot
  • Configuring done
    WARNING: Target “manage-test” requests linking to directory “/ usr / lib64 / pgsql”. Targets may link only to libraries. CMake is dropping the item.
    WARNING: Target “manage-sql-test” requests linking to directory “/ usr / lib64 / pgsql”. Targets may link only to libraries. CMake is dropping the item.
    WARNING: Target “manage-utils-test” requests linking to directory “/ usr / lib64 / pgsql”. Targets may link only to libraries. CMake is dropping the item.
    WARNING: Target “gmp-tickets-test” requests linking to directory “/ usr / lib64 / pgsql”. Targets may link only to libraries. CMake is dropping the item.
    WARNING: Target “utils-test” requests linking to directory “/ usr / lib64 / pgsql”. Targets may link only to libraries. CMake is dropping the item.
    WARNING: Target “gvmd” requests linking to directory “/ usr / lib64 / pgsql”. Targets may link only to libraries. CMake is dropping the item.
  • Generating done
  • Build files have been written to: /opt/gvm/src/gvmd-21.4.2/build

There are some warnings, but the target link is only to the library.

I’m doing the main build and this is where I have a problem:

Scanning dependencies of target gvm-pg-server
[ 0%] Building C object src/CMakeFiles/gvm-pg-server.dir/manage_pg_server.c.o
[ 5%] Building C object src/CMakeFiles/gvm-pg-server.dir/manage_utils.c.o
[ 5%] Linking C shared library libgvm-pg-server.so
[ 5%] Built target gvm-pg-server
Scanning dependencies of target gvmd
[ 5%] Building C object src/CMakeFiles/gvmd.dir/main.c.o
[ 11%] Building C object src/CMakeFiles/gvmd.dir/gvmd.c.o
[ 11%] Building C object src/CMakeFiles/gvmd.dir/gmpd.c.o
[ 17%] Building C object src/CMakeFiles/gvmd.dir/manage_utils.c.o
[ 17%] Building C object src/CMakeFiles/gvmd.dir/manage.c.o
[ 23%] Building C object src/CMakeFiles/gvmd.dir/sql.c.o
[ 23%] Building C object src/CMakeFiles/gvmd.dir/manage_acl.c.o
[ 23%] Building C object src/CMakeFiles/gvmd.dir/manage_configs.c.o
[ 29%] Building C object src/CMakeFiles/gvmd.dir/manage_get.c.o
[ 29%] Building C object src/CMakeFiles/gvmd.dir/manage_port_lists.c.o
[ 35%] Building C object src/CMakeFiles/gvmd.dir/manage_preferences.c.o
[ 35%] Building C object src/CMakeFiles/gvmd.dir/manage_report_formats.c.o
[ 35%] Building C object src/CMakeFiles/gvmd.dir/manage_authentication.c.o
[ 41%] Building C object src/CMakeFiles/gvmd.dir/manage_sql.c.o
[ 41%] Building C object src/CMakeFiles/gvmd.dir/manage_sql_nvts.c.o
[ 47%] Building C object src/CMakeFiles/gvmd.dir/manage_sql_secinfo.c.o
[ 47%] Building C object src/CMakeFiles/gvmd.dir/manage_sql_port_lists.c.o
[ 47%] Building C object src/CMakeFiles/gvmd.dir/manage_sql_configs.c.o
[ 52%] Building C object src/CMakeFiles/gvmd.dir/manage_sql_report_formats.c.o
[ 52%] Building C object src/CMakeFiles/gvmd.dir/manage_sql_tickets.c.o
[ 58%] Building C object src/CMakeFiles/gvmd.dir/manage_sql_tls_certificates.c.o
[ 58%] Building C object src/CMakeFiles/gvmd.dir/manage_tls_certificates.c.o
[ 58%] Building C object src/CMakeFiles/gvmd.dir/manage_migrators.c.o
[ 64%] Building C object src/CMakeFiles/gvmd.dir/sql_pg.c.o
[ 64%] Building C object src/CMakeFiles/gvmd.dir/manage_pg.c.o
[ 70%] Building C object src/CMakeFiles/gvmd.dir/lsc_user.c.o
[ 70%] Building C object src/CMakeFiles/gvmd.dir/lsc_crypt.c.o
[ 70%] Building C object src/CMakeFiles/gvmd.dir/utils.c.o
[ 76%] Building C object src/CMakeFiles/gvmd.dir/gmp.c.o
[ 76%] Building C object src/CMakeFiles/gvmd.dir/gmp_base.c.o
[ 82%] Building C object src/CMakeFiles/gvmd.dir/gmp_configs.c.o
[ 82%] Building C object src/CMakeFiles/gvmd.dir/gmp_delete.c.o
[ 82%] Building C object src/CMakeFiles/gvmd.dir/gmp_get.c.o
[ 88%] Building C object src/CMakeFiles/gvmd.dir/gmp_port_lists.c.o
[ 88%] Building C object src/CMakeFiles/gvmd.dir/gmp_report_formats.c.o
[ 94%] Building C object src/CMakeFiles/gvmd.dir/gmp_tickets.c.o
[ 94%] Building C object src/CMakeFiles/gvmd.dir/gmp_tls_certificates.c.o
[ 94%] Linking C executable gvmd
CMakeFiles/gvmd.dir/manage_authentication.c.o: In function manage_authentication_setup': /opt/gvm/src/gvmd-21.4.2/src/manage_authentication.c:39: undefined reference to pba_init’
/opt/gvm/src/gvmd-21.4.2/src/manage_authentication.c:51: undefined reference to pba_finalize' CMakeFiles/gvmd.dir/manage_authentication.c.o: In function manage_authentication_hash’:
/opt/gvm/src/gvmd-21.4.2/src/manage_authentication.c:68: undefined reference to pba_hash' CMakeFiles/gvmd.dir/manage_authentication.c.o: In function manage_authentication_verify’:
/opt/gvm/src/gvmd-21.4.2/src/manage_authentication.c:86: undefined reference to `pba_verify_hash’
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/gvmd.dir/build.make:624: src/gvmd] Error 1
make[1]: *** [CMakeFiles/Makefile2:425: src/CMakeFiles/gvmd.dir/all] Error 2
make: *** [Makefile:163: all] Error 2

Has anyone encountered a similar problem and has it been resolved?