[kdepimlibs] pkgconfig-style deps "Mimetype tree is not a DAG!" errors + crashes when using SMI 0.91 (#749618)

Rex Dieter rdieter at fedoraproject.org
Thu Oct 27 17:04:24 UTC 2011


commit 346e6362614dbdb1aae0f185fab16a2ad368f675
Author: Rex Dieter <rdieter at fedoraproject.org>
Date:   Thu Oct 27 12:11:50 2011 -0500

    pkgconfig-style deps
    "Mimetype tree is not a DAG!" errors + crashes when using SMI 0.91 (#749618)

 kdepimlibs-4.7.2-akonadi_mimetypes.patch |   38 ++++++++++++++++++++++++++++++
 kdepimlibs.spec                          |   36 ++++++++++++++++-----------
 2 files changed, 59 insertions(+), 15 deletions(-)
---
diff --git a/kdepimlibs-4.7.2-akonadi_mimetypes.patch b/kdepimlibs-4.7.2-akonadi_mimetypes.patch
new file mode 100644
index 0000000..5fb858b
--- /dev/null
+++ b/kdepimlibs-4.7.2-akonadi_mimetypes.patch
@@ -0,0 +1,38 @@
+commit 70197a817da44ff406e52ea0dd8ba3b2416c3097
+Author: David Faure <faure at kde.org>
+Date:   Sun Oct 16 17:13:42 2011 +0200
+
+    Resolve alias read from the desktop file too.
+    
+    Fixes a crash with shared-mime-info 0.91 where text/directory
+    was replaced with text/vcard (which was made an alias).
+    BUG: 283615
+    FIXED-IN: 4.7.3
+    (cherry picked from commit e86bd47521fffd2d28d048c7d8ab6c4e6a4d909a)
+
+diff --git a/akonadi/typepluginloader.cpp b/akonadi/typepluginloader.cpp
+index 8dcb337..a80ca98 100644
+--- a/akonadi/typepluginloader.cpp
++++ b/akonadi/typepluginloader.cpp
+@@ -240,12 +240,15 @@ class PluginRegistry
+       QRegExp rx( QLatin1String( "(.+)@(.+)" ) );
+       Q_FOREACH ( const QString & name, names )
+         if ( rx.exactMatch( name ) ) {
+-          const QString mimeType = rx.cap(1);
+-          const QByteArray classType = rx.cap(2).toLatin1();
+-          QMap<QString,MimeTypeEntry>::iterator it = map.find( mimeType );
+-          if ( it == map.end() )
+-              it = map.insert( mimeType, MimeTypeEntry( mimeType ) );
+-          it->add( classType, PluginEntry( name ) );
++          KMimeType::Ptr mime = KMimeType::mimeType( rx.cap(1), KMimeType::ResolveAliases );
++          if ( mime ) {
++              const QString mimeType = mime->name();
++              const QByteArray classType = rx.cap(2).toLatin1();
++              QMap<QString,MimeTypeEntry>::iterator it = map.find( mimeType );
++              if ( it == map.end() )
++                  it = map.insert( mimeType, MimeTypeEntry( mimeType ) );
++              it->add( classType, PluginEntry( name ) );
++          }
+         } else {
+           kDebug() << "ItemSerializerPluginLoader: "
+                    << "name" << name << "doesn't look like mimetype at classtype" << endl;
diff --git a/kdepimlibs.spec b/kdepimlibs.spec
index e03eb89..629e65d 100644
--- a/kdepimlibs.spec
+++ b/kdepimlibs.spec
@@ -1,13 +1,13 @@
 %define apidocs 1
 %define akonadi_subpkg 1
-%define akonadi_version_min 1.5.80
+%define akonadi_version_min 1.6.0
 
 %global akonadi_version %(pkg-config --modversion akonadi 2>/dev/null || echo %{akonadi_version_min})
 
 Name: kdepimlibs
 Summary: KDE PIM Libraries
 Version: 4.7.2
-Release: 1%{?dist}
+Release: 2%{?dist}
 
 # http://techbase.kde.org/Policies/Licensing_Policy
 License: LGPLv2+
@@ -16,6 +16,10 @@ URL: http://www.kde.org/
 Source0: ftp://ftp.kde.org/pub/kde/unstable/%{version}/src/kdepimlibs-%{version}.tar.bz2
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
+## upstream patches
+# https://bugzilla.redhat.com/show_bug.cgi?id=749618
+Patch100: kdepimlibs-4.7.2-akonadi_mimetypes.patch
+
 %if ! 0%{?akonadi_subpkg}
 Obsoletes: %{name}-akonadi < %{version}-%{release}
 Provides:  %{name}-akonadi = %{version}-%{release}
@@ -26,14 +30,14 @@ Requires: kdelibs4%{?_isa} >= %{version}
 # for kio_smtp plain/login sasl plugins
 Requires: cyrus-sasl-plain
 
-BuildRequires: akonadi-devel >= %{akonadi_version_min}
 BuildRequires: boost-devel
 BuildRequires: cyrus-sasl-devel
 BuildRequires: gpgme-devel
 BuildRequires: kdelibs4-devel >= %{version}
-BuildRequires: libXpm-devel libXtst-devel
 BuildRequires: openldap-devel
 BuildRequires: libical-devel >= 0.33
+BuildRequires: pkgconfig(akonadi) >= %{akonadi_version_min}
+BuildRequires: pkgconfig(xpm) pkgconfig(xtst)
 BuildRequires: prison-devel
 
 %if 0%{?apidocs}
@@ -82,6 +86,8 @@ format for easy browsing.
 %prep
 %setup -q
 
+%patch100 -p1 -b .akonadi_mimetypes
+
 
 %build
 mkdir -p %{_target_platform}
@@ -141,22 +147,14 @@ cp -prf kdepimlibs-%{version}%{?alphatag}-apidocs %{buildroot}%{_kde4_docdir}/HT
 find %{buildroot}%{_kde4_docdir}/HTML/en/ -name 'installdox' -exec rm -fv {} ';'
 %endif
 
+%clean
+rm -rf %{buildroot}
+
 
 %post -p /sbin/ldconfig
 
 %postun -p /sbin/ldconfig
 
-%if 0%{?akonadi_subpkg}
-%post akonadi -p /sbin/ldconfig
-
-%postun akonadi -p /sbin/ldconfig
-%endif
-
-
-%clean
-rm -rf %{buildroot}
-
-
 %files
 %defattr(-,root,root,-)
 %{_kde4_appsdir}/kabc/
@@ -180,6 +178,10 @@ rm -rf %{buildroot}
 %exclude %{_kde4_libdir}/kde4/kcm_mailtransport.so
 %exclude %{_kde4_datadir}/kde4/services/kcm_mailtransport.desktop
 
+%post akonadi -p /sbin/ldconfig
+
+%postun akonadi -p /sbin/ldconfig
+
 %files akonadi
 %defattr(-,root,root,-)
 %{_kde4_libdir}/libakonadi-*.so.*
@@ -210,6 +212,10 @@ rm -rf %{buildroot}
 
 
 %changelog
+* Thu Oct 27 2011 Rex Dieter <rdieter at fedoraproject.org> 4.7.2-2
+- pkgconfig-style deps
+- "Mimetype tree is not a DAG!" errors + crashes when using SMI 0.91 (#749618)
+
 * Tue Oct 04 2011 Rex Dieter <rdieter at fedoraproject.org> 4.7.2-1
 - 4.7.2
 


More information about the scm-commits mailing list