3 %bcond_with spamassassin # spamassassin
4 %bcond_without clamav # clamav
6 Summary: Content scanner for Qmail
7 Summary(pl.UTF-8): Skaner zawartości dla Qmaila
12 Group: Applications/Mail
13 Source0: http://dl.sourceforge.net/qmail-scanner/%{name}-%{version}.tgz
14 # Source0-md5: b11d2f177074ad6b4b68b93de227d78e
16 Source2: %{name}-report.sh
17 Patch0: %{name}-root.patch
18 Patch1: %{name}-extsub.patch
19 Patch2: %{name}-localconf.patch
20 Patch3: %{name}-localconf-vars.patch
21 Patch4: %{name}-attach.patch
22 Patch6: %{name}-FHS.patch
23 Patch7: %{name}-qinject.patch
24 URL: http://qmail-scanner.sourceforge.net/
25 %{?with_clamav:BuildRequires: clamav}
26 BuildRequires: daemontools
27 BuildRequires: maildrop >= 1.3.8
28 BuildRequires: perl-DB_File >= 1.803
29 BuildRequires: perl-base >= 1:5.6.1
30 BuildRequires: rpmbuild(macros) >= 1.202
31 %if %{with spamassassin}
32 BuildRequires: spamassassin
33 BuildRequires: spamassassin-spamc
35 Requires(post): sed >= 4.0
36 Requires(postun): /usr/sbin/groupdel
37 Requires(postun): /usr/sbin/userdel
38 Requires(pre): /bin/id
39 Requires(pre): /usr/bin/getgid
40 Requires(pre): /usr/sbin/groupadd
41 Requires(pre): /usr/sbin/useradd
42 %{?with_clamav:Requires: clamav}
44 Requires: maildrop >= 1.3.8
45 Requires: qmail >= 1.03-56.50
46 %if %{with spamassassin}
47 Requires: spamassassin
48 Requires: spamassassin-spamc
50 Provides: group(qscand)
51 Provides: user(qscand)
52 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
55 Qmail-Scanner is an addon that enables a Qmail email server to scan
56 all gateway-ed email for certain characteristics (i.e. a content
57 scanner). It is typically used for its anti-virus protection
58 functions, in which case it is used in conjunction with external virus
59 scanners, but also enables a site (at a server/site level) to react to
60 email that contains specific strings in particular headers, or
61 particular attachment filenames or types (e.g. *.VBS attachments). It
62 also can be used as an archiving tool for auditing or backup purposes.
63 Qmail-Scanner is integrated into the mail server at a lower level than
64 some other Unix-based virus scanners, resulting in better performance.
65 It is capable of scanning not only locally sent/received email, but
66 also email that crosses the server in a relay capacity.
68 %description -l pl.UTF-8
69 Qmail-Scanner to dodatek umożliwiający serwerowi poczty elektronicznej
70 Qmail skanowanie całej przekazywanej poczty pod kątem danych cech
71 (tzn. skanowanie zawartości). Zwykle jest używany dla funkcji
72 zabezpieczeń antywirusowych, w którym to przypadku jest używany w
73 połączeniu z zewnętrznymi skanerami antywirusowymi, ale umożliwia
74 także reagowanie (na poziomie serwera) na pocztę zawierającą konkretne
75 łańcuchy w pewnych nagłówkach, albo pewne nazwy plików lub typy
76 załączników (np. załączniki *.VBS). Może być używany także jako
77 narzędzie archiwizujące do audytu lub kopii zapasowych. Qmail-Scanner
78 jest zintegrowany z serwerem pocztowym na poziomie niższym niż inne
79 uniksowe skanery antywirusowe, czego efektem jest lepsza wydajność.
80 Program może skanować nie tylko lokalnie wysyłaną/dostarczaną pocztę,
81 ale także pocztę przekazywaną przez serwer (relaying).
85 # Take out root install requirement.
87 # load sub-$SCANNER.pl if needed.
89 # require %{_sysconfdir}/qmail-scanner.conf
91 # make overriden vars as $our
93 # disallow by default common ms-windows executables
100 %{?with_clamav:clamscan clamdscan} \
101 %{?with_spamassassin:verbose_spamassassin fast_spamassassin} \
103 scanners=$(echo "$scanners" | tr ' ' ',')
106 --spooldir /var/spool/qmailscan \
107 --qmaildir /var/qmail \
108 --bindir /var/qmail/bin \
109 --qmail-queue-binary /var/qmail/bin/qmail-queue \
110 --qmail-inject-binary /var/qmail/bin/qmail-inject \
111 --qs-user %(id -un) \
114 %{!?debug:--debug no} \
121 --scanners ${scanners:-none}
123 # build for qmail-scanner-queue wrapper, so we don't need suidperl
125 %{__cc} %{rpmcflags} -o qmail-scanner-queue qmail-scanner-queue.c
128 rm -rf $RPM_BUILD_ROOT
129 install -d $RPM_BUILD_ROOT%{_sysconfdir}
130 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}
131 install -d $RPM_BUILD_ROOT/var/spool/qmailscan/tmp
134 install -d $RPM_BUILD_ROOT/var/spool/qmailscan/{archives,failed,quarantine,working}/{cur,new,tmp}
136 # Install configuration file.
137 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}
139 install -d $RPM_BUILD_ROOT/var/spool/qmailscan/reports
140 install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/%{name}/report.sh
142 # Install executable.
143 install qmail-scanner-queue.pl $RPM_BUILD_ROOT%{_libdir}/%{name}
144 install contrib/qmail-scanner-queue $RPM_BUILD_ROOT%{_libdir}/%{name}
146 # Install quarantine.
147 install quarantine-events.txt $RPM_BUILD_ROOT/var/spool/qmailscan
149 # touch file, so we could add it to package
150 > $RPM_BUILD_ROOT/var/spool/qmailscan/qmail-scanner-queue-version.txt
152 > $RPM_BUILD_ROOT/var/spool/qmailscan/quarantine.log
153 > $RPM_BUILD_ROOT/var/spool/qmailscan/qmail-queue.log
154 > $RPM_BUILD_ROOT/var/spool/qmailscan/quarantine-events.db
156 # Install virus scanner subroutines
157 for s in sub-*.pl; do
158 install $s $RPM_BUILD_ROOT%{_libdir}/%{name}
159 echo "1;" >> $RPM_BUILD_ROOT%{_libdir}/%{name}/$s
163 rm -rf $RPM_BUILD_ROOT
167 # Initialize the version file, as clamav version might have changed
168 %{_libdir}/%{name}/qmail-scanner-queue -z
170 groups=$(id -Gn clamav)
171 if [[ "$groups" != *qscand* ]]; then
172 # add qscand group to clamav
173 QSCAND=$(/usr/bin/getgid qscand)
174 if [ $? -eq 0 ]; then
176 # Not to wipe out other groups clamav could have,
177 # we specify full list of groups.
178 %{_sbindir}/usermod -G $(echo $groups qscand | tr ' ' ',') clamav
179 echo "Adding clamav to qscand group GID=$QSCAND"
180 if [ -f /var/lock/subsys/clamd ]; then
181 /sbin/service clamd restart
189 if grep -q MAILDOMAIN %{_sysconfdir}/qmail-scanner.conf; then
190 cp -f %{_sysconfdir}/qmail-scanner.conf{,.rpmsave}
191 hostname=$(hostname -f 2>/dev/null || echo localhost)
193 s/MAILDOMAIN/$hostname/g
195 " %{_sysconfdir}/qmail-scanner.conf
198 # Initialize the version file.
199 %{_libdir}/%{name}/qmail-scanner-queue -z
201 # Initialize the perlscanner database.
202 %{_libdir}/%{name}/qmail-scanner-queue -g
204 %triggerpostun -- %{name} < 1.24-3.22
205 # upgrade qmail-scanner path in tcprules
206 for s in qmtp smtp; do
207 if [ -f /etc/tcprules.d/tcp.qmail-$s ]; then
209 s,/var/qmail/bin/qmail-scanner-queue\(\.pl\)\?,%{_libdir}/%{name}/qmail-scanner-queue,
210 ' /etc/tcprules.d/tcp.qmail-$s
213 %{__make} -s -C /etc/tcprules.d
216 %groupadd -g 210 qscand
217 %useradd -u 210 -d /var/spool/qmailscan -g qscand -c "Qmail-Scanner Account" qscand
220 if [ "$1" = "0" ]; then
226 %defattr(644,root,root,755)
227 %doc README CHANGES COPYING
229 %doc README.html FAQ.php TODO.php configure-options.php manual-install.php perlscanner.php
231 %doc contrib/spamc-nice.eml contrib/test-trophie.pl contrib/logrotate.qmail-scanner contrib/sub-avpdaemon.pl
232 %doc contrib/logging_first_80_chars.eml contrib/spamc-nasty.eml contrib/avpdeamon.init contrib/test_installation.sh
233 %doc contrib/test-sophie.pl contrib/reformime-test.eml contrib/sub-sender-cache.pl contrib/rbl_scanner.txt
234 %doc contrib/test-clamd.pl contrib/qs2mrtg.pl contrib/mrtg-qmail-scanner.cfg
236 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/qmail-scanner.conf
238 %dir %{_libdir}/%{name}
239 %config %attr(755,root,root) %{_libdir}/%{name}/qmail-scanner-queue.pl
240 %attr(6755,qscand,qscand) %{_libdir}/%{name}/qmail-scanner-queue
242 %dir %attr(750,qscand,qscand) /var/spool/qmailscan
243 %dir %attr(2750,qscand,qscand) /var/spool/qmailscan/tmp
245 %attr(700,qscand,qscand) /var/spool/qmailscan/archives
246 %attr(700,qscand,qscand) /var/spool/qmailscan/failed
247 %attr(700,qscand,qscand) /var/spool/qmailscan/quarantine
248 %attr(700,qscand,qscand) /var/spool/qmailscan/working
250 %attr(644,qscand,qscand) %config(noreplace) %verify(not md5 mtime size) /var/spool/qmailscan/*.log
251 %attr(640,qscand,qscand) %verify(not md5 mtime size) /var/spool/qmailscan/*.db
254 %{_libdir}/%{name}/sub-*.pl
256 %config(noreplace) %verify(not md5 mtime size) /var/spool/qmailscan/qmail-scanner-queue-version.txt
257 %config(noreplace) %verify(not md5 mtime size) /var/spool/qmailscan/quarantine-events.txt
259 # reports of viruses per day
260 %dir /var/spool/qmailscan/reports
261 %attr(755,root,root) %{_libdir}/%{name}/report.sh