2 # Make freshclam (script and daemon)
5 %bcond_without milter # build without milter subpackage
6 %bcond_with curl # enable curl support
8 Summary: An anti-virus utility for Unix
9 Summary(pl): Antywirusowe narzêdzie dla Uniksów
16 Source0: http://dl.sourceforge.net/clamav/%{name}-%{version}.tar.gz
17 # Source0-md5: 1b58972d8918f5174d7f05a35a48856b
19 Source2: %{name}.sysconfig
20 Source3: %{name}-milter.init
21 Source4: %{name}-cron-updatedb
22 Source5: %{name}.logrotate
23 # Remember to update date after databases upgrade
24 %define database_version 20050203
25 Source6: http://db.local.clamav.net/daily.cvd
26 # Source6-md5: c81622a053278d7155e0fdfb9c5050f7
27 Source7: http://db.local.clamav.net/main.cvd
28 # Source7-md5: 59f425f2dffe9a98926bfae94f299880
29 Source8: %{name}-post-updatedb
30 Source9: %{name}-milter.sysconfig
31 Patch0: %{name}-pld_config.patch
32 Patch1: %{name}-no_auto_libwrap.patch
33 Patch2: %{name}-nolibs.patch
34 URL: http://www.clamav.net/
35 BuildRequires: autoconf
36 BuildRequires: automake
37 BuildRequires: bzip2-devel
38 %{?with_curl:BuildRequires: curl-devel}
39 BuildRequires: gmp-devel
40 %{?with_milter:BuildRequires: libwrap-devel}
41 BuildRequires: libtool
42 BuildRequires: rpmbuild(macros) >= 1.159
43 %{?with_milter:BuildRequires: sendmail-devel >= 8.11}
44 BuildRequires: zlib-devel
45 Requires(pre): /bin/id
46 Requires(pre): /usr/bin/getgid
47 Requires(pre): /usr/sbin/groupadd
48 Requires(pre): /usr/sbin/useradd
49 Requires(postun): /usr/sbin/groupdel
50 Requires(postun): /usr/sbin/userdel
51 Requires(postun): sed >= 4.0
52 Requires(postun,pre): /usr/sbin/usermod
53 Requires(post,preun): /sbin/chkconfig
54 Requires: /usr/sbin/usermod
55 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
57 Provides: group(clamav)
58 Provides: user(clamav)
59 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
62 Clam Antivirus is a powerful anti-virus scanner for Unix. It supports
63 AMaViS, compressed files, on-access scanning and includes a program
64 for auto-updating with support for digital signatures. The virus
65 database has over 25000 viruses, worms and trojans signatures. The
66 scanner is multithreaded, written in C, and POSIX compliant.
69 Clam Antivirus jest potê¿nym skanerem antywirusowym dla systemów
70 uniksowych. Wspiera on AMaViSa, skompresowane pliki, skanowanie
71 "on-access" i posiada system bezpiecznej, automatycznej aktualizacji.
72 Baza wirusów zawiera ponad 25000 sygnatur. Skaner jest wielow±tkowy,
73 napisany w C i zgodny z POSIXem.
76 Summary: Shared libraries for clamav
77 Summary(pl): Biblioteki dzielone clamav
81 Shared libraries for clamav.
83 %description libs -l pl
84 Biblioteki dzielone clamav.
87 Summary: ClamAV filter using milter interface
88 Summary(pl): Filtr ClamAV korzystaj±cy z interfejsu milter
90 Requires: %{name} = %{epoch}:%{version}-%{release}
91 Requires: sendmail >= 8.11
92 Requires: tcp_wrappers
95 ClamAV sendmail filter using MILTER interface.
97 %description milter -l pl
98 Filtr ClamAV dla sendmaila korzystaj±cy z interfejsu MILTER.
101 Summary: clamav - Development header files and libraries
102 Summary(pl): clamav - Pliki nag³ówkowe i biblioteki dla programistów
103 Group: Development/Libraries
104 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
105 Requires: bzip2-devel
110 This package contains the development header files and libraries
111 necessary to develop clamav client applications.
113 %description devel -l pl
114 Pliki nag³ówkowe i biblioteki konieczne do kompilacji aplikacji
118 Summary: clamav static libraris
119 Summary(pl): Biblioteki statyczne clamav
120 Group: Development/Libraries
121 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
124 clamav static libraries.
126 %description static -l pl
127 Biblioteki statyczne clamav.
130 Summary: Virus database for clamav
131 Summary(pl): Bazy wirusów dla clamav
133 Version: %{version}.%{database_version}
136 %description database
137 Virus database for clamav (updated %{database_version}).
139 %description database -l pl
140 Bazy wirusów dla clamav (aktualizowana %{database_version}).
148 # kill old libtool.m4 copy
149 head -n 489 acinclude.m4 > acinclude.m4.tmp
150 tail -n +4089 acinclude.m4 >> acinclude.m4.tmp
151 mv -f acinclude.m4.tmp acinclude.m4
161 %{!?with_curl:--without-libcurl} \
162 %{?with_milter:--enable-milter} \
163 --with-dbdir=/var/lib/%{name}
167 rm -rf $RPM_BUILD_ROOT
168 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,logrotate.d} \
169 $RPM_BUILD_ROOT{%{_sysconfdir}/cron.d,%{_var}/{log,spool/clamav}}
172 DESTDIR=$RPM_BUILD_ROOT
173 %{!?with_milter:rm -f $RPM_BUILD_ROOT%{_mandir}/man8/clamav-milter.8*}
175 cat <<EOF >$RPM_BUILD_ROOT%{_sysconfdir}/cron.d/%{name}
176 5 * * * * root %{_sbindir}/clamav-cron-updatedb
179 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/clamd
181 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/clamav-milter
182 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/clamav-milter
184 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/clamd
185 install %{SOURCE4} $RPM_BUILD_ROOT%{_sbindir}/clamav-cron-updatedb
186 install etc/*.conf $RPM_BUILD_ROOT%{_sysconfdir}
187 install %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
188 install %{SOURCE6} $RPM_BUILD_ROOT/var/lib/%{name}
189 install %{SOURCE7} $RPM_BUILD_ROOT/var/lib/%{name}
190 install %{SOURCE8} $RPM_BUILD_ROOT%{_sbindir}
192 # NOTE: clamd uses sane rights to it's clamd.pid file
193 # So better keep it dir
194 # If it is fixed use of dir will be unecesary
195 install -d $RPM_BUILD_ROOT%{_var}/run/%{name}
197 touch $RPM_BUILD_ROOT%{_var}/log/freshclam.log
200 rm -rf $RPM_BUILD_ROOT
202 %triggerin -- amavis-ng
203 AMAVIS=$(/usr/bin/getgid amavis)
205 if [ $RESULT -eq 0 ]; then
206 /usr/sbin/usermod -G amavis clamav 1>&2 > /dev/null
207 echo "adding clamav to amavis group GID=$AMAVIS"
210 %triggerin -- amavisd-new
211 AMAVIS=$(/usr/bin/getgid amavis)
213 if [ $RESULT -eq 0 ]; then
214 /usr/sbin/usermod -G amavis clamav 1>&2 > /dev/null
215 echo "adding clamav to amavis group GID=$AMAVIS"
218 %triggerin -- amavisd
219 AMAVIS=$(/usr/bin/getgid amavis)
221 if [ $RESULT -eq 0 ]; then
222 echo "adding clamav to amavis group GID=$AMAVIS"
223 /usr/sbin/usermod -G amavis clamav 1>&2
227 if [ -n "`/usr/bin/getgid clamav`" ]; then
228 if [ "`/usr/bin/getgid clamav`" != 43 ]; then
229 echo "Error: group clamav doesn't have gid=43. Correct this before installing clamav" 1>&2
233 echo "Adding group clamav GID=43"
234 /usr/sbin/groupadd -g 43 clamav
236 if [ -n "`/bin/id -u clamav 2>/dev/null`" ]; then
237 if [ "`/bin/id -u clamav`" != 43 ]; then
238 echo "Error: user clamav doesn't have uid=43. Correct this before installing clamav" 1>&2
242 echo "Adding user clamav UID=43"
243 /usr/sbin/useradd -u 43 -d /tmp -s /bin/false \
244 -c "Clam Anti Virus Checker" -g clamav clamav 1>&2
245 if [ -n "`/usr/bin/getgid amavis`" ]; then
246 echo "adding clamav to amavis group"
247 /usr/sbin/usermod -G amavis clamav 1>&2
252 /sbin/chkconfig --add clamd
253 if [ -f /var/lock/subsys/clamd ]; then
254 /etc/rc.d/init.d/clamd restart >&2
256 echo "Run \"/etc/rc.d/init.d/clamd start\" to start Clam Antivirus daemon." >&2
258 touch %{_var}/log/freshclam.log
259 chown clamav:root %{_var}/log/freshclam.log
260 chmod 640 %{_var}/log/freshclam.log
263 if [ "$1" = "0" ]; then
264 if [ -f /var/lock/subsys/clamd ]; then
265 /etc/rc.d/init.d/clamd stop
267 /sbin/chkconfig --del clamd
271 if [ "$1" = "0" ]; then
276 %triggerpostun -- %{name} <= 0.75.1
277 if [ -f /etc/clamav.conf.rpmsave ]; then
278 echo "Renaming config to new name /etc/clamd.conf"
279 mv -f /etc/clamd.conf /etc/clamd.conf.rpmnew
280 mv -f /etc/clamav.conf.rpmsave /etc/clamd.conf
281 echo "Changing config location in freshclam config"
282 sed -i -e 's/clamav.conf/clamd.conf/' /etc/freshclam.conf
287 /sbin/chkconfig --add clamav-milter
288 if [ -f /var/lock/subsys/clamav-milter ]; then
289 /etc/rc.d/init.d/clamd restart >&2
291 echo "Run \"/etc/rc.d/init.d/clamav-milter start\" to start Clam Antivirus daemon." >&2
295 if [ "$1" = "0" ]; then
296 if [ -f /var/lock/subsys/clamav-milter ]; then
297 /etc/rc.d/init.d/clamav-milter stop
299 /sbin/chkconfig --del clamav-milter
302 %post libs -p /sbin/ldconfig
303 %postun libs -p /sbin/ldconfig
305 %post database -p %{_sbindir}/%{name}-post-updatedb
308 %defattr(644,root,root,755)
309 %doc AUTHORS ChangeLog FAQ NEWS README TODO docs/*.pdf
310 %attr(755,root,root) %{_bindir}/clamdscan
311 %attr(755,root,root) %{_bindir}/clamscan
312 %attr(755,root,root) %{_bindir}/freshclam
313 %attr(755,root,root) %{_bindir}/sigtool
314 %attr(755,root,root) %{_sbindir}/clamd
315 %attr(755,root,root) %{_sbindir}/clamav-cron-updatedb
316 %attr(755,clamav,root) %dir /var/lib/%{name}
317 %attr(640,clamav,root) %ghost %{_var}/log/freshclam.log
318 %attr(750,clamav,clamav) %dir %{_var}/run/%{name}
320 %attr(640,root,root) %{_sysconfdir}/cron.d/%{name}
321 %attr(644,root,root) %config(noreplace) %verify(not md5 size mtime) /etc/clamd.conf
322 %attr(644,root,root) %config(noreplace) %verify(not md5 size mtime) /etc/freshclam.conf
324 %attr(754,root,root) /etc/rc.d/init.d/clamd
325 %attr(640,root,root) %config(noreplace) %verify(not md5 size mtime) /etc/sysconfig/clamd
326 %attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/logrotate.d/clamav
328 %{_mandir}/man8/clamd*
332 %defattr(644,root,root,755)
333 %config(noreplace) %{_sysconfdir}/sysconfig/clamav-milter
334 %attr(754,root,root) /etc/rc.d/init.d/clamav-milter
335 #%attr(755,root,root) %{_sysconfdir}/cron.daily/clamav-milter
336 #%attr(755,root,root) %{_sysconfdir}/log.d/scripts/services/clamav-milter
337 #%{_sysconfdir}/log.d/conf/services/clamav-milter.conf
338 %attr(755,root,root) %{_sbindir}/clamav-milter
339 %{_mandir}/man8/clamav-milter.8*
340 %attr(700,clamav,clamav) /var/spool/clamav/
344 %defattr(644,root,root,755)
345 %attr(755,root,root) %{_libdir}/lib*.so.*.*
348 %defattr(644,root,root,755)
349 %attr(755,root,root) %{_bindir}/clamav-config
350 %attr(755,root,root) %{_libdir}/lib*.so
353 %{_pkgconfigdir}/*.pc
356 %defattr(644,root,root,755)
360 %defattr(644,root,root,755)
361 %attr(755,root,root) %{_sbindir}/clamav-post-updatedb
362 %attr(644,clamav,root) %verify(not md5 size mtime) /var/lib/%{name}/*.cvd