blob: 25123dce030abefdd75682ed09520895afbc9c15 [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"
5LICENSE = "LGPL-2.1"
6
7DEPENDS = "glibc llvm libtool db openssl zlib curl libxml2 bison pcre2 json-c libcheck"
8
9LIC_FILES_CHKSUM = "file://COPYING.txt;beginline=2;endline=3;md5=f7029fbbc5898b273d5902896f7bbe17"
10
Patrick Williams213cb262021-08-07 19:21:33 -050011# July 27th
12SRCREV = "c389dfa4c3af92b006ada4f7595bbc3e6df3f356"
Andrew Geisslerf1e44062021-04-15 15:52:46 -050013
Patrick Williams213cb262021-08-07 19:21:33 -050014SRC_URI = "git://github.com/vrtadmin/clamav-devel;branch=rel/0.104 \
Andrew Geisslerf1e44062021-04-15 15:52:46 -050015 file://clamd.conf \
16 file://freshclam.conf \
17 file://volatiles.03_clamav \
18 file://tmpfiles.clamav \
Andrew Geisslerf1e44062021-04-15 15:52:46 -050019 file://headers_fixup.patch \
20 file://oe_cmake_fixup.patch \
William A. Kennington IIIee32beb2021-06-02 12:48:35 -070021 file://fix_systemd_socket.patch \
Andrew Geisslerf1e44062021-04-15 15:52:46 -050022"
23S = "${WORKDIR}/git"
24
25LEAD_SONAME = "libclamav.so"
26SO_VER = "9.6.0"
27
28BINCONFIG = "${bindir}/clamav-config"
29
30inherit cmake chrpath pkgconfig useradd systemd multilib_header multilib_script
31
William A. Kennington IIIee32beb2021-06-02 12:48:35 -070032UPSTREAM_CHECK_COMMITS = "1"
33
Andrew Geisslerf1e44062021-04-15 15:52:46 -050034CLAMAV_UID ?= "clamav"
35CLAMAV_GID ?= "clamav"
36
37MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/clamav-config"
38
39EXTRA_OECMAKE = " -DCMAKE_BUILD_TYPE=Release -DOPTIMIZE=ON -DENABLE_JSON_SHARED=OFF \
40 -DCLAMAV_GROUP=${CLAMAV_GID} -DCLAMAV_USER=${CLAMAV_UID} \
41 -DENABLE_TESTS=OFF -DBUILD_SHARED_LIBS=ON \
42 -DDISABLE_MPOOL=ON -DENABLE_FRESHCLAM_DNS_FIX=ON \
43 "
44
45PACKAGECONFIG ?= " clamonacc \
46 ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd", "", d)}"
47
48PACKAGECONFIG[milter] = "-DENABLE_MILTER=ON ,-DENABLE_MILTER=OFF, curl, curl"
49PACKAGECONFIG[clamonacc] = "-DENABLE_CLAMONACC=ON ,-DENABLE_CLAMONACC=OFF,"
50PACKAGECONFIG[unrar] = "-DENABLE_UNRAR=ON ,-DENABLE_UNRAR=OFF,"
51PACKAGECONFIG[systemd] = "-DENABLE_SYSTEMD=ON -DSYSTEMD_UNIT_DIR=${systemd_system_unitdir}, -DENABLE_SYSTEMD=OFF, systemd"
52
53export OECMAKE_C_FLAGS += " -I${STAGING_INCDIR} -L ${RECIPE_SYSROOT}${nonarch_libdir} -L${STAGING_LIBDIR} -lpthread"
54
Patrick Williams213cb262021-08-07 19:21:33 -050055do_install:append () {
Andrew Geisslerf1e44062021-04-15 15:52:46 -050056 install -d ${D}/${sysconfdir}
Patrick Williams93c203f2021-10-06 16:15:23 -050057 install -d -o ${CLAMAV_UID} -g ${CLAMAV_GID} ${D}/${localstatedir}/lib/clamav
Andrew Geisslerf1e44062021-04-15 15:52:46 -050058 install -d ${D}${sysconfdir}/clamav ${D}${sysconfdir}/default/volatiles
59
60 install -m 644 ${WORKDIR}/clamd.conf ${D}/${prefix}/${sysconfdir}
61 install -m 644 ${WORKDIR}/freshclam.conf ${D}/${prefix}/${sysconfdir}
62 install -m 0644 ${WORKDIR}/volatiles.03_clamav ${D}${sysconfdir}/default/volatiles/03_clamav
63 sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/libclamav.pc
64 rm ${D}/${libdir}/libclamav.so
65 if [ "${INSTALL_CLAMAV_CVD}" = "1" ]; then
66 install -m 666 ${S}/clamav_db/* ${D}/${localstatedir}/lib/clamav/.
67 fi
68
69 rm ${D}/${libdir}/libfreshclam.so
70 rm ${D}/${libdir}/libmspack.so
71
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.* \
126 ${includedir}/*.h ${docdir}/libclamav* "
127
Patrick Williams213cb262021-08-07 19:21:33 -0500128FILES:${PN}-staticdev = "${libdir}/*.a"
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500129
Patrick Williams213cb262021-08-07 19:21:33 -0500130FILES:${PN}-libclamav = "${libdir}/libclamav.so* ${libdir}/libclammspack.so* \
William A. Kennington IIIee32beb2021-06-02 12:48:35 -0700131 ${libdir}/libfreshclam.so* ${docdir}/libclamav/* \
132 ${libdir}/libmspack* "
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500133
Patrick Williams213cb262021-08-07 19:21:33 -0500134FILES:${PN}-doc = "${mandir}/man/* \
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500135 ${datadir}/man/* \
136 ${docdir}/* "
137
138USERADD_PACKAGES = "${PN}"
Patrick Williams213cb262021-08-07 19:21:33 -0500139GROUPADD_PARAM:${PN} = "--system ${CLAMAV_UID}"
140USERADD_PARAM:${PN} = "--system -g ${CLAMAV_GID} --home-dir \
William A. Kennington IIIee32beb2021-06-02 12:48:35 -0700141 ${localstatedir}/lib/${BPN} \
142 --no-create-home --shell /sbin/nologin ${BPN}"
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500143
Patrick Williams213cb262021-08-07 19:21:33 -0500144RPROVIDES:${PN} += "${PN}-systemd"
145RREPLACES:${PN} += "${PN}-systemd"
146RCONFLICTS:${PN} += "${PN}-systemd"
William A. Kennington IIIee32beb2021-06-02 12:48:35 -0700147SYSTEMD_PACKAGES = "${PN}-daemon ${PN}-freshclam"
Patrick Williams213cb262021-08-07 19:21:33 -0500148SYSTEMD_SERVICE:${PN}-daemon = "clamav-daemon.service"
149SYSTEMD_SERVICE:${PN}-freshclam = "clamav-freshclam.service"
Andrew Geisslerf1e44062021-04-15 15:52:46 -0500150
Patrick Williams93c203f2021-10-06 16:15:23 -0500151RDEPENDS:${PN} = "openssl ncurses-libncurses libxml2 libbz2 ncurses-libtinfo curl libpcre2 clamav-libclamav"
152RRECOMMENDS:${PN} = "clamav-freshclam"
153RDEPENDS:${PN}-freshclam = "clamav"
154RDEPENDS:${PN}-daemon = "clamav clamav-freshclam"