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
24 URL: https://github.com/websupport-sk/pecl-memcache/
25 BuildRequires: %{php_name}-devel >= 3:7.0.0
26 BuildRequires: %{php_name}-pcre
27 BuildRequires: %{php_name}-session
28 BuildRequires: %{php_name}-simplexml
29 BuildRequires: %{php_name}-spl
30 BuildRequires: %{php_name}-xml
31 BuildRequires: php-packagexml2cl
32 BuildRequires: rpm-php-pearprov >= 4.4.2-11
33 BuildRequires: rpmbuild(macros) >= 1.650
35 BuildRequires: %{php_name}-cli
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}-*/{.??*,*} .
95 cat <<'EOF' > run-tests.sh
97 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
99 PHP_EXECUTABLE=%{__php} \
100 %if "%php_major_version.%php_minor_version" >= "7.4"
101 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="simplexml session" \
103 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl simplexml session" \
105 RUN_TESTS_SETTINGS="-q $*"
107 chmod +x run-tests.sh
113 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
126 memcache->addServer() [tests/019.phpt]
127 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
128 memcache->getExtendedStats() [tests/022.phpt]
129 memcache_get_extended_stats() [tests/022a.phpt]
130 memcache->delete() with load balancing [tests/023.phpt]
131 memcache->increment() with load balancing [tests/025.phpt]
132 memcache->delete() with load balancing [tests/026.phpt]
133 memcache->addServer() adding server in failed mode [tests/031.phpt]
134 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
135 memcache::connect() with unix domain socket [tests/035.phpt]
136 ini_set('session.save_handler') [tests/036.phpt]
137 ini_set('session.save_path') [tests/036b.phpt]
138 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
139 memcache->delete() with multiple keys [tests/041.phpt]
140 memcache->set() with multiple values [tests/042.phpt]
141 ini_set('memcache.redundancy') [tests/043.phpt]
142 ini_set('memcache.session_redundancy') [tests/044.phpt]
143 ini_set('memcache.session_redundancy') [tests/044b.phpt]
144 hash strategies and functions [tests/046.phpt]
145 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
146 memcache multi host save path function [tests/bug73539.phpt]
147 session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
151 packagexml2cl package.xml > ChangeLog
157 # simple module load test
159 -d extension_dir=modules \
160 %if "%php_major_version.%php_minor_version" >= "7.4"
161 -d extension=%{php_extensiondir}/simplexml.so \
162 -d extension=%{php_extensiondir}/session.so \
164 -d extension=%{php_extensiondir}/pcre.so \
165 -d extension=%{php_extensiondir}/spl.so \
166 -d extension=%{php_extensiondir}/simplexml.so \
167 -d extension=%{php_extensiondir}/session.so \
169 -d extension=%{modname}.so \
171 grep %{modname} modules.log
174 # Launch the Memcached service and stop it on exit
175 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
176 trap 'kill $(cat memcached.pid)' EXIT INT
178 ./run-tests.sh --show-diff
182 rm -rf $RPM_BUILD_ROOT
183 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
184 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
185 # we use "session_" prefix in inifile to get loader *after* session extension
186 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
187 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
189 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
190 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
191 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
192 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
193 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
194 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
197 rm -rf $RPM_BUILD_ROOT
200 %php_webserver_restart
203 if [ "$1" = 0 ]; then
204 %php_webserver_restart
207 %triggerpostun -- %{name} < 3.0.4-2
208 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
209 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
210 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
211 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
212 %php_webserver_restart
215 %triggerin web -- apache1 < 1.3.37-3, apache1-base
216 %webapp_register apache %{_webapp}
218 %triggerun web -- apache1 < 1.3.37-3, apache1-base
219 %webapp_unregister apache %{_webapp}
221 %triggerin web -- apache < 2.2.0, apache-base
222 %webapp_register httpd %{_webapp}
224 %triggerun web -- apache < 2.2.0, apache-base
225 %webapp_unregister httpd %{_webapp}
227 %triggerin web -- lighttpd
228 %webapp_register lighttpd %{_webapp}
230 %triggerun web -- lighttpd
231 %webapp_unregister lighttpd %{_webapp}
234 %defattr(644,root,root,755)
235 %doc CREDITS README ChangeLog
236 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
237 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
238 %{_examplesdir}/%{name}-%{version}
241 %defattr(644,root,root,755)
242 %dir %attr(750,root,http) %{_sysconfdir}
243 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
244 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
245 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
246 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php