[arch-commits] Commit in qt5-base/repos/extra-x86_64 (6 files)

Antonio Rojas arojas at archlinux.org
Fri Jul 3 11:09:36 UTC 2020


    Date: Friday, July 3, 2020 @ 11:09:35
  Author: arojas
Revision: 390785

archrelease: copy trunk to extra-x86_64

Added:
  qt5-base/repos/extra-x86_64/PKGBUILD
    (from rev 390784, qt5-base/trunk/PKGBUILD)
  qt5-base/repos/extra-x86_64/qt5-base-cflags.patch
    (from rev 390784, qt5-base/trunk/qt5-base-cflags.patch)
  qt5-base/repos/extra-x86_64/qtbug-74252.patch
    (from rev 390784, qt5-base/trunk/qtbug-74252.patch)
Deleted:
  qt5-base/repos/extra-x86_64/PKGBUILD
  qt5-base/repos/extra-x86_64/qt5-base-cflags.patch
  qt5-base/repos/extra-x86_64/qtbug-74252.patch

-----------------------+
 PKGBUILD              |  221 ++++++++++++++++++++++++------------------------
 qt5-base-cflags.patch |   92 +++++++++----------
 qtbug-74252.patch     |  212 +++++++++++++++++++++++-----------------------
 3 files changed, 264 insertions(+), 261 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2020-07-03 11:09:20 UTC (rev 390784)
+++ PKGBUILD	2020-07-03 11:09:35 UTC (rev 390785)
@@ -1,109 +0,0 @@
-# Maintainer: Felix Yan <felixonmars at archlinux.org>
-# Contributor: Andrea Scarpino <andrea at archlinux.org>
-
-pkgbase=qt5-base
-pkgname=(qt5-base qt5-xcb-private-headers)
-_qtver=5.15.0
-pkgver=${_qtver/-/}
-pkgrel=3
-arch=('x86_64')
-url='https://www.qt.io'
-license=('GPL3' 'LGPL3' 'FDL' 'custom')
-pkgdesc='A cross-platform application and UI framework'
-depends=('libjpeg-turbo' 'xcb-util-keysyms' 'xcb-util-renderutil' 'libgl' 'fontconfig' 'xdg-utils'
-         'shared-mime-info' 'xcb-util-wm' 'libxrender' 'libxi' 'sqlite' 'xcb-util-image' 'mesa'
-         'tslib' 'libinput' 'libxkbcommon-x11' 'libproxy' 'libcups' 'double-conversion' 'md4c')
-makedepends=('libfbclient' 'mariadb-libs' 'sqlite' 'unixodbc' 'postgresql-libs' 'alsa-lib' 'gst-plugins-base-libs'
-             'gtk3' 'libpulse' 'cups' 'freetds' 'vulkan-headers')
-optdepends=('qt5-svg: to use SVG icon themes'
-            'qt5-wayland: to run Qt applications in a Wayland session'
-            'qt5-translations: for some native UI translations'
-            'postgresql-libs: PostgreSQL driver'
-            'mariadb-libs: MariaDB driver'
-            'unixodbc: ODBC driver'
-            'libfbclient: Firebird/iBase driver'
-            'freetds: MS SQL driver'
-            'gtk3: GTK platform plugin'
-            'perl: for fixqt4headers and syncqt')
-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")
-sha256sums=('9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5'
-            'abb94453c9fe54fde4811bc5475b88796c8db1f5cd75ddc68918aff20139b1aa'
-            'cf707cd970650f8b60f8897692b36708ded9ba116723ec8fcd885576783fe85c'
-            '0c489d2faedd35670232a2c028c5c78a606ab81bb6f40f58e3cfe2bc6b6ac3b2'
-            'd7d58b2cadd6e79c3dfb69da664ecac9c95a78d6e142cb8687fce68e24a10776')
-
-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 ../qt5-base-cflags.patch # Use system CFLAGS
-}
-
-build() {
-  cd ${_pkgfqn}
-
-  ./configure -confirm-license -opensource -v \
-    -prefix /usr \
-    -docdir /usr/share/doc/qt \
-    -headerdir /usr/include/qt \
-    -archdatadir /usr/lib/qt \
-    -datadir /usr/share/qt \
-    -sysconfdir /etc/xdg \
-    -examplesdir /usr/share/doc/qt/examples \
-    -plugin-sql-{psql,mysql,sqlite,odbc,ibase} \
-    -system-sqlite \
-    -openssl-linked \
-    -nomake examples \
-    -no-rpath \
-    -dbus-linked \
-    -system-harfbuzz \
-    -journald \
-    -no-mimetype-database \
-    -no-use-gold-linker \
-    -reduce-relocations
-  make
-}
-
-package_qt5-base() {
-  pkgdesc='A cross-platform application and UI framework'
-
-  cd ${_pkgfqn}
-  make INSTALL_ROOT="${pkgdir}" install
-
-  install -Dm644 LICENSE* -t "$pkgdir"/usr/share/licenses/$pkgbase
-
-  # Drop QMAKE_PRL_BUILD_DIR because reference the build dir
-  find "${pkgdir}/usr/lib" -type f -name '*.prl' \
-    -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
-
-  # Fix wrong qmake path in pri file
-  sed -i "s|${srcdir}/${_pkgfqn}|/usr|" \
-    "${pkgdir}"/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri
-
-  # Symlinks for backwards compatibility
-  for b in "${pkgdir}"/usr/bin/*; do
-    ln -s $(basename $b) "${pkgdir}"/usr/bin/$(basename $b)-qt5
-  done
-}
-
-package_qt5-xcb-private-headers() {
-  pkgdesc='Private headers for Qt5 Xcb'
-
-  depends=("qt5-base=$pkgver")
-  optdepends=()
-  groups=()
-  conflicts=()
-
-  cd ${_pkgfqn}
-  install -d -m755 "$pkgdir"/usr/include/qtxcb-private
-  cp -r src/plugins/platforms/xcb/*.h "$pkgdir"/usr/include/qtxcb-private/
-}

Copied: qt5-base/repos/extra-x86_64/PKGBUILD (from rev 390784, qt5-base/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2020-07-03 11:09:35 UTC (rev 390785)
@@ -0,0 +1,112 @@
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Contributor: Andrea Scarpino <andrea at archlinux.org>
+
+pkgbase=qt5-base
+pkgname=(qt5-base qt5-xcb-private-headers)
+_qtver=5.15.0
+pkgver=${_qtver/-/}
+pkgrel=4
+arch=('x86_64')
+url='https://www.qt.io'
+license=('GPL3' 'LGPL3' 'FDL' 'custom')
+pkgdesc='A cross-platform application and UI framework'
+depends=('libjpeg-turbo' 'xcb-util-keysyms' 'xcb-util-renderutil' 'libgl' 'fontconfig' 'xdg-utils'
+         'shared-mime-info' 'xcb-util-wm' 'libxrender' 'libxi' 'sqlite' 'xcb-util-image' 'mesa'
+         'tslib' 'libinput' 'libxkbcommon-x11' 'libproxy' 'libcups' 'double-conversion' 'md4c')
+makedepends=('libfbclient' 'mariadb-libs' 'sqlite' 'unixodbc' 'postgresql-libs' 'alsa-lib' 'gst-plugins-base-libs'
+             'gtk3' 'libpulse' 'cups' 'freetds' 'vulkan-headers')
+optdepends=('qt5-svg: to use SVG icon themes'
+            'qt5-wayland: to run Qt applications in a Wayland session'
+            'qt5-translations: for some native UI translations'
+            'postgresql-libs: PostgreSQL driver'
+            'mariadb-libs: MariaDB driver'
+            'unixodbc: ODBC driver'
+            'libfbclient: Firebird/iBase driver'
+            'freetds: MS SQL driver'
+            'gtk3: GTK platform plugin'
+            'perl: for fixqt4headers and syncqt')
+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')
+
+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
+}
+
+build() {
+  cd ${_pkgfqn}
+
+  ./configure -confirm-license -opensource -v \
+    -prefix /usr \
+    -docdir /usr/share/doc/qt \
+    -headerdir /usr/include/qt \
+    -archdatadir /usr/lib/qt \
+    -datadir /usr/share/qt \
+    -sysconfdir /etc/xdg \
+    -examplesdir /usr/share/doc/qt/examples \
+    -plugin-sql-{psql,mysql,sqlite,odbc,ibase} \
+    -system-sqlite \
+    -openssl-linked \
+    -nomake examples \
+    -no-rpath \
+    -dbus-linked \
+    -system-harfbuzz \
+    -journald \
+    -no-mimetype-database \
+    -no-use-gold-linker \
+    -reduce-relocations
+  make
+}
+
+package_qt5-base() {
+  pkgdesc='A cross-platform application and UI framework'
+
+  cd ${_pkgfqn}
+  make INSTALL_ROOT="${pkgdir}" install
+
+  install -Dm644 LICENSE* -t "$pkgdir"/usr/share/licenses/$pkgbase
+
+  # Drop QMAKE_PRL_BUILD_DIR because reference the build dir
+  find "${pkgdir}/usr/lib" -type f -name '*.prl' \
+    -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
+
+  # Fix wrong qmake path in pri file
+  sed -i "s|${srcdir}/${_pkgfqn}|/usr|" \
+    "${pkgdir}"/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri
+
+  # Symlinks for backwards compatibility
+  for b in "${pkgdir}"/usr/bin/*; do
+    ln -s $(basename $b) "${pkgdir}"/usr/bin/$(basename $b)-qt5
+  done
+}
+
+package_qt5-xcb-private-headers() {
+  pkgdesc='Private headers for Qt5 Xcb'
+
+  depends=("qt5-base=$pkgver")
+  optdepends=()
+  groups=()
+  conflicts=()
+
+  cd ${_pkgfqn}
+  install -d -m755 "$pkgdir"/usr/include/qtxcb-private
+  cp -r src/plugins/platforms/xcb/*.h "$pkgdir"/usr/include/qtxcb-private/
+}

Deleted: qt5-base-cflags.patch
===================================================================
--- qt5-base-cflags.patch	2020-07-03 11:09:20 UTC (rev 390784)
+++ qt5-base-cflags.patch	2020-07-03 11:09:35 UTC (rev 390785)
@@ -1,46 +0,0 @@
-diff --git a/mkspecs/common/g++-unix.conf b/mkspecs/common/g++-unix.conf
-index a493cd5984..41342f5020 100644
---- a/mkspecs/common/g++-unix.conf
-+++ b/mkspecs/common/g++-unix.conf
-@@ -10,5 +10,6 @@
- 
- include(g++-base.conf)
- 
--QMAKE_LFLAGS_RELEASE   += -Wl,-O1
-+SYSTEM_LDFLAGS = $$(LDFLAGS)
-+!isEmpty(SYSTEM_LDFLAGS) { eval(QMAKE_LFLAGS_RELEASE += $$(LDFLAGS)) } else { QMAKE_LFLAGS_RELEASE   += -Wl,-O1 }
- QMAKE_LFLAGS_NOUNDEF   += -Wl,--no-undefined
-diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
-index 1f919d270a..7ef6046326 100644
---- a/mkspecs/common/gcc-base.conf
-+++ b/mkspecs/common/gcc-base.conf
-@@ -40,9 +40,11 @@ QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os
- QMAKE_CFLAGS_DEPS          += -M
- QMAKE_CFLAGS_WARN_ON       += -Wall -Wextra
- QMAKE_CFLAGS_WARN_OFF      += -w
--QMAKE_CFLAGS_RELEASE       += $$QMAKE_CFLAGS_OPTIMIZE
--QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g
--QMAKE_CFLAGS_DEBUG         += -g
-+SYSTEM_CFLAGS = $$(CFLAGS)
-+SYSTEM_DEBUG_CFLAGS = $$(DEBUG_CFLAGS)
-+!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE += $$(CPPFLAGS) $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
-+!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(CPPFLAGS) -g $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
-+!isEmpty(SYSTEM_DEBUG_CFLAGS) { eval(QMAKE_CFLAGS_DEBUG += $$(DEBUG_CFLAGS)) } else { QMAKE_CFLAGS_DEBUG += -g }
- QMAKE_CFLAGS_SHLIB         += $$QMAKE_CFLAGS_PIC
- QMAKE_CFLAGS_STATIC_LIB    += $$QMAKE_CFLAGS_PIC
- QMAKE_CFLAGS_APP           += $$QMAKE_CFLAGS_PIC
-@@ -59,9 +61,11 @@ QMAKE_CXXFLAGS            += $$QMAKE_CFLAGS
- QMAKE_CXXFLAGS_DEPS       += $$QMAKE_CFLAGS_DEPS
- QMAKE_CXXFLAGS_WARN_ON    += $$QMAKE_CFLAGS_WARN_ON
- QMAKE_CXXFLAGS_WARN_OFF   += $$QMAKE_CFLAGS_WARN_OFF
--QMAKE_CXXFLAGS_RELEASE    += $$QMAKE_CFLAGS_RELEASE
--QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
--QMAKE_CXXFLAGS_DEBUG      += $$QMAKE_CFLAGS_DEBUG
-+SYSTEM_CXXFLAGS = $$(CXXFLAGS)
-+SYSTEM_DEBUG_CXXFLAGS = $$(DEBUG_CXXFLAGS)
-+!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE += $$(CPPFLAGS) $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
-+!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$(CPPFLAGS) -g $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
-+!isEmpty(SYSTEM_DEBUG_CXXFLAGS) { eval(QMAKE_CXXFLAGS_DEBUG += $$(DEBUG_CXXFLAGS)) } else { QMAKE_CXXFLAGS_DEBUG += -g }
- QMAKE_CXXFLAGS_SHLIB      += $$QMAKE_CFLAGS_SHLIB
- QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB
- QMAKE_CXXFLAGS_APP        += $$QMAKE_CFLAGS_APP

Copied: qt5-base/repos/extra-x86_64/qt5-base-cflags.patch (from rev 390784, qt5-base/trunk/qt5-base-cflags.patch)
===================================================================
--- qt5-base-cflags.patch	                        (rev 0)
+++ qt5-base-cflags.patch	2020-07-03 11:09:35 UTC (rev 390785)
@@ -0,0 +1,46 @@
+diff --git a/mkspecs/common/g++-unix.conf b/mkspecs/common/g++-unix.conf
+index a493cd5984..41342f5020 100644
+--- a/mkspecs/common/g++-unix.conf
++++ b/mkspecs/common/g++-unix.conf
+@@ -10,5 +10,6 @@
+ 
+ include(g++-base.conf)
+ 
+-QMAKE_LFLAGS_RELEASE   += -Wl,-O1
++SYSTEM_LDFLAGS = $$(LDFLAGS)
++!isEmpty(SYSTEM_LDFLAGS) { eval(QMAKE_LFLAGS_RELEASE += $$(LDFLAGS)) } else { QMAKE_LFLAGS_RELEASE   += -Wl,-O1 }
+ QMAKE_LFLAGS_NOUNDEF   += -Wl,--no-undefined
+diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
+index 1f919d270a..7ef6046326 100644
+--- a/mkspecs/common/gcc-base.conf
++++ b/mkspecs/common/gcc-base.conf
+@@ -40,9 +40,11 @@ QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os
+ QMAKE_CFLAGS_DEPS          += -M
+ QMAKE_CFLAGS_WARN_ON       += -Wall -Wextra
+ QMAKE_CFLAGS_WARN_OFF      += -w
+-QMAKE_CFLAGS_RELEASE       += $$QMAKE_CFLAGS_OPTIMIZE
+-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g
+-QMAKE_CFLAGS_DEBUG         += -g
++SYSTEM_CFLAGS = $$(CFLAGS)
++SYSTEM_DEBUG_CFLAGS = $$(DEBUG_CFLAGS)
++!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE += $$(CPPFLAGS) $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
++!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(CPPFLAGS) -g $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
++!isEmpty(SYSTEM_DEBUG_CFLAGS) { eval(QMAKE_CFLAGS_DEBUG += $$(DEBUG_CFLAGS)) } else { QMAKE_CFLAGS_DEBUG += -g }
+ QMAKE_CFLAGS_SHLIB         += $$QMAKE_CFLAGS_PIC
+ QMAKE_CFLAGS_STATIC_LIB    += $$QMAKE_CFLAGS_PIC
+ QMAKE_CFLAGS_APP           += $$QMAKE_CFLAGS_PIC
+@@ -59,9 +61,11 @@ QMAKE_CXXFLAGS            += $$QMAKE_CFLAGS
+ QMAKE_CXXFLAGS_DEPS       += $$QMAKE_CFLAGS_DEPS
+ QMAKE_CXXFLAGS_WARN_ON    += $$QMAKE_CFLAGS_WARN_ON
+ QMAKE_CXXFLAGS_WARN_OFF   += $$QMAKE_CFLAGS_WARN_OFF
+-QMAKE_CXXFLAGS_RELEASE    += $$QMAKE_CFLAGS_RELEASE
+-QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
+-QMAKE_CXXFLAGS_DEBUG      += $$QMAKE_CFLAGS_DEBUG
++SYSTEM_CXXFLAGS = $$(CXXFLAGS)
++SYSTEM_DEBUG_CXXFLAGS = $$(DEBUG_CXXFLAGS)
++!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE += $$(CPPFLAGS) $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
++!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$(CPPFLAGS) -g $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
++!isEmpty(SYSTEM_DEBUG_CXXFLAGS) { eval(QMAKE_CXXFLAGS_DEBUG += $$(DEBUG_CXXFLAGS)) } else { QMAKE_CXXFLAGS_DEBUG += -g }
+ QMAKE_CXXFLAGS_SHLIB      += $$QMAKE_CFLAGS_SHLIB
+ QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB
+ QMAKE_CXXFLAGS_APP        += $$QMAKE_CFLAGS_APP

Deleted: qtbug-74252.patch
===================================================================
--- qtbug-74252.patch	2020-07-03 11:09:20 UTC (rev 390784)
+++ qtbug-74252.patch	2020-07-03 11:09:35 UTC (rev 390785)
@@ -1,106 +0,0 @@
-From add92a551cf601b5c9e074046326f95ccc38062e Mon Sep 17 00:00:00 2001
-From: Albert Astals Cid <aacid at kde.org>
-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 <albert.astals.cid at kdab.com>
-Reviewed-by: Albert Astals Cid <albert.astals.cid at kdab.com>
-Reviewed-by: Shawn Rutledge <shawn.rutledge at qt.io>
----
- 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

Copied: qt5-base/repos/extra-x86_64/qtbug-74252.patch (from rev 390784, qt5-base/trunk/qtbug-74252.patch)
===================================================================
--- qtbug-74252.patch	                        (rev 0)
+++ qtbug-74252.patch	2020-07-03 11:09:35 UTC (rev 390785)
@@ -0,0 +1,106 @@
+From add92a551cf601b5c9e074046326f95ccc38062e Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <aacid at kde.org>
+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 <albert.astals.cid at kdab.com>
+Reviewed-by: Albert Astals Cid <albert.astals.cid at kdab.com>
+Reviewed-by: Shawn Rutledge <shawn.rutledge at qt.io>
+---
+ 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



More information about the arch-commits mailing list