ClamAV - Documentation is here: https://docs.clamav.net https://www.clamav.net/
Find a file
Micah Snyder 4d6dc739be
CMake: Fix Windows build issue w/ conflicting libraries
At install, the CMake build may fail if it detects the same library
dependency in two locations. This happened for us with the following
error:

  CMake Error at libfreshclam/cmake_install.cmake:157 (file):
    file Multiple conflicting paths found for libcrypto-3-x64.dll:

      C:/Users/clamav_jenkins_svc.TALOS/clam_dependencies/x64/lib/libcrypto-3-x64.dll
      C:/WINDOWS/system32/libcrypto-3-x64.dll
      C:\WINDOWS\system32/libcrypto-3-x64.dll
  Call Stack (most recent call first):
    cmake_install.cmake:96 (include)

This happens when system provided DLL names match exactly with the ones
we provide. ClamAV woudld't prefer that DLL at load time, because it
looks in the EXE directory first. But it does confuse the `file()`
command used to locate build dependencies.

The fix in this commit uses a regex to exclude all libraries found under
C:\Windows
2025-04-18 13:25:26 -04:00
.github CI: update various GitHub Actions imports in cmake.yml 2024-07-22 09:17:31 -04:00
clamav-milter Bump copyright dates for 2024 2024-01-22 11:27:17 -05:00
clambc Remove max-allocation limits where not required 2024-03-15 13:18:47 -04:00
clamconf CMake/code cleanup: remove unused defines 2024-04-13 12:34:15 -04:00
clamd Remove libjson-c dead code 2024-04-13 12:34:15 -04:00
clamdscan Fix typos and remove duplicate #include 2024-04-10 19:31:46 -04:00
clamdtop CMake: Fix Windows build issue w/ conflicting libraries 2025-04-18 13:25:26 -04:00
clamonacc clamonacc/inotif/inotif.c: format code 2024-07-22 09:17:31 -04:00
clamscan fix: Issue with --fail-if-cvd-older-than and non-CVD database files 2024-07-23 16:01:07 -04:00
clamsubmit CMake: Fix Windows build issue w/ conflicting libraries 2025-04-18 13:25:26 -04:00
cmake cmake/FindRust.cmake: inherit RUSTFLAGS from the environment 2024-07-23 10:05:40 +08:00
common Disable following symlinks when opening log files 2024-08-31 14:15:39 -04:00
COPYING CMake: CPack generate Windows installer with WIX 2021-02-25 11:41:27 -08:00
docs Docs: Clarify help text about --fdpass option 2024-04-25 10:59:32 -07:00
etc clamscan: Add options missing from manpage and --help 2024-03-14 16:57:48 -04:00
examples Bump copyright dates for 2024 2024-01-22 11:27:17 -05:00
freshclam Freshclam: fix issue DatabaseCustomURL CVD prune issue 2024-04-14 16:12:33 -07:00
fuzz Bump copyright dates for 2024 2024-01-22 11:27:17 -05:00
libclamav CMake: Fix Windows build issue w/ conflicting libraries 2025-04-18 13:25:26 -04:00
libclamav_rust LZH: check CRC after reading file data 2024-07-26 14:50:25 -04:00
libclammspack Fix typos (no functional changes) 2024-01-19 09:08:36 -08:00
libclamunrar For RAR load, check LD_LIBRARY_PATH before checking install path 2024-05-06 09:30:20 -07:00
libclamunrar_iface Addressed CID 432801 2024-04-14 16:08:45 -07:00
libfreshclam CMake: Fix Windows build issue w/ conflicting libraries 2025-04-18 13:25:26 -04:00
sigtool Remove PCRE dead code 2024-04-13 12:34:15 -04:00
unit_tests CMake: Fix Windows build issue w/ conflicting libraries 2025-04-18 13:25:26 -04:00
win32 Fix typos and remove duplicate #include 2024-04-10 19:31:46 -04:00
.clang-format Explicitly set clang-format version to 16 2024-04-03 16:35:23 -04:00
.dockerignore Docker: Fix build after CMake/CPack changes 2021-09-02 03:22:48 -07:00
.gitattributes Avoid altering signature for .cargo/vendor files 2023-03-08 19:40:35 -08:00
.gitignore Remove Cargo.lock file from .gitignore 2023-05-04 10:42:21 -07:00
Cargo.lock Rust: Update buggy vendored dependencies 2025-01-13 16:33:49 -05:00
Cargo.toml cdiff: Replace cdiff-apply feature with Rust implementation 2022-01-10 12:18:33 -07:00
ChangeLog.md Documentation update and cleanup. Transition to MarkDown files for improved rendering on GitHub.com 2018-03-06 17:43:54 -05:00
clam-format clam-format script: also format Rust source 2024-04-15 10:03:02 -07:00
clamav-config.h.cmake.in CMake/code cleanup: remove unused defines 2024-04-13 12:34:15 -04:00
clamav-config.in remove old CVS-stuff and make the repository look more like SVN 2007-02-17 19:02:20 +00:00
clamav-types.h.in Bump copyright dates for 2024 2024-01-22 11:27:17 -05:00
clamav-version.h.in Bump copyright dates for 2024 2024-01-22 11:27:17 -05:00
CMakeLists.txt Set version to 1.4.2, FLEVEL to 212; Update NEWS.md 2025-01-13 16:35:39 -05:00
CMakeOptions.cmake Add an option to avoid setting RPATH on unix systems 2023-03-23 09:51:07 -07:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-05-21 10:05:52 -07:00
COPYING.txt CMake: CPack generate Windows installer with WIX 2021-02-25 11:41:27 -08:00
INSTALL-cross-linux-arm64.md Fix typos and remove duplicate #include 2024-04-10 19:31:46 -04:00
INSTALL-cross-windows-arm64.md Docs: add ARM64 cross-compile instructions for Windows and Linux 2024-03-26 12:48:11 -04:00
INSTALL.md INSTALL.md: change LLVM description 2024-07-26 16:11:09 +08:00
Jenkinsfile Set version to 1.4.2, FLEVEL to 212; Update NEWS.md 2025-01-13 16:35:39 -05:00
libclamav.pc.in Improve pkgconfig. Patch supplied by Andreas Cadhalpun. 2015-09-09 17:58:04 -04:00
logo.png GitHub Actions testing on Ubuntu, Mac, & Windows 2021-02-25 11:41:28 -08:00
NEWS.md Set version to 1.4.2, FLEVEL to 212; Update NEWS.md 2025-01-13 16:35:39 -05:00
platform.h.in Add CMake build tooling 2020-08-13 00:25:34 -07:00
README.Docker.md Fix typos (no functional changes) 2024-01-19 09:08:36 -08:00
README.md Remove bundled tomfastmath library. 2023-03-29 15:10:25 -07:00
SECURITY.md Adds SECURITY.md policy file 2021-06-09 14:17:59 -07:00
target.h.cmake.in Add CMake build tooling 2020-08-13 00:25:34 -07:00

ClamAV

Maeve, the ClamAV mascot

ClamAV® is an open source antivirus engine for detecting trojans, viruses, malware & other malicious threats.

Documentation & FAQ

ClamAV documentation is hosted at docs.clamav.net. The source archive for each release also includes a copy of the documentation for offline reading.

You can contribute to the documentation by submitting improvements to Cisco-Talos/clamav-documentation

ClamAV News

For information about the features in this and prior releases, read the news.

Catch up on the latest about ClamAV by reading our blog and follow us on Twitter @clamav.

ClamAV Signatures

Anyone can learn to read and write ClamAV signatures. To get started, see our signature writing manual.

Installation Instructions

Using Docker

ClamAV can be run using Docker. For details, visit to the online manual under "Docker" and check out our images on Docker Hub.

Using a Package Manager

For help installing from a package manager, refer to the online manual under "Packages".

Using an Installer

The following install packages are available for download from clamav.net/downloads:

  • Linux - Debian and RPM packages for x86_64 and i686. New in v0.104.
  • macOS - PKG installer for x86_64 and arm64 (universal). New in v0.104.
  • Windows - MSI installers and portable ZIP packages for win32 and x64.

To learn how to use these packages, refer to the online manual under "Installing".

Build from Source

For step-by-step instructions, refer to the online manual:

The source archive for each release includes a copy of the documentation for offline reading.

A reference with all of the available build options can be found in the INSTALL.md file.

You can find additional advice for developers in the online manual under "For Developers".

Upgrading from a previous version

Visit the FAQ for tips on how to upgrade from a previous version.

Join the ClamAV Community

The best way to get in touch with the ClamAV community is to join our mailing lists.

You can also join the community on our ClamAV Discord chat server.

Want to make a contribution?

The ClamAV development team welcomes code contributions, improvements to our documentation, and also bug reports.

Thanks for joining us!

Licensing

ClamAV is licensed for public/open source use under the GNU General Public License, Version 2 (GPLv2).

See COPYING.txt for a copy of the license.

3rd Party Code

ClamAV contains a number of components that include code copied in part or in whole from 3rd party projects and whose code is not owned by Cisco and which are licensed differently than ClamAV. These include:

  • Yara: Apache 2.0 license
    • Yara has since switched to the BSD 3-Clause License; Our source is out-of-date and needs to be updated.
  • 7z / lzma: public domain
  • libclamav's NSIS/NulSoft parser includes:
    • zlib: permissive free software license
    • bzip2 / libbzip2: BSD-like license
  • OpenBSD's libc/regex: BSD license
  • file: BSD license
  • str.c: Contains BSD licensed modified-implementations of strtol(), stroul() functions, Copyright (c) 1990 The Regents of the University of California.
  • pngcheck (png.c): MIT/X11-style license
  • getopt.c: MIT license
  • Curl: license inspired by MIT/X, but not identical
  • libmspack: LGPL license
  • UnRAR (libclamunrar): a non-free/restricted open source license
    • Note: The UnRAR license is incompatible with GPLv2 because it contains a clause that prohibits reverse engineering a RAR compression algorithm from the UnRAR decompression code. For this reason, libclamunrar/libclamunrar_iface is not linked at all with libclamav. It is instead loaded at run-time. If it fails to load, ClamAV will continue running without RAR support.

See the COPYING directory for a copy of the 3rd party project licenses.

Acknowledgements

Credit for contributions to each release can be found in the News.

ClamAV is brought to you by the ClamAV Team