X-Git-Url: http://git.pld-linux.org/?p=packages%2Fdspam.git;a=blobdiff_plain;f=dspam.spec;h=c60d31ab2ed36ddf25091189cf415eb0c6a606de;hp=6ef16410232c643db7a045105b1fabbfd9013041;hb=8e90da8abd65d8d410021542cda415256173ae10;hpb=18bb9c31b388c6f88b3d5d38a2060d6b7be80eb3 diff --git a/dspam.spec b/dspam.spec index 6ef1641..c60d31a 100644 --- a/dspam.spec +++ b/dspam.spec @@ -1,38 +1,53 @@ -# TODO: everything +# TODO: +# - 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? # # Conditional build: -%bcond_with mysql # enable MySQL storage driver (disable sqlite driver) -%bcond_with pgsql # enable PostgreSQL storage driver (disable sqlite driver) -%bcond_with sqlite2 # enable SQLite2 storage driver (disable sqlite3 driver) +%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): Biblioteka i MDA do bayesowskiego filtrowania spamu +Summary(pl.UTF-8): Biblioteka i MDA do bayesowskiego filtrowania spamu Name: dspam -Version: 3.4.8 +Version: 3.6.8 Release: 0.1 License: GPL Group: Applications/Mail -Source0: http://www.nuclearelephant.com/projects/dspam/sources/%{name}-%{version}.tar.gz -# Source0-md5: b6930c31fe0940b8ad6d27324f8bab3e -URL: http://www.nuclearelephant.com/projects/dspam/ -%if %{with mysql} -BuildRequires: mysql-devel -%else -%if %{with pgsql} -BuildRequires: postgresql-devel -%else -%if %{with sqlite2} -BuildRequires: sqlite-devel -BuildRequires: sqlite-static -%else -BuildRequires: sqlite3-devel -BuildRequires: sqlite3-static -%endif -%endif -%endif +Source0: http://dspam.nuclearelephant.com/sources/%{name}-%{version}.tar.gz +# Source0-md5: c4b1a7079690ee16d8b0f36b2a2a90a4 +Patch0: %{name}-webui.patch +Patch1: %{name}-config.patch +Patch2: %{name}-speedup.patch +Source1: %{name}.init +Source2: %{name}-apache.conf +URL: http://dspam.nuclearelephant.com/ +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: clamav-devel +BuildRequires: libtool +%{?with_mysql:BuildRequires: mysql-devel} +BuildRequires: openldap-devel +%{?with_pgsql:BuildRequires: postgresql-devel} +BuildRequires: rpm-perlprov >= 4.1-13 +BuildRequires: rpmbuild(macros) >= 1.268 BuildRequires: sed >= 4.0 +%{?with_sqlite:BuildRequires: sqlite3-devel} +BuildRequires: zlib-devel +Requires(post,preun): /sbin/chkconfig +Requires: rc-scripts Buildroot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +%define _webapps /etc/webapps +%define _webapp %{name} + %description DSPAM (as in De-Spam) is an open-source project to create a new kind of anti-spam mechanism, and is currently effective as both a @@ -51,30 +66,45 @@ works great with Sendmail and Exim, and should work well with any other MTA that supports an external local delivery agent (postfix, qmail, etc.) -%description -l pl -DSPAM (czyli De-Spam) to projekt o otwartych ¼ród³ach maj±cy na celu +%description -l pl.UTF-8 +DSPAM (czyli De-Spam) to projekt o otwartych źródłach mający na celu stworzenie nowego rodzaju mechanizmu antyspamowego. Aktualnie jest -efektywny zarówno jako dzia³aj±cy po stronie serwera agent dla -uniksowych serwerów pocztowych jak i biblioteka dla programistów -klientów pocztowych, innych narzêdzi antyspamowych i innych projektów -wymagaj±cych filtrowania spamu w locie. - -Agent DSPAM zachowuje siê jak lokalny agent dostarczania poczty (MDA) -i filtruje/uczy siê spamu przy u¿yciu zaawansowanego bayesowskiego -przybli¿enia statystycznego (opartego na twierdzeniu Bayesa o -po³±czonych prawdopodobieñstwach), daj±c nie wymagaj±c± obs³ugi -administracyjnej, ³atwo ucz±c± siê us³ugê antyspamow± dostosowan± do -zachowania ka¿dego u¿ytkownika. Metoda jest zaawansowana poniewa¿ na -podstawie standardowego filtrowania bayesowskiego wprowadzono u¿ycie -tokenów ³añcuchowych, eliminowanie ukrywanie i inne rozszerzenia. -DSPAM dzia³a wspaniale z Sendmailem i Eximem, powinien dzia³aæ dobrze -z ka¿dym innym MTA obs³uguj±cym zewnêtrznego agenta MDA (postfiksem, +efektywny zarówno jako działający po stronie serwera agent dla +uniksowych serwerów pocztowych jak i biblioteka dla programistów +klientów pocztowych, innych narzędzi antyspamowych i innych projektów +wymagających filtrowania spamu w locie. + +Agent DSPAM zachowuje się jak lokalny agent dostarczania poczty (MDA) +i filtruje/uczy się spamu przy użyciu zaawansowanego bayesowskiego +przybliżenia statystycznego (opartego na twierdzeniu Bayesa o +połączonych prawdopodobieństwach), dając nie wymagającą obsługi +administracyjnej, łatwo uczącą się usługę antyspamową dostosowaną do +zachowania każdego użytkownika. Metoda jest zaawansowana ponieważ na +podstawie standardowego filtrowania bayesowskiego wprowadzono użycie +tokenów łańcuchowych, eliminowanie ukrywanie i inne rozszerzenia. +DSPAM działa wspaniale z Sendmailem i Eximem, powinien działać dobrze +z każdym innym MTA obsługującym zewnętrznego agenta MDA (postfiksem, qmailem itd.). +%package client +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} + +%description client +dspam client. + +%description client -l pl.UTF-8 +Klient dspam. + %package libs Summary: A library for Bayesian spam filtering -Summary(pl): Biblioteka do bayesowskiego filtrowania spamu +Summary(pl.UTF-8): Biblioteka do bayesowskiego filtrowania spamu Group: Libraries +Requires: %{name}-driver = %{version}-%{release} %description libs DSPAM (as in De-Spam) is an open-source project to create a new kind @@ -85,19 +115,19 @@ drop-in spam filtering. This package contains the library. -%description libs -l pl -DSPAM (czyli De-Spam) to projekt o otwartych ¼ród³ach maj±cy na celu +%description libs -l pl.UTF-8 +DSPAM (czyli De-Spam) to projekt o otwartych źródłach mający na celu stworzenie nowego rodzaju mechanizmu antyspamowego. Aktualnie jest -efektywny zarówno jako dzia³aj±cy po stronie serwera agent dla -uniksowych serwerów pocztowych jak i biblioteka dla programistów -klientów pocztowych, innych narzêdzi antyspamowych i innych projektów -wymagaj±cych filtrowania spamu w locie. +efektywny zarówno jako działający po stronie serwera agent dla +uniksowych serwerów pocztowych jak i biblioteka dla programistów +klientów pocztowych, innych narzędzi antyspamowych i innych projektów +wymagających filtrowania spamu w locie. -Ten pakiet zawiera wspomnian± bibliotekê. +Ten pakiet zawiera wspomnianą bibliotekę. %package devel Summary: Header files for the DSPAM library -Summary(pl): Pliki nag³ówkowe biblioteki DSPAM +Summary(pl.UTF-8): Pliki nagłówkowe biblioteki DSPAM Group: Development/Libraries Requires: %{name}-libs = %{version}-%{release} @@ -107,84 +137,190 @@ This library can be used by developers to provide 'drop-in' spam filtering for their mail client applications, other anti-spam tools, or similar projects. -%description devel -l pl -G³ówny silnik DSPAM zosta³ przeniesiony do oddzielnej biblioteki -libdspam, która mo¿e byæ u¿ywana przez programistów do zapewnienia -filtrowania spamu w locie dla aplikacji klientów pocztowych, innych -narzêdzi antyspamowych i podobnych projektów. +%description devel -l pl.UTF-8 +Główny silnik DSPAM został przeniesiony do oddzielnej biblioteki +libdspam, która może być używana przez programistów do zapewnienia +filtrowania spamu w locie dla aplikacji klientów pocztowych, innych +narzędzi antyspamowych i podobnych projektów. %package static Summary: Static DSPAM library -Summary(pl): Statyczna biblioteka DSPAM +Summary(pl.UTF-8): Statyczna biblioteka DSPAM Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} %description static Static DSPAM library. -%description static -l pl +%description static -l pl.UTF-8 Statyczna biblioteka DSPAM. +%package driver-hash +Summary: HASH driver for DSPAM +Summary(pl.UTF-8): Sterownik HASH dla DSPAM-a +Group: Libraries +Requires(post): sed >= 4.0 +Requires: %{name}-libs = %{version}-%{release} +Provides: %{name}-driver = %{version}-%{release} + +%description driver-hash +HASH driver for DSPAM. + +%description driver-hash -l pl.UTF-8 +Sterownik HASH dla DSPAM-a. + +%package driver-mysql +Summary: MySQL driver for DSPAM +Summary(pl.UTF-8): Sterownik MySQL dla DSPAM-a +Group: Libraries +Requires(post): sed >= 4.0 +Requires: %{name}-libs = %{version}-%{release} +Provides: %{name}-driver = %{version}-%{release} + +%description driver-mysql +MySQL driver for DSPAM. + +%description driver-mysql -l pl.UTF-8 +Sterownik MySQL dla DSPAM-a. + +%package driver-pgsql +Summary: PostgreSQL driver for DSPAM +Summary(pl.UTF-8): Sterownik PostgreSQL dla DSPAM-a +Group: Libraries +Requires(post): sed >= 4.0 +Requires: %{name}-libs = %{version}-%{release} +Provides: %{name}-driver = %{version}-%{release} + +%description driver-pgsql +PostgreSQL driver for DSPAM. + +%description driver-pgsql -l pl.UTF-8 +Sterownik PostgreSQL dla DSPAM-a. + +%package driver-sqlite +Summary: SQLite driver for DSPAM +Summary(pl.UTF-8): Sterownik SQLite dla DSPAM-a +Group: Libraries +Requires(post): sed >= 4.0 +Requires: %{name}-libs = %{version}-%{release} +Provides: %{name}-driver = %{version}-%{release} + +%description driver-sqlite +SQLite driver for DSPAM. + +%description driver-sqlite -l pl.UTF-8 +Sterownik SQLite dla DSPAM-a. + +%package webui +Summary: DSPAM Web UI +Summary(pl.UTF-8): Interfejs WWW do programu DSPAM +Group: Applications/WWW +Requires: webapps +# needs dspam binary +Requires: %{name} = %{version}-%{release} + +%description webui +The Web UI (CGI client) can be run from any executable location on a +web server, and detects its user's identity from the REMOTE_USER +environment variable. This means you'll need to use HTTP password +authentication to access the CGI (Any type of authentication will +work, so long as Apache supports the module). This is also convenient +in that you can set up authentication using almost any existing system +you have. The only catch is that you'll need the usernames to match +the actual DSPAM usernames used the system. A copy of the shadow +password file will suffice for most common installs. + +%description webui -l pl.UTF-8 +Interfejs użytkownika WWW (klient CGI) może być uruchamiany z +dowolnego wykonywalnego miejsca na serwerze WWW i rozpoznaje tożsamość +użytkownika ze zmiennej środowiskowej REMOTE_USER. Oznacza to, że +trzeba użyć uwietrzytelnienia HTTP z hasłem do dostępu do CGI (działać +będzie dowolny rodzaj uwierzytelnienia obsługiwany przez moduły +Apache'a). Jest to o tyle wygodne, że można skonfigurować +uwierzytelnianie dla prawie każdego istniejącego systemu. Jedynym +wymogiem jest, żeby nazwy użytkowników pokrywały się z nazwami +użytkowników DSPAM-a używanymi w systemie. Kopia pliku shadow +wystarczy dla większości popularnych instalacji. + %prep %setup -q -sed -i -e 's#-static##g' src/tools/Makefile* +%patch0 -p1 +%patch1 -p1 +%patch2 -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 %build +%{__libtoolize} +%{__aclocal} -I m4 +%{__autoconf} +%{__automake} + +DRIVERS=" +hash_drv +%{?with_mysql:mysql_drv} +%{?with_pgsql:pgsql_drv} +%{?with_sqlite:sqlite_drv} +" %configure \ + --disable-dependency-tracking \ + %{?debug: --enable-debug --enable-bnr-debug --enable-verbose-debug} \ --enable-trusted-user-security \ - --enable-bayesian-dobly \ - --enable-chained-tokens \ - --enable-experimental \ --enable-bias \ --enable-large-scale \ - --enable-delivery-to-stdout \ --with-userdir=/var/lib/%{name} \ - --with-dspam-home=/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 \ - --disable-dependency-tracking \ -%if %{with mysql} + --enable-ldap \ + --enable-clamav \ + --enable-preferences-extension \ + --enable-long-usernames \ + --enable-neural-networking \ --enable-virtual-users \ - --with-storage-driver=mysql_drv \ + --with-storage-driver=$(echo $DRIVERS | tr ' ' ',') \ +%if %{with mysql} --with-mysql-includes=%{_includedir}/mysql \ - --with-mysql-libraries=%{_libdir} -%else + --with-mysql-libraries=%{_libdir} \ +%endif %if %{with pgsql} - --enable-virtual-users \ - --with-storage-driver=pgsql_drv \ --with-pgsql-includes=%{_includedir}/postgresql \ - --with-pgsql-libraries=%{_libdir} -%else -%if %{with sqlite2} - --with-storage-driver=sqlite_drv \ - --with-sqlite-includes=%{_includedir} \ - --with-sqlite-libraries=%{_libdir} -%else - --with-storage-driver=sqlite3_drv \ - --with-sqlite3-includes=%{_includedir} \ - --with-sqlite3-libraries=%{_libdir} -%endif + --with-pgsql-libraries=%{_libdir} \ %endif +%if %{with sqlite} + --with-sqlite3-includes=%{_includedir} \ + --with-sqlite3-libraries=%{_libdir} \ %endif + --enable-daemon + +# --enable-dclassify-extension needs libdclassify + %{__make} %install rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT{/var/run/dspam,/etc/{rc.d/init.d,sysconfig}} \ + $RPM_BUILD_ROOT/var/lib/%{name}/{txt,data} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT +install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/dspam + +cp -a txt/*.txt $RPM_BUILD_ROOT/var/lib/%{name}/txt + # install devel files -install -d $RPM_BUILD_ROOT{%{_includedir}/%{name},/var/lib/%{name}} +install -d $RPM_BUILD_ROOT{%{_includedir}/%{name},/var/{log,lib}/%{name}} install src/*.h $RPM_BUILD_ROOT%{_includedir}/%{name} # provide maintenance scripts -install -d $RPM_BUILD_ROOT/etc/cron.daily -install -d $RPM_BUILD_ROOT/etc/cron.weekly - +install -d $RPM_BUILD_ROOT/etc/cron.{daily,weekly} cat > $RPM_BUILD_ROOT/etc/cron.daily/%{name} < $RPM_BUILD_ROOT/var/lib/%{name}/mysql.data < $RPM_BUILD_ROOT/var/lib/%{name}/pgsql.data <