%bcond_without mysql # disable MySQL storage driver
%bcond_without pgsql # disable PostgreSQL storage driver
%bcond_without sqlite # disable SQLite3 storage driver
-%bcond_without db # disable BerkeleyDB storage driver
%bcond_with mysql40 # use with mysql 4.0
#
%include /usr/lib/rpm/macros.perl
Summary: A library and Mail Delivery Agent for Bayesian spam filtering
-Summary(pl): Biblioteka i MDA do bayesowskiego filtrowania spamu
+Summary(pl.UTF-8): Biblioteka i MDA do bayesowskiego filtrowania spamu
Name: dspam
-Version: 3.6.5
-Release: 0.24
+Version: 3.8.0
+Release: 1
License: GPL
Group: Applications/Mail
-Source0: http://www.nuclearelephant.com/projects/dspam/sources/%{name}-%{version}.tar.gz
-# Source0-md5: da4f0e00633bff49d71fde418caaf14b
+Source0: http://dspam.nuclearelephant.com/sources/%{name}-%{version}.tar.gz
+# Source0-md5: 056b8c8b3ad9415a52c01b22ff1e64cf
Patch0: %{name}-webui.patch
Patch1: %{name}-config.patch
+Patch2: %{name}-speedup.patch
+Patch3: %{name}-autotools.patch
Source1: %{name}.init
Source2: %{name}-apache.conf
-URL: http://www.nuclearelephant.com/projects/dspam/
+URL: http://dspam.nuclearelephant.com/
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: clamav-devel
-%{?with_db:BuildRequires: db-devel}
BuildRequires: libtool
%{?with_mysql:BuildRequires: mysql-devel}
-BuildRequires: openldap-devel
+BuildRequires: openldap-devel >= 2.4.6
%{?with_pgsql:BuildRequires: postgresql-devel}
BuildRequires: rpm-perlprov >= 4.1-13
BuildRequires: rpmbuild(macros) >= 1.268
%{?with_sqlite:BuildRequires: sqlite3-devel}
BuildRequires: zlib-devel
Requires(post,preun): /sbin/chkconfig
+Requires: %{name}-driver = %{version}-%{release}
Requires: rc-scripts
Buildroot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
other MTA that supports an external local delivery agent (postfix,
qmail, etc.)
-%description -l pl
-DSPAM (czyli De-Spam) to projekt o otwartych ¼ród³ach maj±cy na celu
+%description -l pl.UTF-8
+DSPAM (czyli De-Spam) to projekt o otwartych źródłach mający na celu
stworzenie nowego rodzaju mechanizmu antyspamowego. Aktualnie jest
-efektywny zarówno jako dzia³aj±cy po stronie serwera agent dla
-uniksowych serwerów pocztowych jak i biblioteka dla programistów
-klientów pocztowych, innych narzêdzi antyspamowych i innych projektów
-wymagaj±cych filtrowania spamu w locie.
-
-Agent DSPAM zachowuje siê jak lokalny agent dostarczania poczty (MDA)
-i filtruje/uczy siê spamu przy u¿yciu zaawansowanego bayesowskiego
-przybli¿enia statystycznego (opartego na twierdzeniu Bayesa o
-po³±czonych prawdopodobieñstwach), daj±c nie wymagaj±c± obs³ugi
-administracyjnej, ³atwo ucz±c± siê us³ugê antyspamow± dostosowan± do
-zachowania ka¿dego u¿ytkownika. Metoda jest zaawansowana poniewa¿ na
-podstawie standardowego filtrowania bayesowskiego wprowadzono u¿ycie
-tokenów ³añcuchowych, eliminowanie ukrywanie i inne rozszerzenia.
-DSPAM dzia³a wspaniale z Sendmailem i Eximem, powinien dzia³aæ dobrze
-z ka¿dym innym MTA obs³uguj±cym zewnêtrznego agenta MDA (postfiksem,
+efektywny zarówno jako działający po stronie serwera agent dla
+uniksowych serwerów pocztowych jak i biblioteka dla programistów
+klientów pocztowych, innych narzędzi antyspamowych i innych projektów
+wymagających filtrowania spamu w locie.
+
+Agent DSPAM zachowuje się jak lokalny agent dostarczania poczty (MDA)
+i filtruje/uczy się spamu przy użyciu zaawansowanego bayesowskiego
+przybliżenia statystycznego (opartego na twierdzeniu Bayesa o
+połączonych prawdopodobieństwach), dając nie wymagającą obsługi
+administracyjnej, łatwo uczącą się usługę antyspamową dostosowaną do
+zachowania każdego użytkownika. Metoda jest zaawansowana ponieważ na
+podstawie standardowego filtrowania bayesowskiego wprowadzono użycie
+tokenów łańcuchowych, eliminowanie ukrywanie i inne rozszerzenia.
+DSPAM działa wspaniale z Sendmailem i Eximem, powinien działać dobrze
+z każdym innym MTA obsługującym zewnętrznego agenta MDA (postfiksem,
qmailem itd.).
%package client
Summary: dspam client
-Summary(pl): Klient dspam
+Summary(pl.UTF-8): Klient dspam
Group: Applications/Mail
# to get the same dspam.conf when both installed
Conflicts: dspam < %{version}-%{release}
%description client
dspam client.
-%description client -l pl
+%description client -l pl.UTF-8
Klient dspam.
%package libs
Summary: A library for Bayesian spam filtering
-Summary(pl): Biblioteka do bayesowskiego filtrowania spamu
+Summary(pl.UTF-8): Biblioteka do bayesowskiego filtrowania spamu
Group: Libraries
-Requires: %{name}-driver = %{version}-%{release}
+Obsoletes: dspam-driver-db
%description libs
DSPAM (as in De-Spam) is an open-source project to create a new kind
This package contains the library.
-%description libs -l pl
-DSPAM (czyli De-Spam) to projekt o otwartych ¼ród³ach maj±cy na celu
+%description libs -l pl.UTF-8
+DSPAM (czyli De-Spam) to projekt o otwartych źródłach mający na celu
stworzenie nowego rodzaju mechanizmu antyspamowego. Aktualnie jest
-efektywny zarówno jako dzia³aj±cy po stronie serwera agent dla
-uniksowych serwerów pocztowych jak i biblioteka dla programistów
-klientów pocztowych, innych narzêdzi antyspamowych i innych projektów
-wymagaj±cych filtrowania spamu w locie.
+efektywny zarówno jako działający po stronie serwera agent dla
+uniksowych serwerów pocztowych jak i biblioteka dla programistów
+klientów pocztowych, innych narzędzi antyspamowych i innych projektów
+wymagających filtrowania spamu w locie.
-Ten pakiet zawiera wspomnian± bibliotekê.
+Ten pakiet zawiera wspomnianą bibliotekę.
%package devel
Summary: Header files for the DSPAM library
-Summary(pl): Pliki nag³ówkowe biblioteki DSPAM
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki DSPAM
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
filtering for their mail client applications, other anti-spam tools,
or similar projects.
-%description devel -l pl
-G³ówny silnik DSPAM zosta³ przeniesiony do oddzielnej biblioteki
-libdspam, która mo¿e byæ u¿ywana przez programistów do zapewnienia
-filtrowania spamu w locie dla aplikacji klientów pocztowych, innych
-narzêdzi antyspamowych i podobnych projektów.
+%description devel -l pl.UTF-8
+Główny silnik DSPAM został przeniesiony do oddzielnej biblioteki
+libdspam, która może być używana przez programistów do zapewnienia
+filtrowania spamu w locie dla aplikacji klientów pocztowych, innych
+narzędzi antyspamowych i podobnych projektów.
%package static
Summary: Static DSPAM library
-Summary(pl): Statyczna biblioteka DSPAM
+Summary(pl.UTF-8): Statyczna biblioteka DSPAM
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%description static
Static DSPAM library.
-%description static -l pl
+%description static -l pl.UTF-8
Statyczna biblioteka DSPAM.
%package driver-hash
Summary: HASH driver for DSPAM
-Summary(pl): Sterownik HASH dla DSPAM-a
+Summary(pl.UTF-8): Sterownik HASH dla DSPAM-a
Group: Libraries
Requires(post): sed >= 4.0
-Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
Provides: %{name}-driver = %{version}-%{release}
%description driver-hash
HASH driver for DSPAM.
-%description driver-hash -l pl
+%description driver-hash -l pl.UTF-8
Sterownik HASH dla DSPAM-a.
-%package driver-db
-Summary: DB driver for DSPAM
-Summary(pl): Sterownik DB dla DSPAM-a
-Group: Libraries
-Requires(post): sed >= 4.0
-Requires: %{name}-libs = %{version}-%{release}
-Provides: %{name}-driver = %{version}-%{release}
-
-%description driver-db
-DB driver for DSPAM.
-
-%description driver-db -l pl
-Sterownik DB dla DSPAM-a.
-
%package driver-mysql
Summary: MySQL driver for DSPAM
-Summary(pl): Sterownik MySQL dla DSPAM-a
+Summary(pl.UTF-8): Sterownik MySQL dla DSPAM-a
Group: Libraries
Requires(post): sed >= 4.0
-Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
Provides: %{name}-driver = %{version}-%{release}
%description driver-mysql
MySQL driver for DSPAM.
-%description driver-mysql -l pl
+%description driver-mysql -l pl.UTF-8
Sterownik MySQL dla DSPAM-a.
%package driver-pgsql
Summary: PostgreSQL driver for DSPAM
-Summary(pl): Sterownik PostgreSQL dla DSPAM-a
+Summary(pl.UTF-8): Sterownik PostgreSQL dla DSPAM-a
Group: Libraries
Requires(post): sed >= 4.0
-Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
Provides: %{name}-driver = %{version}-%{release}
%description driver-pgsql
PostgreSQL driver for DSPAM.
-%description driver-pgsql -l pl
+%description driver-pgsql -l pl.UTF-8
Sterownik PostgreSQL dla DSPAM-a.
%package driver-sqlite
Summary: SQLite driver for DSPAM
-Summary(pl): Sterownik SQLite dla DSPAM-a
+Summary(pl.UTF-8): Sterownik SQLite dla DSPAM-a
Group: Libraries
Requires(post): sed >= 4.0
-Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name} = %{version}-%{release}
Provides: %{name}-driver = %{version}-%{release}
%description driver-sqlite
SQLite driver for DSPAM.
-%description driver-sqlite -l pl
+%description driver-sqlite -l pl.UTF-8
Sterownik SQLite dla DSPAM-a.
%package webui
Summary: DSPAM Web UI
+Summary(pl.UTF-8): Interfejs WWW do programu DSPAM
Group: Applications/WWW
Requires: webapps
# needs dspam binary
the actual DSPAM usernames used the system. A copy of the shadow
password file will suffice for most common installs.
+%description webui -l pl.UTF-8
+Interfejs użytkownika WWW (klient CGI) może być uruchamiany z
+dowolnego wykonywalnego miejsca na serwerze WWW i rozpoznaje tożsamość
+użytkownika ze zmiennej środowiskowej REMOTE_USER. Oznacza to, że
+trzeba użyć uwietrzytelnienia HTTP z hasłem do dostępu do CGI (działać
+będzie dowolny rodzaj uwierzytelnienia obsługiwany przez moduły
+Apache'a). Jest to o tyle wygodne, że można skonfigurować
+uwierzytelnianie dla prawie każdego istniejącego systemu. Jedynym
+wymogiem jest, żeby nazwy użytkowników pokrywały się z nazwami
+użytkowników DSPAM-a używanymi w systemie. Kopia pliku shadow
+wystarczy dla większości popularnych instalacji.
+
%prep
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
sed -i -e 's#\-static##g' src/Makefile* src/*/Makefile*
%{?with_mysql40:sed -i -e 's#40100#99999#g' src/mysql_drv.c}
+sed -i -e 's,/usr/local/dspam/bin,/usr/bin,' ./scripts/train.pl
%build
%{__libtoolize}
DRIVERS="
hash_drv
-%{?with_db:libdb4_drv}
%{?with_mysql:mysql_drv}
%{?with_pgsql:pgsql_drv}
-%{?with_sqlite:sqlite_drv}
+%{?with_sqlite:sqlite3_drv}
"
%configure \
--disable-dependency-tracking \
%{?debug: --enable-debug --enable-bnr-debug --enable-verbose-debug} \
--enable-trusted-user-security \
- --enable-bias \
--enable-large-scale \
- --with-userdir=/var/lib/%{name} \
- --with-userdir-owner=none \
- --with-userdir-group=none \
--with-dspam-home=/var/lib/%{name} \
--with-dspam-home-owner=none \
--with-dspam-home-group=none \
--with-dspam-owner=none \
--with-dspam-group=none \
- --with-signature-life=14 \
--enable-ldap \
--enable-clamav \
--enable-preferences-extension \
--enable-long-usernames \
- --enable-neural-networking \
--enable-virtual-users \
--with-storage-driver=$(echo $DRIVERS | tr ' ' ',') \
%if %{with mysql}
--with-pgsql-includes=%{_includedir}/postgresql \
--with-pgsql-libraries=%{_libdir} \
%endif
+%if 0
%if %{with sqlite}
- --with-sqlite3-includes=%{_includedir} \
- --with-sqlite3-libraries=%{_libdir} \
+ --with-sqlite-includes=%{_includedir} \
+ --with-sqlite-libraries=%{_libdir} \
+%endif
%endif
--enable-daemon
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/var/run/dspam,/etc/{rc.d/init.d,sysconfig}}
+install -d $RPM_BUILD_ROOT{/var/run/dspam,/etc/{rc.d/init.d,sysconfig}} \
+ $RPM_BUILD_ROOT/var/lib/%{name}/{txt,data}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/dspam
-ln -s /var/log/dspam $RPM_BUILD_ROOT/var/lib/%{name}/log
+cp -a txt/*.txt $RPM_BUILD_ROOT/var/lib/%{name}/txt
# install devel files
install -d $RPM_BUILD_ROOT{%{_includedir}/%{name},/var/{log,lib}/%{name}}
chmod 755 $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/%{name}
-# fix prefix
-sed -i -e "s|%{_prefix}/local|%{_prefix}|g" $RPM_BUILD_ROOT%{_bindir}/%{name}_corpus
-
# fix purge stuff
#install dspam-cron.weekly $RPM_BUILD_ROOT%{_sysconfdir}/cron.weekly/%{name}
%if %{with mysql}
-# fix missing file
-install -d $RPM_BUILD_ROOT/var/lib/%{name}
cat > $RPM_BUILD_ROOT/var/lib/%{name}/mysql.data <<EOF
_UNCONFIGURED_
%endif
%if %{with pgsql}
-# fix missing file
-install -d $RPM_BUILD_ROOT/var/lib/%{name}
cat > $RPM_BUILD_ROOT/var/lib/%{name}/pgsql.data <<EOF
_UNCONFIGURED_
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
-%post driver-db
-if [ "$1" = "1" ]; then
- sed -i -e '/^StorageDriver/s,/.*.so,%{_libdir}/libdb4_drv.so,' /etc/dspam.conf
-fi
-
%post driver-hash
-if [ "$1" = "1" ]; then
- sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libhash_drv.so,' /etc/dspam.conf
-fi
+%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libhash_drv.so,' /etc/dspam.conf
%post driver-mysql
-if [ "$1" = "1" ]; then
- sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libmysql_drv.so,' /etc/dspam.conf
-fi
+%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libmysql_drv.so,' /etc/dspam.conf
%post driver-pgsql
-if [ "$1" = "1" ]; then
- sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libpgsql_drv.so,' /etc/dspam.conf
-fi
+%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libpgsql_drv.so,' /etc/dspam.conf
%post driver-sqlite
-if [ "$1" = "1" ]; then
- sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libsqlite_drv.so,' /etc/dspam.conf
-fi
+%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libsqlite3_drv.so,' /etc/dspam.conf
-%triggerin webui -- apache1
+%triggerin webui -- apache1 < 1.3.37-3, apache1-base
%webapp_register apache %{_webapp}
-%triggerun webui -- apache1
+%triggerun webui -- apache1 < 1.3.37-3, apache1-base
%webapp_unregister apache %{_webapp}
%triggerin webui -- apache < 2.2.0, apache-base
%defattr(644,root,root,755)
%doc README CHANGELOG RELEASE.NOTES UPGRADING
%doc doc/{courier,exim,markov,pop3filter,postfix,qmail,relay,sendmail}.txt
+%doc scripts/train.pl
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dspam.conf
%dir %attr(775,root,mail) /var/run/dspam
-%dir %attr(770,root,mail) /var/lib/%{name}
+%dir %attr(750,root,mail) /var/lib/%{name}
+%dir %attr(770,root,mail) /var/lib/%{name}/data
+%dir /var/lib/%{name}/txt
+%config(noreplace) %verify(not md5 mtime size) /var/lib/%{name}/txt/*.txt
%dir %attr(770,root,mail) /var/log/dspam
%attr(754,root,root) /etc/rc.d/init.d/dspam
%attr(755,root,root) %config(noreplace) /etc/cron.daily/%{name}
%attr(755,root,root) %{_bindir}/%{name}
%attr(755,root,root) %{_bindir}/%{name}_logrotate
%attr(755,root,root) %{_bindir}/%{name}_clean
-%attr(755,root,root) %{_bindir}/%{name}_corpus
%attr(755,root,root) %{_bindir}/%{name}_crc
%attr(755,root,root) %{_bindir}/%{name}_dump
-%attr(755,root,root) %{_bindir}/%{name}_genaliases
%attr(755,root,root) %{_bindir}/%{name}_stats
%attr(755,root,root) %{_bindir}/%{name}_merge
%attr(755,root,root) %{_bindir}/%{name}_2sql
%files libs
%defattr(644,root,root,755)
-%doc README CHANGELOG
-%attr(755,root,root) %{_libdir}/lib*.so.*.*.*
-%attr(755,root,root) %exclude %{_libdir}/lib*_drv*.so*
+%attr(755,root,root) %{_libdir}/libdspam.so.7.0.0
+%attr(755,root,root) %ghost %{_libdir}/libdspam.so.7
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so
-%attr(755,root,root) %exclude %{_libdir}/lib*_drv*.so*
-%{_libdir}/lib*.la
+%attr(755,root,root) %{_libdir}/libdspam.so
+%attr(755,root,root) %{_libdir}/lib*_drv.so
+%{_libdir}/libdspam.la
+%{_libdir}/lib*_drv.la
%{_includedir}/%{name}
-%{_mandir}/man3/libdspam*
+%{_mandir}/man3/libdspam.3*
%{_pkgconfigdir}/*.pc
%files static
%defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%{_libdir}/libdspam.a
+%{_libdir}/lib*_drv.a
%files driver-hash
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/css*
-%attr(755,root,root) %{_libdir}/libhash_drv*.so*
-
-%if %{with db}
-%files driver-db
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libdb4_drv*.so*
-%endif
+%attr(755,root,root) %{_libdir}/libhash_drv.so.7.0.0
+%attr(755,root,root) %ghost %{_libdir}/libhash_drv.so.7
%if %{with mysql}
%files driver-mysql
%defattr(644,root,root,755)
%doc doc/mysql_drv.txt src/tools.mysql_drv/*.sql
%attr(640,root,mail) %config(noreplace) /var/lib/%{name}/mysql.data
-%attr(755,root,root) %{_libdir}/libmysql_drv*.so*
+%attr(755,root,root) %{_libdir}/libmysql_drv.so.7.0.0
+%attr(755,root,root) %ghost %{_libdir}/libmysql_drv.so.7
%endif
%if %{with pgsql}
%doc doc/pgsql_drv.txt src/tools.pgsql_drv/*.sql
%attr(640,root,mail) %config(noreplace) /var/lib/%{name}/pgsql.data
%attr(755,root,root) %{_bindir}/%{name}_pg2int8
-%attr(755,root,root) %{_libdir}/libpgsql_drv*.so*
+%attr(755,root,root) %{_libdir}/libpgsql_drv.so.7.0.0
+%attr(755,root,root) %ghost %{_libdir}/libpgsql_drv.so.7
%endif
%if %{with sqlite}
%files driver-sqlite
%defattr(644,root,root,755)
%doc doc/sqlite_drv.txt
-%attr(755,root,root) %{_libdir}/libsqlite_drv*.so*
+%attr(755,root,root) %{_libdir}/libsqlite3_drv.so.7.0.0
+%attr(755,root,root) %ghost %{_libdir}/libsqlite3_drv.so.7
%endif
%files webui