]> git.pld-linux.org Git - packages/sphinx.git/blob - sphinx.spec
- up to 2.2.5
[packages/sphinx.git] / sphinx.spec
1 # TODO:
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
6 #
7 # Conditional build:
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
12
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
18 Name:           sphinx
19 Version:        2.2.5
20 Release:        1
21 License:        GPL v2
22 Group:          Applications/Databases
23 Source0:        http://www.sphinxsearch.com/files/%{name}-%{version}-release.tar.gz
24 # Source0-md5:  ab0007c9b128b6fde17d936c131f7a17
25 Source1:        %{name}.init
26 Source2:        %{name}.logrotate
27 Source3:        %{name}.conf.sh
28 Source4:        %{name}.tmpfiles
29 Patch0:         bug-468.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}
40 BuildRequires:  python
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)
56
57 %define         _sysconfdir     /etc/%{name}
58
59 %description
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
65 an XML pipe.
66
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
74 XML.
75
76 %package -n libsphinxclient
77 Summary:        Client library for Sphinx
78 Summary(pl.UTF-8):      Biblioteka kliencka do Sphinx
79 Group:          Libraries
80
81 %description -n libsphinxclient
82 This package provides a client library for Sphinx search engine.
83
84 %description -n libsphinxclient -l pl.UTF-8
85 Ten pakiet dostarcza bibliotekę kliencką do silnika Sphinx.
86
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}
92
93 %description -n libsphinxclient-devel
94 Header files for sphinxclient library.
95
96 %description -n libsphinxclient-devel -l pl.UTF-8
97 Pliki nagłówkowe biblioteki sphinxclient.
98
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}
104
105 %description -n libsphinxclient-static
106 Static sphinxclient library.
107
108 %description -n libsphinxclient-static -l pl.UTF-8
109 Statyczna biblioteka sphinxclient.
110
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"
118 BuildArch:      noarch
119 %endif
120
121 %description -n java-sphinxapi
122 Java API for Sphinx.
123
124 %description -n java-sphinxapi -l pl.UTF-8
125 API Javy dla Sphinksa.
126
127 %package -n php-sphinxapi
128 Summary:        PHP API for Sphinx Search
129 Summary(pl.UTF-8):      API PHP dla Sphinksa
130 Group:          Libraries
131 Requires:       php(core) >= %{php_min_version}
132 Provides:       php(sphinx)
133 Obsoletes:      php-sphinx < 2.0.3-5
134 %if "%{_rpmversion}" >= "5"
135 BuildArch:      noarch
136 %endif
137
138 %description -n php-sphinxapi
139 PHP API for Sphinx Search.
140
141 %description -n php-sphinxapi -l pl.UTF-8
142 API PHP dla Sphinksa.
143
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
148 Requires:       python
149 Obsoletes:      python-sphinx < 2.0.3-5
150 %if "%{_rpmversion}" >= "5"
151 BuildArch:      noarch
152 %endif
153
154 %description -n python-sphinxapi
155 Python API for Sphinx Search.
156
157 %description -n python-sphinxapi -l pl.UTF-8
158 API Pythona dla Sphinksa.
159
160 %prep
161 %setup -q -n %{name}-%{version}-release
162 %patch0 -p1
163
164 sed -i -e 's#AM_MAINTAINER_MODE#AM_MAINTAINER_MODE\nAM_PROG_AR#' configure.ac
165
166 sed -i -e '
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
171 ' sphinx*.conf.in
172
173 %build
174 CPPFLAGS=-D_FILE_OFFSET_BITS=64
175 %configure \
176         --with%{!?with_libstemmer:out}-libstemmer \
177         --with%{!?with_pgsql:out}-pgsql \
178         --with%{!?with_mysql:out}-mysql \
179         --with-syslog
180 %{__make} -j1
181 # use .conf ext for %doc
182 cp -pf sphinx.conf.dist sphinx.conf
183 cp -pf sphinx-min.conf.dist sphinx-min.conf
184
185 # libsphinxclient
186 cd api/libsphinxclient
187 %{__libtoolize}
188 %{__aclocal}
189 %{__autoconf}
190 %{__autoheader}
191 %{__automake}
192 CPPFLAGS=-D_FILE_OFFSET_BITS=64
193 %configure
194 %{__make} -j1
195 cd ../..
196
197 # java api
198 %if %{with java}
199 export JAVA_HOME="%{java_home}"
200 %{__make} -j1 -C api/java
201 %endif
202
203 %install
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}
208
209 %{__make} -j1 install \
210         DESTDIR=$RPM_BUILD_ROOT
211
212 rm $RPM_BUILD_ROOT%{_sysconfdir}/example.sql
213 rm $RPM_BUILD_ROOT%{_sysconfdir}/sphinx.conf.dist
214
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
219
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
226
227 install -d $RPM_BUILD_ROOT%{php_data_dir}
228 cp -p api/sphinxapi.php $RPM_BUILD_ROOT%{php_data_dir}
229
230 # libsphinxclient
231 %{__make} -C api/libsphinxclient install \
232         DESTDIR=$RPM_BUILD_ROOT
233
234 # python api
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}
239 %py_postclean
240
241 # ruby api
242
243 # java api
244 %if %{with java}
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
248 %endif
249
250 %clean
251 rm -rf $RPM_BUILD_ROOT
252
253 %post   -n libsphinxclient -p /sbin/ldconfig
254 %postun -n libsphinxclient -p /sbin/ldconfig
255
256 %pre
257 %groupadd -g 249 sphinx
258 %useradd -u 249 -d /var/lib/%{name} -g sphinx -c "Sphinx Search" sphinx
259
260 %post
261 /sbin/chkconfig --add sphinx
262 %service sphinx restart
263
264 %preun
265 if [ "$1" = 0 ]; then
266         %service sphinx stop
267         /sbin/chkconfig --del sphinx
268 fi
269
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
275 fi
276
277 %files
278 %defattr(644,root,root,755)
279 %doc doc/sphinx.txt example.sql sphinx.conf sphinx-min.conf
280
281 %dir %attr(750,root,sphinx) %{_sysconfdir}
282 # main sphinx config
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
288
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
296
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
307
308 %files -n libsphinxclient
309 %defattr(644,root,root,755)
310 %doc api/libsphinxclient/README
311 %attr(755,root,root) %{_libdir}/libsphinxclient-*.*.*.so
312
313 %files -n libsphinxclient-devel
314 %defattr(644,root,root,755)
315 %attr(755,root,root) %{_libdir}/libsphinxclient.so
316 %{_libdir}/libsphinxclient.la
317 %{_includedir}/*.h
318
319 %files -n libsphinxclient-static
320 %defattr(644,root,root,755)
321 %{_libdir}/libsphinxclient.a
322
323 %if %{with java}
324 %files -n java-sphinxapi
325 %defattr(644,root,root,755)
326 %doc api/java/README
327 %{_javadir}/sphinx*.jar
328 %endif
329
330 %files -n php-sphinxapi
331 %defattr(644,root,root,755)
332 %{php_data_dir}/sphinxapi.php
333
334 %files -n python-sphinxapi
335 %defattr(644,root,root,755)
336 %{py_sitescriptdir}/*.py[co]
This page took 0.064003 seconds and 3 git commands to generate.