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 %include /usr/lib/rpm/macros.php
15 %{?with_java:%include /usr/lib/rpm/macros.java}
16 Summary: Free open-source SQL full-text search engine
17 Summary(pl.UTF-8): Silnik przeszukiwania pełnotekstowego SQL open-source
22 Group: Applications/Databases
23 Source0: http://www.sphinxsearch.com/files/%{name}-%{version}-release.tar.gz
24 # Source0-md5: ab0007c9b128b6fde17d936c131f7a17
26 Source2: %{name}.logrotate
27 Source3: %{name}.conf.sh
28 Source4: %{name}.tmpfiles
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
114 Group: Development/Languages/Java
115 Requires: jpackage-utils
116 Obsoletes: java-sphinx < 2.0.3-5
117 %if "%{_rpmversion}" >= "5"
121 %description -n java-sphinxapi
124 %description -n java-sphinxapi -l pl.UTF-8
125 API Javy dla Sphinksa.
127 %package -n php-sphinxapi
128 Summary: PHP API for Sphinx Search
129 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
134 %if "%{_rpmversion}" >= "5"
138 %description -n php-sphinxapi
139 PHP API for Sphinx Search.
141 %description -n php-sphinxapi -l pl.UTF-8
142 API PHP dla Sphinksa.
144 %package -n python-sphinxapi
145 Summary: Python API for Sphinx Search
146 Summary(pl.UTF-8): API Python dla Sphinksa
147 Group: Development/Languages/Python
149 Obsoletes: python-sphinx < 2.0.3-5
150 %if "%{_rpmversion}" >= "5"
154 %description -n python-sphinxapi
155 Python API for Sphinx Search.
157 %description -n python-sphinxapi -l pl.UTF-8
158 API Pythona dla Sphinksa.
161 %setup -q -n %{name}-%{version}-release
164 sed -i -e 's#AM_MAINTAINER_MODE#AM_MAINTAINER_MODE\nAM_PROG_AR#' configure.ac
167 s#/var/run/#/var/run/sphinx/#
168 s#@CONFDIR@/log/searchd.pid#/var/run/sphinx/searchd.pid#
169 s#@CONFDIR@/log/#/var/log/sphinx/#g
170 s#@CONFDIR@/data/#/var/lib/sphinx/#g
174 CPPFLAGS=-D_FILE_OFFSET_BITS=64
176 --with%{!?with_libstemmer:out}-libstemmer \
177 --with%{!?with_pgsql:out}-pgsql \
178 --with%{!?with_mysql:out}-mysql \
181 # use .conf ext for %doc
182 cp -pf sphinx.conf.dist sphinx.conf
183 cp -pf sphinx-min.conf.dist sphinx-min.conf
186 cd api/libsphinxclient
192 CPPFLAGS=-D_FILE_OFFSET_BITS=64
199 export JAVA_HOME="%{java_home}"
200 %{__make} -j1 -C api/java
204 rm -rf $RPM_BUILD_ROOT
205 install -d $RPM_BUILD_ROOT{%{_sbindir},/etc/{logrotate.d,rc.d/init.d}}\
206 $RPM_BUILD_ROOT{/var/{log,run,lib}/%{name},/var/log/archive/%{name}} \
207 $RPM_BUILD_ROOT%{systemdtmpfilesdir}
209 %{__make} -j1 install \
210 DESTDIR=$RPM_BUILD_ROOT
212 rm $RPM_BUILD_ROOT%{_sysconfdir}/example.sql
213 rm $RPM_BUILD_ROOT%{_sysconfdir}/sphinx.conf.dist
215 # create default config with no index definition
216 sed -e '/## data source definition/,/## indexer settings/d' sphinx.conf > $RPM_BUILD_ROOT%{_sysconfdir}/sphinx-common.conf
217 # dir for indexes definition
218 install -d $RPM_BUILD_ROOT%{_sysconfdir}/index.d
220 rm $RPM_BUILD_ROOT%{_sysconfdir}/sphinx-min.conf.dist
221 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/searchd
222 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
223 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
224 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.conf
225 install %{SOURCE4} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
227 install -d $RPM_BUILD_ROOT%{php_data_dir}
228 cp -p api/sphinxapi.php $RPM_BUILD_ROOT%{php_data_dir}
231 %{__make} -C api/libsphinxclient install \
232 DESTDIR=$RPM_BUILD_ROOT
235 install -d $RPM_BUILD_ROOT%{py_sitescriptdir}
236 cp -p api/sphinxapi.py $RPM_BUILD_ROOT%{py_sitescriptdir}
237 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
238 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
245 install -d $RPM_BUILD_ROOT%{_javadir}
246 cp -p api/java/sphinxapi.jar $RPM_BUILD_ROOT%{_javadir}/sphinxapi-%{version}.jar
247 ln -s sphinxapi-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/sphinxapi.jar
251 rm -rf $RPM_BUILD_ROOT
253 %post -n libsphinxclient -p /sbin/ldconfig
254 %postun -n libsphinxclient -p /sbin/ldconfig
257 %groupadd -g 249 sphinx
258 %useradd -u 249 -d /var/lib/%{name} -g sphinx -c "Sphinx Search" sphinx
261 /sbin/chkconfig --add sphinx
262 %service sphinx restart
265 if [ "$1" = 0 ]; then
267 /sbin/chkconfig --del sphinx
270 %triggerpostun -- %{name} < 0.9.9-7.6
271 if [ -f %{_sysconfdir}/sphinx.conf.rpmsave ]; then
272 cp -f %{_sysconfdir}/sphinx-common.conf{,.rpmnew}
273 mv -f %{_sysconfdir}/sphinx.conf.rpmsave %{_sysconfdir}/sphinx-common.conf
274 %service -q sphinx restart
278 %defattr(644,root,root,755)
279 %doc doc/sphinx.txt example.sql sphinx.conf sphinx-min.conf
281 %dir %attr(750,root,sphinx) %{_sysconfdir}
283 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,sphinx) %{_sysconfdir}/sphinx-common.conf
284 # shell wrapper which loads main config and extra indexes config
285 %attr(755,root,sphinx) %{_sysconfdir}/sphinx.conf
286 # put here *.conf files defining extra indexes
287 %dir %attr(750,root,sphinx) %{_sysconfdir}/index.d
289 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
290 %attr(754,root,root) /etc/rc.d/init.d/%{name}
291 %attr(755,root,root) %{_bindir}/indexer
292 %attr(755,root,root) %{_bindir}/indextool
293 %attr(755,root,root) %{_bindir}/spelldump
294 %attr(755,root,root) %{_bindir}/wordbreaker
295 %attr(755,root,root) %{_sbindir}/searchd
297 %{_mandir}/man1/indexer.1*
298 %{_mandir}/man1/indextool.1*
299 %{_mandir}/man1/search.1*
300 %{_mandir}/man1/searchd.1*
301 %{_mandir}/man1/spelldump.1*
302 %{systemdtmpfilesdir}/%{name}.conf
303 %dir %attr(771,root,sphinx) /var/run/sphinx
304 %dir %attr(770,root,sphinx) /var/log/sphinx
305 %dir %attr(770,root,sphinx) /var/log/archive/sphinx
306 %dir %attr(770,root,sphinx) /var/lib/sphinx
308 %files -n libsphinxclient
309 %defattr(644,root,root,755)
310 %doc api/libsphinxclient/README
311 %attr(755,root,root) %{_libdir}/libsphinxclient-*.*.*.so
313 %files -n libsphinxclient-devel
314 %defattr(644,root,root,755)
315 %attr(755,root,root) %{_libdir}/libsphinxclient.so
316 %{_libdir}/libsphinxclient.la
319 %files -n libsphinxclient-static
320 %defattr(644,root,root,755)
321 %{_libdir}/libsphinxclient.a
324 %files -n java-sphinxapi
325 %defattr(644,root,root,755)
327 %{_javadir}/sphinx*.jar
330 %files -n php-sphinxapi
331 %defattr(644,root,root,755)
332 %{php_data_dir}/sphinxapi.php
334 %files -n python-sphinxapi
335 %defattr(644,root,root,755)
336 %{py_sitescriptdir}/*.py[co]