3 %bcond_without tests # build without tests
5 %define php_name php%{?php_suffix}
6 %define modname memcache
7 %define php_min_version 5.0.0
8 %define commit e702b5f91
9 %include /usr/lib/rpm/macros.php
10 Summary: %{modname} - a memcached extension
11 Summary(pl.UTF-8): %{modname} - rozszerzenie memcached
12 Name: %{php_name}-pecl-%{modname}
16 Group: Development/Languages/PHP
17 #Source0: http://pecl.php.net/get/%{modname}-%{version}.tgz
18 # https://github.com/websupport-sk/pecl-memcache/commits/NON_BLOCKING_IO_php7
19 Source0: https://github.com/websupport-sk/pecl-memcache/archive/%{commit}/%{modname}-%{version}-%{commit}.tar.gz
20 # Source0-md5: 945e6a30b3cac160abf9b6d103c5676b
21 Source1: %{modname}.ini
22 Source2: %{modname}-apache.conf
23 Source3: %{modname}-lighttpd.conf
25 Patch0: %{modname}-webapp.patch
26 Patch1: https://github.com/websupport-sk/pecl-memcache/pull/26.patch
27 # Patch1-md5: 7d963433154cd82caea94a7476e73697
28 Patch2: https://github.com/websupport-sk/pecl-memcache/pull/30.patch
29 # Patch2-md5: 770b57a139428cc601f19e13dbdb2247
30 URL: http://pecl.php.net/package/memcache/
31 BuildRequires: %{php_name}-devel >= 3:5.0.0
32 BuildRequires: %{php_name}-xml
33 BuildRequires: php-packagexml2cl
34 BuildRequires: rpm-php-pearprov >= 4.4.2-11
35 BuildRequires: rpmbuild(macros) >= 1.650
37 BuildRequires: %{php_name}-cli
38 BuildRequires: %{php_name}-pcre
39 BuildRequires: %{php_name}-session
40 BuildRequires: %{php_name}-spl
41 BuildRequires: memcached
43 %{?requires_php_extension}
44 Requires: %{php_name}-session
45 Requires: %{php_name}-zlib
47 Provides: php(memcache) = %{version}
48 Obsoletes: php-pecl-memcache < 3.0.8-5
49 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51 %define _webapps /etc/webapps
52 %define _webapp %{modname}
53 %define _sysconfdir %{_webapps}/%{_webapp}
54 %define _appdir %{_datadir}/%{_webapp}
57 %define _noautopear pear
59 # put it together for rpmbuild
60 %define _noautoreq %{?_noautophp} %{?_noautopear}
63 Memcached is a caching daemon designed especially for dynamic web
64 applications to decrease database load by storing objects in memory.
66 This extension allows you to work with memcached through handy OO and
67 procedural interfaces.
69 %description -l pl.UTF-8
70 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
71 daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
72 przez przechowywanie w pamięci obiektów.
74 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
75 zorientowanego obiektowo (oraz przez procedury) interfejsu.
78 Summary: Web interface for memcache
80 # does not require extension itself
81 Requires: php(core) >= %{php_min_version}
86 Requires: webserver(php) >= 5.0
87 %if "%{_rpmversion}" >= "5"
92 Via this web interface script you can manage and view statistics of
97 mv pecl-%{modname}-*/{.??*,*} .
102 # locks up on carme, likely due udp very long timeout
111 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
124 memcache->addServer() [tests/019.phpt]
125 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
126 memcache->getExtendedStats() [tests/022.phpt]
127 memcache_get_extended_stats() [tests/022a.phpt]
128 memcache->delete() with load balancing [tests/023.phpt]
129 memcache->increment() with load balancing [tests/025.phpt]
130 memcache->delete() with load balancing [tests/026.phpt]
131 memcache->addServer() adding server in failed mode [tests/031.phpt]
132 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
133 memcache::connect() with unix domain socket [tests/035.phpt]
134 memcache->get() over UDP [tests/038.phpt]
135 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
136 ini_set('memcache.redundancy') [tests/043.phpt]
137 ini_set('memcache.session_redundancy') [tests/044.phpt]
138 hash strategies and functions [tests/046.phpt]
139 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
140 FLAKY: memcache->addServer() with microsecond timeout [tests/056.phpt]
141 ini_set('session.save_handler') [tests/036.phpt]
142 ini_set("memcache.allow_failover") [tests/029.phpt]
143 %if "%{php_major_version}.%{php_minor_version}" >= "7.1"
144 strange keys [tests/005.phpt]
146 memcache multi host save path function [tests/bug73539.phpt]
150 packagexml2cl package.xml > ChangeLog
157 # simple module load test
159 -d extension_dir=modules \
160 -d extension=%{php_extensiondir}/pcre.so \
161 -d extension=%{php_extensiondir}/spl.so \
162 -d extension=%{php_extensiondir}/session.so \
163 -d extension=%{modname}.so \
165 grep %{modname} modules.log
167 cat <<'EOF' > run-tests.sh
169 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
170 exec %{__make} test \
171 PHP_EXECUTABLE=%{__php} \
172 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl session" \
173 RUN_TESTS_SETTINGS="-q $*"
175 chmod +x run-tests.sh
177 # Launch the Memcached service and stop it on exit
178 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
179 trap 'kill $(cat memcached.pid)' EXIT INT
185 rm -rf $RPM_BUILD_ROOT
186 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
187 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
188 # we use "session_" prefix in inifile to get loader *after* session extension
189 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
190 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
192 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
193 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
194 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
195 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
196 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
197 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
200 rm -rf $RPM_BUILD_ROOT
203 %php_webserver_restart
206 if [ "$1" = 0 ]; then
207 %php_webserver_restart
210 %triggerpostun -- %{name} < 3.0.4-2
211 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
212 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
213 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
214 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
215 %php_webserver_restart
218 %triggerin web -- apache1 < 1.3.37-3, apache1-base
219 %webapp_register apache %{_webapp}
221 %triggerun web -- apache1 < 1.3.37-3, apache1-base
222 %webapp_unregister apache %{_webapp}
224 %triggerin web -- apache < 2.2.0, apache-base
225 %webapp_register httpd %{_webapp}
227 %triggerun web -- apache < 2.2.0, apache-base
228 %webapp_unregister httpd %{_webapp}
230 %triggerin web -- lighttpd
231 %webapp_register lighttpd %{_webapp}
233 %triggerun web -- lighttpd
234 %webapp_unregister lighttpd %{_webapp}
237 %defattr(644,root,root,755)
238 %doc CREDITS README ChangeLog
239 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
240 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
241 %{_examplesdir}/%{name}-%{version}
244 %defattr(644,root,root,755)
245 %dir %attr(750,root,http) %{_sysconfdir}
246 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
247 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
248 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
249 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php