summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2014-10-04 18:44:57 +0200
committerRemi Collet <fedora@famillecollet.com>2014-10-04 18:44:57 +0200
commitc0e24453c8cf8dfdfdcf6dda082eb67652cf0f0c (patch)
tree26c4f56ba33ceb3f6d0b294ad9b1def92c3811b8
parentc0e9660da5644ab6503a9ec91c10c429359452e4 (diff)
php-pecl-redis: fix segfault with igbinary serializer
-rw-r--r--php-pecl-redis.spec53
-rw-r--r--redis-igbinary.patch2
2 files changed, 30 insertions, 25 deletions
diff --git a/php-pecl-redis.spec b/php-pecl-redis.spec
index 974a673..124c7ea 100644
--- a/php-pecl-redis.spec
+++ b/php-pecl-redis.spec
@@ -25,7 +25,7 @@
Summary: Extension for communicating with the Redis key-value store
Name: %{?scl_prefix}php-pecl-redis
Version: 2.2.5
-Release: 4%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}.1
+Release: 5%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}
License: PHP
Group: Development/Languages
URL: http://pecl.php.net/package/redis
@@ -50,6 +50,8 @@ Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api}
Requires: %{?scl_prefix}php(api) = %{php_core_api}
# php-pecl-igbinary missing php-pecl(igbinary)%{?_isa}
Requires: %{?scl_prefix}php-pecl-igbinary%{?_isa}
+%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}}
+
Obsoletes: %{?scl_prefix}php-redis < %{version}
Provides: %{?scl_prefix}php-redis = %{version}-%{release}
Provides: %{?scl_prefix}php-redis%{?_isa} = %{version}-%{release}
@@ -58,17 +60,17 @@ Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version}
%if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1}
# Other third party repo stuff
-Obsoletes: php53-pecl-%{pecl_name}
-Obsoletes: php53u-pecl-%{pecl_name}
-Obsoletes: php54-pecl-%{pecl_name}
-Obsoletes: php54w-pecl-%{pecl_name}
+Obsoletes: php53-pecl-%{pecl_name} <= %{version}
+Obsoletes: php53u-pecl-%{pecl_name} <= %{version}
+Obsoletes: php54-pecl-%{pecl_name} <= %{version}
+Obsoletes: php54w-pecl-%{pecl_name} <= %{version}
%if "%{php_version}" > "5.5"
-Obsoletes: php55u-pecl-%{pecl_name}
-Obsoletes: php55w-pecl-%{pecl_name}
+Obsoletes: php55u-pecl-%{pecl_name} <= %{version}
+Obsoletes: php55w-pecl-%{pecl_name} <= %{version}
%endif
%if "%{php_version}" > "5.6"
-Obsoletes: php56u-pecl-%{pecl_name}
-Obsoletes: php56w-pecl-%{pecl_name}
+Obsoletes: php56u-pecl-%{pecl_name} <= %{version}
+Obsoletes: php56w-pecl-%{pecl_name} <= %{version}
%endif
%endif
@@ -87,16 +89,18 @@ 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.
+Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection}.
+
%prep
%setup -q -c -a 1
# rename source folder
-mv %{pecl_name}-%{version} nts
+mv %{pecl_name}-%{version} NTS
# tests folder from github archive
-mv phpredis-%{version}/tests nts/tests
+mv phpredis-%{version}/tests NTS/tests
-cd nts
+cd NTS
%patch0 -p1 -b .php56
%patch1 -p1 -b .igbinary
@@ -110,7 +114,7 @@ cd ..
%if %{with_zts}
# duplicate for ZTS build
-cp -pr nts zts
+cp -pr NTS ZTS
%endif
# Drop in the bit of configuration
@@ -131,7 +135,7 @@ EOF
%build
-cd nts
+cd NTS
%{_bindir}/phpize
%configure \
--enable-redis \
@@ -141,7 +145,7 @@ cd nts
make %{?_smp_mflags}
%if %{with_zts}
-cd ../zts
+cd ../ZTS
%{_bindir}/zts-phpize
%configure \
--enable-redis \
@@ -156,20 +160,20 @@ make %{?_smp_mflags}
rm -rf %{buildroot}
# Install the NTS stuff
-make -C nts install INSTALL_ROOT=%{buildroot}
+make -C NTS install INSTALL_ROOT=%{buildroot}
install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name}
%if %{with_zts}
# Install the ZTS stuff
-make -C zts install INSTALL_ROOT=%{buildroot}
+make -C ZTS install INSTALL_ROOT=%{buildroot}
install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name}
%endif
# Install the package XML file
install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml
-# Test & Documentation
-cd nts
+# Documentation
+cd NTS
for i in $(grep 'role="doc"' ../package.xml | sed -e 's/^.*name="//;s/".*$//')
do install -Dpm 644 $i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i
done
@@ -190,7 +194,7 @@ done
%endif
%if %{with_tests}
-cd nts/tests
+cd NTS/tests
# this test requires redis >= 2.6.9
# https://github.com/nicolasff/phpredis/pull/333
@@ -216,7 +220,7 @@ port=6382
%endif
sed -e "s/6379/$port/" -i redis.conf
sed -e "s/6379/$port/" -i TestRedis.php
-%{_sbindir}/redis-server ./redis.conf
+%{_bindir}/redis-server ./redis.conf
# Run the test Suite
ret=0
@@ -227,7 +231,7 @@ ret=0
# Cleanup
if [ -f run/redis.pid ]; then
- kill $(cat run/redis.pid)
+ %{_bindir}/redis-cli -p $port shutdown
fi
exit $ret
@@ -253,6 +257,7 @@ rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
+%{?_licensedir:%license NTS/COPYING}
%doc %{pecl_docdir}/%{pecl_name}
%{pecl_xmldir}/%{name}.xml
@@ -266,8 +271,8 @@ rm -rf %{buildroot}
%changelog
-* Fri Oct 3 2014 Remi Collet <rcollet@redhat.com> - 2.2.5-4.1
-- test build for segfault with igbinary
+* Fri Oct 3 2014 Remi Collet <rcollet@redhat.com> - 2.2.5-5
+- fix segfault with igbinary serializer
https://github.com/nicolasff/phpredis/issues/341
* Mon Aug 25 2014 Remi Collet <rcollet@redhat.com> - 2.2.5-4
diff --git a/redis-igbinary.patch b/redis-igbinary.patch
index 6af7538..d860c19 100644
--- a/redis-igbinary.patch
+++ b/redis-igbinary.patch
@@ -1,4 +1,4 @@
-From aecfbfd650d6b504193d48f82a4a170ce3ce4cd6 Mon Sep 17 00:00:00 2001
+From 0c4ddd90a6cfb0660cb59fd4521b40d289d6067c Mon Sep 17 00:00:00 2001
From: Remi Collet <fedora@famillecollet.com>
Date: Fri, 3 Oct 2014 19:19:33 +0200
Subject: [PATCH] Fix segfault with igbinary, fix #341