Added AC_MSG_NOTICE macros to pcre2.m4 to enhance debugging output. This change aims to identify the cause of build failures on macOS runners in GitHub Actions, which do not occur locally or on other platforms (Linux, Windows).
The added verbosity will help trace the build process and inspect variable values for inconsistencies in the macOS runner environment.
Identified an issue where the macOS GitHub runner no longer includes the libpcre2 library by default. Updated the workflow configuration to explicitly add libpcre2 as a dependency, ensuring successful builds and compatibility with the updated build system.
This change prevents build failures on macOS environments and aligns the runner's setup with project requirements.
Updated the build system and related source files to use libpcre2 as the
default regex library instead of the deprecated libpcre. This change
ensures future compatibility and aligns with the library's maintenance status.
To build with the old libpcre, the `--with-pcre` configuration parameter
can be specified.
- Replaced pthread_mutex_t in modsecurity::operators::Pm with std::mutex
- Replaced pthread's thread usage in reading_logs_via_rule_message
example with std::thread.
- Simplified and modernized C++ code.
- Removed unnecessary includes of pthread.h
- Replaced WITHOUT_XXX build options with WITH_XXX to make it easier to
understand and configure.
- Updated GitHub workflow to align with these changes and include a
build 'with lmdb' (again, analogous to non-Windows configurations)
- By default, all the 3rd party dependencies are enabled.
- A dependency can be turned off by adding the "-DWITHOUT_xxx=ON" to
the call of vcbuild.bat
- List of 3rd party dependencies and associated option to turn them off:
- LMDB: WITHOUT_LMDB
- LUA: WITHOUT_LUA
- LibXML2: WITHOUT_LIBXML2
- MaxMind: WITHOUT_MAXMIND
- cURL: WITHOUT_CURL
- Added new test/test_suite.in with list of regression and unit tests
previously in Makefile.am, to be shared between Unix and Windows
builds.
- Updated regression.cc & unit.cc to return the number of failed tests
to indicate to CTest that the test failed. Similarly, a crash or
unhandled exception terminates the process with a non-zero exit code.
- This change doesn't affect running the tests with autotest in Unix
builds because this processes test output from custom-test-driver &
test-suite.sh, and ignores the exit code of the test runner.
- Removed comment in test/test-cases/regression-offset-variable.json as
this is not supported by JSON and prevents strict parsers to read and
process the file.
- Minor change in regression.cc's clearAuditLog to replace std::ifstream
with std::ofstream as the mode to open the flag applies to an output
stream.
- Minor change in unit.cc to simplify code that deletes tests.
- Minor changes to test/custom-test-driver to correct usage information.
Debian is taking steps to remove xml2-config in favour of pkg-config.
This means ModSecurity will build without libxml2 support by default
on Debian, Ubuntu and other distributions tracking Debian packages.
This patch modifies build/libxml.m4 to check for libxml2 via
pkg-config, falling back to xml2-config if necessary.
Build with maxminddb is broken since version 3.0.5 and
785958f9b5
because libmaxminddb has been removed from MAXMIND_POSSIBLE_LIB_NAMES
So, as suggested by Arnout in #2131, don't use
MAXMIND_POSSIBLE_LIB_NAMES for pkg-config, because it was never called
anything other than libmaxminddb
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
In particular, on CentOS 7.3.1611 building libmodsecurity with
default configure options ends up with failure while compiling
src/engine/lua.cc, while config.log states that Lua was disabled.