]> git.pld-linux.org Git - packages/php-pecl-memcache.git/blame_incremental - php-pecl-memcache.spec
Add memcache with udp listen for tests
[packages/php-pecl-memcache.git] / php-pecl-memcache.spec
... / ...
CommitLineData
1#
2# Conditional build:
3%bcond_without tests # build without tests
4
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
10Summary: %{modname} - a memcached extension
11Summary(pl.UTF-8): %{modname} - rozszerzenie memcached
12Name: %{php_name}-pecl-%{modname}
13Version: 4.0.4
14Release: 1
15License: PHP 3.01
16Group: Development/Languages/PHP
17Source0: https://github.com/websupport-sk/pecl-memcache/archive/%{version}/%{modname}-%{version}.tar.gz
18# Source0-md5: 612c575eccc18d98484b72c0cff6907a
19Source1: %{modname}.ini
20Source2: %{modname}-apache.conf
21Source3: %{modname}-lighttpd.conf
22Source4: config.php
23Patch0: %{modname}-webapp.patch
24Patch1: tests.patch
25URL: https://github.com/websupport-sk/pecl-memcache/
26BuildRequires: %{php_name}-devel >= 3:7.0.0
27BuildRequires: %{php_name}-pcre
28BuildRequires: %{php_name}-session
29BuildRequires: %{php_name}-simplexml
30BuildRequires: %{php_name}-spl
31BuildRequires: %{php_name}-xml
32BuildRequires: php-packagexml2cl
33BuildRequires: rpm-php-pearprov >= 4.4.2-11
34BuildRequires: rpmbuild(macros) >= 1.650
35%if %{with tests}
36BuildRequires: %{php_name}-cli
37BuildRequires: memcached
38%endif
39%{?requires_php_extension}
40Requires: %{php_name}-session
41Requires: %{php_name}-zlib
42Suggests: memcached
43Provides: php(memcache) = %{version}
44Obsoletes: php-pecl-memcache < 3.0.8-5
45BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
46
47%define _webapps /etc/webapps
48%define _webapp %{modname}
49%define _sysconfdir %{_webapps}/%{_webapp}
50%define _appdir %{_datadir}/%{_webapp}
51
52# bad depsolver
53%define _noautopear pear
54
55# put it together for rpmbuild
56%define _noautoreq %{?_noautophp} %{?_noautopear}
57
58%description
59Memcached is a caching daemon designed especially for dynamic web
60applications to decrease database load by storing objects in memory.
61
62This extension allows you to work with memcached through handy OO and
63procedural interfaces.
64
65%description -l pl.UTF-8
66Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
67daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
68przez przechowywanie w pamięci obiektów.
69
70To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
71zorientowanego obiektowo (oraz przez procedury) interfejsu.
72
73%package web
74Summary: Web interface for memcache
75Group: Libraries
76# does not require extension itself
77Requires: php(core) >= %{php_min_version}
78Requires: php(date)
79Requires: php(gd)
80Requires: php(pcre)
81Requires: webapps
82Requires: webserver(php) >= 5.0
83%if "%{_rpmversion}" >= "5"
84BuildArch: noarch
85%endif
86
87%description web
88Via this web interface script you can manage and view statistics of
89memcache.
90
91%prep
92%setup -qc
93mv pecl-%{modname}-*/{.??*,*} .
94%patch0 -p1
95%patch1 -p1
96
97cat <<'EOF' > run-tests.sh
98#!/bin/sh
99export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
100exec %{__make} test \
101 PHP_EXECUTABLE=%{__php} \
102%if "%php_major_version.%php_minor_version" >= "7.4"
103 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="simplexml session" \
104%else
105 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl simplexml session" \
106%endif
107 RUN_TESTS_SETTINGS="-q $*"
108EOF
109chmod +x run-tests.sh
110
111# skip failed tests
112xfail() {
113 set +x
114 while read s; do
115 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
116
117 test -f "$t"
118 echo >&2 "XFAIL: $s"
119 cat >> $t <<-EOF
120
121 --XFAIL--
122 Skip
123 EOF
124 done
125}
126
127xfail <<'EOF'
128memcache->addServer() [tests/019.phpt]
129memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
130memcache->getExtendedStats() [tests/022.phpt]
131memcache_get_extended_stats() [tests/022a.phpt]
132memcache->delete() with load balancing [tests/023.phpt]
133memcache->increment() with load balancing [tests/025.phpt]
134memcache->delete() with load balancing [tests/026.phpt]
135memcache->addServer() adding server in failed mode [tests/031.phpt]
136memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
137memcache::connect() with unix domain socket [tests/035.phpt]
138ini_set('session.save_handler') [tests/036.phpt]
139ini_set('session.save_path') [tests/036b.phpt]
140memcache->increment()/decrement() with multiple keys [tests/040.phpt]
141memcache->delete() with multiple keys [tests/041.phpt]
142memcache->set() with multiple values [tests/042.phpt]
143ini_set('memcache.redundancy') [tests/043.phpt]
144ini_set('memcache.session_redundancy') [tests/044.phpt]
145ini_set('memcache.session_redundancy') [tests/044b.phpt]
146hash strategies and functions [tests/046.phpt]
147ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
148memcache multi host save path function [tests/bug73539.phpt]
149session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
150EOF
151
152%build
153packagexml2cl package.xml > ChangeLog
154phpize
155%configure \
156 --with-zlib-dir=/usr
157%{__make}
158
159# simple module load test
160%{__php} -n -q \
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 \
165%else
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 \
170%endif
171 -d extension=%{modname}.so \
172 -m > modules.log
173grep %{modname} modules.log
174
175%if %{with tests}
176# Launch the Memcached service and stop it on exit
177domainsocket=$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
180trap 'kill $(cat memcached.pid memcached-udp.pid)' EXIT INT
181
182./run-tests.sh --show-diff
183%endif
184
185%install
186rm -rf $RPM_BUILD_ROOT
187install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
188install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
189# we use "session_" prefix in inifile to get loader *after* session extension
190cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
191cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
192
193install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
194cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
195cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
196cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
197cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
198cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
199
200%clean
201rm -rf $RPM_BUILD_ROOT
202
203%post
204%php_webserver_restart
205
206%postun
207if [ "$1" = 0 ]; then
208 %php_webserver_restart
209fi
210
211%triggerpostun -- %{name} < 3.0.4-2
212if [ -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
217fi
218
219%triggerin web -- apache1 < 1.3.37-3, apache1-base
220%webapp_register apache %{_webapp}
221
222%triggerun web -- apache1 < 1.3.37-3, apache1-base
223%webapp_unregister apache %{_webapp}
224
225%triggerin web -- apache < 2.2.0, apache-base
226%webapp_register httpd %{_webapp}
227
228%triggerun web -- apache < 2.2.0, apache-base
229%webapp_unregister httpd %{_webapp}
230
231%triggerin web -- lighttpd
232%webapp_register lighttpd %{_webapp}
233
234%triggerun web -- lighttpd
235%webapp_unregister lighttpd %{_webapp}
236
237%files
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}
243
244%files web
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
251%{_appdir}
This page took 0.057657 seconds and 4 git commands to generate.