From f7e7f0965bd9e4be4fc1fd10c2e0086e5864d8be935f8b640290dca49e7acfe9 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Mon, 30 Sep 2019 13:17:44 +0000 Subject: [PATCH 1/8] OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.14/libqt5-qtbase?expand=0&rev=1 From 233b64e6112c43f3ac18ca99f5742335587b16790dd7fec6fa3caeba68dfdf83 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Sat, 5 Oct 2019 16:00:52 +0000 Subject: [PATCH 2/8] Accepting request 734738 from home:Vogtinator:qt5.14 Qt 5.14 Alpha OBS-URL: https://build.opensuse.org/request/show/734738 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.14/libqt5-qtbase?expand=0&rev=2 --- 0001-Add-remote-print-queue-support.patch | 34 +++++-------- ...-files-for-libdir-different-from-lib.patch | 37 -------------- ...-of-QDockWidget-when-it-gets-undocke.patch | 51 ------------------- ...hods-definition-without-declaration-.patch | 41 --------------- ...ize-QXcbScreen-s-pixelDensity-values.patch | 32 ------------ ...ove-debug-print-on-old-tslib-version.patch | 33 ++++++++++++ ...en-s-physical-DPI-as-logical-DPI-unl.patch | 36 ------------- libqt5-qtbase.changes | 27 ++++++++++ libqt5-qtbase.spec | 35 ++++++------- qtbase-everywhere-src-5.13.1.tar.xz | 3 -- qtbase-everywhere-src-5.14.0-alpha.tar.xz | 3 ++ 11 files changed, 92 insertions(+), 240 deletions(-) delete mode 100644 0001-Fix-CMake-config-files-for-libdir-different-from-lib.patch delete mode 100644 0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch delete mode 100644 0001-Fix-qfloat16-methods-definition-without-declaration-.patch delete mode 100644 0001-Sanitize-QXcbScreen-s-pixelDensity-values.patch create mode 100644 0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch delete mode 100644 0002-xcb-Use-the-screen-s-physical-DPI-as-logical-DPI-unl.patch delete mode 100644 qtbase-everywhere-src-5.13.1.tar.xz create mode 100644 qtbase-everywhere-src-5.14.0-alpha.tar.xz diff --git a/0001-Add-remote-print-queue-support.patch b/0001-Add-remote-print-queue-support.patch index 9325e08..a175763 100644 --- a/0001-Add-remote-print-queue-support.patch +++ b/0001-Add-remote-print-queue-support.patch @@ -18,10 +18,10 @@ a Change-Id: Ib70715d331e8f380a3c9039011bb8521986652aa src/plugins/printsupport/cups/qppdprintdevice.cpp | 33 +++++++- 4 files changed, 160 insertions(+), 11 deletions(-) -Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintengine.cpp +Index: qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintengine.cpp =================================================================== ---- qtbase-everywhere-src-5.12.1.orig/src/plugins/printsupport/cups/qcupsprintengine.cpp -+++ qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintengine.cpp +--- qtbase-everywhere-src-5.14.0-alpha.orig/src/plugins/printsupport/cups/qcupsprintengine.cpp ++++ qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintengine.cpp @@ -48,6 +48,7 @@ #include #include "private/qcups_p.h" // Only needed for PPK_CupsOptions @@ -72,10 +72,10 @@ Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintengi QFile::remove(tempFile); } -Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersupport.cpp +Index: qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintersupport.cpp =================================================================== ---- qtbase-everywhere-src-5.12.1.orig/src/plugins/printsupport/cups/qcupsprintersupport.cpp -+++ qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersupport.cpp +--- qtbase-everywhere-src-5.14.0-alpha.orig/src/plugins/printsupport/cups/qcupsprintersupport.cpp ++++ qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintersupport.cpp @@ -61,6 +61,35 @@ # include #endif @@ -206,10 +206,10 @@ Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersu + + QT_END_NAMESPACE -Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersupport_p.h +Index: qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintersupport_p.h =================================================================== ---- qtbase-everywhere-src-5.12.1.orig/src/plugins/printsupport/cups/qcupsprintersupport_p.h -+++ qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersupport_p.h +--- qtbase-everywhere-src-5.14.0-alpha.orig/src/plugins/printsupport/cups/qcupsprintersupport_p.h ++++ qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintersupport_p.h @@ -56,6 +56,8 @@ #include @@ -234,19 +234,11 @@ Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersu }; QT_END_NAMESPACE -Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qppdprintdevice.cpp +Index: qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qppdprintdevice.cpp =================================================================== ---- qtbase-everywhere-src-5.12.1.orig/src/plugins/printsupport/cups/qppdprintdevice.cpp -+++ qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qppdprintdevice.cpp -@@ -41,6 +41,7 @@ - - #include "qcupsprintersupport_p.h" - -+#include "qcupsprintersupport_p.h" - #include - #include - -@@ -65,10 +66,36 @@ QPpdPrintDevice::QPpdPrintDevice(const Q +--- qtbase-everywhere-src-5.14.0-alpha.orig/src/plugins/printsupport/cups/qppdprintdevice.cpp ++++ qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qppdprintdevice.cpp +@@ -65,10 +65,36 @@ QPpdPrintDevice::QPpdPrintDevice(const Q if (parts.size() > 1) m_cupsInstance = parts.at(1).toUtf8(); diff --git a/0001-Fix-CMake-config-files-for-libdir-different-from-lib.patch b/0001-Fix-CMake-config-files-for-libdir-different-from-lib.patch deleted file mode 100644 index 590d356..0000000 --- a/0001-Fix-CMake-config-files-for-libdir-different-from-lib.patch +++ /dev/null @@ -1,37 +0,0 @@ -From dc5362ac7d766a9c1b4ae328bc6ce8a1aa332773 Mon Sep 17 00:00:00 2001 -From: Joerg Bornemann -Date: Fri, 6 Sep 2019 10:54:44 +0200 -Subject: [PATCH] Fix CMake config files for -libdir different from "lib" - -When Qt was configured with -libdir different from "lib", one could not -build with CMake whenever a static lib was pulled in (e.g. uitools). - -Do not hard-code "/lib" but use the correct variable also for static -libraries. - -Fixes: QTBUG-76255 -Change-Id: I28c6861752e29e461247628d2b1f8a9ec32f0790 ---- - mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in -index d4fd057682..f4a34d6e48 100644 ---- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in -+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in -@@ -53,7 +53,11 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura - set(_lib_deps) - set(_link_flags) - -- get_filename_component(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib\" ABSOLUTE) -+!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) -+ set(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}\") -+!!ELSE -+ set(_qt5_install_libs \"$${CMAKE_LIB_DIR}\") -+!!ENDIF - - if(EXISTS \"${prl_file_location}\") - file(STRINGS \"${prl_file_location}\" _prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE[ \\t]*=\") --- -2.22.0 - diff --git a/0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch b/0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch deleted file mode 100644 index 79eadec..0000000 --- a/0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch +++ /dev/null @@ -1,51 +0,0 @@ -From a69373ff735e1ae3e14b5a05a08e4aebf9216185 Mon Sep 17 00:00:00 2001 -From: Dmitry Kazakov -Date: Thu, 6 Dec 2018 16:16:27 +0300 -Subject: [PATCH 1/3] Fix notification of QDockWidget when it gets undocked - -Before the patch the notification was emitted only when the docker -was attached to the panel or changed a position on it. - -It looks like the old behavior was documented in a unittest, -so this patch might actually be a "behavior change". - -Change-Id: Id3ffbd2018a8e68844d174328dd1c4ceb7fa01d3 -Reviewed-by: Richard Moe Gustavsen ---- - src/widgets/widgets/qdockwidget.cpp | 2 ++ - tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp | 6 +++++- - 2 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp -index 4041c730b8..f98e0e44db 100644 ---- a/src/widgets/widgets/qdockwidget.cpp -+++ b/src/widgets/widgets/qdockwidget.cpp -@@ -1182,6 +1182,8 @@ void QDockWidgetPrivate::setWindowState(bool floating, bool unplug, const QRect - QMainWindowLayout *mwlayout = qt_mainwindow_layout_from_dock(q); - if (mwlayout) - emit q->dockLocationChanged(mwlayout->dockWidgetArea(q)); -+ } else { -+ emit q->dockLocationChanged(Qt::NoDockWidgetArea); - } - } - -diff --git a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp -index f8ce6a2c0a..625116654d 100644 ---- a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp -+++ b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp -@@ -670,7 +670,11 @@ void tst_QDockWidget::dockLocationChanged() - spy.clear(); - - dw.setFloating(true); -- QTest::qWait(100); -+ QTRY_COMPARE(spy.count(), 1); -+ QCOMPARE(qvariant_cast(spy.at(0).at(0)), -+ Qt::NoDockWidgetArea); -+ spy.clear(); -+ - dw.setFloating(false); - QTRY_COMPARE(spy.count(), 1); - QCOMPARE(qvariant_cast(spy.at(0).at(0)), --- -2.21.0 - diff --git a/0001-Fix-qfloat16-methods-definition-without-declaration-.patch b/0001-Fix-qfloat16-methods-definition-without-declaration-.patch deleted file mode 100644 index 6bd00ba..0000000 --- a/0001-Fix-qfloat16-methods-definition-without-declaration-.patch +++ /dev/null @@ -1,41 +0,0 @@ -From edc15323b4ef13a2a58ba4bebd46a78449b628ee Mon Sep 17 00:00:00 2001 -From: Antonio Larrosa -Date: Fri, 21 Dec 2018 12:33:39 +0100 -Subject: [PATCH] Fix qfloat16 methods definition without declaration when - using Q_QDOC - -This fixes qtdoc failing to build on i586 because of an assertion in -libclang since Q_QDOC is defined and thus the declaration of the -qfloat16(float) constructor and operator float() are removed, thus -their definitions should be removed too, which is what this patch -does. - -This patch was done together with Michal Srb . - -Fixes: QTBUG-72725 - -Change-Id: I6424873425d46345e09f411f9ce88f2520825da4 ---- - src/corelib/global/qfloat16.h | 2 ++ - 1 file changed, 2 insertions(+) - -Index: qtbase-everywhere-src-5.12.1/src/corelib/global/qfloat16.h -=================================================================== ---- qtbase-everywhere-src-5.12.1.orig/src/corelib/global/qfloat16.h -+++ qtbase-everywhere-src-5.12.1/src/corelib/global/qfloat16.h -@@ -207,6 +207,7 @@ QF16_MAKE_ARITH_OP_INT(*) - QF16_MAKE_ARITH_OP_INT(/) - #undef QF16_MAKE_ARITH_OP_INT - -+#ifndef Q_QDOC - QT_WARNING_PUSH - QT_WARNING_DISABLE_CLANG("-Wfloat-equal") - QT_WARNING_DISABLE_GCC("-Wfloat-equal") -@@ -254,6 +255,7 @@ Q_REQUIRED_RESULT inline bool qFuzzyIsNu - { - return qAbs(static_cast(f)) <= 0.001f; - } -+#endif - - QT_END_NAMESPACE - diff --git a/0001-Sanitize-QXcbScreen-s-pixelDensity-values.patch b/0001-Sanitize-QXcbScreen-s-pixelDensity-values.patch deleted file mode 100644 index 8689eff..0000000 --- a/0001-Sanitize-QXcbScreen-s-pixelDensity-values.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 75bb439f45608b21781d18170a88aaa2aedefb04 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Fri, 9 Mar 2018 18:28:00 +0100 -Subject: [PATCH 1/2] Sanitize QXcbScreen's pixelDensity values - -When the monitor's EDID contains invalid values, we should catch that now -and fall back to 96dpi instead of returning unexpected values. ---- - src/plugins/platforms/xcb/qxcbscreen.cpp | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -Index: qtbase-everywhere-src-5.12.0-beta3/src/plugins/platforms/xcb/qxcbscreen.cpp -=================================================================== ---- qtbase-everywhere-src-5.12.0-beta3.orig/src/plugins/platforms/xcb/qxcbscreen.cpp -+++ qtbase-everywhere-src-5.12.0-beta3/src/plugins/platforms/xcb/qxcbscreen.cpp -@@ -752,6 +752,16 @@ void QXcbScreen::updateGeometry(const QR - qreal referenceDpi = physicalSize().width() <= 320 ? 128 : 96; - - m_pixelDensity = qMax(1, qRound(dpi/referenceDpi)); -+ -+ if(m_pixelDensity > 1 && qEnvironmentVariableIsEmpty("QT_XCB_FORCE_ACCEPT_DPI")) { -+ // If we have no physical size or the resolution is untypical, fall back to 1x -+ if (physicalSize().height() <= 0 -+ || geometry.height() < 1440 -+ || m_pixelDensity > 3) { -+ m_pixelDensity = 1; -+ } -+ } -+ - m_geometry = geometry; - m_availableGeometry = geometry & m_virtualDesktop->workArea(); - QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), m_geometry, m_availableGeometry); diff --git a/0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch b/0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch new file mode 100644 index 0000000..ba32c7e --- /dev/null +++ b/0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch @@ -0,0 +1,33 @@ +From c56c1cceae0ad3f45606838a9390aeebd94d41d1 Mon Sep 17 00:00:00 2001 +From: Rolf Eike Beer +Date: Mon, 30 Sep 2019 16:36:30 +0200 +Subject: [PATCH] tslib plugin: remove debug print on old tslib versions + +This introduces a dependency on ts_get_eventpath(), which is only +available in tslib 1.15 and newer. This raises the required version to +an unneeded level, so just drop the debug message if the API is not +available. + +Change-Id: I4a1cd7abec8d139e70555506d9d21edacf0f4d71 +Fixes: QTBUG-78867 +--- + src/platformsupport/input/tslib/qtslib.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/platformsupport/input/tslib/qtslib.cpp b/src/platformsupport/input/tslib/qtslib.cpp +index df57147af6..e105f5ea98 100644 +--- a/src/platformsupport/input/tslib/qtslib.cpp ++++ b/src/platformsupport/input/tslib/qtslib.cpp +@@ -68,7 +68,9 @@ QTsLibMouseHandler::QTsLibMouseHandler(const QString &key, + return; + } + ++#ifdef TSLIB_VERSION_EVENTPATH /* also introduced in 1.15 */ + qCDebug(qLcTsLib) << "tslib device is" << ts_get_eventpath(m_dev); ++#endif + m_notify = new QSocketNotifier(ts_fd(m_dev), QSocketNotifier::Read, this); + connect(m_notify, &QSocketNotifier::activated, this, &QTsLibMouseHandler::readMouseData); + } +-- +2.22.0 + diff --git a/0002-xcb-Use-the-screen-s-physical-DPI-as-logical-DPI-unl.patch b/0002-xcb-Use-the-screen-s-physical-DPI-as-logical-DPI-unl.patch deleted file mode 100644 index f70b2ac..0000000 --- a/0002-xcb-Use-the-screen-s-physical-DPI-as-logical-DPI-unl.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 267ab09b87dd7e2ae7dd3e85a76398506e7f1ae9 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Wed, 25 Apr 2018 18:34:01 +0200 -Subject: [PATCH 2/2] xcb: Use the screen's physical DPI as logical DPI, unless - overwritten - -The size of the virtual screen is most of the time meaningless, as X fakes it -to result in 96 DPI, irregardless of the actual monitor DPI. - -This results in wrong font rendering on non-96 DPI monitors. - -Task-number: QTBUG-67928 ---- - src/plugins/platforms/xcb/qxcbscreen.cpp | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -Index: qtbase-everywhere-src-5.13.1/src/plugins/platforms/xcb/qxcbscreen.cpp -=================================================================== ---- qtbase-everywhere-src-5.13.1.orig/src/plugins/platforms/xcb/qxcbscreen.cpp -+++ qtbase-everywhere-src-5.13.1/src/plugins/platforms/xcb/qxcbscreen.cpp -@@ -676,7 +676,14 @@ QDpi QXcbScreen::logicalDpi() const - if (forcedDpi > 0) - return QDpi(forcedDpi, forcedDpi); - -- return m_virtualDesktop->dpi(); -+ // By default, X fakes the virtual size to be 96 dpi (+-rounding), -+ // so if it's different the user overwrote it. -+ if (qRound(m_virtualDesktop->dpi().first) != 96 || -+ qRound(m_virtualDesktop->dpi().second) != 96) { -+ return m_virtualDesktop->dpi(); -+ } -+ -+ return QDpi(m_pixelDensity * 96, m_pixelDensity * 96); - } - - qreal QXcbScreen::pixelDensity() const diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 776d3a2..c008c95 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Wed Oct 2 19:53:24 UTC 2019 - Fabian Vogt + +- Disable relocatability, it breaks /usr/lib/sse2 (QTBUG-78948) + +------------------------------------------------------------------- +Mon Sep 30 13:29:55 UTC 2019 - Fabian Vogt + +- Update to 5.14.0-alpha: + * New feature release + * No changelog available + * For more details about Qt 5.14 please see: + https://wiki.qt.io/New_Features_in_Qt_5.14 +- Refresh patches: + * 0001-Add-remote-print-queue-support.patch +- Drop patches, don't apply anymore after upstream refactoring and the + main bug for them seems fixed: + * 0001-Sanitize-QXcbScreen-s-pixelDensity-values.patch + * 0002-xcb-Use-the-screen-s-physical-DPI-as-logical-DPI-unl.patch +- Drop patches, now upstream: + * 0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch + * 0001-Fix-CMake-config-files-for-libdir-different-from-lib.patch + * 0001-Fix-qfloat16-methods-definition-without-declaration-.patch +- Enable zstd support again, issues got fixed upstream meanwhile +- Add patch to fix build against older tslib: + * 0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch + ------------------------------------------------------------------- Thu Sep 19 08:08:00 UTC 2019 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index c6af9b5..a74ee58 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,17 +36,17 @@ %endif Name: libqt5-qtbase -Version: 5.13.1 +Version: 5.14.0~alpha Release: 0 Summary: C++ Program Library, Core Components License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-only Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.13.1 -%define so_version 5.13.1 -%define tar_version qtbase-everywhere-src-5.13.1 -Source: https://download.qt.io/official_releases/qt/5.13/%{real_version}/submodules/%{tar_version}.tar.xz +%define real_version 5.14.0-alpha +%define so_version 5.14.0 +%define tar_version qtbase-everywhere-src-5.14.0-alpha +Source: https://download.qt.io/development_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes Source2: macros.qt5 @@ -65,24 +65,18 @@ Patch12: 0001-Add-remote-print-queue-support.patch # PATCH-FIX-OPENSUSE Patch13: 0001-Revert-QWidgetWindow-Immediately-forward-close-event.patch # PATCH-FIX-OPENSUSE -Patch17: 0001-Sanitize-QXcbScreen-s-pixelDensity-values.patch -Patch18: 0002-xcb-Use-the-screen-s-physical-DPI-as-logical-DPI-unl.patch -# PATCH-FIX-UPSTREAM -Patch20: 0001-Fix-qfloat16-methods-definition-without-declaration-.patch -# PATCH-FIX-OPENSUSE Patch21: 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch Patch22: 0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch Patch23: 0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch Patch24: fix-fixqt4headers.patch # Revert to restore compatibility with akonadi and possibly other applications Patch30: 0001-Revert-Always-escape-the-table-names-when-creating-t.patch -# patches 1000-2000 and above from upstream 5.13 branch # -# patches 2000-3000 and above from upstream 5.14/dev branch # -Patch2000: 0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch +# patches 1000-2000 and above from upstream 5.14 branch # +# patches 2000-3000 and above from upstream 5.15/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch -# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/273050 -Patch2002: 0001-Fix-CMake-config-files-for-libdir-different-from-lib.patch +# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/275700 +Patch2002: 0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/273365 Patch2003: 0001-QWidget-setFocusProxy-adjust-focus-widget-properly.patch BuildRequires: alsa-devel @@ -124,6 +118,8 @@ BuildRequires: vulkan-devel %endif BuildRequires: pkgconfig(pango) +# Not packaged yet +#BuildRequires: pkgconfig(md4c) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(xcb-randr) BuildRequires: pkgconfig(xcb-renderutil) @@ -156,8 +152,7 @@ BuildRequires: pkgconfig(sm) BuildRequires: pkgconfig(xkbcommon) >= 0.4.1 BuildRequires: pkgconfig(xkbcommon-x11) >= 0.4.1 BuildRequires: pkgconfig(zlib) -# Breaks various existing codebases, see QTBUG-76521 -# BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(libzstd) %if %journald BuildRequires: pkgconfig(libsystemd) %endif @@ -848,6 +843,8 @@ sed -i 's|qt_instdate=`date +%Y-%m-%d`|qt_instdate=$CHANGES|g' configure # so non-qt5 apps/libs don't get stripped sed -i -e 's|^\(QMAKE_STRIP.*=\).*$|\1|g' mkspecs/common/linux.conf +# -no-feature-relocatable is needed to support /usr/lib/sse2 etc., see QTBUG-78948 + echo yes | ./configure \ -prefix %{_prefix} \ -L %{libqt5_libdir} \ @@ -894,13 +891,12 @@ echo yes | ./configure \ -system-freetype \ -cups \ -system-zlib \ - -no-zstd \ + -zstd \ -no-pch \ -glib \ -sctp \ -system-sqlite \ -no-sql-mysql \ - -no-strip \ %if %journald -journald \ %endif @@ -920,6 +916,7 @@ echo yes | ./configure \ -plugin-sql-odbc \ -plugin-sql-mysql -I/usr/include/mysql/ \ -qpa "xcb;wayland" \ + -no-feature-relocatable \ -v \ QMAKE_CFLAGS+="$CFLAGS" \ QMAKE_CXXFLAGS+="$CXXFLAGS" diff --git a/qtbase-everywhere-src-5.13.1.tar.xz b/qtbase-everywhere-src-5.13.1.tar.xz deleted file mode 100644 index 0579a1f..0000000 --- a/qtbase-everywhere-src-5.13.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:110cd08cdacab26274bf2519d3508046616c0b638f0d2f5e00bc8bad87469eab -size 48807960 diff --git a/qtbase-everywhere-src-5.14.0-alpha.tar.xz b/qtbase-everywhere-src-5.14.0-alpha.tar.xz new file mode 100644 index 0000000..2d82dd0 --- /dev/null +++ b/qtbase-everywhere-src-5.14.0-alpha.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ab8b1319e822b31d8a57b137d3311f0d517227653087a43b31e70932363709a +size 49707164 From 53a893e4bd0c36abd9a170e2a8fa572a6aa3841b300370f002a56c5668c850f9 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Mon, 28 Oct 2019 17:53:53 +0000 Subject: [PATCH 3/8] Accepting request 743230 from home:Vogtinator:qt5.14 Qt 5.14.0 Beta 2 OBS-URL: https://build.opensuse.org/request/show/743230 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.14/libqt5-qtbase?expand=0&rev=3 --- ...usProxy-adjust-focus-widget-properly.patch | 31 ---- ...cape-the-table-names-when-creating-t.patch | 159 +++++++++--------- ...ove-debug-print-on-old-tslib-version.patch | 33 ---- libqt5-qtbase.changes | 19 +++ libqt5-qtbase.spec | 12 +- qtbase-everywhere-src-5.14.0-alpha.tar.xz | 3 - qtbase-everywhere-src-5.14.0-beta2.tar.xz | 3 + 7 files changed, 105 insertions(+), 155 deletions(-) delete mode 100644 0001-QWidget-setFocusProxy-adjust-focus-widget-properly.patch delete mode 100644 0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch delete mode 100644 qtbase-everywhere-src-5.14.0-alpha.tar.xz create mode 100644 qtbase-everywhere-src-5.14.0-beta2.tar.xz diff --git a/0001-QWidget-setFocusProxy-adjust-focus-widget-properly.patch b/0001-QWidget-setFocusProxy-adjust-focus-widget-properly.patch deleted file mode 100644 index ca83877..0000000 --- a/0001-QWidget-setFocusProxy-adjust-focus-widget-properly.patch +++ /dev/null @@ -1,31 +0,0 @@ -From c09cf578bd7267b867326101cd2d0f39e7c814fe Mon Sep 17 00:00:00 2001 -From: David Faure -Date: Mon, 9 Sep 2019 18:12:26 +0200 -Subject: [PATCH] QWidget::setFocusProxy: adjust focus widget properly - -My commit 3e7463411e adjusted the focus widget by setting -QApplicationPrivate::focus_widget directly, while there is a method for -doing this properly, including setFocus_sys() and emitting signals. - -Fixes: QTBUG-77364 -Change-Id: I218acf7a9de39173d282ced46def4f65594f80b4 ---- - src/widgets/kernel/qwidget.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp -index cf5a81c204..6889c2e9e5 100644 ---- a/src/widgets/kernel/qwidget.cpp -+++ b/src/widgets/kernel/qwidget.cpp -@@ -6204,7 +6204,7 @@ void QWidget::setFocusProxy(QWidget * w) - - if (changingAppFocusWidget) { - QWidget *newDeepestFocusProxy = d_func()->deepestFocusProxy(); -- QApplicationPrivate::focus_widget = newDeepestFocusProxy ? newDeepestFocusProxy : this; -+ QApplicationPrivate::setFocusWidget(newDeepestFocusProxy ? newDeepestFocusProxy : this, Qt::NoFocusReason); - } - } - --- -2.22.0 - diff --git a/0001-Revert-Always-escape-the-table-names-when-creating-t.patch b/0001-Revert-Always-escape-the-table-names-when-creating-t.patch index 7c4461f..edf5831 100644 --- a/0001-Revert-Always-escape-the-table-names-when-creating-t.patch +++ b/0001-Revert-Always-escape-the-table-names-when-creating-t.patch @@ -19,11 +19,11 @@ This reverts commit 461ef575bcf778ba24b0be6b775098d4b80ae5e1. .../qsqltablemodel/tst_qsqltablemodel.cpp | 10 ++ 11 files changed, 106 insertions(+), 138 deletions(-) -diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp -index febbe58506..80c0c9c522 100644 ---- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp -+++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp -@@ -1551,7 +1551,7 @@ QSqlIndex QMYSQLDriver::primaryIndex(const QString& tablename) const +Index: qtbase-everywhere-src-5.14.0-beta2/src/plugins/sqldrivers/mysql/qsql_mysql.cpp +=================================================================== +--- qtbase-everywhere-src-5.14.0-beta2.orig/src/plugins/sqldrivers/mysql/qsql_mysql.cpp ++++ qtbase-everywhere-src-5.14.0-beta2/src/plugins/sqldrivers/mysql/qsql_mysql.cpp +@@ -1551,7 +1551,7 @@ QSqlIndex QMYSQLDriver::primaryIndex(con QSqlQuery i(createResult()); QString stmt(QLatin1String("show index from %1;")); QSqlRecord fil = record(tablename); @@ -32,11 +32,11 @@ index febbe58506..80c0c9c522 100644 while (i.isActive() && i.next()) { if (i.value(2).toString() == QLatin1String("PRIMARY")) { idx.append(fil.field(i.value(4).toString())); -diff --git a/src/plugins/sqldrivers/psql/qsql_psql.cpp b/src/plugins/sqldrivers/psql/qsql_psql.cpp -index c1be91cb22..7abd1f242b 100644 ---- a/src/plugins/sqldrivers/psql/qsql_psql.cpp -+++ b/src/plugins/sqldrivers/psql/qsql_psql.cpp -@@ -1396,8 +1396,16 @@ QSqlIndex QPSQLDriver::primaryIndex(const QString &tablename) const +Index: qtbase-everywhere-src-5.14.0-beta2/src/plugins/sqldrivers/psql/qsql_psql.cpp +=================================================================== +--- qtbase-everywhere-src-5.14.0-beta2.orig/src/plugins/sqldrivers/psql/qsql_psql.cpp ++++ qtbase-everywhere-src-5.14.0-beta2/src/plugins/sqldrivers/psql/qsql_psql.cpp +@@ -1402,8 +1402,16 @@ QSqlIndex QPSQLDriver::primaryIndex(cons QString tbl = tablename; QString schema; qSplitTableName(tbl, schema); @@ -55,7 +55,7 @@ index c1be91cb22..7abd1f242b 100644 QString stmt = QStringLiteral("SELECT pg_attribute.attname, pg_attribute.atttypid::int, " "pg_class.relname " -@@ -1432,8 +1440,16 @@ QSqlRecord QPSQLDriver::record(const QString &tablename) const +@@ -1438,8 +1446,16 @@ QSqlRecord QPSQLDriver::record(const QSt QString tbl = tablename; QString schema; qSplitTableName(tbl, schema); @@ -72,12 +72,12 @@ index c1be91cb22..7abd1f242b 100644 + else + schema = std::move(schema).toLower(); - QString stmt = QStringLiteral("SELECT pg_attribute.attname, pg_attribute.atttypid::int, " - "pg_attribute.attnotnull, pg_attribute.attlen, pg_attribute.atttypmod, " -diff --git a/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc b/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc -index 9709deeccb..d127bdf8a5 100644 ---- a/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc -+++ b/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc + const QString adsrc = protocol() < Version8 + ? QStringLiteral("pg_attrdef.adsrc") +Index: qtbase-everywhere-src-5.14.0-beta2/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc +=================================================================== +--- qtbase-everywhere-src-5.14.0-beta2.orig/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc ++++ qtbase-everywhere-src-5.14.0-beta2/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc @@ -237,16 +237,3 @@ Could not create database object //! [38] QPSQLDriver::getResult: Query results lost - probably discarded on executing another SQL query. @@ -95,10 +95,10 @@ index 9709deeccb..d127bdf8a5 100644 -// Call toLower() on the string so that it can be matched -QSqlRecord rec = database.record(tableString.toLower()); -//! [40] -diff --git a/src/sql/doc/src/sql-driver.qdoc b/src/sql/doc/src/sql-driver.qdoc -index cccce48bb3..fd95e89812 100644 ---- a/src/sql/doc/src/sql-driver.qdoc -+++ b/src/sql/doc/src/sql-driver.qdoc +Index: qtbase-everywhere-src-5.14.0-beta2/src/sql/doc/src/sql-driver.qdoc +=================================================================== +--- qtbase-everywhere-src-5.14.0-beta2.orig/src/sql/doc/src/sql-driver.qdoc ++++ qtbase-everywhere-src-5.14.0-beta2/src/sql/doc/src/sql-driver.qdoc @@ -381,23 +381,6 @@ multibyte enabled PostgreSQL server can be found in the PostgreSQL Administrator Guide, Chapter 5. @@ -123,11 +123,11 @@ index cccce48bb3..fd95e89812 100644 \section3 QPSQL BLOB Support Binary Large Objects are supported through the \c BYTEA field type in -diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp -index d63a9e59a8..12ab9671b5 100644 ---- a/src/sql/kernel/qsqldatabase.cpp -+++ b/src/sql/kernel/qsqldatabase.cpp -@@ -1088,11 +1088,6 @@ QStringList QSqlDatabase::tables(QSql::TableType type) const +Index: qtbase-everywhere-src-5.14.0-beta2/src/sql/kernel/qsqldatabase.cpp +=================================================================== +--- qtbase-everywhere-src-5.14.0-beta2.orig/src/sql/kernel/qsqldatabase.cpp ++++ qtbase-everywhere-src-5.14.0-beta2/src/sql/kernel/qsqldatabase.cpp +@@ -1096,11 +1096,6 @@ QStringList QSqlDatabase::tables(QSql::T Returns the primary index for table \a tablename. If no primary index exists, an empty QSqlIndex is returned. @@ -139,7 +139,7 @@ index d63a9e59a8..12ab9671b5 100644 \sa tables(), record() */ -@@ -1107,11 +1102,6 @@ QSqlIndex QSqlDatabase::primaryIndex(const QString& tablename) const +@@ -1115,11 +1110,6 @@ QSqlIndex QSqlDatabase::primaryIndex(con the table (or view) called \a tablename. The order in which the fields appear in the record is undefined. If no such table (or view) exists, an empty record is returned. @@ -151,11 +151,11 @@ index d63a9e59a8..12ab9671b5 100644 */ QSqlRecord QSqlDatabase::record(const QString& tablename) const -diff --git a/src/sql/kernel/qsqldriver.cpp b/src/sql/kernel/qsqldriver.cpp -index 7f7b81b05b..8c6ae382f6 100644 ---- a/src/sql/kernel/qsqldriver.cpp -+++ b/src/sql/kernel/qsqldriver.cpp -@@ -488,8 +488,6 @@ QString QSqlDriver::stripDelimiters(const QString &identifier, IdentifierType ty +Index: qtbase-everywhere-src-5.14.0-beta2/src/sql/kernel/qsqldriver.cpp +=================================================================== +--- qtbase-everywhere-src-5.14.0-beta2.orig/src/sql/kernel/qsqldriver.cpp ++++ qtbase-everywhere-src-5.14.0-beta2/src/sql/kernel/qsqldriver.cpp +@@ -488,8 +488,6 @@ QString QSqlDriver::stripDelimiters(cons QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, const QSqlRecord &rec, bool preparedStatement) const { @@ -164,7 +164,7 @@ index 7f7b81b05b..8c6ae382f6 100644 int i; QString s; s.reserve(128); -@@ -502,12 +500,13 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, +@@ -502,12 +500,13 @@ QString QSqlDriver::sqlStatement(Stateme if (s.isEmpty()) return s; s.chop(2); @@ -181,7 +181,7 @@ index 7f7b81b05b..8c6ae382f6 100644 for (int i = 0; i < rec.count(); ++i) { if (!rec.isGenerated(i)) continue; -@@ -524,7 +523,8 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, +@@ -524,7 +523,8 @@ QString QSqlDriver::sqlStatement(Stateme break; } case UpdateStatement: @@ -191,7 +191,7 @@ index 7f7b81b05b..8c6ae382f6 100644 for (i = 0; i < rec.count(); ++i) { if (!rec.isGenerated(i)) continue; -@@ -541,10 +541,10 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, +@@ -541,10 +541,10 @@ QString QSqlDriver::sqlStatement(Stateme s.clear(); break; case DeleteStatement: @@ -204,11 +204,11 @@ index 7f7b81b05b..8c6ae382f6 100644 QString vals; for (i = 0; i < rec.count(); ++i) { if (!rec.isGenerated(i)) -diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h -index 55875359ff..97397e3159 100644 ---- a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h -+++ b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h -@@ -79,14 +79,14 @@ inline QString fixupTableName(const QString &tableName, QSqlDatabase db) +Index: qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqldatabase/tst_databases.h +=================================================================== +--- qtbase-everywhere-src-5.14.0-beta2.orig/tests/auto/sql/kernel/qsqldatabase/tst_databases.h ++++ qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqldatabase/tst_databases.h +@@ -80,14 +80,14 @@ inline QString fixupTableName(const QStr return tbName; } @@ -230,11 +230,11 @@ index 55875359ff..97397e3159 100644 } inline static QString qTableName(const QString& prefix, QSqlDatabase db) -diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp -index f309231b10..75db31e45f 100644 ---- a/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp -+++ b/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp -@@ -314,8 +314,10 @@ void tst_QSqlDatabase::createTestTables(QSqlDatabase db) +Index: qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp +=================================================================== +--- qtbase-everywhere-src-5.14.0-beta2.orig/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp ++++ qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp +@@ -314,8 +314,10 @@ void tst_QSqlDatabase::createTestTables( " (id integer not null, t_varchar varchar(40) not null, " "t_char char(40), t_numeric numeric(6, 3), primary key (id, t_varchar))")); } @@ -246,7 +246,7 @@ index f309231b10..75db31e45f 100644 + '(' + db.driver()->escapeIdentifier(QLatin1String("test test"), QSqlDriver::FieldName) + " int not null primary key)"; -@@ -339,7 +341,6 @@ void tst_QSqlDatabase::dropTestTables(QSqlDatabase db) +@@ -339,7 +341,6 @@ void tst_QSqlDatabase::dropTestTables(QS const QString qtestTable = qTableName("qtest", __FILE__, db); QStringList tableNames; tableNames << qtestTable @@ -265,7 +265,7 @@ index f309231b10..75db31e45f 100644 bool views = true; bool tempTables = false; -@@ -579,10 +578,10 @@ void tst_QSqlDatabase::whitespaceInIdentifiers() +@@ -579,10 +578,10 @@ void tst_QSqlDatabase::whitespaceInIdent const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db); if (testWhiteSpaceNames(db.driverName())) { @@ -278,7 +278,7 @@ index f309231b10..75db31e45f 100644 QCOMPARE(rec.count(), 1); QCOMPARE(rec.fieldName(0), QString("test test")); if (dbType == QSqlDriver::Oracle) -@@ -590,7 +589,7 @@ void tst_QSqlDatabase::whitespaceInIdentifiers() +@@ -590,7 +589,7 @@ void tst_QSqlDatabase::whitespaceInIdent else QCOMPARE(rec.field(0).type(), QVariant::Int); @@ -310,7 +310,7 @@ index f309231b10..75db31e45f 100644 QCOMPARE((int)rec.count(), 2); -@@ -683,16 +681,13 @@ void tst_QSqlDatabase::testRecord(const FieldDef fieldDefs[], const QSqlRecord& +@@ -683,16 +681,13 @@ void tst_QSqlDatabase::testRecord(const void tst_QSqlDatabase::commonFieldTest(const FieldDef fieldDefs[], QSqlDatabase db, const int fieldCount) { CHECK_DATABASE(db); @@ -420,7 +420,7 @@ index f309231b10..75db31e45f 100644 QCOMPARE(idx.count(), 1); QCOMPARE(idx.fieldName(0), QString("id")); } -@@ -1304,21 +1288,18 @@ void tst_QSqlDatabase::psql_escapedIdentifiers() +@@ -1304,21 +1288,18 @@ void tst_QSqlDatabase::psql_escapedIdent QSqlQuery q(db); QVERIFY_SQL( q, exec("set client_min_messages='warning'")); @@ -447,7 +447,7 @@ index f309231b10..75db31e45f 100644 QSqlField fld1(field1Name, QVariant::Int); QSqlField fld2(field2Name, QVariant::String); -@@ -1326,9 +1307,7 @@ void tst_QSqlDatabase::psql_escapedIdentifiers() +@@ -1326,9 +1307,7 @@ void tst_QSqlDatabase::psql_escapedIdent rec.append(fld1); rec.append(fld2); @@ -458,7 +458,7 @@ index f309231b10..75db31e45f 100644 rec = q.record(); QCOMPARE(rec.count(), 2); -@@ -1336,7 +1315,7 @@ void tst_QSqlDatabase::psql_escapedIdentifiers() +@@ -1336,7 +1315,7 @@ void tst_QSqlDatabase::psql_escapedIdent QCOMPARE(rec.fieldName(1), field2Name); QCOMPARE(rec.field(0).type(), QVariant::Int); @@ -467,7 +467,7 @@ index f309231b10..75db31e45f 100644 } void tst_QSqlDatabase::psql_escapeBytea() -@@ -2167,7 +2146,7 @@ void tst_QSqlDatabase::eventNotificationPSQL() +@@ -2167,7 +2146,7 @@ void tst_QSqlDatabase::eventNotification CHECK_DATABASE(db); QSqlQuery query(db); @@ -476,7 +476,7 @@ index f309231b10..75db31e45f 100644 QString payload = "payload"; QSqlDriver &driver=*(db.driver()); QVERIFY_SQL(driver, subscribeToNotification(procedureName)); -@@ -2191,22 +2170,21 @@ void tst_QSqlDatabase::eventNotificationSQLite() +@@ -2191,22 +2170,21 @@ void tst_QSqlDatabase::eventNotification QSKIP("QSQLITE specific test"); } const QString tableName(qTableName("sqlitnotifytest", __FILE__, db)); @@ -503,11 +503,11 @@ index f309231b10..75db31e45f 100644 QVERIFY_SQL(q, exec("INSERT INTO " + tableName + " (id, realVal) VALUES (1, 2.3)")); QTRY_COMPARE(notificationSpy.count(), 0); QTRY_COMPARE(notificationSpyExt.count(), 0); -diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp -index 784d0a70d7..710f26b72d 100644 ---- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp -+++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp -@@ -1098,7 +1098,7 @@ void tst_QSqlQuery::record() +Index: qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp +=================================================================== +--- qtbase-everywhere-src-5.14.0-beta2.orig/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp ++++ qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp +@@ -1092,7 +1092,7 @@ void tst_QSqlQuery::record() for (int i = 0; i < 3; ++i) QCOMPARE(q.record().field(i).tableName().toLower(), lowerQTest); q.clear(); @@ -516,7 +516,7 @@ index 784d0a70d7..710f26b72d 100644 SETUP_RECORD_TABLE; CHECK_RECORD; q.clear(); -@@ -3763,13 +3763,15 @@ void tst_QSqlQuery::QTBUG_5251() +@@ -3673,13 +3673,15 @@ void tst_QSqlQuery::QTBUG_5251() const QString timetest(qTableName("timetest", __FILE__, db)); tst_Databases::safeDropTable(db, timetest); QSqlQuery q(db); @@ -535,7 +535,7 @@ index 784d0a70d7..710f26b72d 100644 QVERIFY_SQL(timetestModel, select()); QCOMPARE(timetestModel.record(0).field(0).value().toTime().toString("HH:mm:ss.zzz"), QString("01:02:03.666")); -@@ -3778,8 +3780,8 @@ void tst_QSqlQuery::QTBUG_5251() +@@ -3688,8 +3690,8 @@ void tst_QSqlQuery::QTBUG_5251() QVERIFY_SQL(timetestModel, submitAll()); QCOMPARE(timetestModel.record(0).field(0).value().toTime().toString("HH:mm:ss.zzz"), QString("00:12:34.500")); @@ -546,11 +546,11 @@ index 784d0a70d7..710f26b72d 100644 QVERIFY_SQL(timetestModel, select()); QCOMPARE(timetestModel.record(0).field(0).value().toTime().toString("HH:mm:ss.zzz"), QString("00:11:22.330")); -diff --git a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp -index 722ef9c570..e4a277e096 100644 ---- a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp -+++ b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp -@@ -122,13 +122,13 @@ void tst_QSqlRelationalTableModel::recreateTestTables(QSqlDatabase db) +Index: qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp +=================================================================== +--- qtbase-everywhere-src-5.14.0-beta2.orig/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp ++++ qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp +@@ -122,13 +122,13 @@ void tst_QSqlRelationalTableModel::recre QVERIFY_SQL( q, exec("insert into " + reltest5 + " values('mister', 'Mr')")); if (testWhiteSpaceNames(db.driverName())) { @@ -566,7 +566,7 @@ index 722ef9c570..e4a277e096 100644 QVERIFY_SQL( q, exec("create table " + reltest7 + " (" + db.driver()->escapeIdentifier("city id", QSqlDriver::TableName) + " int not null primary key, " + db.driver()->escapeIdentifier("city name", QSqlDriver::FieldName) + " varchar(20))")); QVERIFY_SQL( q, exec("insert into " + reltest7 + " values(1, 'New York')")); QVERIFY_SQL( q, exec("insert into " + reltest7 + " values(2, 'Washington')")); -@@ -170,8 +170,8 @@ void tst_QSqlRelationalTableModel::dropTestTables( QSqlDatabase db ) +@@ -170,8 +170,8 @@ void tst_QSqlRelationalTableModel::dropT << reltest3 << reltest4 << reltest5 @@ -577,7 +577,7 @@ index 722ef9c570..e4a277e096 100644 << qTableName("CASETEST1", db) << qTableName("casetest1", db); tst_Databases::safeDropTables( db, tableNames ); -@@ -1379,9 +1379,9 @@ void tst_QSqlRelationalTableModel::whiteSpaceInIdentifiers() +@@ -1379,9 +1379,9 @@ void tst_QSqlRelationalTableModel::white if (!testWhiteSpaceNames(db.driverName())) QSKIP("White space test irrelevant for driver"); QSqlRelationalTableModel model(0, db); @@ -589,7 +589,7 @@ index 722ef9c570..e4a277e096 100644 db.driver()->escapeIdentifier("city id", QSqlDriver::FieldName), db.driver()->escapeIdentifier("city name", QSqlDriver::FieldName))); QVERIFY_SQL(model, select()); -@@ -1547,6 +1547,8 @@ void tst_QSqlRelationalTableModel::relationOnFirstColumn() +@@ -1547,6 +1547,8 @@ void tst_QSqlRelationalTableModel::relat //modify the model data QVERIFY_SQL(model, setData(model.index(0, 0), 40)); @@ -598,11 +598,11 @@ index 722ef9c570..e4a277e096 100644 QVERIFY_SQL(model, submit()); QVERIFY_SQL(model, setData(model.index(1, 0), 50)); QVERIFY_SQL(model, submit()); -diff --git a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp -index b617151a36..da31f437d9 100644 ---- a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp -+++ b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp -@@ -383,6 +383,8 @@ void tst_QSqlTableModel::selectRow() +Index: qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp +=================================================================== +--- qtbase-everywhere-src-5.14.0-beta2.orig/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp ++++ qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp +@@ -384,6 +384,8 @@ void tst_QSqlTableModel::selectRow() q.exec("UPDATE " + tbl + " SET a = 'Qt' WHERE id = 1"); QCOMPARE(model.data(idx).toString(), QString("b")); model.selectRow(1); @@ -611,7 +611,7 @@ index b617151a36..da31f437d9 100644 QCOMPARE(model.data(idx).toString(), QString("Qt")); // Check if selectRow() refreshes a changed row. -@@ -439,6 +441,8 @@ void tst_QSqlTableModel::selectRowOverride() +@@ -440,6 +442,8 @@ void tst_QSqlTableModel::selectRowOverri // both rows should have changed QCOMPARE(model.data(idx).toString(), QString("Qt")); idx = model.index(2, 1); @@ -620,7 +620,7 @@ index b617151a36..da31f437d9 100644 QCOMPARE(model.data(idx).toString(), QString("Qt")); q.exec("DELETE FROM " + tbl); -@@ -850,6 +854,8 @@ void tst_QSqlTableModel::insertRowFailure() +@@ -851,6 +855,8 @@ void tst_QSqlTableModel::insertRowFailur // populate 1 row const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db); @@ -629,7 +629,7 @@ index b617151a36..da31f437d9 100644 QVERIFY_SQL(model, insertRecord(0, values)); QVERIFY_SQL(model, submitAll()); QVERIFY_SQL(model, select()); -@@ -893,6 +899,8 @@ void tst_QSqlTableModel::insertRowFailure() +@@ -894,6 +900,8 @@ void tst_QSqlTableModel::insertRowFailur // restore empty table model.revertAll(); QVERIFY_SQL(model, removeRow(0)); @@ -638,7 +638,7 @@ index b617151a36..da31f437d9 100644 QVERIFY_SQL(model, submitAll()); QVERIFY_SQL(model, select()); QCOMPARE(model.rowCount(), 0); -@@ -2001,6 +2009,8 @@ void tst_QSqlTableModel::tableModifyWithBlank() +@@ -2002,6 +2010,8 @@ void tst_QSqlTableModel::tableModifyWith //Should be equivalent to QSqlQuery INSERT INTO... command) QVERIFY_SQL(model, insertRow(0)); QVERIFY_SQL(model, setData(model.index(0,0),timeString)); @@ -647,6 +647,3 @@ index b617151a36..da31f437d9 100644 QVERIFY_SQL(model, submitAll()); //set a filter on the table so the only record we get is the one we just made --- -2.21.0 - diff --git a/0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch b/0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch deleted file mode 100644 index ba32c7e..0000000 --- a/0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch +++ /dev/null @@ -1,33 +0,0 @@ -From c56c1cceae0ad3f45606838a9390aeebd94d41d1 Mon Sep 17 00:00:00 2001 -From: Rolf Eike Beer -Date: Mon, 30 Sep 2019 16:36:30 +0200 -Subject: [PATCH] tslib plugin: remove debug print on old tslib versions - -This introduces a dependency on ts_get_eventpath(), which is only -available in tslib 1.15 and newer. This raises the required version to -an unneeded level, so just drop the debug message if the API is not -available. - -Change-Id: I4a1cd7abec8d139e70555506d9d21edacf0f4d71 -Fixes: QTBUG-78867 ---- - src/platformsupport/input/tslib/qtslib.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/platformsupport/input/tslib/qtslib.cpp b/src/platformsupport/input/tslib/qtslib.cpp -index df57147af6..e105f5ea98 100644 ---- a/src/platformsupport/input/tslib/qtslib.cpp -+++ b/src/platformsupport/input/tslib/qtslib.cpp -@@ -68,7 +68,9 @@ QTsLibMouseHandler::QTsLibMouseHandler(const QString &key, - return; - } - -+#ifdef TSLIB_VERSION_EVENTPATH /* also introduced in 1.15 */ - qCDebug(qLcTsLib) << "tslib device is" << ts_get_eventpath(m_dev); -+#endif - m_notify = new QSocketNotifier(ts_fd(m_dev), QSocketNotifier::Read, this); - connect(m_notify, &QSocketNotifier::activated, this, &QTsLibMouseHandler::readMouseData); - } --- -2.22.0 - diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index c008c95..aab1418 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Thu Oct 24 13:22:25 UTC 2019 - Fabian Vogt + +- Update to 5.14.0-beta2: + * New bugfix release + * No changelog available +- Refresh patches: + * 0001-Revert-Always-escape-the-table-names-when-creating-t.patch + +------------------------------------------------------------------- +Tue Oct 15 12:34:20 UTC 2019 - Fabian Vogt + +- Update to 5.14.0-beta1: + * New bugfix release + * No changelog available +- Drop patches, now upstream: + * 0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch + * 0001-QWidget-setFocusProxy-adjust-focus-widget-properly.patch + ------------------------------------------------------------------- Wed Oct 2 19:53:24 UTC 2019 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index a74ee58..1076acd 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.14.0~alpha +Version: 5.14.0~beta2 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-only Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.14.0-alpha +%define real_version 5.14.0-beta2 %define so_version 5.14.0 -%define tar_version qtbase-everywhere-src-5.14.0-alpha +%define tar_version qtbase-everywhere-src-5.14.0-beta2 Source: https://download.qt.io/development_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes @@ -75,10 +75,6 @@ Patch30: 0001-Revert-Always-escape-the-table-names-when-creating-t.patch # patches 2000-3000 and above from upstream 5.15/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch -# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/275700 -Patch2002: 0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch -# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/273365 -Patch2003: 0001-QWidget-setFocusProxy-adjust-focus-widget-properly.patch BuildRequires: alsa-devel BuildRequires: cups-devel BuildRequires: double-conversion-devel @@ -1034,6 +1030,8 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png %{libqt5_bindir}/uic* %{_bindir}/qvkgen* %{libqt5_bindir}/qvkgen* +%{_bindir}/tracegen* +%{libqt5_bindir}/tracegen* %{_bindir}/syncqt.pl* %{_bindir}/fixqt4headers.pl* %{libqt5_bindir}/syncqt.pl* diff --git a/qtbase-everywhere-src-5.14.0-alpha.tar.xz b/qtbase-everywhere-src-5.14.0-alpha.tar.xz deleted file mode 100644 index 2d82dd0..0000000 --- a/qtbase-everywhere-src-5.14.0-alpha.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1ab8b1319e822b31d8a57b137d3311f0d517227653087a43b31e70932363709a -size 49707164 diff --git a/qtbase-everywhere-src-5.14.0-beta2.tar.xz b/qtbase-everywhere-src-5.14.0-beta2.tar.xz new file mode 100644 index 0000000..bd94e1b --- /dev/null +++ b/qtbase-everywhere-src-5.14.0-beta2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea1f660569cc7235d4c32fdf2cfce6687e3beef336446a7b680a9ea9a49f24bf +size 49655856 From 1ad784a5f01ad54b144fbff74d88dab13d4f1e49ad0a4c9b9489efb8cccc77c4 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Thu, 14 Nov 2019 08:34:35 +0000 Subject: [PATCH 4/8] Accepting request 748159 from home:Vogtinator:qt5.14 Qt 5.14 Beta 3 OBS-URL: https://build.opensuse.org/request/show/748159 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.14/libqt5-qtbase?expand=0&rev=4 --- libqt5-Fix-Gujarati-font.patch | 16 ---------------- libqt5-qtbase.changes | 9 +++++++++ libqt5-qtbase.spec | 8 +++----- qtbase-everywhere-src-5.14.0-beta2.tar.xz | 3 --- qtbase-everywhere-src-5.14.0-beta3.tar.xz | 3 +++ 5 files changed, 15 insertions(+), 24 deletions(-) delete mode 100644 libqt5-Fix-Gujarati-font.patch delete mode 100644 qtbase-everywhere-src-5.14.0-beta2.tar.xz create mode 100644 qtbase-everywhere-src-5.14.0-beta3.tar.xz diff --git a/libqt5-Fix-Gujarati-font.patch b/libqt5-Fix-Gujarati-font.patch deleted file mode 100644 index 340719a..0000000 --- a/libqt5-Fix-Gujarati-font.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- - src/gui/text/qtextengine.cpp | 1 + - 1 file changed, 1 insertion(+) - -Index: qtbase-opensource-src-5.9.1/src/gui/text/qtextengine.cpp -=================================================================== ---- qtbase-opensource-src-5.9.1.orig/src/gui/text/qtextengine.cpp -+++ qtbase-opensource-src-5.9.1/src/gui/text/qtextengine.cpp -@@ -1723,6 +1723,7 @@ void QTextEngine::itemize() const - case QChar::Script_Katakana: - case QChar::Script_Bopomofo: - case QChar::Script_Han: -+ case QChar::Script_Gujarati: - analysis[i].script = QChar::Script_Common; - break; - default: diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index aab1418..56c5290 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Nov 12 13:00:31 UTC 2019 - Fabian Vogt + +- Update to 5.14.0-beta3: + * New bugfix release + * No changelog available +- Drop libqt5-Fix-Gujarati-font.patch, didn't apply anymore: + * Was probably fixed upstream a loooong time ago (QTBUG-44568) + ------------------------------------------------------------------- Thu Oct 24 13:22:25 UTC 2019 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 1076acd..1c3653d 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.14.0~beta2 +Version: 5.14.0~beta3 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-only Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.14.0-beta2 +%define real_version 5.14.0-beta3 %define so_version 5.14.0 -%define tar_version qtbase-everywhere-src-5.14.0-beta2 +%define tar_version qtbase-everywhere-src-5.14.0-beta3 Source: https://download.qt.io/development_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes @@ -53,8 +53,6 @@ Source2: macros.qt5 Source3: baselibs.conf Source99: libqt5-qtbase-rpmlintrc # patches 0-1000 are openSUSE and/or non-upstream(able) patches # -# PATCH-FIX-SUSE libqt5-Fix-Gujarati-font.patch bnc#878292 fix broken Gujarati font rendering -Patch3: libqt5-Fix-Gujarati-font.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 diff --git a/qtbase-everywhere-src-5.14.0-beta2.tar.xz b/qtbase-everywhere-src-5.14.0-beta2.tar.xz deleted file mode 100644 index bd94e1b..0000000 --- a/qtbase-everywhere-src-5.14.0-beta2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea1f660569cc7235d4c32fdf2cfce6687e3beef336446a7b680a9ea9a49f24bf -size 49655856 diff --git a/qtbase-everywhere-src-5.14.0-beta3.tar.xz b/qtbase-everywhere-src-5.14.0-beta3.tar.xz new file mode 100644 index 0000000..560e693 --- /dev/null +++ b/qtbase-everywhere-src-5.14.0-beta3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:107f8937242f71a1b40c12a5f985a552a1e03359740df0458449b5c3d0a7fc61 +size 49675132 From 9ecf0d981ae90c177e70c6ce729b191c49d0778eae78f30ea0c2e3ae3f369eb0 Mon Sep 17 00:00:00 2001 From: Luca Beltrame Date: Thu, 5 Dec 2019 09:41:11 +0000 Subject: [PATCH 5/8] Accepting request 754286 from home:Vogtinator:qt5.14 Qt 5.14.0 RC1 OBS-URL: https://build.opensuse.org/request/show/754286 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.14/libqt5-qtbase?expand=0&rev=5 --- ...ndow-Immediately-forward-close-event.patch | 75 ------------------- libqt5-qtbase.changes | 13 ++++ libqt5-qtbase.spec | 8 +- qtbase-everywhere-src-5.14.0-beta3.tar.xz | 3 - qtbase-everywhere-src-5.14.0-rc.tar.xz | 3 + 5 files changed, 19 insertions(+), 83 deletions(-) delete mode 100644 0001-Revert-QWidgetWindow-Immediately-forward-close-event.patch delete mode 100644 qtbase-everywhere-src-5.14.0-beta3.tar.xz create mode 100644 qtbase-everywhere-src-5.14.0-rc.tar.xz diff --git a/0001-Revert-QWidgetWindow-Immediately-forward-close-event.patch b/0001-Revert-QWidgetWindow-Immediately-forward-close-event.patch deleted file mode 100644 index b6acb2a..0000000 --- a/0001-Revert-QWidgetWindow-Immediately-forward-close-event.patch +++ /dev/null @@ -1,75 +0,0 @@ -From fa9728f19c8bf8ae925a1c99d056559b7bc84515 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Fri, 29 Jun 2018 09:15:51 +0200 -Subject: [PATCH] Revert "QWidgetWindow: Immediately forward close events to - QWindow" - -This reverts commit e0b5ff4ad583befbecbcbe462998e3ed80899531. - -References: kde#395988 -References: QTBUG-43344 ---- - src/widgets/kernel/qwidgetwindow.cpp | 1 - - .../widgets/kernel/qwidget/tst_qwidget.cpp | 28 ------------------- - 2 files changed, 29 deletions(-) - -diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp -index 1f3057b008..24e0173ac1 100644 ---- a/src/widgets/kernel/qwidgetwindow.cpp -+++ b/src/widgets/kernel/qwidgetwindow.cpp -@@ -237,7 +237,6 @@ bool QWidgetWindow::event(QEvent *event) - switch (event->type()) { - case QEvent::Close: - handleCloseEvent(static_cast(event)); -- QWindow::event(event); - return true; - - case QEvent::Enter: -diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp -index 6a049aedf1..c7dab650fe 100644 ---- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp -+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp -@@ -401,8 +401,6 @@ private slots: - - void tabletTracking(); - -- void closeEvent(); -- - private: - bool ensureScreenSize(int width, int height); - -@@ -10800,31 +10798,5 @@ void tst_QWidget::tabletTracking() - QTRY_COMPARE(widget.moveEventCount, 3); - } - --class CloseCountingWidget : public QWidget --{ --public: -- int closeCount = 0; -- void closeEvent(QCloseEvent *ev) override; --}; -- --void CloseCountingWidget::closeEvent(QCloseEvent *ev) --{ -- ++closeCount; -- ev->accept(); --} -- --void tst_QWidget::closeEvent() --{ -- CloseCountingWidget widget; -- widget.show(); -- QVERIFY(QTest::qWaitForWindowExposed(&widget)); -- // Yes we call the close() function twice. This mimics the behavior of QTBUG-43344 where -- // QApplication first closes all windows and then QCocoaApplication flushes window system -- // events, triggering more close events. -- widget.windowHandle()->close(); -- widget.windowHandle()->close(); -- QCOMPARE(widget.closeCount, 1); --} -- - QTEST_MAIN(tst_QWidget) - #include "tst_qwidget.moc" --- -2.17.1 - diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 56c5290..c1efd5b 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Wed Dec 4 14:37:31 UTC 2019 - Fabian Vogt + +- Update to 5.14.0-rc: + * New bugfix release + * No changelog available + * For more details please see: + * For more details about Qt 5.14 please see: + https://wiki.qt.io/New_Features_in_Qt_5.14 +- Drop patch, Qt behaviour changed now and applications can deal with + it meanwhile: + * 0001-Revert-QWidgetWindow-Immediately-forward-close-event.patch + ------------------------------------------------------------------- Tue Nov 12 13:00:31 UTC 2019 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 1c3653d..fe0b8b4 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.14.0~beta3 +Version: 5.14.0~rc Release: 0 Summary: C++ Program Library, Core Components License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-only Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.14.0-beta3 +%define real_version 5.14.0-rc %define so_version 5.14.0 -%define tar_version qtbase-everywhere-src-5.14.0-beta3 +%define tar_version qtbase-everywhere-src-5.14.0-rc Source: https://download.qt.io/development_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes @@ -61,8 +61,6 @@ Patch10: libqt5-prioritise-gtk2-platformtheme.patch # PATCH-FEATURE-OPENSUSE 0001-Add-remote-print-queue-support.patch fate#322052 -- Automatically recognize and allow printing to remote cups servers Patch12: 0001-Add-remote-print-queue-support.patch # PATCH-FIX-OPENSUSE -Patch13: 0001-Revert-QWidgetWindow-Immediately-forward-close-event.patch -# PATCH-FIX-OPENSUSE Patch21: 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch Patch22: 0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch Patch23: 0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch diff --git a/qtbase-everywhere-src-5.14.0-beta3.tar.xz b/qtbase-everywhere-src-5.14.0-beta3.tar.xz deleted file mode 100644 index 560e693..0000000 --- a/qtbase-everywhere-src-5.14.0-beta3.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:107f8937242f71a1b40c12a5f985a552a1e03359740df0458449b5c3d0a7fc61 -size 49675132 diff --git a/qtbase-everywhere-src-5.14.0-rc.tar.xz b/qtbase-everywhere-src-5.14.0-rc.tar.xz new file mode 100644 index 0000000..725bec9 --- /dev/null +++ b/qtbase-everywhere-src-5.14.0-rc.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0e77bf99f15d5335e2613679928dd21b3399c1598f4010fda9e4191a046c56a +size 49706812 From 248496e6cdffa3306c48a02f98f42819d3158c6053c67c026db60152183ce98a Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Thu, 12 Dec 2019 20:39:49 +0000 Subject: [PATCH 6/8] Accepting request 756177 from home:Vogtinator:qt5.14 Qt 5.14.0 final - not fully built yet OBS-URL: https://build.opensuse.org/request/show/756177 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.14/libqt5-qtbase?expand=0&rev=6 --- libqt5-qtbase.changes | 10 ++++++++++ libqt5-qtbase.spec | 8 ++++---- qtbase-everywhere-src-5.14.0-rc.tar.xz | 3 --- qtbase-everywhere-src-5.14.0.tar.xz | 3 +++ 4 files changed, 17 insertions(+), 7 deletions(-) delete mode 100644 qtbase-everywhere-src-5.14.0-rc.tar.xz create mode 100644 qtbase-everywhere-src-5.14.0.tar.xz diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index c1efd5b..7dd0634 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Dec 12 12:40:51 UTC 2019 - Fabian Vogt + +- Update to 5.14.0: + * New bugfix release + * For the changes between 5.13.2 and 5.14.0 please see: + https://code.qt.io/cgit/qt/qtbase.git/tree/dist/changes-5.14.0?h=v5.14.0 + * For the changes between 5.13.1 and 5.13.2 please see: + https://code.qt.io/cgit/qt/qtbase.git/tree/dist/changes-5.13.2?h=v5.14.0 + ------------------------------------------------------------------- Wed Dec 4 14:37:31 UTC 2019 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index fe0b8b4..9ceae3f 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,17 +36,17 @@ %endif Name: libqt5-qtbase -Version: 5.14.0~rc +Version: 5.14.0 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-only Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.14.0-rc +%define real_version 5.14.0 %define so_version 5.14.0 -%define tar_version qtbase-everywhere-src-5.14.0-rc -Source: https://download.qt.io/development_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz +%define tar_version qtbase-everywhere-src-5.14.0 +Source: https://download.qt.io/official_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes Source2: macros.qt5 diff --git a/qtbase-everywhere-src-5.14.0-rc.tar.xz b/qtbase-everywhere-src-5.14.0-rc.tar.xz deleted file mode 100644 index 725bec9..0000000 --- a/qtbase-everywhere-src-5.14.0-rc.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e0e77bf99f15d5335e2613679928dd21b3399c1598f4010fda9e4191a046c56a -size 49706812 diff --git a/qtbase-everywhere-src-5.14.0.tar.xz b/qtbase-everywhere-src-5.14.0.tar.xz new file mode 100644 index 0000000..b396d10 --- /dev/null +++ b/qtbase-everywhere-src-5.14.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ef921c0f208a1624439801da8b3f4344a3793b660ce1095f2b7f5c4246b9463 +size 49713412 From d2786dad3f3b0fd78837ce63502456d5f36e203e536b132218f1239965997d49 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Thu, 26 Dec 2019 12:37:07 +0000 Subject: [PATCH 7/8] Accepting request 759230 from home:Vogtinator:qt5.14 - Add patches to avoid regression with rendering of translucent text (QTBUG-80982): * 0001-Revert-Fix-text-rendering-regression-on-semi-transpa.patch * 0002-Revert-Fix-crash-with-gamma-corrected-text-blending-.patch * 0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch OBS-URL: https://build.opensuse.org/request/show/759230 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.14/libqt5-qtbase?expand=0&rev=7 --- ...rendering-regression-on-semi-transpa.patch | 32 ++ ...-with-gamma-corrected-text-blending-.patch | 60 ++++ ...ansparent-pen-color-in-fast-text-pat.patch | 336 ++++++++++++++++++ libqt5-qtbase.changes | 9 + libqt5-qtbase.spec | 4 + 5 files changed, 441 insertions(+) create mode 100644 0001-Revert-Fix-text-rendering-regression-on-semi-transpa.patch create mode 100644 0002-Revert-Fix-crash-with-gamma-corrected-text-blending-.patch create mode 100644 0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch diff --git a/0001-Revert-Fix-text-rendering-regression-on-semi-transpa.patch b/0001-Revert-Fix-text-rendering-regression-on-semi-transpa.patch new file mode 100644 index 0000000..bb6f4b8 --- /dev/null +++ b/0001-Revert-Fix-text-rendering-regression-on-semi-transpa.patch @@ -0,0 +1,32 @@ +From d0ed9b07eb928c7d037b3fadb7423c87d7b798b0 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Wed, 25 Dec 2019 18:54:40 +0100 +Subject: [PATCH 1/3] Revert "Fix text-rendering regression on semi-transparent + background on Linux" + +This reverts commit c0adcf0f226e247c1f2f515cd33d7945573e96a5. +--- + src/gui/painting/qdrawhelper.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp +index e8d129d047..e5f752b94e 100644 +--- a/src/gui/painting/qdrawhelper.cpp ++++ b/src/gui/painting/qdrawhelper.cpp +@@ -6044,11 +6044,11 @@ static inline void alphargbblend_argb32(quint32 *dst, uint coverage, const QRgba + // nothing + } else if (coverage == 0xffffffff && qAlpha(src) == 255) { + blend_pixel(*dst, src); ++ } else if (!colorProfile) { ++ *dst = rgbBlend(*dst, src, coverage); + } else if (*dst < 0xff000000) { + // Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571 + blend_pixel(*dst, src, qRgbAvg(coverage)); +- } else if (!colorProfile) { +- *dst = rgbBlend(*dst, src, coverage); + } else if (srcLinear.isOpaque()) { + rgbBlendPixel(dst, coverage, srcLinear, colorProfile); + } else { +-- +2.23.0 + diff --git a/0002-Revert-Fix-crash-with-gamma-corrected-text-blending-.patch b/0002-Revert-Fix-crash-with-gamma-corrected-text-blending-.patch new file mode 100644 index 0000000..59d12ff --- /dev/null +++ b/0002-Revert-Fix-crash-with-gamma-corrected-text-blending-.patch @@ -0,0 +1,60 @@ +From a61813ac9cd94a6e7c79ccfacca9e830f905e6dc Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Wed, 25 Dec 2019 18:54:52 +0100 +Subject: [PATCH 2/3] Revert "Fix crash with gamma-corrected text blending + disabled" + +This reverts commit 6db83e2584a30b1339adba18279fbfd527a10ce7. +--- + src/gui/painting/qdrawhelper.cpp | 14 ++++---------- + 1 file changed, 4 insertions(+), 10 deletions(-) + +diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp +index e5f752b94e..3d06a27d8e 100644 +--- a/src/gui/painting/qdrawhelper.cpp ++++ b/src/gui/painting/qdrawhelper.cpp +@@ -5670,8 +5670,7 @@ static inline void alphamapblend_argb32(quint32 *dst, int coverage, QRgba64 srcL + QRgb s = *dst; + blend_pixel(s, src); + // Then gamma-corrected blend with glyph shape +- QRgba64 s64 = colorProfile ? colorProfile->toLinear64(s) : QRgba64::fromArgb32(s); +- grayBlendPixel(dst, coverage, s64, colorProfile); ++ grayBlendPixel(dst, coverage, colorProfile->toLinear64(s), colorProfile); + } + } + +@@ -5712,9 +5711,7 @@ static inline void alphamapblend_generic(int coverage, QRgba64 *dest, int x, con + QRgba64 s = dest[x]; + blend_pixel(s, src); + // Then gamma-corrected blend with glyph shape +- if (colorProfile) +- s = colorProfile->toLinear(s); +- grayBlendPixel(dest[x], coverage, s, colorProfile); ++ grayBlendPixel(dest[x], coverage, colorProfile->toLinear(s), colorProfile); + } + } + +@@ -6056,8 +6053,7 @@ static inline void alphargbblend_argb32(quint32 *dst, uint coverage, const QRgba + QRgb s = *dst; + blend_pixel(s, src); + // Then gamma-corrected blend with glyph shape +- QRgba64 s64 = colorProfile ? colorProfile->toLinear64(s) : QRgba64::fromArgb32(s); +- rgbBlendPixel(dst, coverage, s64, colorProfile); ++ rgbBlendPixel(dst, coverage, colorProfile->toLinear64(s), colorProfile); + } + } + +@@ -6088,9 +6084,7 @@ static inline void alphargbblend_generic(uint coverage, QRgba64 *dest, int x, co + QRgba64 s = dest[x]; + blend_pixel(s, src); + // Then gamma-corrected blend with glyph shape +- if (colorProfile) +- s = colorProfile->toLinear(s); +- rgbBlendPixel(dest[x], coverage, s, colorProfile); ++ rgbBlendPixel(dest[x], coverage, colorProfile->toLinear(s), colorProfile); + } + } + +-- +2.23.0 + diff --git a/0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch b/0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch new file mode 100644 index 0000000..0f2dd97 --- /dev/null +++ b/0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch @@ -0,0 +1,336 @@ +From 84a71a1b9e600dc641e7ace5a6b384c0e138753e Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Wed, 25 Dec 2019 18:55:01 +0100 +Subject: [PATCH 3/3] Revert "Handle transparent pen color in fast text path" + +This reverts commit d0d18b06458edd3b6b0712ea71c787404bbaa7e1. +--- + src/gui/painting/qdrawhelper.cpp | 187 +++++++++++------------ + src/gui/painting/qdrawhelper_p.h | 2 - + src/gui/painting/qpaintengine_raster.cpp | 4 +- + src/gui/painting/qrgba64_p.h | 2 - + 4 files changed, 94 insertions(+), 101 deletions(-) + +diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp +index 3d06a27d8e..edb363ac69 100644 +--- a/src/gui/painting/qdrawhelper.cpp ++++ b/src/gui/painting/qdrawhelper.cpp +@@ -5658,60 +5658,44 @@ static inline void alphamapblend_argb32(quint32 *dst, int coverage, QRgba64 srcL + { + if (coverage == 0) { + // nothing +- } else if (coverage == 255 || !colorProfile) { +- blend_pixel(*dst, src, coverage); +- } else if (*dst < 0xff000000) { +- // Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571 +- blend_pixel(*dst, src, coverage); +- } else if (src >= 0xff000000) { +- grayBlendPixel(dst, coverage, srcLinear, colorProfile); ++ } else if (coverage == 255) { ++ *dst = src; ++ } else if (!colorProfile) { ++ *dst = INTERPOLATE_PIXEL_255(src, coverage, *dst, 255 - coverage); + } else { +- // First do naive blend with text-color +- QRgb s = *dst; +- blend_pixel(s, src); +- // Then gamma-corrected blend with glyph shape +- grayBlendPixel(dst, coverage, colorProfile->toLinear64(s), colorProfile); ++ if (*dst >= 0xff000000) { ++ grayBlendPixel(dst, coverage, srcLinear, colorProfile); ++ } else { ++ // Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571 ++ *dst = INTERPOLATE_PIXEL_255(src, coverage, *dst, 255 - coverage); ++ } + } + } + + #if QT_CONFIG(raster_64bit) +- +-static inline void grayBlendPixel(QRgba64 &dst, int coverage, QRgba64 srcLinear, const QColorTrcLut *colorProfile) +-{ +- // Do a gammacorrected gray alphablend... +- QRgba64 dstColor = dst; +- if (colorProfile) { +- if (dstColor.isOpaque()) +- dstColor = colorProfile->toLinear(dstColor); +- else if (!dstColor.isTransparent()) +- dstColor = colorProfile->toLinear(dstColor.unpremultiplied()).premultiplied(); +- } +- +- blend_pixel(dstColor, srcLinear, coverage); +- +- if (colorProfile) { +- if (dstColor.isOpaque()) +- dstColor = colorProfile->fromLinear(dstColor); +- else if (!dstColor.isTransparent()) +- dstColor = colorProfile->fromLinear(dstColor.unpremultiplied()).premultiplied(); +- } +- dst = dstColor; +-} +- + static inline void alphamapblend_generic(int coverage, QRgba64 *dest, int x, const QRgba64 &srcLinear, const QRgba64 &src, const QColorTrcLut *colorProfile) + { + if (coverage == 0) { + // nothing + } else if (coverage == 255) { +- blend_pixel(dest[x], src); +- } else if (src.isOpaque()) { +- grayBlendPixel(dest[x], coverage, srcLinear, colorProfile); ++ dest[x] = src; + } else { +- // First do naive blend with text-color +- QRgba64 s = dest[x]; +- blend_pixel(s, src); +- // Then gamma-corrected blend with glyph shape +- grayBlendPixel(dest[x], coverage, colorProfile->toLinear(s), colorProfile); ++ QRgba64 dstColor = dest[x]; ++ if (colorProfile) { ++ if (dstColor.isOpaque()) ++ dstColor = colorProfile->toLinear(dstColor); ++ else if (!dstColor.isTransparent()) ++ dstColor = colorProfile->toLinear(dstColor.unpremultiplied()).premultiplied(); ++ } ++ ++ dstColor = interpolate255(srcLinear, coverage, dstColor, 255 - coverage); ++ if (colorProfile) { ++ if (dstColor.isOpaque()) ++ dstColor = colorProfile->fromLinear(dstColor); ++ else if (!dstColor.isTransparent()) ++ dstColor = colorProfile->fromLinear(dstColor.unpremultiplied()).premultiplied(); ++ } ++ dest[x] = dstColor; + } + } + +@@ -5730,8 +5714,12 @@ static void qt_alphamapblit_generic(QRasterBuffer *rasterBuffer, + colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA8Text(); + + QRgba64 srcColor = color; +- if (colorProfile && color.isOpaque()) +- srcColor = colorProfile->toLinear(srcColor); ++ if (colorProfile) { ++ if (color.isOpaque()) ++ srcColor = colorProfile->toLinear(srcColor); ++ else ++ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied(); ++ } + + alignas(8) QRgba64 buffer[BufferSize]; + const DestFetchProc64 destFetch64 = destFetchProc64[rasterBuffer->format]; +@@ -5804,8 +5792,12 @@ static void qt_alphamapblit_generic(QRasterBuffer *rasterBuffer, + colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA8Text(); + + QRgba64 srcColor = color; +- if (colorProfile && color.isOpaque()) +- srcColor = colorProfile->toLinear(srcColor); ++ if (colorProfile) { ++ if (color.isOpaque()) ++ srcColor = colorProfile->toLinear(srcColor); ++ else ++ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied(); ++ } + + quint32 buffer[BufferSize]; + const DestFetchProc destFetch = destFetchProc[rasterBuffer->format]; +@@ -5880,7 +5872,7 @@ void qt_alphamapblit_quint16(QRasterBuffer *rasterBuffer, + int mapWidth, int mapHeight, int mapStride, + const QClipData *clip, bool useGammaCorrection) + { +- if (useGammaCorrection || !color.isOpaque()) { ++ if (useGammaCorrection) { + qt_alphamapblit_generic(rasterBuffer, x, y, color, map, mapWidth, mapHeight, mapStride, clip, useGammaCorrection); + return; + } +@@ -5939,8 +5931,12 @@ static void qt_alphamapblit_argb32(QRasterBuffer *rasterBuffer, + colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA8Text(); + + QRgba64 srcColor = color; +- if (colorProfile && color.isOpaque()) +- srcColor = colorProfile->toLinear(srcColor); ++ if (colorProfile) { ++ if (color.isOpaque()) ++ srcColor = colorProfile->toLinear(srcColor); ++ else ++ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied(); ++ } + + if (!clip) { + quint32 *dest = reinterpret_cast(rasterBuffer->scanLine(y)) + x; +@@ -6035,59 +6031,48 @@ static inline QRgb rgbBlend(QRgb d, QRgb s, uint rgbAlpha) + #endif + } + +-static inline void alphargbblend_argb32(quint32 *dst, uint coverage, const QRgba64 &srcLinear, quint32 src, const QColorTrcLut *colorProfile) ++#if QT_CONFIG(raster_64bit) ++static inline void alphargbblend_generic(uint coverage, QRgba64 *dest, int x, const QRgba64 &srcLinear, const QRgba64 &src, const QColorTrcLut *colorProfile) + { + if (coverage == 0xff000000) { + // nothing +- } else if (coverage == 0xffffffff && qAlpha(src) == 255) { +- blend_pixel(*dst, src); +- } else if (!colorProfile) { +- *dst = rgbBlend(*dst, src, coverage); +- } else if (*dst < 0xff000000) { +- // Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571 +- blend_pixel(*dst, src, qRgbAvg(coverage)); +- } else if (srcLinear.isOpaque()) { +- rgbBlendPixel(dst, coverage, srcLinear, colorProfile); ++ } else if (coverage == 0xffffffff) { ++ dest[x] = src; + } else { +- // First do naive blend with text-color +- QRgb s = *dst; +- blend_pixel(s, src); +- // Then gamma-corrected blend with glyph shape +- rgbBlendPixel(dst, coverage, colorProfile->toLinear64(s), colorProfile); ++ QRgba64 dstColor = dest[x]; ++ if (dstColor.isOpaque()) { ++ if (colorProfile) ++ dstColor = colorProfile->toLinear(dstColor); ++ dstColor = rgbBlend(dstColor, srcLinear, coverage); ++ if (colorProfile) ++ dstColor = colorProfile->fromLinear(dstColor); ++ dest[x] = dstColor; ++ } else { ++ // Do a gray alphablend. ++ alphamapblend_generic(qRgbAvg(coverage), dest, x, srcLinear, src, colorProfile); ++ } + } + } ++#endif + +-#if QT_CONFIG(raster_64bit) +-static inline void rgbBlendPixel(QRgba64 &dst, int coverage, QRgba64 slinear, const QColorTrcLut *colorProfile) +-{ +- // Do a gammacorrected RGB alphablend... +- const QRgba64 dlinear = colorProfile ? colorProfile->toLinear64(dst) : dst; +- +- QRgba64 blend = rgbBlend(dlinear, slinear, coverage); +- +- dst = colorProfile ? colorProfile->fromLinear(blend) : blend; +-} +- +-static inline void alphargbblend_generic(uint coverage, QRgba64 *dest, int x, const QRgba64 &srcLinear, const QRgba64 &src, const QColorTrcLut *colorProfile) ++static inline void alphargbblend_argb32(quint32 *dst, uint coverage, const QRgba64 &srcLinear, quint32 src, const QColorTrcLut *colorProfile) + { + if (coverage == 0xff000000) { + // nothing + } else if (coverage == 0xffffffff) { +- blend_pixel(dest[x], src); +- } else if (!dest[x].isOpaque()) { +- // Do a gray alphablend. +- alphamapblend_generic(qRgbAvg(coverage), dest, x, srcLinear, src, colorProfile); +- } else if (src.isOpaque()) { +- rgbBlendPixel(dest[x], coverage, srcLinear, colorProfile); +- } else { +- // First do naive blend with text-color +- QRgba64 s = dest[x]; +- blend_pixel(s, src); +- // Then gamma-corrected blend with glyph shape +- rgbBlendPixel(dest[x], coverage, colorProfile->toLinear(s), colorProfile); ++ *dst = src; ++ } else if (*dst < 0xff000000) { ++ // Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571 ++ const int a = qRgbAvg(coverage); ++ *dst = INTERPOLATE_PIXEL_255(src, a, *dst, 255 - a); ++ } else if (!colorProfile) { ++ *dst = rgbBlend(*dst, src, coverage); ++ } else { ++ rgbBlendPixel(dst, coverage, srcLinear, colorProfile); + } + } + ++#if QT_CONFIG(raster_64bit) + static void qt_alphargbblit_generic(QRasterBuffer *rasterBuffer, + int x, int y, const QRgba64 &color, + const uint *src, int mapWidth, int mapHeight, int srcStride, +@@ -6102,8 +6087,12 @@ static void qt_alphargbblit_generic(QRasterBuffer *rasterBuffer, + colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA32Text(); + + QRgba64 srcColor = color; +- if (colorProfile && color.isOpaque()) +- srcColor = colorProfile->toLinear(srcColor); ++ if (colorProfile) { ++ if (color.isOpaque()) ++ srcColor = colorProfile->toLinear(srcColor); ++ else ++ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied(); ++ } + + alignas(8) QRgba64 buffer[BufferSize]; + const DestFetchProc64 destFetch64 = destFetchProc64[rasterBuffer->format]; +@@ -6175,8 +6164,12 @@ static void qt_alphargbblit_generic(QRasterBuffer *rasterBuffer, + colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA32Text(); + + QRgba64 srcColor = color; +- if (colorProfile && color.isOpaque()) +- srcColor = colorProfile->toLinear(srcColor); ++ if (colorProfile) { ++ if (color.isOpaque()) ++ srcColor = colorProfile->toLinear(srcColor); ++ else ++ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied(); ++ } + + quint32 buffer[BufferSize]; + const DestFetchProc destFetch = destFetchProc[rasterBuffer->format]; +@@ -6249,8 +6242,12 @@ static void qt_alphargbblit_argb32(QRasterBuffer *rasterBuffer, + colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA32Text(); + + QRgba64 srcColor = color; +- if (colorProfile && color.isOpaque()) +- srcColor = colorProfile->toLinear(srcColor); ++ if (colorProfile) { ++ if (color.isOpaque()) ++ srcColor = colorProfile->toLinear(srcColor); ++ else ++ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied(); ++ } + + if (!clip) { + quint32 *dst = reinterpret_cast(rasterBuffer->scanLine(y)) + x; +diff --git a/src/gui/painting/qdrawhelper_p.h b/src/gui/painting/qdrawhelper_p.h +index dd42b96d79..9c5d525722 100644 +--- a/src/gui/painting/qdrawhelper_p.h ++++ b/src/gui/painting/qdrawhelper_p.h +@@ -671,8 +671,6 @@ static Q_ALWAYS_INLINE void blend_pixel(quint32 &dst, const quint32 src) + + static Q_ALWAYS_INLINE void blend_pixel(quint32 &dst, const quint32 src, const int const_alpha) + { +- if (const_alpha == 255) +- return blend_pixel(dst, src); + if (src != 0) { + const quint32 s = BYTE_MUL(src, const_alpha); + dst = s + BYTE_MUL(dst, qAlpha(~s)); +diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp +index 40c822076b..87312b920a 100644 +--- a/src/gui/painting/qpaintengine_raster.cpp ++++ b/src/gui/painting/qpaintengine_raster.cpp +@@ -842,8 +842,8 @@ void QRasterPaintEngine::updateRasterState() + const QPainter::CompositionMode mode = s->composition_mode; + s->flags.fast_text = (s->penData.type == QSpanData::Solid) + && s->intOpacity == 256 +- && (mode == QPainter::CompositionMode_SourceOver +- || (mode == QPainter::CompositionMode_Source ++ && (mode == QPainter::CompositionMode_Source ++ || (mode == QPainter::CompositionMode_SourceOver + && s->penData.solidColor.isOpaque())); + } + +diff --git a/src/gui/painting/qrgba64_p.h b/src/gui/painting/qrgba64_p.h +index d145dbfbea..ca879de27c 100644 +--- a/src/gui/painting/qrgba64_p.h ++++ b/src/gui/painting/qrgba64_p.h +@@ -284,8 +284,6 @@ static Q_ALWAYS_INLINE void blend_pixel(QRgba64 &dst, QRgba64 src) + + static Q_ALWAYS_INLINE void blend_pixel(QRgba64 &dst, QRgba64 src, const int const_alpha) + { +- if (const_alpha == 255) +- return blend_pixel(dst, src); + if (!src.isTransparent()) { + src = multiplyAlpha255(src, const_alpha); + dst = src + multiplyAlpha65535(dst, 65535 - src.alpha()); +-- +2.23.0 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 7dd0634..03fa680 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Thu Dec 26 00:05:29 UTC 2019 - Fabian Vogt + +- Add patches to avoid regression with rendering of translucent text + (QTBUG-80982): + * 0001-Revert-Fix-text-rendering-regression-on-semi-transpa.patch + * 0002-Revert-Fix-crash-with-gamma-corrected-text-blending-.patch + * 0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch + ------------------------------------------------------------------- Thu Dec 12 12:40:51 UTC 2019 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 9ceae3f..180679d 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -67,6 +67,10 @@ Patch23: 0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch Patch24: fix-fixqt4headers.patch # Revert to restore compatibility with akonadi and possibly other applications Patch30: 0001-Revert-Always-escape-the-table-names-when-creating-t.patch +# Reverts to avoid text rendering bug (QTBUG-80982) +Patch40: 0001-Revert-Fix-text-rendering-regression-on-semi-transpa.patch +Patch41: 0002-Revert-Fix-crash-with-gamma-corrected-text-blending-.patch +Patch42: 0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch # patches 1000-2000 and above from upstream 5.14 branch # # patches 2000-3000 and above from upstream 5.15/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 From 4128727b7dba7ed191daa87a94e7d907da082b28f1cab062c9b51f795fc813ee Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Fri, 27 Dec 2019 13:07:53 +0000 Subject: [PATCH 8/8] - Update license tag OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.14/libqt5-qtbase?expand=0&rev=8 --- libqt5-qtbase.changes | 5 +++++ libqt5-qtbase.spec | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 03fa680..0e69caf 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Dec 27 13:07:32 UTC 2019 - Fabian Vogt + +- Update license tag + ------------------------------------------------------------------- Thu Dec 26 00:05:29 UTC 2019 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 180679d..9802136 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -39,7 +39,7 @@ Name: libqt5-qtbase Version: 5.14.0 Release: 0 Summary: C++ Program Library, Core Components -License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-only +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