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++); }