Date: Friday, March 30, 2012 @ 12:11:55 Author: andrea Revision: 154655
KDE 4.8.2 Modified: kdelibs/trunk/PKGBUILD Deleted: kdelibs/trunk/fix-kmail-crash.patch -----------------------+ PKGBUILD | 11 ++----- fix-kmail-crash.patch | 71 ------------------------------------------------ 2 files changed, 3 insertions(+), 79 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2012-03-30 15:54:01 UTC (rev 154654) +++ PKGBUILD 2012-03-30 16:11:55 UTC (rev 154655) @@ -3,8 +3,8 @@ # Contributor: Pierre Schmitz <[email protected]> pkgname=kdelibs -pkgver=4.8.1 -pkgrel=2 +pkgver=4.8.2 +pkgrel=1 pkgdesc="KDE Core Libraries" arch=('i686' 'x86_64') url='http://www.kde.org' @@ -18,12 +18,10 @@ install=${pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz" 'kde-applications-menu.patch' 'archlinux-menu.patch' - 'fix-kmail-crash.patch' 'use-pythondontwritebytecode.patch') -sha1sums=('da4e13f63ac340619351e9a2f4211cce8ec4fdf8' +sha1sums=('f844ae0877880563361144d9577706064c3483e7' '86ee8c8660f19de8141ac99cd6943964d97a1ed7' '63a850ab4196b9d06934f2b4a13acd9f7739bc67' - '081b0663480568359120b573d26abb91e1a348c0' 'a1e35760d5b4e29471ad357c963a343c67200f32') build() { @@ -34,9 +32,6 @@ # add Archlinux menu entry patch -p1 -i "${srcdir}"/archlinux-menu.patch - # Upstream (FS#28907) - patch -p1 -i "${srcdir}"/fix-kmail-crash.patch - # Set PYTHONDONTWRITEBYTECODE (KDEBUG#276151) patch -p0 -i "${srcdir}"/use-pythondontwritebytecode.patch Deleted: fix-kmail-crash.patch =================================================================== --- fix-kmail-crash.patch 2012-03-30 15:54:01 UTC (rev 154654) +++ fix-kmail-crash.patch 2012-03-30 16:11:55 UTC (rev 154655) @@ -1,71 +0,0 @@ -commit 979b0436510e7807c054e79c40c3753834ac2863 -Author: Sebastian Trueg <[email protected]> -Date: Thu Mar 15 09:14:35 2012 +0100 - - Thread-safe ResourceWatcher handling. - - We simply perform all RW operations in the manager thread. - - BUG: 295474 - FIXED-IN: 4.8.2 - -diff --git a/nepomuk/core/resourcedata.cpp b/nepomuk/core/resourcedata.cpp -index abe55ea..9d45228 100644 ---- a/nepomuk/core/resourcedata.cpp -+++ b/nepomuk/core/resourcedata.cpp -@@ -175,7 +175,8 @@ void Nepomuk::ResourceData::resetAll( bool isDelete ) - if( !m_uri.isEmpty() ) { - m_rm->m_initializedData.remove( m_uri ); - if( m_rm->m_watcher && m_addedToWatcher ) { -- m_rm->m_watcher->removeResource(Resource::fromResourceUri(m_uri)); -+ // See load() for an explanation of the QMetaObject call -+ QMetaObject::invokeMethod(m_rm->m_watcher, "removeResource", Qt::AutoConnection, Q_ARG(Nepomuk::Resource, Resource::fromResourceUri(m_uri))); - m_addedToWatcher = false; - } - } -@@ -393,16 +394,23 @@ bool Nepomuk::ResourceData::load() - m_cache.clear(); - - if(!m_rm->m_watcher) { -+ // -+ // The ResourceWatcher is not thread-safe. Thus, we need to ensure the safety ourselves. -+ // We do that by simply handling all RW related operations in the manager thread. -+ // This also means to invoke methods on the watcher through QMetaObject to make sure they -+ // get queued in case of calls between different threads. -+ // - m_rm->m_watcher = new ResourceWatcher(m_rm->m_manager); -+ m_rm->m_watcher->moveToThread(m_rm->m_manager->thread()); - QObject::connect( m_rm->m_watcher, SIGNAL(propertyAdded(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)), - m_rm->m_manager, SLOT(slotPropertyAdded(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)) ); - QObject::connect( m_rm->m_watcher, SIGNAL(propertyRemoved(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)), - m_rm->m_manager, SLOT(slotPropertyRemoved(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)) ); - m_rm->m_watcher->addResource( Nepomuk::Resource::fromResourceUri(m_uri) ); -- m_rm->m_watcher->start(); -+ QMetaObject::invokeMethod(m_rm->m_watcher, "start", Qt::AutoConnection); - } - else { -- m_rm->m_watcher->addResource( Nepomuk::Resource::fromResourceUri(m_uri) ); -+ QMetaObject::invokeMethod(m_rm->m_watcher, "addResource", Qt::AutoConnection, Q_ARG(Nepomuk::Resource, Nepomuk::Resource::fromResourceUri(m_uri)) ); - } - m_addedToWatcher = true; - -diff --git a/nepomuk/core/resourcewatcher.h b/nepomuk/core/resourcewatcher.h -index 06b9622..92b12f5 100644 ---- a/nepomuk/core/resourcewatcher.h -+++ b/nepomuk/core/resourcewatcher.h -@@ -93,6 +93,7 @@ namespace Nepomuk { - */ - virtual ~ResourceWatcher(); - -+ public Q_SLOTS: - /** - * \brief Add a type to be watched. - * -@@ -204,7 +205,6 @@ namespace Nepomuk { - */ - QList<Types::Property> properties() const; - -- public Q_SLOTS: - /** - * \brief Start the signalling of changes. - *
