summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2024-10-22 12:08:25 +0200
committerRemi Collet <remi@php.net>2024-10-22 12:08:25 +0200
commit87a0f33effbe7d8e29dfcced9059d556ba65e242 (patch)
tree1bd76f873398171221b5326e5eb0d5fa66d5743d
parentf8a9cb44e4bc1e3d765693f542c56bdb8f61f46e (diff)
add fix for PHP 8.4 from
https://github.com/swoole/swoole-src/pull/5537
-rw-r--r--5537.patch90
-rw-r--r--php-pecl-swoole6.spec10
2 files changed, 99 insertions, 1 deletions
diff --git a/5537.patch b/5537.patch
new file mode 100644
index 0000000..c787d4d
--- /dev/null
+++ b/5537.patch
@@ -0,0 +1,90 @@
+From f2a69dbb6817e29d85aa9a8e8e4aa4a4498aedf8 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Tue, 22 Oct 2024 09:35:27 +0200
+Subject: [PATCH 1/3] Fix #5536 remove unneeded include of php_pdo_int.h
+
+---
+ thirdparty/php84/pdo_pgsql/pgsql_sql_parser.c | 1 -
+ thirdparty/php84/pdo_sqlite/sqlite_sql_parser.c | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/thirdparty/php84/pdo_pgsql/pgsql_sql_parser.c b/thirdparty/php84/pdo_pgsql/pgsql_sql_parser.c
+index c030abc318b..d74ff5a7a8f 100644
+--- a/thirdparty/php84/pdo_pgsql/pgsql_sql_parser.c
++++ b/thirdparty/php84/pdo_pgsql/pgsql_sql_parser.c
+@@ -21,7 +21,6 @@
+
+ #include "php.h"
+ #include "ext/pdo/php_pdo_driver.h"
+-#include "ext/pdo/php_pdo_int.h"
+ #include "ext/pdo/pdo_sql_parser.h"
+
+ int pdo_pgsql_scanner(pdo_scanner_t *s)
+diff --git a/thirdparty/php84/pdo_sqlite/sqlite_sql_parser.c b/thirdparty/php84/pdo_sqlite/sqlite_sql_parser.c
+index 05e702fbd53..442ccb1aff6 100644
+--- a/thirdparty/php84/pdo_sqlite/sqlite_sql_parser.c
++++ b/thirdparty/php84/pdo_sqlite/sqlite_sql_parser.c
+@@ -21,7 +21,6 @@
+
+ #include "php.h"
+ #include "ext/pdo/php_pdo_driver.h"
+-#include "ext/pdo/php_pdo_int.h"
+ #include "ext/pdo/pdo_sql_parser.h"
+
+ int pdo_sqlite_scanner(pdo_scanner_t *s)
+
+From beed9c31075a27d016a0d262e6d89f002d7dade3 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Tue, 22 Oct 2024 10:45:16 +0200
+Subject: [PATCH 3/3] call exit using original function handler
+
+---
+ ext-src/swoole_coroutine.cc | 4 ++--
+ ext-src/swoole_runtime.cc | 12 ++++++++++++
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/ext-src/swoole_coroutine.cc b/ext-src/swoole_coroutine.cc
+index eb7c13abb4e..fc3f456a176 100644
+--- a/ext-src/swoole_coroutine.cc
++++ b/ext-src/swoole_coroutine.cc
+@@ -225,7 +225,7 @@ static int coro_exit_handler(zend_execute_data *execute_data) {
+ }
+ #else
+ SW_EXTERN_C_BEGIN
+-extern ZEND_FUNCTION(exit);
++bool swoole_call_original_handler(const char *name, INTERNAL_FUNCTION_PARAMETERS);
+ PHP_FUNCTION(swoole_exit) {
+ zend_long flags = 0;
+ if (Coroutine::get_current()) {
+@@ -251,7 +251,7 @@ PHP_FUNCTION(swoole_exit) {
+ zend_update_property_long(swoole_exit_exception_ce, SW_Z8_OBJ_P(&ex), ZEND_STRL("flags"), flags);
+ zend_update_property_long(swoole_exit_exception_ce, SW_Z8_OBJ_P(&ex), ZEND_STRL("status"), status);
+ } else {
+- ZEND_FN(exit)(INTERNAL_FUNCTION_PARAM_PASSTHRU);
++ swoole_call_original_handler("exit", INTERNAL_FUNCTION_PARAM_PASSTHRU);
+ }
+ }
+ SW_EXTERN_C_END
+diff --git a/ext-src/swoole_runtime.cc b/ext-src/swoole_runtime.cc
+index 13827f9788e..6fbfafdc31f 100644
+--- a/ext-src/swoole_runtime.cc
++++ b/ext-src/swoole_runtime.cc
+@@ -1170,6 +1170,18 @@ static bool enable_func(const char *name, size_t l_name) {
+ return true;
+ }
+
++SW_EXTERN_C_BEGIN
++bool swoole_call_original_handler(const char *name, INTERNAL_FUNCTION_PARAMETERS) {
++ real_func *rf = (real_func *) zend_hash_str_find_ptr(tmp_function_table, name, strlen(name));
++ if (!rf) {
++ return false;
++ }
++ rf->ori_handler(INTERNAL_FUNCTION_PARAM_PASSTHRU);
++
++ return true;
++}
++SW_EXTERN_C_END
++
+ void PHPCoroutine::disable_unsafe_function() {
+ for (auto &f : unsafe_functions) {
+ disable_func(f.c_str(), f.length());
diff --git a/php-pecl-swoole6.spec b/php-pecl-swoole6.spec
index e85b430..213730d 100644
--- a/php-pecl-swoole6.spec
+++ b/php-pecl-swoole6.spec
@@ -53,7 +53,7 @@
Summary: PHP's asynchronous concurrent distributed networking framework
Name: %{?scl_prefix}php-pecl-%{pecl_name}6
Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}}
-Release: 2%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Release: 3%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
# Extension is Apache-2.0
# BSD-3-Clause: Hiredis
# MIT: nlohmann/json, nghttp2
@@ -61,6 +61,8 @@ License: Apache-2.0 AND BSD-3-Clause AND MIT
URL: https://pecl.php.net/package/%{pecl_name}
Source0: https://pecl.php.net/get/%{pecl_name}-%{upstream_version}%{?upstream_prever}.tgz
+Patch0: 5537.patch
+
BuildRequires: make
BuildRequires: %{?dtsprefix}gcc
BuildRequires: %{?dtsprefix}gcc-c++
@@ -196,6 +198,8 @@ rm -r thirdparty/nghttp2
cp -p thirdparty/nghttp2/COPYING nghttp2-COPYING
%endif
+%patch -P0 -p1 -b .pr5537
+
# Sanity check, really often broken
extver=$(sed -n '/#define SWOOLE_VERSION /{s/.* "//;s/".*$//;p}' include/swoole_version.h)
if test "x${extver}" != "x%{upstream_version}%{?upstream_prever}"; then
@@ -364,6 +368,10 @@ cd ../ZTS
%changelog
+* Tue Oct 22 2024 Remi Collet <remi@remirepo.net> - 6.0.0-3
+- add fix for PHP 8.4 from
+ https://github.com/swoole/swoole-src/pull/5537
+
* Tue Oct 22 2024 Remi Collet <remi@remirepo.net> - 6.0.0-2
- update to 6.0.0beta