From 66025fa28c88bbddc633e2fc4d5095a2ff143a08 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Sat, 12 Sep 2020 19:17:07 +0000 Subject: [PATCH] extra/qt5-base to 5.15.1-1 --- extra/qt5-base/PKGBUILD | 22 ++----- extra/qt5-base/qtbug-74252.patch | 106 ------------------------------- 2 files changed, 5 insertions(+), 123 deletions(-) delete mode 100644 extra/qt5-base/qtbug-74252.patch diff --git a/extra/qt5-base/PKGBUILD b/extra/qt5-base/PKGBUILD index 92e62dad3..3071fb5d4 100644 --- a/extra/qt5-base/PKGBUILD +++ b/extra/qt5-base/PKGBUILD @@ -8,9 +8,9 @@ pkgbase=qt5-base pkgname=(qt5-base qt5-xcb-private-headers) -_qtver=5.15.0 +_qtver=5.15.1 pkgver=${_qtver/-/} -pkgrel=5 +pkgrel=1 arch=('x86_64') url='https://www.qt.io' license=('GPL3' 'LGPL3' 'FDL' 'custom') @@ -34,25 +34,13 @@ conflicts=('qtchooser') groups=('qt' 'qt5') _pkgfqn="${pkgbase/5-/}-everywhere-src-${_qtver}" source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz" - "qt5-base-QTBUG-82910.patch::https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=patch;h=54aa63be9b74e8de72db9efbe6809ab1a97b29a7" - qt5-base-cflags.patch - qtbug-74252.patch - qtbug-78966.patch::"https://code.qt.io/cgit/qt/qtbase.git/patch/?id=777f2a1c" - qtbug-84619.patch::"https://code.qt.io/cgit/qt/qtbase.git/patch/?id=9d2b474b") -sha256sums=('9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5' - 'abb94453c9fe54fde4811bc5475b88796c8db1f5cd75ddc68918aff20139b1aa' - 'cf707cd970650f8b60f8897692b36708ded9ba116723ec8fcd885576783fe85c' - '0c489d2faedd35670232a2c028c5c78a606ab81bb6f40f58e3cfe2bc6b6ac3b2' - 'd7d58b2cadd6e79c3dfb69da664ecac9c95a78d6e142cb8687fce68e24a10776' - 'eec8234c7e4d5bb583f39f2cf735536be350296b93af8b469260424ad7ccdb04') + qt5-base-cflags.patch) +sha256sums=('33960404d579675b7210de103ed06a72613bfc4305443e278e2d32a3eb1f3d8c' + 'cf707cd970650f8b60f8897692b36708ded9ba116723ec8fcd885576783fe85c') prepare() { cd ${_pkgfqn} - patch -p1 -i ../qt5-base-QTBUG-82910.patch # https://codereview.qt-project.org/c/qt/qtbase/+/299182 - patch -p1 -i ../qtbug-74252.patch # Fix displaying custom icons - patch -p1 -i ../qtbug-78966.patch # Fix QToolButton menus on multi-screen systems - patch -p1 -i ../qtbug-84619.patch # Fix deadlock patch -p1 -i ../qt5-base-cflags.patch # Use system CFLAGS } diff --git a/extra/qt5-base/qtbug-74252.patch b/extra/qt5-base/qtbug-74252.patch deleted file mode 100644 index 818f859d2..000000000 --- a/extra/qt5-base/qtbug-74252.patch +++ /dev/null @@ -1,106 +0,0 @@ -From add92a551cf601b5c9e074046326f95ccc38062e Mon Sep 17 00:00:00 2001 -From: Albert Astals Cid -Date: Sat, 23 May 2020 01:35:18 +0200 -Subject: [PATCH] Do not fully initialize QIconLoader when setting the fallback - theme - -We need this because without this patch you get bugs both -if you call QIcon::setFallbackThemeName before creating the QGuiApplication and -if you call QIcon::setFallbackThemeName after creating QGuiApplication - -Why do you get a bug if you call QIconLoader::setFallbackThemeName -before creating the QGuiApplication: - * QIcon::setFallbackThemeName calls QIconLoader::instance - * QIconLoader::instance calls QIconLoader::ensureInitialized - * QIconLoader::ensureInitialized calls systemThemeName - * systemThemeName asks the current QPlatformTheme for its - QPlatformTheme::SystemIconThemeName - * But since we're calling this before creating the QGuiApplication - there is no current QPlatformTheme yet, so systemThemeName - is set to empty, which is obviously not what we want - -Why do you get a bug if you call QIconLoader::setFallbackThemeName -after creating the QGuiApplication: - * QGuiApplicationPrivate::init calls - QGuiApplicationPrivate::createPlatformIntegration - * QGuiApplicationPrivate::createPlatformIntegration sets the - current QPlatformTheme and at the end of the very same function - uses QIcon::fromTheme - * Since we haven't called QIconLoader::setFallbackThemeName yet - there is at least one icon lookup that doesn't take - the fallback theme we would like to have into account - -This patch makes it so calling QIconLoader::setFallbackThemeName -before creating the QGuiApplication works. - -The only thing we want to do from QIcon::setFallbackThemeName is set -the internal m_userFallbackTheme, it doesn't care about doing -further initialization of QIconLoader, if it's done, great it's done, -if it is not initialized yet, great it will be initialized later -when someone actually tries to use the QIconloader. - -So it's OK for ensureInitialized() to return early if there is no -platform theme yet, because it will be called again later. - -Pick-to: 5.12 -Pick-to: 5.15 -Fixes: QTBUG-74252 -Change-Id: I65268fc3d3d0bd282d76c76cf75e495bcc9d1a30 -Done-with: Albert Astals Cid -Reviewed-by: Albert Astals Cid -Reviewed-by: Shawn Rutledge ---- - src/gui/image/qicon.cpp | 3 +++ - src/gui/image/qiconloader.cpp | 15 ++++++++++++--- - 2 files changed, 15 insertions(+), 3 deletions(-) - -diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp -index 36f499711e9..91da21c477d 100644 ---- a/src/gui/image/qicon.cpp -+++ b/src/gui/image/qicon.cpp -@@ -1238,6 +1238,9 @@ QString QIcon::fallbackThemeName() - themeSearchPath() containing an index.theme - file describing its contents. - -+ \note This should be done before creating \l QGuiApplication, to ensure -+ correct initialization. -+ - \sa fallbackThemeName(), themeSearchPaths(), themeName() - */ - void QIcon::setFallbackThemeName(const QString &name) -diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp -index 15ab1b3cd90..3fa3bb9c598 100644 ---- a/src/gui/image/qiconloader.cpp -+++ b/src/gui/image/qiconloader.cpp -@@ -112,10 +112,9 @@ extern QFactoryLoader *qt_iconEngineFactoryLoader(); // qicon.cpp - void QIconLoader::ensureInitialized() - { - if (!m_initialized) { -+ if (!QGuiApplicationPrivate::platformTheme()) -+ return; // it's too early: try again later (QTBUG-74252) - m_initialized = true; -- -- Q_ASSERT(qApp); -- - m_systemTheme = systemThemeName(); - - if (m_systemTheme.isEmpty()) -@@ -125,6 +124,16 @@ void QIconLoader::ensureInitialized() - } - } - -+/*! -+ \internal -+ Gets an instance. -+ -+ \l QIcon::setFallbackThemeName() should be called before QGuiApplication is -+ created, to avoid a race condition (QTBUG-74252). When this function is -+ called from there, ensureInitialized() does not succeed because there -+ is no QPlatformTheme yet, so systemThemeName() is empty, and we don't want -+ m_systemTheme to get intialized to the fallback theme instead of the normal one. -+*/ - QIconLoader *QIconLoader::instance() - { - iconLoaderInstance()->ensureInitialized(); --- -2.16.3