From 775c0ac1b50286bb4888ede224578848a2814b7f Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 17 Jun 2013 18:06:46 +0200 Subject: php-pecl-redis: switch to remi spec --- php-pecl-redis-dev.spec | 242 --------------------------------------------- php-pecl-redis.spec | 258 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 258 insertions(+), 242 deletions(-) delete mode 100644 php-pecl-redis-dev.spec create mode 100644 php-pecl-redis.spec diff --git a/php-pecl-redis-dev.spec b/php-pecl-redis-dev.spec deleted file mode 100644 index 116d7a1..0000000 --- a/php-pecl-redis-dev.spec +++ /dev/null @@ -1,242 +0,0 @@ -%{!?__pecl: %{expand: %%global __pecl %{_bindir}/pecl}} - -%global pecl_name redis - -%if 0%{?fedora} >= 18 -%ifarch ppc64 -# redis have ExcludeArch: ppc64 -%global with_test 0 -%else -%global with_test 1 -%endif -%else -# redis version is too old -%global with_test 0 -%endif - -Summary: Extension for communicating with the Redis key-value store -Name: php-pecl-redis -Version: 2.2.3 -Release: 1%{?dist} -License: PHP -Group: Development/Languages -URL: http://pecl.php.net/package/redis -Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz -# https://github.com/nicolasff/phpredis/issues/332 - missing tests -Source1: https://github.com/nicolasff/phpredis/archive/%{version}.tar.gz - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root -BuildRequires: php-devel -BuildRequires: php-pecl-igbinary-devel -# to run Test suite -%if %{with_test} -BuildRequires: redis >= 2.6 -%endif - -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} -Obsoletes: php-redis < %{version} -Provides: php-redis = %{version}-%{release} -Provides: php-redis%{?_isa} = %{version}-%{release} -Provides: php-pecl(%{pecl_name}) = %{version} -Provides: php-pecl(%{pecl_name})%{?_isa} = %{version} - -# Filter private shared object -%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} -%{?filter_setup} - - -%description -The phpredis extension provides an API for communicating -with the Redis key-value store. - -This Redis client implements most of the latest Redis API. -As method only only works when also implemented on the server side, -some doesn't work with an old redis server version. - - -%prep -%setup -q -c -a 1 - -# rename source folder -mv %{pecl_name}-%{version} nts -# tests folder from github archive -mv phpredis-%{version}/tests nts/tests - -# 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 - -# duplicate for ZTS build -cp -pr nts zts - -# Drop in the bit of configuration -cat > %{pecl_name}.ini << 'EOF' -; Enable %{pecl_name} extension module -extension = %{pecl_name}.so - -; phpredis can be used to store PHP sessions. -; To do this, uncomment and configure below -;session.save_handler = %{pecl_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 \ - --enable-redis \ - --enable-redis-session \ - --enable-redis-igbinary \ - --with-php-config=%{_bindir}/php-config -make %{?_smp_mflags} - -cd ../zts -%{_bindir}/zts-phpize -%configure \ - --enable-redis \ - --enable-redis-session \ - --enable-redis-igbinary \ - --with-php-config=%{_bindir}/zts-php-config -make %{?_smp_mflags} - - -%install -rm -rf %{buildroot} -# for short circuit -rm -f ?ts/modules/igbinary.so - -# Install the NTS stuff -make -C nts install INSTALL_ROOT=%{buildroot} -install -D -m 644 %{pecl_name}.ini %{buildroot}%{php_inidir}/%{pecl_name}.ini - -# Install the ZTS stuff -make -C zts install INSTALL_ROOT=%{buildroot} -install -D -m 644 %{pecl_name}.ini %{buildroot}%{php_ztsinidir}/%{pecl_name}.ini - -# Install the package XML file -install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml - - -%check -# simple module load test -ln -sf %{php_extdir}/igbinary.so nts/modules/igbinary.so -php --no-php-ini \ - --define extension_dir=nts/modules \ - --define extension=igbinary.so \ - --define extension=%{pecl_name}.so \ - --modules | grep %{pecl_name} - -ln -sf %{php_ztsextdir}/igbinary.so zts/modules/igbinary.so -%{__ztsphp} --no-php-ini \ - --define extension_dir=zts/modules \ - --define extension=igbinary.so \ - --define extension=%{pecl_name}.so \ - --modules | grep %{pecl_name} - -%if %{with_test} -cd nts/tests - -# this test requires redis >= 2.6.9 -# https://github.com/nicolasff/phpredis/pull/333 -sed -e s/testClient/SKIP_testClient/ \ - -i TestRedis.php - -# Launch redis server -mkdir -p {run,log,lib}/redis -sed -e "s:/var:$PWD:" \ - -e "/daemonize/s/no/yes/" \ - /etc/redis.conf >redis.conf -# port number to allow 32/64 build at same time -# and avoid conflict with a possible running server -%if 0%{?__isa_bits} -port=$(expr %{__isa_bits} + 6350) -%else -%ifarch x86_64 -port=6414 -%else -port=6382 -%endif -%endif -sed -e "s/6379/$port/" -i redis.conf -sed -e "s/6379/$port/" -i TestRedis.php -%{_sbindir}/redis-server ./redis.conf - -# Run the test Suite -ret=0 -php --no-php-ini \ - --define extension_dir=../modules \ - --define extension=igbinary.so \ - --define extension=%{pecl_name}.so \ - TestRedis.php || ret=1 - -# Cleanup -if [ -f run/redis/redis.pid ]; then - kill $(cat run/redis/redis.pid) -fi - -exit $ret - -%else -: Upstream test suite disabled -%endif - - -%post -%{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : - - -%postun -if [ $1 -eq 0 ] ; then - %{pecl_uninstall} %{pecl_name} >/dev/null || : -fi - - -%clean -rm -rf %{buildroot} - - -%files -%defattr(-,root,root,-) -%doc nts/{COPYING,CREDITS,README.markdown,arrays.markdown} -%{pecl_xmldir}/%{name}.xml - -%{php_extdir}/%{pecl_name}.so -%config(noreplace) %{php_inidir}/%{pecl_name}.ini - -%{php_ztsextdir}/%{pecl_name}.so -%config(noreplace) %{php_ztsinidir}/%{pecl_name}.ini - - -%changelog -* Tue Apr 30 2013 Remi Collet - 2.2.3-1 -- update to 2.2.3 -- upstream moved to pecl, rename from php-redis to php-pecl-redis - -* Tue Sep 11 2012 Remi Collet - 2.2.2-5.git6f7087f -- more docs and improved description - -* Sun Sep 2 2012 Remi Collet - 2.2.2-4.git6f7087f -- latest snahot (without bundled igbinary) -- remove chmod (done upstream) - -* Sat Sep 1 2012 Remi Collet - 2.2.2-3.git5df5153 -- run only test suite with redis > 2.4 - -* Fri Aug 31 2012 Remi Collet - 2.2.2-2.git5df5153 -- latest master -- run test suite - -* Wed Aug 29 2012 Remi Collet - 2.2.2-1 -- update to 2.2.2 -- enable ZTS build - -* Tue Aug 28 2012 Remi Collet - 2.2.1-1 -- initial package - diff --git a/php-pecl-redis.spec b/php-pecl-redis.spec new file mode 100644 index 0000000..3e8537b --- /dev/null +++ b/php-pecl-redis.spec @@ -0,0 +1,258 @@ +# spec file for php-pecl-redis +# +# Copyright (c) 2012-2013 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/3.0/ +# +# Please, preserve the changelog entries +# +%{!?__pecl: %{expand: %%global __pecl %{_bindir}/pecl}} + +%global pecl_name redis + +%if 0%{?fedora} >= 17 || 0%{?rhel} >= 6 +%ifarch ppc64 +# redis have ExcludeArch: ppc64 +%global with_test 0 +%else +%global with_test 1 +%endif +%else +# redis version is too old +%global with_test 0 +%endif + +Summary: Extension for communicating with the Redis key-value store +Name: php-pecl-redis +Version: 2.2.3 +Release: 1%{?dist} +License: PHP +Group: Development/Languages +URL: http://pecl.php.net/package/redis +Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz +# https://github.com/nicolasff/phpredis/issues/332 - missing tests +Source1: https://github.com/nicolasff/phpredis/archive/%{version}.tar.gz + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +BuildRequires: php-devel +BuildRequires: php-pecl-igbinary-devel +# to run Test suite +%if %{with_test} +BuildRequires: redis >= 2.6 +%endif + +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} +Obsoletes: php-redis < %{version} +Provides: php-redis = %{version}-%{release} +Provides: php-redis%{?_isa} = %{version}-%{release} +Provides: php-pecl(%{pecl_name}) = %{version} +Provides: php-pecl(%{pecl_name})%{?_isa} = %{version} + +# Other third party repo stuff +Obsoletes: php53-pecl-%{pecl_name} +Obsoletes: php53u-pecl-%{pecl_name} +Obsoletes: php54-pecl-%{pecl_name} +%if "%{php_version}" > "5.5" +Obsoletes: php55-pecl-%{pecl_name} +%endif + +# Filter private shared object +%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} +%{?filter_setup} + + +%description +The phpredis extension provides an API for communicating +with the Redis key-value store. + +This Redis client implements most of the latest Redis API. +As method only only works when also implemented on the server side, +some doesn't work with an old redis server version. + + +%prep +%setup -q -c -a 1 + +# rename source folder +mv %{pecl_name}-%{version} nts +# tests folder from github archive +mv phpredis-%{version}/tests nts/tests + +# 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 + +# duplicate for ZTS build +cp -pr nts zts + +# Drop in the bit of configuration +cat > %{pecl_name}.ini << 'EOF' +; Enable %{pecl_name} extension module +extension = %{pecl_name}.so + +; phpredis can be used to store PHP sessions. +; To do this, uncomment and configure below +;session.save_handler = %{pecl_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 \ + --enable-redis \ + --enable-redis-session \ + --enable-redis-igbinary \ + --with-php-config=%{_bindir}/php-config +make %{?_smp_mflags} + +cd ../zts +%{_bindir}/zts-phpize +%configure \ + --enable-redis \ + --enable-redis-session \ + --enable-redis-igbinary \ + --with-php-config=%{_bindir}/zts-php-config +make %{?_smp_mflags} + + +%install +rm -rf %{buildroot} +# for short circuit +rm -f ?ts/modules/igbinary.so + +# Install the NTS stuff +make -C nts install INSTALL_ROOT=%{buildroot} +install -D -m 644 %{pecl_name}.ini %{buildroot}%{php_inidir}/%{pecl_name}.ini + +# Install the ZTS stuff +make -C zts install INSTALL_ROOT=%{buildroot} +install -D -m 644 %{pecl_name}.ini %{buildroot}%{php_ztsinidir}/%{pecl_name}.ini + +# Install the package XML file +install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml + + +%check +# simple module load test +ln -sf %{php_extdir}/igbinary.so nts/modules/igbinary.so +php --no-php-ini \ + --define extension_dir=nts/modules \ + --define extension=igbinary.so \ + --define extension=%{pecl_name}.so \ + --modules | grep %{pecl_name} + +ln -sf %{php_ztsextdir}/igbinary.so zts/modules/igbinary.so +%{__ztsphp} --no-php-ini \ + --define extension_dir=zts/modules \ + --define extension=igbinary.so \ + --define extension=%{pecl_name}.so \ + --modules | grep %{pecl_name} + +%if %{with_test} +cd nts/tests + +# this test requires redis >= 2.6.9 +# https://github.com/nicolasff/phpredis/pull/333 +sed -e s/testClient/SKIP_testClient/ \ + -i TestRedis.php + +# Launch redis server +mkdir -p {run,log,lib}/redis +sed -e "s:/var:$PWD:" \ + -e "/daemonize/s/no/yes/" \ + /etc/redis.conf >redis.conf +# port number to allow 32/64 build at same time +# and avoid conflict with a possible running server +%if 0%{?__isa_bits} +port=$(expr %{__isa_bits} + 6350) +%else +%ifarch x86_64 +port=6414 +%else +port=6382 +%endif +%endif +sed -e "s/6379/$port/" -i redis.conf +sed -e "s/6379/$port/" -i TestRedis.php +%{_sbindir}/redis-server ./redis.conf + +# Run the test Suite +ret=0 +php --no-php-ini \ + --define extension_dir=../modules \ + --define extension=igbinary.so \ + --define extension=%{pecl_name}.so \ + TestRedis.php || ret=1 + +# Cleanup +if [ -f run/redis/redis.pid ]; then + kill $(cat run/redis/redis.pid) +fi + +exit $ret + +%else +: Upstream test suite disabled +%endif + + +%post +%{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : + + +%postun +if [ $1 -eq 0 ] ; then + %{pecl_uninstall} %{pecl_name} >/dev/null || : +fi + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%doc nts/{COPYING,CREDITS,README.markdown,arrays.markdown} +%{pecl_xmldir}/%{name}.xml + +%{php_extdir}/%{pecl_name}.so +%config(noreplace) %{php_inidir}/%{pecl_name}.ini + +%{php_ztsextdir}/%{pecl_name}.so +%config(noreplace) %{php_ztsinidir}/%{pecl_name}.ini + + +%changelog +* Tue Apr 30 2013 Remi Collet - 2.2.3-1 +- update to 2.2.3 +- upstream moved to pecl, rename from php-redis to php-pecl-redis + +* Tue Sep 11 2012 Remi Collet - 2.2.2-5.git6f7087f +- more docs and improved description + +* Sun Sep 2 2012 Remi Collet - 2.2.2-4.git6f7087f +- latest snahot (without bundled igbinary) +- remove chmod (done upstream) + +* Sat Sep 1 2012 Remi Collet - 2.2.2-3.git5df5153 +- run only test suite with redis > 2.4 + +* Fri Aug 31 2012 Remi Collet - 2.2.2-2.git5df5153 +- latest master +- run test suite + +* Wed Aug 29 2012 Remi Collet - 2.2.2-1 +- update to 2.2.2 +- enable ZTS build + +* Tue Aug 28 2012 Remi Collet - 2.2.1-1 +- initial package + -- cgit