]> git.pld-linux.org Git - packages/php-pecl-memcache.git/blobdiff - php-pecl-memcache.spec
php 5.2 deps
[packages/php-pecl-memcache.git] / php-pecl-memcache.spec
index a6458a1e26fe737b73291b653e317f4903a1956c..1d8f84af087b7d68fa5eb3cc0b1649dd0ad41be0 100644 (file)
@@ -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
 Release:       1
-License:       PHP 2.02
+License:       PHP 3.01
 Group:         Development/Languages/PHP
 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)
 
 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
 
 %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.
 
 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
 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.
 
 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
 
 %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
 
 %build
-cd %{_modname}-%{version}
+packagexml2cl package.xml > ChangeLog
 phpize
 phpize
-%configure
+%configure \
+       --with-zlib-dir=/usr
 %{__make}
 
 %{__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
 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
 
 %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
 
 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)
 %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}
This page took 0.079529 seconds and 4 git commands to generate.