summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHilton Chain <hako@ultrarare.space>2025-04-07 16:16:57 +0800
committerHilton Chain <hako@ultrarare.space>2025-08-21 19:08:27 +0800
commitdbc006ed83dc5d7f237a82a71d1718a5d35a937d (patch)
tree7369bdd08d60b22de4d11d9859b92030fe3b506a
parent67220f795ce38c5455118958dd310e7d10bc6ac4 (diff)
gnu: clamav: Use cmake-build-system.
* gnu/packages/antivirus.scm (clamav)[build-system]: Use cmake-build-system. [native-inputs]: Add rust, rust:cargo. Add rust-sysroot when cross-compiling. Remove cmake-minimal. Move check to... [inputs]: ...here. Use ‘cargo-inputs’. [arguments]: Add #:configure-flags from phases. Remove #:install-source?, #:cargo-inputs, #:vendor-dir. <#:phases>: Keep ‘check-for-pregenerated-files’. Add ‘prepare-cargo-build-system’. In ‘patch-rust-requirements’, don't patch cbindgen version. Remove ‘cmake-configure’, ‘fix-cargo-inputs-vendoring’, ‘cmake-configure’. * gnu/packages/rust-crates.scm (lookup-cargo-inputs)[clamav]: New entry. Change-Id: I1583ad0c907e8f74dcf42bd0a0e7f4cef7400cd9
-rw-r--r--gnu/packages/antivirus.scm94
-rw-r--r--gnu/packages/rust-crates.scm218
2 files changed, 251 insertions, 61 deletions
diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm
index d2060fa3852..1240853898c 100644
--- a/gnu/packages/antivirus.scm
+++ b/gnu/packages/antivirus.scm
@@ -47,6 +47,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)
@@ -76,71 +77,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")))
- (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.
@@ -151,20 +117,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
diff --git a/gnu/packages/rust-crates.scm b/gnu/packages/rust-crates.scm
index 39a9850abee..3caaa1b118d 100644
--- a/gnu/packages/rust-crates.scm
+++ b/gnu/packages/rust-crates.scm
@@ -64,6 +64,10 @@
(crate-source "adler2" "2.0.0"
"09r6drylvgy8vv8k20lnbvwq8gp09h7smfn6h1rxsy15pgh629si"))
+(define rust-adler32-1.2.0
+ (crate-source "adler32" "1.2.0"
+ "0d7jq7jsjyhsgbhnfq5fvrlh9j0i9g1fqrl2735ibv5f75yjgqda"))
+
(define rust-ahash-0.8.11
(crate-source "ahash" "0.8.11"
"04chdfkls5xmhp1d48gnjsmglbqibizs3bpbj6rsj604m10si7g8"))
@@ -378,6 +382,10 @@
(crate-source "bincode" "1.3.3"
"1bfw3mnwzx5g1465kiqllp5n4r10qrqy88kdlp3jfwnq2ya5xx5i"))
+(define rust-bindgen-0.65.1
+ (crate-source "bindgen" "0.65.1"
+ "1i9wci1h3xnk8hi7cf06capgifnmpk9dd59zqznh6jcsdx37ppyg"))
+
(define rust-bindgen-0.69.5
(crate-source "bindgen" "0.69.5"
"1240snlcfj663k04bjsg629g4wx6f83flgbjh5rzpgyagk3864r7"))
@@ -499,6 +507,11 @@
"0iya6nbj0p2y8jss0z05yncc5hadry164fw3zva01y06v4igpv29"
#:snippet '(delete-file-recursively "tests")))
+(define rust-bzip2-rs-0.1.2
+ (crate-source "bzip2-rs" "0.1.2"
+ "0dgp83kixqrqj6q6574qr5zsfpbsiiwhqs3krhvsn4f8wkkmksxy"
+ #:snippet '(delete-file-recursively "tests")))
+
(define rust-bzip2-sys-0.1.13+1.0.8
(crate-source "bzip2-sys" "0.1.13+1.0.8"
"056c39pgjh4272bdslv445f5ry64xvb0f7nph3z7860ln8rzynr2"
@@ -615,6 +628,10 @@
(crate-source "cast" "0.3.0"
"1dbyngbyz2qkk0jn2sxil8vrz3rnpcj142y184p9l4nbl9radcip"))
+(define rust-cbindgen-0.25.0
+ (crate-source "cbindgen" "0.25.0"
+ "1jl82k816rxwi2ks9smnzlqv02fbq0sqy6r1g5d9f9x7wn9sdsps"))
+
(define rust-cbindgen-0.27.0
(crate-source "cbindgen" "0.27.0"
"1sqm3axr678d72yihgmpr9d17mj99ccibxfqhw53mgzwzkbqvkiz"))
@@ -966,6 +983,10 @@
(crate-source "deadpool-runtime" "0.1.4"
"0arbchl5j887hcfvjy4gq38d32055s5cf7pkpmwn0lfw3ss6ca89"))
+(define rust-delharc-0.6.1
+ (crate-source "delharc" "0.6.1"
+ "18g5haj6bj92azif4jifhdy9vrv6blg3wyvpmxslh2gm2wkbm4qw"))
+
(define rust-der-0.7.9
(crate-source "der" "0.7.9"
"1h4vzjfa1lczxdf8avfj9qlwh1qianqlxdy1g5rn762qnvkzhnzm"
@@ -1137,6 +1158,10 @@
(crate-source "enquote" "1.1.0"
"0clrjghlfkkb7sndabs5wch0fz2nif6nj4b117s8kqxx3nqnrhq6"))
+(define rust-enum-primitive-derive-0.2.2
+ (crate-source "enum-primitive-derive" "0.2.2"
+ "03ibjjx8dc4akpq8ck24qda5ix4jybz9jagfxykd0s6vxb2vjxf3"))
+
(define rust-enumflags2-0.7.11
(crate-source "enumflags2" "0.7.11"
"0iwi60d54lgby0f29b5isikxraf0wvnqdmlddx68a62kbx34nbxs"))
@@ -1969,6 +1994,10 @@
(crate-source "hex" "0.4.3"
"0w1a4davm1lgzpamwnba907aysmlrnygbqmfis2mqjx5m552a93z"))
+(define rust-hex-literal-0.4.1
+ (crate-source "hex-literal" "0.4.1"
+ "0iny5inkixsdr41pm2vkqh3fl66752z5j5c0cdxw16yl9ryjdqkg"))
+
(define rust-hkdf-0.12.4
(crate-source "hkdf" "0.12.4"
"1xxxzcarz151p1b858yn5skmhyrvn8fs4ivx5km3i1kjmnr8wpvv"
@@ -2152,6 +2181,11 @@
(crate-source "indoc" "2.0.6"
"1gbn2pkx5sgbd9lp05d2bkqpbfgazi0z3nvharh5ajah11d29izl"))
+(define rust-inflate-0.4.5
+ (crate-source "inflate" "0.4.5"
+ "1zxjdn8iwa0ssxrnjmywm3r1v284wryvzrf8vkc7nyf5ijbjknqw"
+ #:snippet '(delete-file-recursively "tests")))
+
(define rust-input-0.9.1
(crate-source "input" "0.9.1"
"1abmv1djhynihipjppgsmw6nbp6pcgzk8rzi4v6wmyci9990kp7v"))
@@ -2908,6 +2942,16 @@
(crate-source "once_cell" "1.21.3"
"0b9x77lb9f1j6nqgf5aka4s2qj0nly176bpbrv6f9iakk5ff3xa2"))
+(define rust-onenote-parser-0.3.1.29c0853
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url "https://github.com/Cisco-Talos/onenote.rs.git")
+ (commit "29c08532252b917543ff268284f926f30876bb79")))
+ (file-name (git-file-name "rust-onenote-parser" "0.3.1.29c0853"))
+ (sha256 (base32 "1sfx3jgj1vgwh00kckl5hfbmdpp4wmvszsxwzi1k10nihryvkdy5"))
+ (modules '((guix build utils)))
+ (snippet '(delete-file-recursively "tests"))))
+
(define rust-oorandom-11.1.5
(crate-source "oorandom" "11.1.5"
"07mlf13z453fq01qff38big1lh83j8l6aaglf63ksqzzqxc0yyfn"))
@@ -3103,6 +3147,10 @@
(define rust-pcre2-sys-0.2.9.85b7afb rust-pcre2-utf32-0.2)
+(define rust-peeking-take-while-0.1.2
+ (crate-source "peeking_take_while" "0.1.2"
+ "16bhqr6rdyrp12zv381cxaaqqd0pwysvm1q8h2ygihvypvfprc8r"))
+
(define rust-pem-3.0.5
(crate-source "pem" "3.0.5"
"1wwfk8sbyi9l18fvvn6z9p2gy7v7q7wimbhvrvixxj8a8zl3ibrq"))
@@ -3300,6 +3348,10 @@
(crate-source "prettyplease" "0.2.32"
"1xmdmwhsvqc8l5ns029vzjida4k3lp5ynin0xra43qsiki0wakk6"))
+(define rust-primal-check-0.3.4
+ (crate-source "primal-check" "0.3.4"
+ "025xnak4rhkwa4h970bjb3cvp2k853wviyr84n8gjfhy65dqj3fw"))
+
(define rust-primeorder-0.13.6
(crate-source "primeorder" "0.13.6"
"1rp16710mxksagcjnxqjjq9r9wf5vf72fs8wxffnvhb6i6hiqgim"))
@@ -3755,6 +3807,14 @@
(crate-source "rustc_version" "0.4.1"
"14lvdsmr5si5qbqzrajgb6vfn69k0sfygrvfvr2mps26xwi3mjyg"))
+(define rust-rustdct-0.7.1
+ (crate-source "rustdct" "0.7.1"
+ "0lcm1191xx8wizima5j3n25fs90x58v3q1kwg6cbzafn0m8maqcb"))
+
+(define rust-rustfft-6.2.0
+ (crate-source "rustfft" "6.2.0"
+ "11hx83yr2h2jszkba9qhq2d08q9i5rsashq62rfhqvahpihnb023"))
+
(define rust-rustfix-0.9.0
(crate-source "rustfix" "0.9.0"
"1a79gyag6w459qani0a1m6asadz6vxvgvmrw4l94zzvifiniarkz"))
@@ -4152,6 +4212,10 @@
(crate-source "stfu8" "0.2.7"
"0y0rzzphh2mzfhjz0sxymnjn0s4ap21c74f469s9xycky24iw7z5"))
+(define rust-strength-reduce-0.2.4
+ (crate-source "strength_reduce" "0.2.4"
+ "10jdq9dijjdkb20wg1dmwg447rnj37jbq0mwvbadvqi2gys5x2gy"))
+
(define rust-string-cache-0.8.9
(crate-source "string_cache" "0.8.9"
"03z7km2kzlwiv2r2qifq5riv4g8phazwng9wnvs3py3lzainnxxz"))
@@ -4528,6 +4592,10 @@
(crate-source "tracy-client-sys" "0.24.3"
"0ps3iwb7q1fzs9pir6b0nqi8n7i67lci4jp6z4xrq8s8lmyz7zv9"))
+(define rust-transpose-0.2.3
+ (crate-source "transpose" "0.2.3"
+ "0zp74v7jrjg4jr654dncdj6hqvacicsywyhc62jawgxwhvnimmhs"))
+
(define rust-triomphe-0.1.14
(crate-source "triomphe" "0.1.14"
"11fciha522hrz6pkafy3xlq20w405w9dqvy9ln7ba1s8v8k7g3zg"))
@@ -5869,6 +5937,156 @@
rust-windows-x86-64-gnullvm-0.52.6
rust-windows-x86-64-msvc-0.52.6
rust-winnow-0.7.4))
+ (clamav =>
+ (list rust-adler2-2.0.0
+ rust-adler32-1.2.0
+ rust-aho-corasick-1.1.3
+ rust-android-tzdata-0.1.1
+ rust-android-system-properties-0.1.5
+ rust-autocfg-1.4.0
+ rust-base64-0.21.7
+ rust-bindgen-0.65.1
+ rust-bit-field-0.10.2
+ rust-bitflags-1.3.2
+ rust-bitflags-2.9.0
+ rust-block-buffer-0.10.4
+ rust-bumpalo-3.17.0
+ rust-bytemuck-1.22.0
+ rust-byteorder-1.5.0
+ rust-bytes-1.10.1
+ rust-bzip2-rs-0.1.2
+ rust-cbindgen-0.25.0
+ rust-cc-1.2.18
+ rust-cexpr-0.6.0
+ rust-cfg-if-1.0.0
+ rust-chrono-0.4.40
+ rust-clang-sys-1.8.1
+ rust-color-quant-1.1.0
+ rust-core-foundation-sys-0.8.7
+ rust-cpufeatures-0.2.17
+ rust-crc32fast-1.4.2
+ rust-crossbeam-deque-0.8.6
+ rust-crossbeam-epoch-0.9.18
+ rust-crossbeam-utils-0.8.21
+ rust-crunchy-0.2.3
+ rust-crypto-common-0.1.6
+ rust-delharc-0.6.1
+ rust-digest-0.10.7
+ rust-either-1.15.0
+ rust-encoding-rs-0.8.35
+ rust-enum-primitive-derive-0.2.2
+ rust-errno-0.3.11
+ rust-exr-1.73.0
+ rust-fastrand-2.3.0
+ rust-fdeflate-0.3.7
+ rust-flate2-1.1.1
+ rust-generic-array-0.14.7
+ rust-getrandom-0.3.2
+ rust-gif-0.13.1
+ rust-glob-0.3.2
+ rust-half-2.5.0
+ rust-hashbrown-0.12.3
+ rust-heck-0.4.1
+ rust-hex-0.4.3
+ rust-hex-literal-0.4.1
+ rust-home-0.5.11
+ rust-iana-time-zone-0.1.63
+ rust-iana-time-zone-haiku-0.1.2
+ rust-image-0.24.9
+ rust-indexmap-1.9.3
+ rust-inflate-0.4.5
+ rust-itertools-0.10.5
+ rust-itoa-1.0.15
+ rust-jpeg-decoder-0.3.1
+ rust-js-sys-0.3.77
+ rust-lazy-static-1.5.0
+ rust-lazycell-1.3.0
+ rust-lebe-0.5.2
+ rust-libc-0.2.171
+ rust-libloading-0.8.6
+ rust-linux-raw-sys-0.4.15
+ rust-linux-raw-sys-0.9.3
+ rust-log-0.4.27
+ rust-memchr-2.7.4
+ rust-minimal-lexical-0.2.1
+ rust-miniz-oxide-0.8.7
+ rust-nom-7.1.3
+ rust-num-complex-0.4.6
+ rust-num-integer-0.1.46
+ rust-num-traits-0.2.19
+ rust-once-cell-1.21.3
+ rust-onenote-parser-0.3.1.29c0853
+ rust-paste-1.0.15
+ rust-peeking-take-while-0.1.2
+ rust-png-0.17.16
+ rust-prettyplease-0.2.32
+ rust-primal-check-0.3.4
+ rust-proc-macro2-1.0.94
+ rust-qoi-0.4.1
+ rust-quote-1.0.40
+ rust-r-efi-5.2.0
+ rust-rayon-1.10.0
+ rust-rayon-core-1.12.1
+ rust-regex-1.11.1
+ rust-regex-automata-0.4.9
+ rust-regex-syntax-0.8.5
+ rust-rustc-hash-1.1.0
+ rust-rustdct-0.7.1
+ rust-rustfft-6.2.0
+ rust-rustix-0.38.44
+ rust-rustix-1.0.5
+ rust-rustversion-1.0.20
+ rust-ryu-1.0.20
+ rust-serde-1.0.219
+ rust-serde-derive-1.0.219
+ rust-serde-json-1.0.140
+ rust-sha1-0.10.6
+ rust-sha2-0.10.8
+ rust-shlex-1.3.0
+ rust-simd-adler32-0.3.7
+ rust-smallvec-1.15.0
+ rust-strength-reduce-0.2.4
+ rust-syn-1.0.109
+ rust-syn-2.0.100
+ rust-tempfile-3.19.1
+ rust-thiserror-1.0.69
+ rust-thiserror-impl-1.0.69
+ rust-tiff-0.9.1
+ rust-tinyvec-1.9.0
+ rust-toml-0.5.11
+ rust-transpose-0.2.3
+ rust-typenum-1.18.0
+ rust-unicode-ident-1.0.18
+ rust-unicode-segmentation-1.12.0
+ rust-uuid-1.16.0
+ rust-version-check-0.9.5
+ rust-wasi-0.14.2+wasi-0.2.4
+ rust-wasm-bindgen-0.2.100
+ rust-wasm-bindgen-backend-0.2.100
+ rust-wasm-bindgen-macro-0.2.100
+ rust-wasm-bindgen-macro-support-0.2.100
+ rust-wasm-bindgen-shared-0.2.100
+ rust-weezl-0.1.8
+ rust-which-4.4.2
+ rust-widestring-1.2.0
+ rust-windows-core-0.61.0
+ rust-windows-implement-0.60.0
+ rust-windows-interface-0.59.1
+ rust-windows-link-0.1.1
+ rust-windows-result-0.3.2
+ rust-windows-strings-0.4.0
+ rust-windows-sys-0.59.0
+ rust-windows-targets-0.52.6
+ rust-windows-aarch64-gnullvm-0.52.6
+ rust-windows-aarch64-msvc-0.52.6
+ rust-windows-i686-gnu-0.52.6
+ rust-windows-i686-gnullvm-0.52.6
+ rust-windows-i686-msvc-0.52.6
+ rust-windows-x86-64-gnu-0.52.6
+ rust-windows-x86-64-gnullvm-0.52.6
+ rust-windows-x86-64-msvc-0.52.6
+ rust-wit-bindgen-rt-0.39.0
+ rust-zune-inflate-0.2.54))
(du-dust =>
(list rust-aho-corasick-1.1.3
rust-android-tzdata-0.1.1