Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kf6-solid for openSUSE:Factory 
checked in at 2026-10-11 15:16:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-solid (Old)
 and      /work/SRC/openSUSE:Factory/.kf6-solid.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-solid"

Sun Oct 11 15:16:31 2026 rev:33 rq:1383972 version:6.31.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-solid/kf6-solid.changes      2026-09-11 
18:03:58.788476264 +0200
+++ /work/SRC/openSUSE:Factory/.kf6-solid.new.3698736/kf6-solid.changes 
2026-10-11 15:19:22.066874576 +0200
@@ -1,0 +2,13 @@
+Wed Oct  7 06:47:47 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.31.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.31.0
+- Changes since 6.30.0:
+  * Update dependency version to 6.31.0
+  * Use ECMInstalledLibraryCheck
+  * Always check that we don't pass a nullptr to CFRelease
+  * Update version to 6.31.0
+
+-------------------------------------------------------------------

Old:
----
  solid-6.30.0.tar.xz
  solid-6.30.0.tar.xz.sig

New:
----
  solid-6.31.0.tar.xz
  solid-6.31.0.tar.xz.sig

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

Other differences:
------------------
++++++ kf6-solid.spec ++++++
--- /var/tmp/diff_new_pack.2g68rT/_old  2026-10-11 15:19:23.425931691 +0200
+++ /var/tmp/diff_new_pack.2g68rT/_new  2026-10-11 15:19:23.427931775 +0200
@@ -21,7 +21,7 @@
 %define rname solid
 %bcond_without released
 Name:           kf6-solid
-Version:        6.30.0
+Version:        6.31.0
 Release:        0
 Summary:        KDE Desktop hardware abstraction
 License:        LGPL-2.1-or-later


++++++ solid-6.30.0.tar.xz -> solid-6.31.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/solid-6.30.0/.kde-ci.yml new/solid-6.31.0/.kde-ci.yml
--- old/solid-6.30.0/.kde-ci.yml        2026-09-04 13:44:00.000000000 +0200
+++ new/solid-6.31.0/.kde-ci.yml        2026-10-02 15:24:18.000000000 +0200
@@ -7,3 +7,4 @@
  test-before-installing: True
  require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows']
  enable-lsan: True
+ run-installed-library-check-on: ['@all']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/solid-6.30.0/CMakeLists.txt 
new/solid-6.31.0/CMakeLists.txt
--- old/solid-6.30.0/CMakeLists.txt     2026-09-04 13:44:00.000000000 +0200
+++ new/solid-6.31.0/CMakeLists.txt     2026-10-02 15:24:18.000000000 +0200
@@ -1,10 +1,10 @@
-cmake_minimum_required(VERSION 3.29)
+cmake_minimum_required(VERSION 3.30)
 
-set(KF_VERSION "6.30.0") # handled by release scripts
+set(KF_VERSION "6.31.0") # handled by release scripts
 project(Solid VERSION ${KF_VERSION})
 
 include(FeatureSummary)
-find_package(ECM 6.30.0  NO_MODULE)
+find_package(ECM 6.31.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
@@ -19,8 +19,9 @@
 include(ECMQtDeclareLoggingCategory)
 include(ECMDeprecationSettings)
 include(ECMGenerateQDoc)
+include(ECMInstalledLibraryCheck)
 
-set(REQUIRED_QT_VERSION 6.9.0)
+set(REQUIRED_QT_VERSION 6.10.0)
 find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Xml Gui)
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/solid-6.30.0/poqm/ca@valencia/solid6_qt.po 
new/solid-6.31.0/poqm/ca@valencia/solid6_qt.po
--- old/solid-6.30.0/poqm/ca@valencia/solid6_qt.po      2026-09-04 
13:44:00.000000000 +0200
+++ new/solid-6.31.0/poqm/ca@valencia/solid6_qt.po      2026-10-02 
15:24:18.000000000 +0200
@@ -3,8 +3,8 @@
 # This file is distributed under the license LGPL version 2.1 or
 # version 3 or later versions approved by the membership of KDE e.V.
 #
-# SPDX-FileCopyrightText: 2009, 2010, 2011, 2012, 2013, 2014, 2017, 2019, 
2020, 2021, 2022, 2023, 2024, 2025, 2026 Josep M. Ferrer <[email protected]>
-# SPDX-FileCopyrightText: 2014, 2019, 2020, 2022 Antoni Bella Pérez 
<[email protected]>
+# SPDX-FileCopyrightText: 2009-2014, 2017, 2019-2026 Josep M. Ferrer 
<[email protected]>
+# SPDX-FileCopyrightText: 2014, 2019-2020, 2022 Antoni Bella Pérez 
<[email protected]>
 # SPDX-FileCopyrightText: 2019 Empar Montoro Martín <[email protected]>
 msgid ""
 msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/solid-6.30.0/poqm/ug/solid6_qt.po 
new/solid-6.31.0/poqm/ug/solid6_qt.po
--- old/solid-6.30.0/poqm/ug/solid6_qt.po       2026-09-04 13:44:00.000000000 
+0200
+++ new/solid-6.31.0/poqm/ug/solid6_qt.po       2026-10-02 15:24:18.000000000 
+0200
@@ -8,9 +8,9 @@
 "Project-Id-Version: solid_qt\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-04-01 01:49+0000\n"
-"PO-Revision-Date: 2026-06-01 18:48-0400\n"
+"PO-Revision-Date: 2026-09-23 06:56+0900\n"
 "Last-Translator: Abduqadir Abliz <[email protected]>\n"
-"Language-Team: Uyghur Computer Science Association <[email protected]>\n"
+"Language-Team: Uyghur <[email protected]>\n"
 "Language: ug\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -29,7 +29,7 @@
 #, qt-format
 msgctxt "%1 is mountpoint, %2 is fs type"
 msgid "%1 (%2)"
-msgstr "%1 (%2)"
+msgstr ""
 
 #: solid/devices/backends/fstab/fstabmanager.cpp:80
 msgctxt "Solid::Backends::Fstab::FstabManager|"
@@ -44,7 +44,7 @@
 #: solid/devices/backends/imobile/imobiledevice.cpp:90
 msgctxt "imobiledevice|Company name"
 msgid "Apple"
-msgstr "Apple"
+msgstr ""
 
 #: solid/devices/backends/imobile/imobilemanager.cpp:101
 msgctxt "Solid::Backends::IMobile::Manager|"
@@ -107,7 +107,7 @@
 #, qt-format
 msgctxt "udisksdevice|"
 msgid "%1 B"
-msgstr "%1 B"
+msgstr "%1 بايت"
 
 #. MetricBinaryDialect size in 1000 bytes
 #: solid/devices/backends/udisks2/udisksdevice.cpp:88
@@ -121,36 +121,30 @@
 #. JEDECBinaryDialect memory size in 10^20 bytes
 #: solid/devices/backends/udisks2/udisksdevice.cpp:91
 #: solid/devices/backends/udisks2/udisksdevice.cpp:121
-#, fuzzy, qt-format
-#| msgctxt "udisksdevice|"
-#| msgid "%1 MiB"
+#, qt-format
 msgctxt "udisksdevice|"
 msgid "%1 MB"
-msgstr "%1 MiB"
+msgstr ""
 
 #. MetricBinaryDialect size in 10^9 bytes
 #. ----------
 #. JEDECBinaryDialect memory size in 10^30 bytes
 #: solid/devices/backends/udisks2/udisksdevice.cpp:94
 #: solid/devices/backends/udisks2/udisksdevice.cpp:124
-#, fuzzy, qt-format
-#| msgctxt "udisksdevice|"
-#| msgid "%1 GiB"
+#, qt-format
 msgctxt "udisksdevice|"
 msgid "%1 GB"
-msgstr "%1 GiB"
+msgstr ""
 
 #. MetricBinaryDialect size in 10^12 bytes
 #. ----------
 #. JEDECBinaryDialect memory size in 10^40 bytes
 #: solid/devices/backends/udisks2/udisksdevice.cpp:97
 #: solid/devices/backends/udisks2/udisksdevice.cpp:127
-#, fuzzy, qt-format
-#| msgctxt "udisksdevice|"
-#| msgid "%1 TiB"
+#, qt-format
 msgctxt "udisksdevice|"
 msgid "%1 TB"
-msgstr "%1 TiB"
+msgstr ""
 
 #. MetricBinaryDialect size in 10^15 bytes
 #. ----------
@@ -194,40 +188,38 @@
 
 #. JEDECBinaryDialect memory size in 1024 bytes
 #: solid/devices/backends/udisks2/udisksdevice.cpp:118
-#, fuzzy, qt-format
-#| msgctxt "udisksdevice|"
-#| msgid "%1 KiB"
+#, qt-format
 msgctxt "udisksdevice|"
 msgid "%1 KB"
-msgstr "%1 KiB"
+msgstr ""
 
 #. IECBinaryDialect size in 1024 bytes
 #: solid/devices/backends/udisks2/udisksdevice.cpp:148
 #, qt-format
 msgctxt "udisksdevice|"
 msgid "%1 KiB"
-msgstr "%1 KiB"
+msgstr ""
 
 #. IECBinaryDialect size in 10^20 bytes
 #: solid/devices/backends/udisks2/udisksdevice.cpp:151
 #, qt-format
 msgctxt "udisksdevice|"
 msgid "%1 MiB"
-msgstr "%1 MiB"
+msgstr ""
 
 #. IECBinaryDialect size in 10^30 bytes
 #: solid/devices/backends/udisks2/udisksdevice.cpp:154
 #, qt-format
 msgctxt "udisksdevice|"
 msgid "%1 GiB"
-msgstr "%1 GiB"
+msgstr ""
 
 #. IECBinaryDialect size in 10^40 bytes
 #: solid/devices/backends/udisks2/udisksdevice.cpp:157
 #, qt-format
 msgctxt "udisksdevice|"
 msgid "%1 TiB"
-msgstr "%1 TiB"
+msgstr ""
 
 #. IECBinaryDialect size in 10^50 bytes
 #: solid/devices/backends/udisks2/udisksdevice.cpp:160
@@ -294,97 +286,97 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:381
 msgctxt "Solid::Backends::UDisks2::Device|First item of %1%2 Drive sentence"
 msgid "CD-ROM"
-msgstr "CD-ROM"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:383
 msgctxt "Solid::Backends::UDisks2::Device|First item of %1%2 Drive sentence"
 msgid "CD-R"
-msgstr "CD-R"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:386
 msgctxt "Solid::Backends::UDisks2::Device|First item of %1%2 Drive sentence"
 msgid "CD-RW"
-msgstr "CD-RW"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:390
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/DVD-ROM"
-msgstr "/DVD-ROM"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:393
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/DVD+R"
-msgstr "/DVD+R"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:396
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/DVD+RW"
-msgstr "/DVD+RW"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:399
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/DVD-R"
-msgstr "/DVD-R"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:402
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/DVD-RW"
-msgstr "/DVD-RW"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:405
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/DVD-RAM"
-msgstr "/DVD-RAM"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:409
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/DVD±R DL"
-msgstr "/DVD±R DL"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:411
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/DVD±R"
-msgstr "/DVD±R"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:416
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/DVD±RW DL"
-msgstr "/DVD±RW DL"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:418
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/DVD±RW"
-msgstr "/DVD±RW"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:422
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/BD-ROM"
-msgstr "/BD-ROM"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:425
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/BD-R"
-msgstr "/BD-R"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:428
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/BD-RE"
-msgstr "/BD-RE"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:431
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/HD DVD-ROM"
-msgstr "/HD DVD-ROM"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:434
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/HD DVD-R"
-msgstr "/HD DVD-R"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:437
 msgctxt "Solid::Backends::UDisks2::Device|Second item of %1%2 Drive sentence"
 msgid "/HD DVD-RW"
-msgstr "/HD DVD-RW"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:441
 #, qt-format
@@ -418,7 +410,7 @@
 "Solid::Backends::UDisks2::Device|%1 is the vendor, %2 is the model of the "
 "device"
 msgid "%1 %2"
-msgstr "%1 %2"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:491
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -428,7 +420,7 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:521
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "CD-ROM"
-msgstr "CD-ROM"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:526
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -438,7 +430,7 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:528
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "CD-R"
-msgstr "CD-R"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:534
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -448,12 +440,12 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:536
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "CD-RW"
-msgstr "CD-RW"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:541
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "DVD-ROM"
-msgstr "DVD-ROM"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:546
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -463,7 +455,7 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:548
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "DVD-RAM"
-msgstr "DVD-RAM"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:554
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -473,7 +465,7 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:556
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "DVD-R"
-msgstr "DVD-R"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:562
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -493,7 +485,7 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:572
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "DVD-RW"
-msgstr "DVD-RW"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:578
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -503,7 +495,7 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:580
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "DVD+R"
-msgstr "DVD+R"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:586
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -513,7 +505,7 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:588
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "DVD+RW"
-msgstr "DVD+RW"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:594
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -528,7 +520,7 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:601
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "BD-ROM"
-msgstr "BD-ROM"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:606
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -538,7 +530,7 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:608
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "BD-R"
-msgstr "BD-R"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:614
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -548,12 +540,12 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:616
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "BD-RE"
-msgstr "BD-RE"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:621
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "HD DVD-ROM"
-msgstr "HD DVD-ROM"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:626
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -563,7 +555,7 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:628
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "HD DVD-R"
-msgstr "HD DVD-R"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:634
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -573,7 +565,7 @@
 #: solid/devices/backends/udisks2/udisksdevice.cpp:636
 msgctxt "Solid::Backends::UDisks2::Device|"
 msgid "HD DVD-RW"
-msgstr "HD DVD-RW"
+msgstr ""
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:643
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -689,8 +681,6 @@
 "Cannot request authentication for this action. The PolicyKit authentication "
 "system appears to be not available."
 msgstr ""
-"بۇ مەشغۇلاتقا كىملىك دەلىللەش مەشغۇلاتى ئىلتىماس قىلالمايدۇ. PolicyKit "
-"كىملىك دەلىللەش سىستېمىسىنى ئىشلەتكىلى بولمايدۇ."
 
 #: solid/devices/backends/udisks2/udisksdevice.cpp:850
 msgctxt "Solid::Backends::UDisks2::Device|"
@@ -873,13 +863,16 @@
 "             # neutral fashion,\n"
 "             # - Otherwise only device UDIs are listed.\n"
 msgstr ""
-"             # سىستېمىدىكى ئىشلەتكىلى بولىدىغان قاتتىق دېتال تىزىمىنى "
-"كۆرسىتىدۇ.\n"
-"# - ئەگەر «nonportableinfo» تاللانما بەلگىلەنسە ئۈسكۈنە خاسلىقى (دىققەت، \n"
-"# - بۇ چاغدا كۆرۈنگەن خاسلىق ئاتى ئارقا ئۇچ تىپىغا مۇناسىۋەتلىك).\n"
-"# - ئەگەر «details» تاللانما بەلگىلەنسە ئۈسكۈنە ئېغىزى ۋە  مۇناسىپ خاسلىق "
-"سۇپا بىتەرەپ ئۇسلۇبىدا كۆرۈنىدۇ.\n"
-"# - ئۇنداق بولمىسا ئۈسكۈنەنىڭ UDI تىزىمىنىلا كۆرسىتىدۇ.\n"
+"             # List the hardware available in the system.\n"
+"             # - If the 'nonportableinfo' option is specified, the device\n"
+"             # properties are listed (be careful, in this case property "
+"names\n"
+"             # are backend dependent),\n"
+"             # - If the 'details' option is specified, the device "
+"interfaces\n"
+"             # and the corresponding properties are listed in a platform\n"
+"             # neutral fashion,\n"
+"             # - Otherwise only device UDIs are listed.\n"
 
 #: tools/solid-hardware/solid-hardware.cpp:245
 msgctxt "solid-hardware|"
@@ -887,8 +880,6 @@
 "             # Display all the interfaces and properties of the device\n"
 "             # corresponding to 'udi' in a platform neutral fashion.\n"
 msgstr ""
-"             # سۇپا بىتەرەپ ئۇسلۇبىدا udi غا ماس كەلگەن قاتتىق دېتال ئېغىزى "
-"ۋە ئۇنىڭ خاسلىقىنىڭ ھەممىسىنى كۆرسىتىدۇ.\n"
 
 #: tools/solid-hardware/solid-hardware.cpp:251
 msgctxt "solid-hardware|"
@@ -898,9 +889,6 @@
 "             # (be careful, in this case property names are backend "
 "dependent).\n"
 msgstr ""
-"             #  udi قاتتىق دېتال ئېغىزى ۋە ئۇنىڭ خاسلىقىغا غا ماس كەلگەن "
-"ھەممىسىنى كۆرسىتىدۇ(دىققەت، بۇ چاغدا كۆرۈنىدىغان خاسلىق ئاتى ئارقا ئۇچ بىلەن "
-"مۇناسىۋەتلىك).\n"
 
 #: tools/solid-hardware/solid-hardware.cpp:257
 msgctxt "solid-hardware|"
@@ -911,10 +899,11 @@
 "             # branch of the corresponding device,\n"
 "             # - Otherwise the search is done on all the devices.\n"
 msgstr ""
-"             # «predicate» بىلەن ماس كەلگەن ئۈسكۈنىنىڭ UDI نى كۆرسىتىدۇ.\n"
-"# - ئەگەر «parentUdi» بەلگىلەنسە ئىزدەش مۇناسىپ ئۈسكۈنە تارماقلىرى "
-"دائىرىسىدە ئېلىپ بېرىلىدۇ.\n"
-"# - ئۇنداق بولمىسا ئىزدەش ھەممە ئۈسكۈنىلەرگە ئېلىپ بېرىلىدۇ.\n"
+"             # List the UDI of devices corresponding to 'predicate'.\n"
+"             # - If 'parentUdi' is specified, the search is restricted to "
+"the\n"
+"             # branch of the corresponding device,\n"
+"             # - Otherwise the search is done on all the devices.\n"
 
 #: tools/solid-hardware/solid-hardware.cpp:265
 msgctxt "solid-hardware|"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/solid-6.30.0/src/solid/CMakeLists.txt 
new/solid-6.31.0/src/solid/CMakeLists.txt
--- old/solid-6.30.0/src/solid/CMakeLists.txt   2026-09-04 13:44:00.000000000 
+0200
+++ new/solid-6.31.0/src/solid/CMakeLists.txt   2026-10-02 15:24:18.000000000 
+0200
@@ -92,3 +92,28 @@
   ${Solid_HEADERS}
   DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/Solid/solid COMPONENT Devel
 )
+
+ecm_add_installed_library_check(KF6Solid
+    PACKAGE_NAME "KF6Solid"
+    PACKAGE_TARGET_NAMESPACE "KF6::"
+)
+
+ecm_installed_library_check_include_strings(KF6Solid
+    HEADERS ${Solid_CamelCase_HEADERS}
+    PREFIX Solid
+)
+
+# only defined if true
+if (UDEV_FOUND)
+    set(_udev_check_args TYPE BOOL VALUE ${UDev_FOUND})
+else()
+    set(_udev_check_args UNDEFINED)
+endif()
+ecm_installed_library_check_cmake_variable(KF6Solid
+    NAME "Solid_HAVE_UDev"
+    ${_udev_check_args}
+)
+
+ecm_installed_library_check_version_preprocessor_macros(KF6Solid
+    PREFIX SOLID
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/solid-6.30.0/src/solid/devices/backends/iokit/iokitdevice.cpp 
new/solid-6.31.0/src/solid/devices/backends/iokit/iokitdevice.cpp
--- old/solid-6.30.0/src/solid/devices/backends/iokit/iokitdevice.cpp   
2026-09-04 13:44:00.000000000 +0200
+++ new/solid-6.31.0/src/solid/devices/backends/iokit/iokitdevice.cpp   
2026-10-02 15:24:18.000000000 +0200
@@ -86,12 +86,14 @@
 {
     CFMutableDictionaryRef propertyDict = 0;
 
-    if (IORegistryEntryCreateCFProperties(entry, &propertyDict, 
kCFAllocatorDefault, kNilOptions) != KERN_SUCCESS) {
-        return QMap<QString, QVariant>();
+    if (IORegistryEntryCreateCFProperties(entry, &propertyDict,
+                                          kCFAllocatorDefault,
+                                          kNilOptions) != KERN_SUCCESS ||
+        propertyDict == nullptr) {
+      return QMap<QString, QVariant>();
     }
 
     QMap<QString, QVariant> result = q_toVariantMap(propertyDict);
-
     CFRelease(propertyDict);
 
     io_name_t className;
@@ -113,7 +115,9 @@
 
     CFStringRef path = IORegistryEntryCopyPath(parent, kIOServicePlane);
     QString result = QString::fromCFString(path);
-    CFRelease(path);
+    if (path) {
+      CFRelease(path);
+    }
 
     // now we can release the parent
     IOObjectRelease(parent);
@@ -197,7 +201,9 @@
 
     CFStringRef path = udi.toCFString();
     io_registry_entry_t entry = 
IORegistryEntryCopyFromPath(kIOMasterPortDefault, path);
-    CFRelease(path);
+    if (path) {
+      CFRelease(path);
+    }
 
     if (entry == MACH_PORT_NULL) {
         qWarning() << Q_FUNC_INFO << "Tried to create Device from invalid UDI" 
<< udi;
@@ -217,7 +223,9 @@
 
     CFStringRef path = device.udi().toCFString();
     io_registry_entry_t entry = 
IORegistryEntryCopyFromPath(kIOMasterPortDefault, path);
-    CFRelease(path);
+    if (path) {
+      CFRelease(path);
+    }
 
     if (entry == MACH_PORT_NULL) {
         qWarning() << Q_FUNC_INFO << "Tried to create Device from invalid UDI" 
<< device.udi();
@@ -238,7 +246,9 @@
     if (!className.isEmpty()) {
         CFStringRef path = udi().toCFString();
         io_registry_entry_t entry = 
IORegistryEntryCopyFromPath(kIOMasterPortDefault, path);
-        CFRelease(path);
+        if (path) {
+          CFRelease(path);
+        }
         if (entry != MACH_PORT_NULL) {
             conforms = IOObjectConformsTo(entry, 
className.toLocal8Bit().constData());
             IOObjectRelease(entry);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/solid-6.30.0/src/solid/devices/backends/iokit/iokitmanager.cpp 
new/solid-6.31.0/src/solid/devices/backends/iokit/iokitmanager.cpp
--- old/solid-6.30.0/src/solid/devices/backends/iokit/iokitmanager.cpp  
2026-09-04 13:44:00.000000000 +0200
+++ new/solid-6.31.0/src/solid/devices/backends/iokit/iokitmanager.cpp  
2026-10-02 15:24:18.000000000 +0200
@@ -47,7 +47,9 @@
     while ((obj = IOIteratorNext(it))) {
         CFStringRef pathRef = IORegistryEntryCopyPath(obj, kIOServicePlane);
         const QString path = QString::fromCFString(pathRef);
-        CFRelease(pathRef);
+        if (pathRef) {
+          CFRelease(pathRef);
+        }
 
         if (path.isEmpty()) {
             qWarning() << Q_FUNC_INFO << "IORegistryEntryCopyPath failed";
@@ -207,7 +209,9 @@
 {
     CFStringRef path = udi.toCFString();
     io_registry_entry_t entry = 
IORegistryEntryCopyFromPath(kIOMasterPortDefault, path);
-    CFRelease(path);
+    if (path) {
+      CFRelease(path);
+    }
 
     // we have to do IOObjectConformsTo - comparing the class names is not 
good enough
     // if (IOObjectConformsTo(entry, kIOEthernetInterfaceClass)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/solid-6.30.0/src/solid/devices/backends/iokit/iokitstorageaccess.cpp 
new/solid-6.31.0/src/solid/devices/backends/iokit/iokitstorageaccess.cpp
--- old/solid-6.30.0/src/solid/devices/backends/iokit/iokitstorageaccess.cpp    
2026-09-04 13:44:00.000000000 +0200
+++ new/solid-6.31.0/src/solid/devices/backends/iokit/iokitstorageaccess.cpp    
2026-10-02 15:24:18.000000000 +0200
@@ -44,7 +44,9 @@
     if (const CFURLRef urlRef = 
daDict->cfUrLRefForKey(kDADiskDescriptionVolumePathKey)) {
         const CFStringRef mpRef = CFURLCopyFileSystemPath(urlRef, 
kCFURLPOSIXPathStyle);
         mountPoint = QString::fromCFString(mpRef);
-        CFRelease(mpRef);
+        if (mpRef) {
+          CFRelease(mpRef);
+        }
         m_device->setProperty("mountPoint", QVariant(mountPoint));
         bool isMounted = !mountPoint.isEmpty();
         const QString isMountedKey = QStringLiteral("isMounted");

Reply via email to