# TODO: # - Make freshclam package (script and daemon) # - restart amavis in triggers if group membership was modified? # # Conditional build: %bcond_without milter # milter interface subpackage %bcond_without llvm # LLVM support %if "%{pld_release}" == "ac" %undefine with_llvm %endif %ifarch x32 %undefine with_llvm %endif Summary: An anti-virus utility for Unix Summary(pl.UTF-8): Narzędzie antywirusowe dla Uniksów Name: clamav Version: 0.98.7 Release: 2 License: GPL v2+ Group: Daemons Source0: http://downloads.sourceforge.net/clamav/%{name}-%{version}.tar.gz # Source0-md5: 157c601161da1c2d5a0e48ea1b49e067 Source1: %{name}.init Source2: %{name}.sysconfig Source3: %{name}-milter.init Source4: %{name}-cron-updatedb Source5: %{name}.logrotate Source8: %{name}-post-updatedb Source9: %{name}-milter.sysconfig Source10: %{name}.tmpfiles Source11: clamd.service Patch0: %{name}-pld_config.patch Patch1: %{name}-nolibs.patch %if "%{pld_release}" == "ac" Patch2: am-nosilentrules.patch %endif Patch3: ac2.68.patch Patch4: %{name}-openssl.patch Patch5: %{name}-major.patch Patch6: x32.patch URL: http://www.clamav.net/ BuildRequires: autoconf BuildRequires: automake BuildRequires: bzip2-devel BuildRequires: curl-devel BuildRequires: gmp-devel BuildRequires: libltdl-devel %{?with_milter:BuildRequires: libmilter-devel} BuildRequires: libstdc++-devel BuildRequires: libtool %{?with_milter:BuildRequires: libwrap-devel} %{?with_llvm:BuildRequires: llvm-devel} BuildRequires: ncurses-devel BuildRequires: openssl-devel BuildRequires: rpm >= 4.4.9-56 BuildRequires: rpmbuild(macros) >= 1.647 BuildRequires: zlib-devel Requires(post,preun): /sbin/chkconfig Requires(postun): /usr/sbin/groupdel Requires(postun): /usr/sbin/userdel Requires(postun,pre): /usr/sbin/usermod Requires(pre): /bin/id Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd Requires(post,preun,postun): systemd-units >= 38 Requires: systemd-units >= 38 Requires(triggerpostun): sed >= 4.0 Requires: %{name}-libs = %{epoch}:%{version}-%{release} Requires: /usr/sbin/usermod Requires: rc-scripts >= 0.4.1.23 Suggests: clamav-database Suggests: crondaemon Provides: group(clamav) Provides: user(clamav) Conflicts: logrotate < 3.7-4 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description Clam AntiVirus is an open source anti-virus toolkit for UNIX, designed especially for e-mail scanning on mail gateways. It provides a number of utilities including a flexible and scalable multi-threaded daemon, a command line scanner and advanced tool for automatic database updates. The core of the package is an anti-virus engine available in a form of shared library. Here is a list of the main features: - command-line scanner - fast, multi-threaded daemon with support for on-access scanning - milter interface for sendmail - advanced database updater with support for scripted updates and digital signatures - virus scanner C library - on-access scanning (Linux® and FreeBSD®) - virus database updated multiple times per day (see home page for total number of signatures) - built-in support for various archive formats, including Zip, RAR, Tar, Gzip, Bzip2, OLE2, Cabinet, CHM, BinHex, SIS and others - built-in support for almost all mail file formats - built-in support for ELF executables and Portable Executable files compressed with UPX, FSG, Petite, NsPack, wwpack32, MEW, Upack and obfuscated with SUE, Y0da Cryptor and others - built-in support for popular document formats including MS Office and MacOffice files, HTML, RTF and PDF %description -l pl.UTF-8 Clam Antivirus jest potężnym skanerem antywirusowym dla systemów uniksowych. Wspiera on AMaViSa, skompresowane pliki, skanowanie "on-access" i posiada system bezpiecznej, automatycznej aktualizacji. Baza wirusów zawiera ponad 90000 sygnatur. Skaner jest wielowątkowy, napisany w C i zgodny z POSIXem. %package libs Summary: Shared libraries for clamav Summary(pl.UTF-8): Biblioteki dzielone clamav Group: Libraries %description libs Shared libraries for clamav. %description libs -l pl.UTF-8 Biblioteki dzielone clamav. %package milter Summary: ClamAV filter using milter interface Summary(pl.UTF-8): Filtr ClamAV korzystający z interfejsu milter Group: Daemons Requires: %{name} = %{epoch}:%{version}-%{release} Requires: postfix #Requires: sendmail >= 8.11 Requires: tcp_wrappers %description milter ClamAV sendmail filter using MILTER interface. %description milter -l pl.UTF-8 Filtr ClamAV dla sendmaila korzystający z interfejsu MILTER. %package devel Summary: clamav - Development header files and libraries Summary(pl.UTF-8): clamav - Pliki nagłówkowe i biblioteki dla programistów Group: Development/Libraries Requires: %{name}-libs = %{epoch}:%{version}-%{release} Requires: bzip2-devel Requires: curl-devel Requires: gmp-devel Requires: openssl-devel Requires: zlib-devel %description devel This package contains the development header files and libraries necessary to develop clamav client applications. %description devel -l pl.UTF-8 Pliki nagłówkowe i biblioteki konieczne do kompilacji aplikacji klienckich clamav. %package static Summary: clamav static libraries Summary(pl.UTF-8): Biblioteki statyczne clamav Group: Development/Libraries Requires: %{name}-devel = %{epoch}:%{version}-%{release} %description static clamav static libraries. %description static -l pl.UTF-8 Biblioteki statyczne clamav. %prep %setup -q %patch0 -p1 %patch1 -p1 %if "%{pld_release}" == "ac" %patch2 -p1 %endif %if "%{pld_release}" != "ac" %patch3 -p1 %endif #%patch4 -p1 %patch5 -p1 %patch6 -p1 %build %{__libtoolize} %{__aclocal} -I m4 %{__autoconf} %{__autoheader} %{__automake} %configure \ --disable-silent-rules \ --disable-clamav \ --enable-clamdtop \ %{?with_llvm:--enable-llvm --with-system-llvm} \ %{?with_milter:--enable-milter} \ --with-dbdir=/var/lib/%{name} \ --with-no-cache \ --with-ltdl-include=%{_includedir} \ --with-ltdl-lib=%{_libdir} %{__make} \ LIBTOOL=%{_bindir}/libtool %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT/etc/{cron.d,logrotate.d,rc.d/init.d,sysconfig} \ $RPM_BUILD_ROOT%{_var}/{log,spool/clamav,lib/clamav} \ $RPM_BUILD_ROOT%{systemdtmpfilesdir} \ $RPM_BUILD_ROOT%{systemdunitdir} %{__make} install \ LIBTOOL=%{_bindir}/libtool \ DESTDIR=$RPM_BUILD_ROOT %{!?with_milter:rm -f $RPM_BUILD_ROOT%{_mandir}/man8/clamav-milter.8*} cat <<'EOF' >$RPM_BUILD_ROOT/etc/cron.d/%{name} 5 * * * * root %{_sbindir}/clamav-cron-updatedb EOF install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/clamd %if %{with milter} install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/clamav-milter cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/clamav-milter %endif cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/clamd install -p %{SOURCE4} $RPM_BUILD_ROOT%{_sbindir}/clamav-cron-updatedb for i in $RPM_BUILD_ROOT%{_sysconfdir}/*.conf.sample; do mv $i ${i%%.sample} done cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/%{name} install -p %{SOURCE8} $RPM_BUILD_ROOT%{_sbindir} cp -p %{SOURCE10} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf cp -p %{SOURCE11} $RPM_BUILD_ROOT%{systemdunitdir} # NOTE: clamd uses sane rights to it's clamd.pid file # So better keep it dir # If it is fixed use of dir will be unecesary install -d $RPM_BUILD_ROOT/var/run/%{name} :> $RPM_BUILD_ROOT/var/log/freshclam.log %clean rm -rf $RPM_BUILD_ROOT %triggerin -- amavis-ng %addusertogroup -q clamav amavis %triggerin -- amavisd-new %addusertogroup -q clamav amavis %triggerin -- amavisd %addusertogroup -q clamav amavis %pre %groupadd -g 43 clamav %useradd -u 43 -d /tmp -s /bin/false -c "Clam Anti Virus Checker" -g clamav clamav %post /sbin/chkconfig --add clamd %service clamd restart "Clam Antivirus daemon" touch /var/log/freshclam.log chown clamav:root /var/log/freshclam.log chmod 640 /var/log/freshclam.log %systemd_post clamd.service %preun if [ "$1" = "0" ]; then %service clamd stop /sbin/chkconfig --del clamd fi %systemd_preun clamd.service %postun if [ "$1" = "0" ]; then %userremove clamav %groupremove clamav fi %systemd_reload %triggerpostun -- %{name} < 0.80 if [ -f /etc/clamav.conf.rpmsave ]; then echo "Renaming config to new name /etc/clamd.conf" mv -f /etc/clamd.conf /etc/clamd.conf.rpmnew mv -f /etc/clamav.conf.rpmsave /etc/clamd.conf echo "Changing config location in freshclam config" %{__sed} -i -e 's/clamav.conf/clamd.conf/' /etc/freshclam.conf fi %triggerpostun -- %{name} < 0.90-0.rc2.0.10 %{__cp} -f /etc/clamd.conf{,.rpmsave} %{__sed} -i -e ' s,^LogSyslog$,& yes, s,^FixStaleSocket$,& yes, s,^AllowSupplementaryGroups$,& yes, s,^ClamukoScanOnOpen$,& yes, s,^ClamukoScanOnClose$,& yes, s,^ClamukoScanOnExec$,& yes, s,^LogTime$,& yes, s,^ScanPE$,& yes, ' /etc/clamd.conf %banner -e %{name}-0.90 <