commit:     6a43f0c27da369f2428587735b2cf6f46c8c49a3
Author:     Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 13 16:00:22 2022 +0000
Commit:     Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Tue Dec 13 16:00:22 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6a43f0c2

dev-php/pecl-radius: Patch 8.0 support from upstream repo

Adds in additional support missing upstream

Closes: https://bugs.gentoo.org/881465
Signed-off-by: Brian Evans <grknight <AT> gentoo.org>

 dev-php/pecl-radius/files/1.4.0-php8.patch         | 289 +++++++++++++++++++++
 .../pecl-radius/pecl-radius-1.4.0_beta1-r3.ebuild  |  10 +-
 2 files changed, 298 insertions(+), 1 deletion(-)

diff --git a/dev-php/pecl-radius/files/1.4.0-php8.patch 
b/dev-php/pecl-radius/files/1.4.0-php8.patch
new file mode 100644
index 000000000000..08ff55866beb
--- /dev/null
+++ b/dev-php/pecl-radius/files/1.4.0-php8.patch
@@ -0,0 +1,289 @@
+From 6cfaa16a21780f09f76a7703da255e07910b8b4d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bruno=20Pr=C3=A9mont?= <[email protected]>
+Date: Mon, 25 Jan 2021 19:37:14 +0100
+Subject: [PATCH] Fix compatibility with PHP-8
+
+With PHP-7.x missing arginfo has been triggering warnings:
+  NOTICE: PHP message: PHP Warning:  Missing arginfo for radius_auth_open() in 
Unknown on line 0
+With PHP-8 this has become mandatory.
+---
+ radius.c | 216 +++++++++++++++++++++++++++++++++++++++++++++++--------
+ 1 file changed, 188 insertions(+), 28 deletions(-)
+
+diff --git a/radius.c b/radius.c
+index 89ee0d6..4bfb429 100644
+--- a/radius.c
++++ b/radius.c
+@@ -61,39 +61,199 @@ ZEND_DECLARE_MODULE_GLOBALS(radius)
+ /* True global resources - no need for thread safety here */
+ static int le_radius;
+ 
++/* {{{ arginfo */
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_auth_open, 0, 0, 0)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_acct_open, 0, 0, 0)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_close, 0, 0, 1)
++      ZEND_ARG_INFO(0, radius_handle)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_strerror, 0, 0, 1)
++      ZEND_ARG_INFO(0, radius_handle)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_config, 0, 0, 2)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, file)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_add_server, 0, 0, 6)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, hostname)
++      ZEND_ARG_INFO(0, port)
++      ZEND_ARG_INFO(0, secret)
++      ZEND_ARG_INFO(0, timeout)
++      ZEND_ARG_INFO(0, max_tries)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_create_request, 0, 0, 2)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, type)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_string, 0, 0, 3)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, type)
++      ZEND_ARG_INFO(0, value)
++      ZEND_ARG_INFO(0, options)
++      ZEND_ARG_INFO(0, tag)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_int, 0, 0, 3)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, type)
++      ZEND_ARG_INFO(0, value)
++      ZEND_ARG_INFO(0, options)
++      ZEND_ARG_INFO(0, tag)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_attr, 0, 0, 3)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, type)
++      ZEND_ARG_INFO(0, value)
++      ZEND_ARG_INFO(0, options)
++      ZEND_ARG_INFO(0, tag)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_addr, 0, 0, 3)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, type)
++      ZEND_ARG_INFO(0, addr)
++      ZEND_ARG_INFO(0, options)
++      ZEND_ARG_INFO(0, tag)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_vendor_string, 0, 0, 4)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, vendor)
++      ZEND_ARG_INFO(0, type)
++      ZEND_ARG_INFO(0, value)
++      ZEND_ARG_INFO(0, options)
++      ZEND_ARG_INFO(0, tag)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_vendor_int, 0, 0, 4)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, vendor)
++      ZEND_ARG_INFO(0, type)
++      ZEND_ARG_INFO(0, value)
++      ZEND_ARG_INFO(0, options)
++      ZEND_ARG_INFO(0, tag)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_vendor_attr, 0, 0, 4)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, vendor)
++      ZEND_ARG_INFO(0, type)
++      ZEND_ARG_INFO(0, value)
++      ZEND_ARG_INFO(0, options)
++      ZEND_ARG_INFO(0, tag)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_put_vendor_addr, 0, 0, 4)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, vendor)
++      ZEND_ARG_INFO(0, type)
++      ZEND_ARG_INFO(0, addr)
++      ZEND_ARG_INFO(0, options)
++      ZEND_ARG_INFO(0, tag)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_send_request, 0, 0, 1)
++      ZEND_ARG_INFO(0, radius_handle)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_get_attr, 0, 0, 1)
++      ZEND_ARG_INFO(0, radius_handle)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_get_tagged_attr_data, 0, 0, 1)
++      ZEND_ARG_INFO(0, data)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_get_tagged_attr_tag, 0, 0, 1)
++      ZEND_ARG_INFO(0, data)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_get_vendor_attr, 0, 0, 1)
++      ZEND_ARG_INFO(0, data)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_cvt_addr, 0, 0, 1)
++      ZEND_ARG_INFO(0, data)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_cvt_int, 0, 0, 1)
++      ZEND_ARG_INFO(0, data)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_cvt_string, 0, 0, 1)
++      ZEND_ARG_INFO(0, data)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_salt_encrypt_attr, 0, 0, 2)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, data)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_request_authenticator, 0, 0, 1)
++      ZEND_ARG_INFO(0, radius_handle)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_server_secret, 0, 0, 1)
++      ZEND_ARG_INFO(0, radius_handle)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_demangle, 0, 0, 2)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, mangled)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_radius_demangle_mppe_key, 0, 0, 2)
++      ZEND_ARG_INFO(0, radius_handle)
++      ZEND_ARG_INFO(0, mangled)
++ZEND_END_ARG_INFO()
++
++/* }}} */
++
++
+ /* {{{ radius_functions[]
+  *
+  * Every user visible function must have an entry in radius_functions[].
+  */
+ zend_function_entry radius_functions[] = {
+-      PHP_FE(radius_auth_open,    NULL)
+-      PHP_FE(radius_acct_open,    NULL)
+-      PHP_FE(radius_close,        NULL)
+-      PHP_FE(radius_strerror,     NULL)
+-      PHP_FE(radius_config,       NULL)
+-      PHP_FE(radius_add_server,       NULL)
+-      PHP_FE(radius_create_request,   NULL)
+-      PHP_FE(radius_put_string,       NULL)
+-      PHP_FE(radius_put_int,  NULL)
+-      PHP_FE(radius_put_attr, NULL)
+-      PHP_FE(radius_put_addr, NULL)
+-      PHP_FE(radius_put_vendor_string,        NULL)
+-      PHP_FE(radius_put_vendor_int,   NULL)
+-      PHP_FE(radius_put_vendor_attr,  NULL)
+-      PHP_FE(radius_put_vendor_addr,  NULL)
+-      PHP_FE(radius_send_request,     NULL)
+-      PHP_FE(radius_get_attr, NULL)
+-      PHP_FE(radius_get_tagged_attr_data, NULL)
+-      PHP_FE(radius_get_tagged_attr_tag, NULL)
+-      PHP_FE(radius_get_vendor_attr,  NULL)
+-      PHP_FE(radius_cvt_addr, NULL)
+-      PHP_FE(radius_cvt_int,  NULL)
+-      PHP_FE(radius_cvt_string,       NULL)
+-      PHP_FE(radius_salt_encrypt_attr,        NULL)
+-      PHP_FE(radius_request_authenticator,    NULL)
+-      PHP_FE(radius_server_secret,    NULL)
+-      PHP_FE(radius_demangle, NULL)    
+-      PHP_FE(radius_demangle_mppe_key,        NULL)    
++      PHP_FE(radius_auth_open,    arginfo_radius_auth_open)
++      PHP_FE(radius_acct_open,    arginfo_radius_acct_open)
++      PHP_FE(radius_close,        arginfo_radius_close)
++      PHP_FE(radius_strerror,     arginfo_radius_strerror)
++      PHP_FE(radius_config,       arginfo_radius_config)
++      PHP_FE(radius_add_server,       arginfo_radius_add_server)
++      PHP_FE(radius_create_request,   arginfo_radius_create_request)
++      PHP_FE(radius_put_string,       arginfo_radius_put_string)
++      PHP_FE(radius_put_int,  arginfo_radius_put_int)
++      PHP_FE(radius_put_attr, arginfo_radius_put_attr)
++      PHP_FE(radius_put_addr, arginfo_radius_put_addr)
++      PHP_FE(radius_put_vendor_string,        
arginfo_radius_put_vendor_string)
++      PHP_FE(radius_put_vendor_int,   arginfo_radius_put_vendor_int)
++      PHP_FE(radius_put_vendor_attr,  arginfo_radius_put_vendor_attr)
++      PHP_FE(radius_put_vendor_addr,  arginfo_radius_put_vendor_addr)
++      PHP_FE(radius_send_request,     arginfo_radius_get_attr)
++      PHP_FE(radius_get_attr, arginfo_radius_get_attr)
++      PHP_FE(radius_get_tagged_attr_data, arginfo_radius_get_tagged_attr_data)
++      PHP_FE(radius_get_tagged_attr_tag, arginfo_radius_get_tagged_attr_tag)
++      PHP_FE(radius_get_vendor_attr,  arginfo_radius_get_vendor_attr)
++      PHP_FE(radius_cvt_addr, arginfo_radius_cvt_addr)
++      PHP_FE(radius_cvt_int,  arginfo_radius_cvt_int)
++      PHP_FE(radius_cvt_string,       arginfo_radius_cvt_string)
++      PHP_FE(radius_salt_encrypt_attr,        
arginfo_radius_salt_encrypt_attr)
++      PHP_FE(radius_request_authenticator,    
arginfo_radius_request_authenticator)
++      PHP_FE(radius_server_secret,    arginfo_radius_server_secret)
++      PHP_FE(radius_demangle, arginfo_radius_demangle)
++      PHP_FE(radius_demangle_mppe_key,        
arginfo_radius_demangle_mppe_key)
+       {NULL, NULL, NULL}      /* Must be the last line in radius_functions[] 
*/
+ };
+ /* }}} */
+--- a/php_radius.h     2016-02-15 10:11:50.000000000 -0500
++++ b/php_radius.h     2022-12-13 10:24:33.505295274 -0500
+@@ -96,6 +96,14 @@
+ #define RADIUS_OPTION_TAGGED  RAD_OPTION_TAG
+ #define RADIUS_OPTION_SALT    RAD_OPTION_SALT
+ 
++#ifndef TSRMLS_D
++#define TSRMLS_D void
++#define TSRMLS_DC
++#define TSRMLS_C
++#define TSRMLS_CC
++#define TSRMLS_FETCH()
++#endif
++
+ #endif        /* PHP_RADIUS_H */
+ 
+ 
+--- a/radlib_compat.h  2016-02-15 10:11:50.000000000 -0500
++++ b/radlib_compat.h  2022-12-13 10:24:33.505295274 -0500
+@@ -83,6 +83,14 @@
+       } while (0)
+ #endif
+ 
++#ifndef TSRMLS_D
++#define TSRMLS_D void
++#define TSRMLS_DC
++#define TSRMLS_C
++#define TSRMLS_CC
++#define TSRMLS_FETCH()
++#endif
++
+ #endif
+ 
+ 
+--- a/tests/server/fake_server.php     2016-02-15 10:11:50.000000000 -0500
++++ b/tests/server/fake_server.php     2022-12-13 10:46:50.933484601 -0500
+@@ -321,7 +321,7 @@
+      *
+      * @return boolean
+      */
+-    function skip() {
++    static function skip() {
+         return !(function_exists('socket_create') && 
function_exists('pcntl_fork') && function_exists('radius_acct_open'));
+     }
+ 

diff --git a/dev-php/pecl-radius/pecl-radius-1.4.0_beta1-r3.ebuild 
b/dev-php/pecl-radius/pecl-radius-1.4.0_beta1-r3.ebuild
index fbb86a1f78f8..0cf8e5654389 100644
--- a/dev-php/pecl-radius/pecl-radius-1.4.0_beta1-r3.ebuild
+++ b/dev-php/pecl-radius/pecl-radius-1.4.0_beta1-r3.ebuild
@@ -7,7 +7,7 @@ PHP_EXT_NAME="radius"
 PHP_EXT_INI="yes"
 PHP_EXT_ZENDEXT="no"
 
-USE_PHP="php7-4"
+USE_PHP="php7-4 php8-0 php8-1 php8-2"
 PHP_EXT_PECL_FILENAME="${PN/pecl-/}-${PV/_beta/b}.tgz"
 PHP_EXT_S="${WORKDIR}/${PHP_EXT_PECL_FILENAME%.tgz}"
 PHP_EXT_NEEDED_USE="pcntl(-),sockets(-)"
@@ -22,3 +22,11 @@ SLOT="0"
 IUSE="examples"
 
 S="${PHP_EXT_S}"
+
+PATCHES=( "${FILESDIR}/1.4.0-php8.patch" )
+
+src_unpack() {
+       default
+       #Non-portable test
+       rm "${S}/tests/radius_close.phpt" || die
+}

Reply via email to