From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46418) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gFLs2-0008RP-V6 for guix-patches@gnu.org; Wed, 24 Oct 2018 12:19:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gFLjO-0004bR-GQ for guix-patches@gnu.org; Wed, 24 Oct 2018 12:10:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:36149) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gFLjO-0004ah-4c for guix-patches@gnu.org; Wed, 24 Oct 2018 12:10:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gFLjN-0005U1-Qi for guix-patches@gnu.org; Wed, 24 Oct 2018 12:10:01 -0400 Subject: [bug#32958] [PATCH] gnu: Add clamav. Resent-Message-ID: Date: Wed, 24 Oct 2018 11:09:27 -0500 From: Eric Bavier Message-ID: <20181024110927.7442ebf1@centurylink.net> In-Reply-To: <87bm8617cv.fsf@cbaines.net> References: <20181006190855.3537-1-mail@cbaines.net> <87d0sm26jc.fsf@cbaines.net> <20181006204919.67c71003@centurylink.net> <87bm8617cv.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/ACGh4sw+sLwMgI6h1pZ+qEv"; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Christopher Baines Cc: 32958@debbugs.gnu.org --Sig_/ACGh4sw+sLwMgI6h1pZ+qEv Content-Type: multipart/mixed; boundary="MP_/12oL99DRp5kU36ymTJmk02z" --MP_/12oL99DRp5kU36ymTJmk02z Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Sun, 07 Oct 2018 09:36:16 +0100 Christopher Baines wrote: > Eric Bavier writes: >=20 > > Hi Christopher, > > > > On Sat, 06 Oct 2018 20:56:23 +0100 > > Christopher Baines wrote: > > =20 > >> Tags: moreinfo > >>=20 > >> This probably isn't ready quite yet, as the source release includes > >> quite a bit of bundled software, and I've only had an initial attempt = at > >> cleaning it up. I also haven't looked in to the test suite in detail. = =20 > > > > I've had a local clamav patch for a while now, and had just recently > > picked it up to dust it off for the 0.100.2 release. Much is similar > > to your patch, and I had started writing a clamd service. Do you mind > > if I merge some parts of your patch into mine and then send it here? =20 >=20 > Not at all Eric, that sounds great :) Here is my small series of patches. 1. Turns on RTTI in llvm by default. 2. Adds a TomsFastMath package that is otherwise bundled in clamav 3. Adds clamav. Uses a patch borrowed from debian to use a system tomsfastmath and uses a system llvm. A few tests that cannot pass inside the build container are skipped. I'm not posting my clamd-service at this time because it needs quite a bit more work. `~Eric --MP_/12oL99DRp5kU36ymTJmk02z Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-llvm-Build-with-RTTI-by-default.patch =46rom 90e3dc98e1657964041f576b785524816394b03a Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Fri, 5 Oct 2018 22:58:43 -0500 Subject: [PATCH 1/4] llvm: Build with RTTI by default. Increases size of llvm@6 by 2.5MiB (2.5%), but saves building specialized llvm's with rtti enabled for packages that require RTTI when linking with t= he llvm libraries. * gnu/packages/llvm.scm (llvm-with-rtti): Remove variable. (llvm)[arguments]: Add '-DLLVM_REQUIRES_RTTI=3D1' to #:configure-flags. * gnu/packages/audio.scm (faust-2)[native-inputs]: 'llvm-with-rtti' -> 'llv= m'. --- gnu/packages/audio.scm | 2 +- gnu/packages/llvm.scm | 14 ++------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index ee18b0022..389bf429d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1194,7 +1194,7 @@ PS, and DAB+.") `(list (string-append "prefix=3D" (assoc-ref %outputs "out")) "world")))) (native-inputs - `(("llvm" ,llvm-with-rtti) + `(("llvm" ,llvm) ("which" ,which) ("xxd" ,xxd) ("ctags" ,emacs-minimal) ; for ctags diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index d0791d00c..beca92650 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright =C2=A9 2014, 2016 Eric Bavier +;;; Copyright =C2=A9 2014, 2016, 2018 Eric Bavier ;;; Copyright =C2=A9 2015 Mark H Weaver ;;; Copyright =C2=A9 2015, 2017, 2018 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2016 Dennis Mungai @@ -65,6 +65,7 @@ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=3DFALSE" "-DBUILD_SHARED_LIBS:BOOL=3DTRUE" "-DLLVM_ENABLE_FFI:BOOL=3DTRUE" + "-DLLVM_REQUIRES_RTTI=3D1" ; For some third-par= ty utilities "-DLLVM_INSTALL_UTILS=3DON") ; Needed for rustc. =20 ;; Don't use '-g' during the build, to save space. @@ -90,17 +91,6 @@ languages is in development. The compiler infrastructur= e includes mirror sets of programming tools as well as libraries with equivalent functionality.") (license license:ncsa))) =20 -(define-public llvm-with-rtti - (package (inherit llvm) - (name "llvm-with-rtti") - (arguments - (substitute-keyword-arguments (package-arguments llvm) - ((#:configure-flags flags) - `(append '("-DCMAKE_SKIP_BUILD_RPATH=3DFALSE" - "-DCMAKE_BUILD_WITH_INSTALL_RPATH=3DFALSE" - "-DLLVM_REQUIRES_RTTI=3D1") - ,flags)))))) - (define* (clang-runtime-from-llvm llvm hash #:optional (patches '())) (package --=20 2.19.1 --MP_/12oL99DRp5kU36ymTJmk02z Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0002-gnu-Add-TomsFastMath.patch =46rom 8161999c7e11536d2d5d2bdc6bdcde94d06d98dc Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 20 Oct 2016 23:26:49 -0500 Subject: [PATCH 2/4] gnu: Add TomsFastMath. * gnu/packages/multiprecision.scm (tomsfastmath): New variable. * gnu/packages/patches/tomsfastmath-constness.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/multiprecision.scm | 66 ++++++++++++++++ .../patches/tomsfastmath-constness.patch | 76 +++++++++++++++++++ 3 files changed, 143 insertions(+) create mode 100644 gnu/packages/patches/tomsfastmath-constness.patch diff --git a/gnu/local.mk b/gnu/local.mk index 47883f829..62e264f29 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1174,6 +1174,7 @@ dist_patch_DATA =3D \ %D%/packages/patches/tk-find-library.patch \ %D%/packages/patches/ttf2eot-cstddef.patch \ %D%/packages/patches/ttfautohint-source-date-epoch.patch \ + %D%/packages/patches/tomsfastmath-constness.patch \ %D%/packages/patches/totem-meson-easy-codec.patch \ %D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/twinkle-include-qregexpvalidator.patch \ diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.= scm index 4f5eac16b..71e1efcd8 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -26,6 +26,7 @@ (define-module (gnu packages multiprecision) #:use-module (guix licenses) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages m4) #:use-module (gnu packages gcc) #:use-module (guix packages) @@ -225,3 +226,68 @@ minor changes to the source code. In most cases only = a few type statements and (for Fortran-90 programs) read/write statements need to be changed. P= SLQ and numerical quadrature programs are included.") (license bsd-3))) + +(define-public tomsfastmath + (package + (name "tomsfastmath") + (version "0.13.0") + (synopsis "Large integer arithmetic library") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/libtom/tomsfastmath/" + "releases/download/v" version "/" + "tfm-" (version-major+minor version) ".t= ar.bz2")) + (sha256 + (base32 + "01rlsvp6lskk2a0gfdi24ak5h8vdwi6kqbvbwjnmb92r0zrfdvwd")) + (patches (search-patches "tomsfastmath-constness.patch")))) + (build-system gnu-build-system) + (native-inputs + `(("libtool" ,libtool))) + (arguments + `(#:make-flags (list "-f" "makefile.shared" + (string-append "LIBPATH=3D" %output "/lib") + (string-append "INCPATH=3D" %output "/include") + "GROUP=3Droot" "USER=3Droot" + "CC=3Dgcc") + #:phases + (modify-phases %standard-phases + (delete 'configure) ;no configuration + (replace 'check + (lambda* (#:key make-flags #:allow-other-keys) + (and (zero? (apply system* "make" + "stest" "test_standalone" + make-flags)) + (zero? (system* "./stest")) + (zero? (system* "./test"))))) + (add-before 'install 'install-nogroup + (lambda _ + ;; Let permissions inherit from the current process + (substitute* "makefile.shared" + (("-g \\$\\(GROUP\\) -o \\$\\(USER\\)") "")) + #t)) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((docdir (string-append (assoc-ref outputs "out") + "/share/doc/tomsfastmath"))) + (install-file "doc/tfm.pdf" docdir) + #t))) + (add-after 'install 'install-pc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (pc-dir (string-append out "/lib/pkgconfig"))) + (call-with-output-file "tomsfastmath.pc" + (lambda (port) + (format port "~ +Name: TomsFastMath +Description: ~a +Version: ~a +Libs: -L~a/lib -ltfm~%" + ,synopsis ,version out))) + (install-file "tomsfastmath.pc" pc-dir) + #t)))))) + (home-page "http://www.libtom.org/TomsFastMath/") + (description "TomsFastMath is a large integer library written in porta= ble +ISO C. It is a port of LibTomMath with optional support for inline assemb= ler +multiplies.") + (license public-domain))) diff --git a/gnu/packages/patches/tomsfastmath-constness.patch b/gnu/packag= es/patches/tomsfastmath-constness.patch new file mode 100644 index 000000000..7c6ab5bbe --- /dev/null +++ b/gnu/packages/patches/tomsfastmath-constness.patch @@ -0,0 +1,76 @@ +From dac089515901d6bf315cd15a6e744b8d2c02c1cb Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Sat, 31 Oct 2015 22:48:07 +0100 +Subject: [PATCH] tfm: make a few functions static + +clamav expects them to be static and it does not seem bad to do so. + +Signed-off-by: Sebastian Andrzej Siewior +--- + src/bin/fp_read_radix.c | 2 +- + src/bin/fp_read_signed_bin.c | 2 +- + src/bin/fp_read_unsigned_bin.c | 2 +- + src/headers/tfm.h | 6 +++--- + 4 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/bin/fp_read_radix.c b/src/bin/fp_read_radix.c +index 0b5e826..431afa0 100644 +--- a/src/bin/fp_read_radix.c ++++ b/src/bin/fp_read_radix.c +@@ -9,7 +9,7 @@ + */ + #include +=20 +-int fp_read_radix(fp_int *a, char *str, int radix) ++int fp_read_radix(fp_int *a, const char *str, int radix) + { + int y, neg; + char ch; +diff --git a/src/bin/fp_read_signed_bin.c b/src/bin/fp_read_signed_bin.c +index e2b8003..6467d19 100644 +--- a/src/bin/fp_read_signed_bin.c ++++ b/src/bin/fp_read_signed_bin.c +@@ -9,7 +9,7 @@ + */ + #include +=20 +-void fp_read_signed_bin(fp_int *a, unsigned char *b, int c) ++void fp_read_signed_bin(fp_int *a, const unsigned char *b, int c) + { + /* read magnitude */ + fp_read_unsigned_bin (a, b + 1, c - 1); +diff --git a/src/bin/fp_read_unsigned_bin.c b/src/bin/fp_read_unsigned_bin= .c +index 3ee64c0..2ee89cb 100644 +--- a/src/bin/fp_read_unsigned_bin.c ++++ b/src/bin/fp_read_unsigned_bin.c +@@ -9,7 +9,7 @@ + */ + #include +=20 +-void fp_read_unsigned_bin(fp_int *a, unsigned char *b, int c) ++void fp_read_unsigned_bin(fp_int *a, const unsigned char *b, int c) + { + /* zero the int */ + fp_zero (a); +diff --git a/src/headers/tfm.h b/src/headers/tfm.h +index af87b56..f406388 100644 +--- a/src/headers/tfm.h ++++ b/src/headers/tfm.h +@@ -467,14 +467,14 @@ int fp_prime_random_ex(fp_int *a, int t, int size, i= nt flags, tfm_prime_callback + int fp_count_bits(fp_int *a); +=20 + int fp_unsigned_bin_size(fp_int *a); +-void fp_read_unsigned_bin(fp_int *a, unsigned char *b, int c); ++void fp_read_unsigned_bin(fp_int *a, const unsigned char *b, int c); + void fp_to_unsigned_bin(fp_int *a, unsigned char *b); +=20 + int fp_signed_bin_size(fp_int *a); +-void fp_read_signed_bin(fp_int *a, unsigned char *b, int c); ++void fp_read_signed_bin(fp_int *a, const unsigned char *b, int c); + void fp_to_signed_bin(fp_int *a, unsigned char *b); +=20 +-int fp_read_radix(fp_int *a, char *str, int radix); ++int fp_read_radix(fp_int *a, const char *str, int radix); +=20 + int fp_radix_size(fp_int *a, int radix, int *size); + int fp_toradix(fp_int *a, char *str, int radix); --=20 2.19.1 --MP_/12oL99DRp5kU36ymTJmk02z Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0003-gnu-Add-ClamAV.patch =46rom 6f9dfe688d0e7119f477d5418ffbf529c5a3f411 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Fri, 28 Oct 2016 22:42:59 -0500 Subject: [PATCH 3/4] gnu: Add ClamAV. * gnu/packages/antivirus.scm: New file. * gnu/packages/patches/clamav-system-tomsfastmath.patch, gnu/packages/patches/clamav-config-llvm-libs.patch: New files. * gnu/local.mk (GNU_SYSTEM_MODULES): Add new module. (dist_patch_DATA): Add patches. Co-authored-by: Christopher Baines --- gnu/local.mk | 4 +- gnu/packages/antivirus.scm | 156 ++++++++++++++++++ .../patches/clamav-config-llvm-libs.patch | 14 ++ .../patches/clamav-system-tomsfastmath.patch | 102 ++++++++++++ 4 files changed, 275 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/antivirus.scm create mode 100644 gnu/packages/patches/clamav-config-llvm-libs.patch create mode 100644 gnu/packages/patches/clamav-system-tomsfastmath.patch diff --git a/gnu/local.mk b/gnu/local.mk index 62e264f29..be27be6df 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -60,6 +60,7 @@ GNU_SYSTEM_MODULES =3D \ %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 \ @@ -612,7 +613,8 @@ dist_patch_DATA =3D \ %D%/packages/patches/ceph-skip-collect-sys-info-test.patch \ %D%/packages/patches/ceph-skip-unittest_blockdev.patch \ %D%/packages/patches/chmlib-inttypes.patch \ - %D%/packages/patches/clang-3.5-libc-search-path.patch \ + %D%/packages/patches/clamav-config-llvm-libs.patch \ + %D%/packages/patches/clamav-system-tomsfastmath.patch \ %D%/packages/patches/clang-3.8-libc-search-path.patch \ %D%/packages/patches/clang-6.0-libc-search-path.patch \ %D%/packages/patches/clang-runtime-asan-build-fixes.patch \ diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm new file mode 100644 index 000000000..f117e3080 --- /dev/null +++ b/gnu/packages/antivirus.scm @@ -0,0 +1,156 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2016, 2017, 2018 Eric Bavier +;;; Copyright =C2=A9 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) + #:use-module (guix build-system gnu) + #: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 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://www.clamav.net/downloads/produc= tion/" + "clamav-" version ".tar.gz")) + (sha256 + (base32 + "1mkd41sxbjkfjinpx5b9kb85q529gj2s3d0klysssqhysh64ybja")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file-recursively + '("win32" ;unnecessary + "libclamav/c++/llvm" ;use system llvm + "libclamunrar")))) ;non-free license + (patches + (search-patches "clamav-system-tomsfastmath.patch" + "clamav-config-llvm-libs.patch")))) + (build-system gnu-build-system) + (native-inputs + `(("bison" ,bison) + ("check" ,check) ;for tests + ("flex" ,flex) + ("pkg-config" ,pkg-config) + ;; The tomsfastmath patch touches configure.ac and Makefile.am + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (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) + ("pcre" ,pcre "bin") ;for pcre-config + ("sasl" ,cyrus-sasl) ;for linking curl with libtool + ("tomsfastmath" ,tomsfastmath) + ("xml" ,libxml2) + ("zlib" ,zlib))) + (arguments + `(#:configure-flags + (let-syntax ((with (syntax-rules () + ((_ name) + (string-append "--with-" name "=3D" + (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 "pcre") + (with "zlib") + (with "libcurl") + ;; For sanity, specifying --enable-* flags turns + ;; "support unavailable" warnings into errors. + "--enable-bzip2" + "--enable-check" + "--sysconfdir=3D/etc/clamav" + ;; Default database directory needs to be writeable + "--with-dbdir=3D/var/db/clamav")) + ;; install sample .conf files to %output/etc rather than /etc/clamav + #:make-flags (list (string-append "sysconfdir=3D" %output "/etc")) + #:phases (modify-phases %standard-phases + (add-after 'unpack 'reconf + (lambda _ (zero? (system* "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 li= b*.a + ;; libraries, rather than the lib*.so's that our llvm + ;; contains. They're used only for listing extra bu= ild + ;; 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))))) + (home-page "https://www.clamav.net") + (synopsis "Antivirus engine") + (description + "Clam AntiVirus is an anti-virus toolkit, designed especially for e-m= ail +scanning on mail gateways. It provides a number of utilities including a +flexible and scalable multi-threaded daemon, a command line scanner, and +advanced tool for automatic database updates. The core of the package is = an +anti-virus engine available in the form of a shared library.") + (license (list license:gpl2+ ;ClamAV itself + license:lgpl2.1 ;libclamav/mspack.[ch] + license:public-domain ;libclamav/7z/*, libclamav/rijnda= el.[ch], etc... + (package-license bzip2) ;modified bzip2 source in libcl= amav/nsis + license:bsd-2 ;several files in libclamav + license:bsd-3 ;libclamav/{regex,qsort.c,swf.[ch] + license:ncsa ;libclamav/c++/PointerTracking.cpp + license:zlib ;libclamav/inf*.h + license:x11 ;libclamav/lzw + (license:non-copyleft "libclamav/strlcat.c") ;"OpenBSD"= license + license:asl2.0 ;libclamav/yara* + license:expat)))) ;shared/getopt.[ch] diff --git a/gnu/packages/patches/clamav-config-llvm-libs.patch b/gnu/packa= ges/patches/clamav-config-llvm-libs.patch new file mode 100644 index 000000000..054264ee2 --- /dev/null +++ b/gnu/packages/patches/clamav-config-llvm-libs.patch @@ -0,0 +1,14 @@ +Our llvm does not contain a single top-level library, so consult llvm-conf= ig +for the libraries that need to be linked against. + +--- clamav-0.100.2/libclamav/c++/configure.ac 2018-09-19 14:29:07.00000000= 0 -0500 ++++ clamav-0.100.2/libclamav/c++/configure.ac 2018-10-06 21:45:09.37724915= 8 -0500 +@@ -105,7 +105,7 @@ +=20 + if test "x$llvm_linking" =3D "xdynamic"; then + AC_SUBST(LLVMCONFIG_LDFLAGS, [`$llvmconfig --ldflags`]) +- AC_SUBST(LLVMCONFIG_LIBS, [-lLLVM-$llvmver]) ++ AC_SUBST(LLVMCONFIG_LIBS, [`$llvmconfig --libs $llvmcomp`]) + AC_SUBST(LLVMCONFIG_LIBFILES, []) + else + if test $llvmver_test -ge 350; then diff --git a/gnu/packages/patches/clamav-system-tomsfastmath.patch b/gnu/pa= ckages/patches/clamav-system-tomsfastmath.patch new file mode 100644 index 000000000..07ab79f3f --- /dev/null +++ b/gnu/packages/patches/clamav-system-tomsfastmath.patch @@ -0,0 +1,102 @@ +From 756ff89526b5ffaa7a4f49b1bbecf2ecbd6f85f9 Mon Sep 17 00:00:00 2001 +From: Andreas Cadhalpun +Date: Wed, 11 Mar 2015 20:03:15 +0100 +Subject: add support for system tomsfastmath + +Patch-Name: add-support-for-system-tomsfastmath.patch +--- + configure.ac | 2 ++ + libclamav/Makefile.am | 10 ++++++++-- + libclamav/bignum.h | 6 +++++- + libclamav/xdp.c | 2 +- + m4/reorganization/libs/tomsfastmath.m4 | 12 ++++++++++++ + 5 files changed, 28 insertions(+), 4 deletions(-) + create mode 100644 m4/reorganization/libs/tomsfastmath.m4 + +--- a/configure.ac ++++ b/configure.ac +@@ -82,6 +82,7 @@ m4_include([m4/reorganization/libs/xml.m + m4_include([m4/reorganization/libs/openssl.m4]) + m4_include([m4/reorganization/libs/json.m4]) + m4_include([m4/reorganization/libs/pcre.m4]) ++m4_include([m4/reorganization/libs/tomsfastmath.m4]) +=20 + AM_MAINTAINER_MODE + m4_include([m4/reorganization/libs/libz.m4]) +@@ -285,6 +286,7 @@ else + fi + CL_MSG_STATUS([yara ],[$enable_yara],[$enable_yara]) + CL_MSG_STATUS([fts ],[yes],[$lfs_fts_msg]) ++CL_MSG_STATUS([tomsfastmath],[yes],[$tomsfastmath_msg]) +=20 +=20 + # Yep, downgrading the compiler avoids the bug too: +--- a/libclamav/Makefile.am ++++ b/libclamav/Makefile.am +@@ -496,8 +496,10 @@ libclamav_la_SOURCES +=3D yara_arena.c \ + yara_clam.h + endif +=20 +-libclamav_la_SOURCES +=3D bignum.h\ +- bignum_fast.h\ ++libclamav_la_SOURCES +=3D bignum.h ++ ++if !SYSTEM_TOMSFASTMATH ++libclamav_la_SOURCES +=3D bignum_fast.h\ + tomsfastmath/addsub/fp_add.c\ + tomsfastmath/addsub/fp_add_d.c\ + tomsfastmath/addsub/fp_addmod.c\ +@@ -579,6 +581,10 @@ libclamav_la_SOURCES +=3D bignum.h\ + tomsfastmath/sqr/fp_sqr_comba_generic.c\ + tomsfastmath/sqr/fp_sqr_comba_small_set.c\ + tomsfastmath/sqr/fp_sqrmod.c ++else ++libclamav_la_CFLAGS +=3D $(TOMSFASTMATH_CFLAGS) ++libclamav_la_LIBADD +=3D $(TOMSFASTMATH_LIBS) ++endif +=20 + .PHONY: version.h.tmp + version.c: version.h +--- a/libclamav/bignum.h ++++ b/libclamav/bignum.h +@@ -1,9 +1,13 @@ + #ifndef BIGNUM_H_ + #define BIGNUM_H_ +=20 ++#if HAVE_SYSTEM_TOMSFASTMATH ++#include ++#else + #define TFM_CHECK +- + #include "bignum_fast.h" ++#endif ++ + typedef fp_int mp_int; + #define mp_cmp fp_cmp + #define mp_toradix_n(a,b,c,d) fp_toradix_n(a,b,c,d) +--- a/libclamav/xdp.c ++++ b/libclamav/xdp.c +@@ -57,7 +57,7 @@ + #include "scanners.h" + #include "conv.h" + #include "xdp.h" +-#include "bignum_fast.h" ++#include "bignum.h" + #include "filetypes.h" +=20 + static char *dump_xdp(cli_ctx *ctx, const char *start, size_t sz); +--- /dev/null ++++ b/m4/reorganization/libs/tomsfastmath.m4 +@@ -0,0 +1,12 @@ ++dnl Check for system tomsfastmath ++PKG_CHECK_MODULES([TOMSFASTMATH], [tomsfastmath], [have_system_tomsfastma= th=3Dyes], [have_system_tomsfastmath=3Dno]) ++ ++AM_CONDITIONAL([SYSTEM_TOMSFASTMATH], [test "x$have_system_tomsfastmath" = =3D "xyes"]) ++ ++if test "x$have_system_tomsfastmath" =3D "xyes"; then ++ AC_DEFINE([HAVE_SYSTEM_TOMSFASTMATH], [1], [link against system-wide = tomsfastmath library]) ++ tomsfastmath_msg=3D"External, $TOMSFASTMATH_CFLAGS $TOMSFASTMATH_LIBS" ++else ++ AC_DEFINE([HAVE_SYSTEM_TOMSFASTMATH], [0], [don't link against system= -wide tomsfastmath library]) ++ tomsfastmath_msg=3D"Internal" ++fi --=20 2.19.1 --MP_/12oL99DRp5kU36ymTJmk02z-- --Sig_/ACGh4sw+sLwMgI6h1pZ+qEv Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIyBAEBCgAdFiEEoMXjUi7471xkzbfw/XPKxxnTJWYFAlvQmTcACgkQ/XPKxxnT JWYhbg/2Oco2baF192cOVy0+cDsQsG0b2XhHrBJxlWfbHfAg2owjQH/LJeSmAUlj an/93HKmTuFFy71PTzFVaqwrk6RbjQQOrbKEZIR9k18aw9i+5kUIdhbK+VzjeFer NPokf0JNhuKBEZOkQPqgJtb956PZGn23nbxboFej057QOoPMpCEKvbEfcWe2Fam8 Xk/qxtQuuIQ+Wkqeg01VZa5LuRZsxUUZmfzXxMgTIpdZXh34GfkLlo9TIAvzpdHa 3b0rVy5iuxLpk+5YWi+eyJ4jXvrVE9S2tczC7gp2LZvOZ3IXaI6ZuabQLL4T81m8 ZIB3Kcp6mkbXYbtfCq188PR72CbHubUFDvHQOQ6iNcq18FGN/8Egl4BMTNFStQ65 /OMGX+8kxkN6J7aMJlUYjpMC8bqUV9qMg6nq2AxZgskUZFXWtCy8C7OMbzAS2dFT /zoc8nAyC/DIkCvrOCo2wZxpAR03U9LsNlcN6csAKAw+z6Kr3YX7Dqolw1oKIPdL z6A1rDLBye78+KA1lEzwEun2xDQzKk+Wo1D+jEaqqrvkFG4Hp9WB61omoGkwDg8N 5dSYlSUZcfH7nGPa90qemM2mpIhQzPtH02MGtd4m9GamsGxRKZs7q2h4/fEZmOpf 1mLnCXO7w4atiaqz2IP+pPP2oaq+43iXic5QLlxjjqmEsY4qNg== =Wfzb -----END PGP SIGNATURE----- --Sig_/ACGh4sw+sLwMgI6h1pZ+qEv--