From 16d6691ec68a63679be839ce889916fd03a87843 Mon Sep 17 00:00:00 2001 From: Allisson Azevedo Date: Aug 14 2009 16:49:19 +0000 Subject: First import. --- diff --git a/.cvsignore b/.cvsignore index e69de29..2d8eb9d 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +sphinx-0.9.8.1.tar.gz diff --git a/import.log b/import.log new file mode 100644 index 0000000..12ddeaa --- /dev/null +++ b/import.log @@ -0,0 +1 @@ +sphinx-0_9_8_1-3_fc11:F-11:sphinx-0.9.8.1-3.fc11.src.rpm:1250267828 diff --git a/sources b/sources index e69de29..d5a6e9c 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +428a14df41fb425e664d9e2d6178c037 sphinx-0.9.8.1.tar.gz diff --git a/sphinx.init b/sphinx.init new file mode 100755 index 0000000..76c5892 --- /dev/null +++ b/sphinx.init @@ -0,0 +1,105 @@ +#!/bin/sh +# +# sphinx searchd Free open-source SQL full-text search engine +# +# chkconfig: - 20 80 +# description: Starts and stops the sphinx searchd daemon that handles \ +# all search requests. + +### BEGIN INIT INFO +# Provides: searchd +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Should-Start: $remote_fs +# Should-Stop: $remote_fs +# Default-Start: +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: start and stop sphinx searchd daemon +# Description: Sphinx is a free open-source SQL full-text search engine +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +exec="/usr/bin/searchd" +prog="searchd" +config="/etc/sphinx/sphinx.conf" + +lockfile=/var/lock/subsys/searchd + +start() { + [ -x $exec ] || exit 5 + [ -f $config ] || exit 6 + echo -n $"Starting $prog: " + # if not running, start it up here, usually something like "daemon $exec" + daemon $exec --config $config + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + # stop it here, often "killproc $prog" + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + # run checks to determine if the service is running or use generic status + status $prog +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? diff --git a/sphinx.spec b/sphinx.spec new file mode 100644 index 0000000..c9d0a3f --- /dev/null +++ b/sphinx.spec @@ -0,0 +1,201 @@ +Name: sphinx +Version: 0.9.8.1 +Release: 3%{?dist} +Summary: Free open-source SQL full-text search engine + +Group: Applications/Text +License: GPLv2+ +URL: http://sphinxsearch.com +Source0: http://sphinxsearch.com/downloads/%{name}-%{version}.tar.gz +Source1: %{name}.init +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: mysql-devel +BuildRequires: postgresql-devel +BuildRequires: expat-devel +#Requires: + +Requires(post): chkconfig +Requires(preun): chkconfig +# This is for /sbin/service +Requires(preun): initscripts + + +%description +Sphinx is a full-text search engine, distributed under GPL version 2. +Commercial licensing (eg. for embedded use) is also available upon request. + +Generally, it's a standalone search engine, meant to provide fast, +size-efficient and relevant full-text search functions to other +applications. Sphinx was specially designed to integrate well with SQL +databases and scripting languages. + +Currently built-in data source drivers support fetching data either via +direct connection to MySQL, or PostgreSQL, or from a pipe in a custom XML +format. Adding new drivers (eg. to natively support some other DBMSes) is +designed to be as easy as possible. + +Search API is natively ported to PHP, Python, Perl, Ruby, Java, and also +available as a pluggable MySQL storage engine. API is very lightweight so +porting it to new language is known to take a few hours. + +As for the name, Sphinx is an acronym which is officially decoded as SQL +Phrase Index. Yes, I know about CMU's Sphinx project. + + +%package -n libsphinxclient +Summary: Pure C searchd client API library +Group: Development/Libraries + + +%description -n libsphinxclient +Pure C searchd client API library +Sphinx search engine, http://sphinxsearch.com/ + + +%package -n libsphinxclient-devel +Summary: Development libraries and header files for libsphinxclient +Group: Development/Libraries +Requires: libsphinxclient = %{version}-%{release} + + +%description -n libsphinxclient-devel +Pure C searchd client API library +Sphinx search engine, http://sphinxsearch.com/ + + +%prep +%setup -q + +# Fix wrong-file-end-of-line-encoding +sed -i 's/\r//' api/ruby/spec/sphinx/sphinx_test.sql +sed -i 's/\r//' api/java/mk.cmd +sed -i 's/\r//' api/ruby/spec/fixtures/keywords.php +sed -i 's/\r//' api/ruby/lib/sphinx/response.rb + + +%build +%configure --sysconfdir=/etc/sphinx --with-mysql --with-pgsql +make %{?_smp_mflags} + +# Build libsphinxclient +cd api/libsphinxclient/ +%configure +make #%{?_smp_mflags} + + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT INSTALL="%{__install} -p -c" + +# Install sphinx initscript +install -p -D -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_initrddir}/searchd + +# Create /var/log/sphinx +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/sphinx + +# Create /var/run/sphinx +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/sphinx + +# Create /var/lib/sphinx +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/sphinx + +# Create sphinx.conf +cp $RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx-min.conf.dist \ + $RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf + +# Modify sphinx.conf +sed -i 's/\/var\/log\/searchd.log/\/var\/log\/sphinx\/searchd.log/g' \ +$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf + +sed -i 's/\/var\/log\/query.log/\/var\/log\/sphinx\/query.log/g' \ +$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf + +sed -i 's/\/var\/log\/searchd.pid/\/var\/run\/sphinx\/searchd.pid/g' \ +$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf + +sed -i 's/\/var\/data\/test1/\/var\/lib\/sphinx\/test1/g' \ +$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf + +# Create /etc/logrotate.d/sphinx +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d +cat > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/sphinx << EOF +/var/log/sphinx/*.log { + weekly + rotate 10 + copytruncate + delaycompress + compress + notifempty + missingok +} +EOF + +# Install libsphinxclient +cd api/libsphinxclient/ +make install DESTDIR=$RPM_BUILD_ROOT INSTALL="%{__install} -p -c" + +# clean-up .la archives +find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' + +# clean-up .a archives +find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' + + +%clean +rm -rf $RPM_BUILD_ROOT + +%post +/sbin/chkconfig --add searchd + +%preun +if [ $1 = 0 ] ; then + /sbin/service searchd stop >/dev/null 2>&1 + /sbin/chkconfig --del searchd +fi + + +%post -p /sbin/ldconfig -n libsphinxclient + + +%postun -p /sbin/ldconfig -n libsphinxclient + + + +%files +%defattr(-,root,root,-) +%doc COPYING doc/sphinx.txt sphinx-min.conf.dist sphinx.conf.dist example.sql +%dir %{_sysconfdir}/sphinx +%config(noreplace) %{_sysconfdir}/sphinx/sphinx.conf +%exclude %{_sysconfdir}/sphinx/*.conf.dist +%exclude %{_sysconfdir}/sphinx/example.sql +%{_initrddir}/searchd +%config(noreplace) %{_sysconfdir}/logrotate.d/sphinx +%{_bindir}/* +%dir %{_localstatedir}/log/sphinx +%dir %{_localstatedir}/run/sphinx +%dir %{_localstatedir}/lib/sphinx + +%files -n libsphinxclient +%defattr(-,root,root,-) +%doc api/java api/ruby api/*.php api/*.py api/libsphinxclient/README +%{_libdir}/libsphinxclient-0*.so + + +%files -n libsphinxclient-devel +%defattr(-,root,root,-) +%{_libdir}/libsphinxclient.so +%{_includedir}/* + +%changelog +* Wed Aug 12 2009 Allisson Azevedo 0.9.8.1-3 +- Fixed macros consistency. +- Modified make install to keep timestamps. +- Added libsphinxclient package. + +* Fri Aug 7 2009 Allisson Azevedo 0.9.8.1-2 +- Added sysv init. +- Added logrotate.d entry. + +* Thu Jul 30 2009 Allisson Azevedo 0.9.8.1-1 +- Initial rpm release.