Hello community,

here is the log from the commit of package kdelibs4 for openSUSE:Factory 
checked in at 2013-10-22 10:18:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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.changes        2013-10-19 
11:15:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdelibs4.new/kdelibs4.changes   2013-10-22 
10:18:06.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Oct 21 14:30:48 UTC 2013 - wba...@tmo.at
+
+- Added 0001-Improve-fix-for-association-with-derived-mimetypes.patch,
+  improves the last fix for mimetype handling (kde#321706)
+
+-------------------------------------------------------------------

New:
----
  0001-Improve-fix-for-association-with-derived-mimetypes.patch

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

Other differences:
------------------
++++++ kdelibs4.spec ++++++
--- /var/tmp/diff_new_pack.Mlh1vu/_old  2013-10-22 10:18:15.000000000 +0200
+++ /var/tmp/diff_new_pack.Mlh1vu/_new  2013-10-22 10:18:15.000000000 +0200
@@ -110,6 +110,8 @@
 Patch1000:      0001-verbose.patch
 # PATCH-FIX-UPSTREAM 0001-Fix-association-with-derived-mimetype-again.patch -- 
fixup for resolving kde#321706. resolves kde#324502
 Patch2000:      0001-Fix-association-with-derived-mimetype-again.patch
+# PATCH-FIX-UPSTREAM 
0001-Improve-fix-for-association-with-derived-mimetypes.patch -- followup fix 
for resolving kde#321706.
+Patch2001:      0001-Improve-fix-for-association-with-derived-mimetypes.patch
 PreReq:         permissions
 Requires:       soprano >= %( echo `rpm -q --queryformat '%{VERSION}' 
libsoprano-devel`)
 Recommends:     strigi >= %( echo `rpm -q --queryformat '%{VERSION}' 
strigi-devel`)
@@ -176,6 +178,7 @@
 %patch11 -p1
 %patch1000 -p1
 %patch2000 -p1
+%patch2001 -p1
 
 %build
   EXTRA_FLAGS="-DLIB_INSTALL_DIR=%{_kde4_libdir} \

++++++ 0001-Improve-fix-for-association-with-derived-mimetypes.patch ++++++
commit 8bfcace7efc0feea8899f70dfc15c3050c90ea99
Author: David Faure <fa...@kde.org>
Date:   Sat Oct 19 10:15:35 2013 +0200

    Improve fix for association with derived mimetypes (f723e2e7d36)
    
    If a desktop file was mentionning two aliases, they would both get
    removed, due to is() returning true for aliases as well.
    
    CCBUG: 321706

diff --git a/kded/kbuildservicefactory.cpp b/kded/kbuildservicefactory.cpp
index b4564bd..7a2a2fc 100644
--- a/kded/kbuildservicefactory.cpp
+++ b/kded/kbuildservicefactory.cpp
@@ -269,8 +269,13 @@ void KBuildServiceFactory::populateServiceTypes()
                 } else {
                     bool shouldAdd = true;
                     foreach (const QString &otherType, 
service->serviceTypes()) {
+                        // Skip derived types if the base class is listed 
(#321706)
                         if (stName != otherType && mime->is(otherType)) {
-                            shouldAdd = false;
+                            // But don't skip aliases (they got resolved into 
mime->name() already, but don't let two aliases cancel out)
+                            if 
(KMimeTypeRepository::self()->canonicalName(otherType) != mime->name()) {
+                                //kDebug() << "Skipping" << mime->name() << 
"because of" << otherType << "(canonical" << 
KMimeTypeRepository::self()->canonicalName(otherType) << ") while parsing" << 
service->entryPath();
+                                shouldAdd = false;
+                            }
                         }
                     }
                     if (shouldAdd) {
diff --git a/kded/tests/kmimeassociationstest.cpp 
b/kded/tests/kmimeassociationstest.cpp
index a07637f..342a8fd 100644
--- a/kded/tests/kmimeassociationstest.cpp
+++ b/kded/tests/kmimeassociationstest.cpp
@@ -140,10 +140,12 @@ private Q_SLOTS:
         // This interacted badly with mimeapps.list listing another app for 
text/plain, but the
         // lookup found this app first, due to c-src. The fix: ignoring 
derived mimetypes when
         // the base mimetype is already listed.
+        //
+        // Also include aliases (msword), to check they don't cancel each 
other out.
         fakeCSrcApplication = m_localApps + "fakecsrcapplication.desktop";
         if (!QFile::exists(fakeCSrcApplication)) {
             mustUpdateKSycoca = true;
-            writeAppDesktopFile(fakeCSrcApplication, QStringList() << 
"text/plain" << "text/c-src", 8);
+            writeAppDesktopFile(fakeCSrcApplication, QStringList() << 
"text/plain" << "text/c-src" << "application/vnd.ms-word" << 
"application/msword", 8);
         }
 
         fakeJpegApplication = m_localApps + "fakejpegapplication.desktop";
@@ -200,6 +202,7 @@ private Q_SLOTS:
         preferredApps["text/plain"] << "faketextapplication.desktop" << 
"kde4-kwrite.desktop";
         preferredApps["text/x-csrc"] << "faketextapplication.desktop" << 
"kde4-kwrite.desktop";
         preferredApps["text/html"] << "fakehtmlapplication.desktop";
+        preferredApps["application/msword"] << "fakecsrcapplication.desktop";
         removedApps["image/jpeg"] << "firefox.desktop";
         removedApps["text/html"] << "kde4-dolphin.desktop" << 
"kde4-kwrite.desktop";
 
@@ -231,14 +234,17 @@ private Q_SLOTS:
         for (ExpectedResultsMap::const_iterator it = 
preferredApps.constBegin(),
                                                end = preferredApps.constEnd() 
; it != end ; ++it) {
             const QString mime = it.key();
-            // Derived mimetypes are handled outside KMimeAssociations
-            if (mime == QLatin1String("text/x-csrc"))
+            // The data for derived types and aliases isn't for this test 
(which only looks at mimeapps.list)
+            if (mime == QLatin1String("text/x-csrc") || mime == 
QLatin1String("application/msword"))
                 continue;
             const QList<KServiceOffer> offers = offerHash.offersFor(mime);
             Q_FOREACH(const QString& service, it.value()) {
                 KService::Ptr serv = KService::serviceByStorageId(service);
                 if (serv && !offersContains(offers, serv)) {
-                    kDebug() << serv.data() << serv->entryPath() << "does not 
have" << mime;
+                    kDebug() << "expected offer" << serv->entryPath() << "not 
in offers for" << mime << ":";
+                    Q_FOREACH(const KServiceOffer& offer, offers) {
+                        kDebug() << offer.service()->storageId();
+                    }
                     QFAIL("offer does not have servicetype");
                 }
             }

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to