diff options
author | root <root@rshg054.dnsready.net> | 2011-09-13 23:14:39 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2011-09-13 23:14:39 +0000 |
commit | a712dc92423a31a4d3ab34fe660df550feebf442 (patch) | |
tree | ad93851f4343f00cec2f901e4839da01a8b77efe /extra/akonadi | |
parent | b3a841a1f66eff75be29fba090b83ce4322d4721 (diff) |
Tue Sep 13 23:14:39 UTC 2011
Diffstat (limited to 'extra/akonadi')
-rw-r--r-- | extra/akonadi/PKGBUILD | 14 | ||||
-rw-r--r-- | extra/akonadi/fix-slow-kde-logout.patch | 64 |
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(); + |