Describe the bug
Build Failing while installing on Ubuntu 16.04 with below error: This was working fine until today.
Logs and dumps
Making all in src
make[1]: Entering directory '/opt/ModSecurity/src'
make all-recursive
make[2]: Entering directory '/opt/ModSecurity/src'
make[3]: Entering directory '/opt/ModSecurity/src'
/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/ -DWITH_YAJL -I/usr/include/yajl -I/usr/include -DPCRE_HAVE_JIT -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT parser/libmodsecurity_la-seclang-parser.lo -MD -MP -MF parser/.deps/libmodsecurity_la-seclang-parser.Tpo -c -o parser/libmodsecurity_la-seclang-parser.lo test -f 'parser/seclang-parser.cc' || echo './'parser/seclang-parser.cc
libtool: compile: g++ -DHAVE_CONFIG_H -I. -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include/ -DWITH_YAJL -I/usr/include/yajl -I/usr/include -DPCRE_HAVE_JIT -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT parser/libmodsecurity_la-seclang-parser.lo -MD -MP -MF parser/.deps/libmodsecurity_la-seclang-parser.Tpo -c parser/seclang-parser.cc -fPIC -DPIC -o parser/.libs/libmodsecurity_la-seclang-parser.o
In file included from parser/seclang-parser.cc:40:0:
seclang-parser.yy:40:41: fatal error: src/actions/disruptive/drop.h: No such file or directory
compilation terminated.
Makefile:1841: recipe for target 'parser/libmodsecurity_la-seclang-parser.lo' failed
make[3]: * [parser/libmodsecurity_la-seclang-parser.lo] Error 1
make[3]: Leaving directory '/opt/ModSecurity/src'
Makefile:3199: recipe for target 'all-recursive' failed
make[2]: [all-recursive] Error 1
make[2]: Leaving directory '/opt/ModSecurity/src'
Makefile:1012: recipe for target 'all' failed
make[1]: [all] Error 2
make[1]: Leaving directory '/opt/ModSecurity/src'
Makefile:1017: recipe for target 'all-recursive' failed
make: * [all-recursive] Error 1
To Reproduce
Steps to reproduce the behaviour:
apt install -y apt-utils autoconf automake build-essential git libcurl4-openssl-dev libgeoip-dev liblmdb-dev libpcre++-dev libtool libxml2-dev libyajl-dev pkgconf wget zlib1g-dev
mkdir /opt/ModSecurity && cd /opt/ModSecurity
git clone -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity . && \
git submodule init && \
git submodule update && \
./build.sh && \
./configure && make && make install
@narookak it seems like drop.h wasn't included (if even should be) in
https://github.com/SpiderLabs/ModSecurity/commit/d00ea5111d445f49513c3968596646d9cf858aea, FWIW, I was able to move further with creating empty src/actions/disruptive/drop.h, but eventually I got:
/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/ -DWITH_YAJL -I/usr/include/yajl -DPCRE_HAVE_JIT -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT parser/libmodsecurity_la-seclang-parser.lo -MD -MP -MF parser/.deps/libmodsecurity_la-seclang-parser.Tpo -c -o parser/libmodsecurity_la-seclang-parser.lo `test -f 'parser/seclang-parser.cc' || echo './'`parser/seclang-parser.cc
libtool: compile: g++ -DHAVE_CONFIG_H -I. -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include/ -DWITH_YAJL -I/usr/include/yajl -DPCRE_HAVE_JIT -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT parser/libmodsecurity_la-seclang-parser.lo -MD -MP -MF parser/.deps/libmodsecurity_la-seclang-parser.Tpo -c parser/seclang-parser.cc -fPIC -DPIC -o parser/.libs/libmodsecurity_la-seclang-parser.o
In file included from parser/seclang-parser.cc:40:0:
seclang-parser.yy: In member function ‘virtual int yy::seclang_parser::parse()’:
seclang-parser.yy:2711:85: error: expected type-specifier
seclang-parser.yy:343:40: note: in definition of macro ‘ACTION_CONTAINER’
Makefile:1841: recipe for target 'parser/libmodsecurity_la-seclang-parser.lo' failed
make[3]: *** [parser/libmodsecurity_la-seclang-parser.lo] Error 1
Let's wait for @zimmerle. :)
My case is the same with you. Hope @zimmerle has the solution soon.
Ubuntu 18.04
root@ngms3da:/opt/ModSecurity# make
Making all in others
make[1]: Entering directory '/opt/ModSecurity/others'
depbase=echo libinjection/src/libinjection_html5.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||';\
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../src -g -O2 -MT libinjection/src/libinjection_html5.lo -MD -MP -MF $depbase.Tpo -c -o libinjection/src/libinjection_html5.lo libinjection/src/libinjection_html5.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -g -O2 -MT libinjection/src/libinjection_html5.lo -MD -MP -MF libinjection/src/.deps/libinjection_html5.Tpo -c libinjection/src/libinjection_html5.c -fPIC -DPIC -o libinjection/src/.libs/libinjection_html5.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -g -O2 -MT libinjection/src/libinjection_html5.lo -MD -MP -MF libinjection/src/.deps/libinjection_html5.Tpo -c libinjection/src/libinjection_html5.c -o libinjection/src/libinjection_html5.o >/dev/null 2>&1
depbase=echo libinjection/src/libinjection_sqli.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||';\
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../src -g -O2 -MT libinjection/src/libinjection_sqli.lo -MD -MP -MF $depbase.Tpo -c -o libinjection/src/libinjection_sqli.lo libinjection/src/libinjection_sqli.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -g -O2 -MT libinjection/src/libinjection_sqli.lo -MD -MP -MF libinjection/src/.deps/libinjection_sqli.Tpo -c libinjection/src/libinjection_sqli.c -fPIC -DPIC -o libinjection/src/.libs/libinjection_sqli.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -g -O2 -MT libinjection/src/libinjection_sqli.lo -MD -MP -MF libinjection/src/.deps/libinjection_sqli.Tpo -c libinjection/src/libinjection_sqli.c -o libinjection/src/libinjection_sqli.o >/dev/null 2>&1
depbase=echo libinjection/src/libinjection_xss.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||';\
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../src -g -O2 -MT libinjection/src/libinjection_xss.lo -MD -MP -MF $depbase.Tpo -c -o libinjection/src/libinjection_xss.lo libinjection/src/libinjection_xss.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -g -O2 -MT libinjection/src/libinjection_xss.lo -MD -MP -MF libinjection/src/.deps/libinjection_xss.Tpo -c libinjection/src/libinjection_xss.c -fPIC -DPIC -o libinjection/src/.libs/libinjection_xss.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -g -O2 -MT libinjection/src/libinjection_xss.lo -MD -MP -MF libinjection/src/.deps/libinjection_xss.Tpo -c libinjection/src/libinjection_xss.c -o libinjection/src/libinjection_xss.o >/dev/null 2>&1
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -lpcre -o libinjection.la libinjection/src/libinjection_html5.lo libinjection/src/libinjection_sqli.lo libinjection/src/libinjection_xss.lo
libtool: link: ar cru .libs/libinjection.a libinjection/src/.libs/libinjection_html5.o libinjection/src/.libs/libinjection_sqli.o libinjection/src/.libs/libinjection_xss.o
ar:u' modifier ignored sinceD' is the default (seeU') libtool: link: ranlib .libs/libinjection.a libtool: link: ( cd ".libs" && rm -f "libinjection.la" && ln -s "../libinjection.la" "libinjection.la" ) /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../src -D MBEDTLS_CONFIG_FILE=\"mbed-tls-config.h\" -Iothers -g -O2 -MT mbedtls/libmbedtls_la-base64.lo -MD -MP -MF mbedtls/.deps/libmbedtls_la-base64.Tpo -c -o mbedtls/libmbedtls_la-base64.lotest -f 'mbedtls/base64.c' || echo './'mbedtls/base64.c libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -D MBEDTLS_CONFIG_FILE=\"mbed-tls-config.h\" -Iothers -g -O2 -MT mbedtls/libmbedtls_la-base64.lo -MD -MP -MF mbedtls/.deps/libmbedtls_la-base64.Tpo -c mbedtls/base64.c -fPIC -DPIC -o mbedtls/.libs/libmbedtls_la-base64.o libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -D MBEDTLS_CONFIG_FILE=\"mbed-tls-config.h\" -Iothers -g -O2 -MT mbedtls/libmbedtls_la-base64.lo -MD -MP -MF mbedtls/.deps/libmbedtls_la-base64.Tpo -c mbedtls/base64.c -o mbedtls/libmbedtls_la-base64.o >/dev/null 2>&1 mv -f mbedtls/.deps/libmbedtls_la-base64.Tpo mbedtls/.deps/libmbedtls_la-base64.Plo /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../src -D MBEDTLS_CONFIG_FILE=\"mbed-tls-config.h\" -Iothers -g -O2 -MT mbedtls/libmbedtls_la-md5.lo -MD -MP -MF mbedtls/.deps/libmbedtls_la-md5.Tpo -c -o mbedtls/libmbedtls_la-md5.lotest -f 'mbedtls/md5.c' || echo './'mbedtls/md5.c libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -D MBEDTLS_CONFIG_FILE=\"mbed-tls-config.h\" -Iothers -g -O2 -MT mbedtls/libmbedtls_la-md5.lo -MD -MP -MF mbedtls/.deps/libmbedtls_la-md5.Tpo -c mbedtls/md5.c -fPIC -DPIC -o mbedtls/.libs/libmbedtls_la-md5.o libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -D MBEDTLS_CONFIG_FILE=\"mbed-tls-config.h\" -Iothers -g -O2 -MT mbedtls/libmbedtls_la-md5.lo -MD -MP -MF mbedtls/.deps/libmbedtls_la-md5.Tpo -c mbedtls/md5.c -o mbedtls/libmbedtls_la-md5.o >/dev/null 2>&1 mv -f mbedtls/.deps/libmbedtls_la-md5.Tpo mbedtls/.deps/libmbedtls_la-md5.Plo /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../src -D MBEDTLS_CONFIG_FILE=\"mbed-tls-config.h\" -Iothers -g -O2 -MT mbedtls/libmbedtls_la-sha1.lo -MD -MP -MF mbedtls/.deps/libmbedtls_la-sha1.Tpo -c -o mbedtls/libmbedtls_la-sha1.lotest -f 'mbedtls/sha1.c' || echo './'mbedtls/sha1.c libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -D MBEDTLS_CONFIG_FILE=\"mbed-tls-config.h\" -Iothers -g -O2 -MT mbedtls/libmbedtls_la-sha1.lo -MD -MP -MF mbedtls/.deps/libmbedtls_la-sha1.Tpo -c mbedtls/sha1.c -fPIC -DPIC -o mbedtls/.libs/libmbedtls_la-sha1.o libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../src -D MBEDTLS_CONFIG_FILE=\"mbed-tls-config.h\" -Iothers -g -O2 -MT mbedtls/libmbedtls_la-sha1.lo -MD -MP -MF mbedtls/.deps/libmbedtls_la-sha1.Tpo -c mbedtls/sha1.c -o mbedtls/libmbedtls_la-sha1.o >/dev/null 2>&1 mv -f mbedtls/.deps/libmbedtls_la-sha1.Tpo mbedtls/.deps/libmbedtls_la-sha1.Plo /bin/bash ../libtool --tag=CC --mode=link gcc -D MBEDTLS_CONFIG_FILE=\"mbed-tls-config.h\" -Iothers -g -O2 -lpcre -o libmbedtls.la mbedtls/libmbedtls_la-base64.lo mbedtls/libmbedtls_la-md5.lo mbedtls/libmbedtls_la-sha1.lo libtool: link: ar cru .libs/libmbedtls.a mbedtls/.libs/libmbedtls_la-base64.o mbedtls/.libs/libmbedtls_la-md5.o mbedtls/.libs/libmbedtls_la-sha1.o ar:u' modifier ignored sinceD' is the default (seeU')
libtool: link: ranlib .libs/libmbedtls.a
libtool: link: ( cd ".libs" && rm -f "libmbedtls.la" && ln -s "../libmbedtls.la" "libmbedtls.la" )
make[1]: Leaving directory '/opt/ModSecurity/others'
Making all in src
make[1]: Entering directory '/opt/ModSecurity/src'
make all-recursive
make[2]: Entering directory '/opt/ModSecurity/src'
make[3]: Entering directory '/opt/ModSecurity/src'
/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/ -DWITH_YAJL -I/usr/include/yajl -DPCRE_HAVE_JIT -DWITH_LUA -DWITH_LUA_5_2 -I/usr/include/lua5.2 -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT parser/libmodsecurity_la-seclang-parser.lo -MD -MP -MF parser/.deps/libmodsecurity_la-seclang-parser.Tpo -c -o parser/libmodsecurity_la-seclang-parser.lotest -f 'parser/seclang-parser.cc' || echo './'parser/seclang-parser.cc
libtool: compile: g++ -DHAVE_CONFIG_H -I. -std=c++11 -I.. -g -I../others -fPIC -O3 -I../headers -DWITH_GEOIP -I/usr/include/ -DWITH_YAJL -I/usr/include/yajl -DPCRE_HAVE_JIT -DWITH_LUA -DWITH_LUA_5_2 -I/usr/include/lua5.2 -I/usr/include/libxml2 -DWITH_LIBXML2 -g -O2 -MT parser/libmodsecurity_la-seclang-parser.lo -MD -MP -MF parser/.deps/libmodsecurity_la-seclang-parser.Tpo -c parser/seclang-parser.cc -fPIC -DPIC -o parser/.libs/libmodsecurity_la-seclang-parser.o
In file included from parser/seclang-parser.cc:40:0:
seclang-parser.yy:40:10: fatal error: src/actions/disruptive/drop.h: No such file or directory
compilation terminated.
Makefile:1841: recipe for target 'parser/libmodsecurity_la-seclang-parser.lo' failed
make[3]: * [parser/libmodsecurity_la-seclang-parser.lo] Error 1
make[3]: Leaving directory '/opt/ModSecurity/src'
Makefile:3199: recipe for target 'all-recursive' failed
make[2]: [all-recursive] Error 1
make[2]: Leaving directory '/opt/ModSecurity/src'
Makefile:1012: recipe for target 'all' failed
make[1]: [all] Error 2
make[1]: Leaving directory '/opt/ModSecurity/src'
Makefile:1017: recipe for target 'all-recursive' failed
make: * [all-recursive] Error 1
Sorry guys. My fault. The file was added and the compilation is now running smoothly.
Most helpful comment
Sorry guys. My fault. The file was added and the compilation is now running smoothly.
https://travis-ci.org/SpiderLabs/ModSecurity