# TODO
# - build lib{,ssl}spamc.so (if there is a point)
+# - kill "update" subpackage and move it to perl-Mail-SpamAssassin?
+# it's `strongly recommended' in 3.2.0 (instead of `optional').
+# - is it possible to package compiled results in -compile or the result is
+# site/machine dependant?
#
# Conditional build:
%bcond_without tests # do not perform "make test"
%include /usr/lib/rpm/macros.perl
%define pdir Mail
%define pnam SpamAssassin
+%define sa_version %(printf %d.%03d%03d $(echo %{version} | tr '.' ' '))
Summary: A spam filter for email which can be invoked from mail delivery agents
Summary(pl.UTF-8): Filtr antyspamowy, przeznaczony dla programów dostarczających pocztę (MDA)
Name: spamassassin
-Version: 3.2.0
+Version: 3.2.1
Release: 1
License: Apache Software License v2
Group: Applications/Mail
Source0: http://www.apache.net.pl/spamassassin/source/%{pdir}-%{pnam}-%{version}.tar.bz2
-# Source0-md5: 6840e3be132e2c3cbf66298b0227e880
+# Source0-md5: 7b2fdbcdca5e9a181d4bb1b17663c138
Source1: %{name}.sysconfig
Source2: %{name}-spamd.init
+Source3: %{name}-default.rc
+Source4: %{name}-spamc.rc
URL: http://spamassassin.apache.org/
BuildRequires: openssl-devel >= 0.9.7d
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.16
#BuildRequires: perl-Razor2
BuildRequires: perl-devel >= 1:5.8.0
BuildRequires: perl-libwww
+BuildRequires: re2c
BuildRequires: rpmbuild(macros) >= 1.310
%if %{with tests}
# are these really needed?
BuildRequires: rpm-perlprov >= 4.1-13
Requires: perl-Mail-SpamAssassin = %{version}-%{release}
Obsoletes: SpamAssassin
+Suggests: spamassassin-update
+Suggests: spamassassin-compile
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _noautoreq 'perl(Razor2::Client::Agent)' 'perl(Razor::Agent)' 'perl(Razor::Client)' 'perl(DBI)' 'perl(Net::Ident)'
spamd/spamc components which create a server that considerably speeds
processing of mail.
+To enable spamassassin, if you are receiving mail locally, simply add
+this line to your ~/.procmailrc:
+INCLUDERC=/etc/mail/spamassassin/spamassassin-default.rc
+
+To filter spam for all users, add that line to /etc/procmailrc
+(creating if necessary).
+
%description -l pl.UTF-8
SpamAssassin daje możliwość zredukowania, jeśli nie kompletnego
wyeliminowania niezamawianej komercyjnej poczty (Unsolicited
programy spamd/spamc, umożliwiające uruchomienie serwera, co znacznie
przyspieszy proces przetwarzania poczty.
+Aby uruchomić spamassassina dla lokalnie przychodzącej poczty,
+wystarczy dodać do własnego ~/.procmailrc linię:
+INCLUDERC=/etc/mail/spamassassin/spamassassin-default.rc
+
+Aby filtrować spam dla wszystkich użytkowników, należy dodać tę linię
+do pliku /etc/procmailrc (tworząc go w razie potrzeby).
+
%package tools
Summary: Miscleanous tools for SpamAssassin
Summary(pl.UTF-8): Przeróżne narzędzia związane z SpamAssassin
Requires(post,preun): /sbin/chkconfig
Requires: perl-Mail-SpamAssassin = %{version}-%{release}
Requires: rc-scripts
-#Suggests: perl-IO-Socket-SSL
+Suggests: spamassassin-update
+Suggests: perl-IO-Socket-SSL
%description spamd
The purpose of this program is to provide a daemonized version of the
overhead in loading, so it should be much faster to load than the
whole spamassassin program.
+To enable spamassassin, if you are receiving mail locally, simply add
+this line to your ~/.procmailrc:
+INCLUDERC=/etc/mail/spamassassin/spamassassin-spamc.rc
+
+To filter spam for all users, add that line to /etc/procmailrc
+(creating if necessary).
+
%description spamc -l pl.UTF-8
Spamc powinien być używany zamiast "spamassassina" w skryptach
przetwarzających pocztę. Zczytuje pocztę ze STDIN, kolejkuje ją a
Spamc stara się nie obciążać zbytnio procesora podczas ładowania,
dzięki czemu powinien działać szybciej niż sam spamassassin.
+Aby uruchomić spamassassina dla lokalnie przychodzącej poczty,
+wystarczy dodać do własnego ~/.procmailrc linię:
+INCLUDERC=/etc/mail/spamassassin/spamassassin-spamc.rc
+
+Aby filtrować spam dla wszystkich użytkowników, należy dodać tę linię
+do pliku /etc/procmailrc (tworząc go w razie potrzeby).
+
+%package compile
+Summary: sa-compile - compile SpamAssassin ruleset into native code
+Summary(pl.UTF-8): sa-compile - kompilowanie reguł SpamAssasina do kodu natywnego
+Group: Applications/Mail
+Requires: gcc
+Requires: glibc-devel
+Requires: make
+Requires: perl(ExtUtils::MakeMaker)
+Requires: perl-Mail-SpamAssassin = %{version}-%{release}
+Requires: perl-devel
+Requires: re2c >= 0.10
+
+%description compile
+sa-compile uses "re2c" to compile the SpamAssassin ruleset. This is
+then used by the "Mail::SpamAssassin::Plugin::Rule2XSBody" plugin to
+speed up SpamAssassin's operation, where possible, and when that
+plugin is loaded.
+
+%description compile -l pl.UTF-8
+sa-compile wykorzystuje re2c do kompilacji reguł SpamAssassina. Służy
+to do przyspieszenia operacji SpamAssassina w miarę możliwości, kiedy
+ta wtyczka jest wczytana.
+
%package update
Summary: sa-update - automate SpamAssassin rule updates
Summary(pl.UTF-8): sa-update - automatyczne uaktualnianie regułek SpamAssassina
CC="%{__cc}" \
OPTIMIZE="%{rpmcflags}"
+%{__sed} -e "s,@@LOCAL_STATE_DIR@@,$(pwd)," sa-compile.raw > sa-compile.pl
+%{__perl} -T sa-compile.pl --siteconfigpath=rules
+rm -f compiled/%{sa_version}/auto/Mail/SpamAssassin/CompiledRegexps/body_0/.packlist
+
%{?with_tests:%{__make} test}
%install
install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/spamd
install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/spamd
+install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/mail/spamassassin
+install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/mail/spamassassin
-# sa-update dirs
-install -d $RPM_BUILD_ROOT/var/lib/spamassassin/$(printf %d.%03d%03d $(echo %{version} | tr '.' ' '))
+# sa-update, sa-compile
+install -d $RPM_BUILD_ROOT/var/lib/spamassassin/{%{sa_version},compiled/%{sa_version}}
install -d $RPM_BUILD_ROOT%{_sysconfdir}/mail/spamassassin/sa-update-keys
touch $RPM_BUILD_ROOT%{_sysconfdir}/mail/spamassassin/sa-update-keys/{pubring,secring,trustdb}.gpg
+cp -a compiled/%{sa_version} $RPM_BUILD_ROOT/var/lib/spamassassin/compiled
rm -f $RPM_BUILD_ROOT{%{perl_archlib}/perllocal.pod,%{perl_vendorarch}/auto/Mail/SpamAssassin/.packlist,%{_mandir}/man3/spamassassin-run.*}
%defattr(644,root,root,755)
%doc CREDITS Changes INSTALL README TRADEMARK UPGRADE USAGE
%doc procmailrc.example
-%attr(755,root,root) %{_bindir}/sa-compile
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/spamassassin/spamassassin-default.rc
%attr(755,root,root) %{_bindir}/sa-learn
%attr(755,root,root) %{_bindir}/spamassassin
+
# It's needed for help of spamassassin command.
%{perl_vendorlib}/spamassassin-run.pod
-%{_mandir}/man1/sa-compile*
%{_mandir}/man1/sa-learn*
%{_mandir}/man1/spamassassin*
%files spamc
%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mail/spamassassin/spamassassin-spamc.rc
%attr(755,root,root) %{_bindir}/spamc
%{_mandir}/man1/spamc*
+%files compile
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/sa-compile
+%{_mandir}/man1/sa-compile*
+%dir /var/lib/spamassassin/compiled
+%dir /var/lib/spamassassin/compiled/%{sa_version}
+
+# maybe include these in main package?
+%dir /var/lib/spamassassin/compiled/%{sa_version}/auto
+%dir /var/lib/spamassassin/compiled/%{sa_version}/auto/Mail
+%dir /var/lib/spamassassin/compiled/%{sa_version}/auto/Mail/SpamAssassin/CompiledRegexps
+%dir /var/lib/spamassassin/compiled/%{sa_version}/auto/Mail/SpamAssassin/CompiledRegexps/body_0
+%config(noreplace) %verify(not md5 mtime size) %attr(755,root,root) /var/lib/spamassassin/compiled/%{sa_version}/auto/Mail/SpamAssassin/CompiledRegexps/body_0/body_0.so
+%config(noreplace) %verify(not md5 mtime size) /var/lib/spamassassin/compiled/%{sa_version}/auto/Mail/SpamAssassin/CompiledRegexps/body_0/body_0.bs
+%dir /var/lib/spamassassin/compiled/%{sa_version}/Mail
+%dir /var/lib/spamassassin/compiled/%{sa_version}/Mail/SpamAssassin
+%dir /var/lib/spamassassin/compiled/%{sa_version}/Mail/SpamAssassin/CompiledRegexps
+%config(noreplace) %verify(not md5 mtime size) /var/lib/spamassassin/compiled/%{sa_version}/Mail/SpamAssassin/CompiledRegexps/body_0.pm
+%config(noreplace) %verify(not md5 mtime size) /var/lib/spamassassin/compiled/%{sa_version}/bases_body_0.pl
+
%files update
%defattr(644,root,root,755)
%attr(700,root,root) %dir %{_sysconfdir}/mail/spamassassin/sa-update-keys
%attr(700,root,root) %ghost %{_sysconfdir}/mail/spamassassin/sa-update-keys/*
%attr(755,root,root) %{_bindir}/sa-update
%{_datadir}/spamassassin/sa-update-pubkey.txt
-%dir /var/lib/spamassassin
-%dir /var/lib/spamassassin/*
+%dir /var/lib/spamassassin/%{sa_version}
%{_mandir}/man1/sa-update*
%files -n perl-Mail-SpamAssassin
%config(noreplace) %{_datadir}/spamassassin/*
%exclude %{_datadir}/spamassassin/sa-update-pubkey.txt
+%dir /var/lib/spamassassin
+
%{perl_vendorlib}/Mail/*
%{_mandir}/man3/*