summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2022-10-17 16:45:29 +0200
committerRemi Collet <remi@php.net>2022-10-17 16:45:29 +0200
commit6e5d7189a9e051f5ead5082ada51c876e99bac74 (patch)
tree2df75a084cd074913aa2edc6ad4a6d973efa3a26
parentacaddc96ccc610d6fe4f1a24c89915c1974009d1 (diff)
add upstream patch for PHP 8.2
-rw-r--r--uwsgi-plugin-php.spec7
-rw-r--r--uwsgi_fix_php81.patch42
-rw-r--r--uwsgi_fix_php82.patch15
3 files changed, 63 insertions, 1 deletions
diff --git a/uwsgi-plugin-php.spec b/uwsgi-plugin-php.spec
index 20acc1b..acc0da1 100644
--- a/uwsgi-plugin-php.spec
+++ b/uwsgi-plugin-php.spec
@@ -29,7 +29,7 @@ Requires: %{scl_prefix}php-embedded
Name: %{?scl_prefix}%{project}-plugin-php
Version: 2.0.20
-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;')}}
Summary: uWSGI - Plugin for PHP support
License: GPLv2 with exceptions
URL: http://projects.unbit.it/uwsgi
@@ -42,6 +42,7 @@ Patch1: uwsgi_fix_php8.patch
Patch2: uwsgi_fix_php_arginfo.patch
# https://github.com/unbit/uwsgi/issues/2394
Patch3: uwsgi_fix_php81.patch
+Patch4: uwsgi_fix_php82.patch
BuildRequires: %{?dtsprefix}gcc
BuildRequires: %{?scl_prefix}php-devel >= 7.0
@@ -98,6 +99,7 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
# Fix makefile
sed -e 's:/lib:/%{_lib}:' -i plugins/php/uwsgiplugin.py
@@ -124,6 +126,9 @@ install -Dpm 755 %{?scl}%{!?scl:php}_plugin.so %{buildroot}%{_root_libdir}/%{pro
%changelog
+* Mon Oct 17 2022 Remi Collet <remi@remirepo.net> - 2.0.20-3
+- add upstream patch for PHP 8.2
+
* Thu Jun 9 2022 Remi Collet <remi@remirepo.net> - 2.0.20-2
- add upstream patch for PHP 8.1
diff --git a/uwsgi_fix_php81.patch b/uwsgi_fix_php81.patch
new file mode 100644
index 0000000..81d9025
--- /dev/null
+++ b/uwsgi_fix_php81.patch
@@ -0,0 +1,42 @@
+From 8ca18da9a01eee19156243c5c0d28d2572698e4a Mon Sep 17 00:00:00 2001
+From: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
+Date: Sun, 30 Jan 2022 14:31:50 +0100
+Subject: [PATCH] plugins/php: handle php8.1 zend_file_handle signature change
+
+filename is now a zend_string.
+
+Refs #2394
+---
+ plugins/php/php_plugin.c | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/plugins/php/php_plugin.c b/plugins/php/php_plugin.c
+index d336adddc..8b5a24156 100644
+--- a/plugins/php/php_plugin.c
++++ b/plugins/php/php_plugin.c
+@@ -1096,14 +1096,19 @@ int uwsgi_php_request(struct wsgi_request *wsgi_req) {
+
+ SG(request_info).path_translated = wsgi_req->file;
+
+- memset(&file_handle, 0, sizeof(zend_file_handle));
+- file_handle.type = ZEND_HANDLE_FILENAME;
+- file_handle.filename = real_filename;
++#if PHP_VERSION_ID >= 80100
++ zend_string *handle_filename = zend_string_init(real_filename, real_filename_len, 0);
++#else
++ const char *handle_filename = real_filename;
++#endif
++ memset(&file_handle, 0, sizeof(zend_file_handle));
++ file_handle.type = ZEND_HANDLE_FILENAME;
++ file_handle.filename = handle_filename;
+
+- if (php_request_startup() == FAILURE) {
++ if (php_request_startup() == FAILURE) {
+ uwsgi_500(wsgi_req);
+- return -1;
+- }
++ return -1;
++ }
+
+ struct uwsgi_string_list *usl=NULL;
+
diff --git a/uwsgi_fix_php82.patch b/uwsgi_fix_php82.patch
new file mode 100644
index 0000000..66a8e49
--- /dev/null
+++ b/uwsgi_fix_php82.patch
@@ -0,0 +1,15 @@
+diff -uNr a/plugins/php/php_plugin.c b/plugins/php/php_plugin.c
+--- a/plugins/php/php_plugin.c 2022-10-06 19:52:07.237882916 +0200
++++ b/plugins/php/php_plugin.c 2022-10-06 19:56:29.232418542 +0200
+@@ -607,7 +607,11 @@
+ static int php_uwsgi_startup(sapi_module_struct *sapi_module)
+ {
+
++#if PHP_VERSION_ID >= 80200
++ if (php_module_startup(&uwsgi_sapi_module, &uwsgi_module_entry)==FAILURE) {
++#else
+ if (php_module_startup(&uwsgi_sapi_module, &uwsgi_module_entry, 1)==FAILURE) {
++#endif
+ return FAILURE;
+ } else {
+ return SUCCESS;