]> git.pld-linux.org Git - packages/dspam.git/blame_incremental - dspam.spec
- *use* sqlite3
[packages/dspam.git] / dspam.spec
... / ...
CommitLineData
1# TODO:
2# - support for libdclassify
3# - oracle driver
4# - messages from default install of cron with mysql driver Memory fault
5# - installing dspam and dspam-client on same host causes
6# /etc/dspam.conf being owned by both packages and .rpmnew files being
7# created. move the config to -libs? -common? patch code to use
8# different config for client?
9#
10# Conditional build:
11%bcond_without mysql # disable MySQL storage driver
12%bcond_without pgsql # disable PostgreSQL storage driver
13%bcond_without sqlite # disable SQLite3 storage driver
14%bcond_with mysql40 # use with mysql 4.0
15#
16%include /usr/lib/rpm/macros.perl
17Summary: A library and Mail Delivery Agent for Bayesian spam filtering
18Summary(pl.UTF-8): Biblioteka i MDA do bayesowskiego filtrowania spamu
19Name: dspam
20Version: 3.8.0
21Release: 1
22License: GPL
23Group: Applications/Mail
24Source0: http://dspam.nuclearelephant.com/sources/%{name}-%{version}.tar.gz
25# Source0-md5: 056b8c8b3ad9415a52c01b22ff1e64cf
26Patch0: %{name}-webui.patch
27Patch1: %{name}-config.patch
28Patch2: %{name}-speedup.patch
29Patch3: %{name}-autotools.patch
30Source1: %{name}.init
31Source2: %{name}-apache.conf
32URL: http://dspam.nuclearelephant.com/
33BuildRequires: autoconf
34BuildRequires: automake
35BuildRequires: clamav-devel
36BuildRequires: libtool
37%{?with_mysql:BuildRequires: mysql-devel}
38BuildRequires: openldap-devel >= 2.4.6
39%{?with_pgsql:BuildRequires: postgresql-devel}
40BuildRequires: rpm-perlprov >= 4.1-13
41BuildRequires: rpmbuild(macros) >= 1.268
42BuildRequires: sed >= 4.0
43%{?with_sqlite:BuildRequires: sqlite3-devel}
44BuildRequires: zlib-devel
45Requires(post,preun): /sbin/chkconfig
46Requires: %{name}-driver = %{version}-%{release}
47Requires: rc-scripts
48Buildroot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49
50%define _webapps /etc/webapps
51%define _webapp %{name}
52
53%description
54DSPAM (as in De-Spam) is an open-source project to create a new kind
55of anti-spam mechanism, and is currently effective as both a
56server-side agent for UNIX email servers and a developer's library for
57mail clients, other anti-spam tools, and similar projects requiring
58drop-in spam filtering.
59
60The DSPAM agent masquerades as the email server's local delivery agent
61and filters/learns spams using an advanced Bayesian statistical
62approach (based on Bayes's theorem of combined probabilities) which
63provides an administratively maintenance-free, easy-learning Anti-Spam
64service custom tailored to each individual user's behavior. Advanced
65because on top of standard Bayesian filtering is also incorporated the
66use of Chained Tokens, de-obfuscation, and other enhancements. DSPAM
67works great with Sendmail and Exim, and should work well with any
68other MTA that supports an external local delivery agent (postfix,
69qmail, etc.)
70
71%description -l pl.UTF-8
72DSPAM (czyli De-Spam) to projekt o otwartych źródłach mający na celu
73stworzenie nowego rodzaju mechanizmu antyspamowego. Aktualnie jest
74efektywny zarówno jako działający po stronie serwera agent dla
75uniksowych serwerów pocztowych jak i biblioteka dla programistów
76klientów pocztowych, innych narzędzi antyspamowych i innych projektów
77wymagających filtrowania spamu w locie.
78
79Agent DSPAM zachowuje się jak lokalny agent dostarczania poczty (MDA)
80i filtruje/uczy się spamu przy użyciu zaawansowanego bayesowskiego
81przybliżenia statystycznego (opartego na twierdzeniu Bayesa o
82połączonych prawdopodobieństwach), dając nie wymagającą obsługi
83administracyjnej, łatwo uczącą się usługę antyspamową dostosowaną do
84zachowania każdego użytkownika. Metoda jest zaawansowana ponieważ na
85podstawie standardowego filtrowania bayesowskiego wprowadzono użycie
86tokenów łańcuchowych, eliminowanie ukrywanie i inne rozszerzenia.
87DSPAM działa wspaniale z Sendmailem i Eximem, powinien działać dobrze
88z każdym innym MTA obsługującym zewnętrznego agenta MDA (postfiksem,
89qmailem itd.).
90
91%package client
92Summary: dspam client
93Summary(pl.UTF-8): Klient dspam
94Group: Applications/Mail
95# to get the same dspam.conf when both installed
96Conflicts: dspam < %{version}-%{release}
97Conflicts: dspam > %{version}-%{release}
98
99%description client
100dspam client.
101
102%description client -l pl.UTF-8
103Klient dspam.
104
105%package libs
106Summary: A library for Bayesian spam filtering
107Summary(pl.UTF-8): Biblioteka do bayesowskiego filtrowania spamu
108Group: Libraries
109Obsoletes: dspam-driver-db
110
111%description libs
112DSPAM (as in De-Spam) is an open-source project to create a new kind
113of anti-spam mechanism, and is currently effective as both a
114server-side agent for UNIX email servers and a developer's library for
115mail clients, other anti-spam tools, and similar projects requiring
116drop-in spam filtering.
117
118This package contains the library.
119
120%description libs -l pl.UTF-8
121DSPAM (czyli De-Spam) to projekt o otwartych źródłach mający na celu
122stworzenie nowego rodzaju mechanizmu antyspamowego. Aktualnie jest
123efektywny zarówno jako działający po stronie serwera agent dla
124uniksowych serwerów pocztowych jak i biblioteka dla programistów
125klientów pocztowych, innych narzędzi antyspamowych i innych projektów
126wymagających filtrowania spamu w locie.
127
128Ten pakiet zawiera wspomnianą bibliotekę.
129
130%package devel
131Summary: Header files for the DSPAM library
132Summary(pl.UTF-8): Pliki nagłówkowe biblioteki DSPAM
133Group: Development/Libraries
134Requires: %{name}-libs = %{version}-%{release}
135
136%description devel
137DSPAM has had its core engine moved into a separate library, libdspam.
138This library can be used by developers to provide 'drop-in' spam
139filtering for their mail client applications, other anti-spam tools,
140or similar projects.
141
142%description devel -l pl.UTF-8
143Główny silnik DSPAM został przeniesiony do oddzielnej biblioteki
144libdspam, która może być używana przez programistów do zapewnienia
145filtrowania spamu w locie dla aplikacji klientów pocztowych, innych
146narzędzi antyspamowych i podobnych projektów.
147
148%package static
149Summary: Static DSPAM library
150Summary(pl.UTF-8): Statyczna biblioteka DSPAM
151Group: Development/Libraries
152Requires: %{name}-devel = %{version}-%{release}
153
154%description static
155Static DSPAM library.
156
157%description static -l pl.UTF-8
158Statyczna biblioteka DSPAM.
159
160%package driver-hash
161Summary: HASH driver for DSPAM
162Summary(pl.UTF-8): Sterownik HASH dla DSPAM-a
163Group: Libraries
164Requires(post): sed >= 4.0
165Requires: %{name} = %{version}-%{release}
166Provides: %{name}-driver = %{version}-%{release}
167
168%description driver-hash
169HASH driver for DSPAM.
170
171%description driver-hash -l pl.UTF-8
172Sterownik HASH dla DSPAM-a.
173
174%package driver-mysql
175Summary: MySQL driver for DSPAM
176Summary(pl.UTF-8): Sterownik MySQL dla DSPAM-a
177Group: Libraries
178Requires(post): sed >= 4.0
179Requires: %{name} = %{version}-%{release}
180Provides: %{name}-driver = %{version}-%{release}
181
182%description driver-mysql
183MySQL driver for DSPAM.
184
185%description driver-mysql -l pl.UTF-8
186Sterownik MySQL dla DSPAM-a.
187
188%package driver-pgsql
189Summary: PostgreSQL driver for DSPAM
190Summary(pl.UTF-8): Sterownik PostgreSQL dla DSPAM-a
191Group: Libraries
192Requires(post): sed >= 4.0
193Requires: %{name} = %{version}-%{release}
194Provides: %{name}-driver = %{version}-%{release}
195
196%description driver-pgsql
197PostgreSQL driver for DSPAM.
198
199%description driver-pgsql -l pl.UTF-8
200Sterownik PostgreSQL dla DSPAM-a.
201
202%package driver-sqlite
203Summary: SQLite driver for DSPAM
204Summary(pl.UTF-8): Sterownik SQLite dla DSPAM-a
205Group: Libraries
206Requires(post): sed >= 4.0
207Requires: %{name} = %{version}-%{release}
208Provides: %{name}-driver = %{version}-%{release}
209
210%description driver-sqlite
211SQLite driver for DSPAM.
212
213%description driver-sqlite -l pl.UTF-8
214Sterownik SQLite dla DSPAM-a.
215
216%package webui
217Summary: DSPAM Web UI
218Summary(pl.UTF-8): Interfejs WWW do programu DSPAM
219Group: Applications/WWW
220Requires: webapps
221# needs dspam binary
222Requires: %{name} = %{version}-%{release}
223
224%description webui
225The Web UI (CGI client) can be run from any executable location on a
226web server, and detects its user's identity from the REMOTE_USER
227environment variable. This means you'll need to use HTTP password
228authentication to access the CGI (Any type of authentication will
229work, so long as Apache supports the module). This is also convenient
230in that you can set up authentication using almost any existing system
231you have. The only catch is that you'll need the usernames to match
232the actual DSPAM usernames used the system. A copy of the shadow
233password file will suffice for most common installs.
234
235%description webui -l pl.UTF-8
236Interfejs użytkownika WWW (klient CGI) może być uruchamiany z
237dowolnego wykonywalnego miejsca na serwerze WWW i rozpoznaje tożsamość
238użytkownika ze zmiennej środowiskowej REMOTE_USER. Oznacza to, że
239trzeba użyć uwietrzytelnienia HTTP z hasłem do dostępu do CGI (działać
240będzie dowolny rodzaj uwierzytelnienia obsługiwany przez moduły
241Apache'a). Jest to o tyle wygodne, że można skonfigurować
242uwierzytelnianie dla prawie każdego istniejącego systemu. Jedynym
243wymogiem jest, żeby nazwy użytkowników pokrywały się z nazwami
244użytkowników DSPAM-a używanymi w systemie. Kopia pliku shadow
245wystarczy dla większości popularnych instalacji.
246
247%prep
248%setup -q
249%patch0 -p1
250%patch1 -p1
251%patch2 -p1
252%patch3 -p1
253sed -i -e 's#\-static##g' src/Makefile* src/*/Makefile*
254%{?with_mysql40:sed -i -e 's#40100#99999#g' src/mysql_drv.c}
255sed -i -e 's,/usr/local/dspam/bin,/usr/bin,' ./scripts/train.pl
256
257%build
258%{__libtoolize}
259%{__aclocal} -I m4
260%{__autoconf}
261%{__automake}
262
263DRIVERS="
264hash_drv
265%{?with_mysql:mysql_drv}
266%{?with_pgsql:pgsql_drv}
267%{?with_sqlite:sqlite3_drv}
268"
269%configure \
270 --disable-dependency-tracking \
271 %{?debug: --enable-debug --enable-bnr-debug --enable-verbose-debug} \
272 --enable-trusted-user-security \
273 --enable-large-scale \
274 --with-dspam-home=/var/lib/%{name} \
275 --with-dspam-home-owner=none \
276 --with-dspam-home-group=none \
277 --with-dspam-owner=none \
278 --with-dspam-group=none \
279 --enable-ldap \
280 --enable-clamav \
281 --enable-preferences-extension \
282 --enable-long-usernames \
283 --enable-virtual-users \
284 --with-storage-driver=$(echo $DRIVERS | tr ' ' ',') \
285%if %{with mysql}
286 --with-mysql-includes=%{_includedir}/mysql \
287 --with-mysql-libraries=%{_libdir} \
288%endif
289%if %{with pgsql}
290 --with-pgsql-includes=%{_includedir}/postgresql \
291 --with-pgsql-libraries=%{_libdir} \
292%endif
293%if 0
294%if %{with sqlite}
295 --with-sqlite-includes=%{_includedir} \
296 --with-sqlite-libraries=%{_libdir} \
297%endif
298%endif
299 --enable-daemon
300
301# --enable-dclassify-extension needs libdclassify
302
303%{__make}
304
305%install
306rm -rf $RPM_BUILD_ROOT
307install -d $RPM_BUILD_ROOT{/var/run/dspam,/etc/{rc.d/init.d,sysconfig}} \
308 $RPM_BUILD_ROOT/var/lib/%{name}/{txt,data}
309
310%{__make} install \
311 DESTDIR=$RPM_BUILD_ROOT
312
313install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/dspam
314
315cp -a txt/*.txt $RPM_BUILD_ROOT/var/lib/%{name}/txt
316
317# install devel files
318install -d $RPM_BUILD_ROOT{%{_includedir}/%{name},/var/{log,lib}/%{name}}
319install src/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}
320
321# provide maintenance scripts
322install -d $RPM_BUILD_ROOT/etc/cron.{daily,weekly}
323cat > $RPM_BUILD_ROOT/etc/cron.daily/%{name} <<EOF
324#!/bin/sh
325exec %{_bindir}/%{name}_clean -s -p
326EOF
327
328chmod 755 $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/%{name}
329
330# fix purge stuff
331#install dspam-cron.weekly $RPM_BUILD_ROOT%{_sysconfdir}/cron.weekly/%{name}
332
333%if %{with mysql}
334cat > $RPM_BUILD_ROOT/var/lib/%{name}/mysql.data <<EOF
335_UNCONFIGURED_
336
337Note!
338
339This file can only contain 5 lines with the following values:
340
341HOSTNAME
342PORT
343USERNAME
344PASSWORD
345DATABASE
346EOF
347%endif
348
349%if %{with pgsql}
350cat > $RPM_BUILD_ROOT/var/lib/%{name}/pgsql.data <<EOF
351_UNCONFIGURED_
352
353Note!
354
355This file can only contain 5 lines with the following values:
356
357HOSTNAME
358PORT
359USERNAME
360PASSWORD
361DATABASE
362EOF
363%endif
364
365install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
366install %{SOURCE2} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
367install %{SOURCE2} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
368touch $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/htpasswd
369
370%post
371/sbin/chkconfig --add dspam
372%service dspam restart "dspam daemon"
373
374%preun
375if [ "$1" = "0" ]; then
376 %service dspam stop
377 /sbin/chkconfig --del dspam
378fi
379
380%clean
381rm -rf $RPM_BUILD_ROOT
382
383%post libs -p /sbin/ldconfig
384%postun libs -p /sbin/ldconfig
385
386%post driver-hash
387%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libhash_drv.so,' /etc/dspam.conf
388
389%post driver-mysql
390%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libmysql_drv.so,' /etc/dspam.conf
391
392%post driver-pgsql
393%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libpgsql_drv.so,' /etc/dspam.conf
394
395%post driver-sqlite
396%{__sed} -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libsqlite3_drv.so,' /etc/dspam.conf
397
398%triggerin webui -- apache1 < 1.3.37-3, apache1-base
399%webapp_register apache %{_webapp}
400
401%triggerun webui -- apache1 < 1.3.37-3, apache1-base
402%webapp_unregister apache %{_webapp}
403
404%triggerin webui -- apache < 2.2.0, apache-base
405%webapp_register httpd %{_webapp}
406
407%triggerun webui -- apache < 2.2.0, apache-base
408%webapp_unregister httpd %{_webapp}
409
410%files
411%defattr(644,root,root,755)
412%doc README CHANGELOG RELEASE.NOTES UPGRADING
413%doc doc/{courier,exim,markov,pop3filter,postfix,qmail,relay,sendmail}.txt
414%doc scripts/train.pl
415%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dspam.conf
416%dir %attr(775,root,mail) /var/run/dspam
417%dir %attr(750,root,mail) /var/lib/%{name}
418%dir %attr(770,root,mail) /var/lib/%{name}/data
419%dir /var/lib/%{name}/txt
420%config(noreplace) %verify(not md5 mtime size) /var/lib/%{name}/txt/*.txt
421%dir %attr(770,root,mail) /var/log/dspam
422%attr(754,root,root) /etc/rc.d/init.d/dspam
423%attr(755,root,root) %config(noreplace) /etc/cron.daily/%{name}
424%attr(755,root,root) %{_bindir}/%{name}
425%attr(755,root,root) %{_bindir}/%{name}_logrotate
426%attr(755,root,root) %{_bindir}/%{name}_clean
427%attr(755,root,root) %{_bindir}/%{name}_crc
428%attr(755,root,root) %{_bindir}/%{name}_dump
429%attr(755,root,root) %{_bindir}/%{name}_stats
430%attr(755,root,root) %{_bindir}/%{name}_merge
431%attr(755,root,root) %{_bindir}/%{name}_2sql
432%attr(755,root,root) %{_bindir}/%{name}_admin
433%attr(755,root,root) %{_bindir}/%{name}_train
434%{_mandir}/man?/%{name}*
435
436%files client
437%defattr(644,root,root,755)
438%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dspam.conf
439%attr(755,root,root) %{_bindir}/%{name}c
440
441%files libs
442%defattr(644,root,root,755)
443%attr(755,root,root) %{_libdir}/libdspam.so.7.0.0
444%attr(755,root,root) %ghost %{_libdir}/libdspam.so.7
445
446%files devel
447%defattr(644,root,root,755)
448%attr(755,root,root) %{_libdir}/libdspam.so
449%attr(755,root,root) %{_libdir}/lib*_drv.so
450%{_libdir}/libdspam.la
451%{_libdir}/lib*_drv.la
452%{_includedir}/%{name}
453%{_mandir}/man3/libdspam.3*
454%{_pkgconfigdir}/*.pc
455
456%files static
457%defattr(644,root,root,755)
458%{_libdir}/libdspam.a
459%{_libdir}/lib*_drv.a
460
461%files driver-hash
462%defattr(644,root,root,755)
463%attr(755,root,root) %{_bindir}/css*
464%attr(755,root,root) %{_libdir}/libhash_drv.so.7.0.0
465%attr(755,root,root) %ghost %{_libdir}/libhash_drv.so.7
466
467%if %{with mysql}
468%files driver-mysql
469%defattr(644,root,root,755)
470%doc doc/mysql_drv.txt src/tools.mysql_drv/*.sql
471%attr(640,root,mail) %config(noreplace) /var/lib/%{name}/mysql.data
472%attr(755,root,root) %{_libdir}/libmysql_drv.so.7.0.0
473%attr(755,root,root) %ghost %{_libdir}/libmysql_drv.so.7
474%endif
475
476%if %{with pgsql}
477%files driver-pgsql
478%defattr(644,root,root,755)
479%doc doc/pgsql_drv.txt src/tools.pgsql_drv/*.sql
480%attr(640,root,mail) %config(noreplace) /var/lib/%{name}/pgsql.data
481%attr(755,root,root) %{_bindir}/%{name}_pg2int8
482%attr(755,root,root) %{_libdir}/libpgsql_drv.so.7.0.0
483%attr(755,root,root) %ghost %{_libdir}/libpgsql_drv.so.7
484%endif
485
486%if %{with sqlite}
487%files driver-sqlite
488%defattr(644,root,root,755)
489%doc doc/sqlite_drv.txt
490%attr(755,root,root) %{_libdir}/libsqlite3_drv.so.7.0.0
491%attr(755,root,root) %ghost %{_libdir}/libsqlite3_drv.so.7
492%endif
493
494%files webui
495%defattr(644,root,root,755)
496%dir %attr(750,root,http) %{_webapps}/%{_webapp}
497%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
498%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
499%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/htpasswd
500%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/admins
501%attr(660,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/default.prefs
502%config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/configure.pl
503
504%dir %{_datadir}/dspam
505%dir %{_datadir}/dspam/cgi
506%attr(755,root,root) %{_datadir}/dspam/cgi/*.cgi
507%{_datadir}/dspam/cgi/templates
508%{_datadir}/dspam/htdocs
This page took 0.050321 seconds and 4 git commands to generate.