X-Git-Url: http://git.pld-linux.org/?p=packages%2Fphp-pecl-memcache.git;a=blobdiff_plain;f=php-pecl-memcache.spec;h=1d8f84af087b7d68fa5eb3cc0b1649dd0ad41be0;hp=a6458a1e26fe737b73291b653e317f4903a1956c;hb=9600d33447799d2af91318d8bf2f7b341b267ebb;hpb=406677dce8007c555c8095f75fd823b280ecc390 diff --git a/php-pecl-memcache.spec b/php-pecl-memcache.spec index a6458a1..1d8f84a 100644 --- a/php-pecl-memcache.spec +++ b/php-pecl-memcache.spec @@ -1,24 +1,58 @@ -%define _modname memcache -%define _status stable - -Summary: %{_modname} - a memcached extension -Summary(pl): %{_modname} - rozszerzenie memcached -Name: php-pecl-%{_modname} -Version: 1.4 +# +# Conditional build: +%bcond_without tests # build without tests + +%define php_name php%{?php_suffix} +%define modname memcache +%define php_min_version 5.0.0 +%define commit e702b5f91 +%include /usr/lib/rpm/macros.php +Summary: %{modname} - a memcached extension +Summary(pl.UTF-8): %{modname} - rozszerzenie memcached +Name: %{php_name}-pecl-%{modname} +Version: 4.0.3 Release: 1 -License: PHP 2.02 +License: PHP 3.01 Group: Development/Languages/PHP -Source0: http://pecl.php.net/get/%{_modname}-%{version}.tgz -# Source0-md5: da079652629ba2726d8e66563231bc6b -URL: http://pecl.php.net/package/memcached/ -BuildRequires: libtool -BuildRequires: php-devel -Requires: php-common >= 3:4.3.3 -Obsoletes: php-pear-%{_modname} +Source0: https://github.com/websupport-sk/pecl-memcache/archive/%{version}/%{modname}-%{version}.tar.gz +# Source0-md5: 21a001ef690a1397a8b62990254cc8c2 +Source1: %{modname}.ini +Source2: %{modname}-apache.conf +Source3: %{modname}-lighttpd.conf +Source4: config.php +Patch0: %{modname}-webapp.patch +URL: https://github.com/websupport-sk/pecl-memcache/ +BuildRequires: %{php_name}-devel >= 3:5.0.0 +BuildRequires: %{php_name}-xml +BuildRequires: php-packagexml2cl +BuildRequires: rpm-php-pearprov >= 4.4.2-11 +BuildRequires: rpmbuild(macros) >= 1.650 +%if %{with tests} +BuildRequires: %{php_name}-cli +BuildRequires: %{php_name}-pcre +BuildRequires: %{php_name}-session +BuildRequires: %{php_name}-simplexml +BuildRequires: %{php_name}-spl +BuildRequires: memcached +%endif +%{?requires_php_extension} +Requires: %{php_name}-session +Requires: %{php_name}-zlib +Suggests: memcached +Provides: php(memcache) = %{version} +Obsoletes: php-pecl-memcache < 3.0.8-5 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define _sysconfdir /etc/php -%define extensionsdir %{_libdir}/php +%define _webapps /etc/webapps +%define _webapp %{modname} +%define _sysconfdir %{_webapps}/%{_webapp} +%define _appdir %{_datadir}/%{_webapp} + +# bad depsolver +%define _noautopear pear + +# put it together for rpmbuild +%define _noautoreq %{?_noautophp} %{?_noautopear} %description Memcached is a caching daemon designed especially for dynamic web @@ -27,45 +61,156 @@ applications to decrease database load by storing objects in memory. This extension allows you to work with memcached through handy OO and procedural interfaces. -In PECL status of this extension is: %{_status}. - -%description -l pl +%description -l pl.UTF-8 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych -daemon cachuj±cy maj±cy za zadanie zmniejszenie obci±¿enia bazy danych -przez przechowywanie w pamiêci obiektów. +daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych +przez przechowywanie w pamięci obiektów. -To rozszerzenie umo¿liwia pracê z memcached za pomoc± porêcznego +To rozszerzenie umożliwia pracę z memcached za pomocą poręcznego zorientowanego obiektowo (oraz przez procedury) interfejsu. -To rozszerzenie ma w PECL status: %{_status}. +%package web +Summary: Web interface for memcache +Group: Libraries +# does not require extension itself +Requires: php(core) >= %{php_min_version} +Requires: php(date) +Requires: php(gd) +Requires: php(pcre) +Requires: webapps +Requires: webserver(php) >= 5.0 +%if "%{_rpmversion}" >= "5" +BuildArch: noarch +%endif + +%description web +Via this web interface script you can manage and view statistics of +memcache. %prep -%setup -q -c +%setup -qc +mv pecl-%{modname}-*/{.??*,*} . +%patch0 -p1 + +# skip failed tests +xfail() { + set +x + while read s; do + t=$(echo "$s" | sed -rne 's/.+\[(.+)\]/\1/p') + + test -f "$t" + echo >&2 "XFAIL: $s" + cat >> $t <<-EOF + + --XFAIL-- + Skip + EOF + done +} + +xfail <<'EOF' +EOF %build -cd %{_modname}-%{version} +packagexml2cl package.xml > ChangeLog phpize -%configure +%configure \ + --with-zlib-dir=/usr %{__make} +%if %{with tests} +# simple module load test +%{__php} -n -q \ + -d extension_dir=modules \ + -d extension=%{php_extensiondir}/pcre.so \ + -d extension=%{php_extensiondir}/simplexml.so \ + -d extension=%{php_extensiondir}/spl.so \ + -d extension=%{php_extensiondir}/session.so \ + -d extension=%{modname}.so \ + -m > modules.log +grep %{modname} modules.log + +cat <<'EOF' > run-tests.sh +#!/bin/sh +export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2 +exec %{__make} test \ + PHP_EXECUTABLE=%{__php} \ + PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre simplexml spl session" \ + RUN_TESTS_SETTINGS="-q $*" +EOF +chmod +x run-tests.sh + +# Launch the Memcached service and stop it on exit +%{_sbindir}/memcached -p 11211 -U 11211 -d -P $PWD/memcached.pid +trap 'kill $(cat memcached.pid)' EXIT INT + +./run-tests.sh +%endif + %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT%{extensionsdir} - -install %{_modname}-%{version}/modules/%{_modname}.so $RPM_BUILD_ROOT%{extensionsdir} +install -d $RPM_BUILD_ROOT{%{php_sysconfdir}/conf.d,%{php_extensiondir},%{_examplesdir}/%{name}-%{version}} +install -p modules/%{modname}.so $RPM_BUILD_ROOT%{php_extensiondir} +# we use "session_" prefix in inifile to get loader *after* session extension +cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/session_%{modname}.ini +cp -p example.php $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} + +install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_appdir}} +cp -p memcache.php $RPM_BUILD_ROOT%{_appdir} +cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/config.php +cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf +cp -p $RPM_BUILD_ROOT%{_sysconfdir}/{apache,httpd}.conf +cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf %clean rm -rf $RPM_BUILD_ROOT %post -%{_sbindir}/php-module-install install %{_modname} %{_sysconfdir}/php-cgi.ini +%php_webserver_restart -%preun -if [ "$1" = "0" ]; then - %{_sbindir}/php-module-install remove %{_modname} %{_sysconfdir}/php-cgi.ini +%postun +if [ "$1" = 0 ]; then + %php_webserver_restart fi +%triggerpostun -- %{name} < 3.0.4-2 +if [ -f %{php_sysconfdir}/conf.d/%{modname}.ini.rpmsave ]; then + echo >&2 "Restoring old config: %{modname}.ini.rpmsave -> session_%{modname}.ini in %{php_sysconfdir}/conf.d" + cp -f %{php_sysconfdir}/conf.d/session_%{modname}.ini{,.rpmnew} + mv -f %{php_sysconfdir}/conf.d/{%{modname}.ini.rpmsave,session_%{modname}.ini} + %php_webserver_restart +fi + +%triggerin web -- apache1 < 1.3.37-3, apache1-base +%webapp_register apache %{_webapp} + +%triggerun web -- apache1 < 1.3.37-3, apache1-base +%webapp_unregister apache %{_webapp} + +%triggerin web -- apache < 2.2.0, apache-base +%webapp_register httpd %{_webapp} + +%triggerun web -- apache < 2.2.0, apache-base +%webapp_unregister httpd %{_webapp} + +%triggerin web -- lighttpd +%webapp_register lighttpd %{_webapp} + +%triggerun web -- lighttpd +%webapp_unregister lighttpd %{_webapp} + %files %defattr(644,root,root,755) -%doc %{_modname}-%{version}/{CREDITS,README} -%attr(755,root,root) %{extensionsdir}/%{_modname}.so +%doc CREDITS README ChangeLog +%config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/session_%{modname}.ini +%attr(755,root,root) %{php_extensiondir}/%{modname}.so +%{_examplesdir}/%{name}-%{version} + +%files web +%defattr(644,root,root,755) +%dir %attr(750,root,http) %{_sysconfdir} +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf +%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php +%{_appdir}