Skip to content

Compile error debian 10 #2364

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
mhf-ir opened this issue Jul 21, 2020 · 8 comments
Closed

Compile error debian 10 #2364

mhf-ir opened this issue Jul 21, 2020 · 8 comments
Assignees
Labels
3.x Related to ModSecurity version 3.x

Comments

@mhf-ir
Copy link

mhf-ir commented Jul 21, 2020

Describe the bug

Compile using debian 10 docker image

Following packages are installed:

apt-get install -y build-essential bzr-builddeb ca-certificates curl dh-make dh-systemd gnupg gnupg2 \
    libmaxminddb-dev mmdb-bin libpcre3 libpcre3-dev libtemplate-perl lsb-release make perl python sudo systemtap-sdt-dev unzip uuid-dev wget zlib1g-dev \
    g++ flex bison curl doxygen libyajl-dev libgeoip-dev libtool dh-autoreconf libcurl4-gnutls-dev libxml2 libpcre++-dev libxml2-dev git

cd /opt \
  && git clone https://github.com/SpiderLabs/ModSecurity \
  && cd ModSecurity/ \
  && git checkout v3/master \
  && sh build.sh \
  && git submodule init \
  && git submodule update \
  && ./configure \
  && make

Logs and dumps

libtool: compile:  g++ -DHAVE_CONFIG_H -I. -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include -DPCRE_HAVE_JIT -DWITH_MAXMIND -I/usr/include/x86_64-linux-gnu/ -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT utils/libmodsecurity_la-base64.lo -MD -MP -MF utils/.deps/libmodsecurity_la-base64.Tpo -c utils/base64.cc -o utils/libmodsecurity_la-base64.o >/dev/null 2>&1
mv -f utils/.deps/libmodsecurity_la-base64.Tpo utils/.deps/libmodsecurity_la-base64.Plo
/bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.  -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include      -DPCRE_HAVE_JIT  -DWITH_MAXMIND -I/usr/include/x86_64-linux-gnu/  -I/usr/include/libxml2 -DWITH_LIBXML2   -g -O2 -MT utils/libmodsecurity_la-decode.lo -MD -MP -MF utils/.deps/libmodsecurity_la-decode.Tpo -c -o utils/libmodsecurity_la-decode.lo `test -f 'utils/decode.cc' || echo './'`utils/decode.cc
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include -DPCRE_HAVE_JIT -DWITH_MAXMIND -I/usr/include/x86_64-linux-gnu/ -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT utils/libmodsecurity_la-decode.lo -MD -MP -MF utils/.deps/libmodsecurity_la-decode.Tpo -c utils/decode.cc  -fPIC -DPIC -o utils/.libs/libmodsecurity_la-decode.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include -DPCRE_HAVE_JIT -DWITH_MAXMIND -I/usr/include/x86_64-linux-gnu/ -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT utils/libmodsecurity_la-decode.lo -MD -MP -MF utils/.deps/libmodsecurity_la-decode.Tpo -c utils/decode.cc -o utils/libmodsecurity_la-decode.o >/dev/null 2>&1
mv -f utils/.deps/libmodsecurity_la-decode.Tpo utils/.deps/libmodsecurity_la-decode.Plo
/bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.  -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include      -DPCRE_HAVE_JIT  -DWITH_MAXMIND -I/usr/include/x86_64-linux-gnu/  -I/usr/include/libxml2 -DWITH_LIBXML2   -g -O2 -MT utils/libmodsecurity_la-geo_lookup.lo -MD -MP -MF utils/.deps/libmodsecurity_la-geo_lookup.Tpo -c -o utils/libmodsecurity_la-geo_lookup.lo `test -f 'utils/geo_lookup.cc' || echo './'`utils/geo_lookup.cc
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include -DPCRE_HAVE_JIT -DWITH_MAXMIND -I/usr/include/x86_64-linux-gnu/ -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT utils/libmodsecurity_la-geo_lookup.lo -MD -MP -MF utils/.deps/libmodsecurity_la-geo_lookup.Tpo -c utils/geo_lookup.cc  -fPIC -DPIC -o utils/.libs/libmodsecurity_la-geo_lookup.o
utils/geo_lookup.cc: In member function 'bool modsecurity::Utils::GeoLookup::lookup(const string&, modsecurity::Transaction*, std::function<bool(int, const std::__cxx11::basic_string<char>&)>) const':
utils/geo_lookup.cc:124:32: error: invalid conversion from 'const MMDB_s*' to 'MMDB_s*' [-fpermissive]
         r = MMDB_lookup_string(&mmdb, target.c_str(), &gai_error, &mmdb_error);
                                ^~~~~
In file included from ../src/utils/geo_lookup.h:22,
                 from utils/geo_lookup.cc:25:
/usr/include/x86_64-linux-gnu/maxminddb.h:204:66: note:   initializing argument 1 of 'MMDB_lookup_result_s MMDB_lookup_string(MMDB_s*, const char*, int*, int*)'
     extern MMDB_lookup_result_s MMDB_lookup_string(MMDB_s *const mmdb,
                                                    ~~~~~~~~~~~~~~^~~~
make[3]: *** [Makefile:3167: utils/libmodsecurity_la-geo_lookup.lo] Error 1
make[3]: Leaving directory '/opt/ModSecurity/src'
make[2]: *** [Makefile:3461: all-recursive] Error 1
make[2]: Leaving directory '/opt/ModSecurity/src'
make[1]: *** [Makefile:1216: all] Error 2
make[1]: Leaving directory '/opt/ModSecurity/src'
make: *** [Makefile:1027: all-recursive] Error 1
                                                    ~~~~~~~~~~~~~~^~~~

Expected behavior

Compile success in debian 10

@airween
Copy link
Member

airween commented Jul 21, 2020

See this issue.

@zimmerle
Copy link
Contributor

Hi @mhf-ir,

You can either update the version of your libmaxmind or disable it with: --with-maxmind=no as ./configure option. That was an issue on MaxMind that wasn't treating MMDB_s as a const as it needs to be.

@zimmerle zimmerle self-assigned this Jul 23, 2020
@zimmerle zimmerle added the 3.x Related to ModSecurity version 3.x label Jul 23, 2020
@mhf-ir
Copy link
Author

mhf-ir commented Jul 24, 2020

Using compile latest version of https://github.com/maxmind/libmaxminddb in debian 10,
During configure seems be okey but during make fails again.

root@fd31f718ed1d:/tmp/ModSecurity# mmdblookup  --version

  mmdblookup version 1.4.2
root@fd31f718ed1d:/tmp/ModSecurity# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of g++... gcc3
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for ar... ar
checking the archiver (ar) interface... ar
checking whether make sets $(MAKE)... (cached) yes
./configure: line 4816: PKG_PROG_PKG_CONFIG: command not found
configure: Nothing about YAJL was informed during the configure phase. Trying to detect it on the platform...
configure: YAJL library was not found
./configure: line 5064: PKG_PROG_PKG_CONFIG: command not found
configure: Nothing about GeoIP was informed during the configure phase. Trying to detect it on the platform...
configure: GeoIP headers found at: /usr/include
configure: GeoIP library found at: /usr/lib/x86_64-linux-gnu//libGeoIP.so
configure: GeoIP headers found at: /usr/include
configure: GeoIP library found at: /usr/lib/x86_64-linux-gnu//libGeoIP.so
configure: GeoIP headers found at: /usr/include
configure: GeoIP library found at: /usr/lib/x86_64-linux-gnu//libGeoIP.so
configure: GeoIP headers found at: /usr/include
configure: GeoIP library found at: /usr/lib/x86_64-linux-gnu//libGeoIP.so
configure: GeoIP headers found at: /usr/include
configure: GeoIP library found at: /usr/lib/x86_64-linux-gnu//libGeoIP.so
configure: GeoIP headers found at: /usr/include
configure: GeoIP library found at: /usr/lib/x86_64-linux-gnu//libGeoIP.so
configure: GeoIP headers found at: /usr/include
configure: GeoIP library found at: /usr/lib/x86_64-linux-gnu//libGeoIP.so
configure: using GeoIP v
./configure: line 5323: PKG_PROG_PKG_CONFIG: command not found
configure: Nothing about MaxMind was informed during the configure phase. Trying to detect it on the platform...
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: MaxMind headers found at: /usr/local/include
configure: MaxMind library found at: /usr/local/lib//libmaxminddb.so
configure: using MaxMind v
./configure: line 5586: PKG_PROG_PKG_CONFIG: command not found
configure: Nothing about LMDB was informed during the configure phase. Trying to detect it on the platform...
*** LOOKING AT PATH:  /usr/lib
*** LOOKING AT PATH:  /usr/local/lib
*** LOOKING AT PATH:  /usr/local/liblmdb
*** LOOKING AT PATH:  /usr/local/lmdb
*** LOOKING AT PATH:  /usr/local
*** LOOKING AT PATH:  /opt/liblmdb
*** LOOKING AT PATH:  /opt/lmdb
*** LOOKING AT PATH:  /opt
*** LOOKING AT PATH:  /usr
*** LOOKING AT PATH:  /usr/lib64
*** LOOKING AT PATH:  /opt/local
configure: LMDB library was not found
*** LOOKING AT PATH:  /usr/lib
*** LOOKING AT PATH:  /usr/local/lib
*** LOOKING AT PATH:  /usr/local/fuzzy
*** LOOKING AT PATH:  /usr/local/libfuzzy
*** LOOKING AT PATH:  /usr/local
*** LOOKING AT PATH:  /opt
*** LOOKING AT PATH:  /usr
*** LOOKING AT PATH:  /usr/lib64
*** LOOKING AT PATH:  /opt/local
configure: SSDEEP library was not found
*** LOOKING AT PATH:  /usr/lib
*** LOOKING AT PATH:  /usr/local/lib
*** LOOKING AT PATH:  /usr/local/lib64
*** LOOKING AT PATH:  /usr/local/lua
*** LOOKING AT PATH:  /usr/local/liblua
*** LOOKING AT PATH:  /usr/local
*** LOOKING AT PATH:  /opt
*** LOOKING AT PATH:  /usr
*** LOOKING AT PATH:  /usr/lib64
*** LOOKING AT PATH:  /opt/local
configure: LUA library was not found
checking for libcurl config script... /usr/bin/curl-config
configure: curl VERSION: 7.64.0 
configure: curl LDADD: 
checking if libcurl is at least v... yes, 7.64.0 
checking if libcurl is linked with gnutls... no
configure: using curl v7.64.0 
checking for libxml2 config script... /usr/bin/xml2-config
configure: xml VERSION: 2.9.4
configure: xml CFLAGS: -I/usr/include/libxml2 -DWITH_LIBXML2
configure: xml LDADD: -lxml2
checking if libxml2 is at least v2.6.29... yes, 2.9.4
configure: using libxml2 v2.9.4
checking for libpcre config script... /usr/bin/pcre-config
configure: pcre VERSION: 8.39
configure: pcre LDADD: -lpcre
configure: pcre PCRE_LD_PATH: /-lpcre
checking for PCRE JIT... yes
configure: using pcre v8.39
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking string usability... no
checking string presence... no
checking for string... no
checking iostream usability... no
checking iostream presence... no
checking for iostream... no
checking sys/utsname.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... no
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
Checking platform... Identified as Linux
checking for doxygen... /usr/bin/doxygen
checking for perl... /usr/bin/perl
checking for valgrind... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating modsecurity.pc
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating src/Makefile
config.status: creating others/Makefile
config.status: creating tools/Makefile
config.status: creating tools/rules-check/Makefile
config.status: creating examples/Makefile
config.status: creating examples/simple_example_using_c/Makefile
config.status: creating examples/multiprocess_c/Makefile
config.status: creating examples/reading_logs_with_offset/Makefile
config.status: creating examples/reading_logs_via_rule_message/Makefile
config.status: creating examples/using_bodies_in_chunks/Makefile
config.status: creating src/config.h
config.status: src/config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
 
 
ModSecurity - v3.0.4-77-g0eb3c123 for Linux
 
 Mandatory dependencies
   + libInjection                                  ....v3.0.4-77-g0eb3c123
   + SecLang tests                                 ....0eb3c123
 
 Optional dependencies
   + GeoIP/MaxMind                                 ....found 
      * (MaxMind) v
         /usr/local/lib//libmaxminddb.so, /usr/local/include, -DWITH_MAXMIND -I/usr/local/include
      * (GeoIP) v
         /usr/lib/x86_64-linux-gnu//libGeoIP.so, /usr/include
   + LibCURL                                       ....found v7.64.0 
      -lcurl,  -DWITH_CURL_SSLVERSION_TLSv1_2 -DWITH_CURL
   + YAJL                                          ....not found
   + LMDB                                          ....not found
   + LibXML2                                       ....found v2.9.4
      -lxml2, -I/usr/include/libxml2 -DWITH_LIBXML2
   + SSDEEP                                        ....not found
   + LUA                                           ....not found
 
 Other Options
   + Test Utilities                                ....disabled
   + SecDebugLog                                   ....enabled
   + afl fuzzer                                    ....disabled
   + library examples                              ....enabled
   + Building parser                               ....disabled
   + Treating pm operations as critical section    ....disabled
/bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.  -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include      -DPCRE_HAVE_JIT  -DWITH_MAXMIND -I/usr/local/include  -I/usr/include/libxml2 -DWITH_LIBXML2   -g -O2 -MT utils/libmodsecurity_la-ip_tree.lo -MD -MP -MF utils/.deps/libmodsecurity_la-ip_tree.Tpo -c -o utils/libmodsecurity_la-ip_tree.lo `test -f 'utils/ip_tree.cc' || echo './'`utils/ip_tree.cc
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include -DPCRE_HAVE_JIT -DWITH_MAXMIND -I/usr/local/include -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT utils/libmodsecurity_la-ip_tree.lo -MD -MP -MF utils/.deps/libmodsecurity_la-ip_tree.Tpo -c utils/ip_tree.cc  -fPIC -DPIC -o utils/.libs/libmodsecurity_la-ip_tree.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include -DPCRE_HAVE_JIT -DWITH_MAXMIND -I/usr/local/include -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT utils/libmodsecurity_la-ip_tree.lo -MD -MP -MF utils/.deps/libmodsecurity_la-ip_tree.Tpo -c utils/ip_tree.cc -o utils/libmodsecurity_la-ip_tree.o >/dev/null 2>&1
mv -f utils/.deps/libmodsecurity_la-ip_tree.Tpo utils/.deps/libmodsecurity_la-ip_tree.Plo
/bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.  -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include      -DPCRE_HAVE_JIT  -DWITH_MAXMIND -I/usr/local/include  -I/usr/include/libxml2 -DWITH_LIBXML2   -g -O2 -MT utils/libmodsecurity_la-regex.lo -MD -MP -MF utils/.deps/libmodsecurity_la-regex.Tpo -c -o utils/libmodsecurity_la-regex.lo `test -f 'utils/regex.cc' || echo './'`utils/regex.cc
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include -DPCRE_HAVE_JIT -DWITH_MAXMIND -I/usr/local/include -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT utils/libmodsecurity_la-regex.lo -MD -MP -MF utils/.deps/libmodsecurity_la-regex.Tpo -c utils/regex.cc  -fPIC -DPIC -o utils/.libs/libmodsecurity_la-regex.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include -DPCRE_HAVE_JIT -DWITH_MAXMIND -I/usr/local/include -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT utils/libmodsecurity_la-regex.lo -MD -MP -MF utils/.deps/libmodsecurity_la-regex.Tpo -c utils/regex.cc -o utils/libmodsecurity_la-regex.o >/dev/null 2>&1
mv -f utils/.deps/libmodsecurity_la-regex.Tpo utils/.deps/libmodsecurity_la-regex.Plo
/bin/bash ../libtool  --tag=CXX   --mode=link g++  -g -O2  -L/usr/lib/x86_64-linux-gnu/  -lpcre      -L/usr/local/lib/  -version-info 3:4:0 -lpcre -o libmodsecurity.la -rpath /usr/local/modsecurity/lib parser/libmodsecurity_la-seclang-parser.lo parser/libmodsecurity_la-seclang-scanner.lo parser/libmodsecurity_la-driver.lo libmodsecurity_la-transaction.lo libmodsecurity_la-anchored_set_variable.lo libmodsecurity_la-anchored_variable.lo audit_log/libmodsecurity_la-audit_log.lo audit_log/writer/libmodsecurity_la-writer.lo audit_log/writer/libmodsecurity_la-https.lo audit_log/writer/libmodsecurity_la-serial.lo audit_log/writer/libmodsecurity_la-parallel.lo libmodsecurity_la-modsecurity.lo libmodsecurity_la-rules_set.lo libmodsecurity_la-rules_set_phases.lo libmodsecurity_la-rules_set_properties.lo debug_log/libmodsecurity_la-debug_log.lo debug_log/libmodsecurity_la-debug_log_writer.lo libmodsecurity_la-run_time_string.lo libmodsecurity_la-rule.lo libmodsecurity_la-rule_unconditional.lo libmodsecurity_la-rule_with_actions.lo libmodsecurity_la-rule_with_operator.lo libmodsecurity_la-rule_message.lo libmodsecurity_la-rule_script.lo libmodsecurity_la-unique_id.lo libmodsecurity_la-rules_exceptions.lo request_body_processor/libmodsecurity_la-multipart.lo request_body_processor/libmodsecurity_la-xml.lo request_body_processor/libmodsecurity_la-json.lo actions/libmodsecurity_la-accuracy.lo actions/libmodsecurity_la-action.lo actions/libmodsecurity_la-audit_log.lo actions/libmodsecurity_la-block.lo actions/libmodsecurity_la-capture.lo actions/libmodsecurity_la-chain.lo actions/ctl/libmodsecurity_la-audit_log_parts.lo actions/ctl/libmodsecurity_la-rule_engine.lo actions/ctl/libmodsecurity_la-request_body_processor_json.lo actions/ctl/libmodsecurity_la-request_body_processor_xml.lo actions/ctl/libmodsecurity_la-request_body_processor_urlencoded.lo actions/ctl/libmodsecurity_la-rule_remove_target_by_tag.lo actions/ctl/libmodsecurity_la-rule_remove_target_by_id.lo actions/ctl/libmodsecurity_la-rule_remove_by_id.lo actions/ctl/libmodsecurity_la-rule_remove_by_tag.lo actions/ctl/libmodsecurity_la-request_body_access.lo actions/disruptive/libmodsecurity_la-allow.lo actions/disruptive/libmodsecurity_la-deny.lo actions/disruptive/libmodsecurity_la-drop.lo actions/disruptive/libmodsecurity_la-redirect.lo actions/disruptive/libmodsecurity_la-pass.lo actions/libmodsecurity_la-exec.lo actions/libmodsecurity_la-init_col.lo actions/libmodsecurity_la-log.lo actions/libmodsecurity_la-log_data.lo actions/libmodsecurity_la-maturity.lo actions/libmodsecurity_la-msg.lo actions/libmodsecurity_la-multi_match.lo actions/libmodsecurity_la-no_audit_log.lo actions/libmodsecurity_la-no_log.lo actions/libmodsecurity_la-phase.lo actions/libmodsecurity_la-rev.lo actions/libmodsecurity_la-rule_id.lo actions/libmodsecurity_la-severity.lo actions/libmodsecurity_la-set_env.lo actions/libmodsecurity_la-set_rsc.lo actions/libmodsecurity_la-set_sid.lo actions/libmodsecurity_la-set_uid.lo actions/libmodsecurity_la-set_var.lo actions/data/libmodsecurity_la-status.lo actions/libmodsecurity_la-skip.lo actions/libmodsecurity_la-skip_after.lo actions/libmodsecurity_la-tag.lo actions/transformations/libmodsecurity_la-base64_decode.lo actions/transformations/libmodsecurity_la-base64_encode.lo actions/transformations/libmodsecurity_la-base64_decode_ext.lo actions/transformations/libmodsecurity_la-cmd_line.lo actions/transformations/libmodsecurity_la-compress_whitespace.lo actions/transformations/libmodsecurity_la-css_decode.lo actions/transformations/libmodsecurity_la-escape_seq_decode.lo actions/transformations/libmodsecurity_la-hex_decode.lo actions/transformations/libmodsecurity_la-hex_encode.lo actions/transformations/libmodsecurity_la-html_entity_decode.lo actions/transformations/libmodsecurity_la-js_decode.lo actions/transformations/libmodsecurity_la-length.lo actions/transformations/libmodsecurity_la-lower_case.lo actions/transformations/libmodsecurity_la-md5.lo actions/transformations/libmodsecurity_la-none.lo actions/transformations/libmodsecurity_la-normalise_path.lo actions/transformations/libmodsecurity_la-normalise_path_win.lo actions/transformations/libmodsecurity_la-parity_even_7bit.lo actions/transformations/libmodsecurity_la-parity_odd_7bit.lo actions/transformations/libmodsecurity_la-parity_zero_7bit.lo actions/transformations/libmodsecurity_la-remove_comments.lo actions/transformations/libmodsecurity_la-remove_comments_char.lo actions/transformations/libmodsecurity_la-remove_nulls.lo actions/transformations/libmodsecurity_la-remove_whitespace.lo actions/transformations/libmodsecurity_la-replace_comments.lo actions/transformations/libmodsecurity_la-replace_nulls.lo actions/transformations/libmodsecurity_la-sha1.lo actions/transformations/libmodsecurity_la-sql_hex_decode.lo actions/transformations/libmodsecurity_la-transformation.lo actions/transformations/libmodsecurity_la-trim.lo actions/transformations/libmodsecurity_la-trim_left.lo actions/transformations/libmodsecurity_la-trim_right.lo actions/transformations/libmodsecurity_la-upper_case.lo actions/transformations/libmodsecurity_la-url_decode.lo actions/transformations/libmodsecurity_la-url_decode_uni.lo actions/transformations/libmodsecurity_la-url_encode.lo actions/transformations/libmodsecurity_la-utf8_to_unicode.lo actions/libmodsecurity_la-ver.lo actions/libmodsecurity_la-xmlns.lo engine/libmodsecurity_la-lua.lo collection/libmodsecurity_la-collections.lo collection/backend/libmodsecurity_la-in_memory-per_process.lo collection/backend/libmodsecurity_la-lmdb.lo operators/libmodsecurity_la-begins_with.lo operators/libmodsecurity_la-contains.lo operators/libmodsecurity_la-contains_word.lo operators/libmodsecurity_la-detect_sqli.lo operators/libmodsecurity_la-detect_xss.lo operators/libmodsecurity_la-ends_with.lo operators/libmodsecurity_la-eq.lo operators/libmodsecurity_la-fuzzy_hash.lo operators/libmodsecurity_la-ge.lo operators/libmodsecurity_la-geo_lookup.lo operators/libmodsecurity_la-gsblookup.lo operators/libmodsecurity_la-gt.lo operators/libmodsecurity_la-inspect_file.lo operators/libmodsecurity_la-ip_match.lo operators/libmodsecurity_la-ip_match_f.lo operators/libmodsecurity_la-ip_match_from_file.lo operators/libmodsecurity_la-le.lo operators/libmodsecurity_la-lt.lo operators/libmodsecurity_la-no_match.lo operators/libmodsecurity_la-operator.lo operators/libmodsecurity_la-pm.lo operators/libmodsecurity_la-pm_f.lo operators/libmodsecurity_la-pm_from_file.lo operators/libmodsecurity_la-rbl.lo operators/libmodsecurity_la-rsub.lo operators/libmodsecurity_la-rx.lo operators/libmodsecurity_la-str_eq.lo operators/libmodsecurity_la-str_match.lo operators/libmodsecurity_la-validate_byte_range.lo operators/libmodsecurity_la-validate_dtd.lo operators/libmodsecurity_la-validate_hash.lo operators/libmodsecurity_la-validate_schema.lo operators/libmodsecurity_la-validate_url_encoding.lo operators/libmodsecurity_la-validate_utf8_encoding.lo operators/libmodsecurity_la-verify_cc.lo operators/libmodsecurity_la-verify_cpf.lo operators/libmodsecurity_la-verify_ssn.lo operators/libmodsecurity_la-verify_svnr.lo operators/libmodsecurity_la-within.lo operators/libmodsecurity_la-unconditional_match.lo utils/libmodsecurity_la-acmp.lo utils/libmodsecurity_la-base64.lo utils/libmodsecurity_la-decode.lo utils/libmodsecurity_la-geo_lookup.lo utils/libmodsecurity_la-https_client.lo utils/libmodsecurity_la-ip_tree.lo utils/libmodsecurity_la-md5.lo utils/libmodsecurity_la-msc_tree.lo utils/libmodsecurity_la-random.lo utils/libmodsecurity_la-regex.lo utils/libmodsecurity_la-sha1.lo utils/libmodsecurity_la-string.lo utils/libmodsecurity_la-system.lo utils/libmodsecurity_la-shared_files.lo variables/libmodsecurity_la-duration.lo variables/libmodsecurity_la-env.lo variables/libmodsecurity_la-highest_severity.lo variables/libmodsecurity_la-modsec_build.lo variables/libmodsecurity_la-remote_user.lo variables/libmodsecurity_la-rule.lo variables/libmodsecurity_la-time.lo variables/libmodsecurity_la-time_day.lo variables/libmodsecurity_la-time_epoch.lo variables/libmodsecurity_la-time_hour.lo variables/libmodsecurity_la-time_min.lo variables/libmodsecurity_la-time_mon.lo variables/libmodsecurity_la-time_sec.lo variables/libmodsecurity_la-time_wday.lo variables/libmodsecurity_la-time_year.lo variables/libmodsecurity_la-tx.lo variables/libmodsecurity_la-variable.lo variables/libmodsecurity_la-xml.lo -lcurl -lGeoIP -lrt   -lxml2   ../others/libinjection.la ../others/libmbedtls.la -lpcre -lpcre -llibmaxminddb   
libtool: link: g++  -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/8/crtbeginS.o  parser/.libs/libmodsecurity_la-seclang-parser.o parser/.libs/libmodsecurity_la-seclang-scanner.o parser/.libs/libmodsecurity_la-driver.o .libs/libmodsecurity_la-transaction.o .libs/libmodsecurity_la-anchored_set_variable.o .libs/libmodsecurity_la-anchored_variable.o audit_log/.libs/libmodsecurity_la-audit_log.o audit_log/writer/.libs/libmodsecurity_la-writer.o audit_log/writer/.libs/libmodsecurity_la-https.o audit_log/writer/.libs/libmodsecurity_la-serial.o audit_log/writer/.libs/libmodsecurity_la-parallel.o .libs/libmodsecurity_la-modsecurity.o .libs/libmodsecurity_la-rules_set.o .libs/libmodsecurity_la-rules_set_phases.o .libs/libmodsecurity_la-rules_set_properties.o debug_log/.libs/libmodsecurity_la-debug_log.o debug_log/.libs/libmodsecurity_la-debug_log_writer.o .libs/libmodsecurity_la-run_time_string.o .libs/libmodsecurity_la-rule.o .libs/libmodsecurity_la-rule_unconditional.o .libs/libmodsecurity_la-rule_with_actions.o .libs/libmodsecurity_la-rule_with_operator.o .libs/libmodsecurity_la-rule_message.o .libs/libmodsecurity_la-rule_script.o .libs/libmodsecurity_la-unique_id.o .libs/libmodsecurity_la-rules_exceptions.o request_body_processor/.libs/libmodsecurity_la-multipart.o request_body_processor/.libs/libmodsecurity_la-xml.o request_body_processor/.libs/libmodsecurity_la-json.o actions/.libs/libmodsecurity_la-accuracy.o actions/.libs/libmodsecurity_la-action.o actions/.libs/libmodsecurity_la-audit_log.o actions/.libs/libmodsecurity_la-block.o actions/.libs/libmodsecurity_la-capture.o actions/.libs/libmodsecurity_la-chain.o actions/ctl/.libs/libmodsecurity_la-audit_log_parts.o actions/ctl/.libs/libmodsecurity_la-rule_engine.o actions/ctl/.libs/libmodsecurity_la-request_body_processor_json.o actions/ctl/.libs/libmodsecurity_la-request_body_processor_xml.o actions/ctl/.libs/libmodsecurity_la-request_body_processor_urlencoded.o actions/ctl/.libs/libmodsecurity_la-rule_remove_target_by_tag.o actions/ctl/.libs/libmodsecurity_la-rule_remove_target_by_id.o actions/ctl/.libs/libmodsecurity_la-rule_remove_by_id.o actions/ctl/.libs/libmodsecurity_la-rule_remove_by_tag.o actions/ctl/.libs/libmodsecurity_la-request_body_access.o actions/disruptive/.libs/libmodsecurity_la-allow.o actions/disruptive/.libs/libmodsecurity_la-deny.o actions/disruptive/.libs/libmodsecurity_la-drop.o actions/disruptive/.libs/libmodsecurity_la-redirect.o actions/disruptive/.libs/libmodsecurity_la-pass.o actions/.libs/libmodsecurity_la-exec.o actions/.libs/libmodsecurity_la-init_col.o actions/.libs/libmodsecurity_la-log.o actions/.libs/libmodsecurity_la-log_data.o actions/.libs/libmodsecurity_la-maturity.o actions/.libs/libmodsecurity_la-msg.o actions/.libs/libmodsecurity_la-multi_match.o actions/.libs/libmodsecurity_la-no_audit_log.o actions/.libs/libmodsecurity_la-no_log.o actions/.libs/libmodsecurity_la-phase.o actions/.libs/libmodsecurity_la-rev.o actions/.libs/libmodsecurity_la-rule_id.o actions/.libs/libmodsecurity_la-severity.o actions/.libs/libmodsecurity_la-set_env.o actions/.libs/libmodsecurity_la-set_rsc.o actions/.libs/libmodsecurity_la-set_sid.o actions/.libs/libmodsecurity_la-set_uid.o actions/.libs/libmodsecurity_la-set_var.o actions/data/.libs/libmodsecurity_la-status.o actions/.libs/libmodsecurity_la-skip.o actions/.libs/libmodsecurity_la-skip_after.o actions/.libs/libmodsecurity_la-tag.o actions/transformations/.libs/libmodsecurity_la-base64_decode.o actions/transformations/.libs/libmodsecurity_la-base64_encode.o actions/transformations/.libs/libmodsecurity_la-base64_decode_ext.o actions/transformations/.libs/libmodsecurity_la-cmd_line.o actions/transformations/.libs/libmodsecurity_la-compress_whitespace.o actions/transformations/.libs/libmodsecurity_la-css_decode.o actions/transformations/.libs/libmodsecurity_la-escape_seq_decode.o actions/transformations/.libs/libmodsecurity_la-hex_decode.o actions/transformations/.libs/libmodsecurity_la-hex_encode.o actions/transformations/.libs/libmodsecurity_la-html_entity_decode.o actions/transformations/.libs/libmodsecurity_la-js_decode.o actions/transformations/.libs/libmodsecurity_la-length.o actions/transformations/.libs/libmodsecurity_la-lower_case.o actions/transformations/.libs/libmodsecurity_la-md5.o actions/transformations/.libs/libmodsecurity_la-none.o actions/transformations/.libs/libmodsecurity_la-normalise_path.o actions/transformations/.libs/libmodsecurity_la-normalise_path_win.o actions/transformations/.libs/libmodsecurity_la-parity_even_7bit.o actions/transformations/.libs/libmodsecurity_la-parity_odd_7bit.o actions/transformations/.libs/libmodsecurity_la-parity_zero_7bit.o actions/transformations/.libs/libmodsecurity_la-remove_comments.o actions/transformations/.libs/libmodsecurity_la-remove_comments_char.o actions/transformations/.libs/libmodsecurity_la-remove_nulls.o actions/transformations/.libs/libmodsecurity_la-remove_whitespace.o actions/transformations/.libs/libmodsecurity_la-replace_comments.o actions/transformations/.libs/libmodsecurity_la-replace_nulls.o actions/transformations/.libs/libmodsecurity_la-sha1.o actions/transformations/.libs/libmodsecurity_la-sql_hex_decode.o actions/transformations/.libs/libmodsecurity_la-transformation.o actions/transformations/.libs/libmodsecurity_la-trim.o actions/transformations/.libs/libmodsecurity_la-trim_left.o actions/transformations/.libs/libmodsecurity_la-trim_right.o actions/transformations/.libs/libmodsecurity_la-upper_case.o actions/transformations/.libs/libmodsecurity_la-url_decode.o actions/transformations/.libs/libmodsecurity_la-url_decode_uni.o actions/transformations/.libs/libmodsecurity_la-url_encode.o actions/transformations/.libs/libmodsecurity_la-utf8_to_unicode.o actions/.libs/libmodsecurity_la-ver.o actions/.libs/libmodsecurity_la-xmlns.o engine/.libs/libmodsecurity_la-lua.o collection/.libs/libmodsecurity_la-collections.o collection/backend/.libs/libmodsecurity_la-in_memory-per_process.o collection/backend/.libs/libmodsecurity_la-lmdb.o operators/.libs/libmodsecurity_la-begins_with.o operators/.libs/libmodsecurity_la-contains.o operators/.libs/libmodsecurity_la-contains_word.o operators/.libs/libmodsecurity_la-detect_sqli.o operators/.libs/libmodsecurity_la-detect_xss.o operators/.libs/libmodsecurity_la-ends_with.o operators/.libs/libmodsecurity_la-eq.o operators/.libs/libmodsecurity_la-fuzzy_hash.o operators/.libs/libmodsecurity_la-ge.o operators/.libs/libmodsecurity_la-geo_lookup.o operators/.libs/libmodsecurity_la-gsblookup.o operators/.libs/libmodsecurity_la-gt.o operators/.libs/libmodsecurity_la-inspect_file.o operators/.libs/libmodsecurity_la-ip_match.o operators/.libs/libmodsecurity_la-ip_match_f.o operators/.libs/libmodsecurity_la-ip_match_from_file.o operators/.libs/libmodsecurity_la-le.o operators/.libs/libmodsecurity_la-lt.o operators/.libs/libmodsecurity_la-no_match.o operators/.libs/libmodsecurity_la-operator.o operators/.libs/libmodsecurity_la-pm.o operators/.libs/libmodsecurity_la-pm_f.o operators/.libs/libmodsecurity_la-pm_from_file.o operators/.libs/libmodsecurity_la-rbl.o operators/.libs/libmodsecurity_la-rsub.o operators/.libs/libmodsecurity_la-rx.o operators/.libs/libmodsecurity_la-str_eq.o operators/.libs/libmodsecurity_la-str_match.o operators/.libs/libmodsecurity_la-validate_byte_range.o operators/.libs/libmodsecurity_la-validate_dtd.o operators/.libs/libmodsecurity_la-validate_hash.o operators/.libs/libmodsecurity_la-validate_schema.o operators/.libs/libmodsecurity_la-validate_url_encoding.o operators/.libs/libmodsecurity_la-validate_utf8_encoding.o operators/.libs/libmodsecurity_la-verify_cc.o operators/.libs/libmodsecurity_la-verify_cpf.o operators/.libs/libmodsecurity_la-verify_ssn.o operators/.libs/libmodsecurity_la-verify_svnr.o operators/.libs/libmodsecurity_la-within.o operators/.libs/libmodsecurity_la-unconditional_match.o utils/.libs/libmodsecurity_la-acmp.o utils/.libs/libmodsecurity_la-base64.o utils/.libs/libmodsecurity_la-decode.o utils/.libs/libmodsecurity_la-geo_lookup.o utils/.libs/libmodsecurity_la-https_client.o utils/.libs/libmodsecurity_la-ip_tree.o utils/.libs/libmodsecurity_la-md5.o utils/.libs/libmodsecurity_la-msc_tree.o utils/.libs/libmodsecurity_la-random.o utils/.libs/libmodsecurity_la-regex.o utils/.libs/libmodsecurity_la-sha1.o utils/.libs/libmodsecurity_la-string.o utils/.libs/libmodsecurity_la-system.o utils/.libs/libmodsecurity_la-shared_files.o variables/.libs/libmodsecurity_la-duration.o variables/.libs/libmodsecurity_la-env.o variables/.libs/libmodsecurity_la-highest_severity.o variables/.libs/libmodsecurity_la-modsec_build.o variables/.libs/libmodsecurity_la-remote_user.o variables/.libs/libmodsecurity_la-rule.o variables/.libs/libmodsecurity_la-time.o variables/.libs/libmodsecurity_la-time_day.o variables/.libs/libmodsecurity_la-time_epoch.o variables/.libs/libmodsecurity_la-time_hour.o variables/.libs/libmodsecurity_la-time_min.o variables/.libs/libmodsecurity_la-time_mon.o variables/.libs/libmodsecurity_la-time_sec.o variables/.libs/libmodsecurity_la-time_wday.o variables/.libs/libmodsecurity_la-time_year.o variables/.libs/libmodsecurity_la-tx.o variables/.libs/libmodsecurity_la-variable.o variables/.libs/libmodsecurity_la-xml.o  -Wl,--whole-archive ../others/.libs/libinjection.a ../others/.libs/libmbedtls.a -Wl,--no-whole-archive  -L/usr/lib/x86_64-linux-gnu/ -L/usr/local/lib/ /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so -lGeoIP -lrt -lxml2 -lpcre -llibmaxminddb -L/usr/lib/gcc/x86_64-linux-gnu/8 -L/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/8/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/8/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crtn.o  -g -O2   -pthread -Wl,-soname -Wl,libmodsecurity.so.3 -o .libs/libmodsecurity.so.3.0.4
/usr/bin/ld: cannot find -llibmaxminddb
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:1802: libmodsecurity.la] Error 1
make[3]: Leaving directory '/tmp/ModSecurity/src'
make[2]: *** [Makefile:3461: all-recursive] Error 1
make[2]: Leaving directory '/tmp/ModSecurity/src'
make[1]: *** [Makefile:1216: all] Error 2
make[1]: Leaving directory '/tmp/ModSecurity/src'
make: *** [Makefile:1027: all-recursive] Error 1

@zimmerle @airween

@airween
Copy link
Member

airween commented Jul 24, 2020

Just two quick idea: check the pkg-config package is installed (dpkg -l pkg-config), and try to run make clean and re-run the whole process.

@mhf-ir
Copy link
Author

mhf-ir commented Jul 24, 2020

@airween

root@fd31f718ed1d:/tmp/ModSecurity# dpkg -l pkg-config
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-===========================================
ii  pkg-config     0.29-6       amd64        manage compile and link flags for libraries

make clean
./configure
make

riable.o variables/.libs/libmodsecurity_la-xml.o  -Wl,--whole-archive ../others/.libs/libinjection.a ../others/.libs/libmbedtls.a -Wl,--no-whole-archive  -L/usr/lib/x86_64-linux-gnu/ -L/usr/local/lib/ /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so -lGeoIP -lrt -lxml2 -lpcre -llibmaxminddb -L/usr/lib/gcc/x86_64-linux-gnu/8 -L/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/8/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/8/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crtn.o  -g -O2   -pthread -Wl,-soname -Wl,libmodsecurity.so.3 -o .libs/libmodsecurity.so.3.0.4
/usr/bin/ld: cannot find -llibmaxminddb
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:1802: libmodsecurity.la] Error 1
make[3]: Leaving directory '/tmp/ModSecurity/src'
make[2]: *** [Makefile:3461: all-recursive] Error 1
make[2]: Leaving directory '/tmp/ModSecurity/src'
make[1]: *** [Makefile:1216: all] Error 2
make[1]: Leaving directory '/tmp/ModSecurity/src'
make: *** [Makefile:1027: all-recursive] Error 1

Problem not solve

@airween
Copy link
Member

airween commented Jul 25, 2020

@mhf-ir, I had no idea, so I started a VM and tried to reproduce your issue (the details were fine).

There were few interesting lines in your output (and of course, in mine too), eg.:

./configure: line 5586: PKG_PROG_PKG_CONFIG: command not found

So I also run into same result as you. I think the problem is in Debian's pkg-config.

Whit this workaround I could compile the library on the up-to-date Debian 10 system:

make clean
autoreconf -ivf -I /usr/share/aclocal
./configure
make

Could you try this?

(Please note, don't forget to run make check after the build process.)

@zimmerle
Copy link
Contributor

Hi @mhf-ir,

Given the output of the configure scripts, it is likely that you have both versions installed. In that scenario the build script will pick the distribution one. You may want to force configure to use the version that you have installed by using --with-maxmind=/path/to/your/installation. That will point the build scripts towards the correct version.

Make sure that the libraries are in your LD_LIB_PATH otherwise - during load time - the main process will pick the wrong library again. You can double-check by using ldd /path/to/your/nginx.

@l2grom
Copy link

l2grom commented Apr 6, 2025

/usr/include -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT utils/libmodsecurity_la-geo_lookup.lo -MD -MP -MF utils/.deps/libmodsecurity_la-geo_lookup.Tpo -c utils/geo_lookup.cc -fPIC -DPIC -o utils/.libs/libmodsecurity_la-geo_lookup.o
utils/geo_lookup.cc: In member function 'bool modsecurity::Utils::GeoLookup::lookup(const string&, modsecurity::Transaction*, std::function<bool(int, const std::__cxx11::basic_string&)>) const':
utils/geo_lookup.cc:134:32: error: invalid conversion from 'const MMDB_s*' to 'MMDB_s*' [-fpermissive]
134 | r = MMDB_lookup_string(&mmdb, target.c_str(), &gai_error, &mmdb_error);
| ^~~~~
| |
| const MMDB_s*
In file included from ../src/utils/geo_lookup.h:22,
from utils/geo_lookup.cc:28:
/usr/include/maxminddb.h:204:66: note: initializing argument 1 of 'MMDB_lookup_result_s MMDB_lookup_string(MMDB_s*, const char*, int*, int*)'
204 | extern MMDB_lookup_result_s MMDB_lookup_string(MMDB_s *const mmdb,
| ~~~~~~~~~~~~~~^~~~
make[3]: *** [utils/libmodsecurity_la-geo_lookup.lo] Error 1
make[3]: Leaving directory /root/nginx_build/ModSecurity/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory /root/nginx_build/ModSecurity/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/nginx_build/ModSecurity/src'
make: *** [all-recursive] Error 1
[root@vps ModSecurity]#


Thank you very much, I did the following and everything worked in the file geo_lookup.cc line 134 r = MMDB_lookup_string(&mmdb, target.c_str(), &gai_error, &mmdb_error); replaced by r = MMDB_lookup_string(const_cast<MMDB_s*>(&mmdb), target.c_str(), &gai_error, &mmdb_error); and HURRAY!!!! Thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.x Related to ModSecurity version 3.x
Projects
None yet
Development

No branches or pull requests

4 participants