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