Hello community,

here is the log from the commit of package solid for openSUSE:Factory checked 
in at 2019-08-19 21:25:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/solid (Old)
 and      /work/SRC/openSUSE:Factory/.solid.new.22127 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "solid"

Mon Aug 19 21:25:29 2019 rev:74 rq:722510 version:5.61.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/solid/solid.changes      2019-07-26 
12:22:57.558521492 +0200
+++ /work/SRC/openSUSE:Factory/.solid.new.22127/solid.changes   2019-08-19 
21:25:32.640668780 +0200
@@ -1,0 +2,15 @@
+Wed Aug  7 17:51:58 UTC 2019 - Christophe Giboudeaux <christo...@krop.fr>
+
+- Update to 5.61.0
+  * New feature release
+  * For more details please see:
+  * https://www.kde.org/announcements/kde-frameworks-5.61.0.php
+- Changes since 5.60.0:
+  * Make sure solid backends are reentrant
+
+-------------------------------------------------------------------
+Fri Jul 19 11:49:30 UTC 2019 - Wolfgang Bauer <wba...@tmo.at>
+
+- Don't lower minimum Qt version anymore, it requires 5.11 now
+
+-------------------------------------------------------------------

Old:
----
  solid-5.60.0.tar.xz

New:
----
  frameworks.keyring
  solid-5.61.0.tar.xz
  solid-5.61.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ solid.spec ++++++
--- /var/tmp/diff_new_pack.6WxCKq/_old  2019-08-19 21:25:33.240668658 +0200
+++ /var/tmp/diff_new_pack.6WxCKq/_new  2019-08-19 21:25:33.240668658 +0200
@@ -17,17 +17,21 @@
 
 
 %define lname   libKF5Solid5
-%define _tar_path 5.60
+%define _tar_path 5.61
 %bcond_without lang
 Name:           solid
-Version:        5.60.0
+Version:        5.61.0
 Release:        0
 Summary:        KDE Desktop hardware abstraction
 License:        LGPL-2.1-or-later
 Group:          System/GUI/KDE
 URL:            https://www.kde.org
-Source:         
http://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz
-Source1:        baselibs.conf
+Source:         
https://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz
+%if %{with lang}
+Source1:        
https://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz.sig
+Source2:        frameworks.keyring
+%endif
+Source99:       baselibs.conf
 BuildRequires:  bison
 BuildRequires:  cmake >= 3.0
 BuildRequires:  extra-cmake-modules >= %{_tar_path}
@@ -98,9 +102,6 @@
 
 %prep
 %setup -q
-%if 0%{?suse_version} == 1500
-sed -i -e "s/^set *(REQUIRED_QT_VERSION 5.10.0)$/set(REQUIRED_QT_VERSION 
5.9.0)/" CMakeLists.txt
-%endif
 
 %build
   %cmake_kf5 -d build -- -DWITH_NEW_SOLID_JOB=ON -DWITH_NEW_POWER_ASYNC_API=ON 
-DWITH_NEW_POWER_ASYNC_FREEDESKTOP=ON 
-Dlconvert_executable=%{_kf5_libdir}/qt5/bin/lconvert

++++++ solid-5.60.0.tar.xz -> solid-5.61.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/solid-5.60.0/CMakeLists.txt 
new/solid-5.61.0/CMakeLists.txt
--- old/solid-5.60.0/CMakeLists.txt     2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/CMakeLists.txt     2019-08-03 22:01:05.000000000 +0200
@@ -1,16 +1,16 @@
 
 cmake_minimum_required(VERSION 3.5)
 
-set(KF5_VERSION "5.60.0") # handled by release scripts
+set(KF5_VERSION "5.61.0") # handled by release scripts
 project(Solid VERSION ${KF5_VERSION})
 
 include(FeatureSummary)
-find_package(ECM 5.60.0  NO_MODULE)
+find_package(ECM 5.61.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL 
"https://projects.kde.org/projects/kdesupport/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
 
-set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} 
${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
 
 include(KDEInstallDirs)
 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/solid-5.60.0/po/cs/solid5_qt.po 
new/solid-5.61.0/po/cs/solid5_qt.po
--- old/solid-5.60.0/po/cs/solid5_qt.po 2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/po/cs/solid5_qt.po 2019-08-03 22:01:05.000000000 +0200
@@ -1,7 +1,7 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # Lukáš Tinkl <lti...@redhat.com>, 2010, 2011, 2013.
-# Vít Pelčák <v...@pelcak.org>, 2011, 2012, 2013, 2014, 2017.
+# Vít Pelčák <v...@pelcak.org>, 2011, 2012, 2013, 2014, 2017, 2019.
 # Tomáš Chvátal <tomas.chva...@gmail.com>, 2012, 2013.
 #
 msgid ""
@@ -9,7 +9,7 @@
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-04-01 01:49+0000\n"
-"PO-Revision-Date: 2017-11-14 14:15+0100\n"
+"PO-Revision-Date: 2019-07-31 13:56+0200\n"
 "Last-Translator: Vit Pelcak <v...@pelcak.org>\n"
 "Language-Team: Czech <kde-i18n-...@kde.org>\n"
 "Language: cs\n"
@@ -17,7 +17,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Lokalize 2.0\n"
+"X-Generator: Lokalize 19.04.3\n"
 "X-Language: cs_CZ\n"
 "X-Source-Language: en_US\n"
 "X-Qt-Contexts: true\n"
@@ -32,7 +32,7 @@
 #, qt-format
 msgctxt "%1 is mountpoint, %2 is fs type"
 msgid "%1 (%2)"
-msgstr ""
+msgstr "%1 (%2)"
 
 #: solid/devices/backends/fstab/fstabmanager.cpp:96
 msgctxt "Solid::Backends::Fstab::FstabManager|"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/solid-5.60.0/po/fr/solid5_qt.po 
new/solid-5.61.0/po/fr/solid5_qt.po
--- old/solid-5.60.0/po/fr/solid5_qt.po 2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/po/fr/solid5_qt.po 2019-08-03 22:01:05.000000000 +0200
@@ -5,22 +5,22 @@
 # Sébastien Renard <ren...@kde.org>, 2012.
 # xavier <xavier.besn...@neuf.fr>, 2013.
 # Vincent Pinon <vpi...@kde.org>, 2015, 2017.
-# Simon Depiets <sdepi...@gmail.com>, 2017.
+# Simon Depiets <sdepi...@gmail.com>, 2017, 2019.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-01-24 18:50+0000\n"
-"PO-Revision-Date: 2017-10-09 08:45+0100\n"
-"Last-Translator: Vincent Pinon <vpi...@kde.org>\n"
+"PO-Revision-Date: 2019-07-21 11:20+0800\n"
+"Last-Translator: Simon Depiets <sdepi...@gmail.com>\n"
 "Language-Team: French <kde-francoph...@kde.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Lokalize 2.0\n"
+"X-Generator: Lokalize 19.07.70\n"
 "X-Environment: kde\n"
 "X-Accelerator-Marker: &\n"
 "X-Text-Markup: qtrich\n"
@@ -36,20 +36,17 @@
 #, qt-format
 msgctxt "%1 is mountpoint, %2 is fs type"
 msgid "%1 (%2)"
-msgstr ""
+msgstr "%1 (%2)"
 
 #: solid/devices/backends/fstab/fstabmanager.cpp:96
 msgctxt "Solid::Backends::Fstab::FstabManager|"
 msgid "Filesystem Volumes"
-msgstr ""
+msgstr "Volumes du système de fichiers"
 
 #: solid/devices/backends/fstab/fstabmanager.cpp:97
-#, fuzzy
-#| msgctxt "Solid::Backends::UDev::UDevManager|"
-#| msgid "Devices declared in your system"
 msgctxt "Solid::Backends::Fstab::FstabManager|"
 msgid "Mountable filesystems declared in your system"
-msgstr "Périphériques déclarés sur votre système"
+msgstr "Systèmes de fichiers montables déclarés sur votre système"
 
 #: solid/devices/backends/hal/haldevice.cpp:64
 #, qt-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/solid-5.60.0/po/gl/solid5_qt.po 
new/solid-5.61.0/po/gl/solid5_qt.po
--- old/solid-5.60.0/po/gl/solid5_qt.po 2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/po/gl/solid5_qt.po 2019-08-03 22:01:05.000000000 +0200
@@ -11,18 +11,14 @@
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-04-01 01:49+0000\n"
-"PO-Revision-Date: 2019-06-01 19:32+0200\n"
+"PO-Revision-Date: 2019-07-13 16:53+0200\n"
 "Last-Translator: Adrián Chaves (Gallaecio) <adr...@chaves.io>\n"
 "Language-Team: Galician <kde-i18n-...@kde.org>\n"
 "Language: gl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 19.04.1\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Environment: kde\n"
-"X-Accelerator-Marker: &\n"
-"X-Text-Markup: qtrich\n"
 "X-Qt-Contexts: true\n"
 
 #: solid/devices/backends/fstab/fstabdevice.cpp:83
@@ -35,20 +31,17 @@
 #, qt-format
 msgctxt "%1 is mountpoint, %2 is fs type"
 msgid "%1 (%2)"
-msgstr ""
+msgstr "%1 (%2)"
 
 #: solid/devices/backends/fstab/fstabmanager.cpp:96
 msgctxt "Solid::Backends::Fstab::FstabManager|"
 msgid "Filesystem Volumes"
-msgstr ""
+msgstr "Volumes do sistema de ficheiros"
 
 #: solid/devices/backends/fstab/fstabmanager.cpp:97
-#, fuzzy
-#| msgctxt "Solid::Backends::UDev::UDevManager|"
-#| msgid "Devices declared in your system"
 msgctxt "Solid::Backends::Fstab::FstabManager|"
 msgid "Mountable filesystems declared in your system"
-msgstr "Dispositivos declarados no sistema"
+msgstr "Sistemas de ficheiros montábeis declarados no sistema"
 
 #: solid/devices/backends/hal/haldevice.cpp:64
 #, qt-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/solid-5.60.0/po/id/solid5_qt.po 
new/solid-5.61.0/po/id/solid5_qt.po
--- old/solid-5.60.0/po/id/solid5_qt.po 2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/po/id/solid5_qt.po 2019-08-03 22:01:05.000000000 +0200
@@ -2,7 +2,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2019-05-17 21:02+0700\n"
+"PO-Revision-Date: 2019-07-19 20:12+0700\n"
 "Last-Translator: Wantoyo <wanto...@gmail.com>\n"
 "Language-Team: Indonesian <kde-i18n-...@kde.org>\n"
 "Language: id\n"
@@ -10,7 +10,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 18.12.3\n"
+"X-Generator: Lokalize 19.04.3\n"
 "X-Qt-Contexts: true\n"
 
 #: solid/devices/backends/fstab/fstabdevice.cpp:83
@@ -431,7 +431,7 @@
 #: solid/devices/backends/udev/udevdevice.cpp:131
 msgctxt "Solid::Backends::UDev::UDevDevice|"
 msgid "Portable Media Player"
-msgstr "Media Player Portabel"
+msgstr "Pemutar Media Portabel"
 
 #: solid/devices/backends/udev/udevdevice.cpp:134
 msgctxt "Solid::Backends::UDev::UDevDevice|"
@@ -828,7 +828,7 @@
 #, qt-format
 msgctxt "Solid::Backends::UDisks2::Device|%1 is the size"
 msgid "%1 Removable Media"
-msgstr "%1 Media Dapat Dicopot"
+msgstr "%1 Media Dapat Dilepas"
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:604
 #, qt-format
@@ -1046,7 +1046,7 @@
 #: solid/devices/frontend/deviceinterface.cpp:86
 msgctxt "Solid::DeviceInterface|Portable Media Player device type"
 msgid "Portable Media Player"
-msgstr "Media Player Portabel"
+msgstr "Pemutar Media Portabel"
 
 #: solid/devices/frontend/deviceinterface.cpp:88
 msgctxt "Solid::DeviceInterface|Battery device type"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/solid-5.60.0/po/zh_CN/solid5_qt.po 
new/solid-5.61.0/po/zh_CN/solid5_qt.po
--- old/solid-5.60.0/po/zh_CN/solid5_qt.po      2019-07-07 20:40:16.000000000 
+0200
+++ new/solid-5.61.0/po/zh_CN/solid5_qt.po      2019-08-03 22:01:05.000000000 
+0200
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: kdeorg\n"
-"PO-Revision-Date: 2019-06-02 11:52\n"
+"PO-Revision-Date: 2019-07-18 14:57\n"
 "Last-Translator: Guo Yunhe (guoyunhe)\n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/solid-5.60.0/src/solid/devices/backends/fstab/fstabhandling.cpp 
new/solid-5.61.0/src/solid/devices/backends/fstab/fstabhandling.cpp
--- old/solid-5.60.0/src/solid/devices/backends/fstab/fstabhandling.cpp 
2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/src/solid/devices/backends/fstab/fstabhandling.cpp 
2019-08-03 22:01:05.000000000 +0200
@@ -50,6 +50,7 @@
 #include <sys/param.h>
 #endif
 #include <sys/mount.h>
+#include <QThreadStorage>
 #endif
 
 #ifdef Q_OS_SOLARIS
@@ -102,7 +103,7 @@
 #define FSNAME(var) var.mnt_special
 #endif
 
-Q_GLOBAL_STATIC(Solid::Backends::Fstab::FstabHandling, globalFstabCache)
+Q_GLOBAL_STATIC(QThreadStorage<Solid::Backends::Fstab::FstabHandling>, 
globalFstabCache)
 
 Solid::Backends::Fstab::FstabHandling::FstabHandling()
     : m_fstabCacheValid(false),
@@ -143,12 +144,12 @@
 
 void Solid::Backends::Fstab::FstabHandling::_k_updateFstabMountPointsCache()
 {
-    if (globalFstabCache->m_fstabCacheValid) {
+    if (globalFstabCache->localData().m_fstabCacheValid) {
         return;
     }
 
-    globalFstabCache->m_fstabCache.clear();
-    globalFstabCache->m_fstabOptionsCache.clear();
+    globalFstabCache->localData().m_fstabCache.clear();
+    globalFstabCache->localData().m_fstabOptionsCache.clear();
 
 #if HAVE_SETMNTENT
 
@@ -167,10 +168,10 @@
             const QString device = _k_deviceNameForMountpoint(fsname, fstype, 
mountpoint);
             QStringList options = 
QFile::decodeName(fe->mnt_opts).split(QLatin1Char(','));
 
-            globalFstabCache->m_fstabCache.insert(device, mountpoint);
-            globalFstabCache->m_fstabFstypeCache.insert(device, fstype);
+            globalFstabCache->localData().m_fstabCache.insert(device, 
mountpoint);
+            globalFstabCache->localData().m_fstabFstypeCache.insert(device, 
fstype);
             while (!options.isEmpty()) {
-                globalFstabCache->m_fstabOptionsCache.insert(device, 
options.takeFirst());
+                
globalFstabCache->localData().m_fstabOptionsCache.insert(device, 
options.takeFirst());
             }
         }
     }
@@ -211,13 +212,13 @@
             const QString device = items.at(0);
             const QString mountpoint = items.at(1);
 
-            globalFstabCache->m_fstabCache.insert(device, mountpoint);
+            globalFstabCache->localData().m_fstabCache.insert(device, 
mountpoint);
         }
     }
 
     fstab.close();
 #endif
-    globalFstabCache->m_fstabCacheValid = true;
+    globalFstabCache->localData().m_fstabCacheValid = true;
 }
 
 QStringList Solid::Backends::Fstab::FstabHandling::deviceList()
@@ -225,8 +226,8 @@
     _k_updateFstabMountPointsCache();
     _k_updateMtabMountPointsCache();
 
-    QStringList devices = globalFstabCache->m_fstabCache.keys();
-    devices += globalFstabCache->m_mtabCache.keys();
+    QStringList devices = globalFstabCache->localData().m_fstabCache.keys();
+    devices += globalFstabCache->localData().m_mtabCache.keys();
     devices.removeDuplicates();
     return devices;
 }
@@ -236,8 +237,8 @@
     _k_updateFstabMountPointsCache();
     _k_updateMtabMountPointsCache();
 
-    QStringList mountpoints = globalFstabCache->m_fstabCache.values(device);
-    mountpoints += globalFstabCache->m_mtabCache.values(device);
+    QStringList mountpoints = 
globalFstabCache->localData().m_fstabCache.values(device);
+    mountpoints += globalFstabCache->localData().m_mtabCache.values(device);
     mountpoints.removeDuplicates();
     return mountpoints;
 }
@@ -246,7 +247,7 @@
 {
     _k_updateFstabMountPointsCache();
 
-    QStringList options = globalFstabCache->m_fstabOptionsCache.values(device);
+    QStringList options = 
globalFstabCache->localData().m_fstabOptionsCache.values(device);
     return options;
 }
 
@@ -254,7 +255,7 @@
 {
     _k_updateFstabMountPointsCache();
 
-    return globalFstabCache->m_fstabFstypeCache.value(device);
+    return globalFstabCache->localData().m_fstabFstypeCache.value(device);
 }
 
 bool Solid::Backends::Fstab::FstabHandling::callSystemCommand(const QString 
&commandName, const QStringList &args,
@@ -286,11 +287,11 @@
 
 void Solid::Backends::Fstab::FstabHandling::_k_updateMtabMountPointsCache()
 {
-    if (globalFstabCache->m_mtabCacheValid) {
+    if (globalFstabCache->localData().m_mtabCacheValid) {
         return;
     }
 
-    globalFstabCache->m_mtabCache.clear();
+    globalFstabCache->localData().m_mtabCache.clear();
 
 #if HAVE_GETMNTINFO
 
@@ -309,8 +310,8 @@
             const QString fsname = QFile::decodeName(mounted[i].f_mntfromname);
             const QString mountpoint = 
QFile::decodeName(mounted[i].f_mntonname);
             const QString device = _k_deviceNameForMountpoint(fsname, type, 
mountpoint);
-            globalFstabCache->m_mtabCache.insert(device, mountpoint);
-            globalFstabCache->m_fstabFstypeCache.insert(device, type);
+            globalFstabCache->localData().m_mtabCache.insert(device, 
mountpoint);
+            globalFstabCache->localData().m_fstabFstypeCache.insert(device, 
type);
         }
     }
 
@@ -328,28 +329,28 @@
             const QString fsname = QFile::decodeName(FSNAME(fe));
             const QString mountpoint = QFile::decodeName(MOUNTPOINT(fe));
             const QString device = _k_deviceNameForMountpoint(fsname, type, 
mountpoint);
-            globalFstabCache->m_mtabCache.insert(device, mountpoint);
-            globalFstabCache->m_fstabFstypeCache.insert(device, type);
+            globalFstabCache->localData().m_mtabCache.insert(device, 
mountpoint);
+            globalFstabCache->localData().m_fstabFstypeCache.insert(device, 
type);
         }
     }
     ENDMNTENT(mnttab);
 #endif
 
-    globalFstabCache->m_mtabCacheValid = true;
+    globalFstabCache->localData().m_mtabCacheValid = true;
 }
 
 QStringList Solid::Backends::Fstab::FstabHandling::currentMountPoints(const 
QString &device)
 {
     _k_updateMtabMountPointsCache();
-    return globalFstabCache->m_mtabCache.values(device);
+    return globalFstabCache->localData().m_mtabCache.values(device);
 }
 
 void Solid::Backends::Fstab::FstabHandling::flushMtabCache()
 {
-    globalFstabCache->m_mtabCacheValid = false;
+    globalFstabCache->localData().m_mtabCacheValid = false;
 }
 
 void Solid::Backends::Fstab::FstabHandling::flushFstabCache()
 {
-    globalFstabCache->m_fstabCacheValid = false;
+    globalFstabCache->localData().m_fstabCacheValid = false;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/solid-5.60.0/src/solid/devices/backends/hal/halfstabhandling.cpp 
new/solid-5.61.0/src/solid/devices/backends/hal/halfstabhandling.cpp
--- old/solid-5.60.0/src/solid/devices/backends/hal/halfstabhandling.cpp        
2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/src/solid/devices/backends/hal/halfstabhandling.cpp        
2019-08-03 22:01:05.000000000 +0200
@@ -25,6 +25,7 @@
 #include <QObject>
 #include <QProcess>
 #include <QTextStream>
+#include <QWriteLocker>
 #include <QTime>
 
 #include <soliddefs_p.h>
@@ -43,7 +44,17 @@
 #endif
 
 typedef QMultiHash<QString, QString> QStringMultiHash;
-Q_GLOBAL_STATIC(QStringMultiHash, globalMountPointsCache)
+
+class MountPointsCache
+{
+public:
+    QReadWriteLock lock;
+    bool firstCall = true;
+    QTime elapsedTime;
+    QMultiHash<QString, QString> values;
+};
+
+Q_GLOBAL_STATIC(MountPointsCache, globalMountPointsCache)
 
 QString _k_resolveSymLink(const QString &filename)
 {
@@ -72,19 +83,17 @@
 
 void _k_updateMountPointsCache()
 {
-    static bool firstCall = true;
-    static QTime elapsedTime;
-
-    if (firstCall) {
-        firstCall = false;
-        elapsedTime.start();
-    } else if (elapsedTime.elapsed() > 10000) {
-        elapsedTime.restart();
+    QWriteLocker locker(&globalMountPointsCache->lock);
+    if (globalMountPointsCache->firstCall) {
+        globalMountPointsCache->firstCall = false;
+        globalMountPointsCache->elapsedTime.start();
+    } else if (globalMountPointsCache->elapsedTime.elapsed() > 10000) {
+        globalMountPointsCache->elapsedTime.restart();
     } else {
         return;
     }
 
-    globalMountPointsCache->clear();
+    globalMountPointsCache->values.clear();
 
 #if HAVE_SETMNTENT
 
@@ -99,7 +108,7 @@
             const QString device = 
_k_resolveSymLink(QFile::decodeName(fe->mnt_fsname));
             const QString mountpoint = 
_k_resolveSymLink(QFile::decodeName(fe->mnt_dir));
 
-            globalMountPointsCache->insert(device, mountpoint);
+            globalMountPointsCache->values.insert(device, mountpoint);
         }
     }
 
@@ -138,7 +147,7 @@
             const QString device = _k_resolveSymLink(items.at(0));
             const QString mountpoint = _k_resolveSymLink(items.at(1));
 
-            globalMountPointsCache->insert(device, mountpoint);
+            globalMountPointsCache->values.insert(device, mountpoint);
         }
     }
 
@@ -151,7 +160,8 @@
     _k_updateMountPointsCache();
     const QString deviceToFind = _k_resolveSymLink(device);
 
-    return globalMountPointsCache->contains(deviceToFind);
+    QReadLocker lock(&globalMountPointsCache->lock);
+    return globalMountPointsCache->values.contains(deviceToFind);
 }
 
 QStringList Solid::Backends::Hal::FstabHandling::possibleMountPoints(const 
QString &device)
@@ -159,7 +169,8 @@
     _k_updateMountPointsCache();
     const QString deviceToFind = _k_resolveSymLink(device);
 
-    return globalMountPointsCache->values(deviceToFind);
+    QReadLocker lock(&globalMountPointsCache->lock);
+    return globalMountPointsCache->values.values(deviceToFind);
 }
 
 QProcess *Solid::Backends::Hal::FstabHandling::callSystemCommand(const QString 
&commandName,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/solid-5.60.0/src/solid/devices/backends/hal/halstorageaccess.cpp 
new/solid-5.61.0/src/solid/devices/backends/hal/halstorageaccess.cpp
--- old/solid-5.60.0/src/solid/devices/backends/hal/halstorageaccess.cpp        
2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/src/solid/devices/backends/hal/halstorageaccess.cpp        
2019-08-03 22:01:05.000000000 +0200
@@ -312,7 +312,7 @@
 
 QString generateReturnObjectPath()
 {
-    static int number = 1;
+    static QAtomicInt number = 1;
 
     return "/org/kde/solid/HalStorageAccess_" + QString::number(number++);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/solid-5.60.0/src/solid/devices/backends/udisks2/udisksdevicebackend.cpp 
new/solid-5.61.0/src/solid/devices/backends/udisks2/udisksdevicebackend.cpp
--- old/solid-5.60.0/src/solid/devices/backends/udisks2/udisksdevicebackend.cpp 
2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/src/solid/devices/backends/udisks2/udisksdevicebackend.cpp 
2019-08-03 22:01:05.000000000 +0200
@@ -33,7 +33,7 @@
 using namespace Solid::Backends::UDisks2;
 
 /* Static cache for DeviceBackends for all UDIs */
-QMap<QString /* UDI */, DeviceBackend *> DeviceBackend::s_backends;
+QThreadStorage<QMap<QString /* UDI */, DeviceBackend *>> 
DeviceBackend::s_backends;
 
 DeviceBackend *DeviceBackend::backendForUDI(const QString &udi, bool create)
 {
@@ -42,10 +42,10 @@
         return backend;
     }
 
-    backend = s_backends.value(udi);
+    backend = s_backends.localData().value(udi);
     if (!backend && create) {
         backend = new DeviceBackend(udi);
-        s_backends.insert(udi, backend);
+        s_backends.localData().insert(udi, backend);
     }
 
     return backend;
@@ -53,7 +53,7 @@
 
 void DeviceBackend::destroyBackend(const QString &udi)
 {
-    delete s_backends.take(udi);
+    delete s_backends.localData().take(udi);
 }
 
 DeviceBackend::DeviceBackend(const QString &udi)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/solid-5.60.0/src/solid/devices/backends/udisks2/udisksdevicebackend.h 
new/solid-5.61.0/src/solid/devices/backends/udisks2/udisksdevicebackend.h
--- old/solid-5.60.0/src/solid/devices/backends/udisks2/udisksdevicebackend.h   
2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/src/solid/devices/backends/udisks2/udisksdevicebackend.h   
2019-08-03 22:01:05.000000000 +0200
@@ -28,6 +28,7 @@
 #include <QDBusObjectPath>
 #include <QDBusInterface>
 #include <QStringList>
+#include <QThreadStorage>
 
 #include "udisks2.h"
 
@@ -78,7 +79,7 @@
     QStringList m_interfaces;
     QString m_udi;
 
-    static QMap<QString, DeviceBackend *> s_backends;
+    static QThreadStorage<QMap<QString, DeviceBackend *>> s_backends;
 
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/solid-5.60.0/src/solid/devices/backends/udisks2/udisksopticaldisc.cpp 
new/solid-5.61.0/src/solid/devices/backends/udisks2/udisksopticaldisc.cpp
--- old/solid-5.60.0/src/solid/devices/backends/udisks2/udisksopticaldisc.cpp   
2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/src/solid/devices/backends/udisks2/udisksopticaldisc.cpp   
2019-08-03 22:01:05.000000000 +0200
@@ -30,6 +30,7 @@
 #include <QSharedMemory>
 #include <QSystemSemaphore>
 #include <QDBusConnection>
+#include <QThreadStorage>
 
 #include "../shared/udevqt.h"
 
@@ -305,7 +306,7 @@
     }
 };
 
-Q_GLOBAL_STATIC(SharedContentTypesCache, sharedContentTypesCache)
+Q_GLOBAL_STATIC(QThreadStorage<SharedContentTypesCache>, 
sharedContentTypesCache)
 
 OpticalDisc::Identity::Identity() : m_detectTime(0), m_size(0), m_labelHash(0)
 {
@@ -419,7 +420,7 @@
         if (!(m_identity == newIdentity)) {
             QByteArray deviceFile(m_device->prop("Device").toByteArray());
             m_cachedContent =
-                sharedContentTypesCache->getContent(newIdentity, deviceFile);
+                sharedContentTypesCache->localData().getContent(newIdentity, 
deviceFile);
             m_identity = newIdentity;
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/solid-5.60.0/src/solid/devices/backends/udisks2/udisksstorageaccess.cpp 
new/solid-5.61.0/src/solid/devices/backends/udisks2/udisksstorageaccess.cpp
--- old/solid-5.60.0/src/solid/devices/backends/udisks2/udisksstorageaccess.cpp 
2019-07-07 20:40:16.000000000 +0200
+++ new/solid-5.61.0/src/solid/devices/backends/udisks2/udisksstorageaccess.cpp 
2019-08-03 22:01:05.000000000 +0200
@@ -306,7 +306,7 @@
 
 QString StorageAccess::generateReturnObjectPath()
 {
-    static int number = 1;
+    static QAtomicInt number = 1;
 
     return "/org/kde/solid/UDisks2StorageAccess_" + QString::number(number++);
 }


Reply via email to