3 %bcond_without igbinary # memcached igbinary serializer support
4 %bcond_without json # memcached json serializer support
5 %bcond_without msgpack # memcached msgpack serializer support
6 %bcond_without sasl # memcached sasl support
7 %bcond_without session # memcached session handler support
8 %bcond_without tests # build without tests
10 %define php_name php%{?php_suffix}
11 %define modname memcached
12 Summary: Interface to memcached via libmemcached library
13 Summary(pl.UTF-8): Interfejs do memcached z użyciem biblioteki libmemcached
14 Name: %{php_name}-pecl-%{modname}
15 # for PHP < 7 support see 2.2.x branch
19 Group: Development/Languages/PHP
20 Source0: https://github.com/php-memcached-dev/php-memcached/archive/php7/%{modname}-%{version}.tar.gz
21 # Source0-md5: df81b124ac101bd21922deb0ef2ad9b9
22 URL: http://pecl.php.net/package/memcached/
23 BuildRequires: %{php_name}-devel >= 4:7.0.0
24 %{?with_igbinary:BuildRequires: %{php_name}-pecl-igbinary-devel}
25 %{?with_msgpack:BuildRequires: %{php_name}-pecl-msgpack-devel}
26 %{?with_sasl:BuildRequires: cyrus-sasl-devel}
27 BuildRequires: fastlz-devel
28 BuildRequires: libmemcached-devel >= 1.0.18
29 BuildRequires: pkgconfig
31 BuildRequires: rpmbuild(macros) >= 1.650
32 BuildRequires: zlib-devel
34 BuildRequires: %{php_name}-cli
35 BuildRequires: %{php_name}-pcre
36 %{?with_igbinary:BuildRequires: %{php_name}-pecl-igbinary}
37 %{?with_msgpack:BuildRequires: %{php_name}-pecl-msgpack}
38 %{?with_session:BuildRequires: %{php_name}-session}
39 BuildRequires: %{php_name}-spl
40 BuildRequires: memcached
42 %{?requires_php_extension}
43 Suggests: %{php_name}-pecl-igbinary
44 Suggests: %{php_name}-pecl-msgpack
45 Suggests: %{php_name}-session
46 Provides: php(%{modname}) = %{version}
47 Obsoletes: php-pecl-memcached < 2.2.0-1
48 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51 This extension uses libmemcached library to provide API for
52 communicating with memcached servers.
54 %description -l pl.UTF-8
55 Rozszerzenie to wykorzystuje bibliotekę memcached w celu udostępnienia
56 API do komunikacji z serwerami memcached.
60 mv php-memcached-*/{.??*,*} .
64 # redirect tests fail (the actual tests they redirect work)
65 rm tests/experimental/serializer_igbinary.phpt
66 rm tests/experimental/serializer_json.phpt
70 t=$(echo "$*" | sed -rne 's/.+\[(.+)\]/\1/p')
81 xfail Memcached::getByKey with CAS [tests/experimental/get_bykey_cas.phpt]
82 xfail Memcached::getDelayedByKey with CAS [tests/experimental/getdelayed_bykey_cas.phpt]
83 xfail Memcached::getDelayedByKey with callback exception [tests/experimental/getdelayed_cbthrows.phpt]
84 xfail Memcached::getMulti bad server [tests/experimental/getmulti_badserver.phpt]
85 xfail Memcached::phpinfo [tests/experimental/moduleinfo.phpt]
86 xfail Memcached::getStats [tests/experimental/stats.phpt]
87 xfail Memcached::getStats with bad server [tests/experimental/stats_badserver.phpt]
88 xfail Memcached store and fetch type and value correctness using JSON serializer [tests/types_json.phpt]
89 xfail Memcached multi store and multi fetch type and value correctness using JSON serializer [tests/types_json_multi.phpt]
91 xfail Memcached::addServer unix doamin socket [tests/experimental/addserver_unixdomain.phpt]
92 xfail Memcached::set/delete UDP [tests/experimental/get_udp.phpt]
93 xfail Memcached::getDelayedByKey with bad server [tests/experimental/getdelayed_badserver.phpt]
94 xfail Memcached::getServerByKey [tests/getserverbykey.phpt]
95 xfail Memcached result codes. [tests/rescode.phpt]
96 xfail Memcached::setMulti [tests/setmulti.phpt]
103 %{__enable_disable igbinary memcached-igbinary} \
104 %{__enable_disable json memcached-json} \
105 %{__enable_disable msgpack memcached-msgpack} \
106 %{__enable_disable sasl memcached-sasl} \
107 %{__enable_disable session memcached-session} \
112 # simple module load test
114 -d extension_dir=modules \
115 -d extension=%{php_extensiondir}/pcre.so \
116 -d extension=%{php_extensiondir}/spl.so \
118 -d extension=%{php_extensiondir}/session.so \
121 -d extension=%{php_extensiondir}/igbinary.so \
124 -d extension=%{php_extensiondir}/msgpack.so \
126 -d extension=%{modname}.so \
128 grep %{modname} modules.log
130 cat <<'EOF' > run-tests.sh
132 export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
133 exec %{__make} test \
134 PHP_EXECUTABLE=%{__php} \
135 PHP_TEST_SHARED_SYSTEM_EXTENSIONS="spl%{?with_session: session}%{?with_igbinary: igbinary}%{?with_msgpack: msgpack}" \
136 RUN_TESTS_SETTINGS="-q $*"
138 chmod +x run-tests.sh
140 # Launch the Memcached service and stop it on exit
141 %{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid
142 trap 'kill $(cat memcached.pid)' EXIT
148 rm -rf $RPM_BUILD_ROOT
150 INSTALL_ROOT=$RPM_BUILD_ROOT \
151 EXTENSION_DIR=%{php_extensiondir}
153 install -d $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d
154 cat <<'EOF' > $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/%{modname}.ini
155 ; Enable %{modname} extension module
156 extension=%{modname}.so
159 cat %{modname}.ini >> $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/%{modname}.ini
162 rm -rf $RPM_BUILD_ROOT
165 %php_webserver_restart
168 if [ "$1" = 0 ]; then
169 %php_webserver_restart
173 %defattr(644,root,root,755)
175 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/%{modname}.ini
176 %attr(755,root,root) %{php_extensiondir}/%{modname}.so