summaryrefslogtreecommitdiff
path: root/extra/akonadi
diff options
context:
space:
mode:
Diffstat (limited to 'extra/akonadi')
-rw-r--r--extra/akonadi/PKGBUILD14
-rw-r--r--extra/akonadi/fix-slow-kde-logout.patch64
2 files changed, 74 insertions, 4 deletions
diff --git a/extra/akonadi/PKGBUILD b/extra/akonadi/PKGBUILD
index 96798a34d..cb61420ae 100644
--- a/extra/akonadi/PKGBUILD
+++ b/extra/akonadi/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 132788 2011-07-26 07:38:52Z andrea $
+# $Id: PKGBUILD 137927 2011-09-12 16:08:18Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=akonadi
pkgver=1.6.0
-pkgrel=2
+pkgrel=3
pkgdesc="PIM layer, which provides an asynchronous API to access all kind of PIM data"
arch=('i686' 'x86_64')
url='http://pim.kde.org/akonadi'
@@ -12,10 +12,16 @@ license=('LGPL')
depends=('shared-mime-info' 'boost-libs' 'mysql' 'soprano')
makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost')
install="${pkgname}.install"
-source=("http://download.kde.org/stable/${pkgname}/src/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('16bc40e022d06f287f18c71faaeb2e42')
+source=("http://download.kde.org/stable/${pkgname}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'fix-slow-kde-logout.patch')
+md5sums=('16bc40e022d06f287f18c71faaeb2e42'
+ 'cdf0c3bd5741303e4f98ea435c39f09d')
build() {
+ # Already fixed upstream
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/fix-slow-kde-logout.patch
+
cd "${srcdir}"
mkdir build
cd build
diff --git a/extra/akonadi/fix-slow-kde-logout.patch b/extra/akonadi/fix-slow-kde-logout.patch
new file mode 100644
index 000000000..49228ef8b
--- /dev/null
+++ b/extra/akonadi/fix-slow-kde-logout.patch
@@ -0,0 +1,64 @@
+commit c8e45b10c32679bf070af5b7ad9a22b91eb9a02c
+Author: Sergio Martins <iamsergio@gmail.com>
+Date: Mon Sep 12 13:48:33 2011 +0100
+
+ Fix crash on agent_launcher exit.
+
+ Don't unload plugins here. They will be unloaded on application exit,
+ so it's redundant.
+
+ Seems they are being unloaded too early, before QThreadStorage
+ cleanup occurs:
+
+ ==18802== Invalid read of size 8
+ ==18802== at 0x53178AE: QThreadStorage<QFontCache*>::deleteData(void*) (in
+ /data/installation/qt/qt-4.7/lib/libQtGui.so.4.7.1)
+ ==18802== by 0x5E8F8CF: QThreadStorageData::set(void*)
+ (qthreadstorage.cpp:165)
+ ==18802== by 0x5317940: void
+ qThreadStorage_setLocalData<QFontCache>(QThreadStorageData&, QFontCache**)
+ (qthreadstorage.h:92)
+ ==18802== by 0x53165BA:
+ QThreadStorage<QFontCache*>::setLocalData(QFontCache*) (qthreadstorage.h:148)
+ ==18802== by 0x531407A: QFontCache::cleanup() (qfont.cpp:2632)
+ ==18802== by 0x5406536: QFont::cleanup() (qfont_x11.cpp:182)
+ ==18802== by 0x5104E35: qt_cleanup() (qapplication_x11.cpp:2647)
+ ==18802== by 0x50603B2: QApplication::~QApplication()
+ (qapplication.cpp:1172)
+ ==18802== by 0x41B1F6: main (agentlauncher.cpp:28)
+ ==18802== Address 0x11a090b0 is not stack'd, malloc'd or (recently) free'd
+
+ CCBUG: 261788
+
+diff --git a/agentserver/agentpluginloader.cpp b/agentserver/agentpluginloader.cpp
+index 2d62d3b..456a124 100644
+--- a/agentserver/agentpluginloader.cpp
++++ b/agentserver/agentpluginloader.cpp
+@@ -25,13 +25,8 @@ using namespace Akonadi;
+
+ AgentPluginLoader::~AgentPluginLoader()
+ {
+- QHash<QString, QPluginLoader*>::iterator it = m_pluginLoaders.begin();
+- while ( it != m_pluginLoaders.end() ) {
+- it.value()->unload();
+- ++it;
+- }
+-
+ qDeleteAll( m_pluginLoaders );
++ m_pluginLoaders.clear();
+ }
+
+ QPluginLoader *AgentPluginLoader::load( const QString &pluginName )
+diff --git a/agentserver/agentpluginloader.h b/agentserver/agentpluginloader.h
+index 77f5de9..c8c815f 100644
+--- a/agentserver/agentpluginloader.h
++++ b/agentserver/agentpluginloader.h
+@@ -26,7 +26,7 @@ class AgentPluginLoader
+ {
+ public:
+ /**
+- Unloads and deletes all instantiated QPluginLoaders.
++ Deletes all instantiated QPluginLoaders.
+ */
+ ~AgentPluginLoader();
+