This commit makes it possible to build ModSecurity on systems where
/bin/sh is a POSIX-compliant shell that is not Bash. Debian, Alpine
Linux, and Gentoo Linux with the system shell set to not Bash, are
examples of such systems.
Previously, the helper macros contained two types of Bashisms:
* The '==' comparison operator. Very easy to change, as the proper
POSIX-compliant form is '='. For example:
if test "${var}" == "myvalue" -> if test "${var}" = "myvalue"
* The '-a' (and) operator in the 'test' builtin. The '-a' and '-o'
operators were removed in POSIX 2024 (Issue 8). The correct form
is to use the '&&' and '||' operators respectively. For instance:
if test -d "${var}" -a -r "${var}/file" ->
if test -d "${var}" && test -r "${var}/file"
Bug: https://bugs.gentoo.org/887135
Signed-off-by: Zurab Kvachadze <zurabid2016@gmail.com>
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.