1# Upstream: <amavis-user$lists,sf,net>
2#
3#
4
5%define logmsg logger -t %{name}/rpm
6
7Summary: Mail virus-scanner
8Name: amavisd-new
9Version: 2.6.0
10Release: 1
11License: GPL
12Group: System Environment/Daemons
13URL: http://www.ijs.si/software/amavisd/
14
15Packager: Marius Andreiana <marius_andreiana@epon_ro>
16Vendor: Amavisd-new
17
18Source: http://www.ijs.si/software/amavisd/amavisd-new-%{version}.tar.gz
19BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
20
21Requires: arc >= 5.21e, nomarch >= 1.2, unrar >= 2.71, zoo >= 2.10
22Requires: bzip2, cpio, file, freeze, lha, lzop, ncompress, unarj
23Requires: perl(Archive::Tar), perl(Archive::Zip), perl(Compress::Zlib)
24Requires: perl(Convert::TNEF), perl(Convert::UUlib), perl(IO::Stringy)
25Requires: perl(MIME::Base64), perl(MIME::Tools), perl(Unix::Syslog)
26Requires: perl(Time::HiRes), perl(Digest::MD5), perl(Digest::SHA1)
27Requires: perl(Digest::HMAC), perl(Net::DNS), perl(Mail::SpamAssassin)
28Requires: perl-MailTools, perl(Net::Server) >= 0.86, perl-HTML-Parser >= 3.24
29Requires: perl(DB_File), perl(Mail::DKIM) >= 0.31
30Obsoletes: amavisd
31
32%description
33AMaViS is a program that interfaces a mail transfer agent (MTA) with
34one or more virus scanners.
35
36Amavisd-new is a branch created by Mark Martinec that adds serveral
37performance and robustness features. It's partly based on
38work being done on the official amavisd branch. Please see the
39README.amavisd-new-RELNOTES file for a detailed description.
40
41%prep
42%setup -n amavisd-new-%{version}
43
44%{__cat} <<'EOF' >amavisd.sysconfig
45EOF
46
47%{__cat} <<'EOF' >amavisd.sysv
48#!/bin/bash
49#
50# Init script for AMaViS email virus scanner.
51#
52# Written by Dag Wieers <dag@wieers.com>.
53# Modified by Marius Andreiana.
54#
55# chkconfig: 2345 79 31
56# description: AMaViS virus scanner.
57#
58# processname: amavisd
59# config: %{_sysconfdir}/amavisd.conf
60# pidfile: %{_localstatedir}/run/amavisd.pid
61
62source %{_initrddir}/functions
63
64[ -x %{_sbindir}/amavisd ] || exit 1
65[ -r %{_sysconfdir}/amavisd.conf ] || exit 1
66
67### Default variables
68AMAVIS_ACCOUNT="amavis"
69SYSCONFIG="%{_sysconfdir}/sysconfig/amavisd"
70prog_config_file=%{_sysconfdir}/amavisd.conf
71
72### Read configuration
73[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
74
75RETVAL=0
76prog="amavisd"
77desc="Mail Virus Scanner"
78
79start() {
80	echo -n $"Starting $desc ($prog): "
81	daemon --user "$AMAVIS_ACCOUNT" %{_sbindir}/$prog -c $prog_config_file
82	RETVAL=$?
83	echo
84	[ $RETVAL -eq 0 ] && touch %{_localstatedir}/lock/subsys/$prog
85	return $RETVAL
86}
87
88stop() {
89	echo -n $"Shutting down $desc ($prog): "
90	su - $AMAVIS_ACCOUNT -c "%{_sbindir}/$prog -c $prog_config_file stop"
91	RETVAL=$?
92	echo
93	[ $RETVAL -eq 0 ] && rm -f %{_localstatedir}/lock/subsys/$prog
94	return $RETVAL
95}
96
97reload() {
98	echo -n $"Reloading $desc ($prog): "
99	su - $AMAVIS_ACCOUNT -c "%{_sbindir}/$prog -c $prog_config_file reload"
100	RETVAL=$?
101	echo
102	return $RETVAL
103}
104
105restart() {
106	stop
107	start
108}
109
110case "$1" in
111  start)
112	start
113	;;
114  stop)
115	stop
116	;;
117  restart)
118	restart
119	;;
120  reload)
121	reload
122	;;
123  condrestart)
124	[ -e %{_localstatedir}/lock/subsys/$prog ] && restart
125	RETVAL=$?
126	;;
127  status)
128	status $prog
129	RETVAL=$?
130	;;
131  *)
132	echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
133	RETVAL=1
134esac
135
136exit $RETVAL
137EOF
138
139%build
140
141%install
142%{__rm} -rf %{buildroot}
143%{__install} -d -m0755 %{buildroot}%{_sbindir}
144
145%{__perl} -pi.orig -e '
146		s|=\s*'\''vscan'\''|= "amavis"|;
147		s|^#*(\$MYHOME)\s*=.*$|$1 = "%{_localstatedir}/spool/amavis";|;
148		s|^#*(\$QUARANTINEDIR)\s*=.*$|$1 = "\$MYHOME/virusmails";|
149	' amavisd.conf
150
151%{__install} -d -m0700 %{buildroot}%{_localstatedir}/spool/amavis/virusmails/
152%{__install} -d -m0700 %{buildroot}%{_localstatedir}/amavis/tmp
153%{__install} -d -m0700 %{buildroot}%{_localstatedir}/amavis/db
154
155%{__install} -D -m0755 amavisd %{buildroot}%{_sbindir}/amavisd
156%{__install} -D -m0755 amavisd-nanny %{buildroot}%{_sbindir}/amavisd-nanny
157%{__install} -D -m0755 amavisd-agent %{buildroot}%{_sbindir}/amavisd-agent
158%{__install} -D -m0755 p0f-analyzer.pl %{buildroot}%{_sbindir}/p0f-analyzer.pl
159%{__install} -D -m0755 amavisd.sysv %{buildroot}%{_initrddir}/amavisd
160%{__install} -D -m0700 amavisd.conf %{buildroot}%{_sysconfdir}/amavisd.conf
161%{__install} -D -m0644 LDAP.schema %{buildroot}%{_sysconfdir}/openldap/schema/amavisd-new.schema
162%{__install} -D -m0644 amavisd.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/amavisd
163
164%clean
165%{__rm} -rf %{buildroot}
166
167%pre
168/usr/sbin/useradd -c "AMaViS email scanner user" -M -s /bin/sh -r amavis \
169		-d "/var/spool/amavis" &>/dev/null || :
170
171%post
172/sbin/chkconfig --add amavisd
173
174if [ -r /etc/postfixes/aliases ]; then
175	if ! grep -q "^virusalert:" /etc/postfix/aliases; then
176		echo -e "virusalert:\troot" >> /etc/postfix/aliases
177		if [ -x /usr/bin/newaliases ]; then
178			/usr/bin/newaliases &>/dev/null
179		else
180			%logmsg "Cannot exec newaliases. Please run it manually."
181		fi
182	fi
183fi
184
185if [ -r /etc/mail/aliases ]; then
186	if ! grep -q "^virusalert:" /etc/mail/aliases; then
187		echo -e "virusalert:\troot" >> /etc/mail/aliases
188		if [ -x /usr/bin/newaliases ]; then
189			/usr/bin/newaliases &>/dev/null
190		else
191			%logmsg "Cannot exec newaliases. Please run it manually."
192		fi
193	fi
194fi
195
196%preun
197if [ $1 -eq 0 ] ; then
198    /sbin/service amavisd stop &>/dev/null || :
199    /sbin/chkconfig --del amavisd
200fi
201
202%postun
203if [ $1 -ne 0 ]; then
204    /sbin/service amavisd condrestart &>/dev/null || :
205fi
206
207if [ "`getent passwd amavis`" ]; then
208    echo -en "removing user amavis.\n"
209    /usr/sbin/userdel "amavis" 2>/dev/null || :
210fi
211if [ "`getent group amavis`" ]; then
212    echo -en "removing group amavis.\n"
213    /usr/sbin/groupdel "amavis" 2>/dev/null || :
214fi
215
216%files
217%defattr(-, root, root, 0755)
218%doc AAAREADME.first LDAP.schema LICENSE MANIFEST RELEASE_NOTES README_FILES/* test-messages/
219%config %{_initrddir}/amavisd
220%config %{_sysconfdir}/openldap/schema/*.schema
221#%{_sbindir}/amavis
222%{_sbindir}/amavisd
223
224%defattr(0640, root, amavis, 0755)
225%config(noreplace) %{_sysconfdir}/amavisd.conf
226%config(noreplace) %{_sysconfdir}/sysconfig/amavisd
227
228%defattr(0700, amavis, amavis, 0700)
229%dir %{_localstatedir}/spool/amavis/
230%dir %{_localstatedir}/spool/amavis/virusmails/
231%dir %{_localstatedir}/amavis
232%dir %{_localstatedir}/amavis/tmp
233%dir %{_localstatedir}/amavis/db
234
235
236%changelog
237* Mon Oct 06 2004  Marius Andreiana
238- Use amavisd's stop, reload, as Mark suggested
239- remove amavis user/group on uninstall
240- fix perms on /var/amavis
241
242* Mon Oct 04 2004  Marius Andreiana
243- Initial release, changed DAG's spec file
244
245