17
0

6 Commits

Author SHA256 Message Date
e1a777b911 Accepting request 1320889 from KDE:Qt:5.15
- Add libqt5-qtwebengine-icu78.patch: Fix build against ICU 78. (forwarded request 1320822 from dimstar)

OBS-URL: https://build.opensuse.org/request/show/1320889
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtwebengine?expand=0&rev=108
2025-12-03 13:12:59 +00:00
Christophe Marin
ec174a3f28 - Add libqt5-qtwebengine-icu78.patch: Fix build against ICU 78.
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtwebengine?expand=0&rev=77
2025-12-02 19:00:53 +00:00
Christophe Marin
ec795a725b - Remove unused BuildRequires: update-desktop-files.
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtwebengine?expand=0&rev=76
2025-11-29 21:51:06 +00:00
4fd1774975 Accepting request 1302714 from KDE:Qt:5.15
- Change the way we pin to ffmpeg-7: set maximum versions for the
  libav* buildrequires insteaf of hardcoding ffmpeg-7-*devel. This
  allows OBS to still shortcut through the mini packages. (forwarded request 1302712 from dimstar)

OBS-URL: https://build.opensuse.org/request/show/1302714
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtwebengine?expand=0&rev=107
2025-09-05 19:42:14 +00:00
Christophe Marin
e83aa95527 - Change the way we pin to ffmpeg-7: set maximum versions for the
libav* buildrequires insteaf of hardcoding ffmpeg-7-*devel. This
  allows OBS to still shortcut through the mini packages.

OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtwebengine?expand=0&rev=75
2025-09-04 10:43:00 +00:00
Christophe Marin
21bd670e8c Accepting request 1302391 from home:krop:qtwebengine-lts
Update to 5.15.19 + force build with ffmpeg 7 on TW

OBS-URL: https://build.opensuse.org/request/show/1302391
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtwebengine?expand=0&rev=74
2025-09-03 20:14:52 +00:00
10 changed files with 154 additions and 131 deletions

View File

@@ -1,12 +1,12 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="changesgenerate">enable</param>
<!-- submodule from fdfef5b3 to 85337c28b -->
<param name="version">5.15.18</param>
<!-- submodule from 85337c28b to 6d29e9cfc -->
<param name="version">5.15.19</param>
<param name="url">git://code.qt.io/qt/qtwebengine.git</param>
<param name="scm">git</param>
<param name="filename">qtwebengine-everywhere-src</param>
<param name="revision">v5.15.18-lts</param>
<param name="revision">v5.15.19-lts</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*.tar</param>

View File

@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://code.qt.io/qt/qtwebengine.git</param>
<param name="changesrevision">87ceb6a2ef5ee25d56f765dc533728c4ca4787e0</param></service></servicedata>
<param name="changesrevision">a5d11cd6f8c487443c15c7e3a6cd8090b65cb313</param></service></servicedata>

View File

@@ -0,0 +1,79 @@
https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/uchar_8h_source.html
https://github.com/unicode-org/icu/blame/main/icu4c/source/common/unicode/uchar.h
/usr/include/unicode/uchar.h
ICU78 adds LineBreak U_LB_UNAMBIGUOUS_HYPHEN = 48,/*[HH]*/.
U_LB_COUNT goes from 48 to 49.
kBreakAllLineBreakClassTable is expected to be square with
the same number of bits across as the lines down for every
U_LB_COUNT LineBreak. This table should have U_LB_COUNT=49
bit columns and 49 rows with a bunch of 1 bits sprinkled
all over and should expand each time a new LineBreak is
added. Rather than fiddling with the BA_LB_COUNT math or
keep extending the table with zeros across and down as they
did here:
https://src.opensuse.org/nodejs/nodejs-electron/src/commit/ee8e43b84d0e17b17d817943357e74dee3e5474ae7e6eaff93c60926bfc3780a/text_break_iterator-icu74-breakAllLineBreakClassTable-should-be-consistent.patch
we just hard set the table to 40 lines to support 0XX-39RI.
ShouldBreakAfterBreakAll for LineBreak >= 40EB always
return 0/false which is what the recent table patches were
doing anyways. Look at the columns RI to VI and lines
[RI]-[VI]. It's all zeros so everyone gave up extending
this table with cleverly placed 1's years ago and just came
up with Whatever Works (TM) patches. LineBreak support >=
39RI running with 0 may be less than optimal. Here's
another patch.
https://bugs.gentoo.org/917635
The original table code and patches since are all garbage
anyways. Noone seems to understand what this table does. I
don't either but I do know its limits and proper shape and
that it's not required to have lines and columns added for
each new LineBreak unless you want perfect support for new
LineBreak.
The NodeJS patch adds a 6th array column which won't
compile on earlier ICU versions where U_LB_COUNT is small.
static const unsigned char kBreakAllLineBreakClassTable[][BA_LB_COUNT / 8 + 1] = {
This line is written wrong. It creates an extra byte
column when BA_LB_COUNT is divisible by 8. Our example of
40 LineBreak can be stored in 40/8=5 column bytes yet this
sets the column count to 40/8+1=6. This would be correct
though with the size of this code I don't see a problem
allocating 40 extra bytes.
static const unsigned char kBreakAllLineBreakClassTable[][(BA_LB_COUNT-1) / 8 + 1] = {
severach@aur
https://aur.archlinux.org/packages/qt5-webengine
$ notepadqq
Cannot mix incompatible Qt library (5.15.17) with this library (5.15.18)
If you have trouble with an application not working, look
through this list for packages with old versions.
pacman -Qs qt5-
local/qt5-base 5.15.18+kde+r109-2 (qt5)
* A cross-platform application and UI framework
local/qt5-webchannel 5.15.17+kde+r3-1 (qt5)
* Provides access to QObject or QML objects from HTML clients for seamless integration of Qt applications with HTML/JavaScript clients
diff -pNaru3 a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc
--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc 2025-11-11 01:42:16.454081862 -0500
+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc 2025-11-11 01:49:41.838185933 -0500
@@ -163,7 +163,7 @@ static const unsigned char kAsciiLineBre
// clang-format on
#if U_ICU_VERSION_MAJOR_NUM >= 74
-#define BA_LB_COUNT (U_LB_COUNT - 8)
+#define BA_LB_COUNT (40) /* (U_LB_COUNT - 8) */
#elif U_ICU_VERSION_MAJOR_NUM >= 58
#define BA_LB_COUNT (U_LB_COUNT - 3)
#else

View File

@@ -1,3 +1,58 @@
-------------------------------------------------------------------
Mon Dec 1 12:40:02 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Add libqt5-qtwebengine-icu78.patch: Fix build against ICU 78.
-------------------------------------------------------------------
Sat Nov 22 21:20:24 CET 2025 - Stanislav Brabec <sbrabec@suse.com>
- Remove unused BuildRequires: update-desktop-files.
-------------------------------------------------------------------
Thu Sep 4 09:03:35 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Change the way we pin to ffmpeg-7: set maximum versions for the
libav* buildrequires insteaf of hardcoding ffmpeg-7-*devel. This
allows OBS to still shortcut through the mini packages.
-------------------------------------------------------------------
Tue Sep 02 07:23:24 UTC 2025 - Christophe Marin <christophe@krop.fr>
- Update to version 5.15.19:
* Bump version to 5.15.19
* qmake: Fix qmake2cmake parsing issue for 5.15 SBOM
* Update Chromium (patched with security updates up to
135.0.7049.95):
* [Backport] CVE-2024-10229: Inappropriate implementation in Extensions
* [Backport] CVE-2024-10827: Use after free in Serial
* [Backport] Security bug 378701682
* [Backport] CVE-2024-12694: Use after free in Compositing
* [Backport] Security bug 382135228
* [Backport] Security bug 384565015
* [Backport] CVE-2025-0436: Integer overflow in Skia
* [Backport] CVE-2024-11477 / Security bug 383772517
* [Backport] CVE-2025-0996: Inappropriate implementation in Browser UI
* [Backport] CVE-2025-1426: Heap buffer overflow in GPU
* [Backport] Security bug 396481096
* [Backport] CVE-2025-0762: Use after free in DevTools
* [Backport] CVE-2025-0999: Heap buffer overflow in V8
* [Backport] CVE-2024-55549: Fix UAF related to excluded namespaces
* [Backport] CVE-2025-24855 Fix use-after-free of XPath context node
* [backport] CVE-2025-1919
* [Backport] CVE-2025-2783: Incorrect handle provided in
unspecified circumstances in Mojo on Windows
* [backport] CVE-2025-24201
* [backport] CVE-2025-2136
* [Backport] Security bug 399002829
* [Backport] Security bug 396460489
* [Backport] CVE-2025-3619
* Various python fixes
- Drop patches:
* python3.12-imp.patch
* python3.12-six.patch
* python3.13-pipes.patch
- Don't try to build with ffmpeg >= 8 on factory
-------------------------------------------------------------------
Thu Apr 24 21:13:27 UTC 2025 - Friedrich Haubensak <hsk17@mail.de>

View File

@@ -1,7 +1,7 @@
#
# spec file for package libqt5-qtwebengine
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -22,6 +22,7 @@
%bcond_without system_ffmpeg
%bcond_without system_minizip
%bcond_without pipewire
# The default python version is too old on Leap 15
%{?sle15_python_module_pythons}
%if 0%{?suse_version} == 1500
@@ -35,15 +36,15 @@
%global _qtwebengine_dictionaries_dir %{_libqt5_datadir}/qtwebengine_dictionaries
Name: libqt5-qtwebengine
Version: 5.15.18
Version: 5.15.19
Release: 0
Summary: Qt 5 WebEngine Library
License: LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
Group: Development/Libraries/X11
URL: https://www.qt.io
%define base_name libqt5
%define real_version 5.15.18
%define so_version 5.15.18
%define real_version 5.15.19
%define so_version 5.15.19
%define tar_version qtwebengine-everywhere-src-%{version}
Source: %{tar_version}.tar.xz
Source99: libqt5-qtwebengine-rpmlintrc
@@ -64,16 +65,14 @@ Patch6: Add-missing-dependencies.patch
# PATCH-FIX-UPSTREAM -- ICU 75 compatibility
Patch7: qt5-webengine-icu-75.patch
Patch8: 0001-Use-default-constructor-in-place-of-self-delegation-.patch
# PATCH-FIX-UPSTREAM -- python >= 3.12 compat
Patch9: python3.12-imp.patch
Patch10: python3.12-six.patch
Patch11: python3.13-pipes.patch
# PATCH-FIX-UPSTREAM https://bugreports.qt.io/browse/QTBUG-57709?focusedId=427082#comment-427082
Patch12: sandbox_recvmsg.patch
Patch9: sandbox_recvmsg.patch
# PATCH-FIX-UPSTREAM -- selected backported upstream changes to support gcc-15
Patch13: qtwebengine-5.15.18-gcc15-cstdint.patch
Patch10: qtwebengine-5.15.18-gcc15-cstdint.patch
# PATCH-FIX-UPSTREAM -- Fix build against ICU 78, borrowed from https://aur.archlinux.org/cgit/aur.git/tree/qt5-webengine-icu-78.patch?h=qt5-webengine
Patch11: libqt5-qtwebengine-icu78.patch
### Patch 50-99 are applied conditionally
# PATCH-FIX-OPENSUSE -- allow building qtwebengine with ffmpeg5
# PATCH-FIX-UPSTREAM -- allow building qtwebengine with ffmpeg 5
Patch50: qtwebengine-ffmpeg5.patch
Patch51: qt5-webengine-ffmpeg7.patch
###
@@ -124,7 +123,6 @@ BuildRequires: %{pyver}-xml
BuildRequires: re2c
BuildRequires: sed
BuildRequires: snappy-devel
BuildRequires: update-desktop-files
BuildRequires: usbutils
BuildRequires: util-linux
%ifnarch %{arm}
@@ -154,9 +152,9 @@ BuildRequires: pkgconfig(icu-uc) >= 65.0
BuildRequires: pkgconfig(jsoncpp)
BuildRequires: pkgconfig(lcms2)
%if %{with system_ffmpeg}
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavutil)
BuildRequires: pkgconfig(libavcodec) < 62
BuildRequires: pkgconfig(libavformat) < 62
BuildRequires: pkgconfig(libavutil) < 60
%endif
BuildRequires: pkgconfig(libcrypto)
BuildRequires: pkgconfig(libdrm)
@@ -315,8 +313,6 @@ Examples for the libqt5-qtpdf module.
%patch -P9 -p1
%patch -P10 -p1
%patch -P11 -p1
%patch -P12 -p1
%patch -P13 -p1
# FFmpeg 5
%if %{with system_ffmpeg}

View File

@@ -1,24 +0,0 @@
Description: stop using imp module which was removed in Python 3.12
Origin: upstream, https://chromium.googlesource.com/chromium/src/+/f5f6e361d037c316
Last-Update: 2024-06-30
--- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py
+++ b/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py
@@ -3,7 +3,6 @@
# found in the LICENSE file.
import errno
-import imp
import os.path
import sys
--- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py
+++ b/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import imp
import os.path
import sys

View File

@@ -1,56 +0,0 @@
Description: implement find_spec() for _SixMetaPathImporter
Origin: upstream, https://github.com/benjaminp/six/commit/25916292d96f5f09
Last-Update: 2024-03-17
--- a/src/3rdparty/chromium/third_party/protobuf/third_party/six/six.py
+++ b/src/3rdparty/chromium/third_party/protobuf/third_party/six/six.py
@@ -71,6 +71,11 @@ else:
MAXSIZE = int((1 << 63) - 1)
del X
+if PY34:
+ from importlib.util import spec_from_loader
+else:
+ spec_from_loader = None
+
def _add_doc(func, doc):
"""Add documentation to a function."""
@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
return self
return None
+ def find_spec(self, fullname, path, target=None):
+ if fullname in self.known_modules:
+ return spec_from_loader(fullname, self)
+ return None
+
def __get_module(self, fullname):
try:
return self.known_modules[fullname]
--- a/src/3rdparty/chromium/tools/grit/third_party/six/__init__.py
+++ b/src/3rdparty/chromium/tools/grit/third_party/six/__init__.py
@@ -71,6 +71,11 @@ else:
MAXSIZE = int((1 << 63) - 1)
del X
+if PY34:
+ from importlib.util import spec_from_loader
+else:
+ spec_from_loader = None
+
def _add_doc(func, doc):
"""Add documentation to a function."""
@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
return self
return None
+ def find_spec(self, fullname, path, target=None):
+ if fullname in self.known_modules:
+ return spec_from_loader(fullname, self)
+ return None
+
def __get_module(self, fullname):
try:
return self.known_modules[fullname]

View File

@@ -1,27 +0,0 @@
Description: replace removed pipes module with shlex
Origin: upstream, https://chromium.googlesource.com/chromium/src/+/4c6fc1984970af4b
Last-Update: 2025-01-08
--- a/src/3rdparty/chromium/build/android/gyp/util/build_utils.py
+++ b/src/3rdparty/chromium/build/android/gyp/util/build_utils.py
@@ -12,8 +12,8 @@ import fnmatch
import json
import logging
import os
-import pipes
import re
+import shlex
import shutil
import stat
import subprocess
@@ -197,8 +197,9 @@ class CalledProcessError(Exception):
def __str__(self):
# A user should be able to simply copy and paste the command that failed
# into their shell.
+ printed_cmd = shlex.join(self.args)
copyable_command = '( cd {}; {} )'.format(os.path.abspath(self.cwd),
- ' '.join(map(pipes.quote, self.args)))
+ printed_cmd)
return 'Command failed: {}\n{}'.format(copyable_command, self.output)

Binary file not shown.

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c127bb77eeb25ce405749facbf9db5165bd8a8972d4bfafdbeee9a0235b04382
size 322353208