mirror of
https://github.com/savoirfairelinux/jami-client-qt.git
synced 2025-12-19 01:52:30 +08:00
qt: update to 6.8.3
GitLab: #1944 Change-Id: I3a65aba1820c6b4bafaeb43e5a8c61046d9b7807
This commit is contained in:
@@ -171,7 +171,7 @@ set(TESTS_DIR ${PROJECT_SOURCE_DIR}/tests)
|
|||||||
# Here we let find_package(<PackageName>...) try to find Qt 6,
|
# Here we let find_package(<PackageName>...) try to find Qt 6,
|
||||||
# If it is found, find_package will succeed, and the CMake variable
|
# If it is found, find_package will succeed, and the CMake variable
|
||||||
# QT_VERSION_MAJOR will be defined 6.
|
# QT_VERSION_MAJOR will be defined 6.
|
||||||
set(QT6_MINVER_MINOR 6)
|
set(QT6_MINVER_MINOR 8)
|
||||||
if(QT6_VER AND QT6_PATH)
|
if(QT6_VER AND QT6_PATH)
|
||||||
find_package(QT NAMES Qt6 REQUIRED
|
find_package(QT NAMES Qt6 REQUIRED
|
||||||
PATHS ${QT6_PATH} NO_DEFAULT_PATH)
|
PATHS ${QT6_PATH} NO_DEFAULT_PATH)
|
||||||
@@ -180,15 +180,9 @@ else()
|
|||||||
find_package(QT NAMES Qt6 REQUIRED)
|
find_package(QT NAMES Qt6 REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
if (${QT_VERSION_MINOR} GREATER_EQUAL ${QT6_MINVER_MINOR})
|
if (${QT_VERSION_MINOR} GREATER_EQUAL ${QT6_MINVER_MINOR})
|
||||||
# Enforce a minimum Qt version of 6.6.2 for the Windows build
|
|
||||||
# https://github.com/stdware/qwindowkit/issues/23
|
|
||||||
if(MSVC AND ${QT_VERSION_MINOR} EQUAL 6 AND ${QT_VERSION_PATCH} LESS 2)
|
|
||||||
message(FATAL_ERROR "Qt 6.6.2 or higher is required. Found ${QT_VERSION}")
|
|
||||||
endif()
|
|
||||||
# Qt version is 6.6 or higher
|
|
||||||
message(STATUS "Found a suitable Qt version ${QT_VERSION}")
|
message(STATUS "Found a suitable Qt version ${QT_VERSION}")
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Qt 6.6 or higher is required. Found ${QT_VERSION}")
|
message(FATAL_ERROR "Qt 6.8 or higher is required. Found ${QT_VERSION}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# libjamiclient
|
# libjamiclient
|
||||||
|
|||||||
@@ -44,10 +44,10 @@ DEBIAN_DSC_FILENAME := jami_$(DEBIAN_VERSION).dsc
|
|||||||
|
|
||||||
# Qt versions
|
# Qt versions
|
||||||
QT_MAJOR := 6
|
QT_MAJOR := 6
|
||||||
QT_MINOR := 6
|
QT_MINOR := 8
|
||||||
QT_PATCH := 1
|
QT_PATCH := 3
|
||||||
QT_TARBALL_CHECKSUM := dd3668f65645fe270bc615d748bd4dc048bd17b9dc297025106e6ecc419ab95d
|
QT_TARBALL_CHECKSUM := cdd3a69967208276bb01af7ace7dba0ba53e679f886a4cbe624225c60fb73f2c
|
||||||
DEBIAN_QT_VERSION := $(QT_MAJOR).$(QT_MINOR).$(QT_PATCH)-1
|
DEBIAN_QT_VERSION := $(QT_MAJOR).$(QT_MINOR).$(QT_PATCH)-0
|
||||||
DEBIAN_QT_DSC_FILENAME := libqt-jami_$(DEBIAN_QT_VERSION).dsc
|
DEBIAN_QT_DSC_FILENAME := libqt-jami_$(DEBIAN_QT_VERSION).dsc
|
||||||
QT_JAMI_PREFIX := /usr/lib/libqt-jami
|
QT_JAMI_PREFIX := /usr/lib/libqt-jami
|
||||||
|
|
||||||
|
|||||||
@@ -89,5 +89,6 @@ RUN dnf install -y \
|
|||||||
xkeyboard-config \
|
xkeyboard-config \
|
||||||
yaml-cpp-devel \
|
yaml-cpp-devel \
|
||||||
yasm
|
yasm
|
||||||
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
|
||||||
CMD ["/opt/build-package-rpm.sh"]
|
CMD ["/opt/build-package-rpm.sh"]
|
||||||
@@ -100,5 +100,6 @@ RUN dnf install -y \
|
|||||||
python3-html5lib \
|
python3-html5lib \
|
||||||
cups-devel \
|
cups-devel \
|
||||||
pipewire-devel
|
pipewire-devel
|
||||||
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
|
||||||
CMD ["/opt/build-package-rpm.sh"]
|
CMD ["/opt/build-package-rpm.sh"]
|
||||||
@@ -27,6 +27,7 @@ RUN /opt/prebuild-package-debian.sh jami-deps
|
|||||||
ADD extras/packaging/gnu-linux/scripts/install-cmake.sh /opt/install-cmake.sh
|
ADD extras/packaging/gnu-linux/scripts/install-cmake.sh /opt/install-cmake.sh
|
||||||
RUN /opt/install-cmake.sh
|
RUN /opt/install-cmake.sh
|
||||||
|
|
||||||
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
||||||
|
|
||||||
# Setting this variable so that FFmpeg gets built without pipewiregrab
|
# Setting this variable so that FFmpeg gets built without pipewiregrab
|
||||||
|
|||||||
@@ -18,5 +18,6 @@ RUN /opt/prebuild-package-debian.sh qt-deps
|
|||||||
COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control
|
COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control
|
||||||
RUN /opt/prebuild-package-debian.sh jami-deps
|
RUN /opt/prebuild-package-debian.sh jami-deps
|
||||||
|
|
||||||
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
||||||
CMD ["/opt/build-package-debian.sh"]
|
CMD ["/opt/build-package-debian.sh"]
|
||||||
|
|||||||
@@ -11,14 +11,6 @@ RUN apt-get update --allow-releaseinfo-change && \
|
|||||||
wget \
|
wget \
|
||||||
nasm
|
nasm
|
||||||
|
|
||||||
# As of January 2024, the default compiler on Debian testing is GCC 13.2.0, which
|
|
||||||
# is unable to build one of Qt 6.6.1's dependencies, see:
|
|
||||||
# https://github.com/qt/qtquick3d-assimp/commit/253f8bfa621a9fa6cd2c36291cdaa8c60c99322c
|
|
||||||
# The linked commit above fixes the problem and is included in more recent versions of Qt.
|
|
||||||
# For now, we use GCC 12 as a temporary workaround:
|
|
||||||
ADD extras/packaging/gnu-linux/scripts/install-gcc-debian.sh /opt/install-gcc-debian.sh
|
|
||||||
RUN /opt/install-gcc-debian.sh 12
|
|
||||||
|
|
||||||
ADD extras/packaging/gnu-linux/scripts/prebuild-package-debian.sh /opt/prebuild-package-debian.sh
|
ADD extras/packaging/gnu-linux/scripts/prebuild-package-debian.sh /opt/prebuild-package-debian.sh
|
||||||
|
|
||||||
COPY extras/packaging/gnu-linux/rules/debian-qt/control /tmp/builddeps/debian/control
|
COPY extras/packaging/gnu-linux/rules/debian-qt/control /tmp/builddeps/debian/control
|
||||||
@@ -29,5 +21,6 @@ RUN /opt/prebuild-package-debian.sh jami-deps
|
|||||||
|
|
||||||
RUN apt-get remove -y libre2-dev libre2-11
|
RUN apt-get remove -y libre2-dev libre2-11
|
||||||
|
|
||||||
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
||||||
CMD ["/opt/build-package-debian.sh"]
|
CMD ["/opt/build-package-debian.sh"]
|
||||||
|
|||||||
@@ -21,5 +21,6 @@ RUN /opt/prebuild-package-debian.sh jami-deps
|
|||||||
|
|
||||||
RUN apt-get remove -y libre2-dev libre2-11
|
RUN apt-get remove -y libre2-dev libre2-11
|
||||||
|
|
||||||
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
||||||
CMD ["/opt/build-package-debian.sh"]
|
CMD ["/opt/build-package-debian.sh"]
|
||||||
|
|||||||
@@ -94,10 +94,11 @@ RUN dnf install -y \
|
|||||||
ninja-build \
|
ninja-build \
|
||||||
cmake \
|
cmake \
|
||||||
fmt-devel \
|
fmt-devel \
|
||||||
python3.10 \
|
python3-html5lib \
|
||||||
cups-devel \
|
cups-devel \
|
||||||
pipewire-devel
|
pipewire-devel
|
||||||
|
|
||||||
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
|
||||||
|
|
||||||
CMD ["/opt/build-package-rpm.sh"]
|
CMD ["/opt/build-package-rpm.sh"]
|
||||||
|
|||||||
@@ -81,17 +81,11 @@ RUN dnf install -y \
|
|||||||
ninja-build \
|
ninja-build \
|
||||||
cmake \
|
cmake \
|
||||||
fmt-devel \
|
fmt-devel \
|
||||||
python3.10 \
|
python3-html5lib \
|
||||||
cups-devel \
|
cups-devel \
|
||||||
pipewire-devel
|
pipewire-devel
|
||||||
|
|
||||||
# Use GCC 14 instead of GCC 15 (the default on Fedora 42)
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
# because Qt 6.6.3 fails to build when using the latter.
|
|
||||||
RUN rm /usr/bin/gcc /usr/bin/g++ /usr/bin/c++ && \
|
|
||||||
ln -s /usr/bin/gcc-14 /usr/bin/gcc && \
|
|
||||||
ln -s /usr/bin/g++-14 /usr/bin/g++ && \
|
|
||||||
ln -s /usr/bin/g++-14 /usr/bin/c++
|
|
||||||
|
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
|
||||||
|
|
||||||
CMD ["/opt/build-package-rpm.sh"]
|
CMD ["/opt/build-package-rpm.sh"]
|
||||||
|
|||||||
@@ -58,21 +58,19 @@ RUN zypper --non-interactive install -y \
|
|||||||
sqlite3-devel \
|
sqlite3-devel \
|
||||||
gtk3-devel\
|
gtk3-devel\
|
||||||
qrencode-devel \
|
qrencode-devel \
|
||||||
python310 \
|
python311 \
|
||||||
python3-python-dateutil \
|
python311-python-dateutil \
|
||||||
python3-html5lib \
|
python311-html5lib \
|
||||||
|
python311-six \
|
||||||
|
python311-importlib-metadata \
|
||||||
libsndfile-devel \
|
libsndfile-devel \
|
||||||
libdrm-devel \
|
libdrm-devel \
|
||||||
gperf \
|
gperf \
|
||||||
bison \
|
bison \
|
||||||
flex \
|
flex \
|
||||||
ffmpeg \
|
|
||||||
ffmpeg-devel \
|
|
||||||
nodejs20 \
|
nodejs20 \
|
||||||
mozilla-nss-devel \
|
mozilla-nss-devel \
|
||||||
python-xml \
|
python-xml \
|
||||||
python3-six \
|
|
||||||
python3-importlib-metadata \
|
|
||||||
libxcb* \
|
libxcb* \
|
||||||
libxkb* \
|
libxkb* \
|
||||||
libX11-devel \
|
libX11-devel \
|
||||||
@@ -103,12 +101,13 @@ RUN zypper --non-interactive install -y \
|
|||||||
pipewire-devel
|
pipewire-devel
|
||||||
|
|
||||||
# openSUSE Leap 15.6 comes with Python 3.6 by default,
|
# openSUSE Leap 15.6 comes with Python 3.6 by default,
|
||||||
# but we need at least 3.7 to compile Qt 6.6.1
|
# but we need at least 3.7 to compile Qt 6.8.3
|
||||||
RUN rm /usr/bin/python3 && ln -s /usr/bin/python3.10 /usr/bin/python3
|
RUN rm /usr/bin/python3 && ln -s /usr/bin/python3.11 /usr/bin/python3
|
||||||
|
|
||||||
RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 50
|
RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 50
|
||||||
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 50
|
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 50
|
||||||
|
|
||||||
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-rpm.sh /opt/build-package-rpm.sh
|
||||||
|
|
||||||
ENV CC=gcc
|
ENV CC=gcc
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ RUN /opt/prebuild-package-debian.sh jami-deps
|
|||||||
ADD extras/packaging/gnu-linux/scripts/install-cmake.sh /opt/install-cmake.sh
|
ADD extras/packaging/gnu-linux/scripts/install-cmake.sh /opt/install-cmake.sh
|
||||||
RUN /opt/install-cmake.sh
|
RUN /opt/install-cmake.sh
|
||||||
|
|
||||||
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
||||||
|
|
||||||
# Setting this variable so that FFmpeg gets built without pipewiregrab
|
# Setting this variable so that FFmpeg gets built without pipewiregrab
|
||||||
|
|||||||
@@ -23,5 +23,6 @@ RUN /opt/prebuild-package-debian.sh qt-deps
|
|||||||
COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control
|
COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control
|
||||||
RUN /opt/prebuild-package-debian.sh jami-deps
|
RUN /opt/prebuild-package-debian.sh jami-deps
|
||||||
|
|
||||||
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
||||||
CMD ["/opt/build-package-debian.sh"]
|
CMD ["/opt/build-package-debian.sh"]
|
||||||
|
|||||||
@@ -21,5 +21,6 @@ RUN /opt/prebuild-package-debian.sh qt-deps
|
|||||||
COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control
|
COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control
|
||||||
RUN /opt/prebuild-package-debian.sh jami-deps
|
RUN /opt/prebuild-package-debian.sh jami-deps
|
||||||
|
|
||||||
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
||||||
CMD ["/opt/build-package-debian.sh"]
|
CMD ["/opt/build-package-debian.sh"]
|
||||||
|
|||||||
@@ -18,12 +18,6 @@ RUN /opt/prebuild-package-debian.sh qt-deps
|
|||||||
COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control
|
COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control
|
||||||
RUN /opt/prebuild-package-debian.sh jami-deps
|
RUN /opt/prebuild-package-debian.sh jami-deps
|
||||||
|
|
||||||
# Remove the libre2-dev package in order to force Qt to build using the bundled
|
ADD extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh /opt/install-ffmpeg-for-qt.sh
|
||||||
# version of the RE2 library. This is necessary because the system version of the
|
|
||||||
# library on Ubuntu 25.04 (libre2-11) is not compatible with the one used in
|
|
||||||
# Qt 6.6.1 due to an API change:
|
|
||||||
# https://codereview.qt-project.org/c/qt/qtwebengine/+/516094
|
|
||||||
RUN apt-get remove -y libre2-dev libre2-11
|
|
||||||
|
|
||||||
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
|
||||||
CMD ["/opt/build-package-debian.sh"]
|
CMD ["/opt/build-package-debian.sh"]
|
||||||
|
|||||||
@@ -1,348 +0,0 @@
|
|||||||
From 24fb774485f719df1e84dda31605d3f69202d69f Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
|
||||||
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
|
||||||
Date: Thu, 8 Aug 2024 14:59:17 -0400
|
|
||||||
Subject: [PATCH] qtwebengine: enable building with Python 3.12
|
|
||||||
|
|
||||||
Replace the deprecated imp module by importlib:
|
|
||||||
https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/524014
|
|
||||||
https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/534568
|
|
||||||
|
|
||||||
Update six to fix html5lib import failure:
|
|
||||||
https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/535605
|
|
||||||
https://issues.chromium.org/issues/40286977
|
|
||||||
---
|
|
||||||
.../protobufs/binary_proto_generator.py | 8 ++++++--
|
|
||||||
.../mojo/public/tools/mojom/mojom/fileutil.py | 1 -
|
|
||||||
.../tools/mojom/mojom/fileutil_unittest.py | 5 +----
|
|
||||||
.../mojom/mojom/generate/generator_unittest.py | 7 ++-----
|
|
||||||
.../mojom/mojom/generate/translate_unittest.py | 4 ----
|
|
||||||
.../tools/mojom/mojom/parse/ast_unittest.py | 6 ------
|
|
||||||
.../mojom/parse/conditional_features_unittest.py | 8 ++------
|
|
||||||
.../mojo/public/tools/mojom/mojom/parse/lexer.py | 1 -
|
|
||||||
.../tools/mojom/mojom/parse/lexer_unittest.py | 7 ++-----
|
|
||||||
.../tools/mojom/mojom/parse/parser_unittest.py | 5 -----
|
|
||||||
.../third_party/catapult/third_party/six/six.py | 16 ++++++++++++++++
|
|
||||||
11 files changed, 29 insertions(+), 39 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py b/qtwebengine/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
|
|
||||||
index 2a1802dccdc..8b9de65ed0b 100755
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
|
|
||||||
@@ -9,7 +9,7 @@
|
|
||||||
"""
|
|
||||||
from __future__ import print_function
|
|
||||||
import abc
|
|
||||||
-import imp
|
|
||||||
+from importlib import util as imp_util
|
|
||||||
import optparse
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
@@ -68,7 +68,11 @@ class GoogleProtobufModuleImporter:
|
|
||||||
raise ImportError(fullname)
|
|
||||||
|
|
||||||
filepath = self._fullname_to_filepath(fullname)
|
|
||||||
- return imp.load_source(fullname, filepath)
|
|
||||||
+ spec = imp_util.spec_from_file_location(fullname, filepath)
|
|
||||||
+ loaded = imp_util.module_from_spec(spec)
|
|
||||||
+ spec.loader.exec_module(loaded)
|
|
||||||
+
|
|
||||||
+ return loaded
|
|
||||||
|
|
||||||
class BinaryProtoGenerator:
|
|
||||||
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py
|
|
||||||
index 29daec367c5..124f12c134b 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py
|
|
||||||
+++ b/qtwebengine/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
|
|
||||||
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil_unittest.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil_unittest.py
|
|
||||||
index 48eaf4eca94..c93d22898d2 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil_unittest.py
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil_unittest.py
|
|
||||||
@@ -2,19 +2,16 @@
|
|
||||||
# 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 shutil
|
|
||||||
-import sys
|
|
||||||
import tempfile
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
from mojom import fileutil
|
|
||||||
|
|
||||||
-
|
|
||||||
class FileUtilTest(unittest.TestCase):
|
|
||||||
def testEnsureDirectoryExists(self):
|
|
||||||
- """Test that EnsureDirectoryExists fuctions correctly."""
|
|
||||||
+ """Test that EnsureDirectoryExists functions correctly."""
|
|
||||||
|
|
||||||
temp_dir = tempfile.mkdtemp()
|
|
||||||
try:
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator_unittest.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
|
|
||||||
index 76cda3981f3..7143e07c4d7 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
|
|
||||||
@@ -2,12 +2,11 @@
|
|
||||||
# Use of this source code is governed by a BSD-style license that can be
|
|
||||||
# found in the LICENSE file.
|
|
||||||
|
|
||||||
-import imp
|
|
||||||
+import importlib.util
|
|
||||||
import os.path
|
|
||||||
import sys
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
-
|
|
||||||
def _GetDirAbove(dirname):
|
|
||||||
"""Returns the directory "above" this file containing |dirname| (which must
|
|
||||||
also be "above" this file)."""
|
|
||||||
@@ -20,12 +19,11 @@ def _GetDirAbove(dirname):
|
|
||||||
|
|
||||||
|
|
||||||
try:
|
|
||||||
- imp.find_module("mojom")
|
|
||||||
+ importlib.util.find_spec("mojom")
|
|
||||||
except ImportError:
|
|
||||||
sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
|
|
||||||
from mojom.generate import generator
|
|
||||||
|
|
||||||
-
|
|
||||||
class StringManipulationTest(unittest.TestCase):
|
|
||||||
"""generator contains some string utilities, this tests only those."""
|
|
||||||
|
|
||||||
@@ -69,6 +67,5 @@ class StringManipulationTest(unittest.TestCase):
|
|
||||||
self.assertEquals("SNAKE_D3D11_CASE",
|
|
||||||
generator.ToUpperSnakeCase("snakeD3d11Case"))
|
|
||||||
|
|
||||||
-
|
|
||||||
if __name__ == "__main__":
|
|
||||||
unittest.main()
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/translate_unittest.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
|
|
||||||
index 4259374513f..558e71e1193 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
|
|
||||||
@@ -2,16 +2,12 @@
|
|
||||||
# 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
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
from mojom.generate import module as mojom
|
|
||||||
from mojom.generate import translate
|
|
||||||
from mojom.parse import ast
|
|
||||||
|
|
||||||
-
|
|
||||||
class TranslateTest(unittest.TestCase):
|
|
||||||
"""Tests |parser.Parse()|."""
|
|
||||||
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/ast_unittest.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
|
|
||||||
index c36376712e7..b289f7b11f6 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
|
|
||||||
@@ -2,14 +2,10 @@
|
|
||||||
# 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
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
from mojom.parse import ast
|
|
||||||
|
|
||||||
-
|
|
||||||
class _TestNode(ast.NodeBase):
|
|
||||||
"""Node type for tests."""
|
|
||||||
|
|
||||||
@@ -20,13 +16,11 @@ class _TestNode(ast.NodeBase):
|
|
||||||
def __eq__(self, other):
|
|
||||||
return super().__eq__(other) and self.value == other.value
|
|
||||||
|
|
||||||
-
|
|
||||||
class _TestNodeList(ast.NodeListBase):
|
|
||||||
"""Node list type for tests."""
|
|
||||||
|
|
||||||
_list_item_type = _TestNode
|
|
||||||
|
|
||||||
-
|
|
||||||
class ASTTest(unittest.TestCase):
|
|
||||||
"""Tests various AST classes."""
|
|
||||||
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
|
|
||||||
index 5fc582025ee..2fa5d2be6ab 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
|
|
||||||
@@ -2,12 +2,11 @@
|
|
||||||
# Use of this source code is governed by a BSD-style license that can be
|
|
||||||
# found in the LICENSE file.
|
|
||||||
|
|
||||||
-import imp
|
|
||||||
+import importlib.util
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
-
|
|
||||||
def _GetDirAbove(dirname):
|
|
||||||
"""Returns the directory "above" this file containing |dirname| (which must
|
|
||||||
also be "above" this file)."""
|
|
||||||
@@ -18,9 +17,8 @@ def _GetDirAbove(dirname):
|
|
||||||
if tail == dirname:
|
|
||||||
return path
|
|
||||||
|
|
||||||
-
|
|
||||||
try:
|
|
||||||
- imp.find_module('mojom')
|
|
||||||
+ importlib.util.find_spec("mojom")
|
|
||||||
except ImportError:
|
|
||||||
sys.path.append(os.path.join(_GetDirAbove('pylib'), 'pylib'))
|
|
||||||
import mojom.parse.ast as ast
|
|
||||||
@@ -29,7 +27,6 @@ import mojom.parse.parser as parser
|
|
||||||
|
|
||||||
ENABLED_FEATURES = frozenset({'red', 'green', 'blue'})
|
|
||||||
|
|
||||||
-
|
|
||||||
class ConditionalFeaturesTest(unittest.TestCase):
|
|
||||||
"""Tests |mojom.parse.conditional_features|."""
|
|
||||||
|
|
||||||
@@ -356,6 +353,5 @@ class ConditionalFeaturesTest(unittest.TestCase):
|
|
||||||
conditional_features.RemoveDisabledDefinitions,
|
|
||||||
definition, ENABLED_FEATURES)
|
|
||||||
|
|
||||||
-
|
|
||||||
if __name__ == '__main__':
|
|
||||||
unittest.main()
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py
|
|
||||||
index 73ca15df94c..1083a1af7bb 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py
|
|
||||||
+++ b/qtwebengine/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
|
|
||||||
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
|
|
||||||
index ce376da66e0..bc9f8354316 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
|
|
||||||
@@ -2,12 +2,11 @@
|
|
||||||
# Use of this source code is governed by a BSD-style license that can be
|
|
||||||
# found in the LICENSE file.
|
|
||||||
|
|
||||||
-import imp
|
|
||||||
+import importlib.util
|
|
||||||
import os.path
|
|
||||||
import sys
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
-
|
|
||||||
def _GetDirAbove(dirname):
|
|
||||||
"""Returns the directory "above" this file containing |dirname| (which must
|
|
||||||
also be "above" this file)."""
|
|
||||||
@@ -18,17 +17,15 @@ def _GetDirAbove(dirname):
|
|
||||||
if tail == dirname:
|
|
||||||
return path
|
|
||||||
|
|
||||||
-
|
|
||||||
sys.path.insert(1, os.path.join(_GetDirAbove("mojo"), "third_party"))
|
|
||||||
from ply import lex
|
|
||||||
|
|
||||||
try:
|
|
||||||
- imp.find_module("mojom")
|
|
||||||
+ importlib.util.find_spec("mojom")
|
|
||||||
except ImportError:
|
|
||||||
sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
|
|
||||||
import mojom.parse.lexer
|
|
||||||
|
|
||||||
-
|
|
||||||
# This (monkey-patching LexToken to make comparison value-based) is evil, but
|
|
||||||
# we'll do it anyway. (I'm pretty sure ply's lexer never cares about comparing
|
|
||||||
# for object identity.)
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/parser_unittest.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
|
|
||||||
index 0513343ec7e..0a26307b1a3 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
|
|
||||||
@@ -2,16 +2,12 @@
|
|
||||||
# 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
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
from mojom.parse import ast
|
|
||||||
from mojom.parse import lexer
|
|
||||||
from mojom.parse import parser
|
|
||||||
|
|
||||||
-
|
|
||||||
class ParserTest(unittest.TestCase):
|
|
||||||
"""Tests |parser.Parse()|."""
|
|
||||||
|
|
||||||
@@ -1375,6 +1371,5 @@ class ParserTest(unittest.TestCase):
|
|
||||||
r" *associated\? MyInterface& a;$"):
|
|
||||||
parser.Parse(source3, "my_file.mojom")
|
|
||||||
|
|
||||||
-
|
|
||||||
if __name__ == "__main__":
|
|
||||||
unittest.main()
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/third_party/catapult/third_party/six/six.py b/qtwebengine/src/3rdparty/chromium/third_party/catapult/third_party/six/six.py
|
|
||||||
index 83f69783d1a..5e7f0ce4437 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/third_party/catapult/third_party/six/six.py
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/third_party/catapult/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]
|
|
||||||
@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
|
|
||||||
return None
|
|
||||||
get_source = get_code # same as get_code
|
|
||||||
|
|
||||||
+ def create_module(self, spec):
|
|
||||||
+ return self.load_module(spec.name)
|
|
||||||
+
|
|
||||||
+ def exec_module(self, module):
|
|
||||||
+ pass
|
|
||||||
+
|
|
||||||
_importer = _SixMetaPathImporter(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
From 0d0856252b48895a8d6cad7bff66c904ccfc0725 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
||||||
|
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
||||||
|
Date: Wed, 16 Jul 2025 13:49:54 -0400
|
||||||
|
Subject: [PATCH] qtwebengine: fix build error due to missing chromium
|
||||||
|
dependency
|
||||||
|
|
||||||
|
Error:
|
||||||
|
|
||||||
|
In file included from ../../../3rdparty/chromium/ui/gl/gl_surface.h:30,
|
||||||
|
from ../../../3rdparty/chromium/tools/v8_context_snapshot/qt_overrides.cc:13:
|
||||||
|
../../../3rdparty/chromium/ui/gl/gl_implementation.h:18:10: fatal error: ui/gl/buildflags.h: No such file or directory
|
||||||
|
18 | #include "ui/gl/buildflags.h"
|
||||||
|
| ^~~~~~~~~~~~~~~~~~~~
|
||||||
|
compilation terminated.
|
||||||
|
|
||||||
|
Patch taken from: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/637889
|
||||||
|
---
|
||||||
|
.../src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/qtwebengine/src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn b/qtwebengine/src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn
|
||||||
|
index 812445d934..97cd46140d 100644
|
||||||
|
--- a/qtwebengine/src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn
|
||||||
|
+++ b/qtwebengine/src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn
|
||||||
|
@@ -455,6 +455,10 @@ if (is_linux && !is_qtwebengine) {
|
||||||
|
output_name = "webenginedriver"
|
||||||
|
deps -= [ "//net/traffic_annotation:test_support" ]
|
||||||
|
|
||||||
|
+ if (is_linux || is_mac) {
|
||||||
|
+ deps += [ "//ui/gl:buildflags" ]
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (is_linux) {
|
||||||
|
sources += [
|
||||||
|
"//content/public/common/content_switches.cc",
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp b/qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp
|
|
||||||
index 3488120543..120e47a76f 100644
|
|
||||||
--- a/qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp
|
|
||||||
+++ b/qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp
|
|
||||||
@@ -472,7 +472,7 @@ void TokenizeBinary(TokenList& output_tokens, const char* input, size_t length)
|
|
||||||
}
|
|
||||||
catch (const DeadlyImportError& e)
|
|
||||||
{
|
|
||||||
- if (!is64bits && (length > std::numeric_limits<std::uint32_t>::max())) {
|
|
||||||
+ if (!is64bits && (length > std::numeric_limits<uint32_t>::max())) {
|
|
||||||
throw DeadlyImportError("The FBX file is invalid. This may be because the content is too big for this older version (", ai_to_string(version), ") of the FBX format. (", e.what(), ")");
|
|
||||||
}
|
|
||||||
throw;
|
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
From 24dd03e131cd3edc89907a699369562e61d8aa86 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
||||||
|
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
||||||
|
Date: Mon, 21 Jul 2025 13:19:58 -0400
|
||||||
|
Subject: [PATCH] qtwebengine: fix ASSERT_TRIVIALLY_COPYABLE failure
|
||||||
|
|
||||||
|
Some compilers don't implement std::is_trivially_copyable correctly,
|
||||||
|
which can cause chromium's build to fail with the following error:
|
||||||
|
|
||||||
|
In file included from ../../../3rdparty/chromium/v8/src/base/bits.h:12,
|
||||||
|
from ../../../3rdparty/chromium/v8/src/base/small-vector.h:12,
|
||||||
|
from ../../../3rdparty/chromium/v8/src/compiler/turboshaft/graph.h:17,
|
||||||
|
from ../../../3rdparty/chromium/v8/src/compiler/turboshaft/analyzer-iterator.h:9,
|
||||||
|
from ./../../../3rdparty/chromium/v8/src/compiler/turboshaft/analyzer-iterator.cc:5,
|
||||||
|
from gen/v8/v8_turboshaft_jumbo_1.cc:5:
|
||||||
|
../../../3rdparty/chromium/v8/src/base/small-vector.h: In instantiation of 'class v8::base::SmallVector<std::pair<const v8::internal::compiler::turboshaft::PhiOp*, const v8::internal::compiler::turboshaft::OpIndex>, 16>':
|
||||||
|
../../../3rdparty/chromium/v8/src/compiler/turboshaft/loop-unrolling-reducer.h:433:11: required from here
|
||||||
|
../../../3rdparty/chromium/v8/src/base/macros.h:206:55: error: static assertion failed: T should be trivially copyable
|
||||||
|
206 | static_assert(::v8::base::is_trivially_copyable<T>::value, \
|
||||||
|
| ^~~~~
|
||||||
|
../../../3rdparty/chromium/v8/src/base/small-vector.h:25:3: note: in expansion of macro 'ASSERT_TRIVIALLY_COPYABLE'
|
||||||
|
25 | ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
../../../3rdparty/chromium/v8/src/base/macros.h:206:55: note: 'v8::base::is_trivially_copyable<std::pair<const v8::internal::compiler::turboshaft::PhiOp*, const v8::internal::compiler::turboshaft::OpIndex> >::value' evaluates to false
|
||||||
|
206 | static_assert(::v8::base::is_trivially_copyable<T>::value, \
|
||||||
|
| ^~~~~
|
||||||
|
../../../3rdparty/chromium/v8/src/base/small-vector.h:25:3: note: in expansion of macro 'ASSERT_TRIVIALLY_COPYABLE'
|
||||||
|
25 | ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
References:
|
||||||
|
https://chromium-review.googlesource.com/c/v8/v8/+/5679182
|
||||||
|
https://chromium-review.googlesource.com/c/v8/v8/+/5872655
|
||||||
|
https://github.com/rubyjs/libv8-node/pull/57
|
||||||
|
https://github.com/nodejs/node/issues/54576
|
||||||
|
---
|
||||||
|
qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h | 3 ++-
|
||||||
|
qtwebengine/src/3rdparty/chromium/v8/src/base/small-vector.h | 4 ++--
|
||||||
|
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h b/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h
|
||||||
|
index 93a99ec136..88c6555189 100644
|
||||||
|
--- a/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h
|
||||||
|
+++ b/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h
|
||||||
|
@@ -173,7 +173,8 @@ namespace base {
|
||||||
|
// base::is_trivially_copyable will differ for these cases.
|
||||||
|
template <typename T>
|
||||||
|
struct is_trivially_copyable {
|
||||||
|
-#if V8_CC_MSVC
|
||||||
|
+#if V8_CC_MSVC || (__GNUC__ == 12 && __GNUC_MINOR__ <= 2) || \
|
||||||
|
+ (defined(__clang__) && __clang_major__ <= 17)
|
||||||
|
// Unfortunately, MSVC 2015 is broken in that std::is_trivially_copyable can
|
||||||
|
// be false even though it should be true according to the standard.
|
||||||
|
// (status at 2018-02-26, observed on the msvc waterfall bot).
|
||||||
|
diff --git a/qtwebengine/src/3rdparty/chromium/v8/src/base/small-vector.h b/qtwebengine/src/3rdparty/chromium/v8/src/base/small-vector.h
|
||||||
|
index b1b5d64198..ce2e003fb9 100644
|
||||||
|
--- a/qtwebengine/src/3rdparty/chromium/v8/src/base/small-vector.h
|
||||||
|
+++ b/qtwebengine/src/3rdparty/chromium/v8/src/base/small-vector.h
|
||||||
|
@@ -22,7 +22,7 @@ template <typename T, size_t kSize, typename Allocator = std::allocator<T>>
|
||||||
|
class SmallVector {
|
||||||
|
// Currently only support trivially copyable and trivially destructible data
|
||||||
|
// types, as it uses memcpy to copy elements and never calls destructors.
|
||||||
|
- ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
+ // ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
static_assert(std::is_trivially_destructible<T>::value);
|
||||||
|
|
||||||
|
public:
|
||||||
|
@@ -193,7 +193,7 @@ class SmallVector {
|
||||||
|
|
||||||
|
void resize_no_init(size_t new_size) {
|
||||||
|
// Resizing without initialization is safe if T is trivially copyable.
|
||||||
|
- ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
+ // ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
if (new_size > capacity()) Grow(new_size);
|
||||||
|
end_ = begin_ + new_size;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
From cf208d11dc8a9a02160a57283596ec8bab964a09 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
|
|
||||||
Date: Mon, 27 May 2024 16:01:21 -0400
|
|
||||||
Subject: [PATCH] qtwayland: downgrade wl-seat to avoid high-resolution
|
|
||||||
scrolling events
|
|
||||||
|
|
||||||
---
|
|
||||||
qtwayland/src/client/qwaylandinputdevice.cpp | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/qtwayland/src/client/qwaylandinputdevice.cpp b/qtwayland/src/client/qwaylandinputdevice.cpp
|
|
||||||
index a4f8757e3c..ad0aa7941c 100644
|
|
||||||
--- a/qtwayland/src/client/qwaylandinputdevice.cpp
|
|
||||||
+++ b/qtwayland/src/client/qwaylandinputdevice.cpp
|
|
||||||
@@ -383,7 +383,7 @@ QWaylandInputDevice::Touch::~Touch()
|
|
||||||
}
|
|
||||||
|
|
||||||
QWaylandInputDevice::QWaylandInputDevice(QWaylandDisplay *display, int version, uint32_t id)
|
|
||||||
- : QtWayland::wl_seat(display->wl_registry(), id, qMin(version, 9))
|
|
||||||
+ : QtWayland::wl_seat(display->wl_registry(), id, qMin(version, 7))
|
|
||||||
, mQDisplay(display)
|
|
||||||
, mDisplay(display->wl_display())
|
|
||||||
{
|
|
||||||
--
|
|
||||||
2.45.0
|
|
||||||
|
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
From 5c247c7a084661932969acf2f7103096b8b0d6b4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
||||||
|
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
||||||
|
Date: Tue, 22 Jul 2025 13:40:55 -0400
|
||||||
|
Subject: [PATCH] qtwebengine: fix zygote_communication_linux dependency
|
||||||
|
|
||||||
|
Commit 42e09c7bea of qtwebengine-chromium added
|
||||||
|
content/public/browser/child_process_host.h to the list of header files
|
||||||
|
included in zygote_communication_linux.cc, which can cause the build to
|
||||||
|
fail with the following error:
|
||||||
|
|
||||||
|
In file included from ../../../3rdparty/chromium/content/common/zygote/zygote_communication_linux.cc:21:
|
||||||
|
../../../3rdparty/chromium/content/public/browser/child_process_host.h:17:10: fatal error: content/common/buildflags.h: No such file or directory
|
||||||
|
17 | #include "content/common/buildflags.h"
|
||||||
|
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
---
|
||||||
|
.../content/common/zygote/zygote_communication_linux.cc | 9 ++++++---
|
||||||
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/qtwebengine/src/3rdparty/chromium/content/common/zygote/zygote_communication_linux.cc b/qtwebengine/src/3rdparty/chromium/content/common/zygote/zygote_communication_linux.cc
|
||||||
|
index 5bd9a53568..ff883d59e4 100644
|
||||||
|
--- a/qtwebengine/src/3rdparty/chromium/content/common/zygote/zygote_communication_linux.cc
|
||||||
|
+++ b/qtwebengine/src/3rdparty/chromium/content/common/zygote/zygote_communication_linux.cc
|
||||||
|
@@ -18,7 +18,7 @@
|
||||||
|
#include "base/posix/eintr_wrapper.h"
|
||||||
|
#include "base/posix/unix_domain_socket.h"
|
||||||
|
#include "content/common/zygote/zygote_commands_linux.h"
|
||||||
|
-#include "content/public/browser/child_process_host.h"
|
||||||
|
+#include "content/public/common/content_paths.h"
|
||||||
|
#include "content/public/common/content_switches.h"
|
||||||
|
#include "content/public/common/result_codes.h"
|
||||||
|
#include "sandbox/policy/switches.h"
|
||||||
|
@@ -237,8 +237,11 @@ void ZygoteCommunication::Init(
|
||||||
|
base::OnceCallback<pid_t(base::CommandLine*, base::ScopedFD*)> launcher) {
|
||||||
|
CHECK(!init_);
|
||||||
|
|
||||||
|
- base::FilePath chrome_path = content::ChildProcessHost::GetChildPath(
|
||||||
|
- content::ChildProcessHost::CHILD_NORMAL);
|
||||||
|
+ base::FilePath chrome_path = base::CommandLine::ForCurrentProcess()->GetSwitchValuePath(
|
||||||
|
+ switches::kBrowserSubprocessPath);
|
||||||
|
+ if (chrome_path.empty()) {
|
||||||
|
+ base::PathService::Get(CHILD_PROCESS_EXE, &chrome_path);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
base::CommandLine cmd_line(chrome_path);
|
||||||
|
cmd_line.AppendSwitchASCII(switches::kProcessType, switches::kZygoteProcess);
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
From 420b3e5ac2e91b7a99488ac34577e2798a84a68c Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
|
||||||
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
|
||||||
Date: Tue, 6 Aug 2024 17:35:56 -0400
|
|
||||||
Subject: [PATCH] qtbase: fix CMake error
|
|
||||||
|
|
||||||
For more information, see:
|
|
||||||
https://github.com/qt/qtbase/commit/3411f2984a5325a35e3bed1f961e5973d8a565b9
|
|
||||||
---
|
|
||||||
qtbase/configure.cmake | 1 +
|
|
||||||
qtbase/src/corelib/CMakeLists.txt | 1 -
|
|
||||||
2 files changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/qtbase/configure.cmake b/qtbase/configure.cmake
|
|
||||||
index 43de2aa026..37a82dcdb6 100644
|
|
||||||
--- a/qtbase/configure.cmake
|
|
||||||
+++ b/qtbase/configure.cmake
|
|
||||||
@@ -18,6 +18,7 @@ if(TARGET ZLIB::ZLIB)
|
|
||||||
set_property(TARGET ZLIB::ZLIB PROPERTY IMPORTED_GLOBAL TRUE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
+qt_find_package(Threads PROVIDED_TARGETS Threads::Threads)
|
|
||||||
qt_find_package(WrapOpenSSLHeaders PROVIDED_TARGETS WrapOpenSSLHeaders::WrapOpenSSLHeaders MODULE_NAME core)
|
|
||||||
# openssl_headers
|
|
||||||
# OPENSSL_VERSION_MAJOR is not defined for OpenSSL 1.1.1
|
|
||||||
diff --git a/qtbase/src/corelib/CMakeLists.txt b/qtbase/src/corelib/CMakeLists.txt
|
|
||||||
index 31b81734e8..b62e2f763b 100644
|
|
||||||
--- a/qtbase/src/corelib/CMakeLists.txt
|
|
||||||
+++ b/qtbase/src/corelib/CMakeLists.txt
|
|
||||||
@@ -1,7 +1,6 @@
|
|
||||||
# Copyright (C) 2022 The Qt Company Ltd.
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
|
|
||||||
-qt_find_package(Threads PROVIDED_TARGETS Threads::Threads)
|
|
||||||
qt_find_package(WrapPCRE2 PROVIDED_TARGETS WrapPCRE2::WrapPCRE2)
|
|
||||||
qt_find_package(WrapZLIB PROVIDED_TARGETS WrapZLIB::WrapZLIB)
|
|
||||||
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
From 4c7360faeb0fb7f1dfd995619fb8c596b4e15606 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
|
||||||
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
|
||||||
Date: Thu, 8 Aug 2024 10:29:43 -0400
|
|
||||||
Subject: [PATCH] qtwebengine: add missing chromium dependencies
|
|
||||||
|
|
||||||
For more information, see:
|
|
||||||
https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/555586
|
|
||||||
---
|
|
||||||
chromium/content/public/browser/BUILD.gn | 1 +
|
|
||||||
chromium/extensions/browser/api/declarative_net_request/BUILD.gn | 1 +
|
|
||||||
2 files changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/content/public/browser/BUILD.gn b/qtwebengine/src/3rdparty/chromium/content/public/browser/BUILD.gn
|
|
||||||
index b25bf5764e7..dfbfb2ec77b 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/content/public/browser/BUILD.gn
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/content/public/browser/BUILD.gn
|
|
||||||
@@ -515,6 +515,7 @@ jumbo_source_set("browser_sources") {
|
|
||||||
"//cc",
|
|
||||||
"//components/services/storage/public/cpp",
|
|
||||||
"//components/viz/host",
|
|
||||||
+ "//components/spellcheck:buildflags",
|
|
||||||
"//content/browser", # Must not be public_deps!
|
|
||||||
"//device/fido",
|
|
||||||
"//gpu",
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn b/qtwebengine/src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn
|
|
||||||
index 1fc492f5a0c..13a266e22f1 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn
|
|
||||||
@@ -23,6 +23,7 @@ source_set("declarative_net_request") {
|
|
||||||
"//extensions/common",
|
|
||||||
"//extensions/common/api",
|
|
||||||
"//services/preferences/public/cpp",
|
|
||||||
+ "//components/web_cache/browser",
|
|
||||||
]
|
|
||||||
|
|
||||||
public_deps = [ "//extensions/browser:browser_sources" ]
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
From ab6d5bebaf68a9f4d00440b2adbaffe0e5b2ae6c Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
|
||||||
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
|
||||||
Date: Thu, 8 Aug 2024 10:55:08 -0400
|
|
||||||
Subject: [PATCH] qtwebengine: fix libxml2 build error
|
|
||||||
|
|
||||||
Version 2.12 of libxml2 introduced a change that broke chromium's build,
|
|
||||||
see: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/523633
|
|
||||||
---
|
|
||||||
.../third_party/blink/renderer/core/xml/xslt_processor.h | 5 +++++
|
|
||||||
.../blink/renderer/core/xml/xslt_processor_libxslt.cc | 4 ++++
|
|
||||||
2 files changed, 9 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
|
|
||||||
index d53835e9675..72536e4fd7d 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
|
|
||||||
@@ -77,7 +77,12 @@ class XSLTProcessor final : public ScriptWrappable {
|
|
||||||
|
|
||||||
void reset();
|
|
||||||
|
|
||||||
+#if LIBXML_VERSION >= 21200
|
|
||||||
+ static void ParseErrorFunc(void* user_data, const xmlError*);
|
|
||||||
+#else
|
|
||||||
static void ParseErrorFunc(void* user_data, xmlError*);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
static void GenericErrorFunc(void* user_data, const char* msg, ...);
|
|
||||||
|
|
||||||
// Only for libXSLT callbacks
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
|
|
||||||
index 133e0b3355d..e8e6a09f485 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
|
|
||||||
@@ -66,7 +66,11 @@ void XSLTProcessor::GenericErrorFunc(void*, const char*, ...) {
|
|
||||||
// It would be nice to do something with this error message.
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if LIBXML_VERSION >= 21200
|
|
||||||
+void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) {
|
|
||||||
+#else
|
|
||||||
void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
|
|
||||||
+#endif
|
|
||||||
FrameConsole* console = static_cast<FrameConsole*>(user_data);
|
|
||||||
if (!console)
|
|
||||||
return;
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
From 6e0848a1c51c6494e3b7410c5fe38941d48fcb36 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
|
||||||
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
|
||||||
Date: Wed, 16 Oct 2024 22:32:12 -0400
|
|
||||||
Subject: [PATCH] qtwebengine: fix v8 build error
|
|
||||||
|
|
||||||
In file included from ../../../3rdparty/chromium/v8/src/heap/cppgc/sweeper.h:14,
|
|
||||||
from ./../../../3rdparty/chromium/v8/src/heap/cppgc/sweeper.cc:5,
|
|
||||||
from gen/v8/cppgc_base_jumbo_7.cc:5:
|
|
||||||
../../../3rdparty/chromium/v8/src/heap/cppgc/stats-collector.h: In member function 'void cppgc::internal::StatsCollector::ForAllAllocationObservers(Callback)':
|
|
||||||
../../../3rdparty/chromium/v8/src/heap/cppgc/stats-collector.h:401:48: error: cannot convert 'std::vector<cppgc::internal::StatsCollector::AllocationObserver*>::iterator' to 'const char*'
|
|
||||||
401 | std::remove(allocation_observers_.begin(), allocation_observers_.end(),
|
|
||||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
|
|
||||||
| |
|
|
||||||
| std::vector<cppgc::internal::StatsCollector::AllocationObserver*>::iterator
|
|
||||||
---
|
|
||||||
.../src/3rdparty/chromium/v8/src/heap/cppgc/stats-collector.h | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/v8/src/heap/cppgc/stats-collector.h b/qtwebengine/src/3rdparty/chromium/v8/src/heap/cppgc/stats-collector.h
|
|
||||||
index 2cf728489d..d8414ae3c6 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/v8/src/heap/cppgc/stats-collector.h
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/v8/src/heap/cppgc/stats-collector.h
|
|
||||||
@@ -8,6 +8,7 @@
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
+#include <algorithm>
|
|
||||||
#include <atomic>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
--
|
|
||||||
2.47.0
|
|
||||||
|
|
||||||
@@ -1,7 +1,3 @@
|
|||||||
0001-qtwebengine-enable-building-with-Python-3.12.patch
|
0001-qtwebengine-fix-build-error-due-to-missing-chromium-dependency.patch
|
||||||
0002-fix-binary-tokenizer.patch
|
0002-qtwebengine-fix-ASSERT_TRIVIALLY_COPYABLE-failure.patch
|
||||||
0003-qtwayland-downgrade-wl-seat-to-avoid-high-resolution.patch
|
0003-qtwebengine-fix-zygote_communication_linux-dependency.patch
|
||||||
0004-qtbase-fix-CMake-error.patch
|
|
||||||
0005-qtwebengine-add-missing-chromium-dependencies.patch
|
|
||||||
0006-qtwebengine-fix-libxml2-build-error.patch
|
|
||||||
0007-qtwebengine-fix-v8-build-error.patch
|
|
||||||
@@ -12,10 +12,14 @@ override_dh_auto_configure:
|
|||||||
-confirm-license \
|
-confirm-license \
|
||||||
-nomake examples \
|
-nomake examples \
|
||||||
-nomake tests \
|
-nomake tests \
|
||||||
-prefix "${QT_JAMI_PREFIX}"
|
-prefix "${QT_JAMI_PREFIX}" \
|
||||||
|
-- -DFFMPEG_DIR=/opt/libqt-jami-ffmpeg -DQT_DEPLOY_FFMPEG=ON
|
||||||
|
|
||||||
override_dh_auto_build:
|
override_dh_auto_build:
|
||||||
cmake --build . --parallel
|
cmake --build . --parallel
|
||||||
|
|
||||||
override_dh_auto_install:
|
override_dh_auto_install:
|
||||||
cmake --install . --prefix $(CURDIR)/debian/tmp/${QT_JAMI_PREFIX}
|
cmake --install . --prefix $(CURDIR)/debian/tmp/${QT_JAMI_PREFIX}
|
||||||
|
|
||||||
|
override_dh_shlibdeps:
|
||||||
|
dh_shlibdeps -v -l$(CURDIR)/debian/libqt-jami/usr/lib/libqt-jami/lib
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ QT_JAMI_PREFIX := ${QT_JAMI_PREFIX}
|
|||||||
export PATH := $(QT_JAMI_PREFIX)/bin:${PATH}
|
export PATH := $(QT_JAMI_PREFIX)/bin:${PATH}
|
||||||
export LD_LIBRARY_PATH := $(QT_JAMI_PREFIX)/lib:${LD_LIBRARY_PATH}
|
export LD_LIBRARY_PATH := $(QT_JAMI_PREFIX)/lib:${LD_LIBRARY_PATH}
|
||||||
export PKG_CONFIG_PATH := $(QT_JAMI_PREFIX)/lib/pkgconfig:${PKG_CONFIG_PATH}
|
export PKG_CONFIG_PATH := $(QT_JAMI_PREFIX)/lib/pkgconfig:${PKG_CONFIG_PATH}
|
||||||
export CMAKE_PREFIX_PATH := $(QT_JAMI_PREFIX)/lib/cmake:${CMAKE_PREFIX_PATH}
|
export CMAKE_PREFIX_PATH := $(QT_JAMI_PREFIX):${CMAKE_PREFIX_PATH}
|
||||||
export CFLAGS := $(CFLAGS) -fno-lto
|
export CFLAGS := $(CFLAGS) -fno-lto
|
||||||
export CXXFLAGS := $(CXXFLAGS) -fno-lto
|
export CXXFLAGS := $(CXXFLAGS) -fno-lto
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ override_dh_auto_build:
|
|||||||
-DLIBJAMI_BUILD_DIR=$(CURDIR)/daemon/src \
|
-DLIBJAMI_BUILD_DIR=$(CURDIR)/daemon/src \
|
||||||
-DENABLE_LIBWRAP=true \
|
-DENABLE_LIBWRAP=true \
|
||||||
$(CMAKE_OPTIONS) ..
|
$(CMAKE_OPTIONS) ..
|
||||||
make -C build -j$(NO_CPUS) V=1
|
make -C build -j$(NO_CPUS) VERBOSE=1
|
||||||
|
|
||||||
override_dh_auto_clean:
|
override_dh_auto_clean:
|
||||||
# Daemon clean
|
# Daemon clean
|
||||||
|
|||||||
@@ -82,7 +82,6 @@ cd %{_builddir}/jami-%{version}/daemon/contrib/native && \
|
|||||||
make list && \
|
make list && \
|
||||||
make fetch && \
|
make fetch && \
|
||||||
make %{_smp_mflags} V=1 && \
|
make %{_smp_mflags} V=1 && \
|
||||||
make %{_smp_mflags} V=1 .ffmpeg
|
|
||||||
# Configure the daemon.
|
# Configure the daemon.
|
||||||
cd %{_builddir}/jami-%{version}/daemon && \
|
cd %{_builddir}/jami-%{version}/daemon && \
|
||||||
./autogen.sh && \
|
./autogen.sh && \
|
||||||
|
|||||||
@@ -16,9 +16,9 @@
|
|||||||
%define computed_job_count_ %(echo $(( %available_memory / %memory_required_per_core / %max_parallel_builds )))
|
%define computed_job_count_ %(echo $(( %available_memory / %memory_required_per_core / %max_parallel_builds )))
|
||||||
%define computed_job_count %max %computed_job_count_ 1
|
%define computed_job_count %max %computed_job_count_ 1
|
||||||
%define job_count %min %cpu_count %computed_job_count
|
%define job_count %min %cpu_count %computed_job_count
|
||||||
# Exclude vendored Qt6 from dependency generator
|
# Exclude vendored Qt6 and FFmpeg libraries from dependency generator
|
||||||
%define __provides_exclude_from ^%{_libdir}/qt-jami/.*$
|
%define __provides_exclude_from ^%{_libdir}/qt-jami/.*$
|
||||||
%define __requires_exclude ^libQt6.*$
|
%define __requires_exclude ^(libQt6.*|libavcodec.*|libavformat.*|libavutil.*|libswresample.*|libswscale.*)$
|
||||||
|
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
Version: %{version}
|
Version: %{version}
|
||||||
@@ -29,9 +29,9 @@ License: GPLv3+
|
|||||||
Vendor: Savoir-faire Linux Inc.
|
Vendor: Savoir-faire Linux Inc.
|
||||||
URL: https://jami.net/
|
URL: https://jami.net/
|
||||||
Source: jami-libqt-%{version}.tar.xz
|
Source: jami-libqt-%{version}.tar.xz
|
||||||
Patch0: 0001-fix-gcc14.patch
|
Patch0: 0001-qtwebengine-fix-build-error-due-to-missing-chromium-dependency.patch
|
||||||
Patch1: 0002-qtwebengine-add-missing-chromium-dependencies.patch
|
Patch1: 0002-qtwebengine-fix-ASSERT_TRIVIALLY_COPYABLE-failure.patch
|
||||||
Patch2: 0003-fix-embree-linking-errors.patch
|
Patch2: 0003-qtwebengine-fix-zygote_communication_linux-dependency.patch
|
||||||
|
|
||||||
%global gst 0.10
|
%global gst 0.10
|
||||||
%if 0%{?fedora} || 0%{?rhel} > 7
|
%if 0%{?fedora} || 0%{?rhel} > 7
|
||||||
@@ -73,31 +73,6 @@ This package contains Qt libraries for Jami.
|
|||||||
|
|
||||||
%build
|
%build
|
||||||
echo "Building Qt using %{job_count} parallel jobs"
|
echo "Building Qt using %{job_count} parallel jobs"
|
||||||
# Qt 6.4 (https://wiki.linuxfromscratch.org/blfs/ticket/14729)
|
|
||||||
sed -i 's,default=False,default=True,g' qtwebengine/src/3rdparty/chromium/third_party/catapult/tracing/tracing_build/generate_about_tracing_contents.py
|
|
||||||
# Gcc 13
|
|
||||||
sed -i 's,std::uint32_t,uint32_t,g' qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp
|
|
||||||
sed -i 's,std::uint32_t,uint32_t,g' qtquick3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp
|
|
||||||
# https://bugs.gentoo.org/768261 (Qt 5.15)
|
|
||||||
sed -i 's,#include "absl/base/internal/spinlock.h"1,#include "absl/base/internal/spinlock.h"1\n#include <limits>,g' qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc
|
|
||||||
sed -i 's,#include <stdint.h>,#include <stdint.h>\n#include <limits>,g' qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.h
|
|
||||||
# else, break build for fedora 35
|
|
||||||
sed -i 's/static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);/static const size_t kSigStackSize = std::max(size_t(16384), size_t(SIGSTKSZ));/g' qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
|
|
||||||
# https://bugreports.qt.io/browse/QTBUG-93452 (Qt 5.15)
|
|
||||||
sed -i 's,# include <utility>,# include <utility>\n# include <limits>,g' qtbase/src/corelib/global/qglobal.h
|
|
||||||
sed -i 's,#include <string.h>,#include <string.h>\n#include <limits>,g' qtbase/src/corelib/global/qendian.h
|
|
||||||
cat qtbase/src/corelib/global/qendian.h
|
|
||||||
sed -i 's,#include <string.h>,#include <string.h>\n#include <limits>,g' qtbase/src/corelib/global/qfloat16.h
|
|
||||||
sed -i 's,#include <QtCore/qbytearray.h>,#include <QtCore/qbytearray.h>\n#include <limits>,g' qtbase/src/corelib/text/qbytearraymatcher.h
|
|
||||||
cat qtwebengine/configure.cmake
|
|
||||||
|
|
||||||
#https://bugreports.qt.io/browse/QTBUG-117979
|
|
||||||
if test -f "/usr/bin/python3.10"; then
|
|
||||||
/usr/bin/python3.10 -m venv env
|
|
||||||
source env/bin/activate
|
|
||||||
python -m pip install html5lib
|
|
||||||
python -m pip install six
|
|
||||||
fi
|
|
||||||
|
|
||||||
# recent gcc version do not like lto from qt
|
# recent gcc version do not like lto from qt
|
||||||
CXXFLAGS="${CXXFLAGS} -fno-lto" CFLAGS="${CFLAGS} -fno-lto" LDFLAGS="$(CFLAGS) ${LDFLAGS}" ./configure \
|
CXXFLAGS="${CXXFLAGS} -fno-lto" CFLAGS="${CFLAGS} -fno-lto" LDFLAGS="$(CFLAGS) ${LDFLAGS}" ./configure \
|
||||||
@@ -105,8 +80,8 @@ CXXFLAGS="${CXXFLAGS} -fno-lto" CFLAGS="${CFLAGS} -fno-lto" LDFLAGS="$(CFLAGS) $
|
|||||||
-confirm-license \
|
-confirm-license \
|
||||||
-nomake examples \
|
-nomake examples \
|
||||||
-nomake tests \
|
-nomake tests \
|
||||||
-prefix "%{_libdir}/qt-jami"
|
-prefix "%{_libdir}/qt-jami" \
|
||||||
sed -i 's,bin/python,bin/env python3,g' qtbase/mkspecs/features/uikit/devices.py
|
-- -DFFMPEG_DIR=/opt/libqt-jami-ffmpeg -DQT_DEPLOY_FFMPEG=ON
|
||||||
# Chromium is built using Ninja, which doesn't honor MAKEFLAGS.
|
# Chromium is built using Ninja, which doesn't honor MAKEFLAGS.
|
||||||
cmake --build . --parallel
|
cmake --build . --parallel
|
||||||
|
|
||||||
|
|||||||
@@ -74,8 +74,9 @@ cd %{_builddir}/jami-%{version} && \
|
|||||||
-DWITH_DAEMON_SUBMODULE=true \
|
-DWITH_DAEMON_SUBMODULE=true \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DBUILD_VERSION=${BUILD_VERSION} \
|
-DBUILD_VERSION=${BUILD_VERSION} \
|
||||||
|
-DCMAKE_PREFIX_PATH=%{QT_JAMI_PREFIX} \
|
||||||
..
|
..
|
||||||
make -C %{_builddir}/jami-%{version}/build %{_smp_mflags} V=2
|
make -C %{_builddir}/jami-%{version}/build %{_smp_mflags} VERBOSE=1
|
||||||
|
|
||||||
%install
|
%install
|
||||||
DESTDIR=%{buildroot} make -C %{_builddir}/jami-%{version}/build install V=2
|
DESTDIR=%{buildroot} make -C %{_builddir}/jami-%{version}/build install V=2
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
From 9721082687c9529fe6ae3c5304dcf079158e8a77 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sam James <sam@gentoo.org>
|
|
||||||
Date: Sun, 04 Jun 2023 04:15:16 +0100
|
|
||||||
Subject: [PATCH] heap: Add missing <algorithm> include for std::remove
|
|
||||||
|
|
||||||
GCC 14 changes some internal includes within libstdc++ so this transient
|
|
||||||
include gets lost. Include <algorithm> explicitly for std::remove.
|
|
||||||
|
|
||||||
Change-Id: Iab8a2c751a0f9c9dc6a770d6296ad6de724ef3bb
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4583222
|
|
||||||
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
|
|
||||||
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#88037}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/v8/src/heap/cppgc/stats-collector.h b/qtwebengine/src/3rdparty/chromium/v8/src/heap/cppgc/stats-collector.h
|
|
||||||
index 2cf728489d..d8414ae3c6 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/v8/src/heap/cppgc/stats-collector.h
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/v8/src/heap/cppgc/stats-collector.h
|
|
||||||
@@ -8,6 +8,7 @@
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
+#include <algorithm>
|
|
||||||
#include <atomic>
|
|
||||||
#include <vector>
|
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
From 0d0856252b48895a8d6cad7bff66c904ccfc0725 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
||||||
|
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
||||||
|
Date: Wed, 16 Jul 2025 13:49:54 -0400
|
||||||
|
Subject: [PATCH] qtwebengine: fix build error due to missing chromium
|
||||||
|
dependency
|
||||||
|
|
||||||
|
Error:
|
||||||
|
|
||||||
|
In file included from ../../../3rdparty/chromium/ui/gl/gl_surface.h:30,
|
||||||
|
from ../../../3rdparty/chromium/tools/v8_context_snapshot/qt_overrides.cc:13:
|
||||||
|
../../../3rdparty/chromium/ui/gl/gl_implementation.h:18:10: fatal error: ui/gl/buildflags.h: No such file or directory
|
||||||
|
18 | #include "ui/gl/buildflags.h"
|
||||||
|
| ^~~~~~~~~~~~~~~~~~~~
|
||||||
|
compilation terminated.
|
||||||
|
|
||||||
|
Patch taken from: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/637889
|
||||||
|
---
|
||||||
|
.../src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/qtwebengine/src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn b/qtwebengine/src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn
|
||||||
|
index 812445d934..97cd46140d 100644
|
||||||
|
--- a/qtwebengine/src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn
|
||||||
|
+++ b/qtwebengine/src/3rdparty/chromium/chrome/test/chromedriver/BUILD.gn
|
||||||
|
@@ -455,6 +455,10 @@ if (is_linux && !is_qtwebengine) {
|
||||||
|
output_name = "webenginedriver"
|
||||||
|
deps -= [ "//net/traffic_annotation:test_support" ]
|
||||||
|
|
||||||
|
+ if (is_linux || is_mac) {
|
||||||
|
+ deps += [ "//ui/gl:buildflags" ]
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (is_linux) {
|
||||||
|
sources += [
|
||||||
|
"//content/public/common/content_switches.cc",
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
From 04778c7f54c8a1a0e7fced75c5ef39ced82cece1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
|
||||||
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
|
||||||
Date: Sat, 12 Oct 2024 16:21:35 -0400
|
|
||||||
Subject: [PATCH] qtwebengine: add missing chromium dependencies
|
|
||||||
|
|
||||||
For more information, see:
|
|
||||||
https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/555586
|
|
||||||
---
|
|
||||||
chromium/content/public/browser/BUILD.gn | 1 +
|
|
||||||
chromium/extensions/browser/api/declarative_net_request/BUILD.gn | 1 +
|
|
||||||
2 files changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/content/public/browser/BUILD.gn b/qtwebengine/src/3rdparty/chromium/content/public/browser/BUILD.gn
|
|
||||||
index b25bf5764e7..dfbfb2ec77b 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/content/public/browser/BUILD.gn
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/content/public/browser/BUILD.gn
|
|
||||||
@@ -515,6 +515,7 @@ jumbo_source_set("browser_sources") {
|
|
||||||
"//cc",
|
|
||||||
"//components/services/storage/public/cpp",
|
|
||||||
"//components/viz/host",
|
|
||||||
+ "//components/spellcheck:buildflags",
|
|
||||||
"//content/browser", # Must not be public_deps!
|
|
||||||
"//device/fido",
|
|
||||||
"//gpu",
|
|
||||||
diff --git a/qtwebengine/src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn b/qtwebengine/src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn
|
|
||||||
index 1fc492f5a0c..13a266e22f1 100644
|
|
||||||
--- a/qtwebengine/src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn
|
|
||||||
+++ b/qtwebengine/src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn
|
|
||||||
@@ -23,6 +23,7 @@ source_set("declarative_net_request") {
|
|
||||||
"//extensions/common",
|
|
||||||
"//extensions/common/api",
|
|
||||||
"//services/preferences/public/cpp",
|
|
||||||
+ "//components/web_cache/browser",
|
|
||||||
]
|
|
||||||
|
|
||||||
public_deps = [ "//extensions/browser:browser_sources" ]
|
|
||||||
--
|
|
||||||
2.47.0
|
|
||||||
|
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
From 24dd03e131cd3edc89907a699369562e61d8aa86 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
||||||
|
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
||||||
|
Date: Mon, 21 Jul 2025 13:19:58 -0400
|
||||||
|
Subject: [PATCH] qtwebengine: fix ASSERT_TRIVIALLY_COPYABLE failure
|
||||||
|
|
||||||
|
Some compilers don't implement std::is_trivially_copyable correctly,
|
||||||
|
which can cause chromium's build to fail with the following error:
|
||||||
|
|
||||||
|
In file included from ../../../3rdparty/chromium/v8/src/base/bits.h:12,
|
||||||
|
from ../../../3rdparty/chromium/v8/src/base/small-vector.h:12,
|
||||||
|
from ../../../3rdparty/chromium/v8/src/compiler/turboshaft/graph.h:17,
|
||||||
|
from ../../../3rdparty/chromium/v8/src/compiler/turboshaft/analyzer-iterator.h:9,
|
||||||
|
from ./../../../3rdparty/chromium/v8/src/compiler/turboshaft/analyzer-iterator.cc:5,
|
||||||
|
from gen/v8/v8_turboshaft_jumbo_1.cc:5:
|
||||||
|
../../../3rdparty/chromium/v8/src/base/small-vector.h: In instantiation of 'class v8::base::SmallVector<std::pair<const v8::internal::compiler::turboshaft::PhiOp*, const v8::internal::compiler::turboshaft::OpIndex>, 16>':
|
||||||
|
../../../3rdparty/chromium/v8/src/compiler/turboshaft/loop-unrolling-reducer.h:433:11: required from here
|
||||||
|
../../../3rdparty/chromium/v8/src/base/macros.h:206:55: error: static assertion failed: T should be trivially copyable
|
||||||
|
206 | static_assert(::v8::base::is_trivially_copyable<T>::value, \
|
||||||
|
| ^~~~~
|
||||||
|
../../../3rdparty/chromium/v8/src/base/small-vector.h:25:3: note: in expansion of macro 'ASSERT_TRIVIALLY_COPYABLE'
|
||||||
|
25 | ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
../../../3rdparty/chromium/v8/src/base/macros.h:206:55: note: 'v8::base::is_trivially_copyable<std::pair<const v8::internal::compiler::turboshaft::PhiOp*, const v8::internal::compiler::turboshaft::OpIndex> >::value' evaluates to false
|
||||||
|
206 | static_assert(::v8::base::is_trivially_copyable<T>::value, \
|
||||||
|
| ^~~~~
|
||||||
|
../../../3rdparty/chromium/v8/src/base/small-vector.h:25:3: note: in expansion of macro 'ASSERT_TRIVIALLY_COPYABLE'
|
||||||
|
25 | ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
| ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
References:
|
||||||
|
https://chromium-review.googlesource.com/c/v8/v8/+/5679182
|
||||||
|
https://chromium-review.googlesource.com/c/v8/v8/+/5872655
|
||||||
|
https://github.com/rubyjs/libv8-node/pull/57
|
||||||
|
https://github.com/nodejs/node/issues/54576
|
||||||
|
---
|
||||||
|
qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h | 3 ++-
|
||||||
|
qtwebengine/src/3rdparty/chromium/v8/src/base/small-vector.h | 4 ++--
|
||||||
|
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h b/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h
|
||||||
|
index 93a99ec136..88c6555189 100644
|
||||||
|
--- a/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h
|
||||||
|
+++ b/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h
|
||||||
|
@@ -173,7 +173,8 @@ namespace base {
|
||||||
|
// base::is_trivially_copyable will differ for these cases.
|
||||||
|
template <typename T>
|
||||||
|
struct is_trivially_copyable {
|
||||||
|
-#if V8_CC_MSVC
|
||||||
|
+#if V8_CC_MSVC || (__GNUC__ == 12 && __GNUC_MINOR__ <= 2) || \
|
||||||
|
+ (defined(__clang__) && __clang_major__ <= 17)
|
||||||
|
// Unfortunately, MSVC 2015 is broken in that std::is_trivially_copyable can
|
||||||
|
// be false even though it should be true according to the standard.
|
||||||
|
// (status at 2018-02-26, observed on the msvc waterfall bot).
|
||||||
|
diff --git a/qtwebengine/src/3rdparty/chromium/v8/src/base/small-vector.h b/qtwebengine/src/3rdparty/chromium/v8/src/base/small-vector.h
|
||||||
|
index b1b5d64198..ce2e003fb9 100644
|
||||||
|
--- a/qtwebengine/src/3rdparty/chromium/v8/src/base/small-vector.h
|
||||||
|
+++ b/qtwebengine/src/3rdparty/chromium/v8/src/base/small-vector.h
|
||||||
|
@@ -22,7 +22,7 @@ template <typename T, size_t kSize, typename Allocator = std::allocator<T>>
|
||||||
|
class SmallVector {
|
||||||
|
// Currently only support trivially copyable and trivially destructible data
|
||||||
|
// types, as it uses memcpy to copy elements and never calls destructors.
|
||||||
|
- ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
+ // ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
static_assert(std::is_trivially_destructible<T>::value);
|
||||||
|
|
||||||
|
public:
|
||||||
|
@@ -193,7 +193,7 @@ class SmallVector {
|
||||||
|
|
||||||
|
void resize_no_init(size_t new_size) {
|
||||||
|
// Resizing without initialization is safe if T is trivially copyable.
|
||||||
|
- ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
+ // ASSERT_TRIVIALLY_COPYABLE(T);
|
||||||
|
if (new_size > capacity()) Grow(new_size);
|
||||||
|
end_ = begin_ + new_size;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
From 709d0b0cf45b920f63960a70725138dbaf7ec721 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
|
||||||
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
|
||||||
Date: Wed, 18 Jun 2025 15:53:55 -0400
|
|
||||||
Subject: [PATCH] Fix embree linking errors
|
|
||||||
|
|
||||||
Patch taken from:
|
|
||||||
https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=37bd373cd33c36f8dd44e71be25fa6ea24cf4588
|
|
||||||
---
|
|
||||||
qtquick3d/src/3rdparty/embree/CMakeLists.txt | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/qtquick3d/src/3rdparty/embree/CMakeLists.txt b/qtquick3d/src/3rdparty/embree/CMakeLists.txt
|
|
||||||
index cf27196de2..332bbd17ca 100644
|
|
||||||
--- a/qtquick3d/src/3rdparty/embree/CMakeLists.txt
|
|
||||||
+++ b/qtquick3d/src/3rdparty/embree/CMakeLists.txt
|
|
||||||
@@ -62,6 +62,9 @@ if (IOS)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Use SSE2 only, ignore AVX/SSE4.2 for now
|
|
||||||
+if (TEST_architecture_arch STREQUAL x86_64)
|
|
||||||
+ qt_internal_extend_target(BundledEmbree COMPILE_OPTIONS -mno-avx -mno-sse4.2)
|
|
||||||
+endif()
|
|
||||||
qt_internal_extend_target(BundledEmbree DEFINES
|
|
||||||
EMBREE_TARGET_SSE2
|
|
||||||
__SSE2__
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
From 5c247c7a084661932969acf2f7103096b8b0d6b4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
|
||||||
|
<francois-simon.fauteux-chapleau@savoirfairelinux.com>
|
||||||
|
Date: Tue, 22 Jul 2025 13:40:55 -0400
|
||||||
|
Subject: [PATCH] qtwebengine: fix zygote_communication_linux dependency
|
||||||
|
|
||||||
|
Commit 42e09c7bea of qtwebengine-chromium added
|
||||||
|
content/public/browser/child_process_host.h to the list of header files
|
||||||
|
included in zygote_communication_linux.cc, which can cause the build to
|
||||||
|
fail with the following error:
|
||||||
|
|
||||||
|
In file included from ../../../3rdparty/chromium/content/common/zygote/zygote_communication_linux.cc:21:
|
||||||
|
../../../3rdparty/chromium/content/public/browser/child_process_host.h:17:10: fatal error: content/common/buildflags.h: No such file or directory
|
||||||
|
17 | #include "content/common/buildflags.h"
|
||||||
|
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
---
|
||||||
|
.../content/common/zygote/zygote_communication_linux.cc | 9 ++++++---
|
||||||
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/qtwebengine/src/3rdparty/chromium/content/common/zygote/zygote_communication_linux.cc b/qtwebengine/src/3rdparty/chromium/content/common/zygote/zygote_communication_linux.cc
|
||||||
|
index 5bd9a53568..ff883d59e4 100644
|
||||||
|
--- a/qtwebengine/src/3rdparty/chromium/content/common/zygote/zygote_communication_linux.cc
|
||||||
|
+++ b/qtwebengine/src/3rdparty/chromium/content/common/zygote/zygote_communication_linux.cc
|
||||||
|
@@ -18,7 +18,7 @@
|
||||||
|
#include "base/posix/eintr_wrapper.h"
|
||||||
|
#include "base/posix/unix_domain_socket.h"
|
||||||
|
#include "content/common/zygote/zygote_commands_linux.h"
|
||||||
|
-#include "content/public/browser/child_process_host.h"
|
||||||
|
+#include "content/public/common/content_paths.h"
|
||||||
|
#include "content/public/common/content_switches.h"
|
||||||
|
#include "content/public/common/result_codes.h"
|
||||||
|
#include "sandbox/policy/switches.h"
|
||||||
|
@@ -237,8 +237,11 @@ void ZygoteCommunication::Init(
|
||||||
|
base::OnceCallback<pid_t(base::CommandLine*, base::ScopedFD*)> launcher) {
|
||||||
|
CHECK(!init_);
|
||||||
|
|
||||||
|
- base::FilePath chrome_path = content::ChildProcessHost::GetChildPath(
|
||||||
|
- content::ChildProcessHost::CHILD_NORMAL);
|
||||||
|
+ base::FilePath chrome_path = base::CommandLine::ForCurrentProcess()->GetSwitchValuePath(
|
||||||
|
+ switches::kBrowserSubprocessPath);
|
||||||
|
+ if (chrome_path.empty()) {
|
||||||
|
+ base::PathService::Get(CHILD_PROCESS_EXE, &chrome_path);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
base::CommandLine cmd_line(chrome_path);
|
||||||
|
cmd_line.AppendSwitchASCII(switches::kProcessType, switches::kZygoteProcess);
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
||||||
@@ -44,30 +44,12 @@ QUILT_REFRESH_ARGS="-p 1"
|
|||||||
|
|
||||||
if [ ! -f "${qt_deb_path}" ] || [ "${FORCE_REBUILD_QT}" = "true" ]; then
|
if [ ! -f "${qt_deb_path}" ] || [ "${FORCE_REBUILD_QT}" = "true" ]; then
|
||||||
(
|
(
|
||||||
|
|
||||||
# HACK: For now on ubuntu 24.04 there is no python3.10 package
|
|
||||||
# So create a PyEnv environment to install the required packages
|
|
||||||
# NOTE: We use this on Ubuntu 25.04 and Debian 13 ("trixie") too
|
|
||||||
# because otherwise we get a ModuleNotFoundError when building
|
|
||||||
# Qt 6.6.1 (specifically the chromium submodule in QtWebEngine)
|
|
||||||
# due to the version of python used (3.13) being too recent.
|
|
||||||
if cat /etc/os-release | grep -Eq "24.04|25.04|trixie"; then
|
|
||||||
apt-get install git gcc make python3-pip libssl-dev curl libreadline-dev -y
|
|
||||||
curl https://pyenv.run | bash
|
|
||||||
export PYENV_ROOT="$HOME/.pyenv"
|
|
||||||
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
|
||||||
eval "$(pyenv init -)"
|
|
||||||
pyenv install 3.10.0
|
|
||||||
pyenv local 3.10.0
|
|
||||||
|
|
||||||
python -m pip install html5lib
|
|
||||||
python -m pip install six
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
flock 9 # block until the lock file is gone
|
flock 9 # block until the lock file is gone
|
||||||
test -f "${qt_deb_path}" && exit 0 # check again
|
test -f "${qt_deb_path}" && exit 0 # check again
|
||||||
|
|
||||||
|
# Build and install the correct version of FFmpeg.
|
||||||
|
/opt/install-ffmpeg-for-qt.sh
|
||||||
|
|
||||||
# Build Qt.
|
# Build Qt.
|
||||||
mkdir /opt/libqt-jami-build
|
mkdir /opt/libqt-jami-build
|
||||||
cd /opt/libqt-jami-build
|
cd /opt/libqt-jami-build
|
||||||
|
|||||||
@@ -38,9 +38,9 @@ QT_JAMI_PREFIX="/usr/lib64/qt-jami"
|
|||||||
PATH="${QT_JAMI_PREFIX}/bin:${PATH}"
|
PATH="${QT_JAMI_PREFIX}/bin:${PATH}"
|
||||||
LD_LIBRARY_PATH="${QT_JAMI_PREFIX}/lib:${LD_LIBRARY_PATH}"
|
LD_LIBRARY_PATH="${QT_JAMI_PREFIX}/lib:${LD_LIBRARY_PATH}"
|
||||||
PKG_CONFIG_PATH="${QT_JAMI_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}"
|
PKG_CONFIG_PATH="${QT_JAMI_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}"
|
||||||
CMAKE_PREFIX_PATH="${QT_JAMI_PREFIX}/lib/cmake:${CMAKE_PREFIX_PATH}"
|
CMAKE_PREFIX_PATH="${QT_JAMI_PREFIX}:${CMAKE_PREFIX_PATH}"
|
||||||
QT_MAJOR=6
|
QT_MAJOR=6
|
||||||
QT_MINOR=6
|
QT_MINOR=8
|
||||||
QT_PATCH=3
|
QT_PATCH=3
|
||||||
QT_RELEASE_PATCH=0
|
QT_RELEASE_PATCH=0
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ QT_MAJOR_MINOR_PATCH=${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}
|
|||||||
QT_TARBALL_URL=https://download.qt.io/archive/qt/$QT_MAJOR_MINOR/\
|
QT_TARBALL_URL=https://download.qt.io/archive/qt/$QT_MAJOR_MINOR/\
|
||||||
$QT_MAJOR_MINOR_PATCH/single/qt-everywhere-src-$QT_MAJOR_MINOR_PATCH.tar.xz
|
$QT_MAJOR_MINOR_PATCH/single/qt-everywhere-src-$QT_MAJOR_MINOR_PATCH.tar.xz
|
||||||
|
|
||||||
QT_TARBALL_SHA256="69d0348fef415da98aa890a34651e9cfb232f1bffcee289b7b4e21386bf36104"
|
QT_TARBALL_SHA256="cdd3a69967208276bb01af7ace7dba0ba53e679f886a4cbe624225c60fb73f2c"
|
||||||
QT_TARBALL_FILE_NAME=$(basename "$QT_TARBALL_URL")
|
QT_TARBALL_FILE_NAME=$(basename "$QT_TARBALL_URL")
|
||||||
CACHED_QT_TARBALL=$TARBALLS/$QT_TARBALL_FILE_NAME
|
CACHED_QT_TARBALL=$TARBALLS/$QT_TARBALL_FILE_NAME
|
||||||
|
|
||||||
@@ -67,6 +67,10 @@ if [ ! -f "${RPM_PATH}" ]; then
|
|||||||
flock 9 # block until the lock is available
|
flock 9 # block until the lock is available
|
||||||
test -f "$RPM_PATH" && exit 0 # check again
|
test -f "$RPM_PATH" && exit 0 # check again
|
||||||
|
|
||||||
|
# Build and install the correct version of FFmpeg.
|
||||||
|
/opt/install-ffmpeg-for-qt.sh
|
||||||
|
|
||||||
|
# Build Qt.
|
||||||
mkdir /opt/qt-jami-build
|
mkdir /opt/qt-jami-build
|
||||||
cd /opt/qt-jami-build
|
cd /opt/qt-jami-build
|
||||||
tar xf "/src/$RELEASE_TARBALL_FILENAME" \
|
tar xf "/src/$RELEASE_TARBALL_FILENAME" \
|
||||||
@@ -132,7 +136,10 @@ rpmbuild --define "debug_package %{nil}" -ba jami-libclient.spec
|
|||||||
rpmbuild --define "debug_package %{nil}" -ba jami-qt.spec
|
rpmbuild --define "debug_package %{nil}" -ba jami-qt.spec
|
||||||
|
|
||||||
# Build the Qt client.
|
# Build the Qt client.
|
||||||
rpmbuild --define "debug_package %{nil}" --define "BUILD_VERSION ${BUILD_VERSION}" -ba jami.spec
|
rpmbuild --define "debug_package %{nil}" \
|
||||||
|
--define "BUILD_VERSION ${BUILD_VERSION}" \
|
||||||
|
--define "QT_JAMI_PREFIX ${QT_JAMI_PREFIX}" \
|
||||||
|
-ba jami.spec
|
||||||
|
|
||||||
# Move the built packages to the output directory.
|
# Move the built packages to the output directory.
|
||||||
mv /root/rpmbuild/RPMS/*/* /opt/output
|
mv /root/rpmbuild/RPMS/*/* /opt/output
|
||||||
|
|||||||
28
extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh
Executable file
28
extras/packaging/gnu-linux/scripts/install-ffmpeg-for-qt.sh
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Building Qt Multimedia requires the FFmpeg headers and libraries to be installed:
|
||||||
|
# https://doc.qt.io/qt-6.8/qtmultimedia-building-from-source.html
|
||||||
|
# For Qt 6.8.3, the recommended FFmpeg version is 7.1:
|
||||||
|
# https://doc.qt.io/qt-6.8/qtmultimedia-index.html#target-platform-and-backend-notes
|
||||||
|
# This script is based on the instructions at:
|
||||||
|
# https://doc.qt.io/qt-6.8/qtmultimedia-building-ffmpeg-linux.html
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
INSTALL_DIR=/opt/libqt-jami-ffmpeg
|
||||||
|
|
||||||
|
cd /tmp
|
||||||
|
git clone --branch n11.1.5.2 https://github.com/FFmpeg/nv-codec-headers.git nv-codec-headers
|
||||||
|
cd nv-codec-headers
|
||||||
|
make -j install
|
||||||
|
|
||||||
|
cd /tmp
|
||||||
|
git clone --branch n7.1.1 https://git.ffmpeg.org/ffmpeg.git ffmpeg
|
||||||
|
cd ffmpeg
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
../configure --prefix=${INSTALL_DIR} --disable-doc --enable-network --enable-shared
|
||||||
|
make -j install
|
||||||
|
|
||||||
|
cd /tmp
|
||||||
|
rm -rf nv-codec-headers ffmpeg
|
||||||
@@ -169,10 +169,8 @@ if(QT6_VER AND QT6_PATH)
|
|||||||
else()
|
else()
|
||||||
find_package(QT NAMES Qt6 REQUIRED)
|
find_package(QT NAMES Qt6 REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
if (${QT_VERSION_MAJOR} STRLESS 6)
|
if (${QT_VERSION_MAJOR} LESS 6 OR (${QT_VERSION_MAJOR} EQUAL 6 AND ${QT_VERSION_MINOR} LESS 8))
|
||||||
if (${QT_VERSION_MINOR} STRLESS 6)
|
message(FATAL_ERROR "Qt 6.8 or higher is required.")
|
||||||
message(FATAL_ERROR "Qt 6.6 or higher is required.")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(QT_MODULES Core Gui Sql)
|
set(QT_MODULES Core Gui Sql)
|
||||||
|
|||||||
Reference in New Issue
Block a user