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}-simplexml
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}-*/{.??*,*} .
99 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
112 memcache->addServer() [tests/019.phpt]
113 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
114 memcache->getExtendedStats() [tests/022.phpt]
115 memcache_get_extended_stats() [tests/022a.phpt]
116 memcache->delete() with load balancing [tests/023.phpt]
117 memcache->increment() with load balancing [tests/025.phpt]
118 memcache->delete() with load balancing [tests/026.phpt]
119 memcache->addServer() adding server in failed mode [tests/031.phpt]
120 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
121 memcache::connect() with unix domain socket [tests/035.phpt]
122 ini_set('session.save_handler') [tests/036.phpt]
123 ini_set('session.save_path') [tests/036b.phpt]
124 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
125 memcache->delete() with multiple keys [tests/041.phpt]
126 memcache->set() with multiple values [tests/042.phpt]
127 ini_set('memcache.redundancy') [tests/043.phpt]
128 ini_set('memcache.session_redundancy') [tests/044.phpt]
129 ini_set('memcache.session_redundancy') [tests/044b.phpt]
130 hash strategies and functions [tests/046.phpt]
131 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
132 memcache multi host save path function [tests/bug73539.phpt]
133 session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
137 packagexml2cl package.xml > ChangeLog
144 # simple module load test
146 -d extension_dir=modules \
147 -d extension=%{php_extensiondir}/pcre.so \
148 -d extension=%{php_extensiondir}/simplexml.so \
149 -d extension=%{php_extensiondir}/spl.so \
150 -d extension=%{php_extensiondir}/session.so \
151 -d extension=%{modname}.so \
153 grep %{modname} modules.log
155 cat <<'EOF' > run-tests.sh
157 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
158 exec %{__make} test \
159 PHP_EXECUTABLE=%{__php} \
160 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre simplexml spl session" \
161 RUN_TESTS_SETTINGS="-q $*"
163 chmod +x run-tests.sh
165 # Launch the Memcached service and stop it on exit
166 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
167 trap 'kill $(cat memcached.pid)' EXIT INT
173 rm -rf $RPM_BUILD_ROOT
174 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
175 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
176 # we use "session_" prefix in inifile to get loader *after* session extension
177 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
178 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
180 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
181 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
182 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
183 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
184 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
185 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
188 rm -rf $RPM_BUILD_ROOT
191 %php_webserver_restart
194 if [ "$1" = 0 ]; then
195 %php_webserver_restart
198 %triggerpostun -- %{name} < 3.0.4-2
199 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
200 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
201 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
202 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
203 %php_webserver_restart
206 %triggerin web -- apache1 < 1.3.37-3, apache1-base
207 %webapp_register apache %{_webapp}
209 %triggerun web -- apache1 < 1.3.37-3, apache1-base
210 %webapp_unregister apache %{_webapp}
212 %triggerin web -- apache < 2.2.0, apache-base
213 %webapp_register httpd %{_webapp}
215 %triggerun web -- apache < 2.2.0, apache-base
216 %webapp_unregister httpd %{_webapp}
218 %triggerin web -- lighttpd
219 %webapp_register lighttpd %{_webapp}
221 %triggerun web -- lighttpd
222 %webapp_unregister lighttpd %{_webapp}
225 %defattr(644,root,root,755)
226 %doc CREDITS README ChangeLog
227 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
228 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
229 %{_examplesdir}/%{name}-%{version}
232 %defattr(644,root,root,755)
233 %dir %attr(750,root,http) %{_sysconfdir}
234 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
235 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
236 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
237 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php