3 # - support for libdclassify
5 # - messages from default install of cron with mysql driver
9 %bcond_without mysql # disable MySQL storage driver
10 %bcond_without pgsql # disable PostgreSQL storage driver
11 %bcond_without sqlite # disable SQLite3 storage driver
12 %bcond_without db # disable BerkeleyDB storage driver
13 %bcond_without daemon # disable daemon mode
14 %bcond_with mysql40 # use with mysql 4.0
16 Summary: A library and Mail Delivery Agent for Bayesian spam filtering
17 Summary(pl): Biblioteka i MDA do bayesowskiego filtrowania spamu
22 Group: Applications/Mail
23 Source0: http://www.nuclearelephant.com/projects/dspam/sources/%{name}-%{version}.tar.gz
24 # Source0-md5: db1aedb9677e6bf5c7a47a72d4f130e5
26 URL: http://www.nuclearelephant.com/projects/dspam/
27 BuildRequires: autoconf
28 BuildRequires: automake
29 BuildRequires: libtool
30 BuildRequires: clamav-devel
31 %{?with_db:BuildRequires: db-devel}
32 %{?with_mysql:BuildRequires: mysql-devel}
33 BuildRequires: openldap-devel
34 %{?with_pgsql:BuildRequires: postgresql-devel}
35 BuildRequires: sed >= 4.0
36 %{?with_sqlite:BuildRequires: sqlite3-devel}
37 BuildRequires: zlib-devel
38 Buildroot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
41 DSPAM (as in De-Spam) is an open-source project to create a new kind
42 of anti-spam mechanism, and is currently effective as both a
43 server-side agent for UNIX email servers and a developer's library for
44 mail clients, other anti-spam tools, and similar projects requiring
45 drop-in spam filtering.
47 The DSPAM agent masquerades as the email server's local delivery agent
48 and filters/learns spams using an advanced Bayesian statistical
49 approach (based on Bayes's theorem of combined probabilities) which
50 provides an administratively maintenance-free, easy-learning Anti-Spam
51 service custom tailored to each individual user's behavior. Advanced
52 because on top of standard Bayesian filtering is also incorporated the
53 use of Chained Tokens, de-obfuscation, and other enhancements. DSPAM
54 works great with Sendmail and Exim, and should work well with any
55 other MTA that supports an external local delivery agent (postfix,
59 DSPAM (czyli De-Spam) to projekt o otwartych ¼ród³ach maj±cy na celu
60 stworzenie nowego rodzaju mechanizmu antyspamowego. Aktualnie jest
61 efektywny zarówno jako dzia³aj±cy po stronie serwera agent dla
62 uniksowych serwerów pocztowych jak i biblioteka dla programistów
63 klientów pocztowych, innych narzêdzi antyspamowych i innych projektów
64 wymagaj±cych filtrowania spamu w locie.
66 Agent DSPAM zachowuje siê jak lokalny agent dostarczania poczty (MDA)
67 i filtruje/uczy siê spamu przy u¿yciu zaawansowanego bayesowskiego
68 przybli¿enia statystycznego (opartego na twierdzeniu Bayesa o
69 po³±czonych prawdopodobieñstwach), daj±c nie wymagaj±c± obs³ugi
70 administracyjnej, ³atwo ucz±c± siê us³ugê antyspamow± dostosowan± do
71 zachowania ka¿dego u¿ytkownika. Metoda jest zaawansowana poniewa¿ na
72 podstawie standardowego filtrowania bayesowskiego wprowadzono u¿ycie
73 tokenów ³añcuchowych, eliminowanie ukrywanie i inne rozszerzenia.
74 DSPAM dzia³a wspaniale z Sendmailem i Eximem, powinien dzia³aæ dobrze
75 z ka¿dym innym MTA obs³uguj±cym zewnêtrznego agenta MDA (postfiksem,
80 Summary(pl): Klient dspam
81 Group: Applications/Mail
82 # to get the same dspam.conf when both installed
83 Conflicts: dspam > %{version}-%{release}
84 Conflicts: dspam < %{version}-%{release}
89 %description client -l pl
93 Summary: A library for Bayesian spam filtering
94 Summary(pl): Biblioteka do bayesowskiego filtrowania spamu
96 Requires: %{name}-driver = %{version}-%{release}
99 DSPAM (as in De-Spam) is an open-source project to create a new kind
100 of anti-spam mechanism, and is currently effective as both a
101 server-side agent for UNIX email servers and a developer's library for
102 mail clients, other anti-spam tools, and similar projects requiring
103 drop-in spam filtering.
105 This package contains the library.
107 %description libs -l pl
108 DSPAM (czyli De-Spam) to projekt o otwartych ¼ród³ach maj±cy na celu
109 stworzenie nowego rodzaju mechanizmu antyspamowego. Aktualnie jest
110 efektywny zarówno jako dzia³aj±cy po stronie serwera agent dla
111 uniksowych serwerów pocztowych jak i biblioteka dla programistów
112 klientów pocztowych, innych narzêdzi antyspamowych i innych projektów
113 wymagaj±cych filtrowania spamu w locie.
115 Ten pakiet zawiera wspomnian± bibliotekê.
118 Summary: Header files for the DSPAM library
119 Summary(pl): Pliki nag³ówkowe biblioteki DSPAM
120 Group: Development/Libraries
121 Requires: %{name}-libs = %{version}-%{release}
124 DSPAM has had its core engine moved into a separate library, libdspam.
125 This library can be used by developers to provide 'drop-in' spam
126 filtering for their mail client applications, other anti-spam tools,
129 %description devel -l pl
130 G³ówny silnik DSPAM zosta³ przeniesiony do oddzielnej biblioteki
131 libdspam, która mo¿e byæ u¿ywana przez programistów do zapewnienia
132 filtrowania spamu w locie dla aplikacji klientów pocztowych, innych
133 narzêdzi antyspamowych i podobnych projektów.
136 Summary: Static DSPAM library
137 Summary(pl): Statyczna biblioteka DSPAM
138 Group: Development/Libraries
139 Requires: %{name}-devel = %{version}-%{release}
142 Static DSPAM library.
144 %description static -l pl
145 Statyczna biblioteka DSPAM.
148 Summary: HASH driver for DSPAM
149 Summary(pl): Sterownik HASH dla DSPAM-a
151 Requires: %{name}-libs = %{version}-%{release}
152 Requires(post): sed >= 4.0
153 Provides: %{name}-driver = %{version}-%{release}
155 %description driver-hash
156 HASH driver for DSPAM.
158 %description driver-hash -l pl
159 Sterownik HASH dla DSPAM-a.
162 Summary: DB driver for DSPAM
163 Summary(pl): Sterownik DB dla DSPAM-a
165 Requires: %{name}-libs = %{version}-%{release}
166 Requires(post): sed >= 4.0
167 Provides: %{name}-driver = %{version}-%{release}
169 %description driver-db
172 %description driver-db -l pl
173 Sterownik DB dla DSPAM-a.
175 %package driver-mysql
176 Summary: MySQL driver for DSPAM
177 Summary(pl): Sterownik MySQL dla DSPAM-a
179 Requires: %{name}-libs = %{version}-%{release}
180 Requires(post): sed >= 4.0
181 Provides: %{name}-driver = %{version}-%{release}
183 %description driver-mysql
184 MySQL driver for DSPAM.
186 %description driver-mysql -l pl
187 Sterownik MySQL dla DSPAM-a.
189 %package driver-pgsql
190 Summary: PostgreSQL driver for DSPAM
191 Summary(pl): Sterownik PostgreSQL dla DSPAM-a
193 Requires: %{name}-libs = %{version}-%{release}
194 Requires(post): sed >= 4.0
195 Provides: %{name}-driver = %{version}-%{release}
197 %description driver-pgsql
198 PostgreSQL driver for DSPAM.
200 %description driver-pgsql -l pl
201 Sterownik PostgreSQL dla DSPAM-a.
203 %package driver-sqlite
204 Summary: SQLite driver for DSPAM
205 Summary(pl): Sterownik SQLite dla DSPAM-a
207 Requires: %{name}-libs = %{version}-%{release}
208 Requires(post): sed >= 4.0
209 Provides: %{name}-driver = %{version}-%{release}
211 %description driver-sqlite
212 SQLite driver for DSPAM.
214 %description driver-sqlite -l pl
215 Sterownik SQLite dla DSPAM-a.
219 sed -i -e 's#\-static##g' src/Makefile* src/*/Makefile*
220 %{?with_mysql40:sed -i -e 's#40100#99999#g' src/mysql_drv.c}
230 %{?with_db:libdb4_drv}
231 %{?with_mysql:mysql_drv}
232 %{?with_pgsql:pgsql_drv}
233 %{?with_sqlite:sqlite_drv}
236 %{?debug: --enable-debug --enable-bnr-debug --enable-verbose-debug} \
237 --enable-trusted-user-security \
239 --enable-large-scale \
240 --with-userdir=/var/lib/%{name} \
241 --with-userdir-owner=none \
242 --with-userdir-group=none \
243 --with-dspam-home=/var/lib/%{name} \
244 --with-dspam-home-owner=none \
245 --with-dspam-home-group=none \
246 --with-dspam-owner=none \
247 --with-dspam-group=none \
248 --with-signature-life=14 \
249 --disable-dependency-tracking \
252 --enable-preferences-extension \
253 --enable-long-usernames \
254 --enable-neural-networking \
255 --enable-virtual-users \
256 --with-storage-driver=$(echo $DRIVERS | tr ' ' ',') \
258 --with-mysql-includes=%{_includedir}/mysql \
259 --with-mysql-libraries=%{_libdir} \
262 --with-pgsql-includes=%{_includedir}/postgresql \
263 --with-pgsql-libraries=%{_libdir} \
266 --with-sqlite3-includes=%{_includedir} \
267 --with-sqlite3-libraries=%{_libdir} \
271 # --enable-dclassify-extension needs libdclassify
276 rm -rf $RPM_BUILD_ROOT
279 DESTDIR=$RPM_BUILD_ROOT
281 install -d $RPM_BUILD_ROOT/{var/run/dspam,/etc/{rc.d/init.d,sysconfig}}
282 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/dspam
285 ln -s /var/log/dspam $RPM_BUILD_ROOT/var/lib/%{name}/log
287 # install devel files
288 install -d $RPM_BUILD_ROOT{%{_includedir}/%{name},/var/{log,lib}/%{name}}
289 install src/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}
291 # provide maintenance scripts
292 install -d $RPM_BUILD_ROOT/etc/cron.daily
293 install -d $RPM_BUILD_ROOT/etc/cron.weekly
295 cat > $RPM_BUILD_ROOT/etc/cron.daily/%{name} <<EOF
297 exec %{_bindir}/%{name}_clean -s -p
300 chmod 755 $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/%{name}
303 sed -i -e "s|%{_prefix}/local|%{_prefix}|g" $RPM_BUILD_ROOT%{_bindir}/%{name}_corpus
304 sed -i -e "s|%{_prefix}/local|%{_prefix}|g" webui/cgi-bin/dspam.cgi
307 #install dspam-cron.weekly $RPM_BUILD_ROOT%{_sysconfdir}/cron.weekly/%{name}
311 install -d $RPM_BUILD_ROOT/var/lib/%{name}
312 cat > $RPM_BUILD_ROOT/var/lib/%{name}/mysql.data <<EOF
317 This file can only contain 5 lines with the following values:
329 install -d $RPM_BUILD_ROOT/var/lib/%{name}
330 cat > $RPM_BUILD_ROOT/var/lib/%{name}/pgsql.data <<EOF
335 This file can only contain 5 lines with the following values:
346 /sbin/chkconfig --add dspam
347 if [ -f /var/lock/subsys/dspam ]; then
348 /etc/rc.d/init.d/dspam restart 1>&2
350 echo "Run \"/etc/rc.d/init.d/dspam start\" to start dspam daemon."
354 if [ "$1" = "0" ]; then
355 if [ -f /var/lock/subsys/dspam ]; then
356 /etc/rc.d/init.d/dspam stop 1>&2
358 /sbin/chkconfig --del dspam
362 rm -rf $RPM_BUILD_ROOT
364 %post libs -p /sbin/ldconfig
365 %postun libs -p /sbin/ldconfig
368 if [ "$1" = "1" ]; then
369 sed -i -e '/^StorageDriver/s,/.*.so,%{_libdir}/libdb4_drv.so,' /etc/dspam.conf
373 if [ "$1" = "1" ]; then
374 sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libhash_drv.so,' /etc/dspam.conf
378 if [ "$1" = "1" ]; then
379 sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libmysql_drv.so,' /etc/dspam.conf
383 if [ "$1" = "1" ]; then
384 sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libpgsql_drv.so,' /etc/dspam.conf
388 if [ "$1" = "1" ]; then
389 sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libsqlite_drv.so,' /etc/dspam.conf
393 %defattr(644,root,root,755)
394 %doc README CHANGELOG RELEASE.NOTES UPGRADING
395 %doc webui/*/*.{cgi,prefs,txt} webui/*/*.txt webui/*/templates/*.html
396 %doc doc/{courier,exim,markov,pop3filter,postfix,qmail,relay,sendmail}.txt
397 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dspam.conf
398 %dir %attr(750,root,mail) /var/lib/%{name}
399 %dir %attr(770,root,mail) /var/log/dspam
400 %attr(755,root,root) %config(noreplace) /etc/cron.daily/%{name}
401 %attr(755,root,root) %{_bindir}/%{name}
402 %attr(755,root,root) %{_bindir}/%{name}_logrotate
403 %attr(755,root,root) %{_bindir}/%{name}_clean
404 %attr(755,root,root) %{_bindir}/%{name}_corpus
405 %attr(755,root,root) %{_bindir}/%{name}_crc
406 %attr(755,root,root) %{_bindir}/%{name}_dump
407 %attr(755,root,root) %{_bindir}/%{name}_genaliases
408 %attr(755,root,root) %{_bindir}/%{name}_stats
409 %attr(755,root,root) %{_bindir}/%{name}_merge
410 %attr(755,root,root) %{_bindir}/%{name}_2sql
411 %attr(755,root,root) %{_bindir}/%{name}_admin
412 %{_mandir}/man?/%{name}*
415 %attr(754,root,root) /etc/rc.d/init.d/dspam
417 %defattr(644,root,root,755)
418 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dspam.conf
419 %attr(770,root,mail) /var/run/dspam
421 %attr(755,root,root) %{_bindir}/%{name}c
424 %defattr(644,root,root,755)
425 %doc README CHANGELOG
426 %attr(755,root,root) %{_libdir}/lib*.so.*.*.*
427 %attr(755,root,root) %exclude %{_libdir}/lib*_drv*.so*
430 %defattr(644,root,root,755)
431 %attr(755,root,root) %{_libdir}/lib*.so
432 %attr(755,root,root) %exclude %{_libdir}/lib*_drv*.so*
434 %{_includedir}/%{name}
435 %{_mandir}/man3/libdspam*
436 %{_pkgconfigdir}/*.pc
439 %defattr(644,root,root,755)
443 %defattr(644,root,root,755)
444 %attr(755,root,root) %{_bindir}/css*
445 %attr(755,root,root) %{_libdir}/libhash_drv*.so*
449 %defattr(644,root,root,755)
450 %attr(755,root,root) %{_libdir}/libdb4_drv*.so*
455 %defattr(644,root,root,755)
456 %doc doc/mysql_drv.txt src/tools.mysql_drv/*.sql
457 %attr(640,root,mail) %config(noreplace) /var/lib/%{name}/mysql.data
458 %attr(755,root,root) %{_libdir}/libmysql_drv*.so*
463 %defattr(644,root,root,755)
464 %doc doc/pgsql_drv.txt src/tools.pgsql_drv/*.sql
465 %attr(640,root,mail) %config(noreplace) /var/lib/%{name}/pgsql.data
466 %attr(755,root,root) %{_bindir}/%{name}_pg2int8
467 %attr(755,root,root) %{_libdir}/libpgsql_drv*.so*
472 %defattr(644,root,root,755)
473 %doc doc/sqlite_drv.txt
474 %attr(755,root,root) %{_libdir}/libsqlite_drv*.so*