1SUMMARY="An open source antivirus engine"
2DESCRIPTION="ClamAV is an open source antivirus engine for detecting  \
3trojans, viruses, malware & other malicious threats."
4HOMEPAGE="https://www.clamav.net"
5COPYRIGHT="2001-2007 Tomasz Kojm
6	2007-2023 Cisco Systems"
7PACKAGER="Luca D'Amico <damico.luca91@live.it>"
8LICENSE="GNU GPL v2"
9REVISION="1"
10SOURCE_URI="https://github.com/Cisco-Talos/clamav/archive/refs/tags/clamav-$portVersion.tar.gz"
11CHECKSUM_SHA256="efe7e234fe29a96bf4da23336e38ea2989ed0be162342993e99a11901524f43f"
12SOURCE_DIR="clamav-clamav-$portVersion"
13PATCHES="clamav-$portVersion.patchset"
14
15ARCHITECTURES="all !x86_gcc2"
16SECONDARY_ARCHITECTURES="x86"
17
18GLOBAL_WRITABLE_FILES="
19	settings/clamav/clamd.conf keep-old
20	settings/clamav/freshclam.conf keep-old
21	"
22
23PROVIDES="
24	clamav$secondaryArchSuffix = $portVersion
25	cmd:clambc$secondaryArchSuffix = $portVersion
26	cmd:clamconf$secondaryArchSuffix = $portVersion
27	cmd:clamd$secondaryArchSuffix = $portVersion
28	cmd:clamdscan$secondaryArchSuffix = $portVersion
29	cmd:clamdtop$secondaryArchSuffix = $portVersion
30	cmd:clamscan$secondaryArchSuffix = $portVersion
31	cmd:clamsubmit$secondaryArchSuffix = $portVersion
32	cmd:freshclam$secondaryArchSuffix = $portVersion
33	cmd:sigtool$secondaryArchSuffix = $portVersion
34	lib:libclamav$secondaryArchSuffix = $portVersion
35	lib:libclamunrar$secondaryArchSuffix = $portVersion
36	lib:libclamunrar_iface$secondaryArchSuffix = $portVersion
37	lib:libfreshclam$secondaryArchSuffix = $portVersion
38	"
39REQUIRES="
40	haiku$secondaryArchSuffix
41	lib:libbz2$secondaryArchSuffix
42	lib:libcrypto$secondaryArchSuffix
43	lib:libcurl$secondaryArchSuffix
44	lib:libiconv$secondaryArchSuffix
45	lib:libjson_c$secondaryArchSuffix
46	lib:libmspack$secondaryArchSuffix
47	lib:libncurses$secondaryArchSuffix
48	lib:libpcre2_8$secondaryArchSuffix
49	lib:libssl$secondaryArchSuffix
50	lib:libxml2$secondaryArchSuffix
51	lib:libz$secondaryArchSuffix
52	"
53
54PROVIDES_devel="
55	clamav${secondaryArchSuffix}_devel = $portVersion
56	cmd:clamav_config$secondaryArchSuffix = $portVersion
57	devel:libclamav$secondaryArchSuffix = $portVersion
58	devel:libclamunrar$secondaryArchSuffix = $portVersion
59	devel:libclamunrar_iface$secondaryArchSuffix = $portVersion
60	devel:libfreshclam$secondaryArchSuffix = $portVersion
61	"
62REQUIRES_devel="
63	clamav$secondaryArchSuffix == $portVersion base
64	"
65
66BUILD_REQUIRES="
67	haiku${secondaryArchSuffix}_devel
68	devel:libbz2$secondaryArchSuffix
69	devel:libcheck$secondaryArchSuffix
70	devel:libcrypto$secondaryArchSuffix
71	devel:libcurl$secondaryArchSuffix
72	devel:libiconv$secondaryArchSuffix
73	devel:libjson_c$secondaryArchSuffix
74	devel:libmspack$secondaryArchSuffix
75	devel:libncurses$secondaryArchSuffix
76	devel:libpcre2_8$secondaryArchSuffix
77	devel:libpthread_stubs$secondaryArchSuffix
78	devel:libssl$secondaryArchSuffix
79	devel:libxml2$secondaryArchSuffix
80	devel:libz$secondaryArchSuffix
81	"
82BUILD_PREREQUIRES="
83	cmd:cargo$secondaryArchSuffix >= 0.70.0
84	cmd:cmake
85	cmd:gcc$secondaryArchSuffix
86	cmd:make
87	cmd:python3
88	"
89
90BUILD()
91{
92	cmake -Bbuild -S. -DCMAKE_BUILD_TYPE=Release \
93		$cmakeDirArgs \
94		-DENABLE_MILTER=OFF \
95		-DENABLE_EXTERNAL_MSPACK=ON \
96		-DAPP_CONFIG_DIRECTORY=$settingsDir/clamav \
97		-DDATABASE_DIRECTORY=$settingsDir/clamav/db
98	make -C build
99}
100
101INSTALL()
102{
103	make -C build install
104
105	prepareInstalledDevelLibs libclamav \
106		libclamunrar \
107		libclamunrar_iface \
108		libfreshclam
109	fixPkgconfig
110
111	packageEntries devel "$developDir" \
112		$binDir/clamav-config
113
114	# install conf files
115	sed -i -e "/# Comment or remove the line below./d"  \
116		-e "/Example/d" \
117		-e "s|#DatabaseDirectory /var/lib/clamav|DatabaseDirectory /boot/system/settings/clamav/db|" \
118		$settingsDir/clamav/clamd.conf.sample
119
120	sed -i -e "/# Comment or remove the line below./d"  \
121		-e "/Example/d" \
122		-e "s|#DatabaseDirectory /var/lib/clamav|DatabaseDirectory /boot/system/settings/clamav/db|" \
123		-e "s|#DatabaseOwner clamav|DatabaseOwner user|" \
124		$settingsDir/clamav/freshclam.conf.sample
125
126	mv $settingsDir/clamav/clamd.conf.sample $settingsDir/clamav/clamd.conf
127	mv $settingsDir/clamav/freshclam.conf.sample $settingsDir/clamav/freshclam.conf
128}
129