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: 612c575eccc18d98484b72c0cff6907a
19 Source1: %{modname}.ini
20 Source2: %{modname}-apache.conf
21 Source3: %{modname}-lighttpd.conf
23 Patch0: %{modname}-webapp.patch
25 URL: https://github.com/websupport-sk/pecl-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
93 mv pecl-%{modname}-*/{.??*,*} .
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
115 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
128 memcache->addServer() [tests/019.phpt]
129 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
130 memcache->getExtendedStats() [tests/022.phpt]
131 memcache_get_extended_stats() [tests/022a.phpt]
132 memcache->delete() with load balancing [tests/023.phpt]
133 memcache->increment() with load balancing [tests/025.phpt]
134 memcache->delete() with load balancing [tests/026.phpt]
135 memcache->addServer() adding server in failed mode [tests/031.phpt]
136 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
137 memcache::connect() with unix domain socket [tests/035.phpt]
138 ini_set('session.save_handler') [tests/036.phpt]
139 ini_set('session.save_path') [tests/036b.phpt]
140 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
141 memcache->delete() with multiple keys [tests/041.phpt]
142 memcache->set() with multiple values [tests/042.phpt]
143 ini_set('memcache.redundancy') [tests/043.phpt]
144 ini_set('memcache.session_redundancy') [tests/044.phpt]
145 ini_set('memcache.session_redundancy') [tests/044b.phpt]
146 hash strategies and functions [tests/046.phpt]
147 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
148 memcache multi host save path function [tests/bug73539.phpt]
149 session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
153 packagexml2cl package.xml > ChangeLog
159 # simple module load test
161 -d extension_dir=modules \
162 %if "%php_major_version.%php_minor_version" >= "7.4"
163 -d extension=%{php_extensiondir}/simplexml.so \
164 -d extension=%{php_extensiondir}/session.so \
166 -d extension=%{php_extensiondir}/pcre.so \
167 -d extension=%{php_extensiondir}/spl.so \
168 -d extension=%{php_extensiondir}/simplexml.so \
169 -d extension=%{php_extensiondir}/session.so \
171 -d extension=%{modname}.so \
173 grep %{modname} modules.log
176 # Launch the Memcached service and stop it on exit
177 domainsocket=$PWD/memcached.sock
178 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
179 %{_sbindir}/memcached -s $domainsocket -d -P $PWD/memcached-udp.pid
180 trap 'kill $(cat memcached.pid memcached-udp.pid)' EXIT INT
182 ./run-tests.sh --show-diff
186 rm -rf $RPM_BUILD_ROOT
187 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
188 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
189 # we use "session_" prefix in inifile to get loader *after* session extension
190 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
191 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
193 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
194 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
195 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
196 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
197 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
198 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
201 rm -rf $RPM_BUILD_ROOT
204 %php_webserver_restart
207 if [ "$1" = 0 ]; then
208 %php_webserver_restart
211 %triggerpostun -- %{name} < 3.0.4-2
212 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
213 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
214 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
215 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
216 %php_webserver_restart
219 %triggerin web -- apache1 < 1.3.37-3, apache1-base
220 %webapp_register apache %{_webapp}
222 %triggerun web -- apache1 < 1.3.37-3, apache1-base
223 %webapp_unregister apache %{_webapp}
225 %triggerin web -- apache < 2.2.0, apache-base
226 %webapp_register httpd %{_webapp}
228 %triggerun web -- apache < 2.2.0, apache-base
229 %webapp_unregister httpd %{_webapp}
231 %triggerin web -- lighttpd
232 %webapp_register lighttpd %{_webapp}
234 %triggerun web -- lighttpd
235 %webapp_unregister lighttpd %{_webapp}
238 %defattr(644,root,root,755)
239 %doc CREDITS README ChangeLog
240 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
241 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
242 %{_examplesdir}/%{name}-%{version}
245 %defattr(644,root,root,755)
246 %dir %attr(750,root,http) %{_sysconfdir}
247 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
248 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
249 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
250 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php