forked from pool/libqt5-qtwebengine
Accepting request 796191 from home:Vogtinator:qt5.15
- Refresh fix1163766.patch - Add fix1163766.patch to fix opensuse-welcome on i686 (boo#1163766) * QTBUG-81574.patch - Fix a deadlock causing audio/video playback to fail (boo#1163744): * QTBUG-82186.patch - Fix an issue with selections breaking replying in KMail: * QTBUG-81574.patch OBS-URL: https://build.opensuse.org/request/show/796191 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtwebengine?expand=0&rev=7
This commit is contained in:
parent
4209cab104
commit
5dd6614659
48
QTBUG-82186.patch
Normal file
48
QTBUG-82186.patch
Normal file
@ -0,0 +1,48 @@
|
||||
From c729361f9f8f6c0602d401d5e230ba63ab11a682 Mon Sep 17 00:00:00 2001
|
||||
From: Jüri Valdmann <juri.valdmann@qt.io>
|
||||
Date: Wed, 19 Feb 2020 14:15:34 +0100
|
||||
Subject: [PATCH] Fix recursive deadlock in sandbox::InitLibcLocaltimeFunctions
|
||||
|
||||
QtWebEngineProcess overrides the C library's localtime* functions by redefining
|
||||
the symbols in src/process/main.cpp and then using dlsym(RTLD_NEXT, ...) to
|
||||
fetch the original symbols in //sandbox/linux/services/libc_interceptor.cc. The
|
||||
functions InitLibcLocaltimeFunctions{,Impl} use pthread_once to guarantee that
|
||||
this symbol resolution happens only once.
|
||||
|
||||
If dlsym fails, for example because the C library is earlier in the search path
|
||||
than QtWebEngineCore, then InitLibcLocaltimeFunctionsImpl tries to print an
|
||||
error message with LOG(ERROR). However, printing a log message involves also
|
||||
printing the timestamp in the local time zone, using, of course, localtime_r.
|
||||
Thus, InitLibcLocaltimeFunctions depends on localtime_r depends on
|
||||
InitLibcLocaltimeFunctions, and we get a deadlock due to the recursive use of
|
||||
pthread_once.
|
||||
|
||||
This deadlock happens only for utility processes and not for zygotes or
|
||||
renderers, since the latter proxy the localtime* calls back to the main process.
|
||||
(See service_manager::ZygoteMain, where the first function call is to
|
||||
sandbox::SetAmZygoteOrRenderer, and compare with content::UtilityMain)
|
||||
|
||||
Task-number: QTBUG-82186
|
||||
Change-Id: I32009e8482b2634c47082a4c89393dc61c22507e
|
||||
---
|
||||
|
||||
diff --git a/src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc b/chromium/sandbox/linux/services/libc_interceptor.cc
|
||||
index ed4dd02..fad77f9 100644
|
||||
--- a/src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc
|
||||
+++ b/src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc
|
||||
@@ -199,6 +199,7 @@
|
||||
g_libc_funcs->localtime64_r =
|
||||
reinterpret_cast<LocaltimeRFunction>(dlsym(RTLD_NEXT, "localtime64_r"));
|
||||
|
||||
+#if !defined(TOOLKIT_QT)
|
||||
if (!g_libc_funcs->localtime || !g_libc_funcs->localtime_r) {
|
||||
// https://bugs.chromium.org/p/chromium/issues/detail?id=16800
|
||||
//
|
||||
@@ -210,6 +211,7 @@
|
||||
" time related functions to misbehave. "
|
||||
"https://bugs.chromium.org/p/chromium/issues/detail?id=16800";
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (!g_libc_funcs->localtime)
|
||||
g_libc_funcs->localtime = gmtime;
|
56
fix1163766.patch
Normal file
56
fix1163766.patch
Normal file
@ -0,0 +1,56 @@
|
||||
Author Bernhard M. Wiedemann <bwiedemann suse de>
|
||||
Date: 2020-04-07
|
||||
|
||||
https://bugzilla.opensuse.org/show_bug.cgi?id=1163766
|
||||
|
||||
seccomp filters disallow a new kernel syscall to get time
|
||||
used on i586
|
||||
|
||||
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
|
||||
@@ -1710,5 +1710,13 @@
|
||||
#define __NR_clone3 435
|
||||
#endif
|
||||
|
||||
+#if !defined(__NR_clock_gettime64)
|
||||
+#define __NR_clock_gettime64 403
|
||||
+#endif
|
||||
+
|
||||
+#if !defined(__NR_clock_nanosleep_time64)
|
||||
+#define __NR_clock_nanosleep_time64 407
|
||||
+#endif
|
||||
+
|
||||
#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
|
||||
#if defined(__NR_clock_gettime)
|
||||
case __NR_clock_gettime:
|
||||
#endif
|
||||
+#if defined(__NR_clock_gettime64)
|
||||
+ case __NR_clock_gettime64:
|
||||
+#endif
|
||||
return Allow();
|
||||
// https://crbug.com/991435
|
||||
#if defined(__NR_getrusage)
|
@ -4,6 +4,12 @@ Tue Apr 14 06:47:59 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
- Update to 5.15.0-beta3:
|
||||
* New bugfix release
|
||||
* No changelog available
|
||||
- Refresh fix1163766.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 9 08:21:02 UTC 2020 - Bernhard Wiedemann <bwiedemann@suse.com>
|
||||
|
||||
- Add fix1163766.patch to fix opensuse-welcome on i686 (boo#1163766)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 30 13:49:40 UTC 2020 - Fabian Vogt <fvogt@suse.com>
|
||||
@ -26,6 +32,19 @@ Fri Feb 28 09:59:24 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
* No changelog available
|
||||
- Drop patches, now upstream:
|
||||
* fix-missing-designerplugin.patch
|
||||
* QTBUG-81574.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 21 13:36:31 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Fix a deadlock causing audio/video playback to fail (boo#1163744):
|
||||
* QTBUG-82186.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 21 09:25:44 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Fix an issue with selections breaking replying in KMail:
|
||||
* QTBUG-81574.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 19 10:17:00 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
@ -53,8 +53,11 @@ Patch1: armv6-ffmpeg-no-thumb.patch
|
||||
Patch2: disable-gpu-when-using-nouveau-boo-1005323.diff
|
||||
# PATCH-FIX-UPSTREAM 0001-fix-build-after-y2038-changes-in-glibc.patch
|
||||
Patch3: 0001-fix-build-after-y2038-changes-in-glibc.patch
|
||||
# PATCH-FIX-UPSTREAM https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/291216
|
||||
Patch5: QTBUG-82186.patch
|
||||
# PATCH-FIX-OPENSUSE
|
||||
Patch6: some-more-includes-gcc10.patch
|
||||
Patch7: fix1163766.patch
|
||||
# http://www.chromium.org/blink not ported to PowerPC
|
||||
ExcludeArch: ppc ppc64 ppc64le s390 s390x
|
||||
# Try to fix i586 MemoryErrors with rpmlint
|
||||
|
Loading…
Reference in New Issue
Block a user