]> git.pld-linux.org Git - packages/php-pecl-memcache.git/blob - php-pecl-memcache.spec
[PATCH] Fix #23 Failed to read session data with 7.1/7.2
[packages/php-pecl-memcache.git] / php-pecl-memcache.spec
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
10 Summary:        %{modname} - a memcached extension
11 Summary(pl.UTF-8):      %{modname} - rozszerzenie memcached
12 Name:           %{php_name}-pecl-%{modname}
13 Version:        3.0.9
14 Release:        2
15 License:        PHP 3.01
16 Group:          Development/Languages/PHP
17 #Source0:       http://pecl.php.net/get/%{modname}-%{version}.tgz
18 # https://github.com/websupport-sk/pecl-memcache/commits/NON_BLOCKING_IO_php7
19 Source0:        https://github.com/websupport-sk/pecl-memcache/archive/%{commit}/%{modname}-%{version}-%{commit}.tar.gz
20 # Source0-md5:  945e6a30b3cac160abf9b6d103c5676b
21 Source1:        %{modname}.ini
22 Source2:        %{modname}-apache.conf
23 Source3:        %{modname}-lighttpd.conf
24 Source4:        config.php
25 Patch0:         %{modname}-webapp.patch
26 Patch1:         https://github.com/websupport-sk/pecl-memcache/pull/26.patch
27 # Patch1-md5:   7d963433154cd82caea94a7476e73697
28 URL:            http://pecl.php.net/package/memcache/
29 BuildRequires:  %{php_name}-devel >= 3:5.0.0
30 BuildRequires:  %{php_name}-xml
31 BuildRequires:  php-packagexml2cl
32 BuildRequires:  rpm-php-pearprov >= 4.4.2-11
33 BuildRequires:  rpmbuild(macros) >= 1.650
34 %if %{with tests}
35 BuildRequires:  %{php_name}-cli
36 BuildRequires:  %{php_name}-pcre
37 BuildRequires:  %{php_name}-session
38 BuildRequires:  %{php_name}-spl
39 BuildRequires:  memcached
40 %endif
41 %{?requires_php_extension}
42 Requires:       %{php_name}-session
43 Requires:       %{php_name}-zlib
44 Suggests:       memcached
45 Provides:       php(memcache) = %{version}
46 Obsoletes:      php-pecl-memcache < 3.0.8-5
47 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48
49 %define         _webapps        /etc/webapps
50 %define         _webapp         %{modname}
51 %define         _sysconfdir     %{_webapps}/%{_webapp}
52 %define         _appdir         %{_datadir}/%{_webapp}
53
54 # bad depsolver
55 %define         _noautopear     pear
56
57 # put it together for rpmbuild
58 %define         _noautoreq      %{?_noautophp} %{?_noautopear}
59
60 %description
61 Memcached is a caching daemon designed especially for dynamic web
62 applications to decrease database load by storing objects in memory.
63
64 This extension allows you to work with memcached through handy OO and
65 procedural interfaces.
66
67 %description -l pl.UTF-8
68 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
69 daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
70 przez przechowywanie w pamięci obiektów.
71
72 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
73 zorientowanego obiektowo (oraz przez procedury) interfejsu.
74
75 %package web
76 Summary:        Web interface for memcache
77 Group:          Libraries
78 # does not require extension itself
79 Requires:       php(core) >= %{php_min_version}
80 Requires:       php(date)
81 Requires:       php(gd)
82 Requires:       php(pcre)
83 Requires:       webapps
84 Requires:       webserver(php) >= 5.0
85 %if "%{_rpmversion}" >= "5"
86 BuildArch:      noarch
87 %endif
88
89 %description web
90 Via this web interface script you can manage and view statistics of
91 memcache.
92
93 %prep
94 %setup -qc
95 mv pecl-%{modname}-*/{.??*,*} .
96 %patch0 -p1
97 %patch1 -p1
98
99 # locks up on carme, likely due udp very long timeout
100 rm tests/039.phpt
101 rm tests/041.phpt
102 rm tests/042.phpt
103
104 # skip failed tests
105 xfail() {
106         set +x
107         while read s; do
108                 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
109
110                 test -f "$t"
111                 echo >&2 "XFAIL: $s"
112                 cat >> $t <<-EOF
113
114                 --XFAIL--
115                 Skip
116                 EOF
117         done
118 }
119
120 xfail <<'EOF'
121 memcache->addServer() [tests/019.phpt]
122 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
123 memcache->getExtendedStats() [tests/022.phpt]
124 memcache_get_extended_stats() [tests/022a.phpt]
125 memcache->delete() with load balancing [tests/023.phpt]
126 memcache->increment() with load balancing [tests/025.phpt]
127 memcache->delete() with load balancing [tests/026.phpt]
128 memcache->addServer() adding server in failed mode [tests/031.phpt]
129 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
130 memcache::connect() with unix domain socket [tests/035.phpt]
131 memcache->get() over UDP [tests/038.phpt]
132 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
133 ini_set('memcache.redundancy') [tests/043.phpt]
134 ini_set('memcache.session_redundancy') [tests/044.phpt]
135 hash strategies and functions [tests/046.phpt]
136 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
137 FLAKY: memcache->addServer() with microsecond timeout [tests/056.phpt]
138 ini_set('session.save_handler') [tests/036.phpt]
139 ini_set("memcache.allow_failover") [tests/029.phpt]
140 %if "%{php_major_version}.%{php_minor_version}" >= "7.1"
141 strange keys [tests/005.phpt]
142 %endif
143 memcache multi host save path function [tests/bug73539.phpt]
144 EOF
145
146 %build
147 packagexml2cl package.xml > ChangeLog
148 phpize
149 %configure \
150         --with-zlib-dir=/usr
151 %{__make}
152
153 %if %{with tests}
154 # simple module load test
155 %{__php} -n -q \
156         -d extension_dir=modules \
157         -d extension=%{php_extensiondir}/pcre.so \
158         -d extension=%{php_extensiondir}/spl.so \
159         -d extension=%{php_extensiondir}/session.so \
160         -d extension=%{modname}.so \
161         -m > modules.log
162 grep %{modname} modules.log
163
164 cat <<'EOF' > run-tests.sh
165 #!/bin/sh
166 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
167 exec %{__make} test \
168         PHP_EXECUTABLE=%{__php} \
169         PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl session" \
170         RUN_TESTS_SETTINGS="-q $*"
171 EOF
172 chmod +x run-tests.sh
173
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
177
178 ./run-tests.sh
179 %endif
180
181 %install
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}
188
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
195
196 %clean
197 rm -rf $RPM_BUILD_ROOT
198
199 %post
200 %php_webserver_restart
201
202 %postun
203 if [ "$1" = 0 ]; then
204         %php_webserver_restart
205 fi
206
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
213 fi
214
215 %triggerin web -- apache1 < 1.3.37-3, apache1-base
216 %webapp_register apache %{_webapp}
217
218 %triggerun web -- apache1 < 1.3.37-3, apache1-base
219 %webapp_unregister apache %{_webapp}
220
221 %triggerin web -- apache < 2.2.0, apache-base
222 %webapp_register httpd %{_webapp}
223
224 %triggerun web -- apache < 2.2.0, apache-base
225 %webapp_unregister httpd %{_webapp}
226
227 %triggerin web -- lighttpd
228 %webapp_register lighttpd %{_webapp}
229
230 %triggerun web -- lighttpd
231 %webapp_unregister lighttpd %{_webapp}
232
233 %files
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}
239
240 %files web
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
247 %{_appdir}
This page took 0.590622 seconds and 3 git commands to generate.