# 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 # perform "make test"
+%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): Filtr antyspamowy, przeznaczony dla programów dostarczaj±cych pocztê (MDA)
+Summary(pl.UTF-8): Filtr antyspamowy, przeznaczony dla programów dostarczających pocztę (MDA)
Name: spamassassin
-Version: 3.1.7
-Release: 3
+Version: 3.2.1
+Release: 1
License: Apache Software License v2
Group: Applications/Mail
-Source0: http://www.apache.net.pl/spamassassin/source/Mail-SpamAssassin-%{version}.tar.bz2
-# Source0-md5: 77242e45baa7e2b418e4d3f22a86a69e
+Source0: http://www.apache.net.pl/spamassassin/source/%{pdir}-%{pnam}-%{version}.tar.bz2
+# 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: perl-Encode-Detect
BuildRequires: perl-MIME-Base64
BuildRequires: perl-MIME-tools
+BuildRequires: perl-Mail-DKIM
+BuildRequires: perl-Mail-DomainKeys
+BuildRequires: perl-Mail-SPF
BuildRequires: perl-MailTools
+BuildRequires: perl-Razor > 2.61
+BUildRequires: perl-Compress-Zlib
%endif
BuildRequires: rpm-perlprov >= 4.1-13
Requires: perl-Mail-SpamAssassin = %{version}-%{release}
-Requires: perl-IO-Socket-SSL
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.
-%description -l pl
-SpamAssassin daje mo¿liwo¶æ zredukowania, je¶li nie kompletnego
+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
-Commercial Email, spamu) z poczty. Mo¿e byæ wywo³ywany z MDA, np.
-Sendmaila czy Postfiksa, lub z pliku ~/.forward itp. U¿ywa ogólnego
-algorytmu oceniania w celu identyfikacji wiadomo¶ci, które wygl±daj±
-na SPAM, po czym dodaje nag³ówki do wiadomo¶ci, umo¿liwiaj±c
-filtrowanie przez oprogramowanie u¿ytkownika. Ta dystrybucja zawiera
-programy spamd/spamc, umo¿liwiaj±ce uruchomienie serwera, co znacznie
+Commercial Email, spamu) z poczty. Może być wywoływany z MDA, np.
+Sendmaila czy Postfiksa, lub z pliku ~/.forward itp. Używa ogólnego
+algorytmu oceniania w celu identyfikacji wiadomości, które wyglądają
+na SPAM, po czym dodaje nagłówki do wiadomości, umożliwiając
+filtrowanie przez oprogramowanie użytkownika. Ta dystrybucja zawiera
+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): Przeró¿ne narzêdzia zwi±zane z SpamAssassin
+Summary(pl.UTF-8): Przeróżne narzędzia związane z SpamAssassin
Group: Applications/Mail
Obsoletes: SpamAssassin-tools
Miscleanous tools from various authors, distributed with SpamAssassin.
See /usr/share/doc/spamassassin-tools-*/.
-%description tools -l pl
-Przeró¿ne narzêdzia, dystrybuowane razem ze SpamAssassinem. Wiêcej
+%description tools -l pl.UTF-8
+Przeróżne narzędzia, dystrybuowane razem ze SpamAssassinem. Więcej
informacji w /usr/share/doc/spamassassin-tools-*/.
%package spamd
Summary: spamd - daemonized version of spamassassin
-Summary(pl): spamd - spamassassin w postaci demona
+Summary(pl.UTF-8): spamd - spamassassin w postaci demona
Group: Applications/Mail
Requires(post,preun): /sbin/chkconfig
Requires: perl-Mail-SpamAssassin = %{version}-%{release}
Requires: rc-scripts
+Suggests: spamassassin-update
+Suggests: perl-IO-Socket-SSL
%description spamd
The purpose of this program is to provide a daemonized version of the
This is intended to be used alongside "spamc", a fast, low-overhead C
client program.
-%description spamd -l pl
-Spamd jest "demoniczn±" wersj± spamassassina. Jego zadaniem jest
-poprawa wydajno¶ci automatycznego sprawdzania poczty.
+%description spamd -l pl.UTF-8
+Spamd jest "demoniczną" wersją spamassassina. Jego zadaniem jest
+poprawa wydajności automatycznego sprawdzania poczty.
-Spamd powinien byæ u¿ywany wespó³ ze "spamc", który jest szybkim i
+Spamd powinien być używany wespół ze "spamc", który jest szybkim i
wydajnym programem klienckim.
%package spamc
Summary: spamc - client for spamd
-Summary(pl): spamc - klient dla spamd
+Summary(pl.UTF-8): spamc - klient dla spamd
Group: Applications/Mail
%description spamc
overhead in loading, so it should be much faster to load than the
whole spamassassin program.
-%description spamc -l pl
-Spamc powinien byæ u¿ywany zamiast "spamassassina" w skryptach
-przetwarzaj±cych pocztê. Zczytuje pocztê ze STDIN, kolejkuje j± a
-nastêpnie przekazuje spamdowi, odczytuje wynik i podaje go na STDOUT.
-Spamc stara siê nie obci±¿aæ zbytnio procesora podczas ³adowania,
-dziêki czemu powinien dzia³aæ szybciej ni¿ sam spamassassin.
+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
+następnie przekazuje spamdowi, odczytuje wynik i podaje go na STDOUT.
+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): sa-update - automatyczne uaktualnianie regu³ek SpamAssassina
+Summary(pl.UTF-8): sa-update - automatyczne uaktualnianie regułek SpamAssassina
Group: Applications/Mail
Requires: gnupg
Requires: perl-Archive-Tar
Requires: perl-Mail-SpamAssassin = %{version}-%{release}
+Requires: perl-libwww
%description update
sa-update automates the process of downloading and installing new
Update archives are verified by default using SHA1 hashes and GPG
signatures.
-%description update -l pl
-sa-update automatyzuje proces ¶ci±gania i instalowania nowych regu³ek
-i konfiguracji w oparciu o kana³y. Domy¶lny kana³ to
-updates.spamassassin.org, który ma uaktualnione regu³ki od czasu
+%description update -l pl.UTF-8
+sa-update automatyzuje proces ściągania i instalowania nowych regułek
+i konfiguracji w oparciu o kanały. Domyślny kanał to
+updates.spamassassin.org, który ma uaktualnione regułki od czasu
poprzedniego wydania.
-Archiwa uaktualnieñ s± sprawdzane domy¶lnie przy u¿yciu skrótów SHA1 i
-podpisów GPG.
+Archiwa uaktualnień są sprawdzane domyślnie przy użyciu skrótów SHA1 i
+podpisów GPG.
%package -n perl-Mail-SpamAssassin
Summary: Mail::SpamAssassin - SpamAssassin e-mail filter libraries
-Summary(pl): Mail::SpamAssassin - biblioteki filtra poczty SpamAssassin
+Summary(pl.UTF-8): Mail::SpamAssassin - biblioteki filtra poczty SpamAssassin
Group: Development/Languages/Perl
Requires: perl-Cache-DB_File >= 0.2
Requires: perl-HTML-Parser >= 3
email. Once identified, the mail can then be optionally tagged as spam
for later filtering using the user's own mail user-agent application.
-%description -n perl-Mail-SpamAssassin -l pl
-Mail::SpamAssassin jest pluginem dla Mail::Audit, s³u¿±cym do
-identyfikacji spamu przy u¿yciu analizy zawarto¶ci i/lub internetowych
+%description -n perl-Mail-SpamAssassin -l pl.UTF-8
+Mail::SpamAssassin jest pluginem dla Mail::Audit, służącym do
+identyfikacji spamu przy użyciu analizy zawartości i/lub internetowych
czarnych list. Do zidentyfikowania jako ,,spam'' stosuje szeroki
-zakres testów heurystycznych na nag³ówkach i tre¶ci, posi³kuj±c siê
-stworzon± wcze¶niej baz± regu³. Po zidentyfikowaniu, poczta mo¿e byæ
-oznaczona jako spam w celu pó¼niejszego wyfiltrowania, np. przy u¿yciu
+zakres testów heurystycznych na nagłówkach i treści, posiłkując się
+stworzoną wcześniej bazą reguł. Po zidentyfikowaniu, poczta może być
+oznaczona jako spam w celu późniejszego wyfiltrowania, np. przy użyciu
aplikacji do czytania poczty.
%prep
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.*}
%files
%defattr(644,root,root,755)
-%doc BUGS CREDITS Changes INSTALL README STATUS TRADEMARK UPGRADE USAGE
+%doc CREDITS Changes INSTALL README TRADEMARK UPGRADE USAGE
%doc procmailrc.example
+%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-learn*
%files tools
%defattr(644,root,root,755)
-%doc sql ldap tools masses contrib
+%doc sql ldap
%files spamd
%defattr(644,root,root,755)
%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/*