# - restart amavis in triggers if group membership was modified?
#
# Conditional build:
-%bcond_without milter # build without milter subpackage
+%bcond_without milter # milter interface subpackage
%if "%{pld_release}" == "ac"
-%bcond_with llvm # build without llvm support
+%bcond_with llvm # LLVM support
%else
-%bcond_without llvm # build without llvm support
+%bcond_without llvm # LLVM support
%endif
+%ifarch x32
+%undefine with_llvm
+%endif
+
+%bcond_with system_llvm
+
Summary: An anti-virus utility for Unix
Summary(pl.UTF-8): Narzędzie antywirusowe dla Uniksów
Name: clamav
-Version: 0.97.8
+Version: 0.99.3
Release: 1
License: GPL v2+
Group: Daemons
-Source0: http://downloads.sourceforge.net/clamav/%{name}-%{version}.tar.gz
-# Source0-md5: ac52bcbad3ea72eac08fedb9772f648b
+Source0: http://www.clamav.net/downloads/production/%{name}-%{version}.tar.gz
+# Source0-md5: 5272f127312e987b3e10c155cf1d84df
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}-milter.init
Source9: %{name}-milter.sysconfig
Source10: %{name}.tmpfiles
Source11: clamd.service
+Source12: cronjob-clamav.timer
+Source13: cronjob-clamav.service.in
Patch0: %{name}-pld_config.patch
Patch1: %{name}-nolibs.patch
+%if "%{pld_release}" == "ac"
Patch2: am-nosilentrules.patch
+%endif
Patch3: ac2.68.patch
+Patch4: %{name}-openssl.patch
+Patch5: %{name}-major.patch
+Patch6: x32.patch
+Patch7: clamav-0.99.2-temp-cleanup.patch
URL: http://www.clamav.net/
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bzip2-devel
+BuildRequires: check-devel
+BuildRequires: curl-devel
BuildRequires: gmp-devel
BuildRequires: libltdl-devel
%{?with_milter:BuildRequires: libmilter-devel}
-BuildRequires: libstdc++-devel
+BuildRequires: libstdc++-devel >= 5:3.4
BuildRequires: libtool
%{?with_milter:BuildRequires: libwrap-devel}
-%{?with_llvm:BuildRequires: llvm-devel}
+%{?with_llvm:%{?with_system_llvm:BuildRequires: llvm-devel < 3.7}}
BuildRequires: ncurses-devel
+BuildRequires: openssl-devel
+BuildRequires: pkgconfig
BuildRequires: rpm >= 4.4.9-56
BuildRequires: rpmbuild(macros) >= 1.647
BuildRequires: zlib-devel
Requires: /usr/sbin/usermod
Requires: rc-scripts >= 0.4.1.23
Suggests: clamav-database
+Suggests: cronjobs
Provides: group(clamav)
Provides: user(clamav)
Conflicts: logrotate < 3.7-4
Group: Development/Libraries
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Requires: bzip2-devel
+Requires: curl-devel
Requires: gmp-devel
+Requires: openssl-devel
Requires: zlib-devel
%description devel
%setup -q
%patch0 -p1
%patch1 -p1
+%if "%{pld_release}" == "ac"
%patch2 -p1
+%endif
+%if "%{pld_release}" != "ac"
%patch3 -p1
+%endif
+#%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
%build
-# automake 1.12+ needs configure.ac not .in
-mv configure.{in,ac}
+export CFLAGS="%{rpmcflags} -Wall -W -Wmissing-prototypes -Wmissing-declarations -std=gnu99"
+export CXXFLAGS="%{rpmcxxflags} -std=gnu++98"
%{__libtoolize}
%{__aclocal} -I m4
%{__autoconf}
%{__autoheader}
%{__automake}
%configure \
+ --disable-zlib-vcheck \
+ --disable-silent-rules \
--disable-clamav \
+ --enable-clamdtop \
+ %{?with_llvm:--enable-llvm %{?with_system_llvm:--with-system-llvm}} \
%{?with_milter:--enable-milter} \
--with-dbdir=/var/lib/%{name} \
--with-no-cache \
%endif
cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/clamd
install -p %{SOURCE4} $RPM_BUILD_ROOT%{_sbindir}/clamav-cron-updatedb
-cp -p etc/*.conf $RPM_BUILD_ROOT%{_sysconfdir}
+for i in $RPM_BUILD_ROOT%{_sysconfdir}/*.conf.sample; do
+ mv $i ${i%%.sample}
+done
cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
install -p %{SOURCE8} $RPM_BUILD_ROOT%{_sbindir}
-install %{SOURCE10} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
+cp -p %{SOURCE10} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
-install %{SOURCE11} $RPM_BUILD_ROOT%{systemdunitdir}
+cp -p %{SOURCE11} $RPM_BUILD_ROOT%{systemdunitdir}
+cp -p %{SOURCE12} $RPM_BUILD_ROOT%{systemdunitdir}/cronjob-%{name}.timer
+sed -e's#@sbindir@#%{_sbindir}#' < %{SOURCE13} > $RPM_BUILD_ROOT%{systemdunitdir}/cronjob-%{name}.service
# NOTE: clamd uses sane rights to it's clamd.pid file
# So better keep it dir
touch /var/log/freshclam.log
chown clamav:root /var/log/freshclam.log
chmod 640 /var/log/freshclam.log
-%systemd_post clamd.service
+%systemd_post clamd.service cronjob-clamav.timer
%preun
if [ "$1" = "0" ]; then
%service clamd stop
/sbin/chkconfig --del clamd
fi
-%systemd_preun clamd.service
+%systemd_preun clamd.service cronjob-clamav.timer
%postun
if [ "$1" = "0" ]; then
%triggerpostun -- %{name} < 0.97.7-4
%systemd_trigger clamd.service
+%triggerpostun -- %{name} < 0.99.2-2
+%systemd_service_enable cronjob-clamav.timer
+
%post milter
/sbin/chkconfig --add clamav-milter
%service clamav-milter restart "Clam Antivirus daemon"
%attr(755,root,root) %{_bindir}/clamdscan
%attr(755,root,root) %{_bindir}/clamdtop
%attr(755,root,root) %{_bindir}/clamscan
+%attr(755,root,root) %{_bindir}/clamsubmit
%attr(755,root,root) %{_bindir}/freshclam
%attr(755,root,root) %{_bindir}/sigtool
%attr(755,root,root) %{_bindir}/clamconf
%attr(755,root,root) %{_sbindir}/clamav-post-updatedb
%{systemdtmpfilesdir}/%{name}.conf
%{systemdunitdir}/clamd.service
+%{systemdunitdir}/cronjob-clamav.service
+%{systemdunitdir}/cronjob-clamav.timer
%attr(755,clamav,root) %dir /var/lib/%{name}
%attr(640,clamav,root) %ghost /var/log/freshclam.log
%attr(750,clamav,clamav) %dir /var/run/%{name}
%attr(754,root,root) /etc/rc.d/init.d/clamd
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/clamd
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/clamav
-%{_mandir}/man[15]/*
+%{_mandir}/man1/*
+%{_mandir}/man5/clamd*
+%{_mandir}/man5/freshclam*
%{_mandir}/man8/clamd*
%if %{with milter}
#%attr(755,root,root) %{_sysconfdir}/log.d/scripts/services/clamav-milter
#%{_sysconfdir}/log.d/conf/services/clamav-milter.conf
%attr(755,root,root) %{_sbindir}/clamav-milter
+%{_mandir}/man5/clamav-milter*
%{_mandir}/man8/clamav-milter.8*
%attr(700,clamav,clamav) /var/spool/clamav
%endif
%files libs
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libclamav.so.6
-%attr(755,root,root) %ghost %{_libdir}/libclamunrar.so.6
-%attr(755,root,root) %ghost %{_libdir}/libclamunrar_iface.so.6
+%attr(755,root,root) %{_libdir}/libclamav.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libclamav.so.7
+%attr(755,root,root) %{_libdir}/libclamunrar.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libclamunrar.so.7
+%attr(755,root,root) %{_libdir}/libclamunrar_iface.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libclamunrar_iface.so.7
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/clamav-config
-%attr(755,root,root) %{_libdir}/lib*.so
-%{_libdir}/lib*.la
-%{_includedir}/*.h
-%{_pkgconfigdir}/*.pc
+%attr(755,root,root) %{_libdir}/libclamav.so
+%attr(755,root,root) %{_libdir}/libclamunrar.so
+%attr(755,root,root) %{_libdir}/libclamunrar_iface.so
+%{_libdir}/libclamav.la
+%{_libdir}/libclamunrar.la
+%{_libdir}/libclamunrar_iface.la
+%{_includedir}/clamav.h
+%{_pkgconfigdir}/libclamav.pc
%files static
%defattr(644,root,root,755)
-%{_libdir}/*.a
+%{_libdir}/libclamav.a
+%{_libdir}/libclamunrar.a
+%{_libdir}/libclamunrar_iface.a