]>
Commit | Line | Data |
---|---|---|
8a94fd63 ER |
1 | # |
2 | # Conditional build: | |
01be7f54 | 3 | %bcond_without igbinary # memcached igbinary serializer support |
8a94fd63 | 4 | %bcond_without json # memcached json serializer support |
bc194a76 | 5 | %bcond_without msgpack # memcached msgpack serializer support |
8a94fd63 ER |
6 | %bcond_without sasl # memcached sasl support |
7 | %bcond_without session # memcached session handler support | |
f320a8b8 | 8 | %bcond_without tests # build without tests |
8a94fd63 | 9 | |
00a979fe | 10 | %define php_name php%{?php_suffix} |
1686b051 | 11 | %define modname memcached |
3ad40754 ŁK |
12 | Summary: Interface to memcached via libmemcached library |
13 | Summary(pl.UTF-8): Interfejs do memcached z użyciem biblioteki libmemcached | |
00a979fe | 14 | Name: %{php_name}-pecl-%{modname} |
bc194a76 | 15 | # for PHP < 7 support see 2.2.x branch |
32929cc6 | 16 | Version: 3.0.0 |
ecf7e008 | 17 | Release: 1 |
ecc1f4a0 | 18 | License: PHP 3.01 |
b44f7c50 | 19 | Group: Development/Languages/PHP |
32929cc6 ER |
20 | Source0: https://github.com/php-memcached-dev/php-memcached/archive/php7/%{modname}-%{version}.tar.gz |
21 | # Source0-md5: df81b124ac101bd21922deb0ef2ad9b9 | |
b44f7c50 | 22 | URL: http://pecl.php.net/package/memcached/ |
c3fa9f03 | 23 | BuildRequires: %{php_name}-devel >= 4:7.0.0 |
cba71c6f | 24 | %{?with_igbinary:BuildRequires: %{php_name}-pecl-igbinary-devel} |
bc194a76 | 25 | %{?with_msgpack:BuildRequires: %{php_name}-pecl-msgpack-devel} |
8a94fd63 | 26 | %{?with_sasl:BuildRequires: cyrus-sasl-devel} |
2ef5d149 | 27 | BuildRequires: fastlz-devel |
b791cdba | 28 | BuildRequires: libmemcached-devel >= 1.0.18 |
b39e72bc ER |
29 | BuildRequires: pkgconfig |
30 | BuildRequires: re2c | |
00a979fe | 31 | BuildRequires: rpmbuild(macros) >= 1.650 |
5f6946b2 | 32 | BuildRequires: zlib-devel |
f320a8b8 ER |
33 | %if %{with tests} |
34 | BuildRequires: %{php_name}-cli | |
ecf7e008 | 35 | BuildRequires: %{php_name}-pcre |
cba71c6f | 36 | %{?with_igbinary:BuildRequires: %{php_name}-pecl-igbinary} |
bc194a76 | 37 | %{?with_msgpack:BuildRequires: %{php_name}-pecl-msgpack} |
f320a8b8 | 38 | %{?with_session:BuildRequires: %{php_name}-session} |
cba71c6f | 39 | BuildRequires: %{php_name}-spl |
6eed873b | 40 | BuildRequires: memcached |
f320a8b8 | 41 | %endif |
b44f7c50 | 42 | %{?requires_php_extension} |
28bdaf6a | 43 | Suggests: %{php_name}-pecl-igbinary |
bc194a76 | 44 | Suggests: %{php_name}-pecl-msgpack |
cba71c6f | 45 | Suggests: %{php_name}-session |
28bdaf6a | 46 | Provides: php(%{modname}) = %{version} |
d30795a1 | 47 | Obsoletes: php-pecl-memcached < 2.2.0-1 |
b44f7c50 AG |
48 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
49 | ||
50 | %description | |
51 | This extension uses libmemcached library to provide API for | |
52 | communicating with memcached servers. | |
53 | ||
b44f7c50 | 54 | %description -l pl.UTF-8 |
c869a57e | 55 | Rozszerzenie to wykorzystuje bibliotekę memcached w celu udostępnienia |
b44f7c50 AG |
56 | API do komunikacji z serwerami memcached. |
57 | ||
b44f7c50 | 58 | %prep |
32929cc6 ER |
59 | %setup -qc |
60 | mv php-memcached-*/{.??*,*} . | |
b44f7c50 | 61 | |
2ef5d149 ER |
62 | rm fastlz/fastlz.c |
63 | ||
01be7f54 ER |
64 | # redirect tests fail (the actual tests they redirect work) |
65 | rm tests/experimental/serializer_igbinary.phpt | |
66 | rm tests/experimental/serializer_json.phpt | |
67 | ||
6eed873b ER |
68 | # skip failed tests |
69 | xfail() { | |
70 | t=$(echo "$*" | sed -rne 's/.+\[(.+)\]/\1/p') | |
71 | ||
72 | test -f "$t" | |
73 | cat >> $t <<-EOF | |
74 | ||
75 | --XFAIL-- | |
76 | Skip | |
77 | EOF | |
78 | } | |
79 | ||
7aa759ad | 80 | %ifarch %{x8664} |
6eed873b ER |
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] | |
7aa759ad | 90 | %endif |
c896e46f ER |
91 | %ifarch x32 |
92 | xfail Memcached::addServer unix doamin socket [tests/experimental/addserver_unixdomain.phpt] | |
93 | xfail Memcached::set/delete UDP [tests/experimental/get_udp.phpt] | |
94 | xfail Memcached::getDelayedByKey with bad server [tests/experimental/getdelayed_badserver.phpt] | |
95 | xfail Memcached::getServerByKey [tests/getserverbykey.phpt] | |
96 | xfail Memcached result codes. [tests/rescode.phpt] | |
97 | xfail Memcached::setMulti [tests/setmulti.phpt] | |
98 | %endif | |
6eed873b | 99 | |
b44f7c50 AG |
100 | %build |
101 | phpize | |
ecc1f4a0 | 102 | %configure \ |
8a94fd63 ER |
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} \ | |
108 | --with-system-fastlz | |
b44f7c50 AG |
109 | %{__make} |
110 | ||
f320a8b8 ER |
111 | %if %{with tests} |
112 | # simple module load test | |
113 | %{__php} -n -q \ | |
114 | -d extension_dir=modules \ | |
ecf7e008 | 115 | -d extension=%{php_extensiondir}/pcre.so \ |
f320a8b8 ER |
116 | -d extension=%{php_extensiondir}/spl.so \ |
117 | %if %{with session} | |
118 | -d extension=%{php_extensiondir}/session.so \ | |
cba71c6f ER |
119 | %endif |
120 | %if %{with igbinary} | |
121 | -d extension=%{php_extensiondir}/igbinary.so \ | |
bc194a76 ER |
122 | %endif |
123 | %if %{with msgpack} | |
124 | -d extension=%{php_extensiondir}/msgpack.so \ | |
f320a8b8 ER |
125 | %endif |
126 | -d extension=%{modname}.so \ | |
127 | -m > modules.log | |
128 | grep %{modname} modules.log | |
129 | ||
2a973f5a ER |
130 | cat <<'EOF' > run-tests.sh |
131 | #!/bin/sh | |
f320a8b8 | 132 | export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2 |
2a973f5a | 133 | exec %{__make} test \ |
f320a8b8 | 134 | PHP_EXECUTABLE=%{__php} \ |
bc194a76 | 135 | PHP_TEST_SHARED_SYSTEM_EXTENSIONS="spl%{?with_session: session}%{?with_igbinary: igbinary}%{?with_msgpack: msgpack}" \ |
2a973f5a ER |
136 | RUN_TESTS_SETTINGS="-q $*" |
137 | EOF | |
138 | chmod +x run-tests.sh | |
139 | ||
6eed873b ER |
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 | |
143 | ||
2a973f5a | 144 | ./run-tests.sh |
f320a8b8 ER |
145 | %endif |
146 | ||
b44f7c50 AG |
147 | %install |
148 | rm -rf $RPM_BUILD_ROOT | |
b44f7c50 AG |
149 | %{__make} install \ |
150 | INSTALL_ROOT=$RPM_BUILD_ROOT \ | |
151 | EXTENSION_DIR=%{php_extensiondir} | |
87acf0f0 ER |
152 | |
153 | install -d $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d | |
1686b051 ER |
154 | cat <<'EOF' > $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/%{modname}.ini |
155 | ; Enable %{modname} extension module | |
156 | extension=%{modname}.so | |
ecc1f4a0 | 157 | |
b44f7c50 | 158 | EOF |
ecc1f4a0 | 159 | cat %{modname}.ini >> $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/%{modname}.ini |
b44f7c50 AG |
160 | |
161 | %clean | |
162 | rm -rf $RPM_BUILD_ROOT | |
163 | ||
164 | %post | |
165 | %php_webserver_restart | |
166 | ||
167 | %postun | |
168 | if [ "$1" = 0 ]; then | |
169 | %php_webserver_restart | |
170 | fi | |
171 | ||
172 | %files | |
173 | %defattr(644,root,root,755) | |
1686b051 ER |
174 | %doc CREDITS |
175 | %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/%{modname}.ini | |
176 | %attr(755,root,root) %{php_extensiondir}/%{modname}.so |