From 9acaf1e3887a05c093e82b18b8ad8e6f695f8d548c13234b695e82dc610494dc Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Wed, 10 Mar 2021 16:53:13 +0000
Subject: [PATCH 1/3] - Can't use system_vpx on Leap 15.3

OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtwebengine?expand=0&rev=22
---
 libqt5-qtwebengine.changes | 5 +++++
 libqt5-qtwebengine.spec    | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/libqt5-qtwebengine.changes b/libqt5-qtwebengine.changes
index d746d0e..f972a94 100644
--- a/libqt5-qtwebengine.changes
+++ b/libqt5-qtwebengine.changes
@@ -1,3 +1,8 @@
+-------------------------------------------------------------------
+Wed Mar 10 16:52:28 UTC 2021 - Fabian Vogt <fabian@ritter-vogt.de>
+
+- Can't use system_vpx on Leap 15.3
+
 -------------------------------------------------------------------
 Wed Feb 17 13:19:20 UTC 2021 - Fabian Vogt <fabian@ritter-vogt.de>
 
diff --git a/libqt5-qtwebengine.spec b/libqt5-qtwebengine.spec
index 75874bc..a0beae7 100644
--- a/libqt5-qtwebengine.spec
+++ b/libqt5-qtwebengine.spec
@@ -26,7 +26,7 @@
 %bcond_with system_harfbuzz
 %bcond_with system_icu
 %endif
-%if %{?suse_version} > 1500 || 0%{?sle_version} > 150200
+%if %{?suse_version} > 1500 || 0%{?sle_version} > 150300
 %bcond_without system_vpx
 %else
 %bcond_with system_vpx

From 0792994e04c603c4894be12cb08d1f1a9d785648a6d0d9251aba5dd859c12bc5 Mon Sep 17 00:00:00 2001
From: Luca Beltrame <lbeltrame@kde.org>
Date: Mon, 29 Mar 2021 04:47:36 +0000
Subject: [PATCH 2/3] 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 <allan.jensen@qt.io>
+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 <michael.bruning@qt.io>
+---
+ 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<net::ClientCertStore> 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<ShareGroupQtQuick> 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<QString>("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 @@
+<services>
+  <service name="tar_scm" mode="disabled">
+   <param name="changesgenerate">enable</param>
+   <param name="version">5.15.3</param>
+   <param name="url">git://code.qt.io/qt/qtwebengine.git</param>
+   <param name="scm">git</param>
+   <param name="filename">qtwebengine-everywhere-src</param>
+   <param name="revision">5.15.3</param>
+  </service>
+  <service name="recompress" mode="disabled">
+   <param name="file">*.tar</param>
+   <param name="compression">xz</param>
+  </service>
+  <service name="set_version" mode="disabled" />
+</services>
diff --git a/_servicedata b/_servicedata
new file mode 100644
index 0000000..2d18b48
--- /dev/null
+++ b/_servicedata
@@ -0,0 +1,4 @@
+<servicedata>
+<service name="tar_scm">
+                <param name="url">git://code.qt.io/qt/qtwebengine.git</param>
+              <param name="changesrevision">a059e7404a6db799f4da0ad696e65ae9c854b4b0</param></service></servicedata>
\ 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 <Kevin@tigcc.ticalc.org>
 # 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 <fcntl.h>
  #include <stddef.h>
  #include <stdint.h>
- #include <sys/syscall.h>
-@@ -353,6 +355,35 @@ intptr_t SIGSYSSchedHandler(const struct
+ #include <string.h>
+@@ -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 <bwiedemann suse de>
-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" <bwiedemann suse de>
+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 <frederik@algoriddim.com>
-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 <allan.jensen@qt.io>
-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 <juri.valdmann@qt.io>
----
- 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<int>(lhs.length())),
--      icu::UnicodeString(FALSE, rhs.data(), static_cast<int>(rhs.length())),
-+      icu::UnicodeString(false, lhs.data(), static_cast<int>(lhs.length())),
-+      icu::UnicodeString(false, rhs.data(), static_cast<int>(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<int32_t>(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<int32_t>(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<int32_t>(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<UChar> 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<int32_t>::max()
-                               ? static_cast<int32_t>(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<int32_t>::max()
-                               ? static_cast<int32_t>(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<int32_t>(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<icu::MessageFormat> Formatter::InitFormat(
-     base::string16 pattern = l10n_util::GetStringUTF16(pluralities.id);
-     UErrorCode error = U_ZERO_ERROR;
-     std::unique_ptr<icu::MessageFormat> 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 <fabian@ritter-vogt.de>
 
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 <Kevin@tigcc.ticalc.org>
 #
 # 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 <fabian@ritter-vogt.de>
 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 = (
+);

From 89f4028e6d91949278e6419f55b6f95b68b54f9c65cab05c9be10d0dbce416df Mon Sep 17 00:00:00 2001
From: Christophe Giboudeaux <christophe@krop.fr>
Date: Mon, 29 Mar 2021 11:06:46 +0000
Subject: [PATCH 3/3] remove the URL from 'Source'

OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtwebengine?expand=0&rev=24
---
 libqt5-qtwebengine.spec | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libqt5-qtwebengine.spec b/libqt5-qtwebengine.spec
index 93c98cc..004483f 100644
--- a/libqt5-qtwebengine.spec
+++ b/libqt5-qtwebengine.spec
@@ -39,7 +39,7 @@ URL:            https://www.qt.io
 %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
+Source:         %{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