3 %bcond_without dotnet # C# bindings
4 %bcond_without java # Java bindings
5 %bcond_without lua # Lua bindings
6 %bcond_without perl # Perl bindings
7 %bcond_with php # PHP bindings
8 %bcond_without python2 # Python 2 bindings
9 %bcond_without python3 # Python 3 bindings
10 %bcond_without ruby # Ruby bindings
11 %bcond_without tcl # Tcl bindings
17 %{?with_java:%{?use_default_jdk}}
19 Summary: Bindings for Xapian
20 Summary(pl.UTF-8): Wiązania do Xapiana
25 Group: Development/Languages
26 Source0: https://oligarchy.co.uk/xapian/%{version}/%{name}-%{version}.tar.xz
27 # Source0-md5: b9e5abec087824ede77a885d0bafd6af
28 Patch0: python-install.patch
29 URL: https://xapian.org/
30 BuildRequires: autoconf >= 2.63
31 BuildRequires: automake >= 1:1.12.2
32 %{?with_java:%buildrequires_jdk}
33 %{?with_java:BuildRequires: jpackage-utils}
34 BuildRequires: libstdc++-devel >= 6:4.7
35 BuildRequires: libtool >= 2:2.2.6
36 %{?with_lua:BuildRequires: lua51-devel >= 5.1.5-7}
37 # 2.6.x should be sufficient, but 2.11.1 complaints about write permissions to /usr/share/.mono/keypairs
38 %{?with_dotnet:BuildRequires: mono-devel >= 2.11.4}
39 %{?with_perl:BuildRequires: perl-devel >= 1:5.8.0}
40 %{?with_php:BuildRequires: %{php_name}-devel >= 4:5.0.4}
41 BuildRequires: pkgconfig
42 %{?with_python2:BuildRequires: python-Sphinx}
43 %{?with_python2:BuildRequires: python-devel >= 1:2.6}
44 %{?with_python3:BuildRequires: python3-Sphinx}
45 %{?with_python3:BuildRequires: python3-devel >= 1:3.2}
46 BuildRequires: python-modules >= 1:2.3
47 BuildRequires: rpm-pythonprov
48 BuildRequires: rpmbuild(macros) >= 2.021
49 %{?with_ruby:BuildRequires: rpm-rubyprov}
50 %{?with_ruby:BuildRequires: ruby-devel >= 1.8}
51 %{?with_ruby:BuildRequires: ruby-modules >= 1.8}
52 BuildRequires: tar >= 1:1.22
53 %{?with_tcl:BuildRequires: tcl-devel >= 8.1}
54 BuildRequires: xapian-core-devel >= %{version}
56 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
59 %if "%{php_major_version}" >= "7"
60 %define phpbindname php7
62 %define phpbindname php
67 Xapian is an Open Source Probabilistic Information Retrieval Library.
68 It offers a highly adaptable toolkit that allows developers to easily
69 add advanced indexing and search facilities to applications. This
70 package is a collection of bindings for different programming
73 %description -l pl.UTF-8
74 Xapian to mająca otwarte źródła biblioteka do uzyskiwania informacji
75 probabilistycznych. Oferuje wysoce adoptowalne narzędzia pozwalające
76 programistom łatwo dodawać do aplikacji zaawansowane możliwości
77 indeksowania i wyszukiwania. Ten pakiet zawiera zestaw wiązań dla
78 różnych języków programowania.
80 %package -n dotnet-xapian
81 Summary: Files needed for developing C# applications which use Xapian
82 Summary(pl.UTF-8): Pliki do tworzenia aplikacji C# wykorzystujących Xapiana
83 Group: Development/Languages
84 Requires: mono >= 2.6.7
85 Requires: xapian-core-libs >= %{version}
86 Obsoletes: csharp-xapian
88 %description -n dotnet-xapian
89 Xapian is an Open Source Probabilistic Information Retrieval
90 framework. It offers a highly adaptable toolkit that allows developers
91 to easily add advanced indexing and search facilities to applications.
92 This package provides the files needed for developing C# applications
95 %description -n dotnet-xapian -l pl.UTF-8
96 Xapian to mająca otwarte źródła biblioteka do uzyskiwania informacji
97 probabilistycznych. Oferuje wysoce adoptowalne narzędzia pozwalające
98 programistom łatwo dodawać do aplikacji zaawansowane możliwości
99 indeksowania i wyszukiwania. Ten pakiet zawiera pliki potrzebne przy
100 tworzeniu aplikacji C# wykorzystujących Xapiana.
102 %package -n java-xapian
103 Summary: Files needed for developing Java applications which use Xapian
104 Summary(pl.UTF-8): Pliki do tworzenia aplikacji Javy wykorzystujących Xapiana
105 Group: Libraries/Java
106 Requires: jpackage-utils
108 Requires: xapian-core-libs >= %{version}
110 %description -n java-xapian
111 Xapian is an Open Source Probabilistic Information Retrieval
112 framework. It offers a highly adaptable toolkit that allows developers
113 to easily add advanced indexing and search facilities to applications.
114 This package provides the files needed for developing Java
115 applications which use Xapian.
117 %description -n java-xapian -l pl.UTF-8
118 Xapian to mająca otwarte źródła biblioteka do uzyskiwania informacji
119 probabilistycznych. Oferuje wysoce adoptowalne narzędzia pozwalające
120 programistom łatwo dodawać do aplikacji zaawansowane możliwości
121 indeksowania i wyszukiwania. Ten pakiet zawiera pliki potrzebne przy
122 tworzeniu aplikacji Javy wykorzystujących Xapiana.
124 %package -n lua-xapian
125 Summary: Files needed for developing Lua scripts which use Xapian
126 Summary(pl.UTF-8): Pliki do tworzenia skryptów w języku Lua wykorzystujących Xapiana
127 Group: Development/Languages
129 Requires: xapian-core-libs >= %{version}
131 %description -n lua-xapian
132 Xapian is an Open Source Probabilistic Information Retrieval
133 framework. It offers a highly adaptable toolkit that allows developers
134 to easily add advanced indexing and search facilities to applications.
135 This package provides the files needed for developing Lua scripts
138 %description -n lua-xapian -l pl.UTF-8
139 Xapian to mająca otwarte źródła biblioteka do uzyskiwania informacji
140 probabilistycznych. Oferuje wysoce adoptowalne narzędzia pozwalające
141 programistom łatwo dodawać do aplikacji zaawansowane możliwości
142 indeksowania i wyszukiwania. Ten pakiet zawiera pliki potrzebne przy
143 tworzeniu skryptów w języku Lua wykorzystujących Xapiana.
145 %package -n perl-Xapian
146 Summary: Xapian - Perl XS frontend to the Xapian C++ search library
147 Summary(pl.UTF-8): Xapian - interfejs Perlowy XS do biblioteki wyszukiwania Xapian
148 Group: Development/Languages/Perl
149 Requires: xapian-core-libs >= %{version}
151 %description -n perl-Xapian
152 This module wraps most methods of most Xapian classes. The missing
153 classes and methods should be added in the future. It also provides a
154 simplified, more 'perlish' interface to some common operations.
156 %description -n perl-Xapian -l pl.UTF-8
157 Ten moduł obudowuje większość metod z większości klas Xapiana.
158 Brakujące klasy i metody powinny być dodane w przyszłości. Moduł
159 udostępnia także uproszczony, bardziej perlowy interfejs do niektórych
160 popularnych operacji.
162 %package -n %{php_name}-xapian
163 Summary: Files needed for developing PHP scripts which use Xapian
164 Summary(pl.UTF-8): Pliki do tworzenia skryptów w PHP wykorzystujących Xapiana
165 Group: Development/Languages/PHP
166 Requires: xapian-core-libs >= %{version}
167 %{?requires_php_extension}
169 %description -n %{php_name}-xapian
170 Xapian is an Open Source Probabilistic Information Retrieval
171 framework. It offers a highly adaptable toolkit that allows developers
172 to easily add advanced indexing and search facilities to applications.
173 This package provides the files needed for developing PHP scripts
176 %description -n %{php_name}-xapian -l pl.UTF-8
177 Xapian to mająca otwarte źródła biblioteka do uzyskiwania informacji
178 probabilistycznych. Oferuje wysoce adoptowalne narzędzia pozwalające
179 programistom łatwo dodawać do aplikacji zaawansowane możliwości
180 indeksowania i wyszukiwania. Ten pakiet zawiera pliki potrzebne przy
181 tworzeniu skryptów w PHP wykorzystujących Xapiana.
183 %package -n python-xapian
184 Summary: Files needed for developing Python 2 scripts which use Xapian
185 Summary(pl.UTF-8): Pliki do tworzenia skryptów w Pythonie 2 wykorzystujących Xapiana
186 Group: Development/Languages/Python
187 Requires: python-modules >= 1:2.6
188 Requires: xapian-core-libs >= %{version}
190 %description -n python-xapian
191 Xapian is an Open Source Probabilistic Information Retrieval
192 framework. It offers a highly adaptable toolkit that allows developers
193 to easily add advanced indexing and search facilities to applications.
194 This package provides the files needed for developing Python scripts
197 %description -n python-xapian -l pl.UTF-8
198 Xapian to mająca otwarte źródła biblioteka do uzyskiwania informacji
199 probabilistycznych. Oferuje wysoce adoptowalne narzędzia pozwalające
200 programistom łatwo dodawać do aplikacji zaawansowane możliwości
201 indeksowania i wyszukiwania. Ten pakiet zawiera pliki potrzebne przy
202 tworzeniu skryptów w Pythonie wykorzystujących Xapiana.
204 %package -n python3-xapian
205 Summary: Files needed for developing Python 3 scripts which use Xapian
206 Summary(pl.UTF-8): Pliki do tworzenia skryptów w Pythonie 3 wykorzystujących Xapiana
207 Group: Development/Languages/Python
208 Requires: python3-modules >= 1:3.2
209 Requires: xapian-core-libs >= %{version}
211 %description -n python3-xapian
212 Xapian is an Open Source Probabilistic Information Retrieval
213 framework. It offers a highly adaptable toolkit that allows developers
214 to easily add advanced indexing and search facilities to applications.
215 This package provides the files needed for developing Python scripts
218 %description -n python3-xapian -l pl.UTF-8
219 Xapian to mająca otwarte źródła biblioteka do uzyskiwania informacji
220 probabilistycznych. Oferuje wysoce adoptowalne narzędzia pozwalające
221 programistom łatwo dodawać do aplikacji zaawansowane możliwości
222 indeksowania i wyszukiwania. Ten pakiet zawiera pliki potrzebne przy
223 tworzeniu skryptów w Pythonie wykorzystujących Xapiana.
225 %package -n ruby-xapian
226 Summary: Files needed for developing Ruby scripts which use Xapian
227 Summary(pl.UTF-8): Pliki do tworzenia skryptów w języku Ruby wykorzystujących Xapiana
228 Group: Development/Languages
229 Requires: xapian-core-libs >= %{version}
231 %description -n ruby-xapian
232 Xapian is an Open Source Probabilistic Information Retrieval
233 framework. It offers a highly adaptable toolkit that allows developers
234 to easily add advanced indexing and search facilities to applications.
235 This package provides the files needed for developing Ruby scripts
238 %description -n ruby-xapian -l pl.UTF-8
239 Xapian to mająca otwarte źródła biblioteka do uzyskiwania informacji
240 probabilistycznych. Oferuje wysoce adoptowalne narzędzia pozwalające
241 programistom łatwo dodawać do aplikacji zaawansowane możliwości
242 indeksowania i wyszukiwania. Ten pakiet zawiera pliki potrzebne przy
243 tworzeniu skryptów w języku Ruby wykorzystujących Xapiana.
245 %package -n tcl-xapian
246 Summary: Files needed for developing Tcl scripts which use Xapian
247 Summary(pl.UTF-8): Pliki do tworzenia skryptów w Tcl-u wykorzystujących Xapiana
248 Group: Development/Languages/Tcl
250 Requires: xapian-core-libs >= %{version}
252 %description -n tcl-xapian
253 Xapian is an Open Source Probabilistic Information Retrieval
254 framework. It offers a highly adaptable toolkit that allows developers
255 to easily add advanced indexing and search facilities to applications.
256 This package provides the files needed for developing TCL scripts
259 %description -n tcl-xapian -l pl.UTF-8
260 Xapian to mająca otwarte źródła biblioteka do uzyskiwania informacji
261 probabilistycznych. Oferuje wysoce adoptowalne narzędzia pozwalające
262 programistom łatwo dodawać do aplikacji zaawansowane możliwości
263 indeksowania i wyszukiwania. Ten pakiet zawiera pliki potrzebne przy
264 tworzeniu skryptów w Tcl-u wykorzystujących Xapiana.
270 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python(\s|$),#!%{__python}\1,' -e '1s,#!\s*/usr/bin/python(\s|$),#!%{__python}\1,' \
271 python/docs/examples/*.py
273 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python(\s|$),#!%{__python3}\1,' -e '1s,#!\s*/usr/bin/python(\s|$),#!%{__python3}\1,' \
274 python3/docs/examples/*.py
276 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+ruby(\s|$),#!%{__ruby}\1,' \
277 ruby/docs/examples/*.rb
286 %{?with_java:export JAVA_HOME="%{java_home}"}
288 PERL_ARCH=%{perl_vendorarch} \
289 PERL_LIB=%{perl_vendorlib} \
290 RUBY_LIB=%{ruby_vendorlibdir} \
291 RUBY_LIB_ARCH=%{ruby_vendorarchdir} \
292 %{?with_lua:LUA=/usr/bin/lua5.1 LUA_INC=/usr/include/lua5.1} \
293 %{?with_dotnet:--with-csharp} \
294 %{?with_java:--with-java} \
295 %{?with_lua:--with-lua} \
296 %{?with_perl:--with-perl} \
297 %{?with_python2:--with-python} \
298 %{?with_python3:--with-python3} \
299 %{?with_php:--with-%{phpbindname}} \
300 %{?with_ruby:--with-ruby} \
301 %{?with_tcl:--with-tcl}
304 %{?with_java:JAVA_CPPFLAGS="-I%{java_home}/include -I%{java_home}/include/linux"}
307 rm -rf $RPM_BUILD_ROOT
309 DESTDIR=$RPM_BUILD_ROOT \
311 phpincdir=%{php_data_dir}
313 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
316 install -D java/built/xapian.jar $RPM_BUILD_ROOT%{_javadir}/xapian-%{version}.jar
317 ln -sf xapian-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/xapian.jar
320 for binding in %{?with_dotnet:csharp} %{?with_perl:perl} %{?with_php:%{phpbindname}} %{?with_python2:python} %{?with_python3:python3} %{?with_ruby:ruby} %{?with_tcl:tcl8}; do
321 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/$binding
322 [ ! -f $binding/docs/index.html ] || cp -p $binding/docs/index.html $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/$binding
323 cp -pr $binding/docs/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/$binding
330 install -d $RPM_BUILD_ROOT%{py3_sitedir}/xapian/__pycache__
331 %{__mv} $RPM_BUILD_ROOT%{py3_sitedir}/xapian/*.py[co] $RPM_BUILD_ROOT%{py3_sitedir}/xapian/__pycache__
335 rm -rf $RPM_BUILD_ROOT
338 %defattr(644,root,root,755)
339 %doc AUTHORS ChangeLog HACKING NEWS README TODO
340 %{_examplesdir}/%{name}-%{version}
343 %files -n dotnet-xapian
344 %defattr(644,root,root,755)
345 %attr(755,root,root) %{_libdir}/_XapianSharp.so
347 %{_libdir}/mono/XapianSharp
348 %dir %{_libdir}/mono/gac
349 %{_libdir}/mono/gac/XapianSharp
353 %files -n java-xapian
354 %defattr(644,root,root,755)
355 %attr(755,root,root) %{_jnidir}/libxapian_jni.so
356 %{_javadir}/xapian-%{version}.jar
357 %{_javadir}/xapian.jar
362 %defattr(644,root,root,755)
363 %attr(755,root,root) %{_libdir}/lua/5.1/xapian.so
367 %files -n perl-Xapian
368 %defattr(644,root,root,755)
369 %{perl_vendorlib}/Xapian.pm
370 %dir %{perl_vendorlib}/Xapian
371 %{perl_vendorlib}/Xapian/*.pm
372 %dir %{perl_vendorarch}/auto/Xapian
373 %attr(755,root,root) %{perl_vendorarch}/auto/Xapian/Xapian.so
377 %files -n %{php_name}-xapian
378 %defattr(644,root,root,755)
379 %attr(755,root,root) %{php_extensiondir}/xapian.so
380 %{php_data_dir}/xapian.php
384 %files -n python-xapian
385 %defattr(644,root,root,755)
386 %dir %{py_sitedir}/xapian
387 %attr(755,root,root) %{py_sitedir}/xapian/_xapian.so
388 %{py_sitedir}/xapian/__init__.py[co]
392 %files -n python3-xapian
393 %defattr(644,root,root,755)
394 %dir %{py3_sitedir}/xapian
395 %attr(755,root,root) %{py3_sitedir}/xapian/_xapian.cpython-*.so
396 %{py3_sitedir}/xapian/__init__.py
397 %{py3_sitedir}/xapian/__pycache__
401 %files -n ruby-xapian
402 %defattr(644,root,root,755)
403 %attr(755,root,root) %{ruby_vendorarchdir}/_xapian.so
404 %{ruby_vendorlibdir}/xapian.rb
409 %defattr(644,root,root,755)
410 %dir %{_libdir}/xapian%{version}
411 %{_libdir}/xapian%{version}/pkgIndex.tcl
412 %attr(755,root,root) %{_libdir}/xapian%{version}/xapian.so