Allisson Azevedo 009535c
%global sphinx_user sphinx
Allisson Azevedo 009535c
%global sphinx_group sphinx
Allisson Azevedo 009535c
%global sphinx_home %{_localstatedir}/lib/sphinx
Allisson Azevedo 009535c
Allisson Azevedo 1434883
Name:           sphinx
Allisson Azevedo 009535c
Version:        0.9.9
d048259
Release:        6%{?dist}
Allisson Azevedo 1434883
Summary:        Free open-source SQL full-text search engine
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Group:          Applications/Text
Allisson Azevedo 1434883
License:        GPLv2+
Allisson Azevedo 1434883
URL:            http://sphinxsearch.com
Allisson Azevedo 1434883
Source0:        http://sphinxsearch.com/downloads/%{name}-%{version}.tar.gz
Allisson Azevedo 1434883
Source1:        %{name}.init
Allisson Azevedo 009535c
Patch0:         %{name}-%{version}-fix_static.patch
Christof Damian 361f651
Patch1:         %{name}-%{version}-default_listen.patch
Allisson Azevedo 1434883
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Allisson Azevedo 1434883
Allisson Azevedo 1434883
BuildRequires:  mysql-devel
Christof Damian 361f651
Allisson Azevedo 1434883
BuildRequires:  postgresql-devel
Allisson Azevedo 1434883
BuildRequires:  expat-devel
Allisson Azevedo 1434883
#Requires:
Allisson Azevedo 1434883
Allisson Azevedo 009535c
#Initscripts
Allisson Azevedo 1434883
Requires(post): chkconfig
Allisson Azevedo 009535c
Requires(preun): chkconfig initscripts
Allisson Azevedo 009535c
Allisson Azevedo 009535c
# Users and groups
Allisson Azevedo 009535c
Requires(pre): shadow-utils
Allisson Azevedo 1434883
       
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%description
Allisson Azevedo 1434883
Sphinx is a full-text search engine, distributed under GPL version 2.
Christof Damian 361f651
Commercial licensing (e.g. for embedded use) is also available upon request.
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Generally, it's a standalone search engine, meant to provide fast,
Allisson Azevedo 1434883
size-efficient and relevant full-text search functions to other
Allisson Azevedo 1434883
applications. Sphinx was specially designed to integrate well with SQL
Allisson Azevedo 1434883
databases and scripting languages.
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Currently built-in data source drivers support fetching data either via
Allisson Azevedo 1434883
direct connection to MySQL, or PostgreSQL, or from a pipe in a custom XML
Christof Damian 361f651
format. Adding new drivers (e.g. to natively support some other DBMSes) is
Allisson Azevedo 1434883
designed to be as easy as possible.
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Search API is natively ported to PHP, Python, Perl, Ruby, Java, and also
Allisson Azevedo 1434883
available as a pluggable MySQL storage engine. API is very lightweight so
Allisson Azevedo 1434883
porting it to new language is known to take a few hours.
Allisson Azevedo 1434883
Allisson Azevedo 1434883
As for the name, Sphinx is an acronym which is officially decoded as SQL
Allisson Azevedo 1434883
Phrase Index. Yes, I know about CMU's Sphinx project.
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%package -n libsphinxclient
Allisson Azevedo 1434883
Summary:        Pure C searchd client API library
Allisson Azevedo 1434883
Group:          Development/Libraries
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%description -n libsphinxclient
Allisson Azevedo 1434883
Pure C searchd client API library
Allisson Azevedo 1434883
Sphinx search engine, http://sphinxsearch.com/
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%package -n libsphinxclient-devel
Allisson Azevedo 1434883
Summary:        Development libraries and header files for libsphinxclient
Allisson Azevedo 1434883
Group:          Development/Libraries
Allisson Azevedo 1434883
Requires:       libsphinxclient = %{version}-%{release}
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%description -n libsphinxclient-devel
Allisson Azevedo 1434883
Pure C searchd client API library
Allisson Azevedo 1434883
Sphinx search engine, http://sphinxsearch.com/
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Christof Damian 398709d
%package java
Christof Damian 398709d
Summary: Java API for Sphinx
Christof Damian 398709d
Group: Development/Libraries
Christof Damian 398709d
BuildRequires: java-devel
Christof Damian 398709d
Requires: java
Christof Damian 398709d
Requires: jpackage-utils
Christof Damian 398709d
Christof Damian 398709d
Christof Damian 398709d
%description java
Christof Damian 398709d
This package provides the Java API for Sphinx,
Christof Damian 398709d
the free, open-source full-text search engine,
Christof Damian 398709d
designed with indexing database content in mind.
Christof Damian 398709d
Christof Damian 398709d
Christof Damian 398709d
%package php
Christof Damian 398709d
Summary: PHP API for Sphinx
Christof Damian 398709d
Group: Development/Libraries
Christof Damian 398709d
Requires: php-common >= 5.1.6
Christof Damian 398709d
Christof Damian 398709d
Christof Damian 398709d
%description php
Christof Damian 398709d
This package provides the PHP API for Sphinx,
Christof Damian 398709d
the free, open-source full-text search engine,
Christof Damian 398709d
designed with indexing database content in mind.
Christof Damian 398709d
Christof Damian 398709d
Allisson Azevedo 1434883
%prep
Allisson Azevedo 1434883
%setup -q
Allisson Azevedo 009535c
%patch0 -p1 -b .fix_static
Christof Damian 361f651
%patch1 -p1 -b .default_listen
Allisson Azevedo 1434883
Allisson Azevedo 1434883
# Fix wrong-file-end-of-line-encoding
Allisson Azevedo 1434883
sed -i 's/\r//' api/ruby/spec/sphinx/sphinx_test.sql
Allisson Azevedo 1434883
sed -i 's/\r//' api/java/mk.cmd
Allisson Azevedo 1434883
sed -i 's/\r//' api/ruby/spec/fixtures/keywords.php
Allisson Azevedo 1434883
sed -i 's/\r//' api/ruby/lib/sphinx/response.rb
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%build
Allisson Azevedo 1434883
%configure --sysconfdir=/etc/sphinx --with-mysql --with-pgsql
Allisson Azevedo 1434883
make %{?_smp_mflags}
Allisson Azevedo 1434883
Allisson Azevedo 1434883
# Build libsphinxclient
Christof Damian 398709d
pushd api/libsphinxclient
Christof Damian 398709d
    %configure
Christof Damian 398709d
    make #%{?_smp_mflags}
Christof Damian 398709d
popd
Christof Damian 398709d
Christof Damian 398709d
Christof Damian 398709d
# make the java api
Christof Damian 398709d
make -C api/java 
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%install
Allisson Azevedo 1434883
rm -rf $RPM_BUILD_ROOT
Allisson Azevedo 1434883
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="%{__install} -p -c"
Allisson Azevedo 1434883
Allisson Azevedo 1434883
# Install sphinx initscript
Allisson Azevedo 1434883
install -p -D -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_initrddir}/searchd
Allisson Azevedo 1434883
Allisson Azevedo 1434883
# Create /var/log/sphinx
Allisson Azevedo 1434883
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/sphinx
Allisson Azevedo 1434883
Allisson Azevedo 1434883
# Create /var/run/sphinx
Allisson Azevedo 1434883
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/sphinx
Christof Damian 361f651
touch $RPM_BUILD_ROOT%{_localstatedir}/run/sphinx/searchd.log
Christof Damian 361f651
touch $RPM_BUILD_ROOT%{_localstatedir}/run/sphinx/query.log
Allisson Azevedo 1434883
Allisson Azevedo 1434883
# Create /var/lib/sphinx
Allisson Azevedo 1434883
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/sphinx
Allisson Azevedo 1434883
Allisson Azevedo 1434883
# Create sphinx.conf
Allisson Azevedo 1434883
cp $RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx-min.conf.dist \
Allisson Azevedo 1434883
    $RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf
Allisson Azevedo 1434883
    
Allisson Azevedo 1434883
# Modify sphinx.conf
Allisson Azevedo 1434883
sed -i 's/\/var\/log\/searchd.log/\/var\/log\/sphinx\/searchd.log/g' \
Allisson Azevedo 1434883
$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf
Allisson Azevedo 1434883
Allisson Azevedo 1434883
sed -i 's/\/var\/log\/query.log/\/var\/log\/sphinx\/query.log/g' \
Allisson Azevedo 1434883
$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf
Allisson Azevedo 1434883
Allisson Azevedo 1434883
sed -i 's/\/var\/log\/searchd.pid/\/var\/run\/sphinx\/searchd.pid/g' \
Allisson Azevedo 1434883
$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf
Allisson Azevedo 1434883
Allisson Azevedo 1434883
sed -i 's/\/var\/data\/test1/\/var\/lib\/sphinx\/test1/g' \
Allisson Azevedo 1434883
$RPM_BUILD_ROOT%{_sysconfdir}/sphinx/sphinx.conf
Allisson Azevedo 1434883
Allisson Azevedo 1434883
# Create /etc/logrotate.d/sphinx
Allisson Azevedo 1434883
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
Allisson Azevedo 1434883
cat > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/sphinx << EOF
Allisson Azevedo 1434883
/var/log/sphinx/*.log {
Allisson Azevedo 1434883
       weekly
Allisson Azevedo 1434883
       rotate 10
Allisson Azevedo 1434883
       copytruncate
Allisson Azevedo 1434883
       delaycompress
Allisson Azevedo 1434883
       compress
Allisson Azevedo 1434883
       notifempty
Allisson Azevedo 1434883
       missingok
Allisson Azevedo 1434883
}
Allisson Azevedo 1434883
EOF
Allisson Azevedo 1434883
Allisson Azevedo 1434883
# Install libsphinxclient
Christof Damian 398709d
pushd api/libsphinxclient/
Christof Damian 398709d
    make install DESTDIR=$RPM_BUILD_ROOT INSTALL="%{__install} -p -c"
Christof Damian 398709d
popd
Christof Damian 398709d
Christof Damian 398709d
# install the java api
Christof Damian 398709d
mkdir -p $RPM_BUILD_ROOT%{_javadir}
Christof Damian 398709d
install -m 0644 api/java/%{name}api.jar \
Christof Damian 398709d
    $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
Christof Damian 398709d
Christof Damian 398709d
# convenience symlinks
Christof Damian 398709d
pushd $RPM_BUILD_ROOT%{_javadir}
Christof Damian 398709d
    ln -s %{name}-%{version}.jar %{name}.jar
Christof Damian 398709d
    ln -s %{name}-%{version}.jar %{name}api.jar
Christof Damian 398709d
popd
Christof Damian 398709d
Christof Damian 398709d
# install the php api
Christof Damian 398709d
# "Non-PEAR PHP extensions should put their Class files in /usr/share/php."
Christof Damian 398709d
# - http://fedoraproject.org/wiki/Packaging:PHP
Christof Damian 398709d
install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/php
Christof Damian 398709d
install -m 0644 api/%{name}api.php $RPM_BUILD_ROOT%{_datadir}/php
Allisson Azevedo 1434883
Allisson Azevedo 1434883
# clean-up .la archives
Allisson Azevedo 1434883
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
Allisson Azevedo 1434883
Allisson Azevedo 1434883
# clean-up .a archives
Allisson Azevedo 1434883
find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';'
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%clean
Allisson Azevedo 1434883
rm -rf $RPM_BUILD_ROOT
Allisson Azevedo 1434883
Allisson Azevedo 009535c
%pre
Allisson Azevedo 009535c
getent group %{sphinx_group} >/dev/null || groupadd -r %{sphinx_group}
Allisson Azevedo 009535c
getent passwd %{sphinx_user} >/dev/null || \
Allisson Azevedo 009535c
useradd -r -g %{sphinx_group} -d %{sphinx_home} -s /bin/bash \
Allisson Azevedo 009535c
-c "Sphinx Search" %{sphinx_user}
Allisson Azevedo 009535c
exit 0
Allisson Azevedo 009535c
Allisson Azevedo 1434883
%post
Allisson Azevedo 1434883
/sbin/chkconfig --add searchd
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%preun
Allisson Azevedo 1434883
if [ $1 = 0 ] ; then
Allisson Azevedo 1434883
    /sbin/service searchd stop >/dev/null 2>&1
Allisson Azevedo 1434883
    /sbin/chkconfig --del searchd
Allisson Azevedo 1434883
fi
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%post -p /sbin/ldconfig -n libsphinxclient
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%postun -p /sbin/ldconfig -n libsphinxclient
Allisson Azevedo 009535c
Allisson Azevedo 009535c
%posttrans
Allisson Azevedo 009535c
chown -R %{sphinx_user}:root %{_localstatedir}/log/sphinx/
Allisson Azevedo 009535c
chown -R %{sphinx_user}:root %{_localstatedir}/run/sphinx/
Allisson Azevedo 009535c
chown -R %{sphinx_user}:root %{_localstatedir}/lib/sphinx/
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%files
Allisson Azevedo 1434883
%defattr(-,root,root,-)
Allisson Azevedo 1434883
%doc COPYING doc/sphinx.txt sphinx-min.conf.dist sphinx.conf.dist example.sql
Allisson Azevedo 1434883
%dir %{_sysconfdir}/sphinx
Allisson Azevedo 1434883
%config(noreplace) %{_sysconfdir}/sphinx/sphinx.conf
Allisson Azevedo 1434883
%exclude %{_sysconfdir}/sphinx/*.conf.dist
Allisson Azevedo 1434883
%exclude %{_sysconfdir}/sphinx/example.sql
Allisson Azevedo 1434883
%{_initrddir}/searchd
Allisson Azevedo 1434883
%config(noreplace) %{_sysconfdir}/logrotate.d/sphinx
Allisson Azevedo 1434883
%{_bindir}/*
Allisson Azevedo 009535c
%dir %attr(0755, %{sphinx_user}, root) %{_localstatedir}/log/sphinx
Allisson Azevedo 009535c
%dir %attr(0755, %{sphinx_user}, root) %{_localstatedir}/run/sphinx
Allisson Azevedo 009535c
%dir %attr(0755, %{sphinx_user}, root) %{_localstatedir}/lib/sphinx
Allisson Azevedo 1434883
Christof Damian 361f651
%ghost %{_localstatedir}/run/sphinx/searchd.log
Christof Damian 361f651
%ghost %{_localstatedir}/run/sphinx/query.log
Christof Damian 361f651
Christof Damian 361f651
Allisson Azevedo 1434883
%files -n libsphinxclient
Allisson Azevedo 1434883
%defattr(-,root,root,-)
19ad8a2
%doc COPYING api/java api/ruby api/*.php api/*.py api/libsphinxclient/README
Allisson Azevedo 1434883
%{_libdir}/libsphinxclient-0*.so
Allisson Azevedo 1434883
Allisson Azevedo 1434883
Allisson Azevedo 1434883
%files -n libsphinxclient-devel
Allisson Azevedo 1434883
%defattr(-,root,root,-)
Allisson Azevedo 1434883
%{_libdir}/libsphinxclient.so
Allisson Azevedo 1434883
%{_includedir}/*
Allisson Azevedo 1434883
Christof Damian 398709d
%files java
Christof Damian 398709d
%defattr(0644,root,root,0755)
Christof Damian 398709d
%doc api/java/README COPYING
Christof Damian 398709d
%{_javadir}/*
Christof Damian 398709d
Christof Damian 398709d
Christof Damian 398709d
%files php
Christof Damian 398709d
%defattr(0644,root,root,0755)
Christof Damian 398709d
%doc COPYING
Christof Damian 398709d
%{_datadir}/php/*
Christof Damian 398709d
Allisson Azevedo 1434883
%changelog
d048259
* Wed Mar 23 2011 Dan HorĂ¡k <dan@danny.cz> - 0.9.9-6
d048259
- rebuilt for mysql 5.5.10 (soname bump in libmysqlclient)
d048259
02a7ec2
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.9-5
02a7ec2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
02a7ec2
Christof Damian 398709d
* Sat Dec 11 2010 Christof Damian <christof@damian.net> - 0.9.9-4
Christof Damian 398709d
- add java and php subpackages ( bug 566787 )
Christof Damian 398709d
Christof Damian 361f651
* Sat Dec 11 2010 Christof Damian <christof@damian.net> - 0.9.9-3
Christof Damian 361f651
- change default listen address to localhost ( bug 566792 )
Christof Damian 361f651
- add ghost for files in /var/run/ ( bug 656694 )
Christof Damian 361f651
19ad8a2
* Wed Jul 14 2010 Christof Damian <christof@damian.net> - 0.9.9-2
19ad8a2
- add COPYING file to lib package
19ad8a2
Allisson Azevedo 009535c
* Thu Feb 11 2010 Allisson Azevedo <allisson@gmail.com> 0.9.9-1
Allisson Azevedo 009535c
- Update to 0.9.9 (#556997).
Allisson Azevedo 009535c
- Added sphinx-0.9.9-fix_static.patch to fix FTBS.
Allisson Azevedo 009535c
- Run sphinx searchd as non-root user (#541464).
Allisson Azevedo 009535c
9375441
* Wed Aug 26 2009 Tomas Mraz <tmraz@redhat.com> 0.9.8.1-4
9375441
- Rebuild with new openssl
9375441
Allisson Azevedo 1434883
* Wed Aug 12 2009 Allisson Azevedo <allisson@gmail.com> 0.9.8.1-3
Allisson Azevedo 1434883
- Fixed macros consistency.
Allisson Azevedo 1434883
- Modified make install to keep timestamps.
Allisson Azevedo 1434883
- Added libsphinxclient package.
Allisson Azevedo 1434883
Allisson Azevedo 1434883
* Fri Aug  7 2009 Allisson Azevedo <allisson@gmail.com> 0.9.8.1-2
Allisson Azevedo 1434883
- Added sysv init.
Allisson Azevedo 1434883
- Added logrotate.d entry.
Allisson Azevedo 1434883
Allisson Azevedo 1434883
* Thu Jul 30 2009 Allisson Azevedo <allisson@gmail.com> 0.9.8.1-1
Allisson Azevedo 1434883
- Initial rpm release.