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