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 URL: http://pecl.php.net/package/memcache/
29 BuildRequires: %{php_name}-devel >= 3:5.0.0
30 BuildRequires: %{php_name}-xml
31 BuildRequires: php-packagexml2cl
32 BuildRequires: rpm-php-pearprov >= 4.4.2-11
33 BuildRequires: rpmbuild(macros) >= 1.650
35 BuildRequires: %{php_name}-cli
36 BuildRequires: %{php_name}-pcre
37 BuildRequires: %{php_name}-session
38 BuildRequires: %{php_name}-spl
39 BuildRequires: memcached
41 %{?requires_php_extension}
42 Requires: %{php_name}-session
43 Requires: %{php_name}-zlib
45 Provides: php(memcache) = %{version}
46 Obsoletes: php-pecl-memcache < 3.0.8-5
47 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49 %define _webapps /etc/webapps
50 %define _webapp %{modname}
51 %define _sysconfdir %{_webapps}/%{_webapp}
52 %define _appdir %{_datadir}/%{_webapp}
55 %define _noautopear pear
57 # put it together for rpmbuild
58 %define _noautoreq %{?_noautophp} %{?_noautopear}
61 Memcached is a caching daemon designed especially for dynamic web
62 applications to decrease database load by storing objects in memory.
64 This extension allows you to work with memcached through handy OO and
65 procedural interfaces.
67 %description -l pl.UTF-8
68 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
69 daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
70 przez przechowywanie w pamięci obiektów.
72 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
73 zorientowanego obiektowo (oraz przez procedury) interfejsu.
76 Summary: Web interface for memcache
78 # does not require extension itself
79 Requires: php(core) >= %{php_min_version}
84 Requires: webserver(php) >= 5.0
85 %if "%{_rpmversion}" >= "5"
90 Via this web interface script you can manage and view statistics of
95 mv pecl-%{modname}-*/{.??*,*} .
99 # locks up on carme, likely due udp very long timeout
108 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
121 memcache->addServer() [tests/019.phpt]
122 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
123 memcache->getExtendedStats() [tests/022.phpt]
124 memcache_get_extended_stats() [tests/022a.phpt]
125 memcache->delete() with load balancing [tests/023.phpt]
126 memcache->increment() with load balancing [tests/025.phpt]
127 memcache->delete() with load balancing [tests/026.phpt]
128 memcache->addServer() adding server in failed mode [tests/031.phpt]
129 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
130 memcache::connect() with unix domain socket [tests/035.phpt]
131 memcache->get() over UDP [tests/038.phpt]
132 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
133 ini_set('memcache.redundancy') [tests/043.phpt]
134 ini_set('memcache.session_redundancy') [tests/044.phpt]
135 hash strategies and functions [tests/046.phpt]
136 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
137 FLAKY: memcache->addServer() with microsecond timeout [tests/056.phpt]
138 ini_set('session.save_handler') [tests/036.phpt]
139 ini_set("memcache.allow_failover") [tests/029.phpt]
140 %if "%{php_major_version}.%{php_minor_version}" >= "7.1"
141 strange keys [tests/005.phpt]
143 memcache multi host save path function [tests/bug73539.phpt]
147 packagexml2cl package.xml > ChangeLog
154 # simple module load test
156 -d extension_dir=modules \
157 -d extension=%{php_extensiondir}/pcre.so \
158 -d extension=%{php_extensiondir}/spl.so \
159 -d extension=%{php_extensiondir}/session.so \
160 -d extension=%{modname}.so \
162 grep %{modname} modules.log
164 cat <<'EOF' > run-tests.sh
166 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
167 exec %{__make} test \
168 PHP_EXECUTABLE=%{__php} \
169 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl session" \
170 RUN_TESTS_SETTINGS="-q $*"
172 chmod +x run-tests.sh
174 # Launch the Memcached service and stop it on exit
175 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
176 trap 'kill $(cat memcached.pid)' EXIT INT
182 rm -rf $RPM_BUILD_ROOT
183 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
184 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
185 # we use "session_" prefix in inifile to get loader *after* session extension
186 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
187 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
189 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
190 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
191 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
192 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
193 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
194 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
197 rm -rf $RPM_BUILD_ROOT
200 %php_webserver_restart
203 if [ "$1" = 0 ]; then
204 %php_webserver_restart
207 %triggerpostun -- %{name} < 3.0.4-2
208 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
209 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
210 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
211 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
212 %php_webserver_restart
215 %triggerin web -- apache1 < 1.3.37-3, apache1-base
216 %webapp_register apache %{_webapp}
218 %triggerun web -- apache1 < 1.3.37-3, apache1-base
219 %webapp_unregister apache %{_webapp}
221 %triggerin web -- apache < 2.2.0, apache-base
222 %webapp_register httpd %{_webapp}
224 %triggerun web -- apache < 2.2.0, apache-base
225 %webapp_unregister httpd %{_webapp}
227 %triggerin web -- lighttpd
228 %webapp_register lighttpd %{_webapp}
230 %triggerun web -- lighttpd
231 %webapp_unregister lighttpd %{_webapp}
234 %defattr(644,root,root,755)
235 %doc CREDITS README ChangeLog
236 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
237 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
238 %{_examplesdir}/%{name}-%{version}
241 %defattr(644,root,root,755)
242 %dir %attr(750,root,http) %{_sysconfdir}
243 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
244 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
245 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
246 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php