# # spec file for package clamav # # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: clamav BuildRequires: ncurses-devel BuildRequires: sed BuildRequires: sendmail-devel %define llvm --disable-llvm BuildRequires: bc BuildRequires: pkgconfig BuildRequires: zlib-devel %ifarch %ix86 x86_64 %define llvm --enable-llvm # Needed for compiling LLVM. BuildRequires: gcc-c++ %endif BuildRequires: check-devel BuildRequires: libbz2-devel BuildRequires: libopenssl-devel BuildRequires: libxml2-devel BuildRequires: pcre-devel BuildRequires: pwdutils BuildRequires: python-devel %define clamav_check --enable-check Summary: Antivirus Toolkit License: GPL-2.0 Group: Productivity/Security Version: 0.99.2 Release: 0 Url: http://www.clamav.net Obsoletes: clamav-db < 0.88.3 Requires(pre): %_sbindir/groupadd %_sbindir/useradd %_sbindir/usermod Requires(pre): /usr/bin/awk /bin/sed /bin/tar Source0: http://www.clamav.net/downloads/production/%{name}-%{version}.tar.gz Source11: clamav.keyring Source4: clamav-rpmlintrc Source6: clamav-tmpfiles.conf Source7: service.clamd Source8: service.freshclam Source9: service.clamav-milter Patch1: clamav-conf.patch Patch3: clamav-gcc47.patch Patch4: clamav-disable-timestamps.patch BuildRequires: systemd BuildRequires: systemd-rpm-macros %systemd_requires %description ClamAV is an antivirus engine designed for detecting trojans, viruses, malware and other malicious threats. It is the de-facto standard for mail gateway scanning. It provides a multi-threaded scanning daemon, command line utilities for on-demand file scanning, and a tool for automatic signature updates. The core ClamAV library provides numerous file format detection mechanisms, file unpacking support, archive support, and multiple signature languages for detecting threats. %prep %setup -q %patch1 -p1 %patch3 -p1 %patch4 -p1 %build CFLAGS="-fstack-protector" CXXFLAGS="-fstack-protector" export CFLAGS="%optflags $CFLAGS -fPIE -fno-strict-aliasing" export CXXFLAGS="%optflags $CXXFLAGS -fPIE -fno-strict-aliasing -std=gnu++98" export LDFLAGS="-pie" %if "%_lib" == "lib64" # tomsfastmath needs this for correct operation on 64-bit platforms CFLAGS="$CFLAGS -DFP_64BIT" %endif %configure \ --disable-clamav \ --disable-static \ --with-dbdir=/var/lib/clamav \ --with-user=vscan \ --with-group=vscan \ --enable-milter \ %clamav_check \ %llvm \ --enable-clamdtop \ --disable-timestamps make V=1 %{?_smp_mflags} %install %makeinstall install -d -m755 %buildroot/var/lib/clamav install -d -m755 %buildroot/%_tmpfilesdir install -m644 %{S:6} %buildroot%_tmpfilesdir/clamav.conf mkdir -p %buildroot/var/spool/amavis mkdir -p -m 0755 %buildroot/run/clamav rm %buildroot/%_libdir/*.la # Remove bogus dependencies from libclamav.pc sed -i 's/^Libs: .*/Libs: -lclamav/' %buildroot%_libdir/pkgconfig/libclamav.pc # fix the new config file names pushd %buildroot/etc mv clamd.conf.sample clamd.conf mv clamav-milter.conf.sample clamav-milter.conf mv freshclam.conf.sample freshclam.conf popd # Systemd... install -d -m 0755 %buildroot/%{_unitdir} install -m 0644 %{S:7} %buildroot/%{_unitdir}/clamd.service install -m 0644 %{S:8} %buildroot/%{_unitdir}/freshclam.service install -m 0644 %{S:9} %buildroot/%{_unitdir}/clamav-milter.service rm -f %buildroot/%{_unitdir}/clamav-daemon.service rm -f %buildroot/%{_unitdir}/clamav-daemon.socket rm -f %buildroot/%{_unitdir}/clamav-freshclam.service # this is broken if system does not have systemd so don't # use it at all on systems without mandatory systemd for srvname in clamd freshclam clamav-milter;do (export PATH=/usr/sbin:/sbin:$PATH ;ln -sf $(which service) %{buildroot}/%{_sbindir}/rc${srvname}) done %check # regression tests %if !0%{?qemu_user_space_build:1} VALGRIND_GENSUP=1 make check %endif %files %defattr(-,root,root,-) %config(noreplace) %_sysconfdir/*.conf #systemd... %{_unitdir}/clamd.service %{_unitdir}/freshclam.service %{_unitdir}/clamav-milter.service %_tmpfilesdir %doc AUTHORS BUGS ChangeLog COPYING FAQ NEWS README UPGRADE %doc docs/*.pdf docs/html %doc %_mandir/*/* %_bindir/* %_sbindir/* %_includedir/* %_libdir/lib* %_libdir/pkgconfig/libclamav.pc %defattr(-,vscan,vscan) %dir %attr(750,vscan,vscan) /var/spool/amavis %dir /var/lib/clamav %ghost %attr(755,vscan,vscan) /run/clamav %pre getent group vscan >/dev/null || %_sbindir/groupadd -r vscan || : getent passwd vscan >/dev/null || \ %_sbindir/useradd -r -o -g vscan -u 65 -s /bin/false \ -c "Vscan account" -d /var/spool/amavis vscan || : %_sbindir/usermod vscan -g vscan 2> /dev/null || : %service_add_pre clamd.service freshclam.service clamav-milter.service %post /sbin/ldconfig systemd-tmpfiles --create %_tmpfilesdir/clamav.conf %service_add_post clamd.service freshclam.service clamav-milter.service %preun %service_del_preun clamd.service freshclam.service clamav-milter.service %postun /sbin/ldconfig %service_del_postun clamd.service freshclam.service clamav-milter.service %changelog