2 # - package for ruby API
5 %bcond_without java # without Java support
6 %bcond_without libstemmer # without libstemmer support
7 %bcond_without mysql # without MySQL support
8 %bcond_without pgsql # without PostgreSQL support
10 # arch list synced with java-sun
11 %ifnarch i586 i686 pentium3 pentium4 athlon %{x8664}
15 %{?with_java:%include /usr/lib/rpm/macros.java}
16 %include /usr/lib/rpm/macros.php
17 %define php_min_version 5.0.4
18 Summary: Free open-source SQL full-text search engine
19 Summary(pl.UTF-8): Silnik przeszukiwania pełnotekstowego SQL open-source
24 Group: Applications/Databases
25 Source0: http://www.sphinxsearch.com/downloads/%{name}-%{version}.tar.gz
26 # Source0-md5: 7b9b618cb9b378f949bb1b91ddcc4f54
28 Patch0: %{name}-system-libstemmer.patch
30 URL: http://www.sphinxsearch.com/
31 BuildRequires: autoconf
32 BuildRequires: automake
33 BuildRequires: expat-devel
34 %{?with_java:BuildRequires: java-sun}
35 BuildRequires: libstdc++-devel
36 %{?with_libstemmer:BuildRequires: libstemmer-devel}
37 %{?with_mysql:BuildRequires: mysql-devel}
38 %{?with_pgsql:BuildRequires: postgresql-devel}
39 BuildRequires: rpm-javaprov
40 BuildRequires: rpm-php-pearprov >= 4.4.2-11
41 BuildRequires: rpmbuild(macros) >= 1.461
42 Requires(postun): /usr/sbin/groupdel
43 Requires(postun): /usr/sbin/userdel
44 Requires(pre): /bin/id
45 Requires(pre): /usr/bin/getgid
46 Requires(pre): /usr/sbin/groupadd
47 Requires(pre): /usr/sbin/useradd
48 Provides: group(sphinx)
49 Provides: user(sphinx)
50 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
52 %define _sysconfdir /etc/%{name}
55 Sphinx is a a standalone search engine, meant to provide fast,
56 size-efficient and relevant fulltext search functions to other
57 applications. Sphinx was specially designed to integrate well with SQL
58 databases and scripting languages. Currently built-in data sources
59 support fetching data either via direct connection to MySQL, or from
62 %description -l pl.UTF-8
63 Sphinx jest samodzielnym silnikiem przeszukującym, dostarczającym
64 innym aplikacjom szybkie, zoptymalizowane rozmiarowo funkcje
65 przeszukiwania pełnotekstowego. Sphinx został specjalnie
66 zaprojektowany z myślą o dobrej integracji z bazami danych SQL oraz
67 językami skryptowymi. Obecnie wbudowane źródła danych wspierają
68 pobieranie danych poprzez bezpośrednie połączenie z MySQL lub z potoku
71 %package -n libsphinxclient
72 Summary: Client library for Sphinx
73 Summary(pl.UTF-8): Biblioteka kliencka do Sphinx
76 %description -n libsphinxclient
77 This package provides a client library for Sphinx search engine.
79 %description -n libsphinxclient -l PL.UTF_8
80 Ten pakiet dostarcza bibliotekę kliencką do silnika Sphinx.
82 %package -n libsphinxclient-devel
83 Summary: Header files for sphinxclient library
84 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki sphinxclient
85 Group: Development/Libraries
86 Requires: libsphinxclient = %{version}-%{release}
88 %description -n libsphinxclient-devel
89 Header files for sphinxclient library.
91 %description -n libsphinxclient-devel -l pl.UTF-8
92 Pliki nagłówkowe biblioteki sphinxclient.
94 %package -n libsphinxclient-static
95 Summary: Static sphinxclient library
96 Summary(pl.UTF-8): Statyczna biblioteka sphinxclient
97 Group: Development/Libraries
98 Requires: libsphinxclient-devel = %{version}-%{release}
100 %description -n libsphinxclient-static
101 Static sphinxclient library.
103 %description -n libsphinxclient-static -l pl.UTF-8
104 Statyczna biblioteka sphinxclient.
106 %package -n java-sphinx
107 Summary: Java API for Sphinx
108 Summary(pl.UTF-8): API Javy dla Sphinksa
109 Group: Development/Languages/Java
110 Requires: jpackage-utils
112 %description -n java-sphinx
115 %description -n java-sphinx -l pl.UTF-8
116 API Javy dla Sphinksa.
118 %package -n php-sphinx
119 Summary: PHP API for Sphinx
120 Summary(pl.UTF-8): API PHP dla Sphinksa
122 Requires: php-common >= 4:%{php_min_version}
123 Requires: php-mbstring
125 %description -n php-sphinx
128 %description -n php-sphinx -l pl.UTF-8
129 API PHP dla Sphinksa.
131 %package -n python-sphinx
132 Summary: Python API for Sphinx
133 Summary(pl.UTF-8): API Python dla Sphinksa
134 Group: Development/Languages/Python
135 %pyrequires_eq python
137 %description -n python-sphinx
138 Python API for Sphinx.
140 %description -n python-sphinx -l pl.UTF-8
141 API Pythona dla Sphinksa.
149 s#/var/run/#/var/run/sphinx/#
150 s#@CONFDIR@/log/searchd.pid#/var/run/sphinx/searchd.pid#
151 s#@CONFDIR@/log/#/var/log/sphinx/#g
152 s#@CONFDIR@/data/#/var/lib/sphinx/#g
160 CPPFLAGS=-D_FILE_OFFSET_BITS=64
162 --with%{!?with_libstemmer:out}-libstemmer \
163 --with%{!?with_pgsql:out}-pgsql \
164 --with%{!?with_mysql:out}-mysql
166 # use .conf ext for %doc
167 cp -f sphinx.conf.dist sphinx.conf
168 cp -f sphinx-min.conf.dist sphinx-min.conf
171 cd api/libsphinxclient
177 CPPFLAGS=-D_FILE_OFFSET_BITS=64
184 export JAVA_HOME="%{java_home}"
185 %{__make} -j1 -C api/java
189 rm -rf $RPM_BUILD_ROOT
190 install -d $RPM_BUILD_ROOT{%{_sbindir},/etc/rc.d/init.d,/var/{log,run,lib}/%{name}}
192 %{__make} -j1 install \
193 DESTDIR=$RPM_BUILD_ROOT
195 rm $RPM_BUILD_ROOT%{_sysconfdir}/example.sql
196 rm $RPM_BUILD_ROOT%{_sysconfdir}/sphinx.conf.dist
198 # create default config with no index definition
199 sed -e '/## data source definition/,/## indexer settings/d' sphinx.conf > $RPM_BUILD_ROOT%{_sysconfdir}/sphinx.conf
201 rm $RPM_BUILD_ROOT%{_sysconfdir}/sphinx-min.conf.dist
202 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/searchd
203 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
205 install -d $RPM_BUILD_ROOT%{php_data_dir}
206 cp -a api/sphinxapi.php $RPM_BUILD_ROOT%{php_data_dir}
209 %{__make} -C api/libsphinxclient install \
210 DESTDIR=$RPM_BUILD_ROOT
213 install -d $RPM_BUILD_ROOT%{py_sitescriptdir}
214 cp -a api/sphinxapi.py $RPM_BUILD_ROOT%{py_sitescriptdir}
215 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
216 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
223 install -d $RPM_BUILD_ROOT%{_javadir}
224 cp -a api/java/sphinxapi.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
225 ln -s %{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
229 rm -rf $RPM_BUILD_ROOT
231 %post -n libsphinxclient -p /sbin/ldconfig
232 %postun -n libsphinxclient -p /sbin/ldconfig
235 %groupadd -g 249 sphinx
236 %useradd -u 249 -d /var/lib/%{name} -g sphinx -c "Sphinx Search" sphinx
239 /sbin/chkconfig --add sphinx
240 %service sphinx restart
243 if [ "$1" = 0 ]; then
245 /sbin/chkconfig --del sphinx
249 %defattr(644,root,root,755)
250 %doc doc/sphinx.txt example.sql sphinx.conf sphinx-min.conf
252 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sphinx.conf
253 %attr(754,root,root) /etc/rc.d/init.d/%{name}
254 %attr(755,root,root) %{_bindir}/indexer
255 %attr(755,root,root) %{_bindir}/indextool
256 %attr(755,root,root) %{_bindir}/search
257 %attr(755,root,root) %{_bindir}/spelldump
258 %attr(755,root,root) %{_sbindir}/searchd
260 %dir %attr(771,root,sphinx) /var/run/sphinx
261 %dir %attr(770,root,sphinx) /var/log/sphinx
262 %dir %attr(770,root,sphinx) /var/lib/sphinx
264 %files -n libsphinxclient
265 %defattr(644,root,root,755)
266 %doc api/libsphinxclient/README
267 %attr(755,root,root) %{_libdir}/libsphinxclient-*.*.*.so
269 %files -n libsphinxclient-devel
270 %defattr(644,root,root,755)
271 %attr(755,root,root) %{_libdir}/libsphinxclient.so
272 %{_libdir}/libsphinxclient.la
275 %files -n libsphinxclient-static
276 %defattr(644,root,root,755)
277 %{_libdir}/libsphinxclient.a
280 %files -n java-sphinx
281 %defattr(644,root,root,755)
283 %{_javadir}/sphinx*.jar
287 %defattr(644,root,root,755)
288 %{php_data_dir}/sphinxapi.php
290 %files -n python-sphinx
291 %defattr(644,root,root,755)
292 %{py_sitescriptdir}/*.py[co]