diff options
Diffstat (limited to 'dev-php')
-rw-r--r-- | dev-php/pecl-radius/files/1.4.0-php8.patch | 289 | ||||
-rw-r--r-- | dev-php/pecl-radius/pecl-radius-1.4.0_beta1-r3.ebuild | 10 |
2 files changed, 298 insertions, 1 deletions
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?= <bruno.premont@restena.lu> +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 +} |