]> git.pld-linux.org Git - packages/php-pecl-memcache.git/blob - php-pecl-memcache.spec
Add pcntl dep to tests
[packages/php-pecl-memcache.git] / php-pecl-memcache.spec
1 #
2 # Conditional build:
3 %bcond_without  tests           # build without tests
4 %bcond_without  web             # make web package
5
6 # build "web" with 7.4 build
7 %if 0%{?_pld_builder:1} && "%{?php_suffix}" != "74"
8 %undefine       with_web
9 %endif
10
11 %define         php_name        php%{?php_suffix}
12 %define         modname memcache
13 %define         php_min_version 5.0.0
14 %define         commit e702b5f91
15 Summary:        %{modname} - a memcached extension
16 Summary(pl.UTF-8):      %{modname} - rozszerzenie memcached
17 Name:           %{php_name}-pecl-%{modname}
18 Version:        8.0
19 Release:        1
20 License:        PHP 3.01
21 Group:          Development/Languages/PHP
22 Source0:        https://pecl.php.net/get/memcache-%{version}.tgz
23 # Source0-md5:  ff34dc5ae1fa5b90b5bbeef56d302546
24 Source1:        %{modname}.ini
25 Source2:        %{modname}-apache.conf
26 Source3:        %{modname}-lighttpd.conf
27 Source4:        config.php
28 Patch0:         %{modname}-webapp.patch
29 Patch1:         tests.patch
30 URL:            https://pecl.php.net/package/memcache
31 BuildRequires:  %{php_name}-devel >= 3:7.0.0
32 BuildRequires:  %{php_name}-pcre
33 BuildRequires:  %{php_name}-session
34 BuildRequires:  %{php_name}-simplexml
35 BuildRequires:  %{php_name}-spl
36 BuildRequires:  %{php_name}-xml
37 BuildRequires:  php-packagexml2cl
38 BuildRequires:  rpm-php-pearprov >= 4.4.2-11
39 BuildRequires:  rpmbuild(macros) >= 1.650
40 %if %{with tests}
41 BuildRequires:  %{php_name}-cli
42 BuildRequires:  %{php_name}-pcntl
43 BuildRequires:  memcached
44 %endif
45 %{?requires_php_extension}
46 Requires:       %{php_name}-session
47 Requires:       %{php_name}-zlib
48 Suggests:       memcached
49 Provides:       php(memcache) = %{version}
50 Obsoletes:      php-pecl-memcache < 3.0.8-5
51 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
52
53 %define         _webapps        /etc/webapps
54 %define         _webapp         %{modname}
55 %define         _sysconfdir     %{_webapps}/%{_webapp}
56 %define         _appdir         %{_datadir}/%{_webapp}
57
58 # bad depsolver
59 %define         _noautopear     pear
60
61 # put it together for rpmbuild
62 %define         _noautoreq      %{?_noautophp} %{?_noautopear}
63
64 %description
65 Memcached is a caching daemon designed especially for dynamic web
66 applications to decrease database load by storing objects in memory.
67
68 This extension allows you to work with memcached through handy OO and
69 procedural interfaces.
70
71 %description -l pl.UTF-8
72 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
73 daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
74 przez przechowywanie w pamięci obiektów.
75
76 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
77 zorientowanego obiektowo (oraz przez procedury) interfejsu.
78
79 %package -n php-pecl-memcache-web
80 Summary:        Web interface for memcache
81 Group:          Libraries
82 # does not require extension itself
83 Requires:       php(core) >= %{php_min_version}
84 Requires:       php(date)
85 Requires:       php(gd)
86 Requires:       php(pcre)
87 Requires:       webapps
88 Requires:       webserver(php) >= 5.0
89 Obsoletes:      php70-pecl-memcache-web < 4.0.5.1-2
90 Obsoletes:      php71-pecl-memcache-web < 4.0.5.1-2
91 Obsoletes:      php72-pecl-memcache-web < 4.0.5.1-2
92 Obsoletes:      php73-pecl-memcache-web < 4.0.5.1-2
93 Obsoletes:      php74-pecl-memcache-web < 4.0.5.1-2
94 BuildArch:      noarch
95
96 %description -n php-pecl-memcache-web
97 Via this web interface script you can manage and view statistics of
98 memcache.
99
100 %prep
101 %setup -qc
102 mv %{modname}-*/* .
103 %patch0 -p1
104 %patch1 -p1
105
106 cat <<'EOF' > run-tests.sh
107 #!/bin/sh
108 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
109 exec %{__make} test \
110         PHP_EXECUTABLE=%{__php} \
111 %if "%php_major_version.%php_minor_version" >= "7.4"
112         PHP_TEST_SHARED_SYSTEM_EXTENSIONS="simplexml session" \
113 %else
114         PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl simplexml session" \
115 %endif
116         RUN_TESTS_SETTINGS="-q $*"
117 EOF
118 chmod +x run-tests.sh
119
120 # skip failed tests
121 die() {
122         echo >&2 "$*"
123         exit 1
124 }
125 xfail() {
126         set +x
127         while read s; do
128                 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
129
130                 test -f "$t" || die "Missing $t"
131                 echo >&2 "XFAIL: $s"
132                 cat >> $t <<-EOF
133
134                 --XFAIL--
135                 Skip
136                 EOF
137         done
138 }
139
140 xfail <<'EOF'
141 memcache->addServer() [tests/019.phpt]
142 memcache->addServer() with microsecond timeout [tests/056.phpt]
143 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
144 memcache->getExtendedStats() [tests/022.phpt]
145 memcache_get_extended_stats() [tests/022a.phpt]
146 memcache->delete() with load balancing [tests/023.phpt]
147 memcache->increment() with load balancing [tests/025.phpt]
148 memcache->delete() with load balancing [tests/026.phpt]
149 memcache->addServer() adding server in failed mode [tests/031.phpt]
150 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
151 memcache::connect() with unix domain socket [tests/035.phpt]
152 ini_set('session.save_handler') [tests/036.phpt]
153 ini_set('session.save_path') [tests/036b.phpt]
154 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
155 memcache->delete() with multiple keys [tests/041.phpt]
156 memcache->set() with multiple values [tests/042.phpt]
157 ini_set('memcache.redundancy') [tests/043.phpt]
158 ini_set('memcache.session_redundancy') [tests/044.phpt]
159 hash strategies and functions [tests/046.phpt]
160 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
161 memcache multi host save path function [tests/bug73539.phpt]
162 session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
163 EOF
164
165 %build
166 packagexml2cl package.xml > ChangeLog
167 phpize
168 %configure \
169         --with-zlib-dir=/usr
170 %{__make}
171
172 # simple module load test
173 %{__php} -n -q -d display_errors=off \
174         -d extension_dir=modules \
175 %if "%php_major_version.%php_minor_version" < "7.4"
176         -d extension=%{php_extensiondir}/pcre.so \
177         -d extension=%{php_extensiondir}/spl.so \
178 %endif
179         -d extension=%{php_extensiondir}/simplexml.so \
180         -d extension=%{php_extensiondir}/session.so \
181         -d extension=%{modname}.so \
182         -m > modules.log
183 grep %{modname} modules.log
184
185 %if %{with tests}
186 # Launch the Memcached service and stop it on exit
187 domainsocket=$PWD/memcached.sock
188 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
189 %{_sbindir}/memcached -s $domainsocket -d -P $PWD/memcached-udp.pid
190 trap 'kill $(cat memcached.pid memcached-udp.pid)' EXIT INT
191
192 ./run-tests.sh --show-diff
193 %endif
194
195 %install
196 rm -rf $RPM_BUILD_ROOT
197 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
198 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
199 # we use "session_" prefix in inifile to get loader *after* session extension
200 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
201 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
202
203 %if %{with web}
204 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
205 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
206 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
207 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
208 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
209 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
210 %endif
211
212 %clean
213 rm -rf $RPM_BUILD_ROOT
214
215 %post
216 %php_webserver_restart
217
218 %postun
219 if [ "$1" = 0 ]; then
220         %php_webserver_restart
221 fi
222
223 %triggerpostun -- %{name} < 3.0.4-2
224 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
225         echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
226         cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
227         mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
228         %php_webserver_restart
229 fi
230
231 %triggerin -n php-pecl-memcache-web -- apache1 < 1.3.37-3, apache1-base
232 %webapp_register apache %{_webapp}
233
234 %triggerun -n php-pecl-memcache-web -- apache1 < 1.3.37-3, apache1-base
235 %webapp_unregister apache %{_webapp}
236
237 %triggerin -n php-pecl-memcache-web -- apache < 2.2.0, apache-base
238 %webapp_register httpd %{_webapp}
239
240 %triggerun -n php-pecl-memcache-web -- apache < 2.2.0, apache-base
241 %webapp_unregister httpd %{_webapp}
242
243 %triggerin -n php-pecl-memcache-web -- lighttpd
244 %webapp_register lighttpd %{_webapp}
245
246 %triggerun -n php-pecl-memcache-web -- lighttpd
247 %webapp_unregister lighttpd %{_webapp}
248
249 %files
250 %defattr(644,root,root,755)
251 %doc CREDITS README ChangeLog
252 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
253 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
254 %{_examplesdir}/%{name}-%{version}
255
256 %if %{with web}
257 %files -n php-pecl-memcache-web
258 %defattr(644,root,root,755)
259 %dir %attr(750,root,http) %{_sysconfdir}
260 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
261 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
262 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
263 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php
264 %{_appdir}
265 %endif
This page took 0.117766 seconds and 4 git commands to generate.