diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm index 80126a5b59..4f8fbff34c 100644 --- a/gnu/packages/antivirus.scm +++ b/gnu/packages/antivirus.scm @@ -21,6 +21,7 @@ (define-module (gnu packages antivirus) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -59,8 +60,7 @@ (define-public clamav '("win32" ; unnecessary "libclamav/c++/llvm" ; use system llvm "libclamav/tomsfastmath" ; use system tomsfastmath - "libclamunrar")) ; non-free license - #t)) + "libclamunrar")))) ; non-free license (patches (search-patches "clamav-system-tomsfastmath.patch" "clamav-config-llvm-libs.patch")))) @@ -72,70 +72,70 @@ (define-public clamav libtool pkg-config)) (inputs - `(("bzip2" ,bzip2) - ("libcurl" ,curl) - ("libjson" ,json-c) - ("libltdl" ,libltdl) - ("libmspack" ,libmspack) - ("llvm" ,llvm-3.6) ; requires <3.7, for JIT/verifier - ("ncurses" ,ncurses) - ("openssl" ,libressl) - ("pcre2" ,pcre2) - ("sasl" ,cyrus-sasl) ; for linking curl with libtool - ("tomsfastmath" ,tomsfastmath) - ("xml" ,libxml2) - ("zlib" ,zlib))) + (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 + zlib)) (arguments - `(#:configure-flags - (let-syntax ((with (syntax-rules () - ((_ name) + (list #:configure-flags + #~(let-syntax ((with (syntax-rules () + ((_ name use) (string-append "--with-" name "=" - (assoc-ref %build-inputs name)))))) - (list "--disable-unrar" - "--enable-llvm" - "--with-system-llvm" - "--with-system-libmspack" - "--without-included-ltdl" - (with "xml") - (with "openssl") - (with "libjson") - (with "pcre2") - (with "zlib") - (with "libcurl") - ;; 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@") "")) - #t)) - (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") "")) - #t))))) + (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