+# TODO:
+# - split into indexer and client?
+# - running indexer from cron?
+%define apxs /usr/sbin/apxs
Summary: Advanced Internet search engine
-Summary(pl): Silnik zaawansowanej wyszukiwarki Internetowej
+Summary(pl.UTF-8): Silnik zaawansowanej wyszukiwarki Internetowej
Name: aspseek
Version: 1.2.8
-Release: 1
+Release: 7
License: GPL
Group: Networking/Utilities
Source0: http://www.aspseek.org/pkg/src/1.2.8/%{name}-%{version}.tar.gz
+# Source0-md5: 0660b6b0d45d37c7a53c7e1c40cae002
+Source1: %{name}-mod_aspseek.conf
+Source2: %{name}.init
+Patch0: %{name}-types.patch
URL: http://www.aspseek.org/
-Requires: webserver
-Requires: %{name}-db-%{version}
-BuildRequires: apache-devel
-BuildRequires: openssl-devel
-BuildRequires: mysql-devel
+BuildRequires: apache(EAPI)-devel
BuildRequires: libstdc++-devel
+BuildRequires: mysql-devel
+BuildRequires: openssl-devel >= 0.9.7d
+BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: zlib-devel
+Requires(post): fileutils
+Requires(post,postun): /sbin/ldconfig
+Requires(post,preun): /sbin/chkconfig
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/sbin/useradd
+Requires: %{name}-db-%{version}
+Requires: webserver
+Provides: user(aspseek)
+Obsoletes: mnogosearch
+Obsoletes: swish++
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _sysconfdir /etc/%{name}
%define _bindir /home/httpd/cgi-bin
+%define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
%description
ASPSeek is an Internet search engine, written in C++ using the STL
and ispell support, a charset and language guesser, HTML templates for
search results, excerpts, and query words highlighting.
-%description -l pl
+%description -l pl.UTF-8
ASPSeek jest silnikiem wyszukiwarki Internetowej, napisany w C++ z
-u¿yciem biblioteki STL. Zawiera robota indeksuj±cego, daemon
-wyszukuj±cy oraz interfejs w postaci skryptu CGI. ASPSeek mo¿e
-indeksowaæ miliony adresów oraz wyszukiwaæ s³owa oraz zwroty, u¿ywaæ
-znaków globalnych jak równie¿ stosowaæ operatory logiczne. Rezultaty
-wyszukiwania mog± byæ ograniczane do okre¶lonego okresu czasu,
-serwera, zbioru serwerów oraz sortowane wg. aktualno¶ci (okre¶lane za
-pomoc± pewnych specjalnych technik) lub daty.
-
-ASPSeek jest zoptymalizowany dla wielu serwerów (w±tkowane
-indeksowanie, asynchroniczne zapytania DNS, grupowanie rezultatów wg
-serwera, grupy serwerów), ale mo¿e byæ równie¿ u¿ywany do obs³ugi
-jednego serwera. ASPSeek mo¿e pracowaæ z wieloma jêzykami/kodowaniami
-równocze¶nie (w³±czaj±c w to wielobajtowe kodowania u¿ywane np. dla
-jêzyka Chiñskiego) dziêki trybowi zapisu w Unikodzie. Inne mo¿liwo¶ci
-to blokowanie okre¶lonych s³ów, wsparcie dla ispella, zgadywarka
-kodowania oraz jêzyka, wzorce HTML dla rezultatów wyszukiwania,
-pod¶wietlanie wyszukiwanych s³ów.
+użyciem biblioteki STL. Zawiera robota indeksującego, daemon
+wyszukujący oraz interfejs w postaci skryptu CGI. ASPSeek może
+indeksować miliony adresów oraz wyszukiwać słowa oraz zwroty, używać
+znaków globalnych jak również stosować operatory logiczne. Rezultaty
+wyszukiwania mogą być ograniczane do określonego okresu czasu,
+serwera, zbioru serwerów oraz sortowane wg. aktualności (określane za
+pomocą pewnych specjalnych technik) lub daty.
+
+ASPSeek jest zoptymalizowany dla wielu serwerów (wątkowane
+indeksowanie, asynchroniczne zapytania DNS, grupowanie rezultatów wg
+serwera, grupy serwerów), ale może być również używany do obsługi
+jednego serwera. ASPSeek może pracować z wieloma językami/kodowaniami
+równocześnie (włączając w to wielobajtowe kodowania używane np. dla
+języka Chińskiego) dzięki trybowi zapisu w Unikodzie. Inne możliwości
+to blokowanie określonych słów, wsparcie dla ispella, zgadywarka
+kodowania oraz języka, wzorce HTML dla rezultatów wyszukiwania,
+podświetlanie wyszukiwanych słów.
%package db-mysql
Summary: MySQL backend driver for ASPSeek
-Summary(pl): Obs³uga MySQL dla ASPSeek
+Summary(pl.UTF-8): Obsługa MySQL dla ASPSeek
Group: Networking/Utilities
-Provides: %{name}-db-%{version}
-Requires: %{name} = %{version}
+Requires(post): /sbin/ldconfig
+Requires: %{name} = %{version}-%{release}
+Provides: %{name}-db-%{version}
%description db-mysql
This driver acts as a database backend for ASPSeek, so ASPSeek will
store its data in MySQL database.
-%description db-mysql -l pl
-Ten driver dzia³a jako bazodanowy backend dla ASPSeek, tak, ¿e ASPSeek
-bêdzie zapisywa³ swoje dane w bazie MySQL.
+%description db-mysql -l pl.UTF-8
+Ten driver działa jako bazodanowy backend dla ASPSeek, tak, że ASPSeek
+będzie zapisywał swoje dane w bazie MySQL.
-%packane -n apache-mod_aspseek
+%package -n apache-mod_aspseek
Summary: Apache module: ASPSeek search engine
-Summary(pl): Modu³ Apache: Silnik wyszukiwania ASPSeek
+Summary(pl.UTF-8): Moduł Apache: Silnik wyszukiwania ASPSeek
Group: Networking/Daemons
-Prereq: /usr/sbin/apxs
-Requires: apache
+Requires(post,preun): %{apxs}
+Requires(post,preun): grep
+Requires(preun): fileutils
+Requires: apache(EAPI)
+Requires: aspseek
%description -n apache-mod_aspseek
ASPSeek Apache module.
-%description apache-mod_aspseek -l pl
-Modu³ Apache ASPSeek.
+%description -n apache-mod_aspseek -l pl.UTF-8
+Moduł Apache ASPSeek.
%prep
%setup -q
+%patch0 -p1
%build
%configure2_13 \
--enable-font-size \
--enable-apache-module \
--with-openssl \
- --with-mysql
+ --with-mysql \
+ --enable-unicode \
+ --localstatedir=/var/spool
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{/etc/{httpd,rc.d/init.d},/home/httpd/icons}
+install -d $RPM_BUILD_ROOT/var/{spool/aspseek,log}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-gzip -9nf AUTHOR* FAQ* NEWS* README.gz RELEASE* THANKS* TODO* doc/*.txt
+mv -f $RPM_BUILD_ROOT%{_sysconfdir}/img/* $RPM_BUILD_ROOT/home/httpd/icons
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/httpd/mod_aspseek.conf
+sed -e "s#/img/#/icons/#g" $RPM_BUILD_ROOT%{_sysconfdir}/s.htm-dist > \
+ $RPM_BUILD_ROOT%{_sysconfdir}/s.htm
+install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+touch $RPM_BUILD_ROOT/var/log/aspseek.log
%clean
rm -rf $RPM_BUILD_ROOT
%pre
-exit1
-adding users missing
+%useradd -u 50 -d /srv/aspseek -s /bin/false -c "ASPSEEK User" -g root aspseek
+
+%post
+/sbin/ldconfig
+/sbin/chkconfig --add %{name}
+touch /var/log/aspseek.log
+chown aspseek:root /var/log/aspseek.log
+# create $HOME if possible, we are not allowed to remove it later
+if [ ! -d /srv/aspseek ]; then
+ if mkdir /srv/aspseek; then
+ chown aspseek:root /srv/aspseek
+ chmod 755 /srv/aspseek
+ fi
+fi
+
+%preun
+if [ "$1" = "0" ]; then
+ %service %{name} stop
+ /sbin/chkconfig --del %{name}
+fi
+
+%postun
+/sbin/ldconfig
+if [ "$1" = "0" ]; then
+ %userremove aspseek
+fi
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%post db-mysql
+/sbin/ldconfig
+echo "Remember to run %{_sbindir}/aspseek-mysql-postinstall."
-#%post db-mysql
-#%{sbindir}/aspseek-mysql-postinstall
+%postun db-mysql -p /sbin/ldconfig
%post -n apache-mod_aspseek
-if [ -f /var/lock/subsys/httpd ]; then
- /etc/rc.d/init.d/httpd restart 1>&2
-else
- echo "Run \"/etc/rc.d/init.d/httpd start\" to start apache http daemon."
+%{apxs} -e -a -n aspseek %{_pkglibdir}/mod_aspseek.so 1>&2
+if [ -f /etc/httpd/httpd.conf ] && ! grep -q "^Include.*mod_aspseek.conf" /etc/httpd/httpd.conf; then
+ echo "Include /etc/httpd/mod_aspseek.conf" >> /etc/httpd/httpd.conf
fi
+%service -q httpd restart
%preun -n apache-mod_aspseek
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/httpd ]; then
- /etc/rc.d/init.d/httpd restart 1>&2
- fi
+ %{apxs} -e -A -n aspseek %{_pkglibdir}/mod_aspseek.so 1>&2
+ umask 027
+ grep -v "^Include.*mod_aspseek.conf" /etc/httpd/httpd.conf > \
+ /etc/httpd/httpd.conf.tmp
+ mv -f /etc/httpd/httpd.conf.tmp /etc/httpd/httpd.conf
+ %service -q httpd restart
fi
%files
%defattr(644,root,root,755)
-%doc AUTHOR* FAQ* NEWS* README.gz RELEASE* THANKS* TODO* doc/*.gz
+%doc AUTHOR* FAQ* NEWS* README* RELEASE* THANKS* TODO* doc/*.txt
%attr(755,root,root) %{_bindir}/s.cgi
-%attr(755,root,root) %{sbindir}/index
-%attr(755,root,root) %{sbindir}/searchd
-%attr(755,root,root) %{_libdir}/libaspseek*.so
+%attr(755,root,root) %{_sbindir}/index
+%attr(755,root,root) %{_sbindir}/searchd
+%attr(755,root,root) %{_libdir}/libaspseek*.so.*
+/home/httpd/icons/*.*
%{_mandir}/man5/aspseek.conf*
%{_mandir}/man5/s*
%{_mandir}/man1/*
%{_mandir}/man7/*
-# CONFIGS
+%dir %{_sysconfdir}
+%{_sysconfdir}/langmap
+%dir %{_sysconfdir}/sql
+%{_sysconfdir}/stopwords
+%{_sysconfdir}/tables
+%attr(754,root,root) /etc/rc.d/init.d/aspseek
+%attr(750,aspseek,root) %dir /var/spool/aspseek
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.htm
+%ghost /var/log/aspseek.log
%files db-mysql
%defattr(644,root,root,755)
%attr(755,root,root) %{_sbindir}/aspseek-mysql-postinstall
-%attr(755,root,root) %{_libdir}/libmysql*.so
-%{sysconfdir}/sql/mysql
+%attr(755,root,root) %{_libdir}/libmysql*.so*
+%{_sysconfdir}/sql/mysql
%{_mandir}/man5/aspseek-sql*
%files -n apache-mod_aspseek
%defattr(644,root,root,755)
-%doc README.APACHE_MODULE.gz
-%attr(755,root,root) %{_libdir}/apache/*.so
+%doc README.APACHE_MODULE
+%attr(755,root,root) %{_pkglibdir}/*.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/httpd/mod_*.conf