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
37 %{?requires_php_extension}
38 Requires: %{php_name}-session
39 Requires: %{php_name}-zlib
41 Provides: php(memcache) = %{version}
42 Obsoletes: php-pecl-memcache < 3.0.8-5
43 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
45 %define _webapps /etc/webapps
46 %define _webapp %{modname}
47 %define _sysconfdir %{_webapps}/%{_webapp}
48 %define _appdir %{_datadir}/%{_webapp}
51 %define _noautopear pear
53 # put it together for rpmbuild
54 %define _noautoreq %{?_noautophp} %{?_noautopear}
57 Memcached is a caching daemon designed especially for dynamic web
58 applications to decrease database load by storing objects in memory.
60 This extension allows you to work with memcached through handy OO and
61 procedural interfaces.
63 %description -l pl.UTF-8
64 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
65 daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
66 przez przechowywanie w pamięci obiektów.
68 To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego
69 zorientowanego obiektowo (oraz przez procedury) interfejsu.
72 Summary: Web interface for memcache
74 # does not require extension itself
75 Requires: php(core) >= %{php_min_version}
80 Requires: webserver(php) >= 5.0
81 %if "%{_rpmversion}" >= "5"
86 Via this web interface script you can manage and view statistics of
91 mv pecl-%{modname}-*/{.??*,*} .
96 packagexml2cl package.xml > ChangeLog
103 # simple module load test
105 -d extension_dir=modules \
106 -d extension=%{php_extensiondir}/pcre.so \
107 -d extension=%{php_extensiondir}/spl.so \
108 -d extension=%{php_extensiondir}/session.so \
109 -d extension=%{modname}.so \
111 grep %{modname} modules.log
113 cat <<'EOF' > run-tests.sh
115 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
116 exec %{__make} test \
117 PHP_EXECUTABLE=%{__php} \
118 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl session" \
119 RUN_TESTS_SETTINGS="-q $*"
121 chmod +x run-tests.sh
127 rm -rf $RPM_BUILD_ROOT
128 install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}}
129 install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
130 # we use "session_" prefix in inifile to get loader *after* session extension
131 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini
132 cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
134 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}}
135 cp -p memcache.php $RPM_BUILD_ROOT%{_appdir}
136 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
137 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
138 cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf
139 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
142 rm -rf $RPM_BUILD_ROOT
145 %php_webserver_restart
148 if [ "$1" = 0 ]; then
149 %php_webserver_restart
152 %triggerpostun -- %{name} < 3.0.4-2
153 if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then
154 echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d"
155 cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew}
156 mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini}
157 %php_webserver_restart
160 %triggerin web -- apache1 < 1.3.37-3, apache1-base
161 %webapp_register apache %{_webapp}
163 %triggerun web -- apache1 < 1.3.37-3, apache1-base
164 %webapp_unregister apache %{_webapp}
166 %triggerin web -- apache < 2.2.0, apache-base
167 %webapp_register httpd %{_webapp}
169 %triggerun web -- apache < 2.2.0, apache-base
170 %webapp_unregister httpd %{_webapp}
172 %triggerin web -- lighttpd
173 %webapp_register lighttpd %{_webapp}
175 %triggerun web -- lighttpd
176 %webapp_unregister lighttpd %{_webapp}
179 %defattr(644,root,root,755)
180 %doc CREDITS README ChangeLog
181 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini
182 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
183 %{_examplesdir}/%{name}-%{version}
186 %defattr(644,root,root,755)
187 %dir %attr(750,root,http) %{_sysconfdir}
188 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
189 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
190 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
191 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php