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: https://github.com/websupport-sk/pecl-memcache/archive/%{version}/%{modname}-%{version}.tar.gz
18 # Source0-md5: 21a001ef690a1397a8b62990254cc8c2
19 Source1: %{modname}.ini
20 Source2: %{modname}-apache.conf
21 Source3: %{modname}-lighttpd.conf
23 Patch0: %{modname}-webapp.patch
24 URL: https://github.com/websupport-sk/pecl-memcache/
25 BuildRequires: %{php_name}-devel >= 3:5.0.0
26 BuildRequires: %{php_name}-xml
27 BuildRequires: php-packagexml2cl
28 BuildRequires: rpm-php-pearprov >= 4.4.2-11
29 BuildRequires: rpmbuild(macros) >= 1.650
31 BuildRequires: %{php_name}-cli
32 BuildRequires: %{php_name}-pcre
33 BuildRequires: %{php_name}-session
34 BuildRequires: %{php_name}-spl
35 BuildRequires: memcached
37 %{?requires_php_extension}
38 Requires: %{php_name}-session
39 Requires: %{php_name}-zlib
41 Provides: php(memcache) = %{version}
42 Obsoletes: php-pecl-memcache < 3.0.8-5
43 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
45 %define _webapps /etc/webapps
46 %define _webapp %{modname}
47 %define _sysconfdir %{_webapps}/%{_webapp}
48 %define _appdir %{_datadir}/%{_webapp}
51 %define _noautopear pear
53 # put it together for rpmbuild
54 %define _noautoreq %{?_noautophp} %{?_noautopear}
57 Memcached is a caching daemon designed especially for dynamic web
58 applications to decrease database load by storing objects in memory.
60 This extension allows you to work with memcached through handy OO and
61 procedural interfaces.
63 %description -l pl.UTF-8
64 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
65 daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
66 przez przechowywanie w pamięci obiektów.
68 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
69 zorientowanego obiektowo (oraz przez procedury) interfejsu.
72 Summary: Web interface for memcache
74 # does not require extension itself
75 Requires: php(core) >= %{php_min_version}
80 Requires: webserver(php) >= 5.0
81 %if "%{_rpmversion}" >= "5"
86 Via this web interface script you can manage and view statistics of
91 mv pecl-%{modname}-*/{.??*,*} .
94 # locks up on carme, likely due udp very long timeout
103 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
116 memcache->addServer() [tests/019.phpt]
117 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
118 memcache->getExtendedStats() [tests/022.phpt]
119 memcache_get_extended_stats() [tests/022a.phpt]
120 memcache->delete() with load balancing [tests/023.phpt]
121 memcache->increment() with load balancing [tests/025.phpt]
122 memcache->delete() with load balancing [tests/026.phpt]
123 memcache->addServer() adding server in failed mode [tests/031.phpt]
124 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
125 memcache::connect() with unix domain socket [tests/035.phpt]
126 memcache->get() over UDP [tests/038.phpt]
127 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
128 ini_set('memcache.redundancy') [tests/043.phpt]
129 ini_set('memcache.session_redundancy') [tests/044.phpt]
130 hash strategies and functions [tests/046.phpt]
131 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
132 FLAKY: memcache->addServer() with microsecond timeout [tests/056.phpt]
133 ini_set('session.save_handler') [tests/036.phpt]
134 ini_set("memcache.allow_failover") [tests/029.phpt]
135 %if "%{php_major_version}.%{php_minor_version}" >= "7.1"
136 strange keys [tests/005.phpt]
138 memcache multi host save path function [tests/bug73539.phpt]
142 packagexml2cl package.xml > ChangeLog
149 # simple module load test
151 -d extension_dir=modules \
152 -d extension=%{php_extensiondir}/pcre.so \
153 -d extension=%{php_extensiondir}/spl.so \
154 -d extension=%{php_extensiondir}/session.so \
155 -d extension=%{modname}.so \
157 grep %{modname} modules.log
159 cat <<'EOF' > run-tests.sh
161 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
162 exec %{__make} test \
163 PHP_EXECUTABLE=%{__php} \
164 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl session" \
165 RUN_TESTS_SETTINGS="-q $*"
167 chmod +x run-tests.sh
169 # Launch the Memcached service and stop it on exit
170 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
171 trap 'kill $(cat memcached.pid)' EXIT INT
177 rm -rf $RPM_BUILD_ROOT
178 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
179 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
180 # we use "session_" prefix in inifile to get loader *after* session extension
181 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
182 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
184 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
185 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
186 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
187 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
188 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
189 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
192 rm -rf $RPM_BUILD_ROOT
195 %php_webserver_restart
198 if [ "$1" = 0 ]; then
199 %php_webserver_restart
202 %triggerpostun -- %{name} < 3.0.4-2
203 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
204 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
205 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
206 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
207 %php_webserver_restart
210 %triggerin web -- apache1 < 1.3.37-3, apache1-base
211 %webapp_register apache %{_webapp}
213 %triggerun web -- apache1 < 1.3.37-3, apache1-base
214 %webapp_unregister apache %{_webapp}
216 %triggerin web -- apache < 2.2.0, apache-base
217 %webapp_register httpd %{_webapp}
219 %triggerun web -- apache < 2.2.0, apache-base
220 %webapp_unregister httpd %{_webapp}
222 %triggerin web -- lighttpd
223 %webapp_register lighttpd %{_webapp}
225 %triggerun web -- lighttpd
226 %webapp_unregister lighttpd %{_webapp}
229 %defattr(644,root,root,755)
230 %doc CREDITS README ChangeLog
231 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
232 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
233 %{_examplesdir}/%{name}-%{version}
236 %defattr(644,root,root,755)
237 %dir %attr(750,root,http) %{_sysconfdir}
238 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
239 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
240 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
241 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php