From 64720d905bc5c9b97effae68623ca9f457db02ca Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 28 Aug 2012 17:09:15 +0200 Subject: php-redis: new package --- Makefile | 4 ++ php-redis.spec | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 Makefile create mode 100644 php-redis.spec diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..91b0fd5 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../common/Makefile + diff --git a/php-redis.spec b/php-redis.spec new file mode 100644 index 0000000..2e5faeb --- /dev/null +++ b/php-redis.spec @@ -0,0 +1,140 @@ +%global ext_name redis + +# not yet ready for zts, change to 0%{?__ztsphp:1} when ready +%global with_zts 0 + +Summary: Extension for communicating with the Redis key-value store +Name: php-%{ext_name} +Version: 2.2.1 +Release: 1%{?dist} +License: PHP +Group: Development/Languages +URL: https://github.com/nicolasff/phpredis +# wget https://github.com/nicolasff/phpredis/tarball/2.2.1 -O php-redis-2.2.1.tgz +# also check content from top dir (nicolasff-phpredis-250e81b) +Source: %{name}-%{version}.tgz + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +BuildRequires: php-devel +BuildRequires: php-pecl-igbinary-devel + +Requires: php(zend-abi) = %{php_zend_api} +Requires: php(api) = %{php_core_api} +# php-pecl-igbinary missing php-pecl(igbinary)%{?_isa} +Requires: php-pecl-igbinary%{?_isa} + +# RPM 4.8 +%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} +%{?filter_setup} +# RPM 4.9 +%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}%{_libdir}/.*\\.so$ + + +%description +The phpredis extension provides an API for communicating +with the Redis key-value store. + + +%prep +%setup -q -c + +# rename source folder +mv nicolasff-phpredis-* nts + +chmod -x nts/*{c,h} + +# remove bundled lib +rm -rf nts/igbinary +sed -e 's:igbinary/[^ ]*\.c::g' \ + -i nts/config.m4 + +# Sanity check, really often broken +extver=$(sed -n '/#define PHP_REDIS_VERSION/{s/.* "//;s/".*$//;p}' nts/php_redis.h) +if test "x${extver}" != "x%{version}"; then + : Error: Upstream extension version is ${extver}, expecting %{version}. + exit 1 +fi + +%if %{with_zts} +# duplicate for ZTS build +cp -pr nts zts +%endif + +# Drop in the bit of configuration +cat > %{ext_name}.ini << 'EOF' +; Enable %{ext_name} extension module +extension = %{ext_name}.so + +; phpredis can be used to store PHP sessions. +; To do this, uncomment and configure below +;session.save_handler = %{ext_name} +;session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2" +EOF + + +%build +cd nts +%{_bindir}/phpize +%configure --with-php-config=%{_bindir}/php-config +make %{?_smp_mflags} + +%if %{with_zts} +cd ../zts +%{_bindir}/zts-phpize +%configure --with-php-config=%{_bindir}/zts-php-config +make %{?_smp_mflags} +%endif + + +%install +rm -rf %{buildroot} +# Install the NTS stuff +make -C nts install INSTALL_ROOT=%{buildroot} +install -D -m 644 %{ext_name}.ini %{buildroot}%{_sysconfdir}/php.d/%{ext_name}.ini + +# Install the ZTS stuff +%if %{with_zts} +make -C zts install INSTALL_ROOT=%{buildroot} +install -D -m 644 %{ext_name}.ini %{buildroot}%{php_ztsinidir}/%{ext_name}.ini +%endif + + +%check +# simple module load test +ln -s %{php_extdir}/igbinary.so nts/modules/ +%{__php} --no-php-ini \ + --define extension_dir=nts/modules \ + --define extension=igbinary.so \ + --define extension=%{ext_name}.so \ + --modules | grep %{ext_name} + +%if %{with_zts} +ln -s %{php_ztsextdir}/igbinary.so zts/modules/ +%{__ztsphp} --no-php-ini \ + --define extension_dir=zts/modules \ + --define extension=igbinary.so \ + --define extension=%{ext_name}.so \ + --modules | grep %{ext_name} +%endif + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%doc nts/COPYING nts/CREDITS nts/README.markdown +%config(noreplace) %{_sysconfdir}/php.d/%{ext_name}.ini +%{php_extdir}/%{ext_name}.so + +%if %{with_zts} +%{php_ztsextdir}/%{ext_name}.so +%config(noreplace) %{php_ztsinidir}/%{ext_name}.ini +%endif + + +%changelog +* Tue Aug 28 2012 Remi Collet - 2.2.1-1 +- initial package + -- cgit