# - support for libdclassify
# - oracle driver
# - messages from default install of cron with mysql driver Memory fault
-# - installing dspam and dspam-client on same host causes
-# /etc/dspam.conf being owned by both packages and .rpmnew files being
-# created. move the config to -libs? -common? patch code to use
-# different config for client?
+# - remove versioned sonames from drivers
#
# Conditional build:
%bcond_without mysql # disable MySQL storage driver
%bcond_without pgsql # disable PostgreSQL storage driver
%bcond_without sqlite # disable SQLite3 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.UTF-8): Biblioteka i MDA do bayesowskiego filtrowania spamu
Name: dspam
-Version: 3.8.0
+Version: 3.9.0
Release: 0.1
-License: GPL
+License: GPL v2+
Group: Applications/Mail
-Source0: http://dspam.nuclearelephant.com/sources/%{name}-%{version}.tar.gz
-# Source0-md5: 056b8c8b3ad9415a52c01b22ff1e64cf
+Source0: http://downloads.sourceforge.net/project/dspam/dspam/%{name}-%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 10d092b57d628d8c91655fee5dc0d0cd
Patch0: %{name}-webui.patch
Patch1: %{name}-config.patch
Patch2: %{name}-speedup.patch
+Patch3: %{name}-autotools.patch
+Patch4: %{name}-single-char-usernames.patch
Source1: %{name}.init
Source2: %{name}-apache.conf
URL: http://dspam.nuclearelephant.com/
BuildRequires: clamav-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}-common = %{version}-%{release}
Requires: %{name}-driver = %{version}-%{release}
Requires: rc-scripts
-Buildroot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _webapps /etc/webapps
%define _webapp %{name}
Summary: dspam client
Summary(pl.UTF-8): Klient dspam
Group: Applications/Mail
-# to get the same dspam.conf when both installed
-Conflicts: dspam < %{version}-%{release}
-Conflicts: dspam > %{version}-%{release}
+Requires: %{name}-common
%description client
dspam client.
%description client -l pl.UTF-8
Klient dspam.
+%package common
+Summary: Common files for dspam packages
+Summary(pl.UTF-8): Wspólne pliki dla pakietów z dspamem
+Group: Applications/Mail
+
+%description common
+Common files for dspam and dspam-client packages.
+
+%description client -l pl.UTF-8
+Wspólne pliki dla pakietów dspam i dspam-client.
+
%package libs
Summary: A library for Bayesian spam filtering
Summary(pl.UTF-8): Biblioteka do bayesowskiego filtrowania spamu
%description driver-pgsql -l pl.UTF-8
Sterownik PostgreSQL dla DSPAM-a.
-%package driver-sqlite
+%package driver-sqlite3
Summary: SQLite driver for DSPAM
Summary(pl.UTF-8): Sterownik SQLite dla DSPAM-a
Group: Libraries
Requires(post): sed >= 4.0
Requires: %{name} = %{version}-%{release}
Provides: %{name}-driver = %{version}-%{release}
+Obsoletes: dspam-driver-sqlite
-%description driver-sqlite
+%description driver-sqlite3
SQLite driver for DSPAM.
-%description driver-sqlite -l pl.UTF-8
+%description driver-sqlite3 -l pl.UTF-8
Sterownik SQLite dla DSPAM-a.
%package webui
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
+%patch4 -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
hash_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
# --enable-dclassify-extension needs libdclassify
-%{__make}
+%{__make} -j1
%install
rm -rf $RPM_BUILD_ROOT
%postun libs -p /sbin/ldconfig
%post driver-hash
-%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libhash_drv.so,' /etc/dspam.conf
+%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/dspam/libhash_drv.so,' /etc/dspam.conf
%post driver-mysql
-%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libmysql_drv.so,' /etc/dspam.conf
+%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/dspam/libmysql_drv.so,' /etc/dspam.conf
%post driver-pgsql
-%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libpgsql_drv.so,' /etc/dspam.conf
+%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/dspam/libpgsql_drv.so,' /etc/dspam.conf
-%post driver-sqlite
-%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libsqlite_drv.so,' /etc/dspam.conf
+%post driver-sqlite3
+%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/dspam/libsqlite3_drv.so,' /etc/dspam.conf
%triggerin webui -- apache1 < 1.3.37-3, apache1-base
%webapp_register apache %{_webapp}
%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(750,root,mail) /var/lib/%{name}
%dir %attr(770,root,mail) /var/lib/%{name}/data
%files client
%defattr(644,root,root,755)
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dspam.conf
%attr(755,root,root) %{_bindir}/%{name}c
+%files common
+%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dspam.conf
+
%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
+%{_libdir}/libdspam.la
+%{_libdir}/dspam/libhash_drv.la
+%{_libdir}/dspam/libmysql_drv.la
+%{_libdir}/dspam/libpgsql_drv.la
+%{_libdir}/dspam/libsqlite3_drv.la
%{_includedir}/%{name}
-%{_mandir}/man3/libdspam*
-%{_pkgconfigdir}/*.pc
+%{_mandir}/man3/libdspam.3*
+%{_pkgconfigdir}/dspam.pc
%files static
%defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%{_libdir}/libdspam.a
+%{_libdir}/dspam/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*
+%attr(755,root,root) %{_libdir}/dspam/libhash_drv.so.7.0.0
+%attr(755,root,root) %ghost %{_libdir}/dspam/libhash_drv.so.7
+%{_libdir}/dspam/libhash_drv.so
%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}/dspam/libmysql_drv.so.7.0.0
+%attr(755,root,root) %ghost %{_libdir}/dspam/libmysql_drv.so.7
+%{_libdir}/dspam/libmysql_drv.so
%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}/dspam/libpgsql_drv.so.7.0.0
+%attr(755,root,root) %ghost %{_libdir}/dspam/libpgsql_drv.so.7
+%{_libdir}/dspam/libpgsql_drv.so
%endif
%if %{with sqlite}
-%files driver-sqlite
+%files driver-sqlite3
%defattr(644,root,root,755)
%doc doc/sqlite_drv.txt
-%attr(755,root,root) %{_libdir}/libsqlite_drv*.so*
+%attr(755,root,root) %{_libdir}/dspam/libsqlite3_drv.so.7.0.0
+%attr(755,root,root) %ghost %{_libdir}/dspam/libsqlite3_drv.so.7
+%{_libdir}/dspam/libsqlite3_drv.so
%endif
%files webui