ClamAV uses a lot of mixed integer variable types internally. The preferred types are standard int types (eg int8_t, uint64_t, size_t, ptrdiff_t, etc).
As an ongoing effort to make variable types more consistent throughout the code base, we made the mistake of including the `cltypes.h` header file in `clamav.h`, which is not only used internally but defines the public libclamav
API. Because neither the `cltypes.h` header, nor the supporting `clamav-config.h` header, are provided when installing libclamav to a system, applications built with a system-installed libclamav from version 0.101.0 will fail to compile.
To resolve the issue, we will be replacing `cltypes.h` with a new `clamav-types.h` file that is generated when you run `./configure` and which will be installed alongside `clamav.h` when you run `make install`. This will
ensure that `clamav.h` has access to the necessary integer types on all operating systems and architectures.
To mitigate similar issues in the future, we are adding a test to our build-acceptance suite to test building an application against a system-installed libclamav library.
Regards,
Micah