5.15.2
This commit is contained in:
parent
6f0b990f87
commit
8525318401
@ -48,8 +48,8 @@ BuildRequires: pkgconfig(libsystemd)
|
|||||||
|
|
||||||
Name: qt5-qtbase
|
Name: qt5-qtbase
|
||||||
Summary: Qt5 - QtBase components
|
Summary: Qt5 - QtBase components
|
||||||
Version: 5.15.1
|
Version: 5.15.2
|
||||||
Release: 7%{?dist}
|
Release: 1%{?dist}
|
||||||
|
|
||||||
# See LGPL_EXCEPTIONS.txt, for exception details
|
# See LGPL_EXCEPTIONS.txt, for exception details
|
||||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
||||||
@ -129,8 +129,6 @@ Patch90: %{name}-gcc11.patch
|
|||||||
## upstream patches
|
## upstream patches
|
||||||
Patch100: qtbase-emit-qscreen-geometry-changed-when-logical-dpi-changes.patch
|
Patch100: qtbase-emit-qscreen-geometry-changed-when-logical-dpi-changes.patch
|
||||||
|
|
||||||
Patch101: qtbase-QTBUG-86319.patch
|
|
||||||
|
|
||||||
# Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires.
|
# Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires.
|
||||||
# Those themes are there for platform integration. If the required libraries are
|
# Those themes are there for platform integration. If the required libraries are
|
||||||
# not there, the platform to integrate with isn't either. Then Qt will just
|
# not there, the platform to integrate with isn't either. Then Qt will just
|
||||||
@ -391,7 +389,6 @@ Qt5 libraries used for drawing widgets and OpenGL items.
|
|||||||
|
|
||||||
## upstream patches
|
## upstream patches
|
||||||
%patch100 -p1 -b .emit-qscreen-geometry-changed-when-logical-dpi-changes
|
%patch100 -p1 -b .emit-qscreen-geometry-changed-when-logical-dpi-changes
|
||||||
%patch101 -p1
|
|
||||||
|
|
||||||
# move some bundled libs to ensure they're not accidentally used
|
# move some bundled libs to ensure they're not accidentally used
|
||||||
pushd src/3rdparty
|
pushd src/3rdparty
|
||||||
@ -536,7 +533,7 @@ translationdir=%{_qt5_translationdir}
|
|||||||
|
|
||||||
Name: Qt5
|
Name: Qt5
|
||||||
Description: Qt5 Configuration
|
Description: Qt5 Configuration
|
||||||
Version: 5.15.1
|
Version: 5.15.2
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# rpm macros
|
# rpm macros
|
||||||
@ -1049,6 +1046,9 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Nov 20 09:27:41 CET 2020 Jan Grulich <jgrulich@redhat.com> - 5.15.2-1
|
||||||
|
- 5.15.2
|
||||||
|
|
||||||
* Tue Nov 03 2020 Sandro Mani <manisandro@gmail.com> - 5.15.1-7
|
* Tue Nov 03 2020 Sandro Mani <manisandro@gmail.com> - 5.15.1-7
|
||||||
- Backport upstream fix for QTBUG-86319
|
- Backport upstream fix for QTBUG-86319
|
||||||
|
|
||||||
|
@ -1,73 +0,0 @@
|
|||||||
From a82032351c921c3d5d57122aca57b47f83f9b9d1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thiago Macieira <thiago.macieira@intel.com>
|
|
||||||
Date: Thu, 10 Sep 2020 13:30:59 -0700
|
|
||||||
Subject: [PATCH] forkfd/Linux: ask clone() to use the SIGCHLD as the
|
|
||||||
termination signal
|
|
||||||
|
|
||||||
Because of these lines in the Linux kernel (kernel/fork.c, see [1][3]):
|
|
||||||
|
|
||||||
if (clone_flags & CLONE_VFORK)
|
|
||||||
trace = PTRACE_EVENT_VFORK;
|
|
||||||
else if (args->exit_signal != SIGCHLD)
|
|
||||||
trace = PTRACE_EVENT_CLONE;
|
|
||||||
else
|
|
||||||
trace = PTRACE_EVENT_FORK;
|
|
||||||
|
|
||||||
Without CLONE_VFORK (which we can't use), if the exit signal isn't
|
|
||||||
SIGCHLD, the debugger will get a PTRACE_EVENT_CLONE, which makes it
|
|
||||||
think the process we're starting is a thread, not a new process. Both
|
|
||||||
gdb and lldb remain attached to the child and when it later performs an
|
|
||||||
execve(), they get mightily confused. See gdb bug report[5].
|
|
||||||
|
|
||||||
The idea of not having an exit_signal was so that no SIGCHLD would be
|
|
||||||
delivered to the parent process in the first place. That way, some
|
|
||||||
misguided SIGCHLD handler (*cough* GLib *cough*) wouldn't reap our
|
|
||||||
processes. Unfortunately, what I didn't realize was that the kernel
|
|
||||||
sends SIGCHLD anyway (see [2][4]), so this defensive measure didn't
|
|
||||||
actually work. Consequently, we can pass SIGCHLD to clone() and get the
|
|
||||||
debuggers working again.
|
|
||||||
|
|
||||||
[ChangeLog][Linux] Fixed an issue that would cause debugging a Qt
|
|
||||||
application that uses QProcess to confuse both gdb and lldb if
|
|
||||||
the Linux kernel was version 5.4 or higher. Behavior outside of
|
|
||||||
a debugging session was not affected.
|
|
||||||
|
|
||||||
[1] https://code.woboq.org/linux/linux/kernel/fork.c.html#_do_fork
|
|
||||||
[2] https://code.woboq.org/linux/linux/kernel/signal.c.html#do_notify_parent
|
|
||||||
[3] https://elixir.bootlin.com/linux/v5.8/source/kernel/fork.c#L2432
|
|
||||||
[4] https://elixir.bootlin.com/linux/v5.8/source/kernel/signal.c#L1925
|
|
||||||
[5] https://sourceware.org/bugzilla/show_bug.cgi?id=26562
|
|
||||||
|
|
||||||
Fixes: QTBUG-86319
|
|
||||||
Change-Id: I2fc68c725ba649218bd9fffd1633863613537d42
|
|
||||||
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
|
|
||||||
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
|
|
||||||
Reviewed-by: hjk <hjk@qt.io>
|
|
||||||
(cherry picked from commit d1fc991c6e3c45a5f93c925d49e3fe77ce6ce455)
|
|
||||||
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
||||||
---
|
|
||||||
src/3rdparty/forkfd/forkfd_linux.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/3rdparty/forkfd/forkfd_linux.c b/src/3rdparty/forkfd/forkfd_linux.c
|
|
||||||
index 523fbca3ccc..ffe0e9a5e24 100644
|
|
||||||
--- a/src/3rdparty/forkfd/forkfd_linux.c
|
|
||||||
+++ b/src/3rdparty/forkfd/forkfd_linux.c
|
|
||||||
@@ -147,7 +147,7 @@ int system_forkfd(int flags, pid_t *ppid, int *system)
|
|
||||||
}
|
|
||||||
|
|
||||||
*system = 1;
|
|
||||||
- unsigned long cloneflags = CLONE_PIDFD;
|
|
||||||
+ unsigned long cloneflags = CLONE_PIDFD | SIGCHLD;
|
|
||||||
pid = sys_clone(cloneflags, &pidfd);
|
|
||||||
if (ppid)
|
|
||||||
*ppid = pid;
|
|
||||||
@@ -171,7 +171,7 @@ int system_forkfd_wait(int ffd, struct forkfd_info *info, int ffdoptions, struct
|
|
||||||
{
|
|
||||||
siginfo_t si;
|
|
||||||
int ret;
|
|
||||||
- int options = __WALL | convertForkfdWaitFlagsToWaitFlags(ffdoptions);
|
|
||||||
+ int options = convertForkfdWaitFlagsToWaitFlags(ffdoptions);
|
|
||||||
|
|
||||||
if ((options & WNOHANG) == 0) {
|
|
||||||
/* check if the file descriptor is non-blocking */
|
|
Loading…
Reference in New Issue
Block a user