]> git.pld-linux.org Git - packages/php-pecl-memcache.git/blob - php-pecl-memcache.spec
Add memcache with udp listen for tests
[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.4
14 Release:        1
15 License:        PHP 3.01
16 Group:          Development/Languages/PHP
17 Source0:        https://github.com/websupport-sk/pecl-memcache/archive/%{version}/%{modname}-%{version}.tar.gz
18 # Source0-md5:  612c575eccc18d98484b72c0cff6907a
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://github.com/websupport-sk/pecl-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 pecl-%{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 xfail() {
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
127 xfail <<'EOF'
128 memcache->addServer() [tests/019.phpt]
129 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
130 memcache->getExtendedStats() [tests/022.phpt]
131 memcache_get_extended_stats() [tests/022a.phpt]
132 memcache->delete() with load balancing [tests/023.phpt]
133 memcache->increment() with load balancing [tests/025.phpt]
134 memcache->delete() with load balancing [tests/026.phpt]
135 memcache->addServer() adding server in failed mode [tests/031.phpt]
136 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
137 memcache::connect() with unix domain socket [tests/035.phpt]
138 ini_set('session.save_handler') [tests/036.phpt]
139 ini_set('session.save_path') [tests/036b.phpt]
140 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
141 memcache->delete() with multiple keys [tests/041.phpt]
142 memcache->set() with multiple values [tests/042.phpt]
143 ini_set('memcache.redundancy') [tests/043.phpt]
144 ini_set('memcache.session_redundancy') [tests/044.phpt]
145 ini_set('memcache.session_redundancy') [tests/044b.phpt]
146 hash strategies and functions [tests/046.phpt]
147 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
148 memcache multi host save path function [tests/bug73539.phpt]
149 session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
150 EOF
151
152 %build
153 packagexml2cl package.xml > ChangeLog
154 phpize
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
173 grep %{modname} modules.log
174
175 %if %{with tests}
176 # Launch the Memcached service and stop it on exit
177 domainsocket=$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
180 trap 'kill $(cat memcached.pid memcached-udp.pid)' EXIT INT
181
182 ./run-tests.sh --show-diff
183 %endif
184
185 %install
186 rm -rf $RPM_BUILD_ROOT
187 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
188 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
189 # we use "session_" prefix in inifile to get loader *after* session extension
190 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
191 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
192
193 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
194 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
195 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
196 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
197 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
198 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
199
200 %clean
201 rm -rf $RPM_BUILD_ROOT
202
203 %post
204 %php_webserver_restart
205
206 %postun
207 if [ "$1" = 0 ]; then
208         %php_webserver_restart
209 fi
210
211 %triggerpostun -- %{name} < 3.0.4-2
212 if [ -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
217 fi
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.049696 seconds and 3 git commands to generate.