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: memcached
44 %{?requires_php_extension}
45 Requires: %{php_name}-session
46 Requires: %{php_name}-zlib
48 Provides: php(memcache) = %{version}
49 Obsoletes: php-pecl-memcache < 3.0.8-5
50 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
52 %define _webapps /etc/webapps
53 %define _webapp %{modname}
54 %define _sysconfdir %{_webapps}/%{_webapp}
55 %define _appdir %{_datadir}/%{_webapp}
58 %define _noautopear pear
60 # put it together for rpmbuild
61 %define _noautoreq %{?_noautophp} %{?_noautopear}
64 Memcached is a caching daemon designed especially for dynamic web
65 applications to decrease database load by storing objects in memory.
67 This extension allows you to work with memcached through handy OO and
68 procedural interfaces.
70 %description -l pl.UTF-8
71 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
72 daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
73 przez przechowywanie w pamięci obiektów.
75 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
76 zorientowanego obiektowo (oraz przez procedury) interfejsu.
78 %package -n php-pecl-memcache-web
79 Summary: Web interface for memcache
81 # does not require extension itself
82 Requires: php(core) >= %{php_min_version}
87 Requires: webserver(php) >= 5.0
88 Obsoletes: php70-pecl-memcache-web < 4.0.5.1-2
89 Obsoletes: php71-pecl-memcache-web < 4.0.5.1-2
90 Obsoletes: php72-pecl-memcache-web < 4.0.5.1-2
91 Obsoletes: php73-pecl-memcache-web < 4.0.5.1-2
92 Obsoletes: php74-pecl-memcache-web < 4.0.5.1-2
95 %description -n php-pecl-memcache-web
96 Via this web interface script you can manage and view statistics of
105 cat <<'EOF' > run-tests.sh
107 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
108 exec %{__make} test \
109 PHP_EXECUTABLE=%{__php} \
110 %if "%php_major_version.%php_minor_version" >= "7.4"
111 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="simplexml session" \
113 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl simplexml session" \
115 RUN_TESTS_SETTINGS="-q $*"
117 chmod +x run-tests.sh
127 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
129 test -f "$t" || die "Missing $t"
140 memcache->addServer() [tests/019.phpt]
141 memcache->addServer() with microsecond timeout [tests/056.phpt]
142 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
143 memcache->getExtendedStats() [tests/022.phpt]
144 memcache_get_extended_stats() [tests/022a.phpt]
145 memcache->delete() with load balancing [tests/023.phpt]
146 memcache->increment() with load balancing [tests/025.phpt]
147 memcache->delete() with load balancing [tests/026.phpt]
148 memcache->addServer() adding server in failed mode [tests/031.phpt]
149 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
150 memcache::connect() with unix domain socket [tests/035.phpt]
151 ini_set('session.save_handler') [tests/036.phpt]
152 ini_set('session.save_path') [tests/036b.phpt]
153 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
154 memcache->delete() with multiple keys [tests/041.phpt]
155 memcache->set() with multiple values [tests/042.phpt]
156 ini_set('memcache.redundancy') [tests/043.phpt]
157 ini_set('memcache.session_redundancy') [tests/044.phpt]
158 hash strategies and functions [tests/046.phpt]
159 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
160 memcache multi host save path function [tests/bug73539.phpt]
161 session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
165 packagexml2cl package.xml > ChangeLog
171 # simple module load test
172 %{__php} -n -q -d display_errors=off \
173 -d extension_dir=modules \
174 %if "%php_major_version.%php_minor_version" < "7.4"
175 -d extension=%{php_extensiondir}/pcre.so \
176 -d extension=%{php_extensiondir}/spl.so \
178 -d extension=%{php_extensiondir}/simplexml.so \
179 -d extension=%{php_extensiondir}/session.so \
180 -d extension=%{modname}.so \
182 grep %{modname} modules.log
185 # Launch the Memcached service and stop it on exit
186 domainsocket=$PWD/memcached.sock
187 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
188 %{_sbindir}/memcached -s $domainsocket -d -P $PWD/memcached-udp.pid
189 trap 'kill $(cat memcached.pid memcached-udp.pid)' EXIT INT
191 ./run-tests.sh --show-diff
195 rm -rf $RPM_BUILD_ROOT
196 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
197 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
198 # we use "session_" prefix in inifile to get loader *after* session extension
199 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
200 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
203 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
204 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
205 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
206 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
207 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
208 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
212 rm -rf $RPM_BUILD_ROOT
215 %php_webserver_restart
218 if [ "$1" = 0 ]; then
219 %php_webserver_restart
222 %triggerpostun -- %{name} < 3.0.4-2
223 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
224 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
225 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
226 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
227 %php_webserver_restart
230 %triggerin -n php-pecl-memcache-web -- apache1 < 1.3.37-3, apache1-base
231 %webapp_register apache %{_webapp}
233 %triggerun -n php-pecl-memcache-web -- apache1 < 1.3.37-3, apache1-base
234 %webapp_unregister apache %{_webapp}
236 %triggerin -n php-pecl-memcache-web -- apache < 2.2.0, apache-base
237 %webapp_register httpd %{_webapp}
239 %triggerun -n php-pecl-memcache-web -- apache < 2.2.0, apache-base
240 %webapp_unregister httpd %{_webapp}
242 %triggerin -n php-pecl-memcache-web -- lighttpd
243 %webapp_register lighttpd %{_webapp}
245 %triggerun -n php-pecl-memcache-web -- lighttpd
246 %webapp_unregister lighttpd %{_webapp}
249 %defattr(644,root,root,755)
250 %doc CREDITS README ChangeLog
251 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
252 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
253 %{_examplesdir}/%{name}-%{version}
256 %files -n php-pecl-memcache-web
257 %defattr(644,root,root,755)
258 %dir %attr(750,root,http) %{_sysconfdir}
259 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
260 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
261 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
262 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php