diff --git a/extras/packaging/gnu-linux/docker/Dockerfile_debian_testing b/extras/packaging/gnu-linux/docker/Dockerfile_debian_testing index 16baa193ac0e1dd55db1761fcb264ce03465ae6b..94a86e07c395b7be704345b2558ead2e73008233 100644 --- a/extras/packaging/gnu-linux/docker/Dockerfile_debian_testing +++ b/extras/packaging/gnu-linux/docker/Dockerfile_debian_testing @@ -27,9 +27,7 @@ RUN /opt/prebuild-package-debian.sh qt-deps COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control RUN /opt/prebuild-package-debian.sh jami-deps -# Install CMake 3.21 for Qt 6 -ADD extras/packaging/gnu-linux/scripts/install-cmake.sh /opt/install-cmake.sh -RUN /opt/install-cmake.sh +RUN apt-get remove -y libre2-dev libre2-11 ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh CMD ["/opt/build-package-debian.sh"] diff --git a/extras/packaging/gnu-linux/docker/Dockerfile_debian_unstable b/extras/packaging/gnu-linux/docker/Dockerfile_debian_unstable index 5d88be80f286c7a82157637690ab6ed1ff81b8c6..1e8aa90ceebe11db9914f5287643ea1e5521385e 100644 --- a/extras/packaging/gnu-linux/docker/Dockerfile_debian_unstable +++ b/extras/packaging/gnu-linux/docker/Dockerfile_debian_unstable @@ -27,9 +27,7 @@ RUN /opt/prebuild-package-debian.sh qt-deps COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control RUN /opt/prebuild-package-debian.sh jami-deps -# Install CMake 3.21 for Qt 6 -ADD extras/packaging/gnu-linux/scripts/install-cmake.sh /opt/install-cmake.sh -RUN /opt/install-cmake.sh +RUN apt-get remove -y libre2-dev libre2-11 ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh CMD ["/opt/build-package-debian.sh"] diff --git a/extras/packaging/gnu-linux/rules/debian-qt/patches/0001-replace_imp_by_importlib.patch b/extras/packaging/gnu-linux/rules/debian-qt/patches/0001-qtwebengine-enable-building-with-Python-3.12.patch similarity index 80% rename from extras/packaging/gnu-linux/rules/debian-qt/patches/0001-replace_imp_by_importlib.patch rename to extras/packaging/gnu-linux/rules/debian-qt/patches/0001-qtwebengine-enable-building-with-Python-3.12.patch index ec89acfd15e662d5c9932c8b32fdcf9013f4680e..4bf323dd776ceea2c0fcba91958ab82c042ead7d 100644 --- a/extras/packaging/gnu-linux/rules/debian-qt/patches/0001-replace_imp_by_importlib.patch +++ b/extras/packaging/gnu-linux/rules/debian-qt/patches/0001-qtwebengine-enable-building-with-Python-3.12.patch @@ -1,10 +1,18 @@ -From deeacfdb5a6d1d300d4ba991df76aa12e5dbaa42 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=A9bastien=20Blin?= - <sebastien.blin@savoirfairelinux.com> -Date: Tue, 16 Apr 2024 09:54:32 -0400 -Subject: [PATCH] fix imp->importlib +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 ++----- @@ -14,11 +22,37 @@ Subject: [PATCH] fix imp->importlib .../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 ----- - .../3rdparty/chromium/third_party/six/src/six.py | 16 ++++++++++++++++ - 10 files changed, 23 insertions(+), 37 deletions(-) + .../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 29daec367c..124f12c134 100644 +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 @@ @@ -30,7 +64,7 @@ index 29daec367c..124f12c134 100644 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 48eaf4eca9..c93d22898d 100644 +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 @@ @@ -55,7 +89,7 @@ index 48eaf4eca9..c93d22898d 100644 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 76cda3981f..7143e07c4d 100644 +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 @@ @@ -94,7 +128,7 @@ index 76cda3981f..7143e07c4d 100644 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 4259374513..558e71e119 100644 +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 @@ @@ -115,7 +149,7 @@ index 4259374513..558e71e119 100644 """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 c36376712e..b289f7b11f 100644 +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 @@ @@ -148,7 +182,7 @@ index c36376712e..b289f7b11f 100644 """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 5fc582025e..2fa5d2be6a 100644 +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 @@ @@ -192,7 +226,7 @@ index 5fc582025e..2fa5d2be6a 100644 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 73ca15df94..1083a1af7b 100644 +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 @@ @@ -204,7 +238,7 @@ index 73ca15df94..1083a1af7b 100644 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 ce376da66e..bc9f835431 100644 +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 @@ @@ -241,7 +275,7 @@ index ce376da66e..bc9f835431 100644 # 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 0513343ec7..0a26307b1a 100644 +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 @@ @@ -268,10 +302,10 @@ index 0513343ec7..0a26307b1a 100644 - if __name__ == "__main__": unittest.main() -diff --git a/qtwebengine/src/3rdparty/chromium/third_party/six/src/six.py b/qtwebengine/src/3rdparty/chromium/third_party/six/src/six.py -index 5fe9f8e141..96b06f8ce7 100644 ---- a/qtwebengine/src/3rdparty/chromium/third_party/six/src/six.py -+++ b/qtwebengine/src/3rdparty/chromium/third_party/six/src/six.py +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 @@ -310,5 +344,5 @@ index 5fe9f8e141..96b06f8ce7 100644 -- -2.43.0 +2.34.1 diff --git a/extras/packaging/gnu-linux/rules/debian-qt/patches/0004-qtbase-fix-CMake-error.patch b/extras/packaging/gnu-linux/rules/debian-qt/patches/0004-qtbase-fix-CMake-error.patch new file mode 100644 index 0000000000000000000000000000000000000000..bda3210f10ae8105802c1a41a026240028a63ff2 --- /dev/null +++ b/extras/packaging/gnu-linux/rules/debian-qt/patches/0004-qtbase-fix-CMake-error.patch @@ -0,0 +1,40 @@ +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 + diff --git a/extras/packaging/gnu-linux/rules/debian-qt/patches/0005-qtwebengine-add-missing-chromium-dependencies.patch b/extras/packaging/gnu-linux/rules/debian-qt/patches/0005-qtwebengine-add-missing-chromium-dependencies.patch new file mode 100644 index 0000000000000000000000000000000000000000..22b1589f1c740cb176e70d3b32c03a2793be87d6 --- /dev/null +++ b/extras/packaging/gnu-linux/rules/debian-qt/patches/0005-qtwebengine-add-missing-chromium-dependencies.patch @@ -0,0 +1,40 @@ +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 + diff --git a/extras/packaging/gnu-linux/rules/debian-qt/patches/0006-qtwebengine-fix-libxml2-build-error.patch b/extras/packaging/gnu-linux/rules/debian-qt/patches/0006-qtwebengine-fix-libxml2-build-error.patch new file mode 100644 index 0000000000000000000000000000000000000000..c6bb19fdfc8e4e813f2b0dc5c9efb0edf79986a5 --- /dev/null +++ b/extras/packaging/gnu-linux/rules/debian-qt/patches/0006-qtwebengine-fix-libxml2-build-error.patch @@ -0,0 +1,49 @@ +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 + diff --git a/extras/packaging/gnu-linux/rules/debian-qt/patches/series b/extras/packaging/gnu-linux/rules/debian-qt/patches/series index 33c6c0b2e7ed1e4d1b317d35cd7f9a17b82cb352..2a98ffcdab0283f9e1e6e0b60f4c129f19bad16e 100644 --- a/extras/packaging/gnu-linux/rules/debian-qt/patches/series +++ b/extras/packaging/gnu-linux/rules/debian-qt/patches/series @@ -1,3 +1,6 @@ -0001-replace_imp_by_importlib.patch +0001-qtwebengine-enable-building-with-Python-3.12.patch 0002-fix-binary-tokenizer.patch -0003-qtwayland-downgrade-wl-seat-to-avoid-high-resolution.patch \ No newline at end of file +0003-qtwayland-downgrade-wl-seat-to-avoid-high-resolution.patch +0004-qtbase-fix-CMake-error.patch +0005-qtwebengine-add-missing-chromium-dependencies.patch +0006-qtwebengine-fix-libxml2-build-error.patch \ No newline at end of file