From 6439083dfcdd0fefd2a3bb0cfa78ba864761f771 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Tue, 21 Oct 2025 20:04:51 +0200 Subject: [PATCH 1/5] 6.9.3 --- .gitignore | 1 + qt6-qtwebengine.spec | 7 +++- qtwebengine-revert-create-eglimage.patch | 53 ++++++++++++++++++++++++ sources | 2 +- 4 files changed, 60 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 11326d2..1c76f4e 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ /qtwebengine-everywhere-src-6.9.0-clean.tar.xz /qtwebengine-everywhere-src-6.9.1-clean.tar.xz /qtwebengine-everywhere-src-6.9.2-clean.tar.xz +/qtwebengine-everywhere-src-6.9.3-clean.tar.xz diff --git a/qt6-qtwebengine.spec b/qt6-qtwebengine.spec index 342f0cd..6bb2607 100644 --- a/qt6-qtwebengine.spec +++ b/qt6-qtwebengine.spec @@ -85,8 +85,8 @@ Summary: Qt6 - QtWebEngine components Name: qt6-qtwebengine -Version: 6.9.2 -Release: 2%{?dist} +Version: 6.9.3 +Release: 1%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details # See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html @@ -847,6 +847,9 @@ done %endif %changelog +* Tue Oct 21 2025 Jan Grulich - 6.9.3-1 +- 6.9.3 + * Mon Sep 08 2025 Sandro Mani - 6.9.2-2 - Revert commit bcee2dbf412cc655c1b467091b581c696d234e3f diff --git a/qtwebengine-revert-create-eglimage.patch b/qtwebengine-revert-create-eglimage.patch index 2d4d6f9..0053f12 100644 --- a/qtwebengine-revert-create-eglimage.patch +++ b/qtwebengine-revert-create-eglimage.patch @@ -151,3 +151,56 @@ diff -rupN qtwebengine-everywhere-src-6.9.2/src/core/ozone/egl_helper.h qtwebeng PFNEGLDESTROYIMAGEPROC eglDestroyImage; PFNEGLEXPORTDMABUFIMAGEMESAPROC eglExportDMABUFImageMESA; PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC eglExportDMABUFImageQueryMESA; +diff --git a/src/core/ozone/egl_helper.cpp b/src/core/ozone/egl_helper.cpp +index 76e1c2a46..d3f76e0ce 100644 +--- a/src/core/ozone/egl_helper.cpp ++++ b/src/core/ozone/egl_helper.cpp +@@ -6,7 +6,9 @@ + #include "ozone_util_qt.h" + #include "web_engine_context.h" + ++#include + #include ++#include + #include + #include + #include +@@ -93,6 +95,7 @@ EGLHelper *EGLHelper::instance() + EGLHelper::EGLHelper() + : m_eglDisplay(qApp->platformNativeInterface()->nativeResourceForIntegration("egldisplay")) + , m_functions(new EGLHelper::EGLFunctions()) ++ , m_offscreenSurface(new QOffscreenSurface()) + { + const char *extensions = m_functions->eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); + if (!extensions) { +@@ -110,6 +113,9 @@ EGLHelper::EGLHelper() + return; + } + ++ Q_ASSERT(QThread::currentThread() == qApp->thread()); ++ m_offscreenSurface->create(); ++ + m_isDmaBufSupported = QtWebEngineCore::WebEngineContext::isGbmSupported(); + + // Check extensions. +diff --git a/src/core/ozone/egl_helper.h b/src/core/ozone/egl_helper.h +index 6233ef87e..88ed6167c 100644 +--- a/src/core/ozone/egl_helper.h ++++ b/src/core/ozone/egl_helper.h +@@ -25,6 +25,8 @@ + + QT_BEGIN_NAMESPACE + ++class QOffscreenSurface; ++ + class EGLHelper + { + public: +@@ -59,6 +61,7 @@ private: + + EGLDisplay m_eglDisplay = EGL_NO_DISPLAY; + QScopedPointer m_functions; ++ QScopedPointer m_offscreenSurface; + bool m_isDmaBufSupported = false; + }; + diff --git a/sources b/sources index 92e53a4..7dfdd4c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (qtwebengine-everywhere-src-6.9.2-clean.tar.xz) = ae31f6b057629b2690c81e1920c8ee4dab0b44262f087c42716b2a5cbece884873bb89c2f3a5f8ffa9de6501febea85c360d29f0d98d2eded5893d213ba317c9 +SHA512 (qtwebengine-everywhere-src-6.9.3-clean.tar.xz) = 2ef985ca8165bfa8eb3b3a0161cb01e0e53fea7f77cd5bebf082b5f975e8b5e915e4114c09a471cca4612ef81a1244a26b95f5c9658bdc604d9ec549e73e1e1e SHA512 (pulseaudio-12.2-headers.tar.gz) = a5a9bcbb16030b3bc83cc0cc8f5e7f90e0723d3e83258a5c77eacb32eaa267118a73fa7814fbcc99a24e4907916a2b371ebb6dedc4f45541c3acf6c834fd35be From 29c1b9692b5febc5586dbb38aa6c470e0445cb42 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Thu, 8 Jan 2026 15:49:51 +0100 Subject: [PATCH 2/5] Fix build against GCC16 --- qt6-qtwebengine.spec | 2 ++ qtwebengine-fix-build-against-gcc16.patch | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 qtwebengine-fix-build-against-gcc16.patch diff --git a/qt6-qtwebengine.spec b/qt6-qtwebengine.spec index cf815e9..798b46d 100644 --- a/qt6-qtwebengine.spec +++ b/qt6-qtwebengine.spec @@ -138,6 +138,7 @@ Patch81: qtwebengine-move-gpu-info-logging-to-gpu-thread.patch ## Upstreamable patches: Patch100: qtwebengine-add-missing-pipewire-headers.patch +Patch101: qtwebengine-fix-build-against-gcc16.patch ## ppc64le port Patch200: qtwebengine-6.9-ppc64.patch @@ -492,6 +493,7 @@ popd ## upstreamable patches %patch -P100 -p1 -b .add-missing-pipewire-headers +%patch -P101 -p1 -b .fix-build-against-gcc16 # ppc64le support %patch -P200 -p1 diff --git a/qtwebengine-fix-build-against-gcc16.patch b/qtwebengine-fix-build-against-gcc16.patch new file mode 100644 index 0000000..ad97de9 --- /dev/null +++ b/qtwebengine-fix-build-against-gcc16.patch @@ -0,0 +1,12 @@ +diff --git a/src/3rdparty/chromium/base/strings/to_string.h b/src/3rdparty/chromium/base/strings/to_string.h +index 96e61daa9e..5d097946f7 100644 +--- a/src/3rdparty/chromium/base/strings/to_string.h ++++ b/src/3rdparty/chromium/base/strings/to_string.h +@@ -6,6 +6,7 @@ + #define BASE_STRINGS_TO_STRING_H_ + + #include ++#include + #include + #include + #include From b4cecbae28e24557476e5ababb573bafbea43fae Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Sun, 11 Jan 2026 15:44:08 +0100 Subject: [PATCH 3/5] Apply the "Move GPU info logging into the GPU thread" patch --- qt6-qtwebengine.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/qt6-qtwebengine.spec b/qt6-qtwebengine.spec index 798b46d..6996e48 100644 --- a/qt6-qtwebengine.spec +++ b/qt6-qtwebengine.spec @@ -88,7 +88,7 @@ Summary: Qt6 - QtWebEngine components Name: qt6-qtwebengine Version: 6.10.1 -Release: 3%{?dist} +Release: 4%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details # See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html @@ -490,6 +490,7 @@ popd ## upstream patches %patch -P80 -p1 -b .fix-arm-build +%patch -P81 -p1 -b .move-gpu-info-logging-to-gpu-thread ## upstreamable patches %patch -P100 -p1 -b .add-missing-pipewire-headers @@ -851,6 +852,9 @@ done %endif %changelog +* Sun Jan 11 2026 Jan Grulich - 6.10.1-4 +- Apply the "Move GPU info logging into the GPU thread" patch + * Thu Jan 08 2026 Jan Grulich - 6.10.1-3 - Move GPU info logging into the GPU thread From 225a761a3187cf1864d7826eda39e7c0553759bf Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 12 Jan 2026 14:01:37 -0500 Subject: [PATCH 4/5] Apply glibc 2.42 patch on ELN --- qt6-qtwebengine.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qt6-qtwebengine.spec b/qt6-qtwebengine.spec index 6996e48..b2ad566 100644 --- a/qt6-qtwebengine.spec +++ b/qt6-qtwebengine.spec @@ -484,7 +484,7 @@ popd %patch -P2 -p1 -b .link-pipewire %patch -P3 -p1 -b .aarch64-new-stat %patch -P4 -p1 -b .use-openh264 -%if 0%{?fedora} > 43 +%if 0%{?fedora} > 43 || 0%{?rhel} > 10 %patch -P5 -p1 -b .chromium-141-glibc-2.42-SYS_SECCOMP %endif From eba7bec4749e3691bd89f853ce494aea86586daa Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Tue, 13 Jan 2026 12:24:12 +0100 Subject: [PATCH 5/5] Fix Quick popup window positioning under X11 --- qt6-qtwebengine.spec | 9 +++- ...k-popup-window-positioning-under-x11.patch | 45 +++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 qtwebengine-fix-quick-popup-window-positioning-under-x11.patch diff --git a/qt6-qtwebengine.spec b/qt6-qtwebengine.spec index b2ad566..ad75b37 100644 --- a/qt6-qtwebengine.spec +++ b/qt6-qtwebengine.spec @@ -88,7 +88,7 @@ Summary: Qt6 - QtWebEngine components Name: qt6-qtwebengine Version: 6.10.1 -Release: 4%{?dist} +Release: 5%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details # See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html @@ -133,8 +133,11 @@ Patch5: qtwebengine-chromium-141-glibc-2.42-SYS_SECCOMP.patch ## Upstream patches: # https://bugreports.qt.io/browse/QTBUG-129985 Patch80: qtwebengine-fix-arm-build.patch +# Remove with Qt 6.10.2 # https://codereview.qt-project.org/c/qt/qtwebengine/+/702597 Patch81: qtwebengine-move-gpu-info-logging-to-gpu-thread.patch +# https://qt-project.atlassian.net/browse/QTBUG-142823 +Patch82: qtwebengine-fix-quick-popup-window-positioning-under-x11.patch ## Upstreamable patches: Patch100: qtwebengine-add-missing-pipewire-headers.patch @@ -491,6 +494,7 @@ popd ## upstream patches %patch -P80 -p1 -b .fix-arm-build %patch -P81 -p1 -b .move-gpu-info-logging-to-gpu-thread +%patch -P82 -p1 -b .fix-quick-popup-window-positioning-under-x11 ## upstreamable patches %patch -P100 -p1 -b .add-missing-pipewire-headers @@ -852,6 +856,9 @@ done %endif %changelog +* Tue Jan 13 2026 Jan Grulich - 6.10.1-5 +- Fix Quick popup window positioning under X11 + * Sun Jan 11 2026 Jan Grulich - 6.10.1-4 - Apply the "Move GPU info logging into the GPU thread" patch diff --git a/qtwebengine-fix-quick-popup-window-positioning-under-x11.patch b/qtwebengine-fix-quick-popup-window-positioning-under-x11.patch new file mode 100644 index 0000000..318a852 --- /dev/null +++ b/qtwebengine-fix-quick-popup-window-positioning-under-x11.patch @@ -0,0 +1,45 @@ +From 65ea28e7204eaeb39588a33cfc2f69c48951aa6a Mon Sep 17 00:00:00 2001 +From: Peter Varga +Date: Thu, 14 Aug 2025 16:17:41 +0200 +Subject: [PATCH] Fix Quick popup window positioning under X11 + +If the popup window has the Qt::Dialog flag, some window managers may +try to resize and move the popup after it becomes visible. This can lead +to a blinking popup or even worse, it can cause a loop that continuously +moves the popup window. + +Replace Qt::Tool flag with Qt::Popup to get rid of the Qt::Dialog flag +but keep popup as popup. + +Note on Wayland Qt:Tool is xdg toplevel not a 'popup' neither 'grabbing +popup' and it creates shell surface. This means it will get random +position on the screen. + +Note this tricky issue as we already changed that several times both +for widgets and quick due to different reasons (see 1390979a, 2f720836, +58467ed19, 7e7dd2625, c56169f7a1) + +Fixes: QTBUG-140321 +Task-number: QTBUG-132794 +Task-number: QTBUG-138747 +Pick-to: 6.10 +Change-Id: I8c3a94519008455fac2d8ab4c3bf34d860e2475b +Reviewed-by: Peter Varga +--- + .../render_widget_host_view_qt_delegate_quickwindow.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/webenginequick/render_widget_host_view_qt_delegate_quickwindow.cpp b/src/webenginequick/render_widget_host_view_qt_delegate_quickwindow.cpp +index 3ad88ca39aa..95b5e3500b3 100644 +--- a/src/webenginequick/render_widget_host_view_qt_delegate_quickwindow.cpp ++++ b/src/webenginequick/render_widget_host_view_qt_delegate_quickwindow.cpp +@@ -31,7 +31,8 @@ RenderWidgetHostViewQtDelegateQuickWindow::RenderWidgetHostViewQtDelegateQuickWi + RenderWidgetHostViewQtDelegateItem *realDelegate, QWindow *parent) + : QQuickWindow(), m_realDelegate(realDelegate), m_virtualParent(nullptr), m_transformed(false) + { +- setFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus); ++ setFlags(Qt::Popup | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint ++ | Qt::WindowDoesNotAcceptFocus); + realDelegate->setParentItem(contentItem()); + setTransientParent(parent); + }