]> 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 3cbf8e1a573b07e136808528ada371bc412bd066..1d8f84af087b7d68fa5eb3cc0b1649dd0ad41be0 100644 (file)
@@ -1,24 +1,59 @@
-%define                _modname        memcache
-%define                _status         stable
-Summary:       %{_modname} - a memcached extension
-Summary(pl.UTF-8):     %{_modname} - rozszerzenie memcached
-Name:          php-pecl-%{_modname}
-Version:       3.0.1
-Release:       2
-License:       PHP 2.02
+#
+# 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 3.01
 Group:         Development/Languages/PHP
-Source0:       http://pecl.php.net/get/%{_modname}-%{version}.tgz
-# Source0-md5: 1c340c7ffcd10fcbee9f06c7158eded5
-URL:           http://pecl.php.net/package/memcache/
-BuildRequires: php-devel >= 3:5.0.0
-BuildRequires: rpmbuild(macros) >= 1.344
+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-common >= 4:5.0.4
-Requires:      php(zlib)
-#Sugests:      memcached
-Obsoletes:     php-pear-%{_modname}
+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                _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
 applications to decrease database load by storing objects in memory.
@@ -26,8 +61,6 @@ 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.UTF-8
 Memcached to zaprojektowany dla dynamicznych aplikacji internetowych
 daemon cachujący mający za zadanie zmniejszenie obciążenia bazy danych
@@ -36,35 +69,98 @@ przez przechowywanie w pamięci obiektów.
 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 \
        --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{%{php_sysconfdir}/conf.d,%{php_extensiondir}}
-
-install %{_modname}-%{version}/modules/%{_modname}.so $RPM_BUILD_ROOT%{php_extensiondir}
-cat <<'EOF' > $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/%{_modname}.ini
-; Enable %{_modname} extension module
-extension=%{_modname}.so
-;memcache.allow_failover=1
-;memcache.chunk_size=8192
-;memcache.default_port=11211
-;memcache.protocol=ascii
-;memcache.redudndancy=1
-;memcache.session_redundancy=2
-;memcache.hash_strategy=consistent
-;memcache.hash_function=crc32
-EOF
+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
@@ -77,8 +173,44 @@ 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}
-%config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/%{_modname}.ini
-%attr(755,root,root) %{php_extensiondir}/%{_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.122307 seconds and 4 git commands to generate.