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