diff --git a/0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch b/0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch new file mode 100644 index 0000000..ba6f3af --- /dev/null +++ b/0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch @@ -0,0 +1,36 @@ +From 127e467e5ff86d5aba085c0e3410b3198d29b61a Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Fri, 13 Nov 2020 15:51:50 +0100 +Subject: [PATCH] Avoid SIGABRT on platform plugin initialization failure + +If all platform plugins failed to initialize, Qt calls qFatal which in turn +calls abort. This causes SIGABRT and may generate a coredump. + +In the most common case it's because the connection to the display (Wayland, +X11, whatever) is missing or failed, and a coredump will not help analyzing +that at all. + +https://bugreports.qt.io/browse/QTBUG-88491 +--- + src/gui/kernel/qguiapplication.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp +index a95331e246..098c69d3c1 100644 +--- a/src/gui/kernel/qguiapplication.cpp ++++ b/src/gui/kernel/qguiapplication.cpp +@@ -1251,9 +1251,9 @@ static void init_platform(const QString &pluginNamesWithArguments, const QString + if (!QLibraryInfo::isDebugBuild() && !GetConsoleWindow()) + MessageBox(0, (LPCTSTR)fatalMessage.utf16(), (LPCTSTR)(QCoreApplication::applicationName().utf16()), MB_OK | MB_ICONERROR); + #endif // Q_OS_WIN && !Q_OS_WINRT +- qFatal("%s", qPrintable(fatalMessage)); ++ qCritical("%s", qPrintable(fatalMessage)); + +- return; ++ _exit(1); + } + + // Many platforms have created QScreens at this point. Finish initializing +-- +2.25.1 + diff --git a/0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch b/0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch deleted file mode 100644 index 2898de0..0000000 --- a/0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch +++ /dev/null @@ -1,98 +0,0 @@ -From b885b4a189db2889f3f934a18a9ffc17a9c9077f Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Sun, 20 Sep 2020 18:19:10 +0200 -Subject: [PATCH] Revert "Emit QScreen::(availableG|g)eometryChanged() on - logical DPI change" - -This reverts commit 370289bef68d8505b66cb27150a3f596e23c5ed3. ---- - src/gui/kernel/qguiapplication.cpp | 10 ++++++++-- - src/gui/kernel/qscreen.cpp | 24 +++--------------------- - src/gui/kernel/qscreen_p.h | 2 -- - 3 files changed, 11 insertions(+), 25 deletions(-) - -diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp -index 239a78313c..2eee145f27 100644 ---- a/src/gui/kernel/qguiapplication.cpp -+++ b/src/gui/kernel/qguiapplication.cpp -@@ -3178,7 +3178,14 @@ void QGuiApplicationPrivate::processScreenGeometryChange(QWindowSystemInterfaceP - updateFilteredScreenOrientation(s); - } - -- s->d_func()->emitGeometryChangeSignals(geometryChanged, availableGeometryChanged); -+ if (availableGeometryChanged) -+ emit s->availableGeometryChanged(s->availableGeometry()); -+ -+ if (geometryChanged || availableGeometryChanged) { -+ const auto siblings = s->virtualSiblings(); -+ for (QScreen* sibling : siblings) -+ emit sibling->virtualGeometryChanged(sibling->virtualGeometry()); -+ } - - resetCachedDevicePixelRatio(); - } -@@ -3198,7 +3205,6 @@ void QGuiApplicationPrivate::processScreenLogicalDotsPerInchChange(QWindowSystem - s->d_func()->logicalDpi = QDpi(e->dpiX, e->dpiY); - - emit s->logicalDotsPerInchChanged(s->logicalDotsPerInch()); -- s->d_func()->updateGeometriesWithSignals(); - - resetCachedDevicePixelRatio(); - } -diff --git a/src/gui/kernel/qscreen.cpp b/src/gui/kernel/qscreen.cpp -index df628fcc73..d5a4b7c027 100644 ---- a/src/gui/kernel/qscreen.cpp -+++ b/src/gui/kernel/qscreen.cpp -@@ -77,33 +77,15 @@ QScreen::QScreen(QPlatformScreen *screen) - d->setPlatformScreen(screen); - } - --void QScreenPrivate::updateGeometriesWithSignals() --{ -- const QRect oldGeometry = geometry; -- const QRect oldAvailableGeometry = availableGeometry; -- updateHighDpi(); -- emitGeometryChangeSignals(oldGeometry != geometry, oldAvailableGeometry != availableGeometry); --} -- --void QScreenPrivate::emitGeometryChangeSignals(bool geometryChanged, bool availableGeometryChanged) --{ -- Q_Q(QScreen); -- if (availableGeometryChanged) -- emit q->availableGeometryChanged(availableGeometry); -- -- if (geometryChanged || availableGeometryChanged) { -- const auto siblings = q->virtualSiblings(); -- for (QScreen* sibling : siblings) -- emit sibling->virtualGeometryChanged(sibling->virtualGeometry()); -- } --} -- - void QScreenPrivate::setPlatformScreen(QPlatformScreen *screen) - { - Q_Q(QScreen); - platformScreen = screen; - platformScreen->d_func()->screen = q; - orientation = platformScreen->orientation(); -+ geometry = platformScreen->deviceIndependentGeometry(); -+ availableGeometry = QHighDpi::fromNative(platformScreen->availableGeometry(), -+ QHighDpiScaling::factor(platformScreen), geometry.topLeft()); - - logicalDpi = QPlatformScreen::overrideDpi(platformScreen->logicalDpi()); - -diff --git a/src/gui/kernel/qscreen_p.h b/src/gui/kernel/qscreen_p.h -index 7da542c25e..e5988ff829 100644 ---- a/src/gui/kernel/qscreen_p.h -+++ b/src/gui/kernel/qscreen_p.h -@@ -72,8 +72,6 @@ public: - } - - void updatePrimaryOrientation(); -- void updateGeometriesWithSignals(); -- void emitGeometryChangeSignals(bool geometryChanged, bool availableGeometryChanged); - - QPlatformScreen *platformScreen = nullptr; - --- -2.25.1 - diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 30215f5..ac9add5 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Fri Nov 20 12:08:44 UTC 2020 - Fabian Vogt + +- Update to 5.15.2: + * New bugfix release + * For more details please see: + http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.15.2/?h=5.15.2 +- Drop patches, now upstream: + * 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch +- Pass -confirm-license option, drop duplicates +- BuildRequire xcb-util + +------------------------------------------------------------------- +Fri Nov 13 15:50:40 UTC 2020 - Fabian Vogt + +- Add patch to avoid coredumps with missing display: + * 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch + ------------------------------------------------------------------- Wed Oct 28 13:22:24 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 2eb96f1..71105b3 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.15.1 +Version: 5.15.2 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.1 -%define so_version 5.15.1 -%define tar_version qtbase-everywhere-src-5.15.1 +%define real_version 5.15.2 +%define so_version 5.15.2 +%define tar_version qtbase-everywhere-src-5.15.2 Source: https://download.qt.io/official_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes @@ -57,6 +57,8 @@ Source99: libqt5-qtbase-rpmlintrc Patch1: 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch Patch2: fix-build-openssl-1.1.0.patch Patch3: 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch +# Proposed: https://bugreports.qt.io/browse/QTBUG-88491 +Patch4: 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch # PATCH-FIX-OPENSUSE disable-rc4-ciphers-bnc865241.diff bnc#865241-- Exclude rc4 ciphers from being used by default Patch6: disable-rc4-ciphers-bnc865241.diff Patch8: tell-the-truth-about-private-api.patch @@ -67,7 +69,6 @@ Patch12: 0001-Add-remote-print-queue-support.patch # PATCH-FIX-OPENSUSE Patch21: 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch Patch24: fix-fixqt4headers.patch -Patch25: 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch # patches 1000-2000 and above from upstream 5.15 branch # # patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 @@ -117,6 +118,7 @@ BuildRequires: pkgconfig(xcb-render) BuildRequires: pkgconfig(xcb-shape) BuildRequires: pkgconfig(xcb-shm) BuildRequires: pkgconfig(xcb-sync) +BuildRequires: pkgconfig(xcb-util) BuildRequires: pkgconfig(xcb-xfixes) BuildRequires: pkgconfig(xcb-xinerama) BuildRequires: pkgconfig(xcb-xkb) @@ -865,6 +867,7 @@ echo yes | ./configure \ -accessibility \ -no-strip \ -opensource \ + -confirm-license \ -no-separate-debug-info \ -force-debug-info \ -shared \ @@ -888,7 +891,6 @@ echo yes | ./configure \ -glib \ -sctp \ -system-sqlite \ - -no-sql-mysql \ %if %journald -journald \ %endif @@ -909,7 +911,6 @@ echo yes | ./configure \ -plugin-sql-mysql -I/usr/include/mysql/ \ -qpa "xcb;wayland" \ -no-feature-relocatable \ - -v \ QMAKE_CFLAGS+="$CFLAGS" \ QMAKE_CXXFLAGS+="$CXXFLAGS" @@ -1302,7 +1303,6 @@ install -Dm644 %{SOURCE4} %{buildroot}%{libqt5_datadir}/qtlogging.ini %doc *.txt %{libqt5_libdir}/libQt5Bootstrap.a %{libqt5_libdir}/libQt5Bootstrap.prl -%{libqt5_libdir}/cmake/Qt5Bootstrap/ %files -n libQt5OpenGLExtensions-devel-static %license LICENSE.* diff --git a/qtbase-everywhere-src-5.15.1.tar.xz b/qtbase-everywhere-src-5.15.1.tar.xz deleted file mode 100644 index e8ac513..0000000 --- a/qtbase-everywhere-src-5.15.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:33960404d579675b7210de103ed06a72613bfc4305443e278e2d32a3eb1f3d8c -size 50153132 diff --git a/qtbase-everywhere-src-5.15.2.tar.xz b/qtbase-everywhere-src-5.15.2.tar.xz new file mode 100644 index 0000000..b8bea25 --- /dev/null +++ b/qtbase-everywhere-src-5.15.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:909fad2591ee367993a75d7e2ea50ad4db332f05e1c38dd7a5a274e156a4e0f8 +size 50179672