3 %bcond_without tests # build without tests
5 %define php_name php%{?php_suffix}
6 %define modname memcache
7 %define php_min_version 5.0.0
8 %include /usr/lib/rpm/macros.php
9 Summary: %{modname} - a memcached extension
10 Summary(pl.UTF-8): %{modname} - rozszerzenie memcached
11 Name: %{php_name}-pecl-%{modname}
15 Group: Development/Languages/PHP
16 #Source0: http://pecl.php.net/get/%{modname}-%{version}.tgz
17 Source0: https://github.com/websupport-sk/pecl-memcache/archive/NON_BLOCKING_IO_php7.tar.gz
18 # Source0-md5: 7751d8191302a726449d7c6506b8783d
19 Source1: %{modname}.ini
20 Source2: %{modname}-apache.conf
21 Source3: %{modname}-lighttpd.conf
23 Patch0: %{modname}-webapp.patch
25 URL: http://pecl.php.net/package/memcache/
26 BuildRequires: %{php_name}-devel >= 3:5.0.0
27 BuildRequires: %{php_name}-xml
28 BuildRequires: php-packagexml2cl
29 BuildRequires: rpm-php-pearprov >= 4.4.2-11
30 BuildRequires: rpmbuild(macros) >= 1.650
32 BuildRequires: %{php_name}-cli
33 BuildRequires: %{php_name}-pcre
34 BuildRequires: %{php_name}-session
35 BuildRequires: %{php_name}-spl
36 BuildRequires: memcached
38 %{?requires_php_extension}
39 Requires: %{php_name}-session
40 Requires: %{php_name}-zlib
42 Provides: php(memcache) = %{version}
43 Obsoletes: php-pecl-memcache < 3.0.8-5
44 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
46 %define _webapps /etc/webapps
47 %define _webapp %{modname}
48 %define _sysconfdir %{_webapps}/%{_webapp}
49 %define _appdir %{_datadir}/%{_webapp}
52 %define _noautopear pear
54 # put it together for rpmbuild
55 %define _noautoreq %{?_noautophp} %{?_noautopear}
58 Memcached is a caching daemon designed especially for dynamic web
59 applications to decrease database load by storing objects in memory.
61 This extension allows you to work with memcached through handy OO and
62 procedural interfaces.
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.
69 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
70 zorientowanego obiektowo (oraz przez procedury) interfejsu.
73 Summary: Web interface for memcache
75 # does not require extension itself
76 Requires: php(core) >= %{php_min_version}
81 Requires: webserver(php) >= 5.0
82 %if "%{_rpmversion}" >= "5"
87 Via this web interface script you can manage and view statistics of
92 mv pecl-%{modname}-*/{.??*,*} .
96 # locks up on carme, likely due udp very long timeout
100 packagexml2cl package.xml > ChangeLog
107 # simple module load test
109 -d extension_dir=modules \
110 -d extension=%{php_extensiondir}/pcre.so \
111 -d extension=%{php_extensiondir}/spl.so \
112 -d extension=%{php_extensiondir}/session.so \
113 -d extension=%{modname}.so \
115 grep %{modname} modules.log
117 cat <<'EOF' > run-tests.sh
119 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
120 exec %{__make} test \
121 PHP_EXECUTABLE=%{__php} \
122 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl session" \
123 RUN_TESTS_SETTINGS="-q $*"
125 chmod +x run-tests.sh
127 # Launch the Memcached service and stop it on exit
128 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
129 trap 'kill $(cat memcached.pid)' EXIT INT
135 rm -rf $RPM_BUILD_ROOT
136 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
137 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
138 # we use "session_" prefix in inifile to get loader *after* session extension
139 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
140 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
142 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
143 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
144 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
145 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
146 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
147 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
150 rm -rf $RPM_BUILD_ROOT
153 %php_webserver_restart
156 if [ "$1" = 0 ]; then
157 %php_webserver_restart
160 %triggerpostun -- %{name} < 3.0.4-2
161 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
162 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
163 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
164 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
165 %php_webserver_restart
168 %triggerin web -- apache1 < 1.3.37-3, apache1-base
169 %webapp_register apache %{_webapp}
171 %triggerun web -- apache1 < 1.3.37-3, apache1-base
172 %webapp_unregister apache %{_webapp}
174 %triggerin web -- apache < 2.2.0, apache-base
175 %webapp_register httpd %{_webapp}
177 %triggerun web -- apache < 2.2.0, apache-base
178 %webapp_unregister httpd %{_webapp}
180 %triggerin web -- lighttpd
181 %webapp_register lighttpd %{_webapp}
183 %triggerun web -- lighttpd
184 %webapp_unregister lighttpd %{_webapp}
187 %defattr(644,root,root,755)
188 %doc CREDITS README ChangeLog
189 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
190 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
191 %{_examplesdir}/%{name}-%{version}
194 %defattr(644,root,root,755)
195 %dir %attr(750,root,http) %{_sysconfdir}
196 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
197 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
198 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
199 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php