looks like my attachment got clipped.

here is the SPEC file I use (with changelog snipped for brevity):


# $Id: clamav.spec 6047 2007-12-19 11:20:08Z dag $
# Authority: dag
# Upstream: <clamav-devel$lists,sf,net>

### FIXME: Sysv script does not have condrestart option (redo sysv script)
### FIXME: amavisd-new requires clamd to run as user vscan, solution needed
### REMINDER: Look and sync with Petr Kristof's work

### sendmail has been updated on EL2, no longer true.
#%{?el2:#define _without_milter 1}

Summary: Anti-virus software
Name: clamav
Version: 0.93
Release: 3
License: GPL
Group: Applications/System
URL: http://www.clamav.net/

#Source: http://www.clamav.net/clamav-%{version}.tar.gz
#Source: http://dl.sf.net/clamav/clamav-%{version}.tar.gz
Source: /usr/src/redhat/SOURCESS/clamav-%{version}.%{release}.tar.gz
Source1: clamav.init
Source2: clamav-milter.init
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root

BuildRequires: bzip2-devel, zlib-devel, gmp-devel, curl-devel
%{!?_without_milter:BuildRequires: sendmail-devel >= 8.12}
Requires: clamav-db = %{version}-%{release}

### Fedora Extras introduced them differently :(
Obsoletes: libclamav <= %{version}-%{release}
Obsoletes: clamav-lib <= %{version}-%{release}
Provides: libclamav

%description
Clam AntiVirus is a GPL anti-virus toolkit for UNIX. The main purpose of
this software is the integration with mail servers (attachment scanning).
The package provides a flexible and scalable multi-threaded daemon, a
command line scanner, and a tool for automatic updating via Internet.

The programs are based on a shared library distributed with the Clam
AntiVirus package, which you can use with your own software. Most
importantly, the virus database is kept up to date

%package -n clamd
Summary: The Clam AntiVirus Daemon
Group: System Environment/Daemons
Requires: clamav = %{version}-%{release}
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd

### Fedora Extras introduced them differently :(
Obsoletes: clamav-server <= %{version}-%{release}

%description -n clamd
The Clam AntiVirus Daemon

%package milter
Summary: The Clam AntiVirus sendmail-milter Daemon
Group: Applications/System
Requires: clamd = %{version}-%{release}
Requires: sendmail

%description milter
The Clam AntiVirus sendmail-milter Daemon

%package db
Summary: Virus database for %{name}
Group: Applications/Databases
### Remove circular dependency
#Requires: clamav = %{version}-%{release}
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd

### Fedora Extras introduced them differently :(
Obsoletes: clamav-update <= %{version}-%{release}
Obsoletes: clamav-data <= %{version}-%{release}

%description db
The actual virus database for %{name}

%package devel
Summary: Header files, libraries and development documentation for %{name}
Group: Development/Libraries
Requires: clamav = %{version}-%{release}

### Fedora Extras introduced them differently :(
Obsoletes: libclamav-static-devel <= %{version}-%{release}
Obsoletes: libclamav-devel <= %{version}-%{release}
Provides: libclamav-static-devel, libclamav-devel

%description devel
This package contains the header files, static libraries and development
documentation for %{name}. If you like to develop programs using %{name},
you will need to install %{name}-devel.

%prep
%setup

%{__perl} -pi.orig -e 's|/lib\b|/%{_lib}|g;' libtool configure

%{__perl} -pi.orig -e '
         s|[EMAIL PROTECTED]@|\$(localstatedir)/clamav|g;
         s|[EMAIL PROTECTED]@|\$(localstatedir)/clamav|g;
         s|[EMAIL PROTECTED]@|\$(sysconfdir)|g;
         s|[EMAIL PROTECTED]@|\$(sysconfdir)|g;
         s|[EMAIL PROTECTED]@|\t|g;
         s|[EMAIL PROTECTED]@|\t|g;
     ' database/Makefile.in etc/Makefile.in

%{__perl} -pi.orig -e '
         s|^(Example)|#$1|;
         s|^#(LogFile) .+$|$1 %{_localstatedir}/log/clamav/clamd.log|;
         s|^#(LogFileMaxSize) .*|$1 0|;
         s|^#(LogTime)|$1|;
         s|^#(LogSyslog)|$1|;
         s|^#(PidFile) .+$|$1 %{_localstatedir}/run/clamav/clamd.pid|;
         s|^#(TemporaryDirectory) .+$|$1 %{_localstatedir}/tmp|;
         s|^#(DatabaseDirectory) .+$|$1 %{_localstatedir}/clamav|;
         s|^#(LocalSocket) .+$|$1 %{_localstatedir}/run/clamav/clamd.sock|;
         s|^#(FixStaleSocket)|$1|;
         s|^#(TCPSocket) .+$|$1 3310|;
         s|^#(TCPAddr) .+$|$1 127.0.0.1|;
         s|^#(MaxConnectionQueueLength) .+$|$1 30|;
         s|^#(StreamSaveToDisk)|$1|;
         s|^#(MaxThreads) .+$|$1 50|;
         s|^#(ReadTimeout) .+$|$1 300|;
         s|^#(User) .+$|$1 clamav|;
         s|^#(AllowSupplementaryGroups).*$|$1 yes|;
         s|^#(ScanPE) .+$|$1 yes|;
         s|^#(ScanELF) .+$|$1 yes|;
         s|^#(DetectBrokenExecutables)|$1|;
         s|^#(ScanOLE2) .+$|$1 yes|;
         s|^#(ScanMail)|$1|;
         s|^#(ScanArchive) .+$|$1 yes|;
         s|^#(ArchiveMaxCompressionRatio) .+|$1 300|;
         s|^#(ArchiveBlockEncrypted)|$1|;
         s|^#(ArchiveBlockMax)|$1|;
     ' etc/clamd.conf

%{__perl} -pi.orig -e '
         s|^(Example)|#$1|;
         s|^#(DatabaseDirectory) .+$|$1 %{_localstatedir}/clamav|;
         s|^#(UpdateLogFile) .+$|$1 
%{_localstatedir}/log/clamav/freshclam.log|;
         s|^#(LogSyslog)|$1|;
         s|^#(DatabaseOwner) .+$|$1 clamav|;
         s|^(Checks) .+$|$1 24|;
         s|^#(NotifyClamd) .+$|$1 %{_sysconfdir}/clamd.conf|;
     ' etc/freshclam.conf

%{__cat} <<EOF >clamd.logrotate
%{_localstatedir}/log/clamav/clamd.log {
     missingok
     notifempty
     create 644 clamav clamav
     postrotate
         killall -HUP clamd 2>/dev/null || :
     endscript
}
EOF

%{__cat} <<EOF >freshclam.logrotate
%{_localstatedir}/log/clamav/freshclam.log {
     missingok
     notifempty
     create 644 clamav clamav
}
EOF

%{__cat} <<'EOF' >freshclam.cron
#!/bin/sh

### A simple update script for the clamav virus database.
### This could as well be replaced by a SysV script.

### fix log file if needed
LOG_FILE="%{_localstatedir}/log/clamav/freshclam.log"
if [ ! -f "$LOG_FILE" ]; then
     touch "$LOG_FILE"
     chmod 644 "$LOG_FILE"
     chown clamav.clamav "$LOG_FILE"
fi

%{_bindir}/freshclam \
     --quiet \
     --datadir="%{_localstatedir}/clamav" \
     --log="$LOG_FILE" \
     --log-verbose \
     --daemon-notify="%{_sysconfdir}/clamd.conf"
EOF

%{__cat} <<EOF >clamav-milter.sysconfig
### Simple config file for clamav-milter, you should
### read the documentation and tweak it as you wish.

CLAMAV_FLAGS="
     --config-file=%{_sysconfdir}/clamd.conf
     --force-scan
     --local
     --max-children=10
     --noreject
     --outgoing
     --quiet
"
SOCKET_ADDRESS="local:%{_localstatedir}/clamav/clmilter.socket"
EOF

%build
%configure  \
     --program-prefix="%{?_program_prefix}" \
     --disable-clamav \
     --disable-static \
     --disable-zlib-vcheck \
     --enable-dns \
     --enable-id-check \
%{!?_without_milter:--enable-milter} \
     --with-dbdir="%{_localstatedir}/clamav" \
     --with-group="clamav" \
     --with-libcurl \
     --with-user="clamav"
%{__make} %{?_smp_mflags}

%install
%{__rm} -rf %{buildroot}
%{__make} install DESTDIR="%{buildroot}"

%{__install} -Dp -m0755 %{SOURCE1} %{buildroot}%{_initrddir}/clamd
%{__install} -Dp -m0755 freshclam.cron 
%{buildroot}%{_sysconfdir}/cron.daily/freshclam
%{__install} -Dp -m0644 freshclam.logrotate 
%{buildroot}%{_sysconfdir}/logrotate.d/freshclam
%{__install} -Dp -m0644 clamd.logrotate 
%{buildroot}%{_sysconfdir}/logrotate.d/clamav

%if %{!?_without_milter:1}0
%{__install} -Dp -m0755 %{SOURCE2} %{buildroot}%{_initrddir}/clamav-milter
%{__install} -Dp -m0644 clamav-milter.sysconfig 
%{buildroot}%{_sysconfdir}/sysconfig/clamav-milter
%else
%{__rm} %{buildroot}%{_mandir}/man8/clamav-milter.8*
%endif

%{__install} -d -m0755 %{buildroot}%{_localstatedir}/log/clamav/
touch %{buildroot}%{_localstatedir}/log/clamav/freshclam.log
touch %{buildroot}%{_localstatedir}/log/clamav/clamd.log

%{__install} -d -m0755 %{buildroot}%{_localstatedir}/run/clamav/

%post
/sbin/ldconfig

ZONES="/usr/share/zoneinfo/zone.tab"
CONFIG="/etc/sysconfig/clock"

if [ -r "$CONFIG" -a -r "$ZONES" ]; then
     source "$CONFIG"
     export CODE="$(grep -E "\b$ZONE\b" "$ZONES" | head -1 | cut -f1 | 
tr [A-Z] [a-z])"
fi

if [ -z "$CODE" ]; then
     export CODE="local"
fi

%{__perl} -pi -e '
         s|^(DatabaseMirror) database\.clamav\.net$|$1 
db.$ENV{"CODE"}.clamav.net\n$1 db.local.clamav.net|;
         s|^(DatabaseMirror) db\.\.clamav\.net$|$1 
db.$ENV{"CODE"}.clamav.net\n$1 db.local.clamav.net|;
     ' %{_sysconfdir}/freshclam.conf{,.rpmnew} &>/dev/null || :

%postun -p /sbin/ldconfig

%pre -n clamd
/usr/sbin/groupadd -r clamav 2>/dev/null || :
/usr/sbin/useradd -r -d /var/clamav -s /sbin/nologin -c "Clam Anti Virus 
Checker" -g clamav clamav 2>/dev/null || :

%post -n clamd
/sbin/chkconfig --add clamd

%preun -n clamd
if [ $1 -eq 0 ]; then
     /sbin/service clamd stop &>/dev/null || :
     /sbin/chkconfig --del clamd
fi

%postun -n clamd
/sbin/service clamd condrestart &>/dev/null || :

%post milter
/sbin/chkconfig --add clamav-milter

%preun milter
if [ $1 -eq 0 ]; then
     /sbin/service clamav-milter stop &>/dev/null || :
     /sbin/chkconfig --del clamav-milter
fi

%postun milter
/sbin/service clamav-milter condrestart &>/dev/null || :

%pre db
/usr/sbin/groupadd -r clamav 2>/dev/null || :
/usr/sbin/useradd -r -d /var/clamav -s /sbin/nologin -c "Clam Anti Virus 
Checker" -g clamav clamav 2>/dev/null || :

%clean
%{__rm} -rf %{buildroot}

%files
%defattr(-, root, root, 0755)
%doc AUTHORS BUGS ChangeLog COPYING FAQ INSTALL NEWS README test/
%doc docs/*.pdf etc/freshclam.conf
%doc %{_mandir}/man1/sigtool.1*
%doc %{_mandir}/man1/clamscan.1*
%doc %{_mandir}/man1/freshclam.1*
%doc %{_mandir}/man5/freshclam.conf.5*
%config(noreplace) %{_sysconfdir}/freshclam.conf
%{_bindir}/clamscan
%{_bindir}/freshclam
%{_bindir}/sigtool
%{_libdir}/libclamav.so.*
%{_libdir}/libclamunrar.so.*
%{_libdir}/libclamunrar_iface.so.*

%files -n clamd
%defattr(-, root, root, 0755)
%doc contrib/clamdwatch/ etc/clamd.conf
%doc %{_mandir}/man1/clamdscan.1*
%doc %{_mandir}/man1/clamconf.1*
%doc %{_mandir}/man5/clamd.conf.5*
%doc %{_mandir}/man8/clamd.8*
%config(noreplace) %{_sysconfdir}/clamd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/clamav
%config %{_initrddir}/clamd
%{_sbindir}/clamd
%{_bindir}/clamconf
%{_bindir}/clamdscan

%defattr(0644, clamav, clamav, 0755)
%{_localstatedir}/run/clamav/
%dir %{_localstatedir}/clamav/
%dir %{_localstatedir}/log/clamav/
%ghost %{_localstatedir}/log/clamav/clamd.log
%exclude %{_localstatedir}/clamav/*

%if %{!?_without_milter:1}0
%files milter
%defattr(-, root, root, 0755)
%doc clamav-milter/INSTALL
%doc %{_mandir}/man8/clamav-milter.8*
%config(noreplace) %{_sysconfdir}/sysconfig/clamav-milter
%config %{_initrddir}/clamav-milter
%{_sbindir}/clamav-milter
%endif

%files db
%defattr(-, root, root, 0755)
%config(noreplace) %{_sysconfdir}/cron.daily/freshclam
%config(noreplace) %{_sysconfdir}/logrotate.d/freshclam

%defattr(0644, clamav, clamav, 0755)
%config(noreplace) %verify(user group mode) %{_localstatedir}/clamav/
%dir %{_localstatedir}/log/clamav/
%ghost %{_localstatedir}/log/clamav/freshclam.log

%files devel
%defattr(-, root, root, 0755)
%{_bindir}/clamav-config
%{_includedir}/clamav.h
%{_libdir}/libclamav.so
%{_libdir}/libclamunrar.so
%{_libdir}/libclamunrar_iface.so
%{_libdir}/pkgconfig/libclamav.pc
%exclude %{_libdir}/libclamav.la
%exclude %{_libdir}/libclamunrar.la
%exclude %{_libdir}/libclamunrar_iface.la

%changelog
* Mon Feb 11 2008 Dag Wieers <[EMAIL PROTECTED]> - 0.92.1-1
- Updated to release 0.92.1.
_______________________________________________
Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
http://www.clamav.net/support/ml

Reply via email to