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