clamav.spec | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 88 insertions(+), 7 deletions(-) diff --git a/clamav.spec b/clamav.spec index 45aa5db..8007021 100644 --- a/clamav.spec +++ b/clamav.spec @@ -9,6 +9,7 @@ %bcond_with unrar %bcond_without noarch %bcond_without bytecode +%bcond_without mimedefang ## %ifnarch s390 s390x @@ -28,6 +29,10 @@ %global scanuser clamscan %global scanstatedir %_var/run/clamd.scan +%global mimedefanguser defang +%global mimedefanglog %_var/log/clamd.mimedefang +%global mimedefangstatedir %_var/run/clamd.mimedefang + %{?with_noarch:%global noarch BuildArch: noarch} %{!?_unitdir:%global _unitdir /lib/systemd/system} %{!?release_func:%global release_func() %%{?prerelease:0.}%1%%{?prerelease:.%%prerelease}%%{?dist}} @@ -276,6 +281,17 @@ Provides: %name-milter-sysvinit = %version-%release Obsoletes: %name-milter-sysvinit < %version-%release %endif +%package mimedefang +Summary: Support for mimedefang integration +Group: System Environment/Daemons +Requires: mimedefang +Requires: clamav-filesystem = %version-%release +Requires: clamav-server = %version-%release +Requires(pre): %_initrddir +Requires(postun): %_initrddir initscripts +Requires(post): chkconfig +Requires(preun): chkconfig initscripts + %description Clam AntiVirus is an anti-virus toolkit for UNIX. The main purpose of this @@ -362,6 +378,10 @@ The Upstart initscripts for clamav-scanner. The systemd initscripts for clamav-scanner. +%description mimedefang +Scripts and configuration files for mimedefang integration. + + %description milter This package contains files which are needed to run the clamav-milter. @@ -468,7 +488,8 @@ install -d -m 0755 \ $RPM_BUILD_ROOT%pkgdatadir/template \ $RPM_BUILD_ROOT%_initrddir \ $RPM_BUILD_ROOT%homedir \ - $RPM_BUILD_ROOT%scanstatedir + $RPM_BUILD_ROOT%scanstatedir \ + $RPM_BUILD_ROOT%mimedefangstatedir rm -f $RPM_BUILD_ROOT%_sysconfdir/clamd.conf \ $RPM_BUILD_ROOT%_libdir/*.la @@ -525,6 +546,33 @@ EOF touch $RPM_BUILD_ROOT%scanstatedir/clamd.{sock,pid} +### Mimedefang support +sed -r \ + -e 's!!mimedefang!g;s!!%mimedefanguser!g;s!^Example!#&!g' \ + etc/clamd.conf > $RPM_BUILD_ROOT%_sysconfdir/clamd.d/mimedefang.conf + +%if 0%{?with_sysv} +sed -r \ + -e 's!/!mimedefang!g' \ + %SOURCE7 > $RPM_BUILD_ROOT%_initrddir/clamd.mimedefang +%endif + +%if 0%{?with_systemd} +sed -r \ + -e 's!Generic clamav scanner!Mimedefang-specific clamav scanner!g' \ + -e 's!clamav-milter\.service!clamav-mimedefang.service!g' \ + -e 's!scan\.conf!mimedefang.conf!g' \ + %SOURCE430 > $RPM_BUILD_ROOT%_unitdir/clamd.mimedefang.service +%endif + +sed -r \ + -e 's!!mimedefang!g' \ + -e 's!^#(CLAMD_CONFIGFILE|CLAMD_SOCKET)!\1!g' \ + %SOURCE2 > $RPM_BUILD_ROOT%_sysconfdir/sysconfig/clamd.mimedefang + +ln -sf clamd $RPM_BUILD_ROOT%_sbindir/clamd.mimedefang + +touch $RPM_BUILD_ROOT/%mimedefanglog ### The milter stuff sed -r \ @@ -546,12 +594,6 @@ EOF rm -f $RPM_BUILD_ROOT%_sysconfdir/clamav-milter.conf touch $RPM_BUILD_ROOT{%milterstatedir/clamav-milter.{socket,pid},%milterlog} -%{!?with_upstart: rm -rf $RPM_BUILD_ROOT%_sysconfdir/init} -%{!?with_systemd: rm -rf $RPM_BUILD_ROOT%_unitdir} -%{!?with_sysv: rm -f $RPM_BUILD_ROOT%_initrddir/*} -%{!?with_sysv: rm -rf $RPM_BUILD_ROOT%_var/run/*/*.pid} -%{!?with_tmpfiles: rm -rf $RPM_BUILD_ROOT%_sysconfdir/tmpfiles.d} - # keep clamd-wrapper in every case because it might be needed by other # packages ln -s %pkgdatadir/clamd-wrapper $RPM_BUILD_ROOT%_initrddir/clamd-wrapper @@ -617,6 +659,20 @@ test -e %freshclamlog || { } +%if 0%{?with_sysv} +%post mimedefang +/sbin/chkconfig --add clamd.mimedefang + +%preun mimedefang +test "$1" != 0 || %_initrddir/clamd.mimedefang stop &>/dev/null || : +test "$1" != 0 || /sbin/chkconfig --del clamd.mimedefang + +%postun mimedefang +test "$1" = 0 || %_initrddir/clamd.mimedefang condrestart >/dev/null || : +%endif + +%systemd_install mimedefang clamd.mimedefang.service + %triggerin milter -- clamav-scanner # Add the milteruser to the scanuser group; this is required when # milter and clamd communicate through local sockets @@ -673,6 +729,12 @@ test "$1" != "0" || /sbin/initctl -q stop clamav-milter || : %exclude %_bindir/clamav-config %exclude %_bindir/freshclam %exclude %_mandir/*/freshclam* +%exclude %_unitdir/* +%exclude %_initrddir/* +%exclude %_sysconfdir/clamd.d/* +%exclude %_sysconfdir/init/* +%exclude %_sysconfdir/tmpfiles.d/* +%exclude %_var/run/*/*.pid ## ----------------------- @@ -739,6 +801,7 @@ test "$1" != "0" || /sbin/initctl -q stop clamav-milter || : %dir %_sysconfdir/clamd.d %exclude %_sbindir/*milter* +%exclude %_sbindir/*mimedefang* %exclude %_mandir/man8/clamav-milter* @@ -781,6 +844,21 @@ test "$1" != "0" || /sbin/initctl -q stop clamav-milter || : ## ----------------------- +%files mimedefang +%defattr(-,root,root,-) +%config(noreplace) %_sysconfdir/sysconfig/clamd.mimedefang +%if 0%{?with_systemd:1} +%_unitdir/clamd.mimedefang.service +%endif +%if 0%{?with_sysv:1} +%_initrddir/clamd.mimedefang +%endif +%_sbindir/clamd.mimedefang +%ghost %attr(0620,root,%mimedefanguser) %mimedefanglog +%dir %attr(0755,%mimedefanguser,%mimedefanguser) %mimedefangstatedir +%ghost %attr(0640,%mimedefanguser,%mimedefanguser) %mimedefangstatedir/clamd.pid +%ghost %attr(0666,%mimedefanguser,%mimedefanguser) %mimedefangstatedir/clamd.sock + %files milter %defattr(-,root,root,-) %doc clamav-milter/README.fedora @@ -818,6 +896,9 @@ test "$1" != "0" || /sbin/initctl -q stop clamav-milter || : %changelog +* Tue Nov 15 2011 Phili Prindeville - 0.97.3-1800 +- added mimedefang subpackage + * Tue Oct 18 2011 Nick Bebout - 0.97.3-1700 - updated to 0.97.3 - CVE-2011-3627 clamav: Recursion level crash fixed in v0.97.3