2 # - support for libdclassify
4 # - messages from default install of cron with mysql driver Memory fault
5 # - install drivers in /usr/lib/dspam
6 # - if drivers are installed to private dir, remove versioned sonames from drivers
10 %bcond_without mysql # disable MySQL storage driver
11 %bcond_without pgsql # disable PostgreSQL storage driver
12 %bcond_without sqlite # disable SQLite3 storage driver
13 %bcond_with mysql40 # use with mysql 4.0
15 %include /usr/lib/rpm/macros.perl
16 Summary: A library and Mail Delivery Agent for Bayesian spam filtering
17 Summary(pl.UTF-8): Biblioteka i MDA do bayesowskiego filtrowania spamu
22 Group: Applications/Mail
23 Source0: http://downloads.sourceforge.net/project/dspam/dspam/dspam-%{version}/%{name}-%{version}.tar.gz
24 # Source0-md5: 10d092b57d628d8c91655fee5dc0d0cd
25 Patch0: %{name}-webui.patch
26 Patch1: %{name}-config.patch
27 Patch2: %{name}-speedup.patch
28 Patch3: %{name}-autotools.patch
29 Patch4: %{name}-single-char-usernames.patch
31 Source2: %{name}-apache.conf
32 URL: http://dspam.nuclearelephant.com/
33 BuildRequires: autoconf
34 BuildRequires: automake
35 BuildRequires: clamav-devel
36 BuildRequires: libtool
37 %{?with_mysql:BuildRequires: mysql-devel}
38 BuildRequires: openldap-devel >= 2.4.6
39 %{?with_pgsql:BuildRequires: postgresql-devel}
40 BuildRequires: rpm-perlprov >= 4.1-13
41 BuildRequires: rpmbuild(macros) >= 1.268
42 BuildRequires: sed >= 4.0
43 %{?with_sqlite:BuildRequires: sqlite3-devel}
44 BuildRequires: zlib-devel
45 Requires(post,preun): /sbin/chkconfig
46 Requires: %{name}-common = %{version}-%{release}
47 Requires: %{name}-driver = %{version}-%{release}
49 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51 %define _webapps /etc/webapps
52 %define _webapp %{name}
54 # Disable parallel build
55 %define _smp_mflags %{nil}
58 DSPAM (as in De-Spam) is an open-source project to create a new kind
59 of anti-spam mechanism, and is currently effective as both a
60 server-side agent for UNIX email servers and a developer's library for
61 mail clients, other anti-spam tools, and similar projects requiring
62 drop-in spam filtering.
64 The DSPAM agent masquerades as the email server's local delivery agent
65 and filters/learns spams using an advanced Bayesian statistical
66 approach (based on Bayes's theorem of combined probabilities) which
67 provides an administratively maintenance-free, easy-learning Anti-Spam
68 service custom tailored to each individual user's behavior. Advanced
69 because on top of standard Bayesian filtering is also incorporated the
70 use of Chained Tokens, de-obfuscation, and other enhancements. DSPAM
71 works great with Sendmail and Exim, and should work well with any
72 other MTA that supports an external local delivery agent (postfix,
75 %description -l pl.UTF-8
76 DSPAM (czyli De-Spam) to projekt o otwartych źródłach mający na celu
77 stworzenie nowego rodzaju mechanizmu antyspamowego. Aktualnie jest
78 efektywny zarówno jako działający po stronie serwera agent dla
79 uniksowych serwerów pocztowych jak i biblioteka dla programistów
80 klientów pocztowych, innych narzędzi antyspamowych i innych projektów
81 wymagających filtrowania spamu w locie.
83 Agent DSPAM zachowuje się jak lokalny agent dostarczania poczty (MDA)
84 i filtruje/uczy się spamu przy użyciu zaawansowanego bayesowskiego
85 przybliżenia statystycznego (opartego na twierdzeniu Bayesa o
86 połączonych prawdopodobieństwach), dając nie wymagającą obsługi
87 administracyjnej, łatwo uczącą się usługę antyspamową dostosowaną do
88 zachowania każdego użytkownika. Metoda jest zaawansowana ponieważ na
89 podstawie standardowego filtrowania bayesowskiego wprowadzono użycie
90 tokenów łańcuchowych, eliminowanie ukrywanie i inne rozszerzenia.
91 DSPAM działa wspaniale z Sendmailem i Eximem, powinien działać dobrze
92 z każdym innym MTA obsługującym zewnętrznego agenta MDA (postfiksem,
97 Summary(pl.UTF-8): Klient dspam
98 Group: Applications/Mail
99 Requires: %{name}-common
104 %description client -l pl.UTF-8
108 Summary: Common files for dspam packages
109 Summary(pl.UTF-8): Wspólne pliki dla pakietów z dspamem
110 Group: Applications/Mail
113 Common files for dspam and dspam-client packages.
115 %description client -l pl.UTF-8
116 Wspólne pliki dla pakietów dspam i dspam-client.
119 Summary: A library for Bayesian spam filtering
120 Summary(pl.UTF-8): Biblioteka do bayesowskiego filtrowania spamu
122 Obsoletes: dspam-driver-db
125 DSPAM (as in De-Spam) is an open-source project to create a new kind
126 of anti-spam mechanism, and is currently effective as both a
127 server-side agent for UNIX email servers and a developer's library for
128 mail clients, other anti-spam tools, and similar projects requiring
129 drop-in spam filtering.
131 This package contains the library.
133 %description libs -l pl.UTF-8
134 DSPAM (czyli De-Spam) to projekt o otwartych źródłach mający na celu
135 stworzenie nowego rodzaju mechanizmu antyspamowego. Aktualnie jest
136 efektywny zarówno jako działający po stronie serwera agent dla
137 uniksowych serwerów pocztowych jak i biblioteka dla programistów
138 klientów pocztowych, innych narzędzi antyspamowych i innych projektów
139 wymagających filtrowania spamu w locie.
141 Ten pakiet zawiera wspomnianą bibliotekę.
144 Summary: Header files for the DSPAM library
145 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki DSPAM
146 Group: Development/Libraries
147 Requires: %{name}-libs = %{version}-%{release}
150 DSPAM has had its core engine moved into a separate library, libdspam.
151 This library can be used by developers to provide 'drop-in' spam
152 filtering for their mail client applications, other anti-spam tools,
155 %description devel -l pl.UTF-8
156 Główny silnik DSPAM został przeniesiony do oddzielnej biblioteki
157 libdspam, która może być używana przez programistów do zapewnienia
158 filtrowania spamu w locie dla aplikacji klientów pocztowych, innych
159 narzędzi antyspamowych i podobnych projektów.
162 Summary: Static DSPAM library
163 Summary(pl.UTF-8): Statyczna biblioteka DSPAM
164 Group: Development/Libraries
165 Requires: %{name}-devel = %{version}-%{release}
168 Static DSPAM library.
170 %description static -l pl.UTF-8
171 Statyczna biblioteka DSPAM.
174 Summary: HASH driver for DSPAM
175 Summary(pl.UTF-8): Sterownik HASH dla DSPAM-a
177 Requires(post): sed >= 4.0
178 Requires: %{name} = %{version}-%{release}
179 Provides: %{name}-driver = %{version}-%{release}
181 %description driver-hash
182 HASH driver for DSPAM.
184 %description driver-hash -l pl.UTF-8
185 Sterownik HASH dla DSPAM-a.
187 %package driver-mysql
188 Summary: MySQL driver for DSPAM
189 Summary(pl.UTF-8): Sterownik MySQL dla DSPAM-a
191 Requires(post): sed >= 4.0
192 Requires: %{name} = %{version}-%{release}
193 Provides: %{name}-driver = %{version}-%{release}
195 %description driver-mysql
196 MySQL driver for DSPAM.
198 %description driver-mysql -l pl.UTF-8
199 Sterownik MySQL dla DSPAM-a.
201 %package driver-pgsql
202 Summary: PostgreSQL driver for DSPAM
203 Summary(pl.UTF-8): Sterownik PostgreSQL dla DSPAM-a
205 Requires(post): sed >= 4.0
206 Requires: %{name} = %{version}-%{release}
207 Provides: %{name}-driver = %{version}-%{release}
209 %description driver-pgsql
210 PostgreSQL driver for DSPAM.
212 %description driver-pgsql -l pl.UTF-8
213 Sterownik PostgreSQL dla DSPAM-a.
215 %package driver-sqlite3
216 Summary: SQLite driver for DSPAM
217 Summary(pl.UTF-8): Sterownik SQLite dla DSPAM-a
219 Requires(post): sed >= 4.0
220 Requires: %{name} = %{version}-%{release}
221 Provides: %{name}-driver = %{version}-%{release}
222 Obsoletes: dspam-driver-sqlite
224 %description driver-sqlite3
225 SQLite driver for DSPAM.
227 %description driver-sqlite3 -l pl.UTF-8
228 Sterownik SQLite dla DSPAM-a.
231 Summary: DSPAM Web UI
232 Summary(pl.UTF-8): Interfejs WWW do programu DSPAM
233 Group: Applications/WWW
236 Requires: %{name} = %{version}-%{release}
239 The Web UI (CGI client) can be run from any executable location on a
240 web server, and detects its user's identity from the REMOTE_USER
241 environment variable. This means you'll need to use HTTP password
242 authentication to access the CGI (Any type of authentication will
243 work, so long as Apache supports the module). This is also convenient
244 in that you can set up authentication using almost any existing system
245 you have. The only catch is that you'll need the usernames to match
246 the actual DSPAM usernames used the system. A copy of the shadow
247 password file will suffice for most common installs.
249 %description webui -l pl.UTF-8
250 Interfejs użytkownika WWW (klient CGI) może być uruchamiany z
251 dowolnego wykonywalnego miejsca na serwerze WWW i rozpoznaje tożsamość
252 użytkownika ze zmiennej środowiskowej REMOTE_USER. Oznacza to, że
253 trzeba użyć uwietrzytelnienia HTTP z hasłem do dostępu do CGI (działać
254 będzie dowolny rodzaj uwierzytelnienia obsługiwany przez moduły
255 Apache'a). Jest to o tyle wygodne, że można skonfigurować
256 uwierzytelnianie dla prawie każdego istniejącego systemu. Jedynym
257 wymogiem jest, żeby nazwy użytkowników pokrywały się z nazwami
258 użytkowników DSPAM-a używanymi w systemie. Kopia pliku shadow
259 wystarczy dla większości popularnych instalacji.
268 sed -i -e 's#\-static##g' src/Makefile* src/*/Makefile*
269 %{?with_mysql40:sed -i -e 's#40100#99999#g' src/mysql_drv.c}
270 sed -i -e 's,/usr/local/dspam/bin,/usr/bin,' ./scripts/train.pl
280 %{?with_mysql:mysql_drv}
281 %{?with_pgsql:pgsql_drv}
282 %{?with_sqlite:sqlite3_drv}
285 --disable-dependency-tracking \
286 %{?debug: --enable-debug --enable-bnr-debug --enable-verbose-debug} \
287 --enable-trusted-user-security \
288 --enable-large-scale \
289 --with-dspam-home=/var/lib/%{name} \
290 --with-dspam-home-owner=none \
291 --with-dspam-home-group=none \
292 --with-dspam-owner=none \
293 --with-dspam-group=none \
296 --enable-preferences-extension \
297 --enable-long-usernames \
298 --enable-virtual-users \
299 --with-storage-driver=$(echo $DRIVERS | tr ' ' ',') \
301 --with-mysql-includes=%{_includedir}/mysql \
302 --with-mysql-libraries=%{_libdir} \
305 --with-pgsql-includes=%{_includedir}/postgresql \
306 --with-pgsql-libraries=%{_libdir} \
310 --with-sqlite-includes=%{_includedir} \
311 --with-sqlite-libraries=%{_libdir} \
316 # --enable-dclassify-extension needs libdclassify
321 rm -rf $RPM_BUILD_ROOT
322 install -d $RPM_BUILD_ROOT{/var/run/dspam,/etc/{rc.d/init.d,sysconfig}} \
323 $RPM_BUILD_ROOT/var/lib/%{name}/{txt,data}
326 DESTDIR=$RPM_BUILD_ROOT
328 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/dspam
330 cp -a txt/*.txt $RPM_BUILD_ROOT/var/lib/%{name}/txt
332 # install devel files
333 install -d $RPM_BUILD_ROOT{%{_includedir}/%{name},/var/{log,lib}/%{name}}
334 install src/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}
336 # provide maintenance scripts
337 install -d $RPM_BUILD_ROOT/etc/cron.{daily,weekly}
338 cat > $RPM_BUILD_ROOT/etc/cron.daily/%{name} <<EOF
340 exec %{_bindir}/%{name}_clean -s -p
343 chmod 755 $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/%{name}
346 #install dspam-cron.weekly $RPM_BUILD_ROOT%{_sysconfdir}/cron.weekly/%{name}
349 cat > $RPM_BUILD_ROOT/var/lib/%{name}/mysql.data <<EOF
354 This file can only contain 5 lines with the following values:
365 cat > $RPM_BUILD_ROOT/var/lib/%{name}/pgsql.data <<EOF
370 This file can only contain 5 lines with the following values:
380 install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
381 install %{SOURCE2} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
382 install %{SOURCE2} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
383 touch $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/htpasswd
386 /sbin/chkconfig --add dspam
387 %service dspam restart "dspam daemon"
390 if [ "$1" = "0" ]; then
392 /sbin/chkconfig --del dspam
396 rm -rf $RPM_BUILD_ROOT
398 %post libs -p /sbin/ldconfig
399 %postun libs -p /sbin/ldconfig
402 %{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libhash_drv.so,' /etc/dspam.conf
405 %{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libmysql_drv.so,' /etc/dspam.conf
408 %{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libpgsql_drv.so,' /etc/dspam.conf
411 %{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libsqlite3_drv.so,' /etc/dspam.conf
413 %triggerin webui -- apache1 < 1.3.37-3, apache1-base
414 %webapp_register apache %{_webapp}
416 %triggerun webui -- apache1 < 1.3.37-3, apache1-base
417 %webapp_unregister apache %{_webapp}
419 %triggerin webui -- apache < 2.2.0, apache-base
420 %webapp_register httpd %{_webapp}
422 %triggerun webui -- apache < 2.2.0, apache-base
423 %webapp_unregister httpd %{_webapp}
426 %defattr(644,root,root,755)
427 %doc README CHANGELOG RELEASE.NOTES UPGRADING
428 %doc doc/{courier,exim,markov,pop3filter,postfix,qmail,relay,sendmail}.txt
429 %doc scripts/train.pl
430 %dir %attr(775,root,mail) /var/run/dspam
431 %dir %attr(750,root,mail) /var/lib/%{name}
432 %dir %attr(770,root,mail) /var/lib/%{name}/data
433 %dir /var/lib/%{name}/txt
434 %config(noreplace) %verify(not md5 mtime size) /var/lib/%{name}/txt/*.txt
435 %dir %attr(770,root,mail) /var/log/dspam
436 %attr(754,root,root) /etc/rc.d/init.d/dspam
437 %attr(755,root,root) %config(noreplace) /etc/cron.daily/%{name}
438 %attr(755,root,root) %{_bindir}/%{name}
439 %attr(755,root,root) %{_bindir}/%{name}_logrotate
440 %attr(755,root,root) %{_bindir}/%{name}_clean
441 %attr(755,root,root) %{_bindir}/%{name}_crc
442 %attr(755,root,root) %{_bindir}/%{name}_dump
443 %attr(755,root,root) %{_bindir}/%{name}_stats
444 %attr(755,root,root) %{_bindir}/%{name}_merge
445 %attr(755,root,root) %{_bindir}/%{name}_2sql
446 %attr(755,root,root) %{_bindir}/%{name}_admin
447 %attr(755,root,root) %{_bindir}/%{name}_train
448 %{_mandir}/man?/%{name}*
451 %defattr(644,root,root,755)
452 %attr(755,root,root) %{_bindir}/%{name}c
455 %defattr(644,root,root,755)
456 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dspam.conf
459 %defattr(644,root,root,755)
460 %attr(755,root,root) %{_libdir}/libdspam.so.7.0.0
461 %attr(755,root,root) %ghost %{_libdir}/libdspam.so.7
464 %defattr(644,root,root,755)
465 %attr(755,root,root) %{_libdir}/libdspam.so
466 %{_libdir}/libdspam.la
467 %{_libdir}/lib*_drv.la
468 %{_includedir}/%{name}
469 %{_mandir}/man3/libdspam.3*
470 %{_pkgconfigdir}/*.pc
473 %defattr(644,root,root,755)
474 %{_libdir}/libdspam.a
475 %{_libdir}/lib*_drv.a
478 %defattr(644,root,root,755)
479 %attr(755,root,root) %{_bindir}/css*
480 %attr(755,root,root) %{_libdir}/libhash_drv.so.7.0.0
481 %attr(755,root,root) %ghost %{_libdir}/libhash_drv.so.7
482 %{_libdir}/libhash_drv.so
486 %defattr(644,root,root,755)
487 %doc doc/mysql_drv.txt src/tools.mysql_drv/*.sql
488 %attr(640,root,mail) %config(noreplace) /var/lib/%{name}/mysql.data
489 %attr(755,root,root) %{_libdir}/libmysql_drv.so.7.0.0
490 %attr(755,root,root) %ghost %{_libdir}/libmysql_drv.so.7
491 %{_libdir}/libmysql_drv.so
496 %defattr(644,root,root,755)
497 %doc doc/pgsql_drv.txt src/tools.pgsql_drv/*.sql
498 %attr(640,root,mail) %config(noreplace) /var/lib/%{name}/pgsql.data
499 %attr(755,root,root) %{_bindir}/%{name}_pg2int8
500 %attr(755,root,root) %{_libdir}/libpgsql_drv.so.7.0.0
501 %attr(755,root,root) %ghost %{_libdir}/libpgsql_drv.so.7
502 %{_libdir}/libpgsql_drv.so
506 %files driver-sqlite3
507 %defattr(644,root,root,755)
508 %doc doc/sqlite_drv.txt
509 %attr(755,root,root) %{_libdir}/libsqlite3_drv.so.7.0.0
510 %attr(755,root,root) %ghost %{_libdir}/libsqlite3_drv.so.7
511 %{_libdir}/libsqlite3_drv.so
515 %defattr(644,root,root,755)
516 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
517 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
518 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
519 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/htpasswd
520 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/admins
521 %attr(660,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/default.prefs
522 %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/configure.pl
524 %dir %{_datadir}/dspam
525 %dir %{_datadir}/dspam/cgi
526 %attr(755,root,root) %{_datadir}/dspam/cgi/*.cgi
527 %{_datadir}/dspam/cgi/templates
528 %{_datadir}/dspam/htdocs