2 # - package for ruby API
3 # - subpackage for driver backend deps if code patched to support it:
4 # sphinx-0.9.9-2.i686: required "libodbc.so.1" is provided by following packages:
5 # libmysqlclient.so.16 libmysqlclient.so.16(libmysqlclient_16) libpq.so.5
8 %bcond_without java # without Java support
9 %bcond_without libstemmer # without libstemmer support
10 %bcond_without mysql # without MySQL support
11 %bcond_without pgsql # without PostgreSQL support
13 %define php_min_version 5.0.4
14 Summary: Free open-source SQL full-text search engine
15 Summary(pl.UTF-8): Silnik przeszukiwania pełnotekstowego SQL open-source
19 License: GPL v2, LGPL (API libraries)
20 Group: Applications/Databases
21 Source0: http://www.sphinxsearch.com/files/%{name}-%{version}-release.tar.gz
22 # Source0-md5: 5cac34f3d78a9d612ca4301abfcbd666
24 Source2: %{name}.logrotate
25 Source3: %{name}.conf.sh
26 Source4: %{name}.tmpfiles
28 Patch1: libstemmer.patch
30 URL: http://www.sphinxsearch.com/
31 BuildRequires: autoconf
32 BuildRequires: automake >= 1:1.12
33 BuildRequires: expat-devel
34 %{?with_java:BuildRequires: jdk}
35 BuildRequires: libstdc++-devel
36 %{?with_libstemmer:BuildRequires: libstemmer-devel}
37 BuildRequires: libtool
38 %{?with_mysql:BuildRequires: mysql-devel}
39 %{?with_pgsql:BuildRequires: postgresql-devel}
41 BuildRequires: python-modules
42 %{?with_java:BuildRequires: rpm-javaprov}
43 BuildRequires: rpm-php-pearprov >= 4.4.2-11
44 BuildRequires: rpm-pythonprov
45 BuildRequires: rpmbuild(macros) >= 1.647
46 Requires(postun): /usr/sbin/groupdel
47 Requires(postun): /usr/sbin/userdel
48 Requires(pre): /bin/id
49 Requires(pre): /usr/bin/getgid
50 Requires(pre): /usr/sbin/groupadd
51 Requires(pre): /usr/sbin/useradd
52 Provides: group(sphinx)
53 Provides: user(sphinx)
54 Conflicts: logrotate < 3.8.0
55 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
57 %define _sysconfdir /etc/%{name}
60 Sphinx is a a standalone search engine, meant to provide fast,
61 size-efficient and relevant fulltext search functions to other
62 applications. Sphinx was specially designed to integrate well with SQL
63 databases and scripting languages. Currently built-in data sources
64 support fetching data either via direct connection to MySQL, or from
67 %description -l pl.UTF-8
68 Sphinx jest samodzielnym silnikiem przeszukującym, dostarczającym
69 innym aplikacjom szybkie, zoptymalizowane rozmiarowo funkcje
70 przeszukiwania pełnotekstowego. Sphinx został specjalnie
71 zaprojektowany z myślą o dobrej integracji z bazami danych SQL oraz
72 językami skryptowymi. Obecnie wbudowane źródła danych wspierają
73 pobieranie danych poprzez bezpośrednie połączenie z MySQL lub z potoku
76 %package -n libsphinxclient
77 Summary: Client library for Sphinx
78 Summary(pl.UTF-8): Biblioteka kliencka do Sphinx
81 %description -n libsphinxclient
82 This package provides a client library for Sphinx search engine.
84 %description -n libsphinxclient -l pl.UTF-8
85 Ten pakiet dostarcza bibliotekę kliencką do silnika Sphinx.
87 %package -n libsphinxclient-devel
88 Summary: Header files for sphinxclient library
89 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki sphinxclient
90 Group: Development/Libraries
91 Requires: libsphinxclient = %{version}-%{release}
93 %description -n libsphinxclient-devel
94 Header files for sphinxclient library.
96 %description -n libsphinxclient-devel -l pl.UTF-8
97 Pliki nagłówkowe biblioteki sphinxclient.
99 %package -n libsphinxclient-static
100 Summary: Static sphinxclient library
101 Summary(pl.UTF-8): Statyczna biblioteka sphinxclient
102 Group: Development/Libraries
103 Requires: libsphinxclient-devel = %{version}-%{release}
105 %description -n libsphinxclient-static
106 Static sphinxclient library.
108 %description -n libsphinxclient-static -l pl.UTF-8
109 Statyczna biblioteka sphinxclient.
111 %package -n java-sphinxapi
112 Summary: Java API for Sphinx
113 Summary(pl.UTF-8): API Javy dla Sphinksa
115 Group: Development/Languages/Java
116 Requires: jpackage-utils
117 Obsoletes: java-sphinx < 2.0.3-5
120 %description -n java-sphinxapi
123 %description -n java-sphinxapi -l pl.UTF-8
124 API Javy dla Sphinksa.
126 %package -n php-sphinxapi
127 Summary: PHP API for Sphinx Search
128 Summary(pl.UTF-8): API PHP dla Sphinksa
131 Requires: php(core) >= %{php_min_version}
132 Provides: php(sphinx)
133 Obsoletes: php-sphinx < 2.0.3-5
136 %description -n php-sphinxapi
137 PHP API for Sphinx Search.
139 %description -n php-sphinxapi -l pl.UTF-8
140 API PHP dla Sphinksa.
142 %package -n python-sphinxapi
143 Summary: Python API for Sphinx Search
144 Summary(pl.UTF-8): API Python dla Sphinksa
146 Group: Development/Languages/Python
148 Obsoletes: python-sphinx < 2.0.3-5
151 %description -n python-sphinxapi
152 Python API for Sphinx Search.
154 %description -n python-sphinxapi -l pl.UTF-8
155 API Pythona dla Sphinksa.
158 %setup -q -n %{name}-%{version}-release
164 s#/var/run/#/var/run/sphinx/#
165 s#@CONFDIR@/log/searchd.pid#/var/run/sphinx/searchd.pid#
166 s#@CONFDIR@/log/#/var/log/sphinx/#g
167 s#@CONFDIR@/data/#/var/lib/sphinx/#g
171 s#libdirs="/usr/lib/x86_64-linux-gnu /usr/lib64 /usr/local/lib64 /usr/lib/i386-linux-gnu /usr/lib /usr/local/lib"#libdirs="/usr/libx32 /usr/lib64 /usr/lib"#
175 CPPFLAGS=-D_FILE_OFFSET_BITS=64
177 --with%{!?with_libstemmer:out}-libstemmer \
178 --with%{!?with_pgsql:out}-pgsql \
179 --with%{!?with_mysql:out}-mysql \
182 # use .conf ext for %doc
183 cp -pf sphinx.conf.dist sphinx.conf
184 cp -pf sphinx-min.conf.dist sphinx-min.conf
187 cd api/libsphinxclient
188 CPPFLAGS=-D_FILE_OFFSET_BITS=64
195 export JAVA_HOME="%{java_home}"
196 %{__make} -j1 -C api/java
200 rm -rf $RPM_BUILD_ROOT
201 install -d $RPM_BUILD_ROOT{%{_sbindir},/etc/{logrotate.d,rc.d/init.d}}\
202 $RPM_BUILD_ROOT{/var/{log,run,lib}/%{name},/var/log/archive/%{name}} \
203 $RPM_BUILD_ROOT%{systemdtmpfilesdir}
205 %{__make} -j1 install \
206 DESTDIR=$RPM_BUILD_ROOT
208 rm $RPM_BUILD_ROOT%{_sysconfdir}/example.sql
209 rm $RPM_BUILD_ROOT%{_sysconfdir}/sphinx.conf.dist
211 # create default config with no index definition
212 sed -e '/## data source definition/,/## indexer settings/d' sphinx.conf > $RPM_BUILD_ROOT%{_sysconfdir}/sphinx-common.conf
213 # dir for indexes definition
214 install -d $RPM_BUILD_ROOT%{_sysconfdir}/index.d
216 rm $RPM_BUILD_ROOT%{_sysconfdir}/sphinx-min.conf.dist
217 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/searchd
218 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
219 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
220 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.conf
221 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
223 install -d $RPM_BUILD_ROOT%{php_data_dir}
224 cp -p api/sphinxapi.php $RPM_BUILD_ROOT%{php_data_dir}
227 %{__make} -C api/libsphinxclient install \
228 DESTDIR=$RPM_BUILD_ROOT
231 install -d $RPM_BUILD_ROOT%{py_sitescriptdir}
232 cp -p api/sphinxapi.py $RPM_BUILD_ROOT%{py_sitescriptdir}
233 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
234 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
241 install -d $RPM_BUILD_ROOT%{_javadir}
242 cp -p api/java/sphinxapi.jar $RPM_BUILD_ROOT%{_javadir}/sphinxapi-%{version}.jar
243 ln -s sphinxapi-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/sphinxapi.jar
247 rm -rf $RPM_BUILD_ROOT
249 %post -n libsphinxclient -p /sbin/ldconfig
250 %postun -n libsphinxclient -p /sbin/ldconfig
253 %groupadd -g 249 sphinx
254 %useradd -u 249 -d /var/lib/%{name} -g sphinx -c "Sphinx Search" sphinx
257 /sbin/chkconfig --add sphinx
258 %service sphinx restart
261 if [ "$1" = 0 ]; then
263 /sbin/chkconfig --del sphinx
266 %triggerpostun -- %{name} < 0.9.9-7.6
267 if [ -f %{_sysconfdir}/sphinx.conf.rpmsave ]; then
268 cp -f %{_sysconfdir}/sphinx-common.conf{,.rpmnew}
269 mv -f %{_sysconfdir}/sphinx.conf.rpmsave %{_sysconfdir}/sphinx-common.conf
270 %service -q sphinx restart
274 %defattr(644,root,root,755)
275 %doc doc/sphinx.txt example.sql sphinx.conf sphinx-min.conf
277 %dir %attr(750,root,sphinx) %{_sysconfdir}
279 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,sphinx) %{_sysconfdir}/sphinx-common.conf
280 # shell wrapper which loads main config and extra indexes config
281 %attr(755,root,sphinx) %{_sysconfdir}/sphinx.conf
282 # put here *.conf files defining extra indexes
283 %dir %attr(750,root,sphinx) %{_sysconfdir}/index.d
285 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
286 %attr(754,root,root) /etc/rc.d/init.d/%{name}
287 %attr(755,root,root) %{_bindir}/indexer
288 %attr(755,root,root) %{_bindir}/indextool
289 %attr(755,root,root) %{_bindir}/spelldump
290 %attr(755,root,root) %{_bindir}/wordbreaker
291 %attr(755,root,root) %{_sbindir}/searchd
293 %{_mandir}/man1/indexer.1*
294 %{_mandir}/man1/indextool.1*
295 %{_mandir}/man1/searchd.1*
296 %{_mandir}/man1/spelldump.1*
297 %{systemdtmpfilesdir}/%{name}.conf
298 %dir %attr(771,root,sphinx) /var/run/sphinx
299 %dir %attr(770,root,sphinx) /var/log/sphinx
300 %dir %attr(770,root,sphinx) /var/log/archive/sphinx
301 %dir %attr(770,root,sphinx) /var/lib/sphinx
303 %files -n libsphinxclient
304 %defattr(644,root,root,755)
305 %doc api/libsphinxclient/README
306 %attr(755,root,root) %{_libdir}/libsphinxclient-*.*.*.so
308 %files -n libsphinxclient-devel
309 %defattr(644,root,root,755)
310 %attr(755,root,root) %{_libdir}/libsphinxclient.so
311 %{_libdir}/libsphinxclient.la
312 %{_includedir}/sphinxclient.h
314 %files -n libsphinxclient-static
315 %defattr(644,root,root,755)
316 %{_libdir}/libsphinxclient.a
319 %files -n java-sphinxapi
320 %defattr(644,root,root,755)
322 %{_javadir}/sphinx*.jar
325 %files -n php-sphinxapi
326 %defattr(644,root,root,755)
327 %{php_data_dir}/sphinxapi.php
329 %files -n python-sphinxapi
330 %defattr(644,root,root,755)
331 %{py_sitescriptdir}/*.py[co]