summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--horde_lz4-php7.patch57
-rw-r--r--php-horde-horde-lz4.spec38
2 files changed, 87 insertions, 8 deletions
diff --git a/horde_lz4-php7.patch b/horde_lz4-php7.patch
new file mode 100644
index 0000000..2fc4d5f
--- /dev/null
+++ b/horde_lz4-php7.patch
@@ -0,0 +1,57 @@
+From d2f0184e58d6d05569624bc52d2be76c65a9d297 Mon Sep 17 00:00:00 2001
+From: Remi Collet <fedora@famillecollet.com>
+Date: Mon, 30 Mar 2015 19:00:17 +0200
+Subject: [PATCH] Fix PHP 7 compatibility
+
+---
+ framework/lz4/horde_lz4.c | 6 +++---
+ framework/lz4/horde_lz4.h | 7 +++++++
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/framework/lz4/horde_lz4.c b/framework/lz4/horde_lz4.c
+index 28ec47f..23625be 100644
+--- a/framework/lz4/horde_lz4.c
++++ b/framework/lz4/horde_lz4.c
+@@ -87,7 +87,7 @@ PHP_FUNCTION(horde_lz4_compress)
+ RETURN_FALSE;
+ }
+
+- data_len = Z_STRLEN_P(data);
++ data_len = (int)Z_STRLEN_P(data);
+
+ output = (char *)emalloc(LZ4_compressBound(data_len) + header_offset);
+ if (!output) {
+@@ -107,7 +107,7 @@ PHP_FUNCTION(horde_lz4_compress)
+ if (output_len <= 0) {
+ RETVAL_FALSE;
+ } else {
+- RETVAL_STRINGL(output, output_len + header_offset, 1);
++ HORDE_LZ4_RETSTRL(output, output_len + header_offset);
+ }
+
+ efree(output);
+@@ -155,7 +155,7 @@ PHP_FUNCTION(horde_lz4_uncompress)
+ if (output_len <= 0) {
+ RETVAL_FALSE;
+ } else {
+- RETVAL_STRINGL(output, data_len, 1);
++ HORDE_LZ4_RETSTRL(output, data_len);
+ }
+
+ efree(output);
+diff --git a/framework/lz4/horde_lz4.h b/framework/lz4/horde_lz4.h
+index eb4e7a5..8ff3f7c 100644
+--- a/framework/lz4/horde_lz4.h
++++ b/framework/lz4/horde_lz4.h
+@@ -23,4 +23,11 @@ PHP_MINFO_FUNCTION(horde_lz4);
+ PHP_FUNCTION(horde_lz4_compress);
+ PHP_FUNCTION(horde_lz4_uncompress);
+
++#if PHP_MAJOR_VERSION < 7
++#define HORDE_LZ4_RETSTRL(a,l) RETURN_STRINGL(a,l,1)
++#else
++typedef size_t strsize;
++#define HORDE_LZ4_RETSTRL(a,l) RETURN_STRINGL(a,l)
++#endif
++
+ #endif /* PHP_HORDE_LZ4_H */
diff --git a/php-horde-horde-lz4.spec b/php-horde-horde-lz4.spec
index 7f060d6..c1f7a94 100644
--- a/php-horde-horde-lz4.spec
+++ b/php-horde-horde-lz4.spec
@@ -29,26 +29,28 @@
Summary: Horde LZ4 Compression Extension
Name: %{?scl_prefix}php-horde-horde-lz4
Version: 1.0.7
-Release: 1%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}.1
+Release: 2%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}
License: MIT
Group: Development/Languages
URL: http://www.horde.org
Source0: http://%{pecl_channel}/get/%{pecl_name}-%{version}.tgz
+# https://github.com/horde/horde/pull/132
+Patch0: %{pecl_name}-php7.patch
+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{?scl_prefix}php-devel
BuildRequires: %{?scl_prefix}php-pear
-BuildRequires: %{?scl_prefix}php-channel(%{pecl_channel})
BuildRequires: lz4-devel
%if %{with_tests}
BuildRequires: %{_bindir}/phpunit
%endif
-Requires(post): %{__pecl}
-Requires(postun): %{__pecl}
Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api}
Requires: %{?scl_prefix}php(api) = %{php_core_api}
+%if ! 0%{?scl:1}
Requires: %{?scl_prefix}php-channel(%{pecl_channel})
+%endif
%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}}
Provides: %{?scl_prefix}php-%{pecl_name} = %{version}
@@ -88,12 +90,20 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO
%prep
%setup -q -c
+
+# Don't install/register tests
+# Don't install bundled libz4
+sed -e 's/role="test"/role="src"/' \
+ -e '/name="lib/d' \
+ -i package.xml
+
mv %{pecl_name}-%{version} NTS
cd NTS
# Use system library
rm -r lib
-sed -e '/name="lib/d' -i ../package.xml
+
+%patch0 -p3 -b .php7
# Sanity check, really often broken
extver=$(sed -n '/#define HORDE_LZ4_EXT_VERSION/{s/.* "//;s/".*$//;p}' horde_lz4.h)
@@ -156,12 +166,20 @@ do install -Dpm 644 NTS/$i %{buildroot}%{pear_docdir}/%{pecl_name}/$i
done
-%post
-%{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || :
+# when pear installed alone, after us
+%triggerin -- %{?scl_prefix}php-pear
+if [ -x %{__pecl} ] ; then
+ %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || :
+fi
+# posttrans as pear can be installed after us
+%posttrans
+if [ -x %{__pecl} ] ; then
+ %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || :
+fi
%postun
-if [ $1 -eq 0 ] ; then
+if [ $1 -eq 0 -a -x %{__pecl} ] ; then
%{pecl_uninstall} %{pecl_channel}/%{pecl_name} >/dev/null || :
fi
@@ -211,6 +229,10 @@ rm -rf %{buildroot}
%changelog
+* Mon Mar 30 2015 Remi Collet <remi@fedoraproject.org> 1.0.7-2
+- add fix for PHP 7
+- drop runtime dependency on pear, new scriptlets
+
* Wed Dec 24 2014 Remi Collet <remi@fedoraproject.org> 1.0.7-1.1
- Fedora 21 SCL mass rebuild