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 %include /usr/lib/rpm/macros.php
9 Summary: %{modname} - a memcached extension
10 Summary(pl.UTF-8): %{modname} - rozszerzenie memcached
11 Name: %{php_name}-pecl-%{modname}
15 Group: Development/Languages/PHP
16 #Source0: http://pecl.php.net/get/%{modname}-%{version}.tgz
17 Source0: https://github.com/websupport-sk/pecl-memcache/archive/NON_BLOCKING_IO_php7.tar.gz
18 # Source0-md5: 7751d8191302a726449d7c6506b8783d
19 Source1: %{modname}.ini
20 Source2: %{modname}-apache.conf
21 Source3: %{modname}-lighttpd.conf
23 Patch0: %{modname}-webapp.patch
25 URL: http://pecl.php.net/package/memcache/
26 BuildRequires: %{php_name}-devel >= 3:5.0.0
27 BuildRequires: %{php_name}-xml
28 BuildRequires: php-packagexml2cl
29 BuildRequires: rpm-php-pearprov >= 4.4.2-11
30 BuildRequires: rpmbuild(macros) >= 1.650
32 BuildRequires: %{php_name}-cli
33 BuildRequires: %{php_name}-pcre
34 BuildRequires: %{php_name}-session
35 BuildRequires: %{php_name}-spl
36 BuildRequires: memcached
38 %{?requires_php_extension}
39 Requires: %{php_name}-session
40 Requires: %{php_name}-zlib
42 Provides: php(memcache) = %{version}
43 Obsoletes: php-pecl-memcache < 3.0.8-5
44 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
46 %define _webapps /etc/webapps
47 %define _webapp %{modname}
48 %define _sysconfdir %{_webapps}/%{_webapp}
49 %define _appdir %{_datadir}/%{_webapp}
52 %define _noautopear pear
54 # put it together for rpmbuild
55 %define _noautoreq %{?_noautophp} %{?_noautopear}
58 Memcached is a caching daemon designed especially for dynamic web
59 applications to decrease database load by storing objects in memory.
61 This extension allows you to work with memcached through handy OO and
62 procedural interfaces.
64 %description -l pl.UTF-8
65 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
66 daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
67 przez przechowywanie w pamięci obiektów.
69 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
70 zorientowanego obiektowo (oraz przez procedury) interfejsu.
73 Summary: Web interface for memcache
75 # does not require extension itself
76 Requires: php(core) >= %{php_min_version}
81 Requires: webserver(php) >= 5.0
82 %if "%{_rpmversion}" >= "5"
87 Via this web interface script you can manage and view statistics of
92 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]
139 packagexml2cl package.xml > ChangeLog
146 # simple module load test
148 -d extension_dir=modules \
149 -d extension=%{php_extensiondir}/pcre.so \
150 -d extension=%{php_extensiondir}/spl.so \
151 -d extension=%{php_extensiondir}/session.so \
152 -d extension=%{modname}.so \
154 grep %{modname} modules.log
156 cat <<'EOF' > run-tests.sh
158 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
159 exec %{__make} test \
160 PHP_EXECUTABLE=%{__php} \
161 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl session" \
162 RUN_TESTS_SETTINGS="-q $*"
164 chmod +x run-tests.sh
166 # Launch the Memcached service and stop it on exit
167 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
168 trap 'kill $(cat memcached.pid)' EXIT INT
174 rm -rf $RPM_BUILD_ROOT
175 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
176 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
177 # we use "session_" prefix in inifile to get loader *after* session extension
178 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
179 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
181 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
182 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
183 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
184 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
185 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
186 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
189 rm -rf $RPM_BUILD_ROOT
192 %php_webserver_restart
195 if [ "$1" = 0 ]; then
196 %php_webserver_restart
199 %triggerpostun -- %{name} < 3.0.4-2
200 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
201 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
202 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
203 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
204 %php_webserver_restart
207 %triggerin web -- apache1 < 1.3.37-3, apache1-base
208 %webapp_register apache %{_webapp}
210 %triggerun web -- apache1 < 1.3.37-3, apache1-base
211 %webapp_unregister apache %{_webapp}
213 %triggerin web -- apache < 2.2.0, apache-base
214 %webapp_register httpd %{_webapp}
216 %triggerun web -- apache < 2.2.0, apache-base
217 %webapp_unregister httpd %{_webapp}
219 %triggerin web -- lighttpd
220 %webapp_register lighttpd %{_webapp}
222 %triggerun web -- lighttpd
223 %webapp_unregister lighttpd %{_webapp}
226 %defattr(644,root,root,755)
227 %doc CREDITS README ChangeLog
228 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
229 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
230 %{_examplesdir}/%{name}-%{version}
233 %defattr(644,root,root,755)
234 %dir %attr(750,root,http) %{_sysconfdir}
235 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
236 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
237 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
238 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php