|
Allisson Azevedo |
18a7385 |
%global sphinx_user sphinx
|
|
Allisson Azevedo |
18a7385 |
%global sphinx_group sphinx
|
|
Allisson Azevedo |
18a7385 |
%global sphinx_home %{_localstatedir}/lib/sphinx
|
|
Allisson Azevedo |
18a7385 |
|
|
Allisson Azevedo |
16d6691 |
Name: sphinx
|
|
Allisson Azevedo |
18a7385 |
Version: 0.9.9
|
|
Allisson Azevedo |
18a7385 |
Release: 1%{?dist}
|
|
Allisson Azevedo |
16d6691 |
Summary: Free open-source SQL full-text search engine
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
Group: Applications/Text
|
|
Allisson Azevedo |
16d6691 |
License: GPLv2+
|
|
Allisson Azevedo |
16d6691 |
URL: http://sphinxsearch.com
|
|
Allisson Azevedo |
16d6691 |
Source0: http://sphinxsearch.com/downloads/%{name}-%{version}.tar.gz
|
|
Allisson Azevedo |
16d6691 |
Source1: %{name}.init
|
|
Allisson Azevedo |
18a7385 |
Patch0: %{name}-%{version}-fix_static.patch
|
|
Allisson Azevedo |
16d6691 |
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
BuildRequires: mysql-devel
|
|
Allisson Azevedo |
16d6691 |
BuildRequires: postgresql-devel
|
|
Allisson Azevedo |
16d6691 |
BuildRequires: expat-devel
|
|
Allisson Azevedo |
16d6691 |
#Requires:
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
18a7385 |
#Initscripts
|
|
Allisson Azevedo |
16d6691 |
Requires(post): chkconfig
|
|
Allisson Azevedo |
18a7385 |
Requires(preun): chkconfig initscripts
|
|
Allisson Azevedo |
18a7385 |
|
|
Allisson Azevedo |
18a7385 |
# Users and groups
|
|
Allisson Azevedo |
18a7385 |
Requires(pre): shadow-utils
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%description
|
|
Allisson Azevedo |
16d6691 |
Sphinx is a full-text search engine, distributed under GPL version 2.
|
|
Allisson Azevedo |
16d6691 |
Commercial licensing (eg. for embedded use) is also available upon request.
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
Generally, it's a standalone search engine, meant to provide fast,
|
|
Allisson Azevedo |
16d6691 |
size-efficient and relevant full-text search functions to other
|
|
Allisson Azevedo |
16d6691 |
applications. Sphinx was specially designed to integrate well with SQL
|
|
Allisson Azevedo |
16d6691 |
databases and scripting languages.
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
Currently built-in data source drivers support fetching data either via
|
|
Allisson Azevedo |
16d6691 |
direct connection to MySQL, or PostgreSQL, or from a pipe in a custom XML
|
|
Allisson Azevedo |
16d6691 |
format. Adding new drivers (eg. to natively support some other DBMSes) is
|
|
Allisson Azevedo |
16d6691 |
designed to be as easy as possible.
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
Search API is natively ported to PHP, Python, Perl, Ruby, Java, and also
|
|
Allisson Azevedo |
16d6691 |
available as a pluggable MySQL storage engine. API is very lightweight so
|
|
Allisson Azevedo |
16d6691 |
porting it to new language is known to take a few hours.
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
As for the name, Sphinx is an acronym which is officially decoded as SQL
|
|
Allisson Azevedo |
16d6691 |
Phrase Index. Yes, I know about CMU's Sphinx project.
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%package -n libsphinxclient
|
|
Allisson Azevedo |
16d6691 |
Summary: Pure C searchd client API library
|
|
Allisson Azevedo |
16d6691 |
Group: Development/Libraries
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%description -n libsphinxclient
|
|
Allisson Azevedo |
16d6691 |
Pure C searchd client API library
|
|
Allisson Azevedo |
16d6691 |
Sphinx search engine, http://sphinxsearch.com/
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%package -n libsphinxclient-devel
|
|
Allisson Azevedo |
16d6691 |
Summary: Development libraries and header files for libsphinxclient
|
|
Allisson Azevedo |
16d6691 |
Group: Development/Libraries
|
|
Allisson Azevedo |
16d6691 |
Requires: libsphinxclient = %{version}-%{release}
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%description -n libsphinxclient-devel
|
|
Allisson Azevedo |
16d6691 |
Pure C searchd client API library
|
|
Allisson Azevedo |
16d6691 |
Sphinx search engine, http://sphinxsearch.com/
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%prep
|
|
Allisson Azevedo |
16d6691 |
%setup -q
|
|
Allisson Azevedo |
18a7385 |
%patch0 -p1 -b .fix_static
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# Fix wrong-file-end-of-line-encoding
|
|
Allisson Azevedo |
16d6691 |
sed -i 's/\r//' api/ruby/spec/sphinx/sphinx_test.sql
|
|
Allisson Azevedo |
16d6691 |
sed -i 's/\r//' api/java/mk.cmd
|
|
Allisson Azevedo |
16d6691 |
sed -i 's/\r//' api/ruby/spec/fixtures/keywords.php
|
|
Allisson Azevedo |
16d6691 |
sed -i 's/\r//' api/ruby/lib/sphinx/response.rb
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%build
|
|
Allisson Azevedo |
16d6691 |
%configure --sysconfdir=/etc/sphinx --with-mysql --with-pgsql
|
|
Allisson Azevedo |
16d6691 |
make %{?_smp_mflags}
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# Build libsphinxclient
|
|
Allisson Azevedo |
16d6691 |
cd api/libsphinxclient/
|
|
Allisson Azevedo |
16d6691 |
%configure
|
|
Allisson Azevedo |
16d6691 |
make #%{?_smp_mflags}
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%install
|
|
Allisson Azevedo |
16d6691 |
rm -rf $RPM_BUILD_ROOT
|
|
Allisson Azevedo |
16d6691 |
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="%{__install} -p -c"
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# Install sphinx initscript
|
|
Allisson Azevedo |
16d6691 |
install -p -D -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_initrddir}/searchd
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# Create /var/log/sphinx
|
|
Allisson Azevedo |
16d6691 |
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/sphinx
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# Create /var/run/sphinx
|
|
Allisson Azevedo |
16d6691 |
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/sphinx
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# Create /var/lib/sphinx
|
|
Allisson Azevedo |
16d6691 |
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/sphinx
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# Create sphinx.conf
|
|
Allisson Azevedo |
16d6691 |
cp $RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx-min.conf.dist \
|
|
Allisson Azevedo |
16d6691 |
$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# Modify sphinx.conf
|
|
Allisson Azevedo |
16d6691 |
sed -i 's/\/var\/log\/searchd.log/\/var\/log\/sphinx\/searchd.log/g' \
|
|
Allisson Azevedo |
16d6691 |
$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
sed -i 's/\/var\/log\/query.log/\/var\/log\/sphinx\/query.log/g' \
|
|
Allisson Azevedo |
16d6691 |
$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
sed -i 's/\/var\/log\/searchd.pid/\/var\/run\/sphinx\/searchd.pid/g' \
|
|
Allisson Azevedo |
16d6691 |
$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
sed -i 's/\/var\/data\/test1/\/var\/lib\/sphinx\/test1/g' \
|
|
Allisson Azevedo |
16d6691 |
$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# Create /etc/logrotate.d/sphinx
|
|
Allisson Azevedo |
16d6691 |
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
|
|
Allisson Azevedo |
16d6691 |
cat > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/sphinx << EOF
|
|
Allisson Azevedo |
16d6691 |
/var/log/sphinx/*.log {
|
|
Allisson Azevedo |
16d6691 |
weekly
|
|
Allisson Azevedo |
16d6691 |
rotate 10
|
|
Allisson Azevedo |
16d6691 |
copytruncate
|
|
Allisson Azevedo |
16d6691 |
delaycompress
|
|
Allisson Azevedo |
16d6691 |
compress
|
|
Allisson Azevedo |
16d6691 |
notifempty
|
|
Allisson Azevedo |
16d6691 |
missingok
|
|
Allisson Azevedo |
16d6691 |
}
|
|
Allisson Azevedo |
16d6691 |
EOF
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# Install libsphinxclient
|
|
Allisson Azevedo |
16d6691 |
cd api/libsphinxclient/
|
|
Allisson Azevedo |
16d6691 |
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="%{__install} -p -c"
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# clean-up .la archives
|
|
Allisson Azevedo |
16d6691 |
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
# clean-up .a archives
|
|
Allisson Azevedo |
16d6691 |
find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';'
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%clean
|
|
Allisson Azevedo |
16d6691 |
rm -rf $RPM_BUILD_ROOT
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
18a7385 |
%pre
|
|
Allisson Azevedo |
18a7385 |
getent group %{sphinx_group} >/dev/null || groupadd -r %{sphinx_group}
|
|
Allisson Azevedo |
18a7385 |
getent passwd %{sphinx_user} >/dev/null || \
|
|
Allisson Azevedo |
18a7385 |
useradd -r -g %{sphinx_group} -d %{sphinx_home} -s /bin/bash \
|
|
Allisson Azevedo |
18a7385 |
-c "Sphinx Search" %{sphinx_user}
|
|
Allisson Azevedo |
18a7385 |
exit 0
|
|
Allisson Azevedo |
18a7385 |
|
|
Allisson Azevedo |
16d6691 |
%post
|
|
Allisson Azevedo |
16d6691 |
/sbin/chkconfig --add searchd
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%preun
|
|
Allisson Azevedo |
16d6691 |
if [ $1 = 0 ] ; then
|
|
Allisson Azevedo |
16d6691 |
/sbin/service searchd stop >/dev/null 2>&1
|
|
Allisson Azevedo |
16d6691 |
/sbin/chkconfig --del searchd
|
|
Allisson Azevedo |
16d6691 |
fi
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%post -p /sbin/ldconfig -n libsphinxclient
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%postun -p /sbin/ldconfig -n libsphinxclient
|
|
Allisson Azevedo |
18a7385 |
|
|
Allisson Azevedo |
18a7385 |
%posttrans
|
|
Allisson Azevedo |
18a7385 |
chown -R %{sphinx_user}:root %{_localstatedir}/log/sphinx/
|
|
Allisson Azevedo |
18a7385 |
chown -R %{sphinx_user}:root %{_localstatedir}/run/sphinx/
|
|
Allisson Azevedo |
18a7385 |
chown -R %{sphinx_user}:root %{_localstatedir}/lib/sphinx/
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%files
|
|
Allisson Azevedo |
16d6691 |
%defattr(-,root,root,-)
|
|
Allisson Azevedo |
16d6691 |
%doc COPYING doc/sphinx.txt sphinx-min.conf.dist sphinx.conf.dist example.sql
|
|
Allisson Azevedo |
16d6691 |
%dir %{_sysconfdir}/sphinx
|
|
Allisson Azevedo |
16d6691 |
%config(noreplace) %{_sysconfdir}/sphinx/sphinx.conf
|
|
Allisson Azevedo |
16d6691 |
%exclude %{_sysconfdir}/sphinx/*.conf.dist
|
|
Allisson Azevedo |
16d6691 |
%exclude %{_sysconfdir}/sphinx/example.sql
|
|
Allisson Azevedo |
16d6691 |
%{_initrddir}/searchd
|
|
Allisson Azevedo |
16d6691 |
%config(noreplace) %{_sysconfdir}/logrotate.d/sphinx
|
|
Allisson Azevedo |
16d6691 |
%{_bindir}/*
|
|
Allisson Azevedo |
18a7385 |
%dir %attr(0755, %{sphinx_user}, root) %{_localstatedir}/log/sphinx
|
|
Allisson Azevedo |
18a7385 |
%dir %attr(0755, %{sphinx_user}, root) %{_localstatedir}/run/sphinx
|
|
Allisson Azevedo |
18a7385 |
%dir %attr(0755, %{sphinx_user}, root) %{_localstatedir}/lib/sphinx
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%files -n libsphinxclient
|
|
Allisson Azevedo |
16d6691 |
%defattr(-,root,root,-)
|
|
Allisson Azevedo |
16d6691 |
%doc api/java api/ruby api/*.php api/*.py api/libsphinxclient/README
|
|
Allisson Azevedo |
16d6691 |
%{_libdir}/libsphinxclient-0*.so
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%files -n libsphinxclient-devel
|
|
Allisson Azevedo |
16d6691 |
%defattr(-,root,root,-)
|
|
Allisson Azevedo |
16d6691 |
%{_libdir}/libsphinxclient.so
|
|
Allisson Azevedo |
16d6691 |
%{_includedir}/*
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
%changelog
|
|
Allisson Azevedo |
18a7385 |
* Thu Feb 11 2010 Allisson Azevedo <allisson@gmail.com> 0.9.9-1
|
|
Allisson Azevedo |
18a7385 |
- Update to 0.9.9 (#556997).
|
|
Allisson Azevedo |
18a7385 |
- Added sphinx-0.9.9-fix_static.patch to fix FTBS.
|
|
Allisson Azevedo |
18a7385 |
- Run sphinx searchd as non-root user (#541464).
|
|
Allisson Azevedo |
18a7385 |
|
|
Allisson Azevedo |
16d6691 |
* Wed Aug 12 2009 Allisson Azevedo <allisson@gmail.com> 0.9.8.1-3
|
|
Allisson Azevedo |
16d6691 |
- Fixed macros consistency.
|
|
Allisson Azevedo |
16d6691 |
- Modified make install to keep timestamps.
|
|
Allisson Azevedo |
16d6691 |
- Added libsphinxclient package.
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
* Fri Aug 7 2009 Allisson Azevedo <allisson@gmail.com> 0.9.8.1-2
|
|
Allisson Azevedo |
16d6691 |
- Added sysv init.
|
|
Allisson Azevedo |
16d6691 |
- Added logrotate.d entry.
|
|
Allisson Azevedo |
16d6691 |
|
|
Allisson Azevedo |
16d6691 |
* Thu Jul 30 2009 Allisson Azevedo <allisson@gmail.com> 0.9.8.1-1
|
|
Allisson Azevedo |
16d6691 |
- Initial rpm release.
|