4e95e3ec8c25a51be38d0d3f470b8bede8ac2531
[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:        3
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 Patch2:         https://github.com/websupport-sk/pecl-memcache/pull/30.patch
29 # Patch2-md5:   770b57a139428cc601f19e13dbdb2247
30 URL:            http://pecl.php.net/package/memcache/
31 BuildRequires:  %{php_name}-devel >= 3:5.0.0
32 BuildRequires:  %{php_name}-xml
33 BuildRequires:  php-packagexml2cl
34 BuildRequires:  rpm-php-pearprov >= 4.4.2-11
35 BuildRequires:  rpmbuild(macros) >= 1.650
36 %if %{with tests}
37 BuildRequires:  %{php_name}-cli
38 BuildRequires:  %{php_name}-pcre
39 BuildRequires:  %{php_name}-session
40 BuildRequires:  %{php_name}-spl
41 BuildRequires:  memcached
42 %endif
43 %{?requires_php_extension}
44 Requires:       %{php_name}-session
45 Requires:       %{php_name}-zlib
46 Suggests:       memcached
47 Provides:       php(memcache) = %{version}
48 Obsoletes:      php-pecl-memcache < 3.0.8-5
49 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
50
51 %define         _webapps        /etc/webapps
52 %define         _webapp         %{modname}
53 %define         _sysconfdir     %{_webapps}/%{_webapp}
54 %define         _appdir         %{_datadir}/%{_webapp}
55
56 # bad depsolver
57 %define         _noautopear     pear
58
59 # put it together for rpmbuild
60 %define         _noautoreq      %{?_noautophp} %{?_noautopear}
61
62 %description
63 Memcached is a caching daemon designed especially for dynamic web
64 applications to decrease database load by storing objects in memory.
65
66 This extension allows you to work with memcached through handy OO and
67 procedural interfaces.
68
69 %description -l pl.UTF-8
70 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
71 daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
72 przez przechowywanie w pamięci obiektów.
73
74 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
75 zorientowanego obiektowo (oraz przez procedury) interfejsu.
76
77 %package web
78 Summary:        Web interface for memcache
79 Group:          Libraries
80 # does not require extension itself
81 Requires:       php(core) >= %{php_min_version}
82 Requires:       php(date)
83 Requires:       php(gd)
84 Requires:       php(pcre)
85 Requires:       webapps
86 Requires:       webserver(php) >= 5.0
87 %if "%{_rpmversion}" >= "5"
88 BuildArch:      noarch
89 %endif
90
91 %description web
92 Via this web interface script you can manage and view statistics of
93 memcache.
94
95 %prep
96 %setup -qc
97 mv pecl-%{modname}-*/{.??*,*} .
98 %patch0 -p1
99 %patch1 -p1
100 %patch2 -p1
101
102 # locks up on carme, likely due udp very long timeout
103 rm tests/039.phpt
104 rm tests/041.phpt
105 rm tests/042.phpt
106
107 # skip failed tests
108 xfail() {
109         set +x
110         while read s; do
111                 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
112
113                 test -f "$t"
114                 echo >&2 "XFAIL: $s"
115                 cat >> $t <<-EOF
116
117                 --XFAIL--
118                 Skip
119                 EOF
120         done
121 }
122
123 xfail <<'EOF'
124 memcache->addServer() [tests/019.phpt]
125 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
126 memcache->getExtendedStats() [tests/022.phpt]
127 memcache_get_extended_stats() [tests/022a.phpt]
128 memcache->delete() with load balancing [tests/023.phpt]
129 memcache->increment() with load balancing [tests/025.phpt]
130 memcache->delete() with load balancing [tests/026.phpt]
131 memcache->addServer() adding server in failed mode [tests/031.phpt]
132 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
133 memcache::connect() with unix domain socket [tests/035.phpt]
134 memcache->get() over UDP [tests/038.phpt]
135 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
136 ini_set('memcache.redundancy') [tests/043.phpt]
137 ini_set('memcache.session_redundancy') [tests/044.phpt]
138 hash strategies and functions [tests/046.phpt]
139 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
140 FLAKY: memcache->addServer() with microsecond timeout [tests/056.phpt]
141 ini_set('session.save_handler') [tests/036.phpt]
142 ini_set("memcache.allow_failover") [tests/029.phpt]
143 %if "%{php_major_version}.%{php_minor_version}" >= "7.1"
144 strange keys [tests/005.phpt]
145 %endif
146 memcache multi host save path function [tests/bug73539.phpt]
147 EOF
148
149 %build
150 packagexml2cl package.xml > ChangeLog
151 phpize
152 %configure \
153         --with-zlib-dir=/usr
154 %{__make}
155
156 %if %{with tests}
157 # simple module load test
158 %{__php} -n -q \
159         -d extension_dir=modules \
160         -d extension=%{php_extensiondir}/pcre.so \
161         -d extension=%{php_extensiondir}/spl.so \
162         -d extension=%{php_extensiondir}/session.so \
163         -d extension=%{modname}.so \
164         -m > modules.log
165 grep %{modname} modules.log
166
167 cat <<'EOF' > run-tests.sh
168 #!/bin/sh
169 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
170 exec %{__make} test \
171         PHP_EXECUTABLE=%{__php} \
172         PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl session" \
173         RUN_TESTS_SETTINGS="-q $*"
174 EOF
175 chmod +x run-tests.sh
176
177 # Launch the Memcached service and stop it on exit
178 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
179 trap 'kill $(cat memcached.pid)' EXIT INT
180
181 ./run-tests.sh
182 %endif
183
184 %install
185 rm -rf $RPM_BUILD_ROOT
186 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
187 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
188 # we use "session_" prefix in inifile to get loader *after* session extension
189 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
190 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
191
192 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
193 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
194 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
195 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
196 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
197 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
198
199 %clean
200 rm -rf $RPM_BUILD_ROOT
201
202 %post
203 %php_webserver_restart
204
205 %postun
206 if [ "$1" = 0 ]; then
207         %php_webserver_restart
208 fi
209
210 %triggerpostun -- %{name} < 3.0.4-2
211 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
212         echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
213         cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
214         mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
215         %php_webserver_restart
216 fi
217
218 %triggerin web -- apache1 < 1.3.37-3, apache1-base
219 %webapp_register apache %{_webapp}
220
221 %triggerun web -- apache1 < 1.3.37-3, apache1-base
222 %webapp_unregister apache %{_webapp}
223
224 %triggerin web -- apache < 2.2.0, apache-base
225 %webapp_register httpd %{_webapp}
226
227 %triggerun web -- apache < 2.2.0, apache-base
228 %webapp_unregister httpd %{_webapp}
229
230 %triggerin web -- lighttpd
231 %webapp_register lighttpd %{_webapp}
232
233 %triggerun web -- lighttpd
234 %webapp_unregister lighttpd %{_webapp}
235
236 %files
237 %defattr(644,root,root,755)
238 %doc CREDITS README ChangeLog
239 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
240 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
241 %{_examplesdir}/%{name}-%{version}
242
243 %files web
244 %defattr(644,root,root,755)
245 %dir %attr(750,root,http) %{_sysconfdir}
246 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
247 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
248 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
249 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php
250 %{_appdir}
This page took 0.048188 seconds and 2 git commands to generate.