From 33f7233dc086b349d47023d4da1790f0c9111f5c Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 6 Oct 2018 20:04:42 +0100 Subject: gnu: Add clamav. * gnu/packages/antivirus.scm: New file. * gnu-system.am: Add it. --- gnu/local.mk | 1 + gnu/packages/antivirus.scm | 119 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 gnu/packages/antivirus.scm diff --git a/gnu/local.mk b/gnu/local.mk index 8f854e98b5..c480be9f30 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -60,6 +60,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/android.scm \ %D%/packages/animation.scm \ %D%/packages/anthy.scm \ + %D%/packages/antivirus.scm \ %D%/packages/apl.scm \ %D%/packages/apr.scm \ %D%/packages/aspell.scm \ diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm new file mode 100644 index 0000000000..513a5affc0 --- /dev/null +++ b/gnu/packages/antivirus.scm @@ -0,0 +1,119 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Christopher Baines +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages antivirus) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages curl) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) + #:use-module (gnu packages tls) + #:use-module (gnu packages web) + #:use-module (gnu packages xml)) + +(define-public clamav + (package + (name "clamav") + (version "0.100.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/Cisco-Talos/clamav-devel/archive/clamav-" + version ".tar.gz")) + (sha256 + (base32 + "0wpamsp3lhlj9dhj5s9nzbyvhrbbnyifm8cjvnssh80sdmkd0dqf")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file-recursively "win32") + (delete-file-recursively "libclamav/c++/llvm") + #t)))) + (build-system gnu-build-system) + (arguments + '(;; TODO Tests seem to fail, not sure why yet. + #:tests? #f + #:make-flags '("VERBOSE=1") + #:configure-flags (list "--enable-check" + "--with-dbdir=/var/lib/clamav" + "--sysconfdir=/etc/clamav" + "--with-system-libmspack" + "--without-included-ltdl" + (string-append "--with-zlib=" + (assoc-ref %build-inputs + "zlib")) + (string-append "--with-libjson=" + (assoc-ref %build-inputs + "json-c")) + (string-append "--with-xml=" + (assoc-ref %build-inputs + "libxml2")) + (string-append "--with-libcurl=" + (assoc-ref %build-inputs + "curl")) + (string-append "--with-openssl=" + (assoc-ref %build-inputs + "openssl"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* "Makefile.in" + ;; Prevent writing to /etc upon install, instead the sample + ;; files are copied in to the output in the 'install-etc phase + ((" etc ") " ")))) + (add-after 'install 'install-etc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (etc (string-append out "/etc"))) + (for-each (lambda (file) + (install-file file etc)) + (find-files "etc" ".*\\.sample")))))))) + (native-inputs + `(("check" ,check))) + (inputs + `(("openssl" ,openssl) + ("libmspack" ,libmspack) + ("libltdl", libltdl) + ("json-c" ,json-c) + ("ncurses" ,ncurses) + ("perl" ,perl) + ("pcre2" ,pcre2) + ("libxml2" ,libxml2) + ("curl" ,curl) + ("zlib" ,zlib))) + (synopsis "Antivirus engine for viruses and other malicious software") + (description + "Clam AntiVirus is an anti-virus toolkit, for detecting trojans, viruses, +malware and other malicious software. This package provides a flexible and +scalable multi-threaded daemon, a command-line scanner and a tool to fetch +up-to-date virus definitions.") + (home-page "https://www.clamav.net/") + (license + (list license:gpl2 ;; clamav-milter, clambc, clamconf, clamd, clamdscan, + ;; libclamav, libfreshclam + license:gpl2+ ;; many files + ;; some files in libclamav + bsd-2 zlib asl2.0)))) -- cgit v1.2.3