From 86d035311cc6f463a2888beb62c3dba197a9b1ff Mon Sep 17 00:00:00 2001 From: Brian Evans Date: Wed, 7 Dec 2016 15:42:12 -0500 Subject: dev-php/pecl-xrange: Revbump to drop php 5.4 and 5.5 dependencies This package has not been ported and fails with PHP 7.0. Patches are welcome, but this package is in danger of being dropped when PHP 5.6 becomes obsolete. Package-Manager: portage-2.3.2 --- dev-php/pecl-xrange/files/1.3.2-fixes.patch | 133 ++++++++++++++++++++++++ dev-php/pecl-xrange/pecl-xrange-1.3.2-r2.ebuild | 25 +++++ 2 files changed, 158 insertions(+) create mode 100644 dev-php/pecl-xrange/files/1.3.2-fixes.patch create mode 100644 dev-php/pecl-xrange/pecl-xrange-1.3.2-r2.ebuild (limited to 'dev-php') diff --git a/dev-php/pecl-xrange/files/1.3.2-fixes.patch b/dev-php/pecl-xrange/files/1.3.2-fixes.patch new file mode 100644 index 000000000000..4664a5d1feb2 --- /dev/null +++ b/dev-php/pecl-xrange/files/1.3.2-fixes.patch @@ -0,0 +1,133 @@ +--- a/xrange.c 2012/07/28 23:20:09 326859 ++++ b/xrange.c 2013/10/06 11:48:38 331707 +@@ -175,21 +175,21 @@ + zend_class_implements(php_xrange_xri_entry TSRMLS_CC, 1, spl_ce_Countable); + + /* Register Class: OddFilterIterator */ +- memset(&ce, sizeof(ce), '\0'); ++ memset(&ce, 0, sizeof(ce)); + INIT_CLASS_ENTRY(ce, PHP_XRANGE_ODDFILTERITERATOR_NAME, php_xrange_OddFilterIterator_functions); + ce.name_length = strlen(PHP_XRANGE_ODDFILTERITERATOR_NAME); + php_xrange_OddFilterIterator_entry = + zend_register_internal_class_ex(&ce, spl_ce_FilterIterator, NULL TSRMLS_CC); + + /* Register Class: EvenFilterIterator */ +- memset(&ce, sizeof(ce), '\0'); ++ memset(&ce, 0, sizeof(ce)); + INIT_CLASS_ENTRY(ce, PHP_XRANGE_EVENFILTERITERATOR_NAME, php_xrange_EvenFilterIterator_functions); + ce.name_length = strlen(PHP_XRANGE_EVENFILTERITERATOR_NAME); + php_xrange_EvenFilterIterator_entry = + zend_register_internal_class_ex(&ce, spl_ce_FilterIterator, NULL TSRMLS_CC); + + /* Register Class: NumericFilterIterator */ +- memset(&ce, sizeof(ce), '\0'); ++ memset(&ce, 0, sizeof(ce)); + INIT_CLASS_ENTRY(ce, PHP_XRANGE_NUMERICFILTERITERATOR_NAME, php_xrange_NumericFilterIterator_functions); + ce.name_length = strlen(PHP_XRANGE_NUMERICFILTERITERATOR_NAME); + php_xrange_NumericFilterIterator_entry = +@@ -225,13 +225,16 @@ + { + if (return_value_used) { + int param_count = ZEND_NUM_ARGS(); ++ zval ***params; ++ zval *retval = NULL; ++ zval methodName; + + /* because I'm passing the arguments as an array, I'll need to manually + check arg length. */ + if (param_count != 2 && param_count != 3) WRONG_PARAM_COUNT; + + /* retrieve the function's argument list */ +- zval ***params = (zval ***) safe_emalloc(param_count, sizeof(zval*), 0); ++ params = (zval ***) safe_emalloc(param_count, sizeof(zval*), 0); + if (zend_get_parameters_array_ex(param_count, params) == FAILURE) { + efree(params); + WRONG_PARAM_COUNT; +@@ -244,8 +247,6 @@ + ); + + /* setup call to XRangeIterator's constructor (must do manually) */ +- zval *retval = NULL; +- zval methodName; + ZVAL_STRING(&methodName, "__construct", 0); + + /* pass all arguments through to the XRangeIterator constructor */ +@@ -286,6 +287,9 @@ + Return a configured range iterator / generator */ + PHP_METHOD(PHP_XRANGE_XRI_NAME, __construct) + { ++ xrange_module_storage *internalStorage; ++ double iterations; ++ + if (!getThis()) { + php_error_docref( + NULL TSRMLS_CC, E_WARNING, "Don't call the constructor statically" +@@ -293,7 +297,7 @@ + RETURN_FALSE; + } + +- xrange_module_storage *internalStorage = PHP_XRANGE_ZOS_GET; ++ internalStorage = PHP_XRANGE_ZOS_GET; + + /* parse argument list */ + internalStorage->step = 1.0; /* default */ +@@ -322,7 +326,7 @@ + ) internalStorage->step *= -1; + + /* calculate the total number of iterations before completion */ +- double iterations = fabs( ++ iterations = fabs( + (internalStorage->high - internalStorage->low) / internalStorage->step + ); + +@@ -453,6 +457,7 @@ + PHP_METHOD(PHP_XRANGE_ODDFILTERITERATOR_NAME, accept) + { + zval *currentValue; ++ int isOdd; + + // method A: bypass getInnerIterator() call + spl_dual_it_object *intern = +@@ -464,7 +469,7 @@ + // TODO: method B - use getInnerIterator() w/ compilation option + + if (Z_TYPE_P(currentValue) != IS_LONG) convert_to_long(currentValue); +- int isOdd = Z_LVAL_P(currentValue) & 1; ++ isOdd = Z_LVAL_P(currentValue) & 1; + + zval_ptr_dtor(¤tValue); /* clean-up */ + RETURN_BOOL(isOdd); +@@ -476,6 +481,7 @@ + PHP_METHOD(PHP_XRANGE_EVENFILTERITERATOR_NAME, accept) + { + zval *currentValue; ++ int isEven; + + /* method A: bypass getInnerIterator() call */ + spl_dual_it_object *intern = +@@ -487,7 +493,7 @@ + /* TODO: method B - use getInnerIterator() w/ compilation option */ + + if (Z_TYPE_P(currentValue) != IS_LONG) convert_to_long(currentValue); +- int isEven = !(Z_LVAL_P(currentValue) & 1); ++ isEven = !(Z_LVAL_P(currentValue) & 1); + + zval_ptr_dtor(¤tValue); /* clean-up */ + RETURN_BOOL(isEven); +@@ -499,6 +505,7 @@ + PHP_METHOD(PHP_XRANGE_NUMERICFILTERITERATOR_NAME, accept) + { + zval *currentValue; ++ int isNumeric; + + /* method A: bypass getInnerIterator() call */ + spl_dual_it_object *intern = +@@ -509,8 +516,6 @@ + ); + /* TODO: method B - use getInnerIterator() w/ compilation option */ + +- int isNumeric; +- + /* this code comes from is_numeric() the implementation. it's here to + * to eliminate the overhead of a PHP function call. */ + switch (Z_TYPE_P(currentValue)) { diff --git a/dev-php/pecl-xrange/pecl-xrange-1.3.2-r2.ebuild b/dev-php/pecl-xrange/pecl-xrange-1.3.2-r2.ebuild new file mode 100644 index 000000000000..5c9ff82e22a0 --- /dev/null +++ b/dev-php/pecl-xrange/pecl-xrange-1.3.2-r2.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +PHP_EXT_NAME="xrange" +PHP_EXT_INI="yes" +PHP_EXT_ZENDEXT="no" + +USE_PHP="php5-6" + +inherit php-ext-pecl-r3 + +KEYWORDS="~amd64 ~x86" + +DESCRIPTION="Implementation of weak references" +LICENSE="PHP-3" +SLOT="0" +IUSE="" + +RDEPEND="" +DEPEND="${RDEPEND}" +PATCHES=( "${FILESDIR}/1.3.2-fixes.patch" ) +PHP_EXT_ECONF_ARGS=() -- cgit v1.2.3-65-gdbad