From 0792994e04c603c4894be12cb08d1f1a9d785648a6d0d9251aba5dd859c12bc5 Mon Sep 17 00:00:00 2001 From: Luca Beltrame Date: Mon, 29 Mar 2021 04:47:36 +0000 Subject: [PATCH] Accepting request 881623 from home:cgiboudeaux:branches:KDE:Qt:5.15 Qt WebEngine 5.15.3. Also compatible with Qt 5.12 OBS-URL: https://build.opensuse.org/request/show/881623 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtwebengine?expand=0&rev=23 --- 0001-Fix-normalization-of-app-locales.patch | 135 +++++++++ _service | 15 + _servicedata | 4 + chromium-glibc-2.33.patch | 69 +++-- fix1163766.patch | 55 ++-- icu-68-2.patch | 27 -- icu-68.patch | 301 -------------------- libqt5-qtwebengine.changes | 137 +++++++++ libqt5-qtwebengine.spec | 202 +++++++------ qtwebengine-everywhere-src-5.15.2.tar.xz | 3 - qtwebengine-everywhere-src-5.15.3.tar.xz | 3 + rtc-dont-use-h264.patch | 25 +- sandbox-statx-futex_time64.patch | 14 +- sync.profile | 15 + 14 files changed, 485 insertions(+), 520 deletions(-) create mode 100644 0001-Fix-normalization-of-app-locales.patch create mode 100644 _service create mode 100644 _servicedata delete mode 100644 icu-68-2.patch delete mode 100644 icu-68.patch delete mode 100644 qtwebengine-everywhere-src-5.15.2.tar.xz create mode 100644 qtwebengine-everywhere-src-5.15.3.tar.xz create mode 100644 sync.profile diff --git a/0001-Fix-normalization-of-app-locales.patch b/0001-Fix-normalization-of-app-locales.patch new file mode 100644 index 0000000..dbcad82 --- /dev/null +++ b/0001-Fix-normalization-of-app-locales.patch @@ -0,0 +1,135 @@ +From 199ea00a9eea13315a652c62778738629185b059 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Wed, 10 Mar 2021 17:14:27 +0100 +Subject: [PATCH] Fix normalization of app locales +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Use the internal Chromium routine to get the app locale Chromium +expects. + +Fixes: QTBUG-91715 +Change-Id: I5042eb066cb6879ad69628959912f2841867b4e8 +Reviewed-by: Michael Brüning +--- + src/core/content_browser_client_qt.cpp | 7 +++++- + src/core/content_browser_client_qt.h | 2 ++ + src/core/web_engine_library_info.cpp | 18 +++++++------- + .../qwebengineview/tst_qwebengineview.cpp | 24 +++++++++++++++++++ + 4 files changed, 40 insertions(+), 11 deletions(-) + +diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp +index e13ecd8d..c2c78ff8 100644 +--- a/src/core/content_browser_client_qt.cpp ++++ b/src/core/content_browser_client_qt.cpp +@@ -471,7 +471,12 @@ std::unique_ptr ContentBrowserClientQt::CreateClientCertSt + + std::string ContentBrowserClientQt::GetApplicationLocale() + { +- return WebEngineLibraryInfo::getApplicationLocale(); ++ std::string bcp47Name = QLocale().bcp47Name().toStdString(); ++ if (m_cachedQtLocale != bcp47Name) { ++ m_cachedQtLocale = bcp47Name; ++ m_appLocale = WebEngineLibraryInfo::getApplicationLocale(); ++ } ++ return m_appLocale; + } + + std::string ContentBrowserClientQt::GetAcceptLangs(content::BrowserContext *context) +diff --git a/src/core/content_browser_client_qt.h b/src/core/content_browser_client_qt.h +index 7c8aa3ac..1ccd2926 100644 +--- a/src/core/content_browser_client_qt.h ++++ b/src/core/content_browser_client_qt.h +@@ -269,6 +269,8 @@ public: + + private: + scoped_refptr m_shareGroupQtQuick; ++ std::string m_appLocale; ++ std::string m_cachedQtLocale; + }; + + } // namespace QtWebEngineCore +diff --git a/src/core/web_engine_library_info.cpp b/src/core/web_engine_library_info.cpp +index 2ad5b756..09a4141b 100644 +--- a/src/core/web_engine_library_info.cpp ++++ b/src/core/web_engine_library_info.cpp +@@ -46,6 +46,7 @@ + #include "components/spellcheck/spellcheck_buildflags.h" + #include "content/public/common/content_paths.h" + #include "sandbox/policy/switches.h" ++#include "ui/base/l10n/l10n_util.h" + #include "ui/base/ui_base_paths.h" + #include "ui/base/ui_base_switches.h" + +@@ -353,18 +354,15 @@ base::string16 WebEngineLibraryInfo::getApplicationName() + std::string WebEngineLibraryInfo::getApplicationLocale() + { + base::CommandLine *parsedCommandLine = base::CommandLine::ForCurrentProcess(); +- if (!parsedCommandLine->HasSwitch(switches::kLang)) { ++ if (parsedCommandLine->HasSwitch(switches::kLang)) { ++ return parsedCommandLine->GetSwitchValueASCII(switches::kLang); ++ } else { + const QString &locale = QLocale().bcp47Name(); +- +- // QLocale::bcp47Name returns "en" for American English locale. Chromium requires the "US" suffix +- // to clarify the dialect and ignores the shorter version. +- if (locale == "en") +- return "en-US"; +- +- return locale.toStdString(); ++ std::string resolvedLocale; ++ if (l10n_util::CheckAndResolveLocale(locale.toStdString(), &resolvedLocale)) ++ return resolvedLocale; + } +- +- return parsedCommandLine->GetSwitchValueASCII(switches::kLang); ++ return "en-US"; + } + + #if defined(OS_WIN) +diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +index 02198638..bf2c28ae 100644 +--- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp ++++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +@@ -123,6 +123,7 @@ private Q_SLOTS: + void doNotBreakLayout(); + + void changeLocale(); ++ void mixLangLocale(); + void inputMethodsTextFormat_data(); + void inputMethodsTextFormat(); + void keyboardEvents(); +@@ -1210,6 +1211,29 @@ void tst_QWebEngineView::changeLocale() + QCOMPARE(errorLines.first().toUtf8(), QByteArrayLiteral("Die Website ist nicht erreichbar")); + } + ++void tst_QWebEngineView::mixLangLocale() ++{ ++ for (QString locale : { "en_DK", "de_CH", "eu_ES" }) { ++ QLocale::setDefault(locale); ++ QWebEngineView view; ++ QSignalSpy loadSpy(&view, &QWebEngineView::loadFinished); ++ ++ bool terminated = false; ++ auto sc = connect(view.page(), &QWebEnginePage::renderProcessTerminated, [&] () { terminated = true; }); ++ ++ view.load(QUrl("qrc:///resources/dummy.html")); ++ QTRY_VERIFY(terminated || loadSpy.count() == 1); ++ ++ QVERIFY2(!terminated, ++ qPrintable(QString("Locale [%1] terminated: %2, loaded: %3").arg(locale).arg(terminated).arg(loadSpy.count()))); ++ QVERIFY(loadSpy.first().first().toBool()); ++ ++ QString content = toPlainTextSync(view.page()); ++ QVERIFY2(!content.isEmpty() && content.contains("test content"), qPrintable(content)); ++ } ++ QLocale::setDefault(QLocale("en")); ++} ++ + void tst_QWebEngineView::inputMethodsTextFormat_data() + { + QTest::addColumn("string"); +-- +2.30.2 + diff --git a/_service b/_service new file mode 100644 index 0000000..c257322 --- /dev/null +++ b/_service @@ -0,0 +1,15 @@ + + + enable + 5.15.3 + git://code.qt.io/qt/qtwebengine.git + git + qtwebengine-everywhere-src + 5.15.3 + + + *.tar + xz + + + diff --git a/_servicedata b/_servicedata new file mode 100644 index 0000000..2d18b48 --- /dev/null +++ b/_servicedata @@ -0,0 +1,4 @@ + + + git://code.qt.io/qt/qtwebengine.git + a059e7404a6db799f4da0ad696e65ae9c854b4b0 \ No newline at end of file diff --git a/chromium-glibc-2.33.patch b/chromium-glibc-2.33.patch index 19237ef..c09cbf8 100644 --- a/chromium-glibc-2.33.patch +++ b/chromium-glibc-2.33.patch @@ -1,13 +1,13 @@ # Patch made by Kevin Kofler # https://bugzilla.redhat.com/show_bug.cgi?id=1904652 -Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -=================================================================== ---- qtwebengine-everywhere-src-5.15.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -+++ qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -@@ -253,6 +253,18 @@ ResultExpr EvaluateSyscallImpl(int fs_de - return RestrictKillTarget(current_pid, sysno); +diff --git a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +index 4772dc0..1f31d3a 100644 +--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc ++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +@@ -268,6 +268,18 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, } + #endif +#if defined(__NR_newfstatat) + if (sysno == __NR_newfstatat) { @@ -24,10 +24,10 @@ Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/sec if (SyscallSets::IsFileSystem(sysno) || SyscallSets::IsCurrentDirectory(sysno)) { return Error(fs_denied_errno); -Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc -=================================================================== ---- qtwebengine-everywhere-src-5.15.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc -+++ qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc +diff --git a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc +index 76eb324..ad95656 100644 +--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc ++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc @@ -6,6 +6,8 @@ #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h" @@ -36,13 +36,13 @@ Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/sec +#include #include #include - #include -@@ -353,6 +355,35 @@ intptr_t SIGSYSSchedHandler(const struct + #include +@@ -355,6 +357,35 @@ intptr_t SIGSYSSchedHandler(const struct arch_seccomp_data& args, return -ENOSYS; } +intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, -+ void* aux) { ++ void* aux) { + switch (args.nr) { +#if defined(__NR_newfstatat) + case __NR_newfstatat: @@ -73,7 +73,7 @@ Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/sec bpf_dsl::ResultExpr CrashSIGSYS() { return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL); } -@@ -385,6 +416,10 @@ bpf_dsl::ResultExpr RewriteSchedSIGSYS() +@@ -387,6 +418,10 @@ bpf_dsl::ResultExpr RewriteSchedSIGSYS() { return bpf_dsl::Trap(SIGSYSSchedHandler, NULL); } @@ -84,23 +84,22 @@ Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/sec void AllocateCrashKeys() { #if !defined(OS_NACL_NONSFI) if (seccomp_crash_key) -Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h -=================================================================== ---- qtwebengine-everywhere-src-5.15.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h -+++ qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h -@@ -63,6 +63,11 @@ SIGSYSPtraceFailure(const struct arch_se - SANDBOX_EXPORT intptr_t - SIGSYSSchedHandler(const struct arch_seccomp_data& args, void* aux); - +diff --git a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h +index 7a958b9..d0bfab7 100644 +--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h ++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h +@@ -62,6 +62,10 @@ SANDBOX_EXPORT intptr_t SIGSYSPtraceFailure(const arch_seccomp_data& args, + // sched_setparam(), sched_setscheduler() + SANDBOX_EXPORT intptr_t SIGSYSSchedHandler(const arch_seccomp_data& args, + void* aux); +// If the fstatat syscall is actually a disguised fstat, calls the regular fstat +// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler. -+SANDBOX_EXPORT intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, ++SANDBOX_EXPORT intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, + void* aux); -+ + // Variants of the above functions for use with bpf_dsl. SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS(); - SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSClone(); -@@ -72,6 +77,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr Crash +@@ -72,6 +76,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSKill(); SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex(); SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace(); SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS(); @@ -108,10 +107,10 @@ Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/sec // Allocates a crash key so that Seccomp information can be recorded. void AllocateCrashKeys(); -Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc -=================================================================== ---- qtwebengine-everywhere-src-5.15.2.orig/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc -+++ qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc +diff --git a/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc b/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc +index fcfd2aa..5396b36 100644 +--- a/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc ++++ b/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc @@ -261,4 +261,13 @@ int sys_sigaction(int signum, #endif // defined(MEMORY_SANITIZER) @@ -126,10 +125,10 @@ Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/ser +} + } // namespace sandbox -Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h -=================================================================== ---- qtwebengine-everywhere-src-5.15.2.orig/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h -+++ qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h +diff --git a/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h b/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h +index 1975bfb..ed7ee5a 100644 +--- a/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h ++++ b/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h @@ -17,6 +17,7 @@ struct sock_fprog; struct rlimit64; struct cap_hdr; @@ -138,7 +137,7 @@ Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/ser namespace sandbox { -@@ -84,6 +85,9 @@ SANDBOX_EXPORT int sys_sigaction(int sig +@@ -84,6 +85,9 @@ SANDBOX_EXPORT int sys_sigaction(int signum, const struct sigaction* act, struct sigaction* oldact); diff --git a/fix1163766.patch b/fix1163766.patch index 8477d3d..557035d 100644 --- a/fix1163766.patch +++ b/fix1163766.patch @@ -1,15 +1,19 @@ -Author Bernhard M. Wiedemann -Date: 2020-04-07 - -https://bugzilla.opensuse.org/show_bug.cgi?id=1163766 +From eaae274cb1975be558d8a535ba2310bc67c073a6 Mon Sep 17 00:00:00 2001 +From: "Bernhard M. Wiedemann" +Date: Wed, 24 Mar 2021 16:00:08 +0100 +Subject: [PATCH] https://bugzilla.opensuse.org/show_bug.cgi?id=1163766 seccomp filters disallow a new kernel syscall to get time used on i586 +--- + .../sandbox/linux/system_headers/x86_32_linux_syscalls.h | 8 ++++++++ + .../chromium/sandbox/policy/linux/bpf_ime_policy_linux.cc | 3 +++ + 3 files changed, 16 insertions(+) -Index: qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h -=================================================================== ---- qtwebengine-everywhere-src-5.15.0-beta3.orig/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h -+++ qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h +diff --git a/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h b/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h +index 7613c9bbc..7093ac054 100644 +--- a/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h ++++ b/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h @@ -1710,5 +1710,13 @@ #define __NR_clone3 435 #endif @@ -24,33 +28,20 @@ Index: qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/sandbox/lin + #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_ -Index: qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -=================================================================== ---- qtwebengine-everywhere-src-5.15.0-beta3.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -+++ qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -@@ -151,6 +151,11 @@ ResultExpr EvaluateSyscallImpl(int fs_de - if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep) { - return RestrictClockID(); - } -+#if defined(__NR_clock_gettime64) -+ if (sysno == __NR_clock_gettime64 || sysno == __NR_clock_nanosleep_time64) { -+ return RestrictClockID(); -+ } -+#endif - - if (sysno == __NR_clone) { - return RestrictCloneToThreadsAndEPERMFork(); -Index: qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_ime_policy_linux.cc -=================================================================== ---- qtwebengine-everywhere-src-5.15.0-beta3.orig/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_ime_policy_linux.cc -+++ qtwebengine-everywhere-src-5.15.0-beta3/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_ime_policy_linux.cc -@@ -31,6 +31,9 @@ ResultExpr ImeProcessPolicy::EvaluateSys +diff --git a/src/3rdparty/chromium/sandbox/policy/linux/bpf_ime_policy_linux.cc b/src/3rdparty/chromium/sandbox/policy/linux/bpf_ime_policy_linux.cc +index 3fcdbcc18..c7a00c2c2 100644 +--- a/src/3rdparty/chromium/sandbox/policy/linux/bpf_ime_policy_linux.cc ++++ b/src/3rdparty/chromium/sandbox/policy/linux/bpf_ime_policy_linux.cc +@@ -31,6 +31,9 @@ ResultExpr ImeProcessPolicy::EvaluateSyscall(int sysno) const { + #endif #if defined(__NR_clock_gettime) case __NR_clock_gettime: - #endif ++#endif +#if defined(__NR_clock_gettime64) + case __NR_clock_gettime64: -+#endif + #endif return Allow(); // https://crbug.com/991435 - #if defined(__NR_getrusage) +-- +2.30.2 + diff --git a/icu-68-2.patch b/icu-68-2.patch deleted file mode 100644 index ed9885e..0000000 --- a/icu-68-2.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b516ed189eb440e909f36baca1557b98e4d9ffd7 Mon Sep 17 00:00:00 2001 -From: Frederik Seiffert -Date: Thu, 12 Nov 2020 12:53:43 +0100 -Subject: [PATCH] Fix building with ICU 68. - -ICU 68 no longer defines the TRUE macro. - -Closes #204. ---- - encoding.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/encoding.c b/encoding.c -index c34aca44..264f60bb 100644 ---- a/src/3rdparty/chromium/third_party/libxml/src/encoding.c -+++ b/src/3rdparty/chromium/third_party/libxml/src/encoding.c -@@ -2004,7 +2004,7 @@ xmlEncOutputChunk(xmlCharEncodingHandler *handler, unsigned char *out, - #ifdef LIBXML_ICU_ENABLED - else if (handler->uconv_out != NULL) { - ret = xmlUconvWrapper(handler->uconv_out, 0, out, outlen, in, inlen, -- TRUE); -+ 1); - } - #endif /* LIBXML_ICU_ENABLED */ - else { --- -GitLab \ No newline at end of file diff --git a/icu-68.patch b/icu-68.patch deleted file mode 100644 index d3d0dc7..0000000 --- a/icu-68.patch +++ /dev/null @@ -1,301 +0,0 @@ -From 9236b21c883360482bd2c06929bfdecbc47f186c Mon Sep 17 00:00:00 2001 -From: Allan Sandfeld Jensen -Date: Mon, 16 Nov 2020 13:16:13 +0100 -Subject: Fix build with system ICU 68 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes: QTBUG-88116 -Change-Id: I935babf51c2670fad7cc7950a2fe07eb2829c4cb -Reviewed-by: Jüri Valdmann ---- - chromium/base/i18n/string_compare.cc | 4 ++-- - chromium/base/i18n/time_formatting.cc | 2 +- - .../components/autofill/core/common/autofill_regexes.cc | 8 ++++---- - .../spellcheck/renderer/spellcheck_worditerator.cc | 2 +- - .../url_formatter/spoof_checks/idn_spoof_checker.cc | 4 ++-- - .../url_formatter/spoof_checks/skeleton_generator.cc | 2 +- - chromium/services/service_manager/zygote/zygote_linux.cc | 2 +- - .../blink/renderer/platform/text/locale_icu.cc | 4 ++-- - .../renderer/platform/text/text_break_iterator_icu.cc | 16 ++++++++-------- - .../blink/renderer/platform/text/unicode_utilities.cc | 2 +- - .../blink/renderer/platform/wtf/text/text_codec_icu.cc | 2 +- - chromium/ui/base/l10n/formatter.cc | 6 +++--- - 12 files changed, 27 insertions(+), 27 deletions(-) - -diff --git a/chromium/base/i18n/string_compare.cc b/chromium/base/i18n/string_compare.cc -index 6cd59b98f49..a5fa502b53f 100644 ---- a/src/3rdparty/chromium/base/i18n/string_compare.cc -+++ b/src/3rdparty/chromium/base/i18n/string_compare.cc -@@ -18,8 +18,8 @@ UCollationResult CompareString16WithCollator(const icu::Collator& collator, - StringPiece16 rhs) { - UErrorCode error = U_ZERO_ERROR; - UCollationResult result = collator.compare( -- icu::UnicodeString(FALSE, lhs.data(), static_cast(lhs.length())), -- icu::UnicodeString(FALSE, rhs.data(), static_cast(rhs.length())), -+ icu::UnicodeString(false, lhs.data(), static_cast(lhs.length())), -+ icu::UnicodeString(false, rhs.data(), static_cast(rhs.length())), - error); - DCHECK(U_SUCCESS(error)); - return result; -diff --git a/chromium/base/i18n/time_formatting.cc b/chromium/base/i18n/time_formatting.cc -index 1a6c1389ba0..106dd0e5b47 100644 ---- a/src/3rdparty/chromium/base/i18n/time_formatting.cc -+++ b/src/3rdparty/chromium/base/i18n/time_formatting.cc -@@ -236,7 +236,7 @@ bool TimeDurationFormatWithSeconds(const TimeDelta time, - icu::FieldPosition ignore(icu::FieldPosition::DONT_CARE); - measure_format.formatMeasures(measures, 3, formatted, ignore, status); - *out = i18n::UnicodeStringToString16(formatted); -- return U_SUCCESS(status) == TRUE; -+ return U_SUCCESS(status) == true; - } - - string16 DateIntervalFormat(const Time& begin_time, -diff --git a/chromium/components/autofill/core/common/autofill_regexes.cc b/chromium/components/autofill/core/common/autofill_regexes.cc -index b141cb2d0f6..a8a688d50c7 100644 ---- a/src/3rdparty/chromium/components/autofill/core/common/autofill_regexes.cc -+++ b/src/3rdparty/chromium/components/autofill/core/common/autofill_regexes.cc -@@ -43,7 +43,7 @@ class AutofillRegexes { - icu::RegexMatcher* AutofillRegexes::GetMatcher(const base::string16& pattern) { - auto it = matchers_.find(pattern); - if (it == matchers_.end()) { -- const icu::UnicodeString icu_pattern(FALSE, pattern.data(), -+ const icu::UnicodeString icu_pattern(false, pattern.data(), - pattern.length()); - - UErrorCode status = U_ZERO_ERROR; -@@ -70,20 +70,20 @@ bool MatchesPattern(const base::string16& input, - base::AutoLock lock(*g_lock); - - icu::RegexMatcher* matcher = g_autofill_regexes->GetMatcher(pattern); -- icu::UnicodeString icu_input(FALSE, input.data(), input.length()); -+ icu::UnicodeString icu_input(false, input.data(), input.length()); - matcher->reset(icu_input); - - UErrorCode status = U_ZERO_ERROR; - UBool matched = matcher->find(0, status); - DCHECK(U_SUCCESS(status)); - -- if (matched == TRUE && match) { -+ if (matched == true && match) { - icu::UnicodeString match_unicode = matcher->group(0, status); - DCHECK(U_SUCCESS(status)); - *match = base::i18n::UnicodeStringToString16(match_unicode); - } - -- return matched == TRUE; -+ return matched == true; - } - - } // namespace autofill -diff --git a/chromium/components/spellcheck/renderer/spellcheck_worditerator.cc b/chromium/components/spellcheck/renderer/spellcheck_worditerator.cc -index 8fe8a6df381..e3a65580c08 100644 ---- a/src/3rdparty/chromium/components/spellcheck/renderer/spellcheck_worditerator.cc -+++ b/src/3rdparty/chromium/components/spellcheck/renderer/spellcheck_worditerator.cc -@@ -424,7 +424,7 @@ bool SpellcheckWordIterator::Normalize(size_t input_start, - // spellchecker and we need manual normalization as well. The normalized - // text does not have to be NUL-terminated since its characters are copied to - // string16, which adds a NUL character when we need. -- icu::UnicodeString input(FALSE, &text_[input_start], -+ icu::UnicodeString input(false, &text_[input_start], - base::checked_cast(input_length)); - UErrorCode status = U_ZERO_ERROR; - icu::UnicodeString output; -diff --git a/chromium/components/url_formatter/spoof_checks/idn_spoof_checker.cc b/chromium/components/url_formatter/spoof_checks/idn_spoof_checker.cc -index 1964793fd3e..c4e01026c38 100644 ---- a/src/3rdparty/chromium/components/url_formatter/spoof_checks/idn_spoof_checker.cc -+++ b/src/3rdparty/chromium/components/url_formatter/spoof_checks/idn_spoof_checker.cc -@@ -347,7 +347,7 @@ bool IDNSpoofChecker::SafeToDisplayAsUnicode( - if (U_FAILURE(status) || (result & USPOOF_ALL_CHECKS)) - return false; - -- icu::UnicodeString label_string(FALSE /* isTerminated */, label.data(), -+ icu::UnicodeString label_string(false /* isTerminated */, label.data(), - base::checked_cast(label.size())); - - // A punycode label with 'xn--' prefix is not subject to the URL -@@ -677,7 +677,7 @@ bool IDNSpoofChecker::IsWholeScriptConfusableAllowedForTLD( - base::StringPiece tld, - base::StringPiece16 tld_unicode) { - icu::UnicodeString tld_string( -- FALSE /* isTerminated */, tld_unicode.data(), -+ false /* isTerminated */, tld_unicode.data(), - base::checked_cast(tld_unicode.size())); - // Allow if the TLD contains any letter from the script, in which case it's - // likely to be a TLD in that script. -diff --git a/chromium/components/url_formatter/spoof_checks/skeleton_generator.cc b/chromium/components/url_formatter/spoof_checks/skeleton_generator.cc -index 41485914007..b8c1c2f547a 100644 ---- a/src/3rdparty/chromium/components/url_formatter/spoof_checks/skeleton_generator.cc -+++ b/src/3rdparty/chromium/components/url_formatter/spoof_checks/skeleton_generator.cc -@@ -117,7 +117,7 @@ SkeletonGenerator::~SkeletonGenerator() = default; - Skeletons SkeletonGenerator::GetSkeletons(base::StringPiece16 hostname) { - Skeletons skeletons; - size_t hostname_length = hostname.length() - (hostname.back() == '.' ? 1 : 0); -- icu::UnicodeString host(FALSE, hostname.data(), hostname_length); -+ icu::UnicodeString host(false, hostname.data(), hostname_length); - // If input has any characters outside Latin-Greek-Cyrillic and [0-9._-], - // there is no point in getting rid of diacritics because combining marks - // attached to non-LGC characters are already blocked. -diff --git a/chromium/services/service_manager/zygote/zygote_linux.cc b/chromium/services/service_manager/zygote/zygote_linux.cc -index aa601ab28d7..920438e5b50 100644 ---- a/src/3rdparty/chromium/services/service_manager/zygote/zygote_linux.cc -+++ b/src/3rdparty/chromium/services/service_manager/zygote/zygote_linux.cc -@@ -564,7 +564,7 @@ base::ProcessId Zygote::ReadArgsAndFork(base::PickleIterator iter, - if (!iter.ReadString16(&timezone_id)) - return -1; - icu::TimeZone::adoptDefault(icu::TimeZone::createTimeZone( -- icu::UnicodeString(FALSE, timezone_id.data(), timezone_id.length()))); -+ icu::UnicodeString(false, timezone_id.data(), timezone_id.length()))); - - if (!iter.ReadInt(&numfds)) - return -1; -diff --git a/chromium/third_party/blink/renderer/platform/text/locale_icu.cc b/chromium/third_party/blink/renderer/platform/text/locale_icu.cc -index abff1b1d809..57f1286d4e4 100644 ---- a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/locale_icu.cc -+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/locale_icu.cc -@@ -169,12 +169,12 @@ static String GetDateFormatPattern(const UDateFormat* date_format) { - return g_empty_string; - - UErrorCode status = U_ZERO_ERROR; -- int32_t length = udat_toPattern(date_format, TRUE, nullptr, 0, &status); -+ int32_t length = udat_toPattern(date_format, true, nullptr, 0, &status); - if (status != U_BUFFER_OVERFLOW_ERROR || !length) - return g_empty_string; - StringBuffer buffer(length); - status = U_ZERO_ERROR; -- udat_toPattern(date_format, TRUE, buffer.Characters(), length, &status); -+ udat_toPattern(date_format, true, buffer.Characters(), length, &status); - if (U_FAILURE(status)) - return g_empty_string; - return String::Adopt(buffer); -diff --git a/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc b/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc -index a257cd75ccf..898d0c47bb1 100644 ---- a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc -+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc -@@ -311,13 +311,13 @@ static inline bool TextInChunkOrOutOfRange(UText* text, - text->chunkOffset = offset <= std::numeric_limits::max() - ? static_cast(offset) - : 0; -- is_accessible = TRUE; -+ is_accessible = true; - return true; - } - if (native_index >= native_length && - text->chunkNativeLimit == native_length) { - text->chunkOffset = text->chunkLength; -- is_accessible = FALSE; -+ is_accessible = false; - return true; - } - } else { -@@ -330,12 +330,12 @@ static inline bool TextInChunkOrOutOfRange(UText* text, - text->chunkOffset = offset <= std::numeric_limits::max() - ? static_cast(offset) - : 0; -- is_accessible = TRUE; -+ is_accessible = true; - return true; - } - if (native_index <= 0 && !text->chunkNativeStart) { - text->chunkOffset = 0; -- is_accessible = FALSE; -+ is_accessible = false; - return true; - } - } -@@ -346,7 +346,7 @@ static UBool TextLatin1Access(UText* text, - int64_t native_index, - UBool forward) { - if (!text->context) -- return FALSE; -+ return false; - int64_t native_length = TextNativeLength(text); - UBool is_accessible; - if (TextInChunkOrOutOfRange(text, native_index, native_length, forward, -@@ -370,7 +370,7 @@ static UBool TextLatin1Access(UText* text, - DCHECK_EQ(new_context, kPriorContext); - TextLatin1SwitchToPriorContext(text, native_index, native_length, forward); - } -- return TRUE; -+ return true; - } - - static const struct UTextFuncs kTextLatin1Funcs = { -@@ -510,7 +510,7 @@ static void TextUTF16SwitchToPriorContext(UText* text, - - static UBool TextUTF16Access(UText* text, int64_t native_index, UBool forward) { - if (!text->context) -- return FALSE; -+ return false; - int64_t native_length = TextNativeLength(text); - UBool is_accessible; - if (TextInChunkOrOutOfRange(text, native_index, native_length, forward, -@@ -532,7 +532,7 @@ static UBool TextUTF16Access(UText* text, int64_t native_index, UBool forward) { - DCHECK_EQ(new_context, kPriorContext); - TextUTF16SwitchToPriorContext(text, native_index, native_length, forward); - } -- return TRUE; -+ return true; - } - - static const struct UTextFuncs kTextUTF16Funcs = { -diff --git a/chromium/third_party/blink/renderer/platform/text/unicode_utilities.cc b/chromium/third_party/blink/renderer/platform/text/unicode_utilities.cc -index 2cefd5390b6..b8c4515dc13 100644 ---- a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/unicode_utilities.cc -+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/unicode_utilities.cc -@@ -300,7 +300,7 @@ void NormalizeCharactersIntoNFCForm(const UChar* characters, - DCHECK(U_SUCCESS(status)); - int32_t input_length = static_cast(length); - // copy-on-write. -- icu::UnicodeString normalized(FALSE, characters, input_length); -+ icu::UnicodeString normalized(false, characters, input_length); - // In the vast majority of cases, input is already NFC. Run a quick check - // to avoid normalizing the entire input unnecessarily. - int32_t normalized_prefix_length = -diff --git a/chromium/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc b/chromium/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc -index 810d1cd9181..9074b640fff 100644 ---- a/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc -+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc -@@ -326,7 +326,7 @@ void TextCodecICU::CreateICUConverter() const { - DLOG_IF(ERROR, err == U_AMBIGUOUS_ALIAS_WARNING) - << "ICU ambiguous alias warning for encoding: " << encoding_.GetName(); - if (converter_icu_) -- ucnv_setFallback(converter_icu_, TRUE); -+ ucnv_setFallback(converter_icu_, true); - } - - int TextCodecICU::DecodeToBuffer(UChar* target, -diff --git a/chromium/ui/base/l10n/formatter.cc b/chromium/ui/base/l10n/formatter.cc -index 486a3a029cb..d7a41724628 100644 ---- a/src/3rdparty/chromium/ui/base/l10n/formatter.cc -+++ b/src/3rdparty/chromium/ui/base/l10n/formatter.cc -@@ -232,7 +232,7 @@ void Formatter::Format(Unit unit, - int value, - icu::UnicodeString* formatted_string) const { - DCHECK(simple_format_[unit]); -- DCHECK(formatted_string->isEmpty() == TRUE); -+ DCHECK(formatted_string->isEmpty() == true); - UErrorCode error = U_ZERO_ERROR; - FormatNumberInPlural(*simple_format_[unit], - value, formatted_string, &error); -@@ -248,7 +248,7 @@ void Formatter::Format(TwoUnits units, - << "Detailed() not implemented for your (format, length) combination!"; - DCHECK(detailed_format_[units][1]) - << "Detailed() not implemented for your (format, length) combination!"; -- DCHECK(formatted_string->isEmpty() == TRUE); -+ DCHECK(formatted_string->isEmpty() == true); - UErrorCode error = U_ZERO_ERROR; - FormatNumberInPlural(*detailed_format_[units][0], value_1, - formatted_string, &error); -@@ -281,7 +281,7 @@ std::unique_ptr Formatter::InitFormat( - base::string16 pattern = l10n_util::GetStringUTF16(pluralities.id); - UErrorCode error = U_ZERO_ERROR; - std::unique_ptr format(new icu::MessageFormat( -- icu::UnicodeString(FALSE, pattern.data(), pattern.length()), error)); -+ icu::UnicodeString(false, pattern.data(), pattern.length()), error)); - DCHECK(U_SUCCESS(error)); - if (format.get()) - return format; --- -cgit v1.2.1 diff --git a/libqt5-qtwebengine.changes b/libqt5-qtwebengine.changes index f972a94..17fc4b4 100644 --- a/libqt5-qtwebengine.changes +++ b/libqt5-qtwebengine.changes @@ -1,3 +1,140 @@ +------------------------------------------------------------------- +Wed Mar 24 12:45:13 UTC 2021 - christophe@krop.fr + +- Update to version 5.15.3: + * Fix spelling and coding style + * Fix new view request handling (QTBUG-87378) + * Fix getDefaultScreenId on X11 + * Fix flaky tst_QWebEngineView::textSelectionOutOfInputField test + * Move touch input tests to separate testcase + * Add touch input tests for scrolling and pinch zooming + * Fix rare duplicate ids forming in touch point id's mapping + * Use the module's version number for QtWebEngineProcess + * Touch handling: provide id mapping without modifying TouchPoint instance + (QTBUG-88001) + * Touch handling: fix mapped ids cleanup for TouchCancel event + * et custom headers from QWebEngineUrlRequestInfo before triggering redirect + (QTBUG-88861) + * Forward modifier flags for lock keys (QTBUG-89001) + * Fix handling of more than one finger for touch event (QTBUG-86389) + * Stabilize load signals emitting (QTBUG-65223, QTBUG-87089) + * Fix building against 5.12 on most CIs + * Update minimum HarfBuzz version to 2.4.0 (QTBUG-88976) + * Fix building against Qt 5.14 + * Migrate user script IPC to mojo + * Fix crashes in user resource controller when single process + * Minor. Fix namespace for user resource controller + * Minor. RenderThreadObserverQt is really a RenderConfiguration + * Remove RenderViewObserverHelper from UserResourceController + * Cache mojo interface bindings to UserResourceControllerRenderFrame + * Cache mojo interface bindings for WebChannelIPCTransport + * Migrate render_view_observer_qt to mojo + * Fix crash on linkedin.com (QTBUG-89740) + * Suppress error pages also for http errors if they are disabled + * Fix leak in QQuickWebEngineViewPrivate::contextMenuRequested + * Register PerformanceNode early enough + * Quiet log on webrtc usage + * Remove configure option that doesn't work + * Remove Java build dependency + * Fix blank popups in qml (QTBUG-86034) + * Fix position of popup on qml (QTBUG-86034, QTBUG-89358) + * Enable hangout services extension (QTBUG-85731) + * Allow to fallback to default locale for non existent data packs (QTBUG-90490) + * Support devtools close button + * Do not extract download file names from certain url schemes (QTBUG-90355) + * Leave room for the null-termination byte when checking remote drive path + (QTBUG-90347) + * Do not set open files limit for linking if not necessary + * Remove even more remains of non network service code + * Add back prefers-color-scheme support (QTBUG-89753) + * Start supporting chrome.resourcesPrivate API (QTBUG-90035) + * Enable chrome://user-actions WebUI + * Remove remains of chrome://flash + * Fix loadFinished signal if page has content but server sends HTTP error + (QTBUG-90517) + * Fix devtools page resource loading as raw data instead of html string + * Remove frame metadata observer (RenderWidgetHostViewQt) on destroy + * Resolve installed interceptors right before interception point (QTBUG-86286) + * Update searches faster + * Remove more leftovers of the old compositor + * Enable webrtc logging and the corresponding WebUI + * Support mips64el platform CPU(loongson 3A4000) + * Add tracing UI resources + * Fix crash on meet.google.com + * Fix mad popup qquickwindows on wayland + * Fix crashes on BrowserContext destruction + * Fix crash on exit in quicknanobrowser when popup + * Remove QtPdf dependency on nss at build-time + * Avoid accessing profileAdapter when profile is shutting down (QTBUG-91187) + * Do not flush messages form profile destructor + * Ignore QQuickWebEngineNewViewRequest if it is unhandled + * Fix ScopedGLContextChecker with QTWEBENGINE_DISABLE_GPU_THREAD=1 + * Don't send duplicate load progress values + * Fix neon support in libpng + * Do not call deprecated profile interceptor on ui thread (QTBUG-86267) + * Add certificate error message for ERR_SSL_OBSOLETE_VERSION + * Fix assert in WebContentsAdapter::devToolsFrontendDestroyed + * Avoid to reject a certificate error twice in Quick + * Fix PDF viewer plugin + * FIXUP: Fix swap condition in DisplayGLOutputSurface::updatePaintNode + (QTBUG-86599) + * Fix favicon engine under device pixel scaling + * Do not pass a native keycode matching the menu key when it is remapped + (QTBUG-86672) + * Optimize WebEngineSettings::testAttribute + * Warn about QtWebengineProcess launching from network share (QTBUG-84632) + * Handle non-ascii names for pulseaudio (QTBUG-85363) + * Do not set audio device for desktop capture if audio loopback is unsupported + * Fix new view request handling (QTBUG-87378) + * Fix getDefaultScreenId on X11 + * Touch handling: provide id mapping without modifying TouchPoint instance + (QTBUG-88001) + * Set custom headers from QWebEngineUrlRequestInfo before triggering redirect + (QTBUG-88861) + * Stabilize load signals emitting (QTBUG-65223) + +- CVE fixes backported in chromium updates: + * CVE-2020-16044: Use after free in WebRTC + * CVE-2021-21118: Heap buffer overflow in Blink + * CVE-2021-21119: Use after free in Media + * CVE-2021-21120: Use after free in WebSQL + * CVE-2021-21121: Use after free in Omnibox + * CVE-2021-21122: Use after free in Blink + * CVE-2021-21123: Insufficient data validation in File System API + * CVE-2021-21125: Insufficient policy enforcement in File System API + * CVE-2021-21126: Insufficient policy enforcement in extensions + * CVE-2021-21127: Insufficient policy enforcement in extensions + * CVE-2021-21128: Heap buffer overflow in Blink + * CVE-2021-21129: Insufficient policy enforcement in File System API + * CVE-2021-21130: Insufficient policy enforcement in File System API + * CVE-2021-21131: Insufficient policy enforcement in File System API + * CVE-2021-21132: Inappropriate implementation in DevTools + * CVE-2021-21135: Inappropriate implementation in Performance API + * CVE-2021-21137: Inappropriate implementation in DevTools + * CVE-2021-21140: Uninitialized Use in USB + * CVE-2021-21141: Insufficient policy enforcement in File System API + * CVE-2021-21145: Use after free in Fonts + * CVE-2021-21146: Use after free in Navigation + * CVE-2021-21147: Inappropriate implementation in Skia + * CVE-2021-21148: Heap buffer overflow in V8 + * CVE-2021-21149: Stack overflow in Data Transfer + * CVE-2021-21150: Use after free in Downloads + * CVE-2021-21152: Heap buffer overflow in Media + * CVE-2021-21153: Stack overflow in GPU Process + * CVE-2021-21156: Heap buffer overflow in V8 + * CVE-2021-21157: Use after free in Web Sockets +- Drop obsolete patches: + * icu-68.patch + * icu-68-2.patch +- Rebase patches: + * fix1163766.patch + * sandbox-statx-futex_time64.patch + * rtc-dont-use-h264.patch + * chromium-glibc-2.33.patch +- Add patch to fix crash with certain locales: + * 0001-Fix-normalization-of-app-locales.patch +- Clean the spec file a bit + ------------------------------------------------------------------- Wed Mar 10 16:52:28 UTC 2021 - Fabian Vogt diff --git a/libqt5-qtwebengine.spec b/libqt5-qtwebengine.spec index a0beae7..93c98cc 100644 --- a/libqt5-qtwebengine.spec +++ b/libqt5-qtwebengine.spec @@ -1,7 +1,7 @@ # # spec file for package libqt5-qtwebengine # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # Copyright © 2017 Kevin Kofler # # All modifications and additions to the file contributed by third parties @@ -17,15 +17,6 @@ # -%define qt5_snapshot 0 - -%if %{?suse_version} > 1500 || 0%{?sle_version} > 150100 -%bcond_without system_harfbuzz -%bcond_without system_icu -%else -%bcond_with system_harfbuzz -%bcond_with system_icu -%endif %if %{?suse_version} > 1500 || 0%{?sle_version} > 150300 %bcond_without system_vpx %else @@ -38,29 +29,31 @@ %global _qtwebengine_dictionaries_dir %{_libqt5_datadir}/qtwebengine_dictionaries Name: libqt5-qtwebengine -Version: 5.15.2 +Version: 5.15.3 Release: 0 Summary: Qt 5 WebEngine Library License: LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only Group: Development/Libraries/X11 URL: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.2 -%define so_version 5.15.2 -%define tar_version qtwebengine-everywhere-src-5.15.2 +%define real_version 5.15.3 +%define so_version 5.15.3 +%define tar_version qtwebengine-everywhere-src-%{version} Source: https://download.qt.io/official_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz +# Generated from a local build +Source1: sync.profile # PATCH-FIX-UPSTREAM armv6-ffmpeg-no-thumb.patch - Fix ffmpeg configuration for armv6 -Patch1: armv6-ffmpeg-no-thumb.patch +Patch0: armv6-ffmpeg-no-thumb.patch # PATCH-FIX-OPENSUSE disable-gpu-when-using-nouveau-boo-1005323.diff -Patch2: disable-gpu-when-using-nouveau-boo-1005323.diff -Patch3: fix1163766.patch -Patch4: chromium-glibc-2.33.patch -Patch5: sandbox-statx-futex_time64.patch +Patch1: disable-gpu-when-using-nouveau-boo-1005323.diff +Patch2: fix1163766.patch +Patch3: sandbox-statx-futex_time64.patch # PATCH-FIX-OPENSUSE -Patch9: rtc-dont-use-h264.patch +Patch4: rtc-dont-use-h264.patch # PATCH-FIX-UPSTREAM -Patch10: icu-68.patch -Patch11: icu-68-2.patch +Patch5: 0001-Fix-normalization-of-app-locales.patch +# PATCH-FIX-UPSTREAM +Patch6: chromium-glibc-2.33.patch # http://www.chromium.org/blink not ported to PowerPC ExcludeArch: ppc ppc64 ppc64le s390 s390x # Try to fix i586 MemoryErrors with rpmlint @@ -80,29 +73,33 @@ BuildRequires: libQt5QuickControls2-devel BuildRequires: libqt5-qtsvg-devel BuildRequires: libcap-devel BuildRequires: libgcrypt-devel -BuildRequires: libicu-devel BuildRequires: libjpeg-devel BuildRequires: libpng-devel -BuildRequires: libqt5-qtbase-private-headers-devel >= 5.9 -BuildRequires: libqt5-qtdeclarative-private-headers-devel >= 5.9 -BuildRequires: libqt5-qtlocation-private-headers-devel >= 5.9 -BuildRequires: libqt5-qttools-private-headers-devel >= 5.9 -BuildRequires: libqt5-qtwebchannel-private-headers-devel >= 5.9 -BuildRequires: libqt5-qtxmlpatterns-private-headers-devel >= 5.9 +BuildRequires: libqt5-qtbase-private-headers-devel >= 5.12 +BuildRequires: libqt5-qtdeclarative-private-headers-devel >= 5.12 +BuildRequires: libqt5-qtlocation-private-headers-devel >= 5.12 +BuildRequires: libqt5-qttools-private-headers-devel >= 5.12 +BuildRequires: libqt5-qtwebchannel-private-headers-devel >= 5.12 +BuildRequires: libqt5-qtxmlpatterns-private-headers-devel >= 5.12 BuildRequires: memory-constraints BuildRequires: ninja +# nodejs-default doesn't exist on Leap 15.2 and nodejs/nodejs-common is confused on TW/i586 +%if 0%{?suse_version} == 1500 && 0%{?sle_version} == 150200 +BuildRequires: nodejs-common +%else +BuildRequires: nodejs-default +%endif BuildRequires: pam-devel BuildRequires: pciutils-devel +BuildRequires: perl BuildRequires: perl-JSON -BuildRequires: pkg-config +BuildRequires: pkgconfig BuildRequires: python BuildRequires: python-devel BuildRequires: python-xml -BuildRequires: re2-devel BuildRequires: re2c BuildRequires: sed BuildRequires: snappy-devel -BuildRequires: sqlite3-devel BuildRequires: update-desktop-files BuildRequires: usbutils BuildRequires: util-linux @@ -119,13 +116,23 @@ BuildRequires: pkgconfig(bzip2) BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(fontconfig) -BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(freetype2) >= 2.4.2 BuildRequires: pkgconfig(gio-2.0) -BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(glib-2.0) >= 2.32 +BuildRequires: pkgconfig(glproto) BuildRequires: pkgconfig(gmodule-2.0) BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(gthread-2.0) +BuildRequires: pkgconfig(harfbuzz) >= 2.4.0 +BuildRequires: pkgconfig(icu-uc) >= 65.0 +BuildRequires: pkgconfig(icu-i18n) >= 65.0 BuildRequires: pkgconfig(jsoncpp) +BuildRequires: pkgconfig(lcms2) +%if %{with system_ffmpeg} +BuildRequires: pkgconfig(libavcodec) +BuildRequires: pkgconfig(libavformat) +BuildRequires: pkgconfig(libavutil) +%endif BuildRequires: pkgconfig(libcrypto) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libevent) @@ -140,13 +147,22 @@ BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libxslt) +%if %{with system_minizip} +BuildRequires: pkgconfig(minizip) +%endif BuildRequires: pkgconfig(nspr) BuildRequires: pkgconfig(nss) BuildRequires: pkgconfig(opus) BuildRequires: pkgconfig(pangocairo) BuildRequires: pkgconfig(pangoft2) +BuildRequires: pkgconfig(poppler-cpp) BuildRequires: pkgconfig(protobuf) +BuildRequires: pkgconfig(re2) BuildRequires: pkgconfig(speex) +BuildRequires: pkgconfig(sqlite3) +%if %{with system_vpx} +BuildRequires: pkgconfig(vpx) >= 1.8.0 +%endif BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xcomposite) BuildRequires: pkgconfig(xcursor) @@ -161,28 +177,6 @@ BuildRequires: pkgconfig(xt) BuildRequires: pkgconfig(xtst) BuildRequires: pkgconfig(zlib) BuildRequires: yasm-devel -%if %{with system_minizip} -BuildRequires: pkgconfig(minizip) -%endif -%if %{with system_harfbuzz} -BuildRequires: pkgconfig(harfbuzz) >= 2.2.0 -%endif -%if %{with system_icu} -BuildRequires: pkgconfig(icu-uc) >= 64.0 -BuildRequires: pkgconfig(icu-i18n) >= 64.0 -%endif -%if %{with system_vpx} -BuildRequires: pkgconfig(vpx) >= 1.8.0 -%endif -%if %{with system_ffmpeg} -BuildRequires: pkgconfig(libavcodec) -BuildRequires: pkgconfig(libavformat) -BuildRequires: pkgconfig(libavutil) -%endif -%if %qt5_snapshot -#to create the forwarding headers -BuildRequires: perl -%endif %requires_ge libQt5Network5 %requires_ge libQtQuick5 %requires_ge libQt5Widgets5 @@ -212,10 +206,10 @@ You need this package if you want to compile programs with Qt WebEngine. %package private-headers-devel Summary: Non-ABI stable experimental API for the Qt5 WebEngine library Group: Development/Libraries/C and C++ -BuildArch: noarch Requires: %{name}-devel = %{version} %requires_ge libqt5-qtbase-private-headers-devel %requires_ge libqt5-qtdeclarative-private-headers-devel +BuildArch: noarch %description private-headers-devel This package provides private headers of libqt5-qtwebengine that are normally @@ -265,9 +259,9 @@ You need this package if you want to compile programs with Qt PDF. %package -n libqt5-qtpdf-private-headers-devel Summary: Non-ABI stable experimental API for the Qt5 PDF library Group: Development/Libraries/C and C++ -BuildArch: noarch Requires: libqt5-qtpdf-devel = %{version} %requires_ge libqt5-qtbase-private-headers-devel +BuildArch: noarch %description -n libqt5-qtpdf-private-headers-devel This package provides private headers of libqt5-qtpdf that are normally @@ -293,11 +287,6 @@ sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' \ src/3rdparty/chromium/build/toolchain/linux/BUILD.gn %build -%if %qt5_snapshot -#force the configure script to generate the forwarding headers (it checks whether .git directory exists) -mkdir .git -%endif - # TODO: Get the manual unbundling from chromium.spec working here as well rm -r src/3rdparty/chromium/third_party/openh264/src @@ -313,48 +302,64 @@ export RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -Wno-return-type" QMAKE_CXXFLAGS="$RPM_OPT_FLAGS" \ QMAKE_LFLAGS+="-Wl,--no-keep-memory -Wl,--hash-size=31 -Wl,--reduce-memory-overheads" \ gn_args+="link_pulseaudio=true" \ + gn_args+="media_use_openh264=false" \ + gn_args+="use_system_libxml=true use_system_libxslt=true" \ qtwebengine.pro -- \ - -webengine-alsa -webengine-kerberos -no-webengine-embedded-build \ -%if %{with system_icu} + -webengine-alsa \ + -no-webengine-embedded-build \ + -webengine-kerberos \ -system-webengine-icu \ -%endif + -system-webengine-opus \ + -system-webengine-webp \ + -webengine-pepper-plugins \ + -webengine-printing-and-pdf \ %if %{with system_ffmpeg} -system-webengine-ffmpeg \ -webengine-proprietary-codecs \ %endif - -system-webengine-opus -system-webengine-webp -webengine-pepper-plugins -webengine-printing-and-pdf + +# For an unknown reason, syncqt isn't executed when building the package on the build service +cp %{SOURCE1} . +for i in QtWebEngine QtWebEngineCore QtWebEngineWidgets QtPdf QtPdfWidgets ; do + perl -w %{_libqt5_bindir}/syncqt.pl -module $i -version %{version} -outdir $PWD -builddir $PWD $PWD +done # Determine the right number of parallel processes based on the available memory %limit_build -m 2750 # Ensure that also the internal chromium build follows the right number of parallel # processes instead of its defaults. -export NINJAFLAGS="%{_smp_mflags}" +export NINJAFLAGS="%{?_smp_mflags}" make %{_smp_mflags} VERBOSE=1 %install %qmake5_install -#cat %{buildroot}/%{_libdir}/pkgconfig/Qt*Web*.pc -find %{buildroot}/%{_libdir} -type f -name '*la' -print -exec perl -pi -e 's, -L%{_builddir}/\S+,,g' {} + -find %{buildroot}/%{_libdir} -type f -name '*pc' -print -exec perl -pi -e "s, -L$RPM_BUILD_DIR/?\S+,,g" {} + -exec sed -i -e "s,^moc_location=.*,moc_location=%libqt5_bindir/moc," -e "s,uic_location=.*,uic_location=%libqt5_bindir/uic," {} + -find %{buildroot}/%{_libdir} -type f -name '*pc' -exec sed -i -e "/^RPM_BUILD_DIR/d" {} + + +find %{buildroot}%{_libdir} -type f -name '*la' -print -exec perl -pi -e 's, -L%{_builddir}/\S+,,g' {} + +find %{buildroot}%{_libdir} -type f -name '*pc' -print -exec perl -pi -e "s, -L$RPM_BUILD_DIR/?\S+,,g" {} + -exec sed -i -e "s,^moc_location=.*,moc_location=%libqt5_bindir/moc," -e "s,uic_location=.*,uic_location=%libqt5_bindir/uic," {} + +find %{buildroot}%{_libdir} -type f -name '*pc' -exec sed -i -e "/^RPM_BUILD_DIR/d" {} + sed -i '/^Libs.private/d' %{buildroot}%{_libdir}/pkgconfig/Qt*Web*.pc + # kill .la files rm -f %{buildroot}%{_libqt5_libdir}/*.la + # webenginecore expects icudatl.dat at this location # ln -sf %{_datadir}/icu/*/icudt*l.dat %{buildroot}%{_datadir}/qt5/icudtl.dat # Workaround to allow using QtWE with older Qt versions -sed -i -r '/ EXACT\)/d' \ - %{buildroot}%{_libqt5_libdir}/cmake/Qt5WebEngine*/Qt5WebEngine*Config.cmake - -sed -i '/find_package/!b;n;s/'%{so_version}/$(rpm -q --qf %%{version} libQt5Core5 | sed 's/~.*$//')/ \ - %{buildroot}%{_libqt5_libdir}/cmake/Qt5WebEngine*/Qt5WebEngine*Config.cmake +%global qtcore_version %(printf %{pkg_version libQt5Core5}) +# NOTE the space after '%%{version}' is important to only match '5.15.X ${_Qt5XXX_FIND_VERSION_EXACT}' +sed -i 's#%{version} #%{qtcore_version} #' %{buildroot}%{_libqt5_libdir}/cmake/*/*Config.cmake # Hunspell dictionaries will be converted and put here on package installation mkdir -p %{buildroot}%{_qtwebengine_dictionaries_dir} +%if %{pkg_vcmp libQt5Core5 >= 5.15} +# CMake files for plugins are only useful for static builds +rm -r %{buildroot}%{_libqt5_libdir}/cmake/Qt5Gui +%endif + %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %post -n libQt5Pdf5 -p /sbin/ldconfig @@ -362,7 +367,6 @@ mkdir -p %{buildroot}%{_qtwebengine_dictionaries_dir} %post -n libQt5PdfWidgets5 -p /sbin/ldconfig %postun -n libQt5PdfWidgets5 -p /sbin/ldconfig -%if 0%{?suse_version} >= 1500 %filetriggerin -- %{_datadir}/hunspell # Convert Hunspell dictionaries on package installation while read filename ; do @@ -373,26 +377,22 @@ while read filename ; do ;; esac done -%endif %files %license LICENSE.* +%dir %{_datadir}/qt5/ +%dir %{_qtwebengine_dictionaries_dir} +%dir %{_datadir}/qt5/resources/ +%{_datadir}/qt5/resources/qtwebengine_* +%dir %{_datadir}/qt5/translations/ +%{_datadir}/qt5/translations/qtwebengine_locales/ +%{_libqt5_archdatadir}/qml/QtWebEngine/ +%{_libqt5_bindir}/qwebengine_convert_dict %{_libqt5_libdir}/libQt5WebEngine.so.* %{_libqt5_libdir}/libQt5WebEngineCore.so.* %{_libqt5_libdir}/libQt5WebEngineWidgets.so.* -%dir %{_datadir}/qt5/ -%dir %{_datadir}/qt5/translations/ -%{_datadir}/qt5/translations/qtwebengine_locales/ -%dir %{_datadir}/qt5/resources/ -%{_datadir}/qt5/resources/qtwebengine_* -%if %{without system_icu} -%{_datadir}/qt5/resources/icudtl.dat -%endif -%dir %{_qtwebengine_dictionaries_dir} %dir %{_libqt5_libexecdir} %{_libqt5_libexecdir}/QtWebEngineProcess -%{_libqt5_archdatadir}/qml/QtWebEngine/ -%{_libqt5_bindir}/qwebengine_convert_dict %files private-headers-devel %license LICENSE.* @@ -401,15 +401,15 @@ done %files devel %exclude %{_libqt5_includedir}/QtWebEngine*/%{so_version} %{_libqt5_includedir}/QtWebEngine*/ -%{_libqt5_libdir}/libQt5WebEngine*.so -%{_libqt5_libdir}/libQt5WebEngine*.prl -%{_libqt5_libdir}/pkgconfig/Qt5WebEngine*.pc -%{_libqt5_libdir}/qt5/mkspecs/modules/qt_lib_webengine*.pri %dir %{_libqt5_libdir}/cmake/Qt5Designer/ %{_libqt5_libdir}/cmake/Qt5Designer/Qt5Designer_QWebEngineViewPlugin.cmake +%{_libqt5_libdir}/cmake/Qt5WebEngine*/ +%{_libqt5_libdir}/libQt5WebEngine*.prl +%{_libqt5_libdir}/libQt5WebEngine*.so +%{_libqt5_libdir}/pkgconfig/Qt5WebEngine*.pc +%{_libqt5_libdir}/qt5/mkspecs/modules/qt_lib_webengine*.pri %dir %{_libqt5_plugindir}/designer/ %{_libqt5_plugindir}/designer/libqwebengineview.so -%{_libqt5_libdir}/cmake/Qt5WebEngine*/ %files examples %license LICENSE.* @@ -418,12 +418,8 @@ done %files -n libQt5Pdf5 %license LICENSE.* -%{_libqt5_libdir}/libQt5Pdf.so.* %{_libqt5_archdatadir}/plugins/imageformats/libqpdf.so -# Not quite sure what this would be used by -%dir %{_libqt5_libdir}/cmake/ -%dir %{_libqt5_libdir}/cmake/Qt5Gui/ -%{_libqt5_libdir}/cmake/Qt5Gui/Qt5Gui_QPdfPlugin.cmake +%{_libqt5_libdir}/libQt5Pdf.so.* %files -n libQt5PdfWidgets5 %license LICENSE.* @@ -445,13 +441,13 @@ done %{_libqt5_includedir}/QtPdfWidgets/ %{_libqt5_libdir}/cmake/Qt5Pdf/ %{_libqt5_libdir}/cmake/Qt5PdfWidgets/ -%{_libqt5_libdir}/libQt5Pdf.so -%{_libqt5_libdir}/libQt5PdfWidgets.so %{_libqt5_libdir}/libQt5Pdf.prl +%{_libqt5_libdir}/libQt5Pdf.so %{_libqt5_libdir}/libQt5PdfWidgets.prl -%{_libqt5_libdir}/qt5/mkspecs/modules/qt_lib_pdf*.pri +%{_libqt5_libdir}/libQt5PdfWidgets.so %{_libqt5_libdir}/pkgconfig/Qt5Pdf.pc %{_libqt5_libdir}/pkgconfig/Qt5PdfWidgets.pc +%{_libqt5_libdir}/qt5/mkspecs/modules/qt_lib_pdf*.pri %files -n libqt5-qtpdf-examples %license LICENSE.* diff --git a/qtwebengine-everywhere-src-5.15.2.tar.xz b/qtwebengine-everywhere-src-5.15.2.tar.xz deleted file mode 100644 index 980a4e7..0000000 --- a/qtwebengine-everywhere-src-5.15.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c8afca0e43d84f7bd595436fbe4d13a5bbdb81ec5104d605085d07545b6f91e0 -size 280142544 diff --git a/qtwebengine-everywhere-src-5.15.3.tar.xz b/qtwebengine-everywhere-src-5.15.3.tar.xz new file mode 100644 index 0000000..fa15805 --- /dev/null +++ b/qtwebengine-everywhere-src-5.15.3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cde63cc3986d1324667b75bb1d7cd39a9e72555a321bdda3c5ca604e170868f6 +size 319611228 diff --git a/rtc-dont-use-h264.patch b/rtc-dont-use-h264.patch index 5755730..ddb2463 100644 --- a/rtc-dont-use-h264.patch +++ b/rtc-dont-use-h264.patch @@ -1,11 +1,11 @@ From: Fabian Vogt Subject: Don't require open264 when proprietary_codecs are supported -Index: qtwebengine-everywhere-src-5.15.1/src/3rdparty/chromium/third_party/webrtc/webrtc.gni -=================================================================== ---- qtwebengine-everywhere-src-5.15.1.orig/src/3rdparty/chromium/third_party/webrtc/webrtc.gni -+++ qtwebengine-everywhere-src-5.15.1/src/3rdparty/chromium/third_party/webrtc/webrtc.gni -@@ -149,8 +149,7 @@ declare_args() { +diff --git a/src/3rdparty/chromium/third_party/webrtc/webrtc.gni b/chromium/third_party/webrtc/webrtc.gni +index ca8acdbf259..36897a72aa8 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/webrtc.gni ++++ b/src/3rdparty/chromium/third_party/webrtc/webrtc.gni +@@ -151,8 +151,7 @@ declare_args() { # # Enabling H264 when building with MSVC is currently not supported, see # bugs.webrtc.org/9213#c13 for more info. @@ -13,13 +13,14 @@ Index: qtwebengine-everywhere-src-5.15.1/src/3rdparty/chromium/third_party/webrt - proprietary_codecs && !is_android && !is_ios && !(is_win && !is_clang) + rtc_use_h264 = false - # By default, use normal platform audio support or dummy audio, but don't - # use file-based audio playout and record. -Index: qtwebengine-everywhere-src-5.15.1/src/core/config/common.pri -=================================================================== ---- qtwebengine-everywhere-src-5.15.1.orig/src/core/config/common.pri -+++ qtwebengine-everywhere-src-5.15.1/src/core/config/common.pri -@@ -27,9 +27,6 @@ qtConfig(webengine-webrtc) { + # Enable this flag to make webrtc::Mutex be implemented by absl::Mutex. + rtc_use_absl_mutex = false + +diff --git a/src/core/config/common.pri b/src/core/config/common.pri +index d9d64e76..cd0fd120 100644 +--- a/src/core/config/common.pri ++++ b/src/core/config/common.pri +@@ -26,9 +26,6 @@ qtConfig(webengine-webrtc) { qtConfig(webengine-proprietary-codecs) { gn_args += proprietary_codecs=true ffmpeg_branding=\"Chrome\" diff --git a/sandbox-statx-futex_time64.patch b/sandbox-statx-futex_time64.patch index 25c407b..4dcd6b7 100644 --- a/sandbox-statx-futex_time64.patch +++ b/sandbox-statx-futex_time64.patch @@ -8,11 +8,11 @@ Return -ENOSYS instead to trigger the fallback in glibc. futex_time64 is also used internally in glibc, so handle that as well. The signature is identical where it matters. -Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -=================================================================== ---- qtwebengine-everywhere-src-5.15.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -+++ qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -@@ -190,6 +190,11 @@ ResultExpr EvaluateSyscallImpl(int fs_de +diff --git a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +index 3c67b124786..4772dc096f5 100644 +--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc ++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +@@ -194,6 +194,11 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, if (sysno == __NR_futex) return RestrictFutex(); @@ -24,9 +24,9 @@ Index: qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/sec if (sysno == __NR_set_robust_list) return Error(EPERM); -@@ -265,6 +270,12 @@ ResultExpr EvaluateSyscallImpl(int fs_de +@@ -257,6 +262,12 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, + return RestrictKillTarget(current_pid, sysno); } - #endif +#if defined(__NR_statx) + if (sysno == __NR_statx) { diff --git a/sync.profile b/sync.profile new file mode 100644 index 0000000..11de74c --- /dev/null +++ b/sync.profile @@ -0,0 +1,15 @@ +%modules = ( # path to module name map + "QtWebEngine" => "$basedir/src/webengine", + "QtWebEngineWidgets" => "$basedir/src/webenginewidgets", + "QtWebEngineCore" => "$basedir/src/core", + "QtPdf" => "$basedir/src/pdf", + "QtPdfWidgets" => "$basedir/src/pdfwidgets", +); +%moduleheaders = ( # restrict the module headers to those found in relative path + "QtWebEngine" => "api", + "QtWebEngineWidgets" => "api", + "QtWebEngineCore" => "api", + "QtPdf" => "api" +); +%classnames = ( +);