]> git.pld-linux.org Git - packages/php-pecl-memcache.git/blob - php-pecl-memcache.spec
8f1978a7d0a18f5a1f29107127a166e9576b6669
[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:        4.0.5.1
14 Release:        1
15 License:        PHP 3.01
16 Group:          Development/Languages/PHP
17 Source0:        https://pecl.php.net/get/memcache-%{version}.tgz
18 # Source0-md5:  0b11dcaa218872b7645d2c3425ce7fe8
19 Source1:        %{modname}.ini
20 Source2:        %{modname}-apache.conf
21 Source3:        %{modname}-lighttpd.conf
22 Source4:        config.php
23 Patch0:         %{modname}-webapp.patch
24 Patch1:         tests.patch
25 URL:            https://pecl.php.net/package/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
35 %if %{with tests}
36 BuildRequires:  %{php_name}-cli
37 BuildRequires:  memcached
38 %endif
39 %{?requires_php_extension}
40 Requires:       %{php_name}-session
41 Requires:       %{php_name}-zlib
42 Suggests:       memcached
43 Provides:       php(memcache) = %{version}
44 Obsoletes:      php-pecl-memcache < 3.0.8-5
45 BuildRoot:      %{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
59 Memcached is a caching daemon designed especially for dynamic web
60 applications to decrease database load by storing objects in memory.
61
62 This extension allows you to work with memcached through handy OO and
63 procedural interfaces.
64
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.
69
70 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
71 zorientowanego obiektowo (oraz przez procedury) interfejsu.
72
73 %package web
74 Summary:        Web interface for memcache
75 Group:          Libraries
76 # does not require extension itself
77 Requires:       php(core) >= %{php_min_version}
78 Requires:       php(date)
79 Requires:       php(gd)
80 Requires:       php(pcre)
81 Requires:       webapps
82 Requires:       webserver(php) >= 5.0
83 %if "%{_rpmversion}" >= "5"
84 BuildArch:      noarch
85 %endif
86
87 %description web
88 Via this web interface script you can manage and view statistics of
89 memcache.
90
91 %prep
92 %setup -qc
93 mv %{modname}-*/* .
94 %patch0 -p1
95 %patch1 -p1
96
97 cat <<'EOF' > run-tests.sh
98 #!/bin/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" \
104 %else
105         PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl simplexml session" \
106 %endif
107         RUN_TESTS_SETTINGS="-q $*"
108 EOF
109 chmod +x run-tests.sh
110
111 # skip failed tests
112 die() {
113         echo >&2 "$*"
114         exit 1
115 }
116 xfail() {
117         set +x
118         while read s; do
119                 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
120
121                 test -f "$t" || die "Missing $t"
122                 echo >&2 "XFAIL: $s"
123                 cat >> $t <<-EOF
124
125                 --XFAIL--
126                 Skip
127                 EOF
128         done
129 }
130
131 xfail <<'EOF'
132 memcache->addServer() [tests/019.phpt]
133 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
134 memcache->getExtendedStats() [tests/022.phpt]
135 memcache_get_extended_stats() [tests/022a.phpt]
136 memcache->delete() with load balancing [tests/023.phpt]
137 memcache->increment() with load balancing [tests/025.phpt]
138 memcache->delete() with load balancing [tests/026.phpt]
139 memcache->addServer() adding server in failed mode [tests/031.phpt]
140 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
141 memcache::connect() with unix domain socket [tests/035.phpt]
142 ini_set('session.save_handler') [tests/036.phpt]
143 ini_set('session.save_path') [tests/036b.phpt]
144 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
145 memcache->delete() with multiple keys [tests/041.phpt]
146 memcache->set() with multiple values [tests/042.phpt]
147 ini_set('memcache.redundancy') [tests/043.phpt]
148 ini_set('memcache.session_redundancy') [tests/044.phpt]
149 hash strategies and functions [tests/046.phpt]
150 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
151 memcache multi host save path function [tests/bug73539.phpt]
152 session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
153 EOF
154
155 %build
156 packagexml2cl package.xml > ChangeLog
157 phpize
158 %configure \
159         --with-zlib-dir=/usr
160 %{__make}
161
162 # simple module load test
163 %{__php} -n -q \
164         -d extension_dir=modules \
165 %if "%php_major_version.%php_minor_version" >= "7.4"
166         -d extension=%{php_extensiondir}/simplexml.so \
167         -d extension=%{php_extensiondir}/session.so \
168 %else
169         -d extension=%{php_extensiondir}/pcre.so \
170         -d extension=%{php_extensiondir}/spl.so \
171         -d extension=%{php_extensiondir}/simplexml.so \
172         -d extension=%{php_extensiondir}/session.so \
173 %endif
174         -d extension=%{modname}.so \
175         -m > modules.log
176 grep %{modname} modules.log
177
178 %if %{with tests}
179 # Launch the Memcached service and stop it on exit
180 domainsocket=$PWD/memcached.sock
181 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
182 %{_sbindir}/memcached -s $domainsocket -d -P $PWD/memcached-udp.pid
183 trap 'kill $(cat memcached.pid memcached-udp.pid)' EXIT INT
184
185 ./run-tests.sh --show-diff
186 %endif
187
188 %install
189 rm -rf $RPM_BUILD_ROOT
190 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
191 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
192 # we use "session_" prefix in inifile to get loader *after* session extension
193 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
194 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
195
196 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
197 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
198 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
199 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
200 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
201 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
202
203 %clean
204 rm -rf $RPM_BUILD_ROOT
205
206 %post
207 %php_webserver_restart
208
209 %postun
210 if [ "$1" = 0 ]; then
211         %php_webserver_restart
212 fi
213
214 %triggerpostun -- %{name} < 3.0.4-2
215 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
216         echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
217         cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
218         mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
219         %php_webserver_restart
220 fi
221
222 %triggerin web -- apache1 < 1.3.37-3, apache1-base
223 %webapp_register apache %{_webapp}
224
225 %triggerun web -- apache1 < 1.3.37-3, apache1-base
226 %webapp_unregister apache %{_webapp}
227
228 %triggerin web -- apache < 2.2.0, apache-base
229 %webapp_register httpd %{_webapp}
230
231 %triggerun web -- apache < 2.2.0, apache-base
232 %webapp_unregister httpd %{_webapp}
233
234 %triggerin web -- lighttpd
235 %webapp_register lighttpd %{_webapp}
236
237 %triggerun web -- lighttpd
238 %webapp_unregister lighttpd %{_webapp}
239
240 %files
241 %defattr(644,root,root,755)
242 %doc CREDITS README ChangeLog
243 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
244 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
245 %{_examplesdir}/%{name}-%{version}
246
247 %files web
248 %defattr(644,root,root,755)
249 %dir %attr(750,root,http) %{_sysconfdir}
250 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
251 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
252 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
253 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php
254 %{_appdir}
This page took 0.092851 seconds and 3 git commands to generate.