4 |
4 |
EAPI=8
|
5 |
5 |
|
6 |
6 |
LLVM_MAX_SLOT=13
|
7 |
|
PYTHON_COMPAT=( python3_{10..12} )
|
|
7 |
PYTHON_COMPAT=( python3_{9..11} )
|
8 |
8 |
|
9 |
|
# Auto-Generated by cargo-ebuild 0.5.4-r1
|
|
9 |
# Auto-Generated by cargo-ebuild 0.5.4
|
10 |
10 |
CRATES="
|
11 |
|
adler@1.0.2
|
12 |
|
ansi_term@0.12.1
|
13 |
|
atty@0.2.14
|
14 |
|
autocfg@1.1.0
|
15 |
|
bindgen@0.65.1
|
16 |
|
bit_field@0.10.1
|
17 |
|
bitflags@1.3.2
|
18 |
|
block-buffer@0.10.3
|
19 |
|
bumpalo@3.12.0
|
20 |
|
bytemuck@1.13.0
|
21 |
|
byteorder@1.4.3
|
22 |
|
cbindgen@0.20.0
|
23 |
|
cexpr@0.6.0
|
24 |
|
cfg-if@1.0.0
|
25 |
|
clang-sys@1.4.0
|
26 |
|
clap@2.34.0
|
27 |
|
color_quant@1.1.0
|
28 |
|
cpufeatures@0.2.5
|
29 |
|
crc32fast@1.3.2
|
30 |
|
crossbeam-channel@0.5.6
|
31 |
|
crossbeam-deque@0.8.2
|
32 |
|
crossbeam-epoch@0.9.13
|
33 |
|
crossbeam-utils@0.8.14
|
34 |
|
crunchy@0.2.2
|
35 |
|
crypto-common@0.1.6
|
36 |
|
digest@0.10.6
|
37 |
|
either@1.8.1
|
38 |
|
exr@1.5.3
|
39 |
|
fastrand@1.8.0
|
40 |
|
flate2@1.0.25
|
41 |
|
flume@0.10.14
|
42 |
|
futures-core@0.3.26
|
43 |
|
futures-sink@0.3.26
|
44 |
|
generic-array@0.14.6
|
45 |
|
getrandom@0.2.8
|
46 |
|
gif@0.11.4
|
47 |
|
glob@0.3.1
|
48 |
|
half@2.2.1
|
49 |
|
hashbrown@0.12.3
|
50 |
|
heck@0.3.3
|
51 |
|
hermit-abi@0.1.19
|
52 |
|
hermit-abi@0.2.6
|
53 |
|
hex@0.4.3
|
54 |
|
image@0.24.5
|
55 |
|
indexmap@1.9.2
|
56 |
|
instant@0.1.12
|
57 |
|
itoa@1.0.5
|
58 |
|
jpeg-decoder@0.3.0
|
59 |
|
js-sys@0.3.61
|
60 |
|
lazy_static@1.4.0
|
61 |
|
lazycell@1.3.0
|
62 |
|
lebe@0.5.2
|
63 |
|
libc@0.2.139
|
64 |
|
libloading@0.7.4
|
65 |
|
lock_api@0.4.9
|
66 |
|
log@0.4.17
|
67 |
|
memchr@2.5.0
|
68 |
|
memoffset@0.7.1
|
69 |
|
minimal-lexical@0.2.1
|
70 |
|
miniz_oxide@0.6.2
|
71 |
|
nanorand@0.7.0
|
72 |
|
nom@7.1.3
|
73 |
|
num-complex@0.4.3
|
74 |
|
num-integer@0.1.45
|
75 |
|
num-rational@0.4.1
|
76 |
|
num-traits@0.2.15
|
77 |
|
num_cpus@1.15.0
|
78 |
|
once_cell@1.17.0
|
79 |
|
peeking_take_while@0.1.2
|
80 |
|
pin-project@1.0.12
|
81 |
|
pin-project-internal@1.0.12
|
82 |
|
png@0.17.7
|
83 |
|
prettyplease@0.2.4
|
84 |
|
primal-check@0.3.3
|
85 |
|
proc-macro2@1.0.66
|
86 |
|
quote@1.0.26
|
87 |
|
rayon@1.6.1
|
88 |
|
rayon-core@1.10.2
|
89 |
|
redox_syscall@0.2.16
|
90 |
|
regex@1.7.1
|
91 |
|
regex-syntax@0.6.28
|
92 |
|
remove_dir_all@0.5.3
|
93 |
|
rustc-hash@1.1.0
|
94 |
|
rustdct@0.7.1
|
95 |
|
rustfft@6.1.0
|
96 |
|
ryu@1.0.12
|
97 |
|
scoped_threadpool@0.1.9
|
98 |
|
scopeguard@1.1.0
|
99 |
|
serde@1.0.152
|
100 |
|
serde_derive@1.0.152
|
101 |
|
serde_json@1.0.93
|
102 |
|
sha2@0.10.6
|
103 |
|
shlex@1.1.0
|
104 |
|
simd-adler32@0.3.4
|
105 |
|
smallvec@1.10.0
|
106 |
|
spin@0.9.5
|
107 |
|
strength_reduce@0.2.4
|
108 |
|
strsim@0.8.0
|
109 |
|
syn@1.0.107
|
110 |
|
syn@2.0.15
|
111 |
|
tempfile@3.3.0
|
112 |
|
textwrap@0.11.0
|
113 |
|
thiserror@1.0.38
|
114 |
|
thiserror-impl@1.0.38
|
115 |
|
threadpool@1.8.1
|
116 |
|
tiff@0.8.1
|
117 |
|
toml@0.5.11
|
118 |
|
transpose@0.2.2
|
119 |
|
typenum@1.16.0
|
120 |
|
unicode-ident@1.0.6
|
121 |
|
unicode-segmentation@1.10.1
|
122 |
|
unicode-width@0.1.10
|
123 |
|
vec_map@0.8.2
|
124 |
|
version_check@0.9.4
|
125 |
|
wasi@0.11.0+wasi-snapshot-preview1
|
126 |
|
wasm-bindgen@0.2.84
|
127 |
|
wasm-bindgen-backend@0.2.84
|
128 |
|
wasm-bindgen-macro@0.2.84
|
129 |
|
wasm-bindgen-macro-support@0.2.84
|
130 |
|
wasm-bindgen-shared@0.2.84
|
131 |
|
weezl@0.1.7
|
132 |
|
which@4.4.0
|
133 |
|
winapi@0.3.9
|
134 |
|
winapi-i686-pc-windows-gnu@0.4.0
|
135 |
|
winapi-x86_64-pc-windows-gnu@0.4.0
|
136 |
|
zune-inflate@0.2.42
|
137 |
|
"
|
|
11 |
adler-1.0.2
|
|
12 |
aho-corasick-0.7.20
|
|
13 |
ansi_term-0.12.1
|
|
14 |
atty-0.2.14
|
|
15 |
autocfg-1.1.0
|
|
16 |
base64-0.21.0
|
|
17 |
bindgen-0.59.2
|
|
18 |
bit_field-0.10.2
|
|
19 |
bitflags-1.3.2
|
|
20 |
block-buffer-0.10.4
|
|
21 |
bumpalo-3.12.0
|
|
22 |
bytemuck-1.13.1
|
|
23 |
byteorder-1.4.3
|
|
24 |
cbindgen-0.24.3
|
|
25 |
cc-1.0.79
|
|
26 |
cexpr-0.6.0
|
|
27 |
cfg-if-1.0.0
|
|
28 |
clang-sys-1.6.1
|
|
29 |
clap-2.34.0
|
|
30 |
clap-3.2.23
|
|
31 |
clap_lex-0.2.4
|
|
32 |
color_quant-1.1.0
|
|
33 |
cpufeatures-0.2.6
|
|
34 |
crc32fast-1.3.2
|
|
35 |
crossbeam-channel-0.5.8
|
|
36 |
crossbeam-deque-0.8.3
|
|
37 |
crossbeam-epoch-0.9.14
|
|
38 |
crossbeam-utils-0.8.15
|
|
39 |
crunchy-0.2.2
|
|
40 |
crypto-common-0.1.6
|
|
41 |
digest-0.10.6
|
|
42 |
either-1.8.1
|
|
43 |
env_logger-0.9.3
|
|
44 |
errno-0.3.1
|
|
45 |
errno-dragonfly-0.1.2
|
|
46 |
exr-1.6.3
|
|
47 |
fastrand-1.9.0
|
|
48 |
fdeflate-0.3.0
|
|
49 |
flate2-1.0.25
|
|
50 |
flume-0.10.14
|
|
51 |
futures-core-0.3.28
|
|
52 |
futures-sink-0.3.28
|
|
53 |
generic-array-0.14.7
|
|
54 |
getrandom-0.2.9
|
|
55 |
gif-0.12.0
|
|
56 |
glob-0.3.1
|
|
57 |
half-2.2.1
|
|
58 |
hashbrown-0.12.3
|
|
59 |
heck-0.4.1
|
|
60 |
hermit-abi-0.1.19
|
|
61 |
hermit-abi-0.2.6
|
|
62 |
hermit-abi-0.3.1
|
|
63 |
hex-0.4.3
|
|
64 |
humantime-2.1.0
|
|
65 |
image-0.24.6
|
|
66 |
indexmap-1.9.3
|
|
67 |
instant-0.1.12
|
|
68 |
io-lifetimes-1.0.10
|
|
69 |
itoa-1.0.6
|
|
70 |
jpeg-decoder-0.3.0
|
|
71 |
js-sys-0.3.61
|
|
72 |
lazy_static-1.4.0
|
|
73 |
lazycell-1.3.0
|
|
74 |
lebe-0.5.2
|
|
75 |
libc-0.2.141
|
|
76 |
libloading-0.7.4
|
|
77 |
linux-raw-sys-0.3.1
|
|
78 |
lock_api-0.4.9
|
|
79 |
log-0.4.17
|
|
80 |
memchr-2.5.0
|
|
81 |
memoffset-0.8.0
|
|
82 |
minimal-lexical-0.2.1
|
|
83 |
miniz_oxide-0.6.2
|
|
84 |
miniz_oxide-0.7.1
|
|
85 |
nanorand-0.7.0
|
|
86 |
nom-7.1.3
|
|
87 |
num-complex-0.4.3
|
|
88 |
num-integer-0.1.45
|
|
89 |
num-rational-0.4.1
|
|
90 |
num-traits-0.2.15
|
|
91 |
num_cpus-1.15.0
|
|
92 |
once_cell-1.17.1
|
|
93 |
os_str_bytes-6.5.0
|
|
94 |
peeking_take_while-0.1.2
|
|
95 |
pin-project-1.0.12
|
|
96 |
pin-project-internal-1.0.12
|
|
97 |
png-0.17.8
|
|
98 |
primal-check-0.3.3
|
|
99 |
proc-macro2-1.0.56
|
|
100 |
qoi-0.4.1
|
|
101 |
quote-1.0.26
|
|
102 |
rayon-1.7.0
|
|
103 |
rayon-core-1.11.0
|
|
104 |
redox_syscall-0.3.5
|
|
105 |
regex-1.7.3
|
|
106 |
regex-syntax-0.6.29
|
|
107 |
rustc-hash-1.1.0
|
|
108 |
rustdct-0.7.1
|
|
109 |
rustfft-6.1.0
|
|
110 |
rustix-0.37.11
|
|
111 |
ryu-1.0.13
|
|
112 |
scopeguard-1.1.0
|
|
113 |
serde-1.0.160
|
|
114 |
serde_derive-1.0.160
|
|
115 |
serde_json-1.0.96
|
|
116 |
sha1-0.10.5
|
|
117 |
sha2-0.10.6
|
|
118 |
shlex-1.1.0
|
|
119 |
simd-adler32-0.3.5
|
|
120 |
smallvec-1.10.0
|
|
121 |
spin-0.9.8
|
|
122 |
strength_reduce-0.2.4
|
|
123 |
strsim-0.8.0
|
|
124 |
strsim-0.10.0
|
|
125 |
syn-1.0.109
|
|
126 |
syn-2.0.15
|
|
127 |
tempfile-3.5.0
|
|
128 |
termcolor-1.2.0
|
|
129 |
textwrap-0.11.0
|
|
130 |
textwrap-0.16.0
|
|
131 |
thiserror-1.0.40
|
|
132 |
thiserror-impl-1.0.40
|
|
133 |
tiff-0.8.1
|
|
134 |
toml-0.5.11
|
|
135 |
transpose-0.2.2
|
|
136 |
typenum-1.16.0
|
|
137 |
unicode-ident-1.0.8
|
|
138 |
unicode-segmentation-1.10.1
|
|
139 |
unicode-width-0.1.10
|
|
140 |
vec_map-0.8.2
|
|
141 |
version_check-0.9.4
|
|
142 |
wasi-0.11.0+wasi-snapshot-preview1
|
|
143 |
wasm-bindgen-0.2.84
|
|
144 |
wasm-bindgen-backend-0.2.84
|
|
145 |
wasm-bindgen-macro-0.2.84
|
|
146 |
wasm-bindgen-macro-support-0.2.84
|
|
147 |
wasm-bindgen-shared-0.2.84
|
|
148 |
weezl-0.1.7
|
|
149 |
which-4.4.0
|
|
150 |
winapi-0.3.9
|
|
151 |
winapi-i686-pc-windows-gnu-0.4.0
|
|
152 |
winapi-util-0.1.5
|
|
153 |
winapi-x86_64-pc-windows-gnu-0.4.0
|
|
154 |
windows-sys-0.45.0
|
|
155 |
windows-sys-0.48.0
|
|
156 |
windows-targets-0.42.2
|
|
157 |
windows-targets-0.48.0
|
|
158 |
windows_aarch64_gnullvm-0.42.2
|
|
159 |
windows_aarch64_gnullvm-0.48.0
|
|
160 |
windows_aarch64_msvc-0.42.2
|
|
161 |
windows_aarch64_msvc-0.48.0
|
|
162 |
windows_i686_gnu-0.42.2
|
|
163 |
windows_i686_gnu-0.48.0
|
|
164 |
windows_i686_msvc-0.42.2
|
|
165 |
windows_i686_msvc-0.48.0
|
|
166 |
windows_x86_64_gnu-0.42.2
|
|
167 |
windows_x86_64_gnu-0.48.0
|
|
168 |
windows_x86_64_gnullvm-0.42.2
|
|
169 |
windows_x86_64_gnullvm-0.48.0
|
|
170 |
windows_x86_64_msvc-0.42.2
|
|
171 |
windows_x86_64_msvc-0.48.0
|
|
172 |
zune-inflate-0.2.53"
|
138 |
173 |
|
139 |
174 |
inherit cargo cmake flag-o-matic llvm python-any-r1 systemd tmpfiles
|
140 |
175 |
|
... | ... | |
143 |
178 |
DESCRIPTION="Clam Anti-Virus Scanner"
|
144 |
179 |
HOMEPAGE="https://www.clamav.net/"
|
145 |
180 |
SRC_URI="https://github.com/Cisco-Talos/clamav/archive/refs/tags/${MY_P}.tar.gz
|
146 |
|
${CARGO_CRATE_URIS}"
|
|
181 |
$(cargo_crate_uris ${CRATES})"
|
147 |
182 |
S=${WORKDIR}/clamav-${MY_P}
|
148 |
183 |
|
149 |
184 |
LICENSE="Apache-2.0 BSD GPL-2 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB"
|
150 |
|
SLOT="0/lts"
|
|
185 |
# 0/sts (short term support) if not an LTS release
|
|
186 |
SLOT="0/sts"
|
151 |
187 |
if [[ ${PV} != *_rc* ]] ; then
|
152 |
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
|
188 |
KEYWORDS="~alpha amd64 ~arm arm64 ~ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
153 |
189 |
fi
|
154 |
|
|
155 |
|
IUSE="doc clamonacc +clamapp experimental jit libclamav-only milter rar selinux +system-mspack systemd test"
|
|
190 |
IUSE="doc clamonacc +clamapp experimental jit libclamav-only milter rar selinux systemd test"
|
156 |
191 |
|
157 |
192 |
REQUIRED_USE="libclamav-only? ( !clamonacc !clamapp !milter )
|
158 |
193 |
clamonacc? ( clamapp )
|
... | ... | |
164 |
199 |
# Require acct-{user,group}/clamav at build time so that we can set
|
165 |
200 |
# the permissions on /var/lib/clamav in src_install rather than in
|
166 |
201 |
# pkg_postinst; calling "chown" on the live filesystem scares me.
|
167 |
|
COMMON_DEPEND="
|
|
202 |
CDEPEND="
|
168 |
203 |
acct-group/clamav
|
169 |
204 |
acct-user/clamav
|
170 |
205 |
app-arch/bzip2
|
171 |
206 |
dev-libs/json-c:=
|
172 |
207 |
dev-libs/libltdl
|
|
208 |
dev-libs/libmspack
|
173 |
209 |
dev-libs/libpcre2:=
|
174 |
210 |
dev-libs/libxml2
|
175 |
211 |
dev-libs/openssl:=
|
... | ... | |
181 |
217 |
jit? ( <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):= )
|
182 |
218 |
milter? ( mail-filter/libmilter:= )
|
183 |
219 |
rar? ( app-arch/unrar )
|
184 |
|
system-mspack? ( dev-libs/libmspack )
|
185 |
220 |
test? ( dev-python/pytest )
|
186 |
221 |
"
|
187 |
222 |
|
188 |
|
# rust-bin < 1.71 has an executable stack
|
189 |
|
# which is not supported on selinux #911589
|
190 |
223 |
BDEPEND="
|
191 |
224 |
virtual/pkgconfig
|
192 |
|
>=virtual/rust-1.71
|
|
225 |
>=virtual/rust-1.61
|
193 |
226 |
doc? ( app-doc/doxygen )
|
194 |
227 |
test? (
|
195 |
228 |
${PYTHON_DEPS}
|
... | ... | |
197 |
230 |
)
|
198 |
231 |
"
|
199 |
232 |
|
200 |
|
DEPEND="${COMMON_DEPEND}
|
|
233 |
DEPEND="${CDEPEND}
|
201 |
234 |
test? ( dev-libs/check )"
|
202 |
235 |
|
203 |
|
RDEPEND="${COMMON_DEPEND}
|
|
236 |
RDEPEND="${CDEPEND}
|
204 |
237 |
selinux? ( sec-policy/selinux-clamav )"
|
205 |
238 |
|
206 |
239 |
python_check_deps() {
|
... | ... | |
212 |
245 |
use test && python-any-r1_pkg_setup
|
213 |
246 |
}
|
214 |
247 |
|
|
248 |
#PATCHES=(
|
|
249 |
#)
|
|
250 |
|
215 |
251 |
src_configure() {
|
216 |
252 |
use elibc_musl && append-ldflags -lfts
|
217 |
253 |
use ppc64 && append-flags -mminimal-toc
|
... | ... | |
226 |
262 |
-DENABLE_CLAMONACC=$(usex clamonacc ON OFF)
|
227 |
263 |
-DENABLE_DOXYGEN=$(usex doc)
|
228 |
264 |
-DENABLE_EXPERIMENTAL=$(usex experimental ON OFF)
|
229 |
|
-DENABLE_EXTERNAL_MSPACK=$(usex system-mspack ON OFF)
|
|
265 |
-DENABLE_EXTERNAL_MSPACK=ON
|
230 |
266 |
-DENABLE_JSON_SHARED=ON
|
231 |
267 |
-DENABLE_MAN_PAGES=ON
|
232 |
268 |
-DENABLE_MILTER=$(usex milter ON OFF)
|
... | ... | |
272 |
308 |
use milter && \
|
273 |
309 |
newinitd "${FILESDIR}/clamav-milter.initd" clamav-milter
|
274 |
310 |
|
|
311 |
rm -rf "${ED}"/var/lib/clamav || die
|
|
312 |
|
275 |
313 |
if ! use libclamav-only ; then
|
276 |
314 |
if use systemd ; then
|
277 |
315 |
# The tmpfiles entry is behind USE=systemd because the
|
... | ... | |
332 |
370 |
fi
|
333 |
371 |
done
|
334 |
372 |
|
335 |
|
# These both need to be writable by the clamav user
|
|
373 |
# These both need to be writable by the clamav user.
|
336 |
374 |
# TODO: use syslog by default; that's what it's for.
|
337 |
375 |
diropts -o clamav -g clamav
|
338 |
376 |
keepdir /var/lib/clamav
|