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://pecl.php.net/get/memcache-%{version}.tgz
18 # Source0-md5: 0b11dcaa218872b7645d2c3425ce7fe8
19 Source1: %{modname}.ini
20 Source2: %{modname}-apache.conf
21 Source3: %{modname}-lighttpd.conf
23 Patch0: %{modname}-webapp.patch
25 URL: https://pecl.php.net/package/memcache
26 BuildRequires: %{php_name}-devel >= 3:7.0.0
27 BuildRequires: %{php_name}-pcre
28 BuildRequires: %{php_name}-session
29 BuildRequires: %{php_name}-simplexml
30 BuildRequires: %{php_name}-spl
31 BuildRequires: %{php_name}-xml
32 BuildRequires: php-packagexml2cl
33 BuildRequires: rpm-php-pearprov >= 4.4.2-11
34 BuildRequires: rpmbuild(macros) >= 1.650
36 BuildRequires: %{php_name}-cli
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
97 cat <<'EOF' > run-tests.sh
99 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
100 exec %{__make} test \
101 PHP_EXECUTABLE=%{__php} \
102 %if "%php_major_version.%php_minor_version" >= "7.4"
103 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="simplexml session" \
105 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl simplexml session" \
107 RUN_TESTS_SETTINGS="-q $*"
109 chmod +x run-tests.sh
119 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
121 test -f "$t" || die "Missing $t"
132 memcache->addServer() [tests/019.phpt]
133 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
134 memcache->getExtendedStats() [tests/022.phpt]
135 memcache_get_extended_stats() [tests/022a.phpt]
136 memcache->delete() with load balancing [tests/023.phpt]
137 memcache->increment() with load balancing [tests/025.phpt]
138 memcache->delete() with load balancing [tests/026.phpt]
139 memcache->addServer() adding server in failed mode [tests/031.phpt]
140 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
141 memcache::connect() with unix domain socket [tests/035.phpt]
142 ini_set('session.save_handler') [tests/036.phpt]
143 ini_set('session.save_path') [tests/036b.phpt]
144 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
145 memcache->delete() with multiple keys [tests/041.phpt]
146 memcache->set() with multiple values [tests/042.phpt]
147 ini_set('memcache.redundancy') [tests/043.phpt]
148 ini_set('memcache.session_redundancy') [tests/044.phpt]
149 hash strategies and functions [tests/046.phpt]
150 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
151 memcache multi host save path function [tests/bug73539.phpt]
152 session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
156 packagexml2cl package.xml > ChangeLog
162 # simple module load test
164 -d extension_dir=modules \
165 %if "%php_major_version.%php_minor_version" >= "7.4"
166 -d extension=%{php_extensiondir}/simplexml.so \
167 -d extension=%{php_extensiondir}/session.so \
169 -d extension=%{php_extensiondir}/pcre.so \
170 -d extension=%{php_extensiondir}/spl.so \
171 -d extension=%{php_extensiondir}/simplexml.so \
172 -d extension=%{php_extensiondir}/session.so \
174 -d extension=%{modname}.so \
176 grep %{modname} modules.log
179 # Launch the Memcached service and stop it on exit
180 domainsocket=$PWD/memcached.sock
181 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
182 %{_sbindir}/memcached -s $domainsocket -d -P $PWD/memcached-udp.pid
183 trap 'kill $(cat memcached.pid memcached-udp.pid)' EXIT INT
185 ./run-tests.sh --show-diff
189 rm -rf $RPM_BUILD_ROOT
190 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
191 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
192 # we use "session_" prefix in inifile to get loader *after* session extension
193 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
194 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
196 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
197 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
198 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
199 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
200 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
201 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
204 rm -rf $RPM_BUILD_ROOT
207 %php_webserver_restart
210 if [ "$1" = 0 ]; then
211 %php_webserver_restart
214 %triggerpostun -- %{name} < 3.0.4-2
215 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
216 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
217 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
218 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
219 %php_webserver_restart
222 %triggerin web -- apache1 < 1.3.37-3, apache1-base
223 %webapp_register apache %{_webapp}
225 %triggerun web -- apache1 < 1.3.37-3, apache1-base
226 %webapp_unregister apache %{_webapp}
228 %triggerin web -- apache < 2.2.0, apache-base
229 %webapp_register httpd %{_webapp}
231 %triggerun web -- apache < 2.2.0, apache-base
232 %webapp_unregister httpd %{_webapp}
234 %triggerin web -- lighttpd
235 %webapp_register lighttpd %{_webapp}
237 %triggerun web -- lighttpd
238 %webapp_unregister lighttpd %{_webapp}
241 %defattr(644,root,root,755)
242 %doc CREDITS README ChangeLog
243 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
244 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
245 %{_examplesdir}/%{name}-%{version}
248 %defattr(644,root,root,755)
249 %dir %attr(750,root,http) %{_sysconfdir}
250 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
251 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
252 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
253 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php