3 %bcond_without tests # build without tests
4 %bcond_without web # make web package
6 # build "web" with 7.4 build
7 %if 0%{?_pld_builder:1} && "%{?php_suffix}" != "74"
11 %define php_name php%{?php_suffix}
12 %define modname memcache
13 %define php_min_version 5.0.0
14 %define commit e702b5f91
15 Summary: %{modname} - a memcached extension
16 Summary(pl.UTF-8): %{modname} - rozszerzenie memcached
17 Name: %{php_name}-pecl-%{modname}
21 Group: Development/Languages/PHP
22 Source0: https://pecl.php.net/get/memcache-%{version}.tgz
23 # Source0-md5: ff34dc5ae1fa5b90b5bbeef56d302546
24 Source1: %{modname}.ini
25 Source2: %{modname}-apache.conf
26 Source3: %{modname}-lighttpd.conf
28 Patch0: %{modname}-webapp.patch
30 URL: https://pecl.php.net/package/memcache
31 BuildRequires: %{php_name}-devel >= 3:7.0.0
32 BuildRequires: %{php_name}-pcre
33 BuildRequires: %{php_name}-session
34 BuildRequires: %{php_name}-simplexml
35 BuildRequires: %{php_name}-spl
36 BuildRequires: %{php_name}-xml
37 BuildRequires: php-packagexml2cl
38 BuildRequires: rpm-php-pearprov >= 4.4.2-11
39 BuildRequires: rpmbuild(macros) >= 1.650
41 BuildRequires: %{php_name}-cli
42 BuildRequires: %{php_name}-pcntl
43 BuildRequires: memcached
45 %{?requires_php_extension}
46 Requires: %{php_name}-session
47 Requires: %{php_name}-zlib
49 Provides: php(memcache) = %{version}
50 Obsoletes: php-pecl-memcache < 3.0.8-5
51 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
53 %define _webapps /etc/webapps
54 %define _webapp %{modname}
55 %define _sysconfdir %{_webapps}/%{_webapp}
56 %define _appdir %{_datadir}/%{_webapp}
59 %define _noautopear pear
61 # put it together for rpmbuild
62 %define _noautoreq %{?_noautophp} %{?_noautopear}
65 Memcached is a caching daemon designed especially for dynamic web
66 applications to decrease database load by storing objects in memory.
68 This extension allows you to work with memcached through handy OO and
69 procedural interfaces.
71 %description -l pl.UTF-8
72 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
73 daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
74 przez przechowywanie w pamięci obiektów.
76 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
77 zorientowanego obiektowo (oraz przez procedury) interfejsu.
79 %package -n php-pecl-memcache-web
80 Summary: Web interface for memcache
82 # does not require extension itself
83 Requires: php(core) >= %{php_min_version}
88 Requires: webserver(php) >= 5.0
89 Obsoletes: php70-pecl-memcache-web < 4.0.5.1-2
90 Obsoletes: php71-pecl-memcache-web < 4.0.5.1-2
91 Obsoletes: php72-pecl-memcache-web < 4.0.5.1-2
92 Obsoletes: php73-pecl-memcache-web < 4.0.5.1-2
93 Obsoletes: php74-pecl-memcache-web < 4.0.5.1-2
96 %description -n php-pecl-memcache-web
97 Via this web interface script you can manage and view statistics of
106 cat <<'EOF' > run-tests.sh
108 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
109 exec %{__make} test \
110 PHP_EXECUTABLE=%{__php} \
111 %if "%php_major_version.%php_minor_version" >= "7.4"
112 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="simplexml session" \
114 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl simplexml session" \
116 RUN_TESTS_SETTINGS="-q $*"
118 chmod +x run-tests.sh
128 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
130 test -f "$t" || die "Missing $t"
141 memcache->addServer() [tests/019.phpt]
142 memcache->addServer() with microsecond timeout [tests/056.phpt]
143 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
144 memcache->getExtendedStats() [tests/022.phpt]
145 memcache_get_extended_stats() [tests/022a.phpt]
146 memcache->delete() with load balancing [tests/023.phpt]
147 memcache->increment() with load balancing [tests/025.phpt]
148 memcache->delete() with load balancing [tests/026.phpt]
149 memcache->addServer() adding server in failed mode [tests/031.phpt]
150 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
151 memcache::connect() with unix domain socket [tests/035.phpt]
152 ini_set('session.save_handler') [tests/036.phpt]
153 ini_set('session.save_path') [tests/036b.phpt]
154 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
155 memcache->delete() with multiple keys [tests/041.phpt]
156 memcache->set() with multiple values [tests/042.phpt]
157 ini_set('memcache.redundancy') [tests/043.phpt]
158 ini_set('memcache.session_redundancy') [tests/044.phpt]
159 hash strategies and functions [tests/046.phpt]
160 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
161 memcache multi host save path function [tests/bug73539.phpt]
162 session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
166 packagexml2cl package.xml > ChangeLog
172 # simple module load test
173 %{__php} -n -q -d display_errors=off \
174 -d extension_dir=modules \
175 %if "%php_major_version.%php_minor_version" < "7.4"
176 -d extension=%{php_extensiondir}/pcre.so \
177 -d extension=%{php_extensiondir}/spl.so \
179 -d extension=%{php_extensiondir}/simplexml.so \
180 -d extension=%{php_extensiondir}/session.so \
181 -d extension=%{modname}.so \
183 grep %{modname} modules.log
186 # Launch the Memcached service and stop it on exit
187 domainsocket=$PWD/memcached.sock
188 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
189 %{_sbindir}/memcached -s $domainsocket -d -P $PWD/memcached-udp.pid
190 trap 'kill $(cat memcached.pid memcached-udp.pid)' EXIT INT
192 ./run-tests.sh --show-diff
196 rm -rf $RPM_BUILD_ROOT
197 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
198 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
199 # we use "session_" prefix in inifile to get loader *after* session extension
200 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
201 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
204 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
205 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
206 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
207 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
208 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
209 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
213 rm -rf $RPM_BUILD_ROOT
216 %php_webserver_restart
219 if [ "$1" = 0 ]; then
220 %php_webserver_restart
223 %triggerpostun -- %{name} < 3.0.4-2
224 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
225 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
226 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
227 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
228 %php_webserver_restart
231 %triggerin -n php-pecl-memcache-web -- apache1 < 1.3.37-3, apache1-base
232 %webapp_register apache %{_webapp}
234 %triggerun -n php-pecl-memcache-web -- apache1 < 1.3.37-3, apache1-base
235 %webapp_unregister apache %{_webapp}
237 %triggerin -n php-pecl-memcache-web -- apache < 2.2.0, apache-base
238 %webapp_register httpd %{_webapp}
240 %triggerun -n php-pecl-memcache-web -- apache < 2.2.0, apache-base
241 %webapp_unregister httpd %{_webapp}
243 %triggerin -n php-pecl-memcache-web -- lighttpd
244 %webapp_register lighttpd %{_webapp}
246 %triggerun -n php-pecl-memcache-web -- lighttpd
247 %webapp_unregister lighttpd %{_webapp}
250 %defattr(644,root,root,755)
251 %doc CREDITS README ChangeLog
252 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
253 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
254 %{_examplesdir}/%{name}-%{version}
257 %files -n php-pecl-memcache-web
258 %defattr(644,root,root,755)
259 %dir %attr(750,root,http) %{_sysconfdir}
260 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
261 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
262 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
263 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php