]> git.pld-linux.org Git - SPECS.git/blob - qmail-scanner.spec
SPECS updated Tue 30 Apr 15:06:09 CEST 2024
[SPECS.git] / qmail-scanner.spec
1 #
2 # Conditional build:
3 %bcond_with     spamassassin    # spamassassin
4 %bcond_without  clamav          # clamav
5
6 Summary:        Content scanner for Qmail
7 Summary(pl.UTF-8):      Skaner zawartości dla Qmaila
8 Name:           qmail-scanner
9 Version:        2.04
10 Release:        0.1
11 License:        GPL
12 Group:          Applications/Mail
13 Source0:        http://dl.sourceforge.net/qmail-scanner/%{name}-%{version}.tgz
14 # Source0-md5:  b11d2f177074ad6b4b68b93de227d78e
15 Source1:        %{name}.conf
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
34 %endif
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}
43 Requires:       fileutils
44 Requires:       maildrop >= 1.3.8
45 Requires:       qmail >= 1.03-56.50
46 %if %{with spamassassin}
47 Requires:       spamassassin
48 Requires:       spamassassin-spamc
49 %endif
50 Provides:       group(qscand)
51 Provides:       user(qscand)
52 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
53
54 %description
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.
67
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).
82
83 %prep
84 %setup -q
85 # Take out root install requirement.
86 %patch0 -p1
87 # load sub-$SCANNER.pl if needed.
88 %patch1 -p1
89 # require %{_sysconfdir}/qmail-scanner.conf
90 %patch2 -p1
91 # make overriden vars as $our
92 %patch3 -p1
93 # disallow by default common ms-windows executables
94 %patch4 -p1
95 %patch6 -p0
96 %patch7 -p1
97
98 %build
99 scanners=$(echo \
100 %{?with_clamav:clamscan clamdscan} \
101 %{?with_spamassassin:verbose_spamassassin fast_spamassassin} \
102 )
103 scanners=$(echo "$scanners" | tr ' ' ',')
104
105 ./configure \
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) \
112         --domain localhost \
113         --batch \
114         %{!?debug:--debug no} \
115         --log-details no \
116         --skip-setuid-test \
117         --no-QQ-check \
118         --admin root \
119         --notify none \
120         --lang en_GB \
121         --scanners ${scanners:-none}
122
123 # build for qmail-scanner-queue wrapper, so we don't need suidperl
124 cd contrib
125 %{__cc} %{rpmcflags} -o qmail-scanner-queue qmail-scanner-queue.c
126
127 %install
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
132
133 # Create maildirs.
134 install -d $RPM_BUILD_ROOT/var/spool/qmailscan/{archives,failed,quarantine,working}/{cur,new,tmp}
135
136 # Install configuration file.
137 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}
138
139 install -d $RPM_BUILD_ROOT/var/spool/qmailscan/reports
140 install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/%{name}/report.sh
141
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}
145
146 # Install quarantine.
147 install quarantine-events.txt $RPM_BUILD_ROOT/var/spool/qmailscan
148
149 # touch file, so we could add it to package
150 > $RPM_BUILD_ROOT/var/spool/qmailscan/qmail-scanner-queue-version.txt
151
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
155
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
160 done
161
162 %clean
163 rm -rf $RPM_BUILD_ROOT
164
165 %if %{with clamav}
166 %triggerin -- clamav
167 # Initialize the version file, as clamav version might have changed
168 %{_libdir}/%{name}/qmail-scanner-queue -z
169
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
175                 # NOTE:
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
182                 fi
183         fi
184 fi
185 %endif
186
187 %post
188 # setup vars once
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)
192         sed -i -e "
193                 s/MAILDOMAIN/$hostname/g
194                 s/USERNAME/root/g
195         " %{_sysconfdir}/qmail-scanner.conf
196 fi
197
198 # Initialize the version file.
199 %{_libdir}/%{name}/qmail-scanner-queue -z
200
201 # Initialize the perlscanner database.
202 %{_libdir}/%{name}/qmail-scanner-queue -g
203
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
208                 sed -i -e '
209                 s,/var/qmail/bin/qmail-scanner-queue\(\.pl\)\?,%{_libdir}/%{name}/qmail-scanner-queue,
210                 ' /etc/tcprules.d/tcp.qmail-$s
211         fi
212 done
213 %{__make} -s -C /etc/tcprules.d
214
215 %pre
216 %groupadd -g 210 qscand
217 %useradd -u 210 -d /var/spool/qmailscan -g qscand -c "Qmail-Scanner Account" qscand
218
219 %postun
220 if [ "$1" = "0" ]; then
221         %userremove qscand
222         %groupremove qscand
223 fi
224
225 %files
226 %defattr(644,root,root,755)
227 %doc README CHANGES COPYING
228 # html
229 %doc README.html FAQ.php TODO.php configure-options.php manual-install.php perlscanner.php
230 # and contrib
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
235
236 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/qmail-scanner.conf
237
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
241
242 %dir %attr(750,qscand,qscand) /var/spool/qmailscan
243 %dir %attr(2750,qscand,qscand) /var/spool/qmailscan/tmp
244
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
249
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
252
253 # scanner subs
254 %{_libdir}/%{name}/sub-*.pl
255
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
258
259 # reports of viruses per day
260 %dir /var/spool/qmailscan/reports
261 %attr(755,root,root) %{_libdir}/%{name}/report.sh
This page took 0.693151 seconds and 3 git commands to generate.