]> git.pld-linux.org Git - packages/php-pecl-memcache.git/blob - php-pecl-memcache.spec
eae669074cade4e482f74d591e555b7672c16ab2
[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 URL:            https://github.com/websupport-sk/pecl-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 pecl-%{modname}-*/{.??*,*} .
93 %patch0 -p1
94
95 cat <<'EOF' > run-tests.sh
96 #!/bin/sh
97 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
98 exec %{__make} test \
99         PHP_EXECUTABLE=%{__php} \
100 %if "%php_major_version.%php_minor_version" >= "7.4"
101         PHP_TEST_SHARED_SYSTEM_EXTENSIONS="simplexml session" \
102 %else
103         PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl simplexml session" \
104 %endif
105         RUN_TESTS_SETTINGS="-q $*"
106 EOF
107 chmod +x run-tests.sh
108
109 # skip failed tests
110 xfail() {
111         set +x
112         while read s; do
113                 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
114
115                 test -f "$t"
116                 echo >&2 "XFAIL: $s"
117                 cat >> $t <<-EOF
118
119                 --XFAIL--
120                 Skip
121                 EOF
122         done
123 }
124
125 xfail <<'EOF'
126 memcache->addServer() [tests/019.phpt]
127 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
128 memcache->getExtendedStats() [tests/022.phpt]
129 memcache_get_extended_stats() [tests/022a.phpt]
130 memcache->delete() with load balancing [tests/023.phpt]
131 memcache->increment() with load balancing [tests/025.phpt]
132 memcache->delete() with load balancing [tests/026.phpt]
133 memcache->addServer() adding server in failed mode [tests/031.phpt]
134 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
135 memcache::connect() with unix domain socket [tests/035.phpt]
136 ini_set('session.save_handler') [tests/036.phpt]
137 ini_set('session.save_path') [tests/036b.phpt]
138 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
139 memcache->delete() with multiple keys [tests/041.phpt]
140 memcache->set() with multiple values [tests/042.phpt]
141 ini_set('memcache.redundancy') [tests/043.phpt]
142 ini_set('memcache.session_redundancy') [tests/044.phpt]
143 ini_set('memcache.session_redundancy') [tests/044b.phpt]
144 hash strategies and functions [tests/046.phpt]
145 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
146 memcache multi host save path function [tests/bug73539.phpt]
147 session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
148 EOF
149
150 %build
151 packagexml2cl package.xml > ChangeLog
152 phpize
153 %configure \
154         --with-zlib-dir=/usr
155 %{__make}
156
157 # simple module load test
158 %{__php} -n -q \
159         -d extension_dir=modules \
160 %if "%php_major_version.%php_minor_version" >= "7.4"
161         -d extension=%{php_extensiondir}/simplexml.so \
162         -d extension=%{php_extensiondir}/session.so \
163 %else
164         -d extension=%{php_extensiondir}/pcre.so \
165         -d extension=%{php_extensiondir}/spl.so \
166         -d extension=%{php_extensiondir}/simplexml.so \
167         -d extension=%{php_extensiondir}/session.so \
168 %endif
169         -d extension=%{modname}.so \
170         -m > modules.log
171 grep %{modname} modules.log
172
173 %if %{with tests}
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 --show-diff
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.034094 seconds and 2 git commands to generate.