dev-php/pecl-xrange: Revbump to drop php 5.4 and 5.5 dependencies
authorBrian Evans <grknight@gentoo.org>
Wed, 7 Dec 2016 20:42:12 +0000 (15:42 -0500)
committerBrian Evans <grknight@gentoo.org>
Wed, 7 Dec 2016 20:42:12 +0000 (15:42 -0500)
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 [new file with mode: 0644]
dev-php/pecl-xrange/pecl-xrange-1.3.2-r2.ebuild [new file with mode: 0644]

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 (file)
index 0000000..4664a5d
--- /dev/null
@@ -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(&currentValue); /* 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(&currentValue); /* 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 (file)
index 0000000..5c9ff82
--- /dev/null
@@ -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=()