]>
Commit | Line | Data |
---|---|---|
1 | # | |
2 | # Conditional build: | |
3 | %bcond_without tests # build without tests | |
4 | %bcond_with network_tests # run tests requiring setup Solr Server on localhost:8983 | |
5 | ||
6 | %define php_name php%{?php_suffix} | |
7 | %define modname solr | |
8 | Summary: Object oriented API to Apache Solr | |
9 | Summary(fr.UTF-8): API orientée objet pour Apache Solr | |
10 | Name: %{php_name}-pecl-solr | |
11 | Version: 2.4.0 | |
12 | Release: 1 | |
13 | License: PHP v3.01 | |
14 | Group: Development/Languages | |
15 | Source0: https://pecl.php.net/get/%{modname}-%{version}.tgz | |
16 | # Source0-md5: 2c9accf66681a3daaaf371bc07e44902 | |
17 | Patch0: tests-online.patch | |
18 | URL: https://pecl.php.net/package/solr | |
19 | BuildRequires: %{php_name}-cli | |
20 | BuildRequires: %{php_name}-devel >= 4:5.3.0 | |
21 | BuildRequires: curl-devel | |
22 | BuildRequires: libxml2-devel >= 1:2.6.16 | |
23 | BuildRequires: php-packagexml2cl | |
24 | BuildRequires: rpmbuild(macros) >= 1.666 | |
25 | %if %{with tests} | |
26 | BuildRequires: %{php_name}-curl | |
27 | BuildRequires: %{php_name}-json | |
28 | BuildRequires: %{php_name}-pcre | |
29 | BuildRequires: %{php_name}-xml | |
30 | %endif | |
31 | %{?requires_php_extension} | |
32 | Requires: %{php_name}-cli | |
33 | Requires: %{php_name}-json | |
34 | Requires: %{php_name}-pcre | |
35 | Requires: %{php_name}-xml | |
36 | Provides: php(solr) = %{version} | |
37 | Obsoletes: php-pecl-solr < 1.0.2-6 | |
38 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
39 | ||
40 | %description | |
41 | Feature-rich library that allows PHP developers to communicate easily | |
42 | and efficiently with Apache Solr server instances using an | |
43 | object-oriented API. | |
44 | ||
45 | It effectively simplifies the process of interacting with Apache Solr | |
46 | using PHP5 and it already comes with built-in readiness for the latest | |
47 | features available in Solr 1.4. The extension has features such as | |
48 | built-in, serializable query string builder objects which effectively | |
49 | simplifies the manipulation of name-value pair request parameters | |
50 | across repeated requests. The response from the Solr server is also | |
51 | automatically parsed into native php objects whose properties can be | |
52 | accessed as array keys or object properties without any additional | |
53 | configuration on the client-side. Its advanced HTTP client reuses the | |
54 | same connection across multiple requests and provides built-in support | |
55 | for connecting to Solr servers secured behind HTTP Authentication or | |
56 | HTTP proxy servers. It is also able to connect to SSL-enabled | |
57 | containers. | |
58 | ||
59 | Notice: PECL Solr 2.x is not compatible with Apache Solr Server 3.x | |
60 | ||
61 | %description -l fr.UTF-8 | |
62 | Bibliothèque riche en fonctionnalités qui permet aux développeurs PHP | |
63 | de communiquer facilement et efficacement avec des instances du | |
64 | serveur Apache Solr en utilisant une API orientée objet. | |
65 | ||
66 | Cela simplifie réellement le processus d'interaction avec Apache Solr | |
67 | en utilisant PHP5 et fournit dores et déjà des facilités pour les | |
68 | dernières fonctionnalités disponibles dans Solr 1.4. L'extension | |
69 | possède des fonctionnalités telles qu'un constructeur de requêtes | |
70 | embarqué et sérialisable qui simplifie réellement la manipulation des | |
71 | couples de paramètres nom-valeur entre différentes requêtes. La | |
72 | réponse de Solr est également analysée automatiquement en objets php | |
73 | natifs dont les propriétés sont accessibles en tant que clés de | |
74 | tableaux ou en tant que propriétés d'objets sans la moindre | |
75 | configuration supplémentaire sur le client. Son client HTTP avancé | |
76 | utilise la même connexion entre différentes requêtes et fournit un | |
77 | support embarqué pour la connexion aux serveurs Solr protégés par | |
78 | authentification HTTP ou par un serveur mandataire. Il est également | |
79 | possible de se connecter à des serveurs via SSL. | |
80 | ||
81 | %prep | |
82 | %setup -qc | |
83 | mv %{modname}-%{version}/* . | |
84 | %{!?with_network_tests:%patch0 -p1} | |
85 | ||
86 | cat <<'EOF' > run-tests.sh | |
87 | #!/bin/sh | |
88 | export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2 | |
89 | exec %{__make} test \ | |
90 | PHP_EXECUTABLE=%{__php} \ | |
91 | PHP_TEST_SHARED_SYSTEM_EXTENSIONS="json pcre" \ | |
92 | RUN_TESTS_SETTINGS="-q $*" | |
93 | EOF | |
94 | chmod +x run-tests.sh | |
95 | ||
96 | %build | |
97 | packagexml2cl package.xml > ChangeLog | |
98 | ||
99 | # Check version | |
100 | extver=$(awk -F'"' '/define PHP_SOLR_VERSION / {print $2}' src/php%{php_major_version}/php_solr_version.h) | |
101 | if test "x${extver}" != "x%{version}"; then | |
102 | : Error: Upstream version is ${extver}, expecting %{version}. | |
103 | exit 1 | |
104 | fi | |
105 | ||
106 | phpize | |
107 | %configure | |
108 | %{__make} | |
109 | ||
110 | %{__php} -n -q \ | |
111 | -d extension_dir=modules \ | |
112 | -d extension=%{php_extensiondir}/curl.so \ | |
113 | -d extension=%{php_extensiondir}/json.so \ | |
114 | -d extension=%{modname}.so \ | |
115 | -m > modules.log | |
116 | grep %{modname} modules.log | |
117 | ||
118 | %if %{with tests} | |
119 | ./run-tests.sh --show-diff | |
120 | %endif | |
121 | ||
122 | %install | |
123 | rm -rf $RPM_BUILD_ROOT | |
124 | install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir}} | |
125 | %{__make} install \ | |
126 | EXTENSION_DIR=%{php_extensiondir} \ | |
127 | INSTALL_ROOT=$RPM_BUILD_ROOT | |
128 | ||
129 | cat <<'EOF' > $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/%{modname}.ini | |
130 | ; Enable Solr extension module | |
131 | extension=%{modname}.so | |
132 | EOF | |
133 | ||
134 | %clean | |
135 | rm -rf $RPM_BUILD_ROOT | |
136 | ||
137 | %post | |
138 | %php_webserver_restart | |
139 | ||
140 | %postun | |
141 | if [ "$1" = 0 ]; then | |
142 | %php_webserver_restart | |
143 | fi | |
144 | ||
145 | %files | |
146 | %defattr(644,root,root,755) | |
147 | %doc ChangeLog CREDITS README.SUBMITTING_CONTRIBUTIONS README.MEMORY_ALLOCATION | |
148 | %doc README.ABOUT_SOLR_EXTENSION TODO LICENSE docs/documentation.php | |
149 | %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/%{modname}.ini | |
150 | %{php_extensiondir}/%{modname}.so |