]> git.pld-linux.org Git - packages/dspam.git/blob - dspam.spec
- log dir added
[packages/dspam.git] / dspam.spec
1 #
2 # TODO:
3 # - support for libdclassify
4 # - oracle driver
5 # - messages from default install of cron with mysql driver
6 # Memory fault
7 #
8 # Conditional build:
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
15 #
16 Summary:        A library and Mail Delivery Agent for Bayesian spam filtering
17 Summary(pl):    Biblioteka i MDA do bayesowskiego filtrowania spamu
18 Name:           dspam
19 Version:        3.6.3
20 Release:        0.4.1
21 License:        GPL
22 Group:          Applications/Mail
23 Source0:        http://www.nuclearelephant.com/projects/dspam/sources/%{name}-%{version}.tar.gz
24 # Source0-md5:  db1aedb9677e6bf5c7a47a72d4f130e5
25 Source1:        %{name}.init
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)
39
40 %description
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.
46
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,
56 qmail, etc.)
57
58 %description -l pl
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.
65
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,
76 qmailem itd.).
77
78 %package client
79 Summary:        dspam client
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}
85
86 %description client
87 dspam client.
88
89 %description client -l pl
90 Klient dspam.
91
92 %package libs
93 Summary:        A library for Bayesian spam filtering
94 Summary(pl):    Biblioteka do bayesowskiego filtrowania spamu
95 Group:          Libraries
96 Requires:       %{name}-driver = %{version}-%{release}
97
98 %description libs
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.
104
105 This package contains the library.
106
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.
114
115 Ten pakiet zawiera wspomnian± bibliotekê.
116
117 %package devel
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}
122
123 %description devel
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,
127 or similar projects.
128
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.
134
135 %package static
136 Summary:        Static DSPAM library
137 Summary(pl):    Statyczna biblioteka DSPAM
138 Group:          Development/Libraries
139 Requires:       %{name}-devel = %{version}-%{release}
140
141 %description static
142 Static DSPAM library.
143
144 %description static -l pl
145 Statyczna biblioteka DSPAM.
146
147 %package driver-hash
148 Summary:        HASH driver for DSPAM
149 Summary(pl):    Sterownik HASH dla DSPAM-a
150 Group:          Libraries
151 Requires:       %{name}-libs = %{version}-%{release}
152 Requires(post): sed >= 4.0
153 Provides:       %{name}-driver = %{version}-%{release}
154
155 %description driver-hash
156 HASH driver for DSPAM.
157
158 %description driver-hash -l pl
159 Sterownik HASH dla DSPAM-a.
160
161 %package driver-db
162 Summary:        DB driver for DSPAM
163 Summary(pl):    Sterownik DB dla DSPAM-a
164 Group:          Libraries
165 Requires:       %{name}-libs = %{version}-%{release}
166 Requires(post): sed >= 4.0
167 Provides:       %{name}-driver = %{version}-%{release}
168
169 %description driver-db
170 DB driver for DSPAM.
171
172 %description driver-db -l pl
173 Sterownik DB dla DSPAM-a.
174
175 %package driver-mysql
176 Summary:        MySQL driver for DSPAM
177 Summary(pl):    Sterownik MySQL dla DSPAM-a
178 Group:          Libraries
179 Requires:       %{name}-libs = %{version}-%{release}
180 Requires(post): sed >= 4.0
181 Provides:       %{name}-driver = %{version}-%{release}
182
183 %description driver-mysql
184 MySQL driver for DSPAM.
185
186 %description driver-mysql -l pl
187 Sterownik MySQL dla DSPAM-a.
188
189 %package driver-pgsql
190 Summary:        PostgreSQL driver for DSPAM
191 Summary(pl):    Sterownik PostgreSQL dla DSPAM-a
192 Group:          Libraries
193 Requires:       %{name}-libs = %{version}-%{release}
194 Requires(post): sed >= 4.0
195 Provides:       %{name}-driver = %{version}-%{release}
196
197 %description driver-pgsql
198 PostgreSQL driver for DSPAM.
199
200 %description driver-pgsql -l pl
201 Sterownik PostgreSQL dla DSPAM-a.
202
203 %package driver-sqlite
204 Summary:        SQLite driver for DSPAM
205 Summary(pl):    Sterownik SQLite dla DSPAM-a
206 Group:          Libraries
207 Requires:       %{name}-libs = %{version}-%{release}
208 Requires(post): sed >= 4.0
209 Provides:       %{name}-driver = %{version}-%{release}
210
211 %description driver-sqlite
212 SQLite driver for DSPAM.
213
214 %description driver-sqlite -l pl
215 Sterownik SQLite dla DSPAM-a.
216
217 %prep
218 %setup -q
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}
221
222 %build
223 %{__libtoolize}
224 %{__aclocal} -I m4
225 %{__autoconf}
226 %{__automake}
227
228 DRIVERS="
229 hash_drv
230 %{?with_db:libdb4_drv}
231 %{?with_mysql:mysql_drv}
232 %{?with_pgsql:pgsql_drv}
233 %{?with_sqlite:sqlite_drv}
234 "
235 %configure \
236         %{?debug: --enable-debug --enable-bnr-debug --enable-verbose-debug} \
237         --enable-trusted-user-security \
238         --enable-bias \
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 \
250         --enable-ldap \
251         --enable-clamav \
252         --enable-preferences-extension \
253         --enable-long-usernames \
254         --enable-neural-networking \
255         --enable-virtual-users \
256         --with-storage-driver=$(echo $DRIVERS | tr ' ' ',') \
257 %if %{with mysql}
258         --with-mysql-includes=%{_includedir}/mysql \
259         --with-mysql-libraries=%{_libdir} \
260 %endif
261 %if %{with pgsql}
262         --with-pgsql-includes=%{_includedir}/postgresql \
263         --with-pgsql-libraries=%{_libdir} \
264 %endif
265 %if %{with sqlite}
266         --with-sqlite3-includes=%{_includedir} \
267         --with-sqlite3-libraries=%{_libdir} \
268 %endif
269         --enable-daemon
270
271 # --enable-dclassify-extension needs libdclassify
272
273 %{__make}
274
275 %install
276 rm -rf $RPM_BUILD_ROOT
277
278 %{__make} install \
279         DESTDIR=$RPM_BUILD_ROOT
280
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
283
284 #
285 ln -s /var/log/dspam $RPM_BUILD_ROOT/var/lib/%{name}/log
286
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}
290
291 # provide maintenance scripts
292 install -d $RPM_BUILD_ROOT/etc/cron.daily
293 install -d $RPM_BUILD_ROOT/etc/cron.weekly
294
295 cat > $RPM_BUILD_ROOT/etc/cron.daily/%{name} <<EOF
296 #!/bin/sh
297 exec %{_bindir}/%{name}_clean -s -p
298 EOF
299
300 chmod 755 $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/%{name}
301
302 # fix prefix
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
305
306 # fix purge stuff
307 #install dspam-cron.weekly $RPM_BUILD_ROOT%{_sysconfdir}/cron.weekly/%{name}
308
309 %if %{with mysql}
310 # fix missing file
311 install -d $RPM_BUILD_ROOT/var/lib/%{name}
312 cat > $RPM_BUILD_ROOT/var/lib/%{name}/mysql.data <<EOF
313 _UNCONFIGURED_
314
315 Note!
316
317 This file can only contain 5 lines with the following values:
318
319 HOSTNAME
320 PORT
321 USERNAME
322 PASSWORD
323 DATABASE
324 EOF
325 %endif
326
327 %if %{with pgsql}
328 # fix missing file
329 install -d $RPM_BUILD_ROOT/var/lib/%{name}
330 cat > $RPM_BUILD_ROOT/var/lib/%{name}/pgsql.data <<EOF
331 _UNCONFIGURED_
332
333 Note!
334
335 This file can only contain 5 lines with the following values:
336
337 HOSTNAME
338 PORT
339 USERNAME
340 PASSWORD
341 DATABASE
342 EOF
343 %endif
344
345 %post
346 /sbin/chkconfig --add dspam
347 if [ -f /var/lock/subsys/dspam ]; then
348         /etc/rc.d/init.d/dspam restart 1>&2
349 else
350         echo "Run \"/etc/rc.d/init.d/dspam start\" to start dspam daemon."
351 fi
352
353 %preun
354 if [ "$1" = "0" ]; then
355         if [ -f /var/lock/subsys/dspam ]; then
356                 /etc/rc.d/init.d/dspam stop 1>&2
357         fi
358         /sbin/chkconfig --del dspam
359 fi
360
361 %clean
362 rm -rf $RPM_BUILD_ROOT
363
364 %post   libs -p /sbin/ldconfig
365 %postun libs -p /sbin/ldconfig
366
367 %post driver-db
368 if [ "$1" = "1" ]; then
369         sed -i -e '/^StorageDriver/s,/.*.so,%{_libdir}/libdb4_drv.so,' /etc/dspam.conf
370 fi
371
372 %post driver-hash
373 if [ "$1" = "1" ]; then
374         sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libhash_drv.so,' /etc/dspam.conf
375 fi
376
377 %post driver-mysql
378 if [ "$1" = "1" ]; then
379         sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libmysql_drv.so,' /etc/dspam.conf
380 fi
381
382 %post driver-pgsql
383 if [ "$1" = "1" ]; then
384         sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libpgsql_drv.so,' /etc/dspam.conf
385 fi
386
387 %post driver-sqlite
388 if [ "$1" = "1" ]; then
389         sed -i -e '/^StorageDriver/s,/.*\.so,%{_libdir}/libsqlite_drv.so,' /etc/dspam.conf
390 fi
391
392 %files
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}*
413
414 %if %{with daemon}
415 %attr(754,root,root) /etc/rc.d/init.d/dspam
416 %files client
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
420 %endif
421 %attr(755,root,root) %{_bindir}/%{name}c
422
423 %files libs
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*
428
429 %files devel
430 %defattr(644,root,root,755)
431 %attr(755,root,root) %{_libdir}/lib*.so
432 %attr(755,root,root) %exclude %{_libdir}/lib*_drv*.so*
433 %{_libdir}/lib*.la
434 %{_includedir}/%{name}
435 %{_mandir}/man3/libdspam*
436 %{_pkgconfigdir}/*.pc
437
438 %files static
439 %defattr(644,root,root,755)
440 %{_libdir}/lib*.a
441
442 %files driver-hash
443 %defattr(644,root,root,755)
444 %attr(755,root,root) %{_bindir}/css*
445 %attr(755,root,root) %{_libdir}/libhash_drv*.so*
446
447 %if %{with db}
448 %files driver-db
449 %defattr(644,root,root,755)
450 %attr(755,root,root) %{_libdir}/libdb4_drv*.so*
451 %endif
452
453 %if %{with mysql}
454 %files driver-mysql
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*
459 %endif
460
461 %if %{with pgsql}
462 %files driver-pgsql
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*
468 %endif
469
470 %if %{with sqlite}
471 %files driver-sqlite
472 %defattr(644,root,root,755)
473 %doc doc/sqlite_drv.txt
474 %attr(755,root,root) %{_libdir}/libsqlite_drv*.so*
475 %endif
This page took 0.126158 seconds and 3 git commands to generate.