commit: 86d035311cc6f463a2888beb62c3dba197a9b1ff
Author: Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 7 20:42:12 2016 +0000
Commit: Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Wed Dec 7 20:42:12 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86d03531
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(+)
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 00000000..4664a5d
--- /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 00000000..5c9ff82
--- /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=()