Date: Saturday, February 9, 2013 @ 07:06:03 Author: andrea Revision: 177800
upgpkg: nepomuk-core 4.10.0-2 Fix recursive indexing (FS#33776) Added: nepomuk-core/trunk/fix-recursive-indexing.patch Modified: nepomuk-core/trunk/PKGBUILD ------------------------------+ PKGBUILD | 12 +++- fix-recursive-indexing.patch | 103 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2013-02-09 02:58:49 UTC (rev 177799) +++ PKGBUILD 2013-02-09 06:06:03 UTC (rev 177800) @@ -3,17 +3,23 @@ pkgname=nepomuk-core pkgver=4.10.0 -pkgrel=1 +pkgrel=2 pkgdesc="Contains the central Nepomuk services like file indexing, file system monitoring, query, storage, client libraries" url="https://projects.kde.org/projects/kde/kdelibs/nepomuk-core" arch=('i686' 'x86_64') license=('GPL' 'LGPL' 'FDL') depends=('kdelibs' 'poppler-qt' 'taglib' 'ffmpeg') makedepends=('cmake' 'automoc4' 'doxygen') -source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz") -sha1sums=('affc4d3063db773e5b05ff746a4c64adbec29264') +source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz" + 'fix-recursive-indexing.patch') +sha1sums=('affc4d3063db773e5b05ff746a4c64adbec29264' + 'faa0f661fe642af01ac72eda7347dfc659e091e1') build() { + cd ${pkgname}-${pkgver} + patch -p1 -i "${srcdir}"/fix-recursive-indexing.patch + cd ../ + mkdir build cd build cmake ../${pkgname}-${pkgver} \ Added: fix-recursive-indexing.patch =================================================================== --- fix-recursive-indexing.patch (rev 0) +++ fix-recursive-indexing.patch 2013-02-09 06:06:03 UTC (rev 177800) @@ -0,0 +1,103 @@ +From: Vishesh Handa <m...@vhanda.in> +Date: Fri, 08 Feb 2013 20:58:33 +0000 +Subject: Revert "BasicIndexingQueue: Use stacks instead of queues" +X-Git-Url: http://quickgit.kde.org/?p=nepomuk-core.git&a=commitdiff&h=b651f9231ac30072418bb06d602951f0f05da22c +--- +Revert "BasicIndexingQueue: Use stacks instead of queues" + +This reverts commit 2f33141aa6716550e38b11ec9a0b000dd74eea79. + +The commit breaks recursive indexing. Doh! + +BUG: 314559 +--- + + +--- a/services/fileindexer/basicindexingqueue.cpp ++++ b/services/fileindexer/basicindexingqueue.cpp +@@ -54,14 +54,14 @@ + + void BasicIndexingQueue::clear(const QString& path) + { +- QMutableVectorIterator< QPair<QString, UpdateDirFlags> > it( m_paths ); ++ QMutableListIterator< QPair<QString, UpdateDirFlags> > it( m_paths ); + while( it.hasNext() ) { + it.next(); + if( it.value().first.startsWith( path ) ) + it.remove(); + } + +- QMutableVectorIterator< QPair<QDirIterator*, UpdateDirFlags> > iter( m_iterators ); ++ QMutableListIterator< QPair<QDirIterator*, UpdateDirFlags> > iter( m_iterators ); + while( iter.hasNext() ) { + QDirIterator* dirIter = iter.next().first; + +@@ -100,7 +100,7 @@ + { + kDebug() << path; + bool wasEmpty = m_paths.empty(); +- m_paths.push( qMakePair( path, flags ) ); ++ m_paths.enqueue( qMakePair( path, flags ) ); + callForNextIteration(); + + if( wasEmpty ) +@@ -120,12 +120,12 @@ + processingFile = process( dirIt->next(), pair.second ); + } + else { +- delete m_iterators.pop().first; ++ delete m_iterators.dequeue().first; + } + } + + else if( !m_paths.isEmpty() ) { +- QPair< QString, UpdateDirFlags > pair = m_paths.pop(); ++ QPair< QString, UpdateDirFlags > pair = m_paths.dequeue(); + processingFile = process( pair.first, pair.second ); + } + +@@ -161,7 +161,7 @@ + QDir::Filters dirFilter = QDir::NoDotAndDotDot|QDir::Readable|QDir::Files|QDir::Dirs; + + QPair<QDirIterator*, UpdateDirFlags> pair = qMakePair( new QDirIterator( path, dirFilter ), flags ); +- m_iterators.push( pair ); ++ m_iterators.enqueue( pair ); + } + } + else if( info.isFile() && (forced || indexingRequired) ) { +@@ -259,12 +259,6 @@ + + emit endIndexingFile( url ); + +- // Give back the memory +- if( m_paths.isEmpty() ) +- m_paths.clear(); +- if( m_iterators.isEmpty() ) +- m_iterators.clear(); +- + // Continue the queue + finishIteration(); + } + +--- a/services/fileindexer/basicindexingqueue.h ++++ b/services/fileindexer/basicindexingqueue.h +@@ -23,7 +23,6 @@ + + #include "indexingqueue.h" + #include <KJob> +-#include <QtCore/QStack> + + namespace Nepomuk2 { + +@@ -106,8 +105,8 @@ + */ + bool process(const QString& path, Nepomuk2::UpdateDirFlags flags); + +- QStack< QPair<QString, UpdateDirFlags> > m_paths; +- QStack< QPair<QDirIterator*, UpdateDirFlags> > m_iterators; ++ QQueue< QPair<QString, UpdateDirFlags> > m_paths; ++ QQueue< QPair<QDirIterator*, UpdateDirFlags> > m_iterators; + + QUrl m_currentUrl; + QString m_currentMimeType; +