summaryrefslogtreecommitdiff
path: root/dev-php/pecl-stomp
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-04-28 20:21:43 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-04-28 20:21:43 +0100
commit40aaaa64e86ba6710bbeb31c4615a6ce80e75e11 (patch)
tree758c221bad35c9288d0bd6df9c7dfc226728e52c /dev-php/pecl-stomp
parent8d5dbd847cbc704a6a06405856e94b461011afe3 (diff)
gentoo resync : 28.04.2021
Diffstat (limited to 'dev-php/pecl-stomp')
-rw-r--r--dev-php/pecl-stomp/Manifest3
-rw-r--r--dev-php/pecl-stomp/files/pecl-stomp-2.0.2-php8.patch369
-rw-r--r--dev-php/pecl-stomp/pecl-stomp-2.0.2-r1.ebuild6
3 files changed, 375 insertions, 3 deletions
diff --git a/dev-php/pecl-stomp/Manifest b/dev-php/pecl-stomp/Manifest
index c75e17bbe711..1f9577e08054 100644
--- a/dev-php/pecl-stomp/Manifest
+++ b/dev-php/pecl-stomp/Manifest
@@ -1,3 +1,4 @@
+AUX pecl-stomp-2.0.2-php8.patch 14470 BLAKE2B b189a359249587c9cb5282bf933fbe29f8ff0a056c0093064cc0d5cca002ff6d58362695b833f7cddf54d1db58c0472ae3f3a5ae67156e7dd4dd7187736c7595 SHA512 df553399f81f3a5665828f270321e37915c0cc1f0afd248d72fd5b147cacb7c3d205085d45602215ebff86741e503beabdab00fe81693912e58eeac1d0b2723a
DIST stomp-2.0.2.tgz 23609 BLAKE2B b6ed89b5b8fd0bb501b2337e87107797eedc6ac53c81ba86d2e755cfa2dd716bf4e409cee623430791e0b4854833ef44ed7f6f9e1d89fcd2250d598af0dcaea6 SHA512 577a781b45ef394cd833fb69c808da9b8a8ff69b31b1093c5eef3f7b5d1b37cd0b45c32a03883f56f86213e32bb18aaf0a80010c6bec7efa7239ea48bc57b4b4
-EBUILD pecl-stomp-2.0.2-r1.ebuild 616 BLAKE2B 97c500a0868257e0c688871f8c5a08973cb2390ebd49b3de2a9e2d91bae5e9417cf6914a62a07d863ffe69d9cabb600fd8f4dadc4dc37fee2be16e3a817486c0 SHA512 9a985bcad1c6c7fbacf128810330d52afeb3d7e235234606a579596d7a14fbc738c2127578c729d2ba1e4f245f881efed1b346e961e2c4a2258bc54624ca647b
+EBUILD pecl-stomp-2.0.2-r1.ebuild 671 BLAKE2B 26f9fd2aac1eddb576c32b4108d0d7e8b47efddfb5356ec75bf7aaaaa957dad19cd2927c59e15b2085bd1f383204442ae4b615de61e584b0a5ad31fdb97bdcec SHA512 e1b9e9a06d2755ddbf954866c9e3fea507debdbcf4f646c7a43dce1ba441698e0ba38bb53629bb8ca08161e8a757e889f18bedb744c3819c9bd36aa6f20319c2
MISC metadata.xml 239 BLAKE2B 9b7c5dcb74289073481cf07031b7a92f32496cc1097becb074d74a8fbb8133de429ce1baf284e446e44132943c8b32e6b824570f15828588e42ea49ef5661f00 SHA512 2181b874bfe8cd31e7730d8207e26cfd2f272eaf2d1b57ae0faff126347a5298fa1c506d9107e1da9736c8a0ed9c8c339e4d9509a8726b79dbe86e073c12dee0
diff --git a/dev-php/pecl-stomp/files/pecl-stomp-2.0.2-php8.patch b/dev-php/pecl-stomp/files/pecl-stomp-2.0.2-php8.patch
new file mode 100644
index 000000000000..9d38a2d7ff41
--- /dev/null
+++ b/dev-php/pecl-stomp/files/pecl-stomp-2.0.2-php8.patch
@@ -0,0 +1,369 @@
+From 13681a79d9389603d9788802f0a114671a753df1 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Fri, 25 Sep 2020 16:06:39 +0200
+Subject: [PATCH] Fix compatibility with PHP 8 - cleanup remaining TSRMLS
+ macros - fix read/update_property parameters - adapt test suite for exception
+ in arg. parsing - fix callback
+
+---
+ php_stomp.c | 38 ++++++++++++++++++++--------------
+ stomp.c | 6 +++---
+ stomp.h | 4 ++--
+ tests/003-connect/003.phpt | 2 +-
+ tests/005-close/001.phpt | 8 +++++--
+ tests/007-subscribe/001.phpt | 2 +-
+ tests/008-unsubscribe/001.phpt | 2 +-
+ tests/010-timeout/001.phpt | 24 ++++++++++++---------
+ tests/010-timeout/002.phpt | 26 ++++++++++++++---------
+ 9 files changed, 67 insertions(+), 45 deletions(-)
+
+diff --git a/php_stomp.c b/php_stomp.c
+index 0dcefed..b99a9ff 100644
+--- a/php_stomp.c
++++ b/php_stomp.c
+@@ -97,7 +97,7 @@
+ zval _object, *object = &_object; \
+ THROW_STOMP_EXCEPTION(object, errno, msg) \
+ if (details) { \
+- zend_update_property_string(stomp_ce_exception, object, "details", sizeof("details")-1, (char *) details ); \
++ zend_update_property_string(stomp_ce_exception, OBJ_FOR_PROP(object), "details", sizeof("details")-1, (char *) details ); \
+ } \
+ }
+
+@@ -107,6 +107,12 @@
+ #define STOMP_URL_STR(a) ZSTR_VAL(a)
+ #endif
+
++#if PHP_VERSION_ID < 80000
++#define OBJ_FOR_PROP(zv) (zv)
++#else
++#define OBJ_FOR_PROP(zv) Z_OBJ_P(zv)
++#endif
++
+ static int le_stomp;
+ static zend_object_handlers stomp_obj_handlers;
+
+@@ -564,7 +570,7 @@ PHP_FUNCTION(stomp_connect)
+ zval excobj;
+ THROW_STOMP_EXCEPTION(&excobj, stomp->errnum, stomp->error);
+ if (stomp->error_details) {
+- zend_update_property_string(stomp_ce_exception, &excobj, "details", sizeof("details")-1, stomp->error_details );
++ zend_update_property_string(stomp_ce_exception, OBJ_FOR_PROP(&excobj), "details", sizeof("details")-1, stomp->error_details );
+ }
+ return;
+ }
+@@ -578,7 +584,7 @@ PHP_FUNCTION(stomp_connect)
+ if ((error_msg = zend_hash_str_find(res->headers, ZEND_STRL("message"))) != NULL) {
+ THROW_STOMP_EXCEPTION(&excobj, 0, ZSTR_VAL(Z_STR_P(error_msg)));
+ if (res->body) {
+- zend_update_property_string(stomp_ce_exception, &excobj, "details", sizeof("details")-1, (char *) res->body );
++ zend_update_property_string(stomp_ce_exception, OBJ_FOR_PROP(&excobj), "details", sizeof("details")-1, (char *) res->body );
+ }
+ }
+ stomp_free_frame(res);
+@@ -735,17 +741,17 @@ PHP_FUNCTION(stomp_send)
+ frame.body_length = Z_STRLEN_P(msg);
+ } else if (Z_TYPE_P(msg) == IS_OBJECT && instanceof_function(Z_OBJCE_P(msg), stomp_ce_frame )) {
+ zval *frame_obj_prop = NULL;
+- frame_obj_prop = zend_read_property(stomp_ce_frame, msg, "command", sizeof("command")-1, 1, &rv);
++ frame_obj_prop = zend_read_property(stomp_ce_frame, OBJ_FOR_PROP(msg), "command", sizeof("command")-1, 1, &rv);
+ if (Z_TYPE_P(frame_obj_prop) == IS_STRING) {
+ frame.command = Z_STRVAL_P(frame_obj_prop);
+ frame.command_length = Z_STRLEN_P(frame_obj_prop);
+ }
+- frame_obj_prop = zend_read_property(stomp_ce_frame, msg, "body", sizeof("body")-1, 1, &rv);
++ frame_obj_prop = zend_read_property(stomp_ce_frame, OBJ_FOR_PROP(msg), "body", sizeof("body")-1, 1, &rv);
+ if (Z_TYPE_P(frame_obj_prop) == IS_STRING) {
+ frame.body = Z_STRVAL_P(frame_obj_prop);
+ frame.body_length = Z_STRLEN_P(frame_obj_prop);
+ }
+- frame_obj_prop = zend_read_property(stomp_ce_frame, msg, "headers", sizeof("headers")-1, 1, &rv);
++ frame_obj_prop = zend_read_property(stomp_ce_frame, OBJ_FOR_PROP(msg), "headers", sizeof("headers")-1, 1, &rv);
+ if (Z_TYPE_P(frame_obj_prop) == IS_ARRAY) {
+ FRAME_HEADER_FROM_HASHTABLE(frame.headers, Z_ARRVAL_P(frame_obj_prop));
+ }
+@@ -930,7 +936,7 @@ PHP_FUNCTION(stomp_read_frame)
+ zval excobj;
+ THROW_STOMP_EXCEPTION(&excobj, 0, Z_STRVAL_P(error_msg));
+ if (res->body) {
+- zend_update_property_string(stomp_ce_exception, &excobj, ZEND_STRL("details"), (char *)res->body );
++ zend_update_property_string(stomp_ce_exception, OBJ_FOR_PROP(&excobj), ZEND_STRL("details"), (char *)res->body );
+ }
+ stomp_free_frame(res);
+ RETURN_FALSE;
+@@ -968,10 +974,11 @@ PHP_FUNCTION(stomp_read_frame)
+ ZVAL_NULL(&body);
+ }
+
++ memset(&fci, 0, sizeof(fci));
++ memset(&fcc, 0, sizeof(fcc));
+ fci.size = sizeof(fci);
+ #if (PHP_MAJOR_VERSION == 7 && PHP_MINOR_VERSION == 0)
+ fci.function_table = &ce->function_table;
+- fci.symbol_table = NULL;
+ #endif
+ /* PARAMS */
+ fci.param_count = 3;
+@@ -983,8 +990,9 @@ PHP_FUNCTION(stomp_read_frame)
+ ZVAL_UNDEF(&fci.function_name);
+ fci.object = Z_OBJ_P(return_value);
+ fci.retval = &retval;
++#if PHP_VERSION_ID < 80000
+ fci.no_separation = 1;
+-
++#endif
+ #if PHP_VERSION_ID < 70300
+ fcc.initialized = 1;
+ #endif
+@@ -997,7 +1005,7 @@ PHP_FUNCTION(stomp_read_frame)
+ fcc.object = Z_OBJ_P(return_value);
+
+ if (zend_call_function(&fci, &fcc ) == FAILURE) {
+- zend_throw_exception_ex(zend_exception_get_default(TSRMLS_C), 0 , "Could not execute %s::%s()", ZSTR_VAL(ce->name), ZSTR_VAL(ce->constructor->common.function_name));
++ zend_throw_exception_ex(zend_exception_get_default(), 0 , "Could not execute %s::%s()", ZSTR_VAL(ce->name), ZSTR_VAL(ce->constructor->common.function_name));
+ } else {
+ zval_ptr_dtor(&retval);
+ }
+@@ -1127,7 +1135,7 @@ static void _php_stomp_acknowledgment(INTERNAL_FUNCTION_PARAMETERS, char *cmd) {
+ } else if (Z_TYPE_P(msg) == IS_OBJECT && instanceof_function(Z_OBJCE_P(msg), stomp_ce_frame )) {
+ zval *frame_obj_prop, rv;
+
+- frame_obj_prop = zend_read_property(stomp_ce_frame, msg, "headers", sizeof("headers")-1, 1, &rv);
++ frame_obj_prop = zend_read_property(stomp_ce_frame, OBJ_FOR_PROP(msg), "headers", sizeof("headers")-1, 1, &rv);
+ if (Z_TYPE_P(frame_obj_prop) == IS_ARRAY) {
+ FRAME_HEADER_FROM_HASHTABLE(frame.headers, Z_ARRVAL_P(frame_obj_prop));
+ }
+@@ -1257,13 +1265,13 @@ PHP_METHOD(stompframe, __construct)
+ }
+
+ if (command_length > 0) {
+- zend_update_property_stringl(stomp_ce_frame, object, "command", sizeof("command")-1, command, command_length );
++ zend_update_property_stringl(stomp_ce_frame, OBJ_FOR_PROP(object), "command", sizeof("command")-1, command, command_length );
+ }
+ if (headers) {
+- zend_update_property(stomp_ce_frame, object, "headers", sizeof("headers")-1, headers );
++ zend_update_property(stomp_ce_frame, OBJ_FOR_PROP(object), "headers", sizeof("headers")-1, headers );
+ }
+ if (body_length > 0) {
+- zend_update_property_stringl(stomp_ce_frame, object, "body", sizeof("body")-1, body, body_length );
++ zend_update_property_stringl(stomp_ce_frame, OBJ_FOR_PROP(object), "body", sizeof("body")-1, body, body_length );
+ }
+ }
+ /* }}} */
+@@ -1273,7 +1281,7 @@ PHP_METHOD(stompframe, __construct)
+ PHP_METHOD(stompexception, getDetails)
+ {
+ zval *object = getThis();
+- zval rv, *details = zend_read_property(stomp_ce_exception, object, "details", sizeof("details")-1, 1, &rv);
++ zval rv, *details = zend_read_property(stomp_ce_exception, OBJ_FOR_PROP(object), "details", sizeof("details")-1, 1, &rv);
+ RETURN_STR(zval_get_string(details));
+ }
+ /* }}} */
+diff --git a/stomp.c b/stomp.c
+index d83a4e6..6e77ede 100644
+--- a/stomp.c
++++ b/stomp.c
+@@ -36,7 +36,7 @@ extern zend_class_entry *stomp_ce_exception;
+
+ /* {{{ DEBUG */
+ #if PHP_DEBUG
+-static void print_stomp_frame(stomp_frame_t *frame TSRMLS_DC) {
++static void print_stomp_frame(stomp_frame_t *frame) {
+ php_printf("------ START FRAME ------\n");
+ php_printf("%s\n", frame->command);
+ /* Headers */
+@@ -188,7 +188,7 @@ int stomp_writable(stomp_t *stomp)
+
+ /* {{{ stomp_connect
+ */
+-int stomp_connect(stomp_t *stomp, const char *host, unsigned short port TSRMLS_DC)
++int stomp_connect(stomp_t *stomp, const char *host, unsigned short port)
+ {
+ char error[1024];
+ socklen_t size;
+@@ -299,7 +299,7 @@ void stomp_close(stomp_t *stomp)
+
+ /* {{{ stomp_send
+ */
+-int stomp_send(stomp_t *stomp, stomp_frame_t *frame TSRMLS_DC)
++int stomp_send(stomp_t *stomp, stomp_frame_t *frame)
+ {
+ smart_str buf = {0};
+
+diff --git a/stomp.h b/stomp.h
+index 1a422b7..e4d02b3 100644
+--- a/stomp.h
++++ b/stomp.h
+@@ -81,9 +81,9 @@ typedef struct _stomp {
+ } stomp_t;
+
+ stomp_t *stomp_init();
+-int stomp_connect(stomp_t *stomp, const char *host, unsigned short port TSRMLS_DC);
++int stomp_connect(stomp_t *stomp, const char *host, unsigned short port);
+ void stomp_close(stomp_t *stomp);
+-int stomp_send(stomp_t *connection, stomp_frame_t *frame TSRMLS_DC);
++int stomp_send(stomp_t *connection, stomp_frame_t *frame);
+ stomp_frame_t *stomp_read_frame_ex(stomp_t *connection, int use_stack);
+ int stomp_valid_receipt(stomp_t *connection, stomp_frame_t *frame);
+ int stomp_select_ex(stomp_t *connection, const long int sec, const long int usec);
+diff --git a/tests/003-connect/003.phpt b/tests/003-connect/003.phpt
+index b3de8d6..ba60e15 100644
+--- a/tests/003-connect/003.phpt
++++ b/tests/003-connect/003.phpt
+@@ -2,7 +2,7 @@
+ Test stomp_connect() - Test error on CONNECT
+ --SKIPIF--
+ <?php
+-include "../skipif.inc"
++include dirname(__DIR__) . "/skipif.inc";
+ ?>
+ --FILE--
+ <?php
+diff --git a/tests/005-close/001.phpt b/tests/005-close/001.phpt
+index 0a23a59..77cc014 100644
+--- a/tests/005-close/001.phpt
++++ b/tests/005-close/001.phpt
+@@ -6,7 +6,11 @@ include dirname(__DIR__) . "/skipif.inc";
+ ?>
+ --FILE--
+ <?php
+-stomp_close(null);
++try {
++ stomp_close(null);
++} catch (TypeError $e) {
++ echo $e->getMessage() . PHP_EOL;
++}
+ ?>
+ --EXPECTF--
+-Warning: stomp_close() expects parameter 1 to be resource, null given in %s on line %d
++%stomp_close()%s1%s null %s
+diff --git a/tests/007-subscribe/001.phpt b/tests/007-subscribe/001.phpt
+index 8d190dd..494471c 100644
+--- a/tests/007-subscribe/001.phpt
++++ b/tests/007-subscribe/001.phpt
+@@ -16,7 +16,7 @@ $s->subscribe('/queue/test', 'string');
+ --EXPECTF--
+ Warning: Stomp::subscribe(): Destination can not be empty in %s007-subscribe%c001.php on line %d
+
+-Fatal error: Uncaught TypeError: Argument 2 passed to Stomp::subscribe() must be of the type array, string given in %s007-subscribe%c001.php:%d
++Fatal error: Uncaught TypeError: %s, string given in %s007-subscribe%c001.php:%d
+ Stack trace:
+ #0 %s001.php(%d): Stomp->subscribe('/queue/test', 'string')
+ #1 {main}
+diff --git a/tests/008-unsubscribe/001.phpt b/tests/008-unsubscribe/001.phpt
+index c1200eb..7d1b50f 100644
+--- a/tests/008-unsubscribe/001.phpt
++++ b/tests/008-unsubscribe/001.phpt
+@@ -17,7 +17,7 @@ $s->unsubscribe('/queue/test', 'string');
+ --EXPECTF--
+ Warning: Stomp::unsubscribe(): Destination can not be empty in %s008-unsubscribe%c001.php on line %d
+
+-Fatal error: Uncaught TypeError: Argument 2 passed to Stomp::unsubscribe() must be of the type array, string given in %s008-unsubscribe%c001.php:%d
++Fatal error: Uncaught TypeError: %s2%s string given in %s008-unsubscribe%c001.php:%d
+ Stack trace:
+ #0 %s(%d): Stomp->unsubscribe('/queue/test', 'string')
+ #1 {main}
+diff --git a/tests/010-timeout/001.phpt b/tests/010-timeout/001.phpt
+index 7389f70..b9886db 100644
+--- a/tests/010-timeout/001.phpt
++++ b/tests/010-timeout/001.phpt
+@@ -25,13 +25,21 @@ var_dump($s->setReadTimeout(10, 5));
+ // Third test, read supposed to return 10.5
+ var_dump($s->getReadTimeout());
+
+-// Set read timout with the first param as a string, supposed to trigger a warning
+-var_dump($s->setReadTimeout(''));
++try {
++ // Set read timout with the first param as a string, supposed to trigger a warning/exception
++ var_dump($s->setReadTimeout(''));
++} catch (TypeError $e) {
++ echo $e->getMessage() . PHP_EOL;
++}
+ // Fourth test, read supposed to get the last value set : 10.5
+ var_dump($s->getReadTimeout());
+
+-// Set read timout with the second param as a string, supposed to trigger a warning
+-var_dump($s->setReadTimeout(10, ''));
++try {
++ // Set read timout with the second param as a string, supposed to trigger a warning/exception
++ var_dump($s->setReadTimeout(10, ''));
++} catch (TypeError $e) {
++ echo $e->getMessage() . PHP_EOL;
++}
+ // Fourth test, read supposed to get the last value set : 10.5
+ var_dump($s->getReadTimeout());
+
+@@ -64,18 +72,14 @@ array(2) {
+ ["usec"]=>
+ int(5)
+ }
+-
+-Warning: Stomp::setReadTimeout() expects parameter 1 to be long, string given in %s on line %d
+-NULL
++%AStomp::setReadTimeout()%s1%s string given%A
+ array(2) {
+ ["sec"]=>
+ int(10)
+ ["usec"]=>
+ int(5)
+ }
+-
+-Warning: Stomp::setReadTimeout() expects parameter 2 to be long, string given in %s on line %d
+-NULL
++%AStomp::setReadTimeout()%s2%s string given%A
+ array(2) {
+ ["sec"]=>
+ int(10)
+diff --git a/tests/010-timeout/002.phpt b/tests/010-timeout/002.phpt
+index a6a9b4a..c22dedf 100644
+--- a/tests/010-timeout/002.phpt
++++ b/tests/010-timeout/002.phpt
+@@ -25,13 +25,23 @@ var_dump(stomp_set_read_timeout($link, 10, 5));
+ // Third test, read supposed to return 10.5
+ var_dump(stomp_get_read_timeout($link));
+
+-// Set read timout with the first param as a string, supposed to trigger a warning
+-var_dump(stomp_set_read_timeout($link, ''));
++try {
++ // Set read timout with the first param as a string, supposed to trigger a warning on PHP 7
++ // supposed to trigger an exception on PHP 8
++ var_dump(stomp_set_read_timeout($link, ''));
++} catch (TypeError $e) {
++ echo $e->getMessage() . PHP_EOL;
++}
+ // Fourth test, read supposed to get the last value set : 10.5
+ var_dump(stomp_get_read_timeout($link));
+
+-// Set read timout with the second param as a string, supposed to trigger a warning
+-var_dump(stomp_set_read_timeout($link, 10, ''));
++try {
++ // Set read timout with the second param as a string, supposed to trigger a warning on PHP 7
++ // supposed to trigger an exception on PHP 8
++ var_dump(stomp_set_read_timeout($link, 10, ''));
++} catch (TypeError $e) {
++ echo $e->getMessage() . PHP_EOL;
++}
+ // Fourth test, read supposed to get the last value set : 10.5
+ var_dump(stomp_get_read_timeout($link));
+
+@@ -64,18 +74,14 @@ array(2) {
+ ["usec"]=>
+ int(5)
+ }
+-
+-Warning: stomp_set_read_timeout() expects parameter 2 to be long, string given in %s on line %d
+-NULL
++%Astomp_set_read_timeout()%s2%S string given%A
+ array(2) {
+ ["sec"]=>
+ int(10)
+ ["usec"]=>
+ int(5)
+ }
+-
+-Warning: stomp_set_read_timeout() expects parameter 3 to be long, string given in %s on line %d
+-NULL
++%Astomp_set_read_timeout()%s3%s string given%A
+ array(2) {
+ ["sec"]=>
+ int(10)
diff --git a/dev-php/pecl-stomp/pecl-stomp-2.0.2-r1.ebuild b/dev-php/pecl-stomp/pecl-stomp-2.0.2-r1.ebuild
index bc5c1a2e4ad0..9a975221aa49 100644
--- a/dev-php/pecl-stomp/pecl-stomp-2.0.2-r1.ebuild
+++ b/dev-php/pecl-stomp/pecl-stomp-2.0.2-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-USE_PHP="php7-2 php7-3 php7-4"
+USE_PHP="php7-3 php7-4 php8-0"
PHP_EXT_NAME="stomp"
PHP_EXT_NEEDED_USE="ssl(-)?"
DOCS=( CREDITS doc/classes.php doc/functions.php )
@@ -20,6 +20,8 @@ RESTRICT="!test? ( test )"
BDEPEND="virtual/pkgconfig"
+PATCHES=( "${FILESDIR}/pecl-stomp-2.0.2-php8.patch" )
+
src_configure() {
local PHP_EXT_ECONF_ARGS=(
--enable-stomp