summaryrefslogtreecommitdiff
path: root/gnu/packages/antivirus.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/antivirus.scm')
-rw-r--r--gnu/packages/antivirus.scm105
1 files changed, 35 insertions, 70 deletions
diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm
index 4a01115abd..bc3a472809 100644
--- a/gnu/packages/antivirus.scm
+++ b/gnu/packages/antivirus.scm
@@ -36,10 +36,6 @@
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cmake)
- #:use-module (gnu packages crates-compression)
- #:use-module (gnu packages crates-crypto)
- #:use-module (gnu packages crates-graphics)
- #:use-module (gnu packages crates-io)
#:use-module (gnu packages curl)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
@@ -47,6 +43,7 @@
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
+ #:use-module (gnu packages rust)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages rust)
#:use-module (gnu packages tls)
@@ -56,7 +53,7 @@
(define-public clamav
(package
(name "clamav")
- (version "1.4.2")
+ (version "1.4.3")
(source (origin
(method url-fetch)
(uri
@@ -68,7 +65,7 @@
"/clamav-" version ".tar.gz")))
(sha256
(base32
- "0k60wv40jrqwjz80dkjdsxjzkjpnazp667cdd3bckwm8wanzi4lc"))
+ "041j6jhll4lz7xhissh0094cfvhyi9jkbxcfa5dv6ra77nzwlx6q"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -76,74 +73,36 @@
'(".cargo" ; vendored rust inputs
"win32" ; unnecessary
"libclamunrar")))))) ; non-free license
- (build-system cargo-build-system)
+ (build-system cmake-build-system)
(arguments
(list
- #:install-source? #f
- #:cargo-inputs
- `(("rust-flate2" ,rust-flate2-1)
- ("rust-hex" ,rust-hex-0.4)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-log" ,rust-log-0.4)
- ("rust-sha2" ,rust-sha2-0.10)
- ("rust-tempfile" ,rust-tempfile-3)
- ("rust-thiserror" ,rust-thiserror-1)
- ("rust-image" ,rust-image-0.24)
- ("rust-rustdct" ,rust-rustdct-0.7)
- ("rust-transpose" ,rust-transpose-0.2)
- ("rust-num-traits" ,rust-num-traits-0.2)
- ("rust-base64" ,rust-base64-0.21)
- ("rust-sha1" ,rust-sha1-0.10)
- ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
- ("rust-bindgen" ,rust-bindgen-0.65)
- ("rust-onenote-parser-for-clamav" ,rust-onenote-parser-for-clamav)
- ("rust-hex-literal" ,rust-hex-literal-0.4)
- ("rust-inflate" ,rust-inflate-0.4)
- ("rust-bzip2-rs" ,rust-bzip2-rs-0.1)
- ("rust-byteorder" ,rust-byteorder-1)
- ("rust-delharc" ,rust-delharc-0.6)
- ("rust-cbindgen" ,rust-cbindgen))
- #:vendor-dir ".cargo/vendor"
+ #:configure-flags ''("-DENABLE_MILTER=OFF" "-DENABLE_UNRAR=OFF")
#:imported-modules `(,@%cmake-build-system-modules
,@%cargo-build-system-modules)
- #:modules '((guix build cargo-build-system)
- ((guix build cmake-build-system) #:prefix cmake:)
+ #:modules '(((guix build cargo-build-system) #:prefix cargo:)
+ (guix build cmake-build-system)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
- ;; There is a test.exe file used in unit tests.
- (delete 'check-for-pregenerated-files)
- (add-after 'configure 'fix-cargo-inputs-vendoring
- (lambda _
- ;; Reproduce the original layout, fails with config.
- (rename-file ".cargo/config" ".cargo/config.toml")
- ;; Wrongly placed by configure
- (delete-file-recursively
- (string-append ".cargo/vendor/clamav-" #$version ".tar.zst"))))
- (add-after 'patch-cargo-checksums 'cmake-configure
- (lambda* (#:key outputs #:allow-other-keys)
- ((assoc-ref cmake:%standard-phases 'configure)
- #:configure-flags
- (list "-DENABLE_MILTER=OFF" "-DENABLE_UNRAR=OFF")
- #:outputs outputs)))
- (replace 'build
- (assoc-ref cmake:%standard-phases 'build))
- (add-after 'patch-cargo-checksums 'patch-rust-requirements
+ (add-after 'unpack 'prepare-cargo-build-system
+ (lambda args
+ (for-each
+ (lambda (phase)
+ (format #t "Running cargo phase: ~a~%" phase)
+ (apply (assoc-ref cargo:%standard-phases phase)
+ #:vendor-dir ".cargo/vendor"
+ #:cargo-target #$(cargo-triplet)
+ args))
+ '(unpack-rust-crates
+ configure
+ check-for-pregenerated-files
+ patch-cargo-checksums))))
+ (add-after 'prepare-cargo-build-system 'patch-rust-requirements
(lambda _
(substitute* "libclamav_rust/Cargo.toml"
;; We make sure we use their fork.
(("onenote_parser = .*")
- "onenote_parser = \"*\"\n")
- ;; As long as it builds later versions of (c)bindgen are fine
- (("cbindgen = \\{ version =\".*\",")
- "cbindgen = { version = \"*\","))))
- (replace 'install
- (assoc-ref cmake:%standard-phases 'install))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- ((assoc-ref cmake:%standard-phases 'check)
- #:tests? tests?
- #:test-target "test")))
+ "onenote_parser = \"*\"\n"))))
(add-after 'unpack 'skip-clamd-tests
;; XXX: The check?_clamd tests fail inside the build
;; chroot, but pass outside.
@@ -154,20 +113,26 @@
(string-append
test " -k \"not test_clamd_08_VirusEvent\"")))))))))
(native-inputs
- (list check ; for tests
- cmake-minimal
- pkg-config
- python-minimal
- python-pytest))
+ (append
+ (list pkg-config
+ python-minimal
+ python-pytest
+ rust
+ `(,rust "cargo"))
+ (or (and=> (%current-target-system)
+ (compose list make-rust-sysroot))
+ '())))
(inputs
- (list bzip2
+ (cons* bzip2
+ check ;For tests.
curl
json-c
libressl
libxml2
ncurses
pcre2
- zlib))
+ zlib
+ (cargo-inputs 'clamav)))
(home-page "https://www.clamav.net")
(synopsis "Antivirus engine")
(description