diff options
author | Nicolas Graves <ngraves@ngraves.fr> | 2024-11-06 00:14:54 +0100 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2025-01-07 10:16:41 +0200 |
commit | d77c800157e0c5050e8d0e77dc9b42c39d2117dc (patch) | |
tree | 003fe0cabb59e9ed779334c22d42c9a087953db0 | |
parent | f8c6d5cbf1012501a55bbbfd9d6e3811d68f1f74 (diff) |
gnu: clamav: Update to 1.4.1.
* gnu/packages/antivirus.scm (clamav): Update to 1.4.1.
[source]<origin>: Adapt source. This currently is not unbundling all
cargo vendored packages.
[build-system]: Switch to cmake-build-system.
[arguments]: Move field up.
<#:configure-flags>: Set option.
<#:imported-modules>: Set option for patching cargo checksums.
<#:phases>: Remove all phases except adapted 'skip-clamd_tests. Add
phases 'inject-rust-onenote and 'patch-cargo-checksums.
[native-inputs]: Remove autoconf, automake, libtool. Add
python-minimal, python-pytest, rust and rust:cargo.
[inputs]: Remove libltdl, libmspack, llvm-3.6, cyrus-sasl,
tomsfastmath.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: I6084c3c6974599e5df9b0f822066f3b2155a7bf7
-rw-r--r-- | gnu/packages/antivirus.scm | 129 |
1 files changed, 51 insertions, 78 deletions
diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm index 2161d60398..1a23657a61 100644 --- a/gnu/packages/antivirus.scm +++ b/gnu/packages/antivirus.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,24 +21,23 @@ (define-module (gnu packages antivirus) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system cargo) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) #:use-module (gnu packages) - #:use-module (gnu packages autotools) - #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages curl) - #:use-module (gnu packages cyrus-sasl) - #:use-module (gnu packages flex) - #:use-module (gnu packages llvm) - #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages python-check) + #:use-module (gnu packages rust) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages xml)) @@ -45,7 +45,7 @@ (define-public clamav (package (name "clamav") - (version "0.103.11") + (version "1.4.1") (source (origin (method url-fetch) (uri @@ -57,90 +57,63 @@ "/clamav-" version ".tar.gz"))) (sha256 (base32 - "04by1g3p6awhi3j1y6zpwzmasdnvjgi6lwm34l2gadlwgkdfpmv1")) + "1n3a87niad76h3mn3qxq9379gppdjqpkhwb9qkbb79irmj0ff653")) (modules '((guix build utils))) (snippet '(begin + (delete-file "Cargo.lock") + (for-each + delete-file + (find-files ".cargo/vendor" ".cargo-checksum\\.json")) (for-each delete-file-recursively '("win32" ; unnecessary - "libclamav/c++/llvm" ; use system llvm - "libclamav/tomsfastmath" ; use system tomsfastmath - "libclamunrar")))) ; non-free license - (patches - (search-patches "clamav-system-tomsfastmath.patch" - "clamav-config-llvm-libs.patch")))) - (build-system gnu-build-system) + "libclamunrar")))))) ; non-free license + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + #~(list "-DENABLE_MILTER=OFF" "-DENABLE_UNRAR=OFF") + #:imported-modules `((guix build cargo-utils) + ,@%cmake-build-system-modules) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'inject-rust-onenote + (lambda _ + (substitute* "libclamav_rust/Cargo.toml" + (("onenote_parser = .*") + "onenote_parser = \"0.3.1\"\n")))) + (add-after 'patch-source-shebangs 'patch-cargo-checksums + (lambda _ + (use-modules + (srfi srfi-1) (ice-9 ftw) (guix build cargo-utils)) + (with-directory-excursion ".cargo/vendor" + (for-each generate-all-checksums + (delete "." (delete ".." (scandir "."))))))) + (add-after 'unpack 'skip-clamd-tests + ;; XXX: The check?_clamd tests fail inside the build + ;; chroot, but pass outside. + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (substitute* "unit_tests/CMakeLists.txt" + (("clamd_test\\.py" test) + (string-append + test " -k \"not test_clamd_08_VirusEvent\""))))))))) (native-inputs - (list autoconf - automake - check ; for tests - libtool - pkg-config)) + (list check ; for tests + pkg-config + python-minimal + python-pytest + rust + (list rust "cargo"))) (inputs (list bzip2 curl json-c - libltdl - libmspack - llvm-3.6 ; requires <3.7, for JIT/verifier - ncurses libressl - pcre2 - cyrus-sasl ; for linking curl with libtool - tomsfastmath libxml2 + ncurses + pcre2 zlib)) - (arguments - (list #:configure-flags - #~(let-syntax ((with (syntax-rules () - ((_ name use) - (string-append "--with-" name "=" - (assoc-ref %build-inputs use)))))) - (list "--disable-unrar" - "--enable-llvm" - "--with-system-llvm" - "--with-system-libmspack" - "--without-included-ltdl" - (with "xml" "libxml2") - (with "openssl" "libressl") - (with "libjson" "json-c") - (with "pcre2" "pcre2") - (with "zlib" "zlib") - (with "libcurl" "curl") - ;; For sanity, specifying --enable-* flags turns - ;; "support unavailable" warnings into errors. - "--enable-bzip2" - "--enable-check" - "--sysconfdir=/etc/clamav" - ;; Default database directory needs to be writeable - "--with-dbdir=/var/db/clamav")) - ;; install sample .conf files to %output/etc rather than /etc/clamav - #:make-flags - #~(list (string-append "sysconfdir=" %output "/etc")) - #:phases - #~(modify-phases %standard-phases - ;; Regenerate configure script. Without this we don't get - ;; the correct value for LLVM linker variables. - (add-after 'unpack 'reconf - (lambda _ (invoke "autoreconf" "-vfi"))) - (add-before 'configure 'patch-llvm-config - (lambda _ - (substitute* '("libclamav/c++/detect.cpp" - "libclamav/c++/ClamBCRTChecks.cpp" - "libclamav/c++/bytecode2llvm.cpp") - (("llvm/Config/config.h") "llvm/Config/llvm-config.h")) - ;; `llvm-config --libfiles` inappropriately lists lib*.a - ;; libraries, rather than the lib*.so's that our llvm - ;; contains. They're used only for listing extra build - ;; dependencies, so ignore them until that's fixed. - (substitute* "libclamav/c++/Makefile.in" - (("@LLVMCONFIG_LIBFILES@") "")))) - (add-before 'check 'skip-clamd-tests - ;; XXX: The check?_clamd tests fail inside the build - ;; chroot, but pass outside. - (lambda _ - (substitute* "unit_tests/Makefile" - (("check2_clamd.sh.*check4_clamd.sh") ""))))))) (home-page "https://www.clamav.net") (synopsis "Antivirus engine") (description |