Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package php8 for openSUSE:Factory checked in 
at 2026-07-14 13:45:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/php8 (Old)
 and      /work/SRC/openSUSE:Factory/.php8.new.1991 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "php8"

Tue Jul 14 13:45:17 2026 rev:110 rq:1364992 version:8.5.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/php8/php8.changes        2026-06-05 
14:56:24.994669794 +0200
+++ /work/SRC/openSUSE:Factory/.php8.new.1991/php8.changes      2026-07-14 
13:45:20.665590522 +0200
@@ -1,0 +2,36 @@
+Fri Jul 10 16:11:27 UTC 2026 - Arjen de Korte <[email protected]>
+
+- fix build with GCC 16 (gh#php/php-src#22206) [boo#1267259]
+- added patch
+  + php-fix-build-gcc16.patch
+
+-------------------------------------------------------------------
+Tue Jul  7 11:47:59 UTC 2026 - Petr Gajdos <[email protected]>
+
+- use system liburiparser [bsc#1270538] [bsc#1270539]
+
+-------------------------------------------------------------------
+Fri Jul  3 10:17:17 UTC 2026 - Arjen de Korte <[email protected]>
+
+- version update to 8.5.8 (CVE-2026-14355 [bsc#1270351])
+    CLI:
+        Fixed bug GH-21901 (Stale getopt() optional value).
+   Date:
+      Fixed bug GH-18422 (int overflow in php_date_llabs).
+   DOM:
+      Fixed bug GH-22077 (UAF in custom XPath function).
+   Opcache:
+      Fixed tracing JIT crash when a VM interrupt is handled during an 
observed user function call.
+      Fixed bug GH-21746 (Segfault with tracing JIT).
+      Fixed bug GH-22004 (Assertion failure at 
ext/opcache/jit/zend_jit_trace.c).
+      Fixed tailcall VM crash when a VM interrupt is handled from a VM helper.
+   OpenSSL:
+      Fix compatibility issues with OpenSSL 4.0.
+   Standard:
+      Fixed bug GH-21689 (version_compare() incorrectly handles versions 
ending with a dot).
+   URI:
+      Fixed CVE-2026-44927 (In uriparser before 1.0.2, there is pointer 
difference truncation to int in various places). (CVE-2026-44927)
+      Fixed CVE-2026-44928 (In uriparser before 1.0.2, the function family 
EqualsUri can misclassify two unequal URIs as equal). (CVE-2026-44928)
+- Revert changes for building with GCC 16
+
+-------------------------------------------------------------------
@@ -101,0 +138 @@
+        CVE-2026-12184 [bsc#1270712]

Old:
----
  php-8.5.7.tar.xz
  php-8.5.7.tar.xz.asc

New:
----
  php-8.5.8.tar.xz
  php-8.5.8.tar.xz.asc
  php-fix-build-gcc16.patch

----------(New B)----------
  New:- added patch
  + php-fix-build-gcc16.patch
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ php8.spec ++++++
--- /var/tmp/diff_new_pack.GOUfJk/_old  2026-07-14 13:45:21.881632088 +0200
+++ /var/tmp/diff_new_pack.GOUfJk/_new  2026-07-14 13:45:21.885632225 +0200
@@ -57,7 +57,7 @@
 %bcond_without sodium
 
 Name:           %{pprefix}%{php_name}%{psuffix}
-Version:        8.5.7
+Version:        8.5.8
 Release:        0
 Summary:        Interpreter for the PHP scripting language version 8
 License:        MIT AND PHP-3.01
@@ -93,6 +93,8 @@
 Patch22:        php-date-regenerate-lexers.patch
 # PATCH-FEATURE-UPSTREAM https://github.com/php/php-src/pull/6564
 Patch19:        php-build-reproducible-phar.patch
+# PATCH-FIX-OPENSUSE https://github.com/php/php-src/issues/22206
+Patch20:        php-fix-build-gcc16.patch
 BuildRequires:  apache-rpm-macros
 BuildRequires:  autoconf
 BuildRequires:  bison
@@ -139,6 +141,9 @@
 BuildRequires:  pkgconfig(libffi) >= 3.0.11
 BuildRequires:  pkgconfig(libpcre2-8) >= 10.30
 BuildRequires:  pkgconfig(libsasl2)
+%if 0%{suse_version} >= 1610
+BuildRequires:  pkgconfig(liburiparser)
+%endif
 BuildRequires:  pkgconfig(libxml-2.0) >= 2.9.0
 BuildRequires:  pkgconfig(libxslt) >= 1.1.0
 BuildRequires:  pkgconfig(libzip) >= 0.11
@@ -259,6 +264,9 @@
 Requires:       pkgconfig(libpcre2-8) >= 10.30
 Requires:       pkgconfig(libxml-2.0) >= 2.9.0
 Requires:       pkgconfig(tinfo)
+%if 0%{suse_version} >= 1610
+Requires:       pkgconfig(liburiparser)
+%endif
 %if %{with argon2}
 Requires:       pkgconfig(libargon2)
 %endif
@@ -1063,6 +1071,7 @@
     sapi=$1
     shift
     %configure \
+        --disable-gcc-global-regs \
         --datadir=%{_datadir}/%{php_name} \
         --with-libdir=%{_lib} \
         --includedir=%{_includedir} \
@@ -1084,6 +1093,9 @@
         --enable-re2c-cgoto \
         --with-system-tzdata=%{_datadir}/zoneinfo \
         --with-external-libcrypt \
+%if 0%{suse_version} >= 1610
+        --with-external-uriparser \
+%endif
         --with-mhash \
         --disable-phpdbg \
 %if %{with argon2}

++++++ php-8.5.7.tar.xz -> php-8.5.8.tar.xz ++++++
/work/SRC/openSUSE:Factory/php8/php-8.5.7.tar.xz 
/work/SRC/openSUSE:Factory/.php8.new.1991/php-8.5.8.tar.xz differ: char 13, 
line 1

++++++ php-fix-build-gcc16.patch ++++++
>From 39c678215ce605817937d29c095ec9a880742b0a Mon Sep 17 00:00:00 2001
From: Yuriy Azorsky <[email protected]>
Date: Fri, 5 Jun 2026 00:38:48 +0300
Subject: [PATCH] Fix GH-22206: [opcache] avoid musttail in zend_runtime_jit()
 (GCC 16)

---
 .github/workflows/opcache-tailcall-vm.yml | 64 +++++++++++++++++++++++
 ext/opcache/jit/zend_jit.c                |  8 +++
 2 files changed, 72 insertions(+)
 create mode 100644 .github/workflows/opcache-tailcall-vm.yml

diff --git a/.github/workflows/opcache-tailcall-vm.yml 
b/.github/workflows/opcache-tailcall-vm.yml
new file mode 100644
index 000000000000..bec874fce95a
--- /dev/null
+++ b/.github/workflows/opcache-tailcall-vm.yml
@@ -0,0 +1,64 @@
+# Regression guard for the opcache JIT tail-call VM build.
+#
+# When global register variables are unavailable but musttail is, opcache is
+# built with ZEND_VM_KIND_TAILCALL (see Zend/zend_vm_opcodes.h). In that mode
+# ZEND_OPCODE_RETURN() expands to a guaranteed tail call (ZEND_MUSTTAIL). A
+# function that uses setjmp() (e.g. zend_runtime_jit() via zend_try()) must not
+# perform such a tail call; GCC 16 diagnoses this as
+#   error: cannot tail-call: caller uses setjmp
+# and the build fails (php-src issues #21960 and #22206).
+#
+# This job forces the tail-call VM via --disable-gcc-global-regs and compiles
+# opcache, so the otherwise-uncovered TAILCALL path is exercised on every run.
+# NOTE: the error is only emitted by compilers that enforce it (GCC >= 16).
+# On older GCC / Clang this job still builds the path but will not turn red,
+# so point `cc` at a GCC 16+ toolchain to get full regression coverage.
+name: opcache tail-call VM build
+
+on:
+  pull_request:
+    paths:
+      - 'ext/opcache/**'
+      - 'Zend/zend_vm_opcodes.h'
+      - 'Zend/zend_vm_execute.h'
+      - 'Zend/zend_portability.h'
+      - '.github/workflows/opcache-tailcall-vm.yml'
+  workflow_dispatch:
+
+permissions:
+  contents: read
+
+jobs:
+  TAILCALL_VM:
+    name: LINUX_X64_TAILCALL_VM
+    runs-on: ubuntu-24.04
+    steps:
+      - name: git checkout
+        uses: actions/checkout@v4
+      - name: apt
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y \
+            autoconf bison re2c pkg-config \
+            libxml2-dev libsqlite3-dev
+      - name: System info
+        run: cc --version
+      - name: ./buildconf
+        run: ./buildconf --force
+      - name: ./configure
+        # --disable-gcc-global-regs drops HYBRID; with musttail available on
+        # x86_64 this selects ZEND_VM_KIND_TAILCALL, the path that broke under
+        # GCC 16. JIT must stay enabled so ext/opcache/jit/zend_jit.c is built.
+        run: |
+          ./configure \
+            --enable-option-checking=fatal \
+            --disable-all \
+            --enable-opcache \
+            --enable-cli \
+            --disable-gcc-global-regs
+      - name: make
+        run: make -j$(nproc)
+      - name: Verify tail-call VM was actually built
+        run: |
+          ./sapi/cli/php --ri opcache > /dev/null
+          ./sapi/cli/php -r 'echo PHP_VERSION, PHP_EOL;'
diff --git a/ext/opcache/jit/zend_jit.c b/ext/opcache/jit/zend_jit.c
index 5de9c81484ba..9a94532347fa 100644
--- a/ext/opcache/jit/zend_jit.c
+++ b/ext/opcache/jit/zend_jit.c
@@ -3138,7 +3138,15 @@ static ZEND_OPCODE_HANDLER_RET 
ZEND_OPCODE_HANDLER_FUNC_CCONV zend_runtime_jit(Z
        return; // ZEND_VM_CONTINUE
 #else
        opline = orig_opline;
+# if ZEND_VM_KIND == ZEND_VM_KIND_TAILCALL
+       /* This function uses setjmp() via zend_try(), so a guaranteed tail call
+        * (ZEND_MUSTTAIL, as used by ZEND_OPCODE_RETURN() in the tail-call VM) 
is
+        * not allowed here and is rejected by GCC 16. As this is a cold 
one-shot
+        * JIT trigger rather than a hot VM handler, a plain call is fine. */
+       return 
((zend_vm_opcode_handler_t)opline->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+# else
        ZEND_OPCODE_RETURN();
+# endif
 #endif
 }
 

Reply via email to