blob: 102f26790a655f65a027bed30fb43b9c8820940c [file] [log] [blame]
Andrew Geisslerf1e44062021-04-15 15:52:46 -05001SUMMARY = "ClamAV anti-virus utility for Unix - command-line interface"
2DESCRIPTION = "ClamAV is an open source antivirus engine for detecting trojans, viruses, malware & other malicious threats."
3HOMEPAGE = "http://www.clamav.net/index.html"
4SECTION = "security"
Patrick Williamsde0582f2022-04-08 10:23:27 -05005LICENSE = "LGPL-2.1-only"
Andrew Geisslerf1e44062021-04-15 15:52:46 -05006
7DEPENDS = "glibc llvm libtool db openssl zlib curl libxml2 bison pcre2 json-c libcheck"
8
Patrick Williamsde0582f2022-04-08 10:23:27 -05009COMPATIBLE_HOST:libc-musl:class-target = "null"
10
Andrew Geisslerf1e44062021-04-15 15:52:46 -050011LIC_FILES_CHKSUM = "file://COPYING.txt;beginline=2;endline=3;md5=f7029fbbc5898b273d5902896f7bbe17"
12
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050013# July 30th, 2022
14SRCREV = "563ba93052f3b7b46fb8725a65ee6299a9c332cf"
Andrew Geisslerf1e44062021-04-15 15:52:46 -050015
Patrick Williams2a254922023-08-11 09:48:11 -050016SRC_URI = "git://github.com/Cisco-Talos/clamav;branch=rel/0.104;protocol=https \
Andrew Geisslerf1e44062021-04-15 15:52:46 -050017 file://clamd.conf \
18 file://freshclam.conf \
19 file://volatiles.03_clamav \
20 file://tmpfiles.clamav \
Andrew Geisslerf1e44062021-04-15 15:52:46 -050021 file://headers_fixup.patch \
22 file://oe_cmake_fixup.patch \
23"
24S = "${WORKDIR}/git"
25
26LEAD_SONAME = "libclamav.so"
27SO_VER = "9.6.0"
28
29BINCONFIG = "${bindir}/clamav-config"
30
31inherit cmake chrpath pkgconfig useradd systemd multilib_header multilib_script
32
William A. Kennington IIIee32beb2021-06-02 12:48:35 -070033UPSTREAM_CHECK_COMMITS = "1"
34
Andrew Geisslerf1e44062021-04-15 15:52:46 -050035CLAMAV_UID ?= "clamav"
36CLAMAV_GID ?= "clamav"
37
38MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/clamav-config"
39
40EXTRA_OECMAKE = " -DCMAKE_BUILD_TYPE=Release -DOPTIMIZE=ON -DENABLE_JSON_SHARED=OFF \
41 -DCLAMAV_GROUP=${CLAMAV_GID} -DCLAMAV_USER=${CLAMAV_UID} \
42 -DENABLE_TESTS=OFF -DBUILD_SHARED_LIBS=ON \
43 -DDISABLE_MPOOL=ON -DENABLE_FRESHCLAM_DNS_FIX=ON \
44 "
45
46PACKAGECONFIG ?= " clamonacc \
47 ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd", "", d)}"
48
49PACKAGECONFIG[milter] = "-DENABLE_MILTER=ON ,-DENABLE_MILTER=OFF, curl, curl"
50PACKAGECONFIG[clamonacc] = "-DENABLE_CLAMONACC=ON ,-DENABLE_CLAMONACC=OFF,"
51PACKAGECONFIG[unrar] = "-DENABLE_UNRAR=ON ,-DENABLE_UNRAR=OFF,"
52PACKAGECONFIG[systemd] = "-DENABLE_SYSTEMD=ON -DSYSTEMD_UNIT_DIR=${systemd_system_unitdir}, -DENABLE_SYSTEMD=OFF, systemd"
53
54export OECMAKE_C_FLAGS += " -I${STAGING_INCDIR} -L ${RECIPE_SYSROOT}${nonarch_libdir} -L${STAGING_LIBDIR} -lpthread"
55
Patrick Williams213cb262021-08-07 19:21:33 -050056do_install:append () {
Andrew Geisslerf1e44062021-04-15 15:52:46 -050057 install -d ${D}/${sysconfdir}
Andrew Geissler615f2f12022-07-15 14:00:58 -050058 install -d -o ${PN} -g ${CLAMAV_GID} ${D}/${localstatedir}/lib/clamav
Andrew Geisslerf1e44062021-04-15 15:52:46 -050059 install -d ${D}${sysconfdir}/clamav ${D}${sysconfdir}/default/volatiles
60
61 install -m 644 ${WORKDIR}/clamd.conf ${D}/${prefix}/${sysconfdir}
62 install -m 644 ${WORKDIR}/freshclam.conf ${D}/${prefix}/${sysconfdir}
63 install -m 0644 ${WORKDIR}/volatiles.03_clamav ${D}${sysconfdir}/default/volatiles/03_clamav
64 sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/libclamav.pc
65 rm ${D}/${libdir}/libclamav.so
66 if [ "${INSTALL_CLAMAV_CVD}" = "1" ]; then
67 install -m 666 ${S}/clamav_db/* ${D}/${localstatedir}/lib/clamav/.
68 fi
69
70 rm ${D}/${libdir}/libfreshclam.so
Andrew Geisslerf1e44062021-04-15 15:52:46 -050071
72 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
Andrew Geisslerf1e44062021-04-15 15:52:46 -050073 install -d ${D}${sysconfdir}/tmpfiles.d
74 install -m 0644 ${WORKDIR}/tmpfiles.clamav ${D}${sysconfdir}/tmpfiles.d/clamav.conf
75 fi
76 oe_multilib_header clamav-types.h
77}
78
Patrick Williams213cb262021-08-07 19:21:33 -050079pkg_postinst:${PN} () {
William A. Kennington IIIee32beb2021-06-02 12:48:35 -070080 if [ -z "$D" ]; then
81 if command -v systemd-tmpfiles >/dev/null; then
82 systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/clamav.conf
83 elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
84 ${sysconfdir}/init.d/populate-volatile.sh update
85 fi
Andrew Geisslerf1e44062021-04-15 15:52:46 -050086 fi
Andrew Geisslerf1e44062021-04-15 15:52:46 -050087}
88
William A. Kennington IIIee32beb2021-06-02 12:48:35 -070089PACKAGES += "${PN}-daemon ${PN}-clamdscan ${PN}-freshclam ${PN}-libclamav"
Andrew Geisslerf1e44062021-04-15 15:52:46 -050090
Patrick Williams213cb262021-08-07 19:21:33 -050091FILES:${PN} = "${bindir}/clambc ${bindir}/clamscan ${bindir}/clamsubmit ${sbindir}/clamonacc \
Andrew Geisslerf1e44062021-04-15 15:52:46 -050092 ${bindir}/*sigtool ${mandir}/man1/clambc* ${mandir}/man1/clamscan* \
93 ${mandir}/man1/sigtool* ${mandir}/man1/clambsubmit* \
William A. Kennington IIIee32beb2021-06-02 12:48:35 -070094 ${docdir}/clamav/*"
Andrew Geisslerf1e44062021-04-15 15:52:46 -050095
Patrick Williams213cb262021-08-07 19:21:33 -050096FILES:${PN}-clamdscan = " ${bindir}/clamdscan \
Andrew Geisslerf1e44062021-04-15 15:52:46 -050097 ${docdir}/clamdscan/* \
98 ${mandir}/man1/clamdscan* \
99 "
100
Patrick Williams213cb262021-08-07 19:21:33 -0500101FILES:${PN}-daemon = "${bindir}/clamconf ${bindir}/clamdtop ${sbindir}/clamd \
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500102 ${mandir}/man1/clamconf* ${mandir}/man1/clamdtop* \
103 ${mandir}/man5/clamd* ${mandir}/man8/clamd* \
104 ${sysconfdir}/clamd.conf* \
105 /usr/etc/clamd.conf* \
William A. Kennington IIIee32beb2021-06-02 12:48:35 -0700106 ${systemd_system_unitdir}/clamav-daemon/* \
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500107 ${docdir}/clamav-daemon/* ${sysconfdir}/clamav-daemon \
108 ${sysconfdir}/logcheck/ignore.d.server/clamav-daemon \
William A. Kennington IIIee32beb2021-06-02 12:48:35 -0700109 ${systemd_system_unitdir}/clamav-daemon.service \
110 ${systemd_system_unitdir}/clamav-clamonacc.service \
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500111 "
112
Patrick Williams213cb262021-08-07 19:21:33 -0500113FILES:${PN}-freshclam = "${bindir}/freshclam \
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500114 ${sysconfdir}/freshclam.conf* \
115 /usr/etc/freshclam.conf* \
116 ${sysconfdir}/clamav ${sysconfdir}/default/volatiles \
117 ${sysconfdir}/tmpfiles.d/*.conf \
118 ${localstatedir}/lib/clamav \
119 ${docdir}/${PN}-freshclam ${mandir}/man1/freshclam.* \
120 ${mandir}/man5/freshclam.conf.* \
William A. Kennington IIIee32beb2021-06-02 12:48:35 -0700121 ${systemd_system_unitdir}/clamav-freshclam.service"
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500122
Patrick Williams213cb262021-08-07 19:21:33 -0500123FILES:${PN}-dev = " ${bindir}/clamav-config ${libdir}/*.la \
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500124 ${libdir}/pkgconfig/*.pc \
125 ${mandir}/man1/clamav-config.* \
Patrick Williamsdb4c27e2022-08-05 08:10:29 -0500126 ${includedir}/*.h ${docdir}/libclamav* \
127 ${libdir}/libmspack.so"
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500128
Patrick Williams213cb262021-08-07 19:21:33 -0500129FILES:${PN}-staticdev = "${libdir}/*.a"
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500130
Patrick Williams213cb262021-08-07 19:21:33 -0500131FILES:${PN}-libclamav = "${libdir}/libclamav.so* ${libdir}/libclammspack.so* \
William A. Kennington IIIee32beb2021-06-02 12:48:35 -0700132 ${libdir}/libfreshclam.so* ${docdir}/libclamav/* \
133 ${libdir}/libmspack* "
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500134
Patrick Williams213cb262021-08-07 19:21:33 -0500135FILES:${PN}-doc = "${mandir}/man/* \
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500136 ${datadir}/man/* \
137 ${docdir}/* "
138
Patrick Williams53961c22022-01-20 11:06:23 -0600139USERADD_PACKAGES = "${PN}-freshclam "
140GROUPADD_PARAM:${PN}-freshclam = "--system ${CLAMAV_UID}"
141USERADD_PARAM:${PN}-freshclam = "--system -g ${CLAMAV_GID} --home-dir \
William A. Kennington IIIee32beb2021-06-02 12:48:35 -0700142 ${localstatedir}/lib/${BPN} \
Patrick Williams53961c22022-01-20 11:06:23 -0600143 --no-create-home --shell /sbin/nologin ${PN}"
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500144
Patrick Williams213cb262021-08-07 19:21:33 -0500145RPROVIDES:${PN} += "${PN}-systemd"
146RREPLACES:${PN} += "${PN}-systemd"
147RCONFLICTS:${PN} += "${PN}-systemd"
William A. Kennington IIIee32beb2021-06-02 12:48:35 -0700148SYSTEMD_PACKAGES = "${PN}-daemon ${PN}-freshclam"
Patrick Williams213cb262021-08-07 19:21:33 -0500149SYSTEMD_SERVICE:${PN}-daemon = "clamav-daemon.service"
150SYSTEMD_SERVICE:${PN}-freshclam = "clamav-freshclam.service"
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500151
Patrick Williamsdb4c27e2022-08-05 08:10:29 -0500152INSANE_SKIP:${PN}-libclamav += "dev-so"
153
Patrick Williams93c203f2021-10-06 16:15:23 -0500154RDEPENDS:${PN} = "openssl ncurses-libncurses libxml2 libbz2 ncurses-libtinfo curl libpcre2 clamav-libclamav"
155RRECOMMENDS:${PN} = "clamav-freshclam"
156RDEPENDS:${PN}-freshclam = "clamav"
157RDEPENDS:${PN}-daemon = "clamav clamav-freshclam"