Hello community,

here is the log from the commit of package kdelibs4 for openSUSE:Factory 
checked in at 2013-08-18 22:21:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdelibs4 (Old)
 and      /work/SRC/openSUSE:Factory/.kdelibs4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdelibs4"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdelibs4/kdelibs4-apidocs.changes        
2013-08-16 13:48:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdelibs4.new/kdelibs4-apidocs.changes   
2013-08-18 22:21:22.000000000 +0200
@@ -1,0 +2,9 @@
+Sat Aug 17 20:52:53 UTC 2013 - [email protected]
+
+- Added two patches from upstream 4.11 branch:
+  0001-when-the-request-theme-does-not-exist-delete-all-old.patch
+  fixes crash on non-existing plasma themes (kde#320855) and
+  0002-Fix-crash-when-failing-to-get-audio-CD-block-device.patch
+  fixes crash when failing to get audio CD block device (kde#314544)
+
+-------------------------------------------------------------------
kdelibs4.changes: same change

New:
----
  0001-when-the-request-theme-does-not-exist-delete-all-old.patch
  0002-Fix-crash-when-failing-to-get-audio-CD-block-device.patch

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

Other differences:
------------------
++++++ kdelibs4.spec ++++++
--- /var/tmp/diff_new_pack.cE3ad3/_old  2013-08-18 22:21:23.000000000 +0200
+++ /var/tmp/diff_new_pack.cE3ad3/_new  2013-08-18 22:21:23.000000000 +0200
@@ -104,6 +104,10 @@
 # this patch exlcudes qtuitools symbols from libs that link to qtuitools, as 
otherwise users of
 # those libs are crashing(bnc#819437, kde#303576, kde#231077, qtbug#437)
 Patch11:        exclude-qtuitools-symbols-from-public-libraries.patch
+# PATCH-FIX-UPSTREAM 
0001-when-the-request-theme-does-not-exist-delete-all-old.patch -- fixes crash 
on non-existing plasma themes (kde#320855)
+Patch100:       0001-when-the-request-theme-does-not-exist-delete-all-old.patch
+# PATCH-FIX-UPSTREAM 
0002-Fix-crash-when-failing-to-get-audio-CD-block-device.patch -- fixes crash 
when failing to get audio CD block device (kde#314544)
+Patch101:       0002-Fix-crash-when-failing-to-get-audio-CD-block-device.patch
 PreReq:         permissions
 Requires:       soprano >= %( echo `rpm -q --queryformat '%{VERSION}' 
libsoprano-devel`)
 Recommends:     strigi >= %( echo `rpm -q --queryformat '%{VERSION}' 
strigi-devel`)
@@ -168,6 +172,8 @@
 %patch9
 %patch10
 %patch11 -p1
+%patch100 -p1
+%patch101 -p1
 
 %build
   EXTRA_FLAGS="-DLIB_INSTALL_DIR=%{_kde4_libdir} \

++++++ 0001-when-the-request-theme-does-not-exist-delete-all-old.patch ++++++
>From 59e88c777b92935cc95f28e52f84fe97563dec9d Mon Sep 17 00:00:00 2001
From: Aaron Seigo <[email protected]>
Date: Wed, 14 Aug 2013 12:52:52 +0200
Subject: [PATCH 1/3] when the request theme does not exist, delete all old
 caches for it and don't crash

BUG:320855
---
 plasma/theme.cpp | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/plasma/theme.cpp b/plasma/theme.cpp
index 4554de7..cb44878 100644
--- a/plasma/theme.cpp
+++ b/plasma/theme.cpp
@@ -222,18 +222,25 @@ bool ThemePrivate::useCache()
 {
     if (cacheTheme && !pixmapCache) {
         const bool isRegularTheme = themeName != systemColorsTheme;
-        QString cacheFile = "plasma_theme_" + themeName;
+        const QString cacheFile = "plasma_theme_" + themeName;
 
         if (isRegularTheme) {
+            const QString cacheFileBase = cacheFile + "*.kcache";
+
             const QString path = KStandardDirs::locate("data", "desktoptheme/" 
+ themeName + "/metadata.desktop");
-            const KPluginInfo pluginInfo(path);
+            // if the path is empty, then we haven't found the theme and so
+            // we will leave currentCacheFileName empty, resulting in the 
deletion of
+            // *all* matching cache files
+            QString currentCacheFileName;
+            if (!path.isEmpty()) {
+                const KPluginInfo pluginInfo(path);
+                currentCacheFileName = cacheFile + "_v" + pluginInfo.version() 
+ ".kcache";
+            }
 
-            // now we check for, and remove if necessary, old caches
-            const QString cacheFileBase = cacheFile + "*.kcache";
-            cacheFile += "_v" + pluginInfo.version();
-            const QString currentCacheFileName = cacheFile + ".kcache";
+            // now we check for (and remove) old caches
             foreach (const QString &file, 
KGlobal::dirs()->findAllResources("cache", cacheFileBase)) {
-                if (!file.endsWith(currentCacheFileName)) {
+                if (currentCacheFileName.isEmpty() ||
+                    !file.endsWith(currentCacheFileName)) {
                     QFile::remove(file);
                 }
             }
-- 
1.8.3.4

++++++ 0002-Fix-crash-when-failing-to-get-audio-CD-block-device.patch ++++++
>From 31fdb4ab1b72fa39290931f6a8934eda4eb4f636 Mon Sep 17 00:00:00 2001
From: Christoph Feck <[email protected]>
Date: Fri, 16 Aug 2013 14:31:04 +0200
Subject: [PATCH 2/3] Fix crash when failing to get audio CD block device

For the udisks2 backend, this is already worked
around in Solid, but could fail for other reasons.

BUG: 314544
FIXED-IN: 4.11.1
REVIEW: 111626
---
 kfile/kfileplacesitem.cpp | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/kfile/kfileplacesitem.cpp b/kfile/kfileplacesitem.cpp
index 5a12486..1cb0fa5 100644
--- a/kfile/kfileplacesitem.cpp
+++ b/kfile/kfileplacesitem.cpp
@@ -185,8 +185,15 @@ QVariant KFilePlacesItem::deviceData(int role) const
             if (m_access) {
                 return QUrl(KUrl(m_access->filePath()));
             } else if (m_disc && (m_disc->availableContent() & 
Solid::OpticalDisc::Audio)!=0) {
-                QString device = d.as<Solid::Block>()->device();
-                return QUrl(QString("audiocd:/?device=%1").arg(device));
+                Solid::Block *block = d.as<Solid::Block>();
+                if (block) {
+                    QString device = block->device();
+                    return QUrl(QString("audiocd:/?device=%1").arg(device));
+                }
+                // We failed to get the block device. Assume audiocd:/ can
+                // figure it out, but cannot handle multiple disc drives.
+                // See https://bugs.kde.org/show_bug.cgi?id=314544#c40
+                return QUrl(QString("audiocd:/"));
             } else if (m_mtp) {
                 return QUrl(QString("mtp:udi=%1").arg(d.udi()));
             } else {
-- 
1.8.3.4


-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to