]> git.pld-linux.org Git - packages/php-pecl-memcache.git/blob - php-pecl-memcache.spec
Up to 8.0, adds php 8.0 support
[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 %if "%{_rpmversion}" >= "5"
94 BuildArch:      noarch
95 %endif
96
97 %description -n php-pecl-memcache-web
98 Via this web interface script you can manage and view statistics of
99 memcache.
100
101 %prep
102 %setup -qc
103 mv %{modname}-*/* .
104 %patch0 -p1
105 %patch1 -p1
106
107 cat <<'EOF' > run-tests.sh
108 #!/bin/sh
109 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
110 exec %{__make} test \
111         PHP_EXECUTABLE=%{__php} \
112 %if "%php_major_version.%php_minor_version" >= "7.4"
113         PHP_TEST_SHARED_SYSTEM_EXTENSIONS="simplexml session" \
114 %else
115         PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl simplexml session" \
116 %endif
117         RUN_TESTS_SETTINGS="-q $*"
118 EOF
119 chmod +x run-tests.sh
120
121 # skip failed tests
122 die() {
123         echo >&2 "$*"
124         exit 1
125 }
126 xfail() {
127         set +x
128         while read s; do
129                 t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p')
130
131                 test -f "$t" || die "Missing $t"
132                 echo >&2 "XFAIL: $s"
133                 cat >> $t <<-EOF
134
135                 --XFAIL--
136                 Skip
137                 EOF
138         done
139 }
140
141 xfail <<'EOF'
142 memcache->addServer() [tests/019.phpt]
143 memcache->set()/memcache->get() with multiple keys and load balancing [tests/020.phpt]
144 memcache->getExtendedStats() [tests/022.phpt]
145 memcache_get_extended_stats() [tests/022a.phpt]
146 memcache->delete() with load balancing [tests/023.phpt]
147 memcache->increment() with load balancing [tests/025.phpt]
148 memcache->delete() with load balancing [tests/026.phpt]
149 memcache->addServer() adding server in failed mode [tests/031.phpt]
150 memcache->getServerStatus(), memcache->setServerParams() [tests/032.phpt]
151 memcache::connect() with unix domain socket [tests/035.phpt]
152 ini_set('session.save_handler') [tests/036.phpt]
153 ini_set('session.save_path') [tests/036b.phpt]
154 memcache->increment()/decrement() with multiple keys [tests/040.phpt]
155 memcache->delete() with multiple keys [tests/041.phpt]
156 memcache->set() with multiple values [tests/042.phpt]
157 ini_set('memcache.redundancy') [tests/043.phpt]
158 ini_set('memcache.session_redundancy') [tests/044.phpt]
159 hash strategies and functions [tests/046.phpt]
160 ini_set('session.save_handler') with unix domain socket [tests/053.phpt]
161 memcache multi host save path function [tests/bug73539.phpt]
162 session_regenerate_id() should not cause fatal error [tests/githubbug13.phpt]
163 EOF
164
165 %build
166 packagexml2cl package.xml > ChangeLog
167 phpize
168 %configure \
169         --with-zlib-dir=/usr
170 %{__make}
171
172 # simple module load test
173 %{__php} -n -q \
174         -d extension_dir=modules \
175 %if "%php_major_version.%php_minor_version" >= "7.4"
176         -d extension=%{php_extensiondir}/simplexml.so \
177         -d extension=%{php_extensiondir}/session.so \
178 %else
179         -d extension=%{php_extensiondir}/pcre.so \
180         -d extension=%{php_extensiondir}/spl.so \
181         -d extension=%{php_extensiondir}/simplexml.so \
182         -d extension=%{php_extensiondir}/session.so \
183 %endif
184         -d extension=%{modname}.so \
185         -m > modules.log
186 grep %{modname} modules.log
187
188 %if %{with tests}
189 # Launch the Memcached service and stop it on exit
190 domainsocket=$PWD/memcached.sock
191 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
192 %{_sbindir}/memcached -s $domainsocket -d -P $PWD/memcached-udp.pid
193 trap 'kill $(cat memcached.pid memcached-udp.pid)' EXIT INT
194
195 ./run-tests.sh --show-diff
196 %endif
197
198 %install
199 rm -rf $RPM_BUILD_ROOT
200 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
201 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
202 # we use "session_" prefix in inifile to get loader *after* session extension
203 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
204 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
205
206 %if %{with web}
207 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
208 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
209 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
210 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
211 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
212 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
213 %endif
214
215 %clean
216 rm -rf $RPM_BUILD_ROOT
217
218 %post
219 %php_webserver_restart
220
221 %postun
222 if [ "$1" = 0 ]; then
223         %php_webserver_restart
224 fi
225
226 %triggerpostun -- %{name} < 3.0.4-2
227 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
228         echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
229         cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
230         mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
231         %php_webserver_restart
232 fi
233
234 %triggerin -n php-pecl-memcache-web -- apache1 < 1.3.37-3, apache1-base
235 %webapp_register apache %{_webapp}
236
237 %triggerun -n php-pecl-memcache-web -- apache1 < 1.3.37-3, apache1-base
238 %webapp_unregister apache %{_webapp}
239
240 %triggerin -n php-pecl-memcache-web -- apache < 2.2.0, apache-base
241 %webapp_register httpd %{_webapp}
242
243 %triggerun -n php-pecl-memcache-web -- apache < 2.2.0, apache-base
244 %webapp_unregister httpd %{_webapp}
245
246 %triggerin -n php-pecl-memcache-web -- lighttpd
247 %webapp_register lighttpd %{_webapp}
248
249 %triggerun -n php-pecl-memcache-web -- lighttpd
250 %webapp_unregister lighttpd %{_webapp}
251
252 %files
253 %defattr(644,root,root,755)
254 %doc CREDITS README ChangeLog
255 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
256 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
257 %{_examplesdir}/%{name}-%{version}
258
259 %if %{with web}
260 %files -n php-pecl-memcache-web
261 %defattr(644,root,root,755)
262 %dir %attr(750,root,http) %{_sysconfdir}
263 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
264 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
265 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
266 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php
267 %{_appdir}
268 %endif
This page took 0.063456 seconds and 3 git commands to generate.